DSP-TOOLS Documentation
Installing dsp-tools
Install uv. On macOS and Linux, run:
curl -LsSf https://astral.sh/uv/install.sh | sh
On Windows, run:
powershell -ExecutionPolicy ByPass -c "irm https://astral.sh/uv/install.ps1 | iex"
Then run DSP-TOOLS with uvx:
uvx dsp-tools --version
uv downloads the Python version that DSP-TOOLS requires, if your computer does not have it.
uvx keeps using the version of DSP-TOOLS that it downloaded first.
To update to the latest version, run:
uvx dsp-tools@latest --version
To use the xmllib in your own scripts, create a uv project in the folder of your scripts
and add dsp-tools to it:
uv init
uv add dsp-tools
To update dsp-tools in this project, run:
uv lock --upgrade-package dsp-tools
Then run your scripts with uv run:
uv run my_script.py
🚨 If you do not use uv, make sure that your Python version is not older than the version that DSP-TOOLS requires. Otherwise, the installation can silently give you an outdated version of DSP-TOOLS.
DSP-TOOLS requires one of these Python versions:
The most recent version of DSP-TOOLS is
The dsp-tools package provides you with functionalities in the command line
to interact with the DSP-API, both remote and locally.
Additionally, it contains the xmllib which helps you construct the XML file required for a mass upload.
Where To Start?
dsp-tools provides you with the following core functionalities.
- Running a Local Stack: If you want to run your own DSP stack locally, take a look here.
- Data Modelling: There are several ways to create a data model with
dsp-tools- Take a look at the technical specification for the JSON file.
- Or take a look at our tool to convert Excel files into the JSON format.
- You can create a data model on the DSP-APP. To re-use that data model on another server you can use the CLI command described here.
- Data for Mass-Upload:
- If you want to create the XML file required for a mass-upload onto DSP, take a look at the
xmllib. - You can find an in-depth explanation of our XML file format here.
Please note, that we recommend to use the
xmlliblibrary to create the file as we will ensure interoperability between the DSP-API requirements and your input. - If you want to validate and upload your XML file take a look here. Please note, that only DaSCH employees are permitted to upload data on a production server. They use the project admin account of the project.
- If you want to create the XML file required for a mass-upload onto DSP, take a look at the
List of CLI Commands
The following CLI Commands are available, listed here in alphabetical order.
| Command | Description | Documentation |
|---|---|---|
create |
Create a project on a server from a JSON fileuvx dsp-tools create project.json |
→ |
excel2json |
Create the project definition JSON from Excel filesuvx dsp-tools excel2json excelfolder project.json |
→ |
excel2lists |
Create the list section of the project JSONuvx dsp-tools excel2lists excelfolder lists.json |
→ |
excel2properties |
Create the properties section of the JSONuvx dsp-tools excel2properties properties.xlsx properties.json |
→ |
excel2resources |
Create the resource section of the JSONuvx dsp-tools excel2resources resources.xlsx resources.json |
→ |
get |
Retrieve a project definition JSON from a serveruvx dsp-tools get -P 0XXX project.json |
→ |
id2iri |
Replace internal IDs with IRIs in an XML fileuvx dsp-tools id2iri new_data.xml id2iri_mapping.json |
→ |
ingest-files |
Kick off the ingest process and save the mapping CSVuvx dsp-tools ingest-files 0XXX |
→ |
ingest-xmlupload |
Create resources from XML after files are ingesteduvx dsp-tools ingest-xmlupload data.xml |
→ |
mapping config |
Create a mapping YAML config fileuvx dsp-tools mapping config -P 0XXX --ontology my-onto |
→ |
mapping update |
Replace external ontology mappings from an Excel fileuvx dsp-tools mapping update 0XXX-my-onto-mapping.yaml |
→ |
migration config |
Create a migration config YAML fileuvx dsp-tools migration config -P 0XXX |
→ |
migration complete |
Execute a complete migrationuvx dsp-tools migration complete migration-0XXX.yaml |
→ |
migration export |
Download project data from the source serveruvx dsp-tools migration export migration-0XXX.yaml |
→ |
migration import |
Import a downloaded export to another serveruvx dsp-tools migration import migration-0XXX.yaml |
→ |
migration clean-up |
Clean up local files and server referencesuvx dsp-tools migration clean-up migration-0XXX.yaml |
→ |
old-excel2json |
Create project definition JSON using the old Excel formatuvx dsp-tools old-excel2json excelfolder project.json |
→ |
old-excel2lists |
Create the list section using the old Excel formatuvx dsp-tools old-excel2lists excelfolder lists.json |
→ |
resume-xmlupload |
Resume a previously interrupted xmluploaduvx dsp-tools resume-xmlupload |
→ |
start-stack |
Start a local DSP stackuvx dsp-tools start-stack |
→ |
stop-stack |
Stop the local DSP stackuvx dsp-tools stop-stack |
→ |
update-legal |
Move legal metadata onto <bitstream> attributesuvx dsp-tools update-legal [mandatory options] data.xml |
→ |
upload-files |
Upload multimedia files referenced in an XML fileuvx dsp-tools upload-files data.xml |
→ |
validate-data |
Validate XML data against a data model on a serveruvx dsp-tools validate-data data.xml |
→ |
xmlupload |
Create resources from an XML file on a serveruvx dsp-tools xmlupload data.xml |
→ |