bundle.pybind ============= .. py:module:: bundle.pybind Submodules ---------- .. toctree:: :maxdepth: 1 /autoapi/bundle/pybind/cli/index /autoapi/bundle/pybind/extension/index /autoapi/bundle/pybind/plugins/index /autoapi/bundle/pybind/pybind/index /autoapi/bundle/pybind/resolved/index /autoapi/bundle/pybind/resolvers/index /autoapi/bundle/pybind/services/index /autoapi/bundle/pybind/specs/index Classes ------- .. autoapisummary:: bundle.pybind.Pybind Package Contents ---------------- .. py:class:: Pybind(pyproject_path: pathlib.Path | str, plugins: list[object] | None = None) Orchestrates reading pyproject.toml, applying plugins, resolving module specs, and constructing Extension objects via extension.make_extension. .. py:attribute:: pyproject .. py:attribute:: base_dir .. py:attribute:: spec .. py:attribute:: resolver .. py:attribute:: resolved :type: bundle.pybind.resolved.ProjectResolved | None :value: None .. py:attribute:: plugins :type: list[object] :value: [] .. py:method:: register_plugin(plugin: object) -> None .. py:method:: apply_spec_plugins() -> None :async: Run all PybindPluginSpec instances against raw module specs. .. py:method:: apply_resolved_plugins() -> None :async: Run all PybindPluginResolved instances against resolved modules. .. py:method:: resolve() -> bundle.pybind.resolved.ProjectResolved :async: .. py:method:: get_spec_extensions() -> list[bundle.pybind.extension.ExtensionBuild] :async: Resolve the project and build all Extension objects concurrently. .. py:method:: setup(invoking_file: pathlib.Path | str, **kwargs) -> None :classmethod: Entry point for setup.py: build Extension list and invoke setuptools.setup. .. py:method:: build(path: str, parallel: int = multiprocessing.cpu_count()) :classmethod: :async: Shell out to `python setup.py build_ext` with optional parallel. .. py:method:: info(path: str) :classmethod: :async: Load and resolve project for inspection without building.