diff --git a/python/meson.build b/python/meson.build index 80fb864..2933a60 100644 --- a/python/meson.build +++ b/python/meson.build @@ -5,7 +5,7 @@ project( ).stdout().strip('\n'), # 'online.fxreader.uv', # ['c', 'cpp'], - version: '0.1.5.16+27.11', + version: '0.1.5.16+27.12', # default_options: [ # 'cpp_std=c++23', # # 'prefer_static=true', diff --git a/python/online/fxreader/pr34/commands_typed/cli.py b/python/online/fxreader/pr34/commands_typed/cli.py index 9c969b7..268b031 100644 --- a/python/online/fxreader/pr34/commands_typed/cli.py +++ b/python/online/fxreader/pr34/commands_typed/cli.py @@ -28,15 +28,21 @@ class Project: dest_dir : pathlib.Path meson_path: Optional[pathlib.Path] = None +@dataclasses.dataclass class PyProject: + @dataclasses.dataclass class Tool: + @dataclasses.dataclass class Meson: + @dataclasses.dataclass class Args: install: list[str] args: Args + @dataclasses.dataclass class MesonPython: + @dataclasses.dataclass class Args: install: list[str] @@ -349,6 +355,8 @@ class CLI(abc.ABC): force: Optional[bool] = None, argv: Optional[list[str]] = None, ) -> None: + from . import cli_bootstrap + project = self.projects[project_name] if force is None: @@ -365,8 +373,8 @@ class CLI(abc.ABC): ) pyproject_tool = pydantic.RootModel[ - PyProject - ].model_validate(pyproject.module) + PyProject.Tool + ].model_validate(pyproject.tool).root if ( pyproject_tool.meson and @@ -379,8 +387,8 @@ class CLI(abc.ABC): shutil_which('meson', True,), 'install', '-C', - project.build_dir / 'meson', - '--destdir', project.dest_dir, + str(project.build_dir / 'meson'), + '--destdir', str(project.dest_dir), *argv, ] diff --git a/python/online/fxreader/pr34/commands_typed/cli_bootstrap.py b/python/online/fxreader/pr34/commands_typed/cli_bootstrap.py index 5f137b2..44d089c 100644 --- a/python/online/fxreader/pr34/commands_typed/cli_bootstrap.py +++ b/python/online/fxreader/pr34/commands_typed/cli_bootstrap.py @@ -54,6 +54,10 @@ class PyProject: default_factory=lambda : [], ) + tool: dict[str, Any] = dataclasses.field( + default_factory=dict, + ) + def pyproject_load( d: pathlib.Path, ) -> PyProject: diff --git a/releases/whl/online_fxreader_pr34-0.1.5.16+27.12-py3-none-any.whl b/releases/whl/online_fxreader_pr34-0.1.5.16+27.12-py3-none-any.whl new file mode 100644 index 0000000..25cac92 --- /dev/null +++ b/releases/whl/online_fxreader_pr34-0.1.5.16+27.12-py3-none-any.whl @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:0182a9b408673bfc6dac8706058eaf255d43c791863cff8699ce0d74880ea61c +size 72153