Subjects tooling for InvenioRDM.
This distribution package provides an invenio subcommand group to manage controlled vocabulary subjects.
In particular, it provides functionality to:
- generate and update the initial list of subject terms for a vocabulary distribution package.
- update a running instance's subjects by analyzing the delta between the instance and the updated target list of terms.
The goal is for this package to provide a framing for any subjects operations/CLI tooling. See https://github.com/galterlibrary/invenio-subjects-mesh-lite for an example of how this package is used and extrapolate from that how it could be used for other scenarios.
uv add galter-subjects-utilsThis repository follows semantic versioning indexed on invenio-app-rdm compatibility according to the table below:
| galter-subjects-utils | invenio-app-rdm version |
|---|---|
| 0.11.X | 13.X + 14.X |
| 0.7.X - 0.10.X | 13.X |
| 0.5.X, 0.6.x | 12.X |
This just means for example that version 0.7 guarantees generation of subjects files and subject manipulation compatible with invenio-app-rdm v13. When there is a break in subjects format, this tool will bump its major version.
In virtualenv ((venv) denotes that going forward):
(venv) invenio galter-subjects --helpInstall the project in editable mode with dev dependencies in an isolated virtualenv:
uv pip install -e .[dev]Run tests:
uv run invoke test
# or shorter
uv run inv testTo check compatibility with the pre-release version of InvenioRDM (invenio-app-rdm):
uv run --extra dev_pre --prerelease=allow inv test