[+] improve modules support
This commit is contained in:
parent
9f895d52ee
commit
24e116882d
@ -34,6 +34,12 @@ def toml_load(f: BinaryIO) -> Any:
|
|||||||
|
|
||||||
@dataclasses.dataclass
|
@dataclasses.dataclass
|
||||||
class PyProject:
|
class PyProject:
|
||||||
|
@dataclasses.dataclass
|
||||||
|
class Module:
|
||||||
|
name: str
|
||||||
|
meson: Optional[pathlib.Path] = None
|
||||||
|
|
||||||
|
|
||||||
path: pathlib.Path
|
path: pathlib.Path
|
||||||
dependencies: dict[str, list[str]]
|
dependencies: dict[str, list[str]]
|
||||||
early_features: Optional[list[str]] = None
|
early_features: Optional[list[str]] = None
|
||||||
@ -42,6 +48,10 @@ class PyProject:
|
|||||||
runtime_preload: Optional[list[pathlib.Path]] = None
|
runtime_preload: Optional[list[pathlib.Path]] = None
|
||||||
requirements: dict[str, pathlib.Path] = dataclasses.field(default_factory=lambda : dict())
|
requirements: dict[str, pathlib.Path] = dataclasses.field(default_factory=lambda : dict())
|
||||||
|
|
||||||
|
modules: list[Module] = dataclasses.field(
|
||||||
|
default_factory=lambda : [],
|
||||||
|
)
|
||||||
|
|
||||||
def pyproject_load(
|
def pyproject_load(
|
||||||
d: pathlib.Path,
|
d: pathlib.Path,
|
||||||
) -> PyProject:
|
) -> PyProject:
|
||||||
@ -119,6 +129,30 @@ def pyproject_load(
|
|||||||
for k, v in content['tool'][tool_name]['requirements'].items()
|
for k, v in content['tool'][tool_name]['requirements'].items()
|
||||||
}
|
}
|
||||||
|
|
||||||
|
if 'modules' in content['tool'][tool_name]:
|
||||||
|
modules = content['tool'][tool_name]
|
||||||
|
assert isinstance(modules, list)
|
||||||
|
|
||||||
|
# res.modules = []
|
||||||
|
|
||||||
|
for o in modules:
|
||||||
|
assert isinstance(o, dict)
|
||||||
|
assert 'name' in o and isinstance(o['name'], str)
|
||||||
|
|
||||||
|
module = PyProject.Module(
|
||||||
|
name=o['name'],
|
||||||
|
)
|
||||||
|
|
||||||
|
if 'meson' in o:
|
||||||
|
assert 'meson' in o and isinstance(o['meson'], str)
|
||||||
|
|
||||||
|
module.meson = pathlib.Path(o['meson'])
|
||||||
|
|
||||||
|
res.modules.append(module)
|
||||||
|
|
||||||
|
res.early_features = content['tool'][tool_name]['early_features']
|
||||||
|
|
||||||
|
|
||||||
return res
|
return res
|
||||||
|
|
||||||
@dataclasses.dataclass
|
@dataclasses.dataclass
|
||||||
|
Loading…
Reference in New Issue
Block a user