dsp-tools 17.0.0.post26__tar.gz → 17.0.0.post29__tar.gz
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Potentially problematic release.
This version of dsp-tools might be problematic. Click here for more details.
- {dsp_tools-17.0.0.post26 → dsp_tools-17.0.0.post29}/PKG-INFO +1 -1
- {dsp_tools-17.0.0.post26 → dsp_tools-17.0.0.post29}/pyproject.toml +1 -1
- {dsp_tools-17.0.0.post26 → dsp_tools-17.0.0.post29}/src/dsp_tools/cli/args.py +1 -0
- {dsp_tools-17.0.0.post26 → dsp_tools-17.0.0.post29}/src/dsp_tools/cli/call_action.py +3 -0
- {dsp_tools-17.0.0.post26 → dsp_tools-17.0.0.post29}/src/dsp_tools/cli/create_parsers.py +21 -0
- {dsp_tools-17.0.0.post26 → dsp_tools-17.0.0.post29}/src/dsp_tools/clients/metadata_client.py +4 -4
- {dsp_tools-17.0.0.post26 → dsp_tools-17.0.0.post29}/src/dsp_tools/clients/metadata_client_live.py +6 -5
- {dsp_tools-17.0.0.post26 → dsp_tools-17.0.0.post29}/src/dsp_tools/commands/ingest_xmlupload/create_resources/upload_xml.py +4 -0
- {dsp_tools-17.0.0.post26 → dsp_tools-17.0.0.post29}/src/dsp_tools/commands/validate_data/models/input_problems.py +1 -0
- {dsp_tools-17.0.0.post26 → dsp_tools-17.0.0.post29}/src/dsp_tools/commands/validate_data/prepare_data/prepare_data.py +16 -9
- {dsp_tools-17.0.0.post26 → dsp_tools-17.0.0.post29}/src/dsp_tools/commands/validate_data/process_validation_report/get_user_validation_message.py +53 -23
- {dsp_tools-17.0.0.post26 → dsp_tools-17.0.0.post29}/src/dsp_tools/commands/validate_data/validate_data.py +11 -3
- {dsp_tools-17.0.0.post26 → dsp_tools-17.0.0.post29}/src/dsp_tools/commands/xmlupload/upload_config.py +1 -0
- {dsp_tools-17.0.0.post26 → dsp_tools-17.0.0.post29}/src/dsp_tools/commands/xmlupload/xmlupload.py +1 -0
- {dsp_tools-17.0.0.post26 → dsp_tools-17.0.0.post29}/docs/index.md +0 -0
- {dsp_tools-17.0.0.post26 → dsp_tools-17.0.0.post29}/src/dsp_tools/__init__.py +0 -0
- {dsp_tools-17.0.0.post26 → dsp_tools-17.0.0.post29}/src/dsp_tools/cli/__init__.py +0 -0
- {dsp_tools-17.0.0.post26 → dsp_tools-17.0.0.post29}/src/dsp_tools/cli/entry_point.py +0 -0
- {dsp_tools-17.0.0.post26 → dsp_tools-17.0.0.post29}/src/dsp_tools/clients/__init__.py +0 -0
- {dsp_tools-17.0.0.post26 → dsp_tools-17.0.0.post29}/src/dsp_tools/clients/authentication_client.py +0 -0
- {dsp_tools-17.0.0.post26 → dsp_tools-17.0.0.post29}/src/dsp_tools/clients/authentication_client_live.py +0 -0
- {dsp_tools-17.0.0.post26 → dsp_tools-17.0.0.post29}/src/dsp_tools/clients/connection.py +0 -0
- {dsp_tools-17.0.0.post26 → dsp_tools-17.0.0.post29}/src/dsp_tools/clients/connection_live.py +0 -0
- {dsp_tools-17.0.0.post26 → dsp_tools-17.0.0.post29}/src/dsp_tools/clients/fuseki_metrics.py +0 -0
- {dsp_tools-17.0.0.post26 → dsp_tools-17.0.0.post29}/src/dsp_tools/clients/legal_info_client.py +0 -0
- {dsp_tools-17.0.0.post26 → dsp_tools-17.0.0.post29}/src/dsp_tools/clients/legal_info_client_live.py +0 -0
- {dsp_tools-17.0.0.post26 → dsp_tools-17.0.0.post29}/src/dsp_tools/clients/ontology_client.py +0 -0
- {dsp_tools-17.0.0.post26 → dsp_tools-17.0.0.post29}/src/dsp_tools/clients/ontology_client_live.py +0 -0
- {dsp_tools-17.0.0.post26 → dsp_tools-17.0.0.post29}/src/dsp_tools/commands/__init__.py +0 -0
- {dsp_tools-17.0.0.post26 → dsp_tools-17.0.0.post29}/src/dsp_tools/commands/create/__init__.py +0 -0
- {dsp_tools-17.0.0.post26 → dsp_tools-17.0.0.post29}/src/dsp_tools/commands/create/communicate_problems.py +0 -0
- {dsp_tools-17.0.0.post26 → dsp_tools-17.0.0.post29}/src/dsp_tools/commands/create/constants.py +0 -0
- {dsp_tools-17.0.0.post26 → dsp_tools-17.0.0.post29}/src/dsp_tools/commands/create/create_on_server/__init__.py +0 -0
- {dsp_tools-17.0.0.post26 → dsp_tools-17.0.0.post29}/src/dsp_tools/commands/create/create_on_server/cardinalities.py +0 -0
- {dsp_tools-17.0.0.post26 → dsp_tools-17.0.0.post29}/src/dsp_tools/commands/create/create_on_server/mappers.py +0 -0
- {dsp_tools-17.0.0.post26 → dsp_tools-17.0.0.post29}/src/dsp_tools/commands/create/models/__init__.py +0 -0
- {dsp_tools-17.0.0.post26 → dsp_tools-17.0.0.post29}/src/dsp_tools/commands/create/models/input_problems.py +0 -0
- {dsp_tools-17.0.0.post26 → dsp_tools-17.0.0.post29}/src/dsp_tools/commands/create/models/parsed_ontology.py +0 -0
- {dsp_tools-17.0.0.post26 → dsp_tools-17.0.0.post29}/src/dsp_tools/commands/create/models/parsed_project.py +0 -0
- {dsp_tools-17.0.0.post26 → dsp_tools-17.0.0.post29}/src/dsp_tools/commands/create/models/rdf_ontology.py +0 -0
- {dsp_tools-17.0.0.post26 → dsp_tools-17.0.0.post29}/src/dsp_tools/commands/create/models/server_project_info.py +0 -0
- {dsp_tools-17.0.0.post26 → dsp_tools-17.0.0.post29}/src/dsp_tools/commands/create/parsing/__init__.py +0 -0
- {dsp_tools-17.0.0.post26 → dsp_tools-17.0.0.post29}/src/dsp_tools/commands/create/parsing/parse_ontology.py +0 -0
- {dsp_tools-17.0.0.post26 → dsp_tools-17.0.0.post29}/src/dsp_tools/commands/create/parsing/parse_project.py +0 -0
- {dsp_tools-17.0.0.post26 → dsp_tools-17.0.0.post29}/src/dsp_tools/commands/create/parsing/parsing_utils.py +0 -0
- {dsp_tools-17.0.0.post26 → dsp_tools-17.0.0.post29}/src/dsp_tools/commands/create/serialisation/__init__.py +0 -0
- {dsp_tools-17.0.0.post26 → dsp_tools-17.0.0.post29}/src/dsp_tools/commands/create/serialisation/ontology.py +0 -0
- {dsp_tools-17.0.0.post26 → dsp_tools-17.0.0.post29}/src/dsp_tools/commands/excel2json/CLAUDE.md +0 -0
- {dsp_tools-17.0.0.post26 → dsp_tools-17.0.0.post29}/src/dsp_tools/commands/excel2json/__init__.py +0 -0
- {dsp_tools-17.0.0.post26 → dsp_tools-17.0.0.post29}/src/dsp_tools/commands/excel2json/json_header.py +0 -0
- {dsp_tools-17.0.0.post26 → dsp_tools-17.0.0.post29}/src/dsp_tools/commands/excel2json/lists/__init__.py +0 -0
- {dsp_tools-17.0.0.post26 → dsp_tools-17.0.0.post29}/src/dsp_tools/commands/excel2json/lists/compliance_checks.py +0 -0
- {dsp_tools-17.0.0.post26 → dsp_tools-17.0.0.post29}/src/dsp_tools/commands/excel2json/lists/make_lists.py +0 -0
- {dsp_tools-17.0.0.post26 → dsp_tools-17.0.0.post29}/src/dsp_tools/commands/excel2json/lists/models/__init__.py +0 -0
- {dsp_tools-17.0.0.post26 → dsp_tools-17.0.0.post29}/src/dsp_tools/commands/excel2json/lists/models/deserialise.py +0 -0
- {dsp_tools-17.0.0.post26 → dsp_tools-17.0.0.post29}/src/dsp_tools/commands/excel2json/lists/models/input_error.py +0 -0
- {dsp_tools-17.0.0.post26 → dsp_tools-17.0.0.post29}/src/dsp_tools/commands/excel2json/lists/models/serialise.py +0 -0
- {dsp_tools-17.0.0.post26 → dsp_tools-17.0.0.post29}/src/dsp_tools/commands/excel2json/lists/utils.py +0 -0
- {dsp_tools-17.0.0.post26 → dsp_tools-17.0.0.post29}/src/dsp_tools/commands/excel2json/models/__init__.py +0 -0
- {dsp_tools-17.0.0.post26 → dsp_tools-17.0.0.post29}/src/dsp_tools/commands/excel2json/models/input_error.py +0 -0
- {dsp_tools-17.0.0.post26 → dsp_tools-17.0.0.post29}/src/dsp_tools/commands/excel2json/models/json_header.py +0 -0
- {dsp_tools-17.0.0.post26 → dsp_tools-17.0.0.post29}/src/dsp_tools/commands/excel2json/models/list_node_name.py +0 -0
- {dsp_tools-17.0.0.post26 → dsp_tools-17.0.0.post29}/src/dsp_tools/commands/excel2json/models/ontology.py +0 -0
- {dsp_tools-17.0.0.post26 → dsp_tools-17.0.0.post29}/src/dsp_tools/commands/excel2json/old_lists.py +0 -0
- {dsp_tools-17.0.0.post26 → dsp_tools-17.0.0.post29}/src/dsp_tools/commands/excel2json/project.py +0 -0
- {dsp_tools-17.0.0.post26 → dsp_tools-17.0.0.post29}/src/dsp_tools/commands/excel2json/properties.py +0 -0
- {dsp_tools-17.0.0.post26 → dsp_tools-17.0.0.post29}/src/dsp_tools/commands/excel2json/resources.py +0 -0
- {dsp_tools-17.0.0.post26 → dsp_tools-17.0.0.post29}/src/dsp_tools/commands/excel2json/utils.py +0 -0
- {dsp_tools-17.0.0.post26 → dsp_tools-17.0.0.post29}/src/dsp_tools/commands/excel2xml/__init__.py +0 -0
- {dsp_tools-17.0.0.post26 → dsp_tools-17.0.0.post29}/src/dsp_tools/commands/excel2xml/excel2xml_cli.py +0 -0
- {dsp_tools-17.0.0.post26 → dsp_tools-17.0.0.post29}/src/dsp_tools/commands/excel2xml/excel2xml_lib.py +0 -0
- {dsp_tools-17.0.0.post26 → dsp_tools-17.0.0.post29}/src/dsp_tools/commands/excel2xml/propertyelement.py +0 -0
- {dsp_tools-17.0.0.post26 → dsp_tools-17.0.0.post29}/src/dsp_tools/commands/id2iri.py +0 -0
- {dsp_tools-17.0.0.post26 → dsp_tools-17.0.0.post29}/src/dsp_tools/commands/ingest_xmlupload/__init__.py +0 -0
- {dsp_tools-17.0.0.post26 → dsp_tools-17.0.0.post29}/src/dsp_tools/commands/ingest_xmlupload/bulk_ingest_client.py +0 -0
- {dsp_tools-17.0.0.post26 → dsp_tools-17.0.0.post29}/src/dsp_tools/commands/ingest_xmlupload/create_resources/__init__.py +0 -0
- {dsp_tools-17.0.0.post26 → dsp_tools-17.0.0.post29}/src/dsp_tools/commands/ingest_xmlupload/create_resources/apply_ingest_id.py +0 -0
- {dsp_tools-17.0.0.post26 → dsp_tools-17.0.0.post29}/src/dsp_tools/commands/ingest_xmlupload/create_resources/user_information.py +0 -0
- {dsp_tools-17.0.0.post26 → dsp_tools-17.0.0.post29}/src/dsp_tools/commands/ingest_xmlupload/ingest_files/__init__.py +0 -0
- {dsp_tools-17.0.0.post26 → dsp_tools-17.0.0.post29}/src/dsp_tools/commands/ingest_xmlupload/ingest_files/ingest_files.py +0 -0
- {dsp_tools-17.0.0.post26 → dsp_tools-17.0.0.post29}/src/dsp_tools/commands/ingest_xmlupload/upload_files/__init__.py +0 -0
- {dsp_tools-17.0.0.post26 → dsp_tools-17.0.0.post29}/src/dsp_tools/commands/ingest_xmlupload/upload_files/filechecker.py +0 -0
- {dsp_tools-17.0.0.post26 → dsp_tools-17.0.0.post29}/src/dsp_tools/commands/ingest_xmlupload/upload_files/input_error.py +0 -0
- {dsp_tools-17.0.0.post26 → dsp_tools-17.0.0.post29}/src/dsp_tools/commands/ingest_xmlupload/upload_files/upload_failures.py +0 -0
- {dsp_tools-17.0.0.post26 → dsp_tools-17.0.0.post29}/src/dsp_tools/commands/ingest_xmlupload/upload_files/upload_files.py +0 -0
- {dsp_tools-17.0.0.post26 → dsp_tools-17.0.0.post29}/src/dsp_tools/commands/project/__init__.py +0 -0
- {dsp_tools-17.0.0.post26 → dsp_tools-17.0.0.post29}/src/dsp_tools/commands/project/create/__init__.py +0 -0
- {dsp_tools-17.0.0.post26 → dsp_tools-17.0.0.post29}/src/dsp_tools/commands/project/create/parse_project.py +0 -0
- {dsp_tools-17.0.0.post26 → dsp_tools-17.0.0.post29}/src/dsp_tools/commands/project/create/project_create_all.py +0 -0
- {dsp_tools-17.0.0.post26 → dsp_tools-17.0.0.post29}/src/dsp_tools/commands/project/create/project_create_default_permissions.py +0 -0
- {dsp_tools-17.0.0.post26 → dsp_tools-17.0.0.post29}/src/dsp_tools/commands/project/create/project_create_lists.py +0 -0
- {dsp_tools-17.0.0.post26 → dsp_tools-17.0.0.post29}/src/dsp_tools/commands/project/create/project_create_ontologies.py +0 -0
- {dsp_tools-17.0.0.post26 → dsp_tools-17.0.0.post29}/src/dsp_tools/commands/project/create/project_validate.py +0 -0
- {dsp_tools-17.0.0.post26 → dsp_tools-17.0.0.post29}/src/dsp_tools/commands/project/get/__init__.py +0 -0
- {dsp_tools-17.0.0.post26 → dsp_tools-17.0.0.post29}/src/dsp_tools/commands/project/get/get.py +0 -0
- {dsp_tools-17.0.0.post26 → dsp_tools-17.0.0.post29}/src/dsp_tools/commands/project/get/get_permissions.py +0 -0
- {dsp_tools-17.0.0.post26 → dsp_tools-17.0.0.post29}/src/dsp_tools/commands/project/get/get_permissions_legacy.py +0 -0
- {dsp_tools-17.0.0.post26 → dsp_tools-17.0.0.post29}/src/dsp_tools/commands/project/legacy_models/__init__.py +0 -0
- {dsp_tools-17.0.0.post26 → dsp_tools-17.0.0.post29}/src/dsp_tools/commands/project/legacy_models/context.py +0 -0
- {dsp_tools-17.0.0.post26 → dsp_tools-17.0.0.post29}/src/dsp_tools/commands/project/legacy_models/group.py +0 -0
- {dsp_tools-17.0.0.post26 → dsp_tools-17.0.0.post29}/src/dsp_tools/commands/project/legacy_models/helpers.py +0 -0
- {dsp_tools-17.0.0.post26 → dsp_tools-17.0.0.post29}/src/dsp_tools/commands/project/legacy_models/listnode.py +0 -0
- {dsp_tools-17.0.0.post26 → dsp_tools-17.0.0.post29}/src/dsp_tools/commands/project/legacy_models/model.py +0 -0
- {dsp_tools-17.0.0.post26 → dsp_tools-17.0.0.post29}/src/dsp_tools/commands/project/legacy_models/ontology.py +0 -0
- {dsp_tools-17.0.0.post26 → dsp_tools-17.0.0.post29}/src/dsp_tools/commands/project/legacy_models/project.py +0 -0
- {dsp_tools-17.0.0.post26 → dsp_tools-17.0.0.post29}/src/dsp_tools/commands/project/legacy_models/propertyclass.py +0 -0
- {dsp_tools-17.0.0.post26 → dsp_tools-17.0.0.post29}/src/dsp_tools/commands/project/legacy_models/resourceclass.py +0 -0
- {dsp_tools-17.0.0.post26 → dsp_tools-17.0.0.post29}/src/dsp_tools/commands/project/legacy_models/user.py +0 -0
- {dsp_tools-17.0.0.post26 → dsp_tools-17.0.0.post29}/src/dsp_tools/commands/project/models/__init__.py +0 -0
- {dsp_tools-17.0.0.post26 → dsp_tools-17.0.0.post29}/src/dsp_tools/commands/project/models/permissions_client.py +0 -0
- {dsp_tools-17.0.0.post26 → dsp_tools-17.0.0.post29}/src/dsp_tools/commands/project/models/permissions_models.py +0 -0
- {dsp_tools-17.0.0.post26 → dsp_tools-17.0.0.post29}/src/dsp_tools/commands/project/models/project_definition.py +0 -0
- {dsp_tools-17.0.0.post26 → dsp_tools-17.0.0.post29}/src/dsp_tools/commands/resume_xmlupload/__init__.py +0 -0
- {dsp_tools-17.0.0.post26 → dsp_tools-17.0.0.post29}/src/dsp_tools/commands/resume_xmlupload/resume_xmlupload.py +0 -0
- {dsp_tools-17.0.0.post26 → dsp_tools-17.0.0.post29}/src/dsp_tools/commands/start_stack.py +0 -0
- {dsp_tools-17.0.0.post26 → dsp_tools-17.0.0.post29}/src/dsp_tools/commands/validate_data/CLAUDE.md +0 -0
- {dsp_tools-17.0.0.post26 → dsp_tools-17.0.0.post29}/src/dsp_tools/commands/validate_data/__init__.py +0 -0
- {dsp_tools-17.0.0.post26 → dsp_tools-17.0.0.post29}/src/dsp_tools/commands/validate_data/api_clients.py +0 -0
- {dsp_tools-17.0.0.post26 → dsp_tools-17.0.0.post29}/src/dsp_tools/commands/validate_data/constants.py +0 -0
- {dsp_tools-17.0.0.post26 → dsp_tools-17.0.0.post29}/src/dsp_tools/commands/validate_data/mappers.py +0 -0
- {dsp_tools-17.0.0.post26 → dsp_tools-17.0.0.post29}/src/dsp_tools/commands/validate_data/models/__init__.py +0 -0
- {dsp_tools-17.0.0.post26 → dsp_tools-17.0.0.post29}/src/dsp_tools/commands/validate_data/models/api_responses.py +0 -0
- {dsp_tools-17.0.0.post26 → dsp_tools-17.0.0.post29}/src/dsp_tools/commands/validate_data/models/rdf_like_data.py +0 -0
- {dsp_tools-17.0.0.post26 → dsp_tools-17.0.0.post29}/src/dsp_tools/commands/validate_data/models/validation.py +0 -0
- {dsp_tools-17.0.0.post26 → dsp_tools-17.0.0.post29}/src/dsp_tools/commands/validate_data/prepare_data/__init__.py +0 -0
- {dsp_tools-17.0.0.post26 → dsp_tools-17.0.0.post29}/src/dsp_tools/commands/validate_data/prepare_data/get_rdf_like_data.py +0 -0
- {dsp_tools-17.0.0.post26 → dsp_tools-17.0.0.post29}/src/dsp_tools/commands/validate_data/prepare_data/make_data_graph.py +0 -0
- {dsp_tools-17.0.0.post26 → dsp_tools-17.0.0.post29}/src/dsp_tools/commands/validate_data/process_validation_report/__init__.py +0 -0
- {dsp_tools-17.0.0.post26 → dsp_tools-17.0.0.post29}/src/dsp_tools/commands/validate_data/process_validation_report/query_validation_result.py +0 -0
- {dsp_tools-17.0.0.post26 → dsp_tools-17.0.0.post29}/src/dsp_tools/commands/validate_data/process_validation_report/reformat_validation_results.py +0 -0
- {dsp_tools-17.0.0.post26 → dsp_tools-17.0.0.post29}/src/dsp_tools/commands/validate_data/shacl_cli_validator.py +0 -0
- {dsp_tools-17.0.0.post26 → dsp_tools-17.0.0.post29}/src/dsp_tools/commands/validate_data/sparql/__init__.py +0 -0
- {dsp_tools-17.0.0.post26 → dsp_tools-17.0.0.post29}/src/dsp_tools/commands/validate_data/sparql/cardinality_shacl.py +0 -0
- {dsp_tools-17.0.0.post26 → dsp_tools-17.0.0.post29}/src/dsp_tools/commands/validate_data/sparql/construct_shacl.py +0 -0
- {dsp_tools-17.0.0.post26 → dsp_tools-17.0.0.post29}/src/dsp_tools/commands/validate_data/sparql/legal_info_shacl.py +0 -0
- {dsp_tools-17.0.0.post26 → dsp_tools-17.0.0.post29}/src/dsp_tools/commands/validate_data/sparql/value_shacl.py +0 -0
- {dsp_tools-17.0.0.post26 → dsp_tools-17.0.0.post29}/src/dsp_tools/commands/validate_data/utils.py +0 -0
- {dsp_tools-17.0.0.post26 → dsp_tools-17.0.0.post29}/src/dsp_tools/commands/validate_data/validation/__init__.py +0 -0
- {dsp_tools-17.0.0.post26 → dsp_tools-17.0.0.post29}/src/dsp_tools/commands/validate_data/validation/check_duplicate_files.py +0 -0
- {dsp_tools-17.0.0.post26 → dsp_tools-17.0.0.post29}/src/dsp_tools/commands/validate_data/validation/check_for_unknown_classes.py +0 -0
- {dsp_tools-17.0.0.post26 → dsp_tools-17.0.0.post29}/src/dsp_tools/commands/validate_data/validation/get_validation_report.py +0 -0
- {dsp_tools-17.0.0.post26 → dsp_tools-17.0.0.post29}/src/dsp_tools/commands/validate_data/validation/validate_ontology.py +0 -0
- {dsp_tools-17.0.0.post26 → dsp_tools-17.0.0.post29}/src/dsp_tools/commands/xmlupload/CLAUDE.md +0 -0
- {dsp_tools-17.0.0.post26 → dsp_tools-17.0.0.post29}/src/dsp_tools/commands/xmlupload/__init__.py +0 -0
- {dsp_tools-17.0.0.post26 → dsp_tools-17.0.0.post29}/src/dsp_tools/commands/xmlupload/iri_resolver.py +0 -0
- {dsp_tools-17.0.0.post26 → dsp_tools-17.0.0.post29}/src/dsp_tools/commands/xmlupload/make_rdf_graph/__init__.py +0 -0
- {dsp_tools-17.0.0.post26 → dsp_tools-17.0.0.post29}/src/dsp_tools/commands/xmlupload/make_rdf_graph/constants.py +0 -0
- {dsp_tools-17.0.0.post26 → dsp_tools-17.0.0.post29}/src/dsp_tools/commands/xmlupload/make_rdf_graph/jsonld_utils.py +0 -0
- {dsp_tools-17.0.0.post26 → dsp_tools-17.0.0.post29}/src/dsp_tools/commands/xmlupload/make_rdf_graph/make_file_value.py +0 -0
- {dsp_tools-17.0.0.post26 → dsp_tools-17.0.0.post29}/src/dsp_tools/commands/xmlupload/make_rdf_graph/make_resource_and_values.py +0 -0
- {dsp_tools-17.0.0.post26 → dsp_tools-17.0.0.post29}/src/dsp_tools/commands/xmlupload/make_rdf_graph/make_values.py +0 -0
- {dsp_tools-17.0.0.post26 → dsp_tools-17.0.0.post29}/src/dsp_tools/commands/xmlupload/models/__init__.py +0 -0
- {dsp_tools-17.0.0.post26 → dsp_tools-17.0.0.post29}/src/dsp_tools/commands/xmlupload/models/bitstream_info.py +0 -0
- {dsp_tools-17.0.0.post26 → dsp_tools-17.0.0.post29}/src/dsp_tools/commands/xmlupload/models/formatted_text_value.py +0 -0
- {dsp_tools-17.0.0.post26 → dsp_tools-17.0.0.post29}/src/dsp_tools/commands/xmlupload/models/ingest.py +0 -0
- {dsp_tools-17.0.0.post26 → dsp_tools-17.0.0.post29}/src/dsp_tools/commands/xmlupload/models/input_problems.py +0 -0
- {dsp_tools-17.0.0.post26 → dsp_tools-17.0.0.post29}/src/dsp_tools/commands/xmlupload/models/lookup_models.py +0 -0
- {dsp_tools-17.0.0.post26 → dsp_tools-17.0.0.post29}/src/dsp_tools/commands/xmlupload/models/permission.py +0 -0
- {dsp_tools-17.0.0.post26 → dsp_tools-17.0.0.post29}/src/dsp_tools/commands/xmlupload/models/permissions_parsed.py +0 -0
- {dsp_tools-17.0.0.post26 → dsp_tools-17.0.0.post29}/src/dsp_tools/commands/xmlupload/models/processed/__init__.py +0 -0
- {dsp_tools-17.0.0.post26 → dsp_tools-17.0.0.post29}/src/dsp_tools/commands/xmlupload/models/processed/file_values.py +0 -0
- {dsp_tools-17.0.0.post26 → dsp_tools-17.0.0.post29}/src/dsp_tools/commands/xmlupload/models/processed/res.py +0 -0
- {dsp_tools-17.0.0.post26 → dsp_tools-17.0.0.post29}/src/dsp_tools/commands/xmlupload/models/processed/values.py +0 -0
- {dsp_tools-17.0.0.post26 → dsp_tools-17.0.0.post29}/src/dsp_tools/commands/xmlupload/models/rdf_models.py +0 -0
- {dsp_tools-17.0.0.post26 → dsp_tools-17.0.0.post29}/src/dsp_tools/commands/xmlupload/models/upload_clients.py +0 -0
- {dsp_tools-17.0.0.post26 → dsp_tools-17.0.0.post29}/src/dsp_tools/commands/xmlupload/models/upload_state.py +0 -0
- {dsp_tools-17.0.0.post26 → dsp_tools-17.0.0.post29}/src/dsp_tools/commands/xmlupload/prepare_xml_input/__init__.py +0 -0
- {dsp_tools-17.0.0.post26 → dsp_tools-17.0.0.post29}/src/dsp_tools/commands/xmlupload/prepare_xml_input/ark2iri.py +0 -0
- {dsp_tools-17.0.0.post26 → dsp_tools-17.0.0.post29}/src/dsp_tools/commands/xmlupload/prepare_xml_input/get_processed_resources.py +0 -0
- {dsp_tools-17.0.0.post26 → dsp_tools-17.0.0.post29}/src/dsp_tools/commands/xmlupload/prepare_xml_input/iiif_uri_validator.py +0 -0
- {dsp_tools-17.0.0.post26 → dsp_tools-17.0.0.post29}/src/dsp_tools/commands/xmlupload/prepare_xml_input/list_client.py +0 -0
- {dsp_tools-17.0.0.post26 → dsp_tools-17.0.0.post29}/src/dsp_tools/commands/xmlupload/prepare_xml_input/prepare_xml_input.py +0 -0
- {dsp_tools-17.0.0.post26 → dsp_tools-17.0.0.post29}/src/dsp_tools/commands/xmlupload/prepare_xml_input/read_validate_xml_file.py +0 -0
- {dsp_tools-17.0.0.post26 → dsp_tools-17.0.0.post29}/src/dsp_tools/commands/xmlupload/prepare_xml_input/transform_input_values.py +0 -0
- {dsp_tools-17.0.0.post26 → dsp_tools-17.0.0.post29}/src/dsp_tools/commands/xmlupload/project_client.py +0 -0
- {dsp_tools-17.0.0.post26 → dsp_tools-17.0.0.post29}/src/dsp_tools/commands/xmlupload/resource_create_client.py +0 -0
- {dsp_tools-17.0.0.post26 → dsp_tools-17.0.0.post29}/src/dsp_tools/commands/xmlupload/richtext_id2iri.py +0 -0
- {dsp_tools-17.0.0.post26 → dsp_tools-17.0.0.post29}/src/dsp_tools/commands/xmlupload/stash/__init__.py +0 -0
- {dsp_tools-17.0.0.post26 → dsp_tools-17.0.0.post29}/src/dsp_tools/commands/xmlupload/stash/analyse_circular_reference_graph.py +0 -0
- {dsp_tools-17.0.0.post26 → dsp_tools-17.0.0.post29}/src/dsp_tools/commands/xmlupload/stash/create_info_for_graph.py +0 -0
- {dsp_tools-17.0.0.post26 → dsp_tools-17.0.0.post29}/src/dsp_tools/commands/xmlupload/stash/graph_models.py +0 -0
- {dsp_tools-17.0.0.post26 → dsp_tools-17.0.0.post29}/src/dsp_tools/commands/xmlupload/stash/stash_circular_references.py +0 -0
- {dsp_tools-17.0.0.post26 → dsp_tools-17.0.0.post29}/src/dsp_tools/commands/xmlupload/stash/stash_models.py +0 -0
- {dsp_tools-17.0.0.post26 → dsp_tools-17.0.0.post29}/src/dsp_tools/commands/xmlupload/stash/upload_stashed_resptr_props.py +0 -0
- {dsp_tools-17.0.0.post26 → dsp_tools-17.0.0.post29}/src/dsp_tools/commands/xmlupload/stash/upload_stashed_xml_texts.py +0 -0
- {dsp_tools-17.0.0.post26 → dsp_tools-17.0.0.post29}/src/dsp_tools/commands/xmlupload/write_diagnostic_info.py +0 -0
- {dsp_tools-17.0.0.post26 → dsp_tools-17.0.0.post29}/src/dsp_tools/config/__init__.py +0 -0
- {dsp_tools-17.0.0.post26 → dsp_tools-17.0.0.post29}/src/dsp_tools/config/logger_config.py +0 -0
- {dsp_tools-17.0.0.post26 → dsp_tools-17.0.0.post29}/src/dsp_tools/config/warnings_config.py +0 -0
- {dsp_tools-17.0.0.post26 → dsp_tools-17.0.0.post29}/src/dsp_tools/error/__init__.py +0 -0
- {dsp_tools-17.0.0.post26 → dsp_tools-17.0.0.post29}/src/dsp_tools/error/custom_warnings.py +0 -0
- {dsp_tools-17.0.0.post26 → dsp_tools-17.0.0.post29}/src/dsp_tools/error/exceptions.py +0 -0
- {dsp_tools-17.0.0.post26 → dsp_tools-17.0.0.post29}/src/dsp_tools/error/problems.py +0 -0
- {dsp_tools-17.0.0.post26 → dsp_tools-17.0.0.post29}/src/dsp_tools/error/xmllib_errors.py +0 -0
- {dsp_tools-17.0.0.post26 → dsp_tools-17.0.0.post29}/src/dsp_tools/error/xmllib_warnings.py +0 -0
- {dsp_tools-17.0.0.post26 → dsp_tools-17.0.0.post29}/src/dsp_tools/error/xmllib_warnings_util.py +0 -0
- {dsp_tools-17.0.0.post26 → dsp_tools-17.0.0.post29}/src/dsp_tools/error/xsd_validation_error_msg.py +0 -0
- {dsp_tools-17.0.0.post26 → dsp_tools-17.0.0.post29}/src/dsp_tools/legacy_models/__init__.py +0 -0
- {dsp_tools-17.0.0.post26 → dsp_tools-17.0.0.post29}/src/dsp_tools/legacy_models/datetimestamp.py +0 -0
- {dsp_tools-17.0.0.post26 → dsp_tools-17.0.0.post29}/src/dsp_tools/legacy_models/langstring.py +0 -0
- {dsp_tools-17.0.0.post26 → dsp_tools-17.0.0.post29}/src/dsp_tools/legacy_models/projectContext.py +0 -0
- {dsp_tools-17.0.0.post26 → dsp_tools-17.0.0.post29}/src/dsp_tools/py.typed +0 -0
- {dsp_tools-17.0.0.post26 → dsp_tools-17.0.0.post29}/src/dsp_tools/resources/schema/data.xsd +0 -0
- {dsp_tools-17.0.0.post26 → dsp_tools-17.0.0.post29}/src/dsp_tools/resources/schema/lists-only.json +0 -0
- {dsp_tools-17.0.0.post26 → dsp_tools-17.0.0.post29}/src/dsp_tools/resources/schema/project.json +0 -0
- {dsp_tools-17.0.0.post26 → dsp_tools-17.0.0.post29}/src/dsp_tools/resources/schema/properties-only.json +0 -0
- {dsp_tools-17.0.0.post26 → dsp_tools-17.0.0.post29}/src/dsp_tools/resources/schema/resources-only.json +0 -0
- {dsp_tools-17.0.0.post26 → dsp_tools-17.0.0.post29}/src/dsp_tools/resources/start-stack/docker-compose.override-host.j2 +0 -0
- {dsp_tools-17.0.0.post26 → dsp_tools-17.0.0.post29}/src/dsp_tools/resources/start-stack/docker-compose.override.yml +0 -0
- {dsp_tools-17.0.0.post26 → dsp_tools-17.0.0.post29}/src/dsp_tools/resources/start-stack/docker-compose.yml +0 -0
- {dsp_tools-17.0.0.post26 → dsp_tools-17.0.0.post29}/src/dsp_tools/resources/start-stack/dsp-app-config.json +0 -0
- {dsp_tools-17.0.0.post26 → dsp_tools-17.0.0.post29}/src/dsp_tools/resources/start-stack/dsp-app-config.override-host.j2 +0 -0
- {dsp_tools-17.0.0.post26 → dsp_tools-17.0.0.post29}/src/dsp_tools/resources/validate_data/api-shapes-resource-cardinalities.ttl +0 -0
- {dsp_tools-17.0.0.post26 → dsp_tools-17.0.0.post29}/src/dsp_tools/resources/validate_data/api-shapes.ttl +0 -0
- {dsp_tools-17.0.0.post26 → dsp_tools-17.0.0.post29}/src/dsp_tools/resources/validate_data/shacl-cli-image.yml +0 -0
- {dsp_tools-17.0.0.post26 → dsp_tools-17.0.0.post29}/src/dsp_tools/resources/validate_data/validate-ontology.ttl +0 -0
- {dsp_tools-17.0.0.post26 → dsp_tools-17.0.0.post29}/src/dsp_tools/utils/__init__.py +0 -0
- {dsp_tools-17.0.0.post26 → dsp_tools-17.0.0.post29}/src/dsp_tools/utils/ansi_colors.py +0 -0
- {dsp_tools-17.0.0.post26 → dsp_tools-17.0.0.post29}/src/dsp_tools/utils/data_formats/__init__.py +0 -0
- {dsp_tools-17.0.0.post26 → dsp_tools-17.0.0.post29}/src/dsp_tools/utils/data_formats/date_util.py +0 -0
- {dsp_tools-17.0.0.post26 → dsp_tools-17.0.0.post29}/src/dsp_tools/utils/data_formats/iri_util.py +0 -0
- {dsp_tools-17.0.0.post26 → dsp_tools-17.0.0.post29}/src/dsp_tools/utils/data_formats/shared.py +0 -0
- {dsp_tools-17.0.0.post26 → dsp_tools-17.0.0.post29}/src/dsp_tools/utils/data_formats/uri_util.py +0 -0
- {dsp_tools-17.0.0.post26 → dsp_tools-17.0.0.post29}/src/dsp_tools/utils/fuseki_bloating.py +0 -0
- {dsp_tools-17.0.0.post26 → dsp_tools-17.0.0.post29}/src/dsp_tools/utils/json_parsing.py +0 -0
- {dsp_tools-17.0.0.post26 → dsp_tools-17.0.0.post29}/src/dsp_tools/utils/rdflib_constants.py +0 -0
- {dsp_tools-17.0.0.post26 → dsp_tools-17.0.0.post29}/src/dsp_tools/utils/rdflib_utils.py +0 -0
- {dsp_tools-17.0.0.post26 → dsp_tools-17.0.0.post29}/src/dsp_tools/utils/replace_id_with_iri.py +0 -0
- {dsp_tools-17.0.0.post26 → dsp_tools-17.0.0.post29}/src/dsp_tools/utils/request_utils.py +0 -0
- {dsp_tools-17.0.0.post26 → dsp_tools-17.0.0.post29}/src/dsp_tools/utils/xml_parsing/__init__.py +0 -0
- {dsp_tools-17.0.0.post26 → dsp_tools-17.0.0.post29}/src/dsp_tools/utils/xml_parsing/get_lookups.py +0 -0
- {dsp_tools-17.0.0.post26 → dsp_tools-17.0.0.post29}/src/dsp_tools/utils/xml_parsing/get_parsed_resources.py +0 -0
- {dsp_tools-17.0.0.post26 → dsp_tools-17.0.0.post29}/src/dsp_tools/utils/xml_parsing/models/__init__.py +0 -0
- {dsp_tools-17.0.0.post26 → dsp_tools-17.0.0.post29}/src/dsp_tools/utils/xml_parsing/models/parsed_resource.py +0 -0
- {dsp_tools-17.0.0.post26 → dsp_tools-17.0.0.post29}/src/dsp_tools/utils/xml_parsing/parse_clean_validate_xml.py +0 -0
- {dsp_tools-17.0.0.post26 → dsp_tools-17.0.0.post29}/src/dsp_tools/xmllib/CLAUDE.md +0 -0
- {dsp_tools-17.0.0.post26 → dsp_tools-17.0.0.post29}/src/dsp_tools/xmllib/__init__.py +0 -0
- {dsp_tools-17.0.0.post26 → dsp_tools-17.0.0.post29}/src/dsp_tools/xmllib/general_functions.py +0 -0
- {dsp_tools-17.0.0.post26 → dsp_tools-17.0.0.post29}/src/dsp_tools/xmllib/internal/__init__.py +0 -0
- {dsp_tools-17.0.0.post26 → dsp_tools-17.0.0.post29}/src/dsp_tools/xmllib/internal/checkers.py +0 -0
- {dsp_tools-17.0.0.post26 → dsp_tools-17.0.0.post29}/src/dsp_tools/xmllib/internal/circumvent_circular_imports.py +0 -0
- {dsp_tools-17.0.0.post26 → dsp_tools-17.0.0.post29}/src/dsp_tools/xmllib/internal/constants.py +0 -0
- {dsp_tools-17.0.0.post26 → dsp_tools-17.0.0.post29}/src/dsp_tools/xmllib/internal/input_converters.py +0 -0
- {dsp_tools-17.0.0.post26 → dsp_tools-17.0.0.post29}/src/dsp_tools/xmllib/internal/serialise_file_value.py +0 -0
- {dsp_tools-17.0.0.post26 → dsp_tools-17.0.0.post29}/src/dsp_tools/xmllib/internal/serialise_resource.py +0 -0
- {dsp_tools-17.0.0.post26 → dsp_tools-17.0.0.post29}/src/dsp_tools/xmllib/internal/serialise_values.py +0 -0
- {dsp_tools-17.0.0.post26 → dsp_tools-17.0.0.post29}/src/dsp_tools/xmllib/internal/type_aliases.py +0 -0
- {dsp_tools-17.0.0.post26 → dsp_tools-17.0.0.post29}/src/dsp_tools/xmllib/models/__init__.py +0 -0
- {dsp_tools-17.0.0.post26 → dsp_tools-17.0.0.post29}/src/dsp_tools/xmllib/models/config_options.py +0 -0
- {dsp_tools-17.0.0.post26 → dsp_tools-17.0.0.post29}/src/dsp_tools/xmllib/models/date_formats.py +0 -0
- {dsp_tools-17.0.0.post26 → dsp_tools-17.0.0.post29}/src/dsp_tools/xmllib/models/dsp_base_resources.py +0 -0
- {dsp_tools-17.0.0.post26 → dsp_tools-17.0.0.post29}/src/dsp_tools/xmllib/models/internal/__init__.py +0 -0
- {dsp_tools-17.0.0.post26 → dsp_tools-17.0.0.post29}/src/dsp_tools/xmllib/models/internal/file_values.py +0 -0
- {dsp_tools-17.0.0.post26 → dsp_tools-17.0.0.post29}/src/dsp_tools/xmllib/models/internal/geometry.py +0 -0
- {dsp_tools-17.0.0.post26 → dsp_tools-17.0.0.post29}/src/dsp_tools/xmllib/models/internal/migration_metadata.py +0 -0
- {dsp_tools-17.0.0.post26 → dsp_tools-17.0.0.post29}/src/dsp_tools/xmllib/models/internal/serialise_permissions.py +0 -0
- {dsp_tools-17.0.0.post26 → dsp_tools-17.0.0.post29}/src/dsp_tools/xmllib/models/internal/values.py +0 -0
- {dsp_tools-17.0.0.post26 → dsp_tools-17.0.0.post29}/src/dsp_tools/xmllib/models/licenses/__init__.py +0 -0
- {dsp_tools-17.0.0.post26 → dsp_tools-17.0.0.post29}/src/dsp_tools/xmllib/models/licenses/other.py +0 -0
- {dsp_tools-17.0.0.post26 → dsp_tools-17.0.0.post29}/src/dsp_tools/xmllib/models/licenses/recommended.py +0 -0
- {dsp_tools-17.0.0.post26 → dsp_tools-17.0.0.post29}/src/dsp_tools/xmllib/models/permissions.py +0 -0
- {dsp_tools-17.0.0.post26 → dsp_tools-17.0.0.post29}/src/dsp_tools/xmllib/models/res.py +0 -0
- {dsp_tools-17.0.0.post26 → dsp_tools-17.0.0.post29}/src/dsp_tools/xmllib/models/root.py +0 -0
- {dsp_tools-17.0.0.post26 → dsp_tools-17.0.0.post29}/src/dsp_tools/xmllib/value_checkers.py +0 -0
- {dsp_tools-17.0.0.post26 → dsp_tools-17.0.0.post29}/src/dsp_tools/xmllib/value_converters.py +0 -0
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
Metadata-Version: 2.3
|
|
2
2
|
Name: dsp-tools
|
|
3
|
-
Version: 17.0.0.
|
|
3
|
+
Version: 17.0.0.post29
|
|
4
4
|
Summary: DSP-TOOLS is a Python package with a command line interface that helps you interact with a DaSCH service platform (DSP) server.
|
|
5
5
|
Author: DaSCH - Swiss National Data and Service Center for the Humanities
|
|
6
6
|
Author-email: DaSCH - Swiss National Data and Service Center for the Humanities <info@dasch.swiss>
|
|
@@ -2,7 +2,7 @@
|
|
|
2
2
|
|
|
3
3
|
[project]
|
|
4
4
|
name = "dsp-tools"
|
|
5
|
-
version = "17.0.0.
|
|
5
|
+
version = "17.0.0.post29"
|
|
6
6
|
description = "DSP-TOOLS is a Python package with a command line interface that helps you interact with a DaSCH service platform (DSP) server."
|
|
7
7
|
authors = [
|
|
8
8
|
{ name = "DaSCH - Swiss National Data and Service Center for the Humanities", email = "info@dasch.swiss" },
|
|
@@ -211,6 +211,7 @@ def _call_ingest_xmlupload(args: argparse.Namespace) -> bool:
|
|
|
211
211
|
skip_validation=args.skip_validation,
|
|
212
212
|
skip_ontology_validation=args.skip_ontology_validation,
|
|
213
213
|
id2iri_replacement_file=args.id2iri_replacement_with_file,
|
|
214
|
+
do_not_request_resource_metadata_from_db=args.do_not_request_resource_metadata_from_db,
|
|
214
215
|
)
|
|
215
216
|
|
|
216
217
|
|
|
@@ -250,6 +251,7 @@ def _call_xmlupload(args: argparse.Namespace) -> bool:
|
|
|
250
251
|
ignore_duplicate_files_warning=args.ignore_duplicate_files_warning,
|
|
251
252
|
validation_severity=severity,
|
|
252
253
|
skip_ontology_validation=args.skip_ontology_validation,
|
|
254
|
+
do_not_request_resource_metadata_from_db=args.do_not_request_resource_metadata_from_db,
|
|
253
255
|
id2iri_replacement_file=id_2_iri_file,
|
|
254
256
|
),
|
|
255
257
|
)
|
|
@@ -266,6 +268,7 @@ def _call_validate_data(args: argparse.Namespace) -> bool:
|
|
|
266
268
|
ignore_duplicate_files_warning=args.ignore_duplicate_files_warning,
|
|
267
269
|
skip_ontology_validation=args.skip_ontology_validation,
|
|
268
270
|
id2iri_replacement_file=args.id2iri_replacement_with_file,
|
|
271
|
+
do_not_request_resource_metadata_from_db=args.do_not_request_resource_metadata_from_db,
|
|
269
272
|
)
|
|
270
273
|
|
|
271
274
|
|
|
@@ -242,6 +242,13 @@ def _add_ingest_xmlupload(
|
|
|
242
242
|
"--id2iri-replacement-with-file",
|
|
243
243
|
help="replaces internal IDs of an XML file by IRIs provided in this mapping file",
|
|
244
244
|
)
|
|
245
|
+
subparser.add_argument(
|
|
246
|
+
"--do-not-request-resource-metadata-from-db",
|
|
247
|
+
action="store_true",
|
|
248
|
+
help=(
|
|
249
|
+
"Do not request IRIs of existing resources from the db (references to existing resources won't be checked)"
|
|
250
|
+
),
|
|
251
|
+
)
|
|
245
252
|
|
|
246
253
|
|
|
247
254
|
def _add_xmlupload(
|
|
@@ -279,6 +286,13 @@ def _add_xmlupload(
|
|
|
279
286
|
help="Which severity level of validation message should be printed out",
|
|
280
287
|
default="info",
|
|
281
288
|
)
|
|
289
|
+
subparser.add_argument(
|
|
290
|
+
"--do-not-request-resource-metadata-from-db",
|
|
291
|
+
action="store_true",
|
|
292
|
+
help=(
|
|
293
|
+
"Do not request IRIs of existing resources from the db (references to existing resources won't be checked)"
|
|
294
|
+
),
|
|
295
|
+
)
|
|
282
296
|
subparser.add_argument(
|
|
283
297
|
"--id2iri-replacement-with-file",
|
|
284
298
|
help="replaces internal IDs of an XML file by IRIs provided in this mapping file",
|
|
@@ -309,6 +323,13 @@ def _add_validate_data(
|
|
|
309
323
|
"--id2iri-replacement-with-file",
|
|
310
324
|
help="replaces internal IDs of an XML file by IRIs provided in this mapping file",
|
|
311
325
|
)
|
|
326
|
+
subparser.add_argument(
|
|
327
|
+
"--do-not-request-resource-metadata-from-db",
|
|
328
|
+
action="store_true",
|
|
329
|
+
help=(
|
|
330
|
+
"Do not request IRIs of existing resources from the db (references to existing resources won't be checked)"
|
|
331
|
+
),
|
|
332
|
+
)
|
|
312
333
|
subparser.add_argument(
|
|
313
334
|
"--save-graphs", action="store_true", help="Save the data, onto and shacl graph as ttl files."
|
|
314
335
|
)
|
{dsp_tools-17.0.0.post26 → dsp_tools-17.0.0.post29}/src/dsp_tools/clients/metadata_client.py
RENAMED
|
@@ -6,9 +6,9 @@ from typing import Protocol
|
|
|
6
6
|
from dsp_tools.clients.authentication_client import AuthenticationClient
|
|
7
7
|
|
|
8
8
|
|
|
9
|
-
class
|
|
10
|
-
|
|
11
|
-
|
|
9
|
+
class ExistingResourcesRetrieved(Enum):
|
|
10
|
+
TRUE = auto()
|
|
11
|
+
FALSE = auto()
|
|
12
12
|
|
|
13
13
|
|
|
14
14
|
@dataclass
|
|
@@ -20,5 +20,5 @@ class MetadataClient(Protocol):
|
|
|
20
20
|
server: str
|
|
21
21
|
authentication_client: AuthenticationClient
|
|
22
22
|
|
|
23
|
-
def get_resource_metadata(self, shortcode: str) -> tuple[
|
|
23
|
+
def get_resource_metadata(self, shortcode: str) -> tuple[ExistingResourcesRetrieved, list[dict[str, str]]]:
|
|
24
24
|
"""Get all resource metadata from one project."""
|
{dsp_tools-17.0.0.post26 → dsp_tools-17.0.0.post29}/src/dsp_tools/clients/metadata_client_live.py
RENAMED
|
@@ -4,8 +4,8 @@ import requests
|
|
|
4
4
|
from loguru import logger
|
|
5
5
|
|
|
6
6
|
from dsp_tools.clients.authentication_client import AuthenticationClient
|
|
7
|
+
from dsp_tools.clients.metadata_client import ExistingResourcesRetrieved
|
|
7
8
|
from dsp_tools.clients.metadata_client import MetadataClient
|
|
8
|
-
from dsp_tools.clients.metadata_client import MetadataRetrieval
|
|
9
9
|
from dsp_tools.utils.request_utils import RequestParameters
|
|
10
10
|
from dsp_tools.utils.request_utils import log_request
|
|
11
11
|
from dsp_tools.utils.request_utils import log_response
|
|
@@ -18,7 +18,7 @@ class MetadataClientLive(MetadataClient):
|
|
|
18
18
|
server: str
|
|
19
19
|
authentication_client: AuthenticationClient
|
|
20
20
|
|
|
21
|
-
def get_resource_metadata(self, shortcode: str) -> tuple[
|
|
21
|
+
def get_resource_metadata(self, shortcode: str) -> tuple[ExistingResourcesRetrieved, list[dict[str, str]]]:
|
|
22
22
|
url = f"{self.server}/v2/metadata/projects/{shortcode}/resources?format=JSON"
|
|
23
23
|
header = {"Authorization": f"Bearer {self.authentication_client.get_token()}"}
|
|
24
24
|
params = RequestParameters(method="GET", url=url, timeout=TIMEOUT, headers=header)
|
|
@@ -33,10 +33,11 @@ class MetadataClientLive(MetadataClient):
|
|
|
33
33
|
if response.ok:
|
|
34
34
|
# we log the response separately because if it was successful it will be too big
|
|
35
35
|
log_response(response, include_response_content=False)
|
|
36
|
-
|
|
36
|
+
logger.debug(f"{len(response.json())} NUMBER OF RESOURCES RETRIEVED")
|
|
37
|
+
return ExistingResourcesRetrieved.TRUE, response.json()
|
|
37
38
|
# here the response text is important
|
|
38
39
|
log_response(response)
|
|
39
|
-
return
|
|
40
|
+
return ExistingResourcesRetrieved.FALSE, []
|
|
40
41
|
except Exception as err: # noqa: BLE001 (blind exception)
|
|
41
42
|
logger.error(err)
|
|
42
|
-
return
|
|
43
|
+
return ExistingResourcesRetrieved.FALSE, []
|
|
@@ -43,6 +43,7 @@ def ingest_xmlupload(
|
|
|
43
43
|
skip_validation: bool = False,
|
|
44
44
|
skip_ontology_validation: bool = False,
|
|
45
45
|
id2iri_replacement_file: str | None = None,
|
|
46
|
+
do_not_request_resource_metadata_from_db: bool = False,
|
|
46
47
|
) -> bool:
|
|
47
48
|
"""
|
|
48
49
|
This function reads an XML file
|
|
@@ -59,6 +60,8 @@ def ingest_xmlupload(
|
|
|
59
60
|
skip_validation: skip the SHACL validation
|
|
60
61
|
skip_ontology_validation: skip the ontology validation
|
|
61
62
|
id2iri_replacement_file: to replace internal IDs of an XML file by IRIs provided in this mapping file
|
|
63
|
+
do_not_request_resource_metadata_from_db: if true do not request metadata information from the api
|
|
64
|
+
for existing resources
|
|
62
65
|
|
|
63
66
|
Returns:
|
|
64
67
|
True if all resources could be uploaded without errors; False if one of the resources could not be
|
|
@@ -115,6 +118,7 @@ def ingest_xmlupload(
|
|
|
115
118
|
ignore_duplicate_files_warning=True,
|
|
116
119
|
is_on_prod_server=is_on_prod_like_server,
|
|
117
120
|
skip_ontology_validation=skip_ontology_validation,
|
|
121
|
+
do_not_request_resource_metadata_from_db=do_not_request_resource_metadata_from_db,
|
|
118
122
|
),
|
|
119
123
|
auth=auth,
|
|
120
124
|
)
|
|
@@ -114,5 +114,6 @@ class ProblemType(StrEnum):
|
|
|
114
114
|
LINK_TARGET_TYPE_MISMATCH = "Linked Resource Type Mismatch"
|
|
115
115
|
LINK_TARGET_OF_ANOTHER_PROJECT = "Linked Resource is from another project"
|
|
116
116
|
LINK_TARGET_IS_IRI_OF_PROJECT = "Linked resource is an IRI of the project"
|
|
117
|
+
LINK_TARGET_NOT_FOUND_IN_DB = "Linked resource is an IRI and could not be found in the database."
|
|
117
118
|
INEXISTENT_LINKED_RESOURCE = "Linked Resource does not exist"
|
|
118
119
|
DUPLICATE_VALUE = "Your input is duplicated"
|
|
@@ -8,7 +8,7 @@ from rdflib import URIRef
|
|
|
8
8
|
|
|
9
9
|
from dsp_tools.clients.authentication_client import AuthenticationClient
|
|
10
10
|
from dsp_tools.clients.legal_info_client_live import LegalInfoClientLive
|
|
11
|
-
from dsp_tools.clients.metadata_client import
|
|
11
|
+
from dsp_tools.clients.metadata_client import ExistingResourcesRetrieved
|
|
12
12
|
from dsp_tools.clients.metadata_client_live import MetadataClientLive
|
|
13
13
|
from dsp_tools.commands.validate_data.api_clients import ListClient
|
|
14
14
|
from dsp_tools.commands.validate_data.api_clients import OntologyClient
|
|
@@ -47,13 +47,16 @@ def prepare_data_for_validation_from_parsed_resource(
|
|
|
47
47
|
permission_ids: list[str],
|
|
48
48
|
auth: AuthenticationClient,
|
|
49
49
|
shortcode: str,
|
|
50
|
-
|
|
50
|
+
do_not_request_resource_metadata_from_db: bool,
|
|
51
|
+
) -> tuple[RDFGraphs, set[str], ExistingResourcesRetrieved]:
|
|
51
52
|
used_iris = {x.res_type for x in parsed_resources}
|
|
52
|
-
proj_info,
|
|
53
|
+
proj_info, existing_resources_retrieved = _get_project_specific_information_from_api(
|
|
54
|
+
auth, shortcode, do_not_request_resource_metadata_from_db
|
|
55
|
+
)
|
|
53
56
|
list_lookup = _make_list_lookup(proj_info.all_lists)
|
|
54
57
|
data_rdf = _make_data_graph_from_parsed_resources(parsed_resources, authorship_lookup, list_lookup)
|
|
55
58
|
rdf_graphs = _create_graphs(data_rdf, shortcode, auth, proj_info, permission_ids)
|
|
56
|
-
return rdf_graphs, used_iris,
|
|
59
|
+
return rdf_graphs, used_iris, existing_resources_retrieved
|
|
57
60
|
|
|
58
61
|
|
|
59
62
|
def _make_list_lookup(project_lists: list[OneList]) -> ListLookup:
|
|
@@ -66,18 +69,22 @@ def _make_list_lookup(project_lists: list[OneList]) -> ListLookup:
|
|
|
66
69
|
|
|
67
70
|
|
|
68
71
|
def _get_project_specific_information_from_api(
|
|
69
|
-
auth: AuthenticationClient, shortcode: str
|
|
70
|
-
) -> tuple[ProjectDataFromApi,
|
|
72
|
+
auth: AuthenticationClient, shortcode: str, do_not_request_resource_metadata_from_db: bool
|
|
73
|
+
) -> tuple[ProjectDataFromApi, ExistingResourcesRetrieved]:
|
|
71
74
|
list_client = ListClient(auth.server, shortcode)
|
|
72
75
|
all_lists = list_client.get_lists()
|
|
73
76
|
enabled_licenses = _get_license_iris(shortcode, auth)
|
|
74
|
-
|
|
75
|
-
|
|
77
|
+
if do_not_request_resource_metadata_from_db:
|
|
78
|
+
existing_resources_retrieved = ExistingResourcesRetrieved.FALSE
|
|
79
|
+
formatted_metadata: list[InfoForResourceInDB] = []
|
|
80
|
+
else:
|
|
81
|
+
existing_resources_retrieved, formatted_metadata = _get_metadata_info(auth, shortcode)
|
|
82
|
+
return ProjectDataFromApi(all_lists, enabled_licenses, formatted_metadata), existing_resources_retrieved
|
|
76
83
|
|
|
77
84
|
|
|
78
85
|
def _get_metadata_info(
|
|
79
86
|
auth: AuthenticationClient, shortcode: str
|
|
80
|
-
) -> tuple[
|
|
87
|
+
) -> tuple[ExistingResourcesRetrieved, list[InfoForResourceInDB]]:
|
|
81
88
|
metadata_client = MetadataClientLive(auth.server, auth)
|
|
82
89
|
retrieval_status, metadata = metadata_client.get_resource_metadata(shortcode)
|
|
83
90
|
formatted_metadata = [InfoForResourceInDB(x["resourceIri"], x["resourceClassIri"]) for x in metadata]
|
|
@@ -3,6 +3,7 @@ from collections import defaultdict
|
|
|
3
3
|
import pandas as pd
|
|
4
4
|
|
|
5
5
|
from dsp_tools.cli.args import ValidationSeverity
|
|
6
|
+
from dsp_tools.clients.metadata_client import ExistingResourcesRetrieved
|
|
6
7
|
from dsp_tools.commands.validate_data.models.input_problems import AllProblems
|
|
7
8
|
from dsp_tools.commands.validate_data.models.input_problems import DuplicateFileWarning
|
|
8
9
|
from dsp_tools.commands.validate_data.models.input_problems import InputProblem
|
|
@@ -20,9 +21,14 @@ PROBLEM_TYPES_IGNORE_STR_ENUM_INFO = {ProblemType.GENERIC, ProblemType.FILE_VALU
|
|
|
20
21
|
|
|
21
22
|
|
|
22
23
|
def sort_user_problems(
|
|
23
|
-
all_problems: AllProblems,
|
|
24
|
+
all_problems: AllProblems,
|
|
25
|
+
duplicate_file_warnings: DuplicateFileWarning | None,
|
|
26
|
+
shortcode: str,
|
|
27
|
+
existing_resources_retrieved: ExistingResourcesRetrieved,
|
|
24
28
|
) -> SortedProblems:
|
|
25
|
-
iris_removed, links_level_info = _separate_resource_links_to_iris_of_own_project(
|
|
29
|
+
iris_removed, links_level_info = _separate_resource_links_to_iris_of_own_project(
|
|
30
|
+
all_problems.problems, shortcode, existing_resources_retrieved
|
|
31
|
+
)
|
|
26
32
|
filtered_problems = _filter_out_duplicate_problems(iris_removed)
|
|
27
33
|
violations, warnings, info = _separate_according_to_severity(filtered_problems)
|
|
28
34
|
if duplicate_file_warnings:
|
|
@@ -47,37 +53,61 @@ def _separate_according_to_severity(
|
|
|
47
53
|
|
|
48
54
|
|
|
49
55
|
def _separate_resource_links_to_iris_of_own_project(
|
|
50
|
-
problems: list[InputProblem], shortcode: str
|
|
56
|
+
problems: list[InputProblem], shortcode: str, existing_resources_retrieved: ExistingResourcesRetrieved
|
|
51
57
|
) -> tuple[list[InputProblem], list[InputProblem]]:
|
|
52
58
|
link_level_info = []
|
|
53
59
|
all_others = []
|
|
54
|
-
resource_iri_start = "http://rdfh.ch/"
|
|
55
|
-
project_resource_iri = f"{resource_iri_start}{shortcode}/"
|
|
56
60
|
for prblm in problems:
|
|
57
61
|
if prblm.problem_type != ProblemType.INEXISTENT_LINKED_RESOURCE:
|
|
58
62
|
all_others.append(prblm)
|
|
59
|
-
continue
|
|
60
|
-
if not prblm.input_value:
|
|
61
|
-
all_others.append(prblm)
|
|
62
|
-
elif prblm.input_value.startswith(project_resource_iri):
|
|
63
|
-
prblm.message = (
|
|
64
|
-
"You used an absolute IRI to reference an existing resource in the DB. "
|
|
65
|
-
"If this resource does not exist or is not of the correct type, an xmlupload will fail."
|
|
66
|
-
)
|
|
67
|
-
prblm.problem_type = ProblemType.LINK_TARGET_IS_IRI_OF_PROJECT
|
|
68
|
-
link_level_info.append(prblm)
|
|
69
|
-
elif prblm.input_value.startswith(resource_iri_start):
|
|
70
|
-
prblm.message = (
|
|
71
|
-
"You used an absolute IRI to reference an existing resource of another project in the DB. "
|
|
72
|
-
"Cross-Project resource links are not permitted."
|
|
73
|
-
)
|
|
74
|
-
prblm.problem_type = ProblemType.LINK_TARGET_OF_ANOTHER_PROJECT
|
|
75
|
-
all_others.append(prblm)
|
|
76
63
|
else:
|
|
77
|
-
|
|
64
|
+
is_violation, triaged_problem = _determined_link_value_message_and_level(
|
|
65
|
+
prblm, shortcode, existing_resources_retrieved
|
|
66
|
+
)
|
|
67
|
+
if is_violation:
|
|
68
|
+
all_others.append(triaged_problem)
|
|
69
|
+
else:
|
|
70
|
+
link_level_info.append(triaged_problem)
|
|
78
71
|
return all_others, link_level_info
|
|
79
72
|
|
|
80
73
|
|
|
74
|
+
def _determined_link_value_message_and_level(
|
|
75
|
+
problem: InputProblem, shortcode: str, existing_resources_retrieved: ExistingResourcesRetrieved
|
|
76
|
+
) -> tuple[bool, InputProblem]:
|
|
77
|
+
is_violation = True
|
|
78
|
+
resource_iri_start = "http://rdfh.ch/"
|
|
79
|
+
project_resource_iri = f"{resource_iri_start}{shortcode}/"
|
|
80
|
+
if not problem.input_value:
|
|
81
|
+
return is_violation, problem
|
|
82
|
+
if problem.input_value.startswith(project_resource_iri):
|
|
83
|
+
# case IRI and matches those of the projects itself
|
|
84
|
+
if existing_resources_retrieved == ExistingResourcesRetrieved.TRUE:
|
|
85
|
+
# if metadata was sucessfully retrieved, then the IRI is wrong
|
|
86
|
+
problem.problem_type = ProblemType.LINK_TARGET_NOT_FOUND_IN_DB
|
|
87
|
+
problem.message = (
|
|
88
|
+
"You used an absolute IRI to reference an existing resource in the DB. "
|
|
89
|
+
"We could not find a reference to this resource in the database."
|
|
90
|
+
)
|
|
91
|
+
return is_violation, problem
|
|
92
|
+
# if we could not retrieve the metadata, then we cannot verify if it exists or not, so it is only an info
|
|
93
|
+
problem.problem_type = ProblemType.LINK_TARGET_IS_IRI_OF_PROJECT
|
|
94
|
+
problem.message = (
|
|
95
|
+
"You used an absolute IRI to reference an existing resource in the DB. "
|
|
96
|
+
"If this resource does not exist or is not of the correct type, an xmlupload will fail."
|
|
97
|
+
)
|
|
98
|
+
return not is_violation, problem
|
|
99
|
+
if problem.input_value.startswith(resource_iri_start):
|
|
100
|
+
# case IRI, but does not contain the shortcode of the project
|
|
101
|
+
problem.message = (
|
|
102
|
+
"You used an absolute IRI to reference an existing resource of another project in the DB. "
|
|
103
|
+
"Cross-Project resource links are not permitted."
|
|
104
|
+
)
|
|
105
|
+
problem.problem_type = ProblemType.LINK_TARGET_OF_ANOTHER_PROJECT
|
|
106
|
+
return is_violation, problem
|
|
107
|
+
# all other cases, it is not an IRI and must be an internal ID that does not exist in the XML
|
|
108
|
+
return is_violation, problem
|
|
109
|
+
|
|
110
|
+
|
|
81
111
|
def _filter_out_duplicate_problems(problems: list[InputProblem]) -> list[InputProblem]:
|
|
82
112
|
grouped, without_res_id = _group_problems_by_resource(problems)
|
|
83
113
|
filtered = without_res_id
|
|
@@ -10,6 +10,7 @@ from dsp_tools.cli.args import ValidateDataConfig
|
|
|
10
10
|
from dsp_tools.cli.args import ValidationSeverity
|
|
11
11
|
from dsp_tools.clients.authentication_client import AuthenticationClient
|
|
12
12
|
from dsp_tools.clients.authentication_client_live import AuthenticationClientLive
|
|
13
|
+
from dsp_tools.clients.metadata_client import ExistingResourcesRetrieved
|
|
13
14
|
from dsp_tools.commands.validate_data.models.input_problems import OntologyValidationProblem
|
|
14
15
|
from dsp_tools.commands.validate_data.models.input_problems import SortedProblems
|
|
15
16
|
from dsp_tools.commands.validate_data.models.input_problems import UnknownClassesInData
|
|
@@ -51,6 +52,7 @@ def validate_data(
|
|
|
51
52
|
save_graphs: bool,
|
|
52
53
|
skip_ontology_validation: bool,
|
|
53
54
|
id2iri_replacement_file: str | None,
|
|
55
|
+
do_not_request_resource_metadata_from_db: bool,
|
|
54
56
|
) -> bool:
|
|
55
57
|
"""
|
|
56
58
|
Takes a file and project information and validates it against the ontologies on the server.
|
|
@@ -62,6 +64,7 @@ def validate_data(
|
|
|
62
64
|
save_graphs: if this flag is set, all the graphs will be saved in a folder
|
|
63
65
|
skip_ontology_validation: skip the ontology validation
|
|
64
66
|
id2iri_replacement_file: to replace internal IDs of an XML file by IRIs provided in this mapping file
|
|
67
|
+
do_not_request_resource_metadata_from_db: true if no metadata for existing resources should be requested
|
|
65
68
|
|
|
66
69
|
Returns:
|
|
67
70
|
True if no errors that impede an xmlupload were found.
|
|
@@ -78,6 +81,7 @@ def validate_data(
|
|
|
78
81
|
ignore_duplicate_files_warning=ignore_duplicate_files_warning,
|
|
79
82
|
is_on_prod_server=is_prod_like_server(creds.server),
|
|
80
83
|
skip_ontology_validation=skip_ontology_validation,
|
|
84
|
+
do_not_request_resource_metadata_from_db=do_not_request_resource_metadata_from_db,
|
|
81
85
|
)
|
|
82
86
|
auth = AuthenticationClientLive(server=creds.server, email=creds.user, password=creds.password)
|
|
83
87
|
|
|
@@ -104,14 +108,17 @@ def validate_parsed_resources(
|
|
|
104
108
|
config: ValidateDataConfig,
|
|
105
109
|
auth: AuthenticationClient,
|
|
106
110
|
) -> bool:
|
|
107
|
-
rdf_graphs, used_iris,
|
|
111
|
+
rdf_graphs, used_iris, existing_resources_retrieved = prepare_data_for_validation_from_parsed_resource(
|
|
108
112
|
parsed_resources=parsed_resources,
|
|
109
113
|
authorship_lookup=authorship_lookup,
|
|
110
114
|
permission_ids=permission_ids,
|
|
111
115
|
auth=auth,
|
|
112
116
|
shortcode=shortcode,
|
|
117
|
+
do_not_request_resource_metadata_from_db=config.do_not_request_resource_metadata_from_db,
|
|
118
|
+
)
|
|
119
|
+
validation_result = _validate_data(
|
|
120
|
+
rdf_graphs, used_iris, parsed_resources, config, shortcode, existing_resources_retrieved
|
|
113
121
|
)
|
|
114
|
-
validation_result = _validate_data(rdf_graphs, used_iris, parsed_resources, config, shortcode)
|
|
115
122
|
if validation_result.no_problems:
|
|
116
123
|
logger.debug("No validation errors found.")
|
|
117
124
|
print(NO_VALIDATION_ERRORS_FOUND_MSG)
|
|
@@ -143,6 +150,7 @@ def _validate_data(
|
|
|
143
150
|
parsed_resources: list[ParsedResource],
|
|
144
151
|
config: ValidateDataConfig,
|
|
145
152
|
shortcode: str,
|
|
153
|
+
existing_resources_retrieved: ExistingResourcesRetrieved,
|
|
146
154
|
) -> ValidateDataResult:
|
|
147
155
|
logger.debug(f"Validate-data called with the following config: {vars(config)}")
|
|
148
156
|
# Check if unknown classes are used
|
|
@@ -171,7 +179,7 @@ def _validate_data(
|
|
|
171
179
|
)
|
|
172
180
|
return ValidateDataResult(False, sorted_problems, report)
|
|
173
181
|
reformatted = reformat_validation_graph(report)
|
|
174
|
-
sorted_problems = sort_user_problems(reformatted, duplicate_file_warnings, shortcode)
|
|
182
|
+
sorted_problems = sort_user_problems(reformatted, duplicate_file_warnings, shortcode, existing_resources_retrieved)
|
|
175
183
|
return ValidateDataResult(False, sorted_problems, report)
|
|
176
184
|
|
|
177
185
|
|
|
@@ -56,6 +56,7 @@ class UploadConfig:
|
|
|
56
56
|
ignore_duplicate_files_warning: bool = False
|
|
57
57
|
validation_severity: ValidationSeverity = field(default_factory=lambda: ValidationSeverity.INFO)
|
|
58
58
|
id2iri_replacement_file: str | None = None
|
|
59
|
+
do_not_request_resource_metadata_from_db: bool = False
|
|
59
60
|
|
|
60
61
|
def with_server_info(
|
|
61
62
|
self,
|
{dsp_tools-17.0.0.post26 → dsp_tools-17.0.0.post29}/src/dsp_tools/commands/xmlupload/xmlupload.py
RENAMED
|
@@ -177,6 +177,7 @@ def _handle_validation(
|
|
|
177
177
|
ignore_duplicate_files_warning=ignore_duplicates,
|
|
178
178
|
is_on_prod_server=is_on_prod_like_server,
|
|
179
179
|
skip_ontology_validation=config.skip_ontology_validation,
|
|
180
|
+
do_not_request_resource_metadata_from_db=config.do_not_request_resource_metadata_from_db,
|
|
180
181
|
),
|
|
181
182
|
auth=auth,
|
|
182
183
|
)
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{dsp_tools-17.0.0.post26 → dsp_tools-17.0.0.post29}/src/dsp_tools/clients/authentication_client.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
{dsp_tools-17.0.0.post26 → dsp_tools-17.0.0.post29}/src/dsp_tools/clients/connection_live.py
RENAMED
|
File without changes
|
|
File without changes
|
{dsp_tools-17.0.0.post26 → dsp_tools-17.0.0.post29}/src/dsp_tools/clients/legal_info_client.py
RENAMED
|
File without changes
|
{dsp_tools-17.0.0.post26 → dsp_tools-17.0.0.post29}/src/dsp_tools/clients/legal_info_client_live.py
RENAMED
|
File without changes
|
{dsp_tools-17.0.0.post26 → dsp_tools-17.0.0.post29}/src/dsp_tools/clients/ontology_client.py
RENAMED
|
File without changes
|
{dsp_tools-17.0.0.post26 → dsp_tools-17.0.0.post29}/src/dsp_tools/clients/ontology_client_live.py
RENAMED
|
File without changes
|
|
File without changes
|
{dsp_tools-17.0.0.post26 → dsp_tools-17.0.0.post29}/src/dsp_tools/commands/create/__init__.py
RENAMED
|
File without changes
|
|
File without changes
|
{dsp_tools-17.0.0.post26 → dsp_tools-17.0.0.post29}/src/dsp_tools/commands/create/constants.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{dsp_tools-17.0.0.post26 → dsp_tools-17.0.0.post29}/src/dsp_tools/commands/create/models/__init__.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{dsp_tools-17.0.0.post26 → dsp_tools-17.0.0.post29}/src/dsp_tools/commands/excel2json/CLAUDE.md
RENAMED
|
File without changes
|
{dsp_tools-17.0.0.post26 → dsp_tools-17.0.0.post29}/src/dsp_tools/commands/excel2json/__init__.py
RENAMED
|
File without changes
|
{dsp_tools-17.0.0.post26 → dsp_tools-17.0.0.post29}/src/dsp_tools/commands/excel2json/json_header.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{dsp_tools-17.0.0.post26 → dsp_tools-17.0.0.post29}/src/dsp_tools/commands/excel2json/lists/utils.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{dsp_tools-17.0.0.post26 → dsp_tools-17.0.0.post29}/src/dsp_tools/commands/excel2json/old_lists.py
RENAMED
|
File without changes
|
{dsp_tools-17.0.0.post26 → dsp_tools-17.0.0.post29}/src/dsp_tools/commands/excel2json/project.py
RENAMED
|
File without changes
|
{dsp_tools-17.0.0.post26 → dsp_tools-17.0.0.post29}/src/dsp_tools/commands/excel2json/properties.py
RENAMED
|
File without changes
|
{dsp_tools-17.0.0.post26 → dsp_tools-17.0.0.post29}/src/dsp_tools/commands/excel2json/resources.py
RENAMED
|
File without changes
|
{dsp_tools-17.0.0.post26 → dsp_tools-17.0.0.post29}/src/dsp_tools/commands/excel2json/utils.py
RENAMED
|
File without changes
|
{dsp_tools-17.0.0.post26 → dsp_tools-17.0.0.post29}/src/dsp_tools/commands/excel2xml/__init__.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{dsp_tools-17.0.0.post26 → dsp_tools-17.0.0.post29}/src/dsp_tools/commands/project/__init__.py
RENAMED
|
File without changes
|
|
File without changes
|