Files
revng-revng/python/revng/internal/support/__init__.py
Giacomo Vercesi 942cf50735 python: create python wheels
Package revng's python code in two wheels: `revng` and `revng_internal`.
The revng wheel contains the
`revng.{pipeline_description,model,tupletree}` modules, while the
`revng_internal` one everything under `revng.internal`.
2023-12-12 14:52:22 +01:00

32 lines
785 B
Python

#
# This file is distributed under the MIT License. See LICENSE.md for details.
#
from collections.abc import Iterable as CIterable
from pathlib import Path
from typing import Iterable, List, TypeVar, Union
T = TypeVar("T")
SingleOrIterable = Union[T, Iterable[T]]
AnyPath = Union[str, Path]
AnyPaths = SingleOrIterable[AnyPath]
def to_iterable(obj: SingleOrIterable[T]) -> Iterable[T]:
if isinstance(obj, CIterable):
return obj
return (obj,)
# We assume this file is in <root>/lib/python$VERSION/site-packages/revng/support
def get_root() -> Path:
return (Path(__file__) / "../../../../../../../").resolve()
def read_lines(path: Path) -> List[str]:
if not path.exists():
return []
else:
return path.read_text().strip().split("\n")