check:pyproject
Introduction
check:pyproject checks the pyproject.toml of your selected product. It reads its syntax, dependencies, feature lists, namespaces and SPL, and tells you what is off.
splent check:pyproject
[✔] pyproject.toml parsed successfully
[✔] Project name: my_first_app
[✔] Project version: 0.0.1
[✔] All 0 dependencies satisfied
[✔] 4 features in [tool.splent].features
[✔] SPL model sample_splent_spl (UVL found at /workspace/.splent_cache/spls/sample_splent_spl@10.5281_zenodo.20837624/sample_splent_spl.uvl)
Only a failure makes it exit 1. Warnings do not. splent doctor runs it in its Environment section.
Fixing what it reports
Duplicate feature '<name>' means the feature appears twice across features, features_dev and features_prod. Keep one entry.
SPL model <name> not downloaded yet means the model is pinned but not on disk. Run the splent spl:fetch command it prints.
Missing dependencies: <names> means a dependency of [project].dependencies is not installed in the Python the CLI runs.
Reference
| Check | Passes when | Otherwise |
|---|---|---|
| TOML | It parses | Failure |
| Project name and version | Present | Warning |
| Dependencies | All installed, compared by distribution name. PEP 508 markers and direct URLs are understood, and a dependency whose marker excludes this platform or Python is skipped | Failure, Missing dependencies: <names> or Invalid dependency '<dep>' (not a PEP 508 requirement) |
| Features | Counts features, and features_dev and features_prod when present |
|
| Duplicates | No feature twice across the three lists | Failure, naming every entry |
| Namespaces | Each org spelled one way. Features of different orgs are fine | Warning, such as Inconsistent namespaces: splent-io, splent_io |
| SPL | [tool.splent].spl names a model whose UVL is on disk, in its working copy or in .splent_cache/spls/ |
Warning when it is pinned and not fetched yet. Failure with no UVL on disk and no DOI recorded |
A product with no spl may name a file under its uvl/ folder in [tool.splent.uvl].file, which must exist. With neither key it warns No SPL configured.