pytest_pep723.plugin¶
Pytest plugin for PEP 723 inline script dependency validation.
Automatically discovers Python files containing PEP 723 # /// script
metadata blocks and verifies that every import is covered by the declared
inline dependencies.
Configuration (pyproject.toml):
[tool.pytest-pep723]
paths = ["src/mypkg"] # directories to scan (required)
ignore_imports = ["mypkg"] # imports to skip (internal packages, conda-only)
extra_mappings = {"gi" = "pygobject"} # additional import->pkg mappings
Or via CLI:
pytest --pep723-check --pep723-paths src/mypkg
Exceptions¶
Raised when a PEP 723 script has uncovered imports. |
Classes¶
Collector for a single PEP 723 script file. |
|
Test item that checks one PEP 723 script for uncovered imports. |
Functions¶
|
|
|
Resolve scan paths from CLI options or ini config. |
|
Resolve ignore set from CLI options or ini config. |
|
Register extra import->package mappings from ini config. |
|
|
|
Module Contents¶
- pytest_pep723.plugin.pytest_addoption(parser: pytest.Parser) None[source]¶
- pytest_pep723.plugin._get_config_paths(config: pytest.Config) list[pathlib.Path][source]¶
Resolve scan paths from CLI options or ini config.
- pytest_pep723.plugin._get_ignore_imports(config: pytest.Config) frozenset[str][source]¶
Resolve ignore set from CLI options or ini config.
- pytest_pep723.plugin._apply_extra_mappings(config: pytest.Config) None[source]¶
Register extra import->package mappings from ini config.
- pytest_pep723.plugin.pytest_configure(config: pytest.Config) None[source]¶
- class pytest_pep723.plugin.PEP723File(*, ignore_imports: frozenset[str], **kwargs)[source]¶
Bases:
pytest.FileCollector for a single PEP 723 script file.
- class pytest_pep723.plugin.PEP723Item(*, ignore_imports: frozenset[str], **kwargs)[source]¶
Bases:
pytest.ItemTest item that checks one PEP 723 script for uncovered imports.
- runtest() None[source]¶
Run the test case for this item.
Must be implemented by subclasses.
See also
- repr_failure(excinfo, style=None)[source]¶
Return a representation of a collection or test failure.
See also
- Parameters:
excinfo – Exception information for the failure.
- exception pytest_pep723.plugin.PEP723DepError(path: pathlib.Path, missing: list[str])[source]¶
Bases:
ExceptionRaised when a PEP 723 script has uncovered imports.
- pytest_pep723.plugin.pytest_collect_file(file_path: pathlib.Path, parent: pytest.Collector) PEP723File | None[source]¶