invenio-vocabularies 4.1.1__tar.gz → 4.2.0__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 invenio-vocabularies might be problematic. Click here for more details.
- {invenio-vocabularies-4.1.1 → invenio-vocabularies-4.2.0}/CHANGES.rst +8 -0
- {invenio-vocabularies-4.1.1/invenio_vocabularies.egg-info → invenio-vocabularies-4.2.0}/PKG-INFO +9 -1
- {invenio-vocabularies-4.1.1 → invenio-vocabularies-4.2.0}/invenio_vocabularies/__init__.py +1 -1
- {invenio-vocabularies-4.1.1 → invenio-vocabularies-4.2.0}/invenio_vocabularies/administration/views/vocabularies.py +1 -0
- {invenio-vocabularies-4.1.1 → invenio-vocabularies-4.2.0}/invenio_vocabularies/cli.py +5 -3
- {invenio-vocabularies-4.1.1 → invenio-vocabularies-4.2.0}/invenio_vocabularies/config.py +2 -1
- {invenio-vocabularies-4.1.1 → invenio-vocabularies-4.2.0}/invenio_vocabularies/contrib/affiliations/api.py +1 -2
- {invenio-vocabularies-4.1.1 → invenio-vocabularies-4.2.0}/invenio_vocabularies/contrib/affiliations/datastreams.py +33 -8
- {invenio-vocabularies-4.1.1 → invenio-vocabularies-4.2.0}/invenio_vocabularies/contrib/affiliations/services.py +1 -2
- {invenio-vocabularies-4.1.1 → invenio-vocabularies-4.2.0}/invenio_vocabularies/contrib/awards/awards.py +2 -1
- {invenio-vocabularies-4.1.1 → invenio-vocabularies-4.2.0}/invenio_vocabularies/contrib/awards/datastreams.py +1 -0
- {invenio-vocabularies-4.1.1 → invenio-vocabularies-4.2.0}/invenio_vocabularies/contrib/awards/services.py +1 -2
- {invenio-vocabularies-4.1.1 → invenio-vocabularies-4.2.0}/invenio_vocabularies/contrib/common/ror/datastreams.py +39 -5
- {invenio-vocabularies-4.1.1 → invenio-vocabularies-4.2.0}/invenio_vocabularies/contrib/funders/datastreams.py +38 -11
- {invenio-vocabularies-4.1.1 → invenio-vocabularies-4.2.0}/invenio_vocabularies/contrib/funders/funders.py +2 -1
- {invenio-vocabularies-4.1.1 → invenio-vocabularies-4.2.0}/invenio_vocabularies/datastreams/readers.py +32 -13
- invenio-vocabularies-4.2.0/invenio_vocabularies/datastreams/tasks.py +25 -0
- {invenio-vocabularies-4.1.1 → invenio-vocabularies-4.2.0}/invenio_vocabularies/datastreams/writers.py +19 -0
- {invenio-vocabularies-4.1.1 → invenio-vocabularies-4.2.0}/invenio_vocabularies/factories.py +1 -0
- {invenio-vocabularies-4.1.1 → invenio-vocabularies-4.2.0}/invenio_vocabularies/records/models.py +2 -4
- {invenio-vocabularies-4.1.1 → invenio-vocabularies-4.2.0}/invenio_vocabularies/records/pidprovider.py +1 -2
- {invenio-vocabularies-4.1.1 → invenio-vocabularies-4.2.0}/invenio_vocabularies/resources/__init__.py +1 -0
- {invenio-vocabularies-4.1.1 → invenio-vocabularies-4.2.0}/invenio_vocabularies/resources/schema.py +2 -1
- {invenio-vocabularies-4.1.1 → invenio-vocabularies-4.2.0}/invenio_vocabularies/services/custom_fields/subject.py +2 -1
- {invenio-vocabularies-4.1.1 → invenio-vocabularies-4.2.0}/invenio_vocabularies/services/custom_fields/vocabulary.py +1 -1
- invenio-vocabularies-4.2.0/invenio_vocabularies/services/tasks.py +28 -0
- {invenio-vocabularies-4.1.1 → invenio-vocabularies-4.2.0/invenio_vocabularies.egg-info}/PKG-INFO +9 -1
- {invenio-vocabularies-4.1.1 → invenio-vocabularies-4.2.0}/invenio_vocabularies.egg-info/SOURCES.txt +2 -0
- {invenio-vocabularies-4.1.1 → invenio-vocabularies-4.2.0}/tests/contrib/common/ror/test_ror_datastreams.py +118 -3
- {invenio-vocabularies-4.1.1 → invenio-vocabularies-4.2.0}/tests/datastreams/conftest.py +12 -4
- invenio-vocabularies-4.2.0/tests/datastreams/test_datastreams_tasks.py +29 -0
- {invenio-vocabularies-4.1.1 → invenio-vocabularies-4.2.0}/tests/datastreams/test_readers.py +145 -1
- {invenio-vocabularies-4.1.1 → invenio-vocabularies-4.2.0}/tests/datastreams/test_writers.py +36 -2
- {invenio-vocabularies-4.1.1 → invenio-vocabularies-4.2.0}/tests/records/test_models.py +0 -1
- {invenio-vocabularies-4.1.1 → invenio-vocabularies-4.2.0}/tests/test_factory.py +4 -1
- invenio-vocabularies-4.1.1/invenio_vocabularies/services/tasks.py +0 -58
- {invenio-vocabularies-4.1.1 → invenio-vocabularies-4.2.0}/.dockerignore +0 -0
- {invenio-vocabularies-4.1.1 → invenio-vocabularies-4.2.0}/.editorconfig +0 -0
- {invenio-vocabularies-4.1.1 → invenio-vocabularies-4.2.0}/.git-blame-ignore-revs +0 -0
- {invenio-vocabularies-4.1.1 → invenio-vocabularies-4.2.0}/.github/workflows/i18n-pull.yml +0 -0
- {invenio-vocabularies-4.1.1 → invenio-vocabularies-4.2.0}/.github/workflows/i18n-push.yml +0 -0
- {invenio-vocabularies-4.1.1 → invenio-vocabularies-4.2.0}/.github/workflows/pypi-publish.yml +0 -0
- {invenio-vocabularies-4.1.1 → invenio-vocabularies-4.2.0}/.github/workflows/tests.yml +0 -0
- {invenio-vocabularies-4.1.1 → invenio-vocabularies-4.2.0}/.tx/config +0 -0
- {invenio-vocabularies-4.1.1 → invenio-vocabularies-4.2.0}/AUTHORS.rst +0 -0
- {invenio-vocabularies-4.1.1 → invenio-vocabularies-4.2.0}/CONTRIBUTING.rst +0 -0
- {invenio-vocabularies-4.1.1 → invenio-vocabularies-4.2.0}/INSTALL.rst +0 -0
- {invenio-vocabularies-4.1.1 → invenio-vocabularies-4.2.0}/LICENSE +0 -0
- {invenio-vocabularies-4.1.1 → invenio-vocabularies-4.2.0}/MANIFEST.in +0 -0
- {invenio-vocabularies-4.1.1 → invenio-vocabularies-4.2.0}/README.rst +0 -0
- {invenio-vocabularies-4.1.1 → invenio-vocabularies-4.2.0}/babel.ini +0 -0
- {invenio-vocabularies-4.1.1 → invenio-vocabularies-4.2.0}/docs/Makefile +0 -0
- {invenio-vocabularies-4.1.1 → invenio-vocabularies-4.2.0}/docs/api.rst +0 -0
- {invenio-vocabularies-4.1.1 → invenio-vocabularies-4.2.0}/docs/authors.rst +0 -0
- {invenio-vocabularies-4.1.1 → invenio-vocabularies-4.2.0}/docs/changes.rst +0 -0
- {invenio-vocabularies-4.1.1 → invenio-vocabularies-4.2.0}/docs/conf.py +0 -0
- {invenio-vocabularies-4.1.1 → invenio-vocabularies-4.2.0}/docs/configuration.rst +0 -0
- {invenio-vocabularies-4.1.1 → invenio-vocabularies-4.2.0}/docs/contributing.rst +0 -0
- {invenio-vocabularies-4.1.1 → invenio-vocabularies-4.2.0}/docs/index.rst +0 -0
- {invenio-vocabularies-4.1.1 → invenio-vocabularies-4.2.0}/docs/installation.rst +0 -0
- {invenio-vocabularies-4.1.1 → invenio-vocabularies-4.2.0}/docs/license.rst +0 -0
- {invenio-vocabularies-4.1.1 → invenio-vocabularies-4.2.0}/docs/make.bat +0 -0
- {invenio-vocabularies-4.1.1 → invenio-vocabularies-4.2.0}/docs/requirements.txt +0 -0
- {invenio-vocabularies-4.1.1 → invenio-vocabularies-4.2.0}/docs/usage.rst +0 -0
- {invenio-vocabularies-4.1.1 → invenio-vocabularies-4.2.0}/gen-migration.sh +0 -0
- {invenio-vocabularies-4.1.1 → invenio-vocabularies-4.2.0}/invenio_vocabularies/administration/__init__.py +0 -0
- {invenio-vocabularies-4.1.1 → invenio-vocabularies-4.2.0}/invenio_vocabularies/administration/views/__init__.py +0 -0
- {invenio-vocabularies-4.1.1 → invenio-vocabularies-4.2.0}/invenio_vocabularies/alembic/17c703ce1eb7_create_names_table.py +0 -0
- {invenio-vocabularies-4.1.1 → invenio-vocabularies-4.2.0}/invenio_vocabularies/alembic/4a9a4fd235f8_create_vocabulary_schemes.py +0 -0
- {invenio-vocabularies-4.1.1 → invenio-vocabularies-4.2.0}/invenio_vocabularies/alembic/4f365fced43f_create_vocabularies_tables.py +0 -0
- {invenio-vocabularies-4.1.1 → invenio-vocabularies-4.2.0}/invenio_vocabularies/alembic/55a700f897b6_add_names_and_afiliations_pid_column.py +0 -0
- {invenio-vocabularies-4.1.1 → invenio-vocabularies-4.2.0}/invenio_vocabularies/alembic/6312f33645c1_create_affiliations_table.py +0 -0
- {invenio-vocabularies-4.1.1 → invenio-vocabularies-4.2.0}/invenio_vocabularies/alembic/676dd587542d_create_funders_vocabulary_table.py +0 -0
- {invenio-vocabularies-4.1.1 → invenio-vocabularies-4.2.0}/invenio_vocabularies/alembic/8ff82dfb0be8_create_vocabularies_branch.py +0 -0
- {invenio-vocabularies-4.1.1 → invenio-vocabularies-4.2.0}/invenio_vocabularies/alembic/__init__.py +0 -0
- {invenio-vocabularies-4.1.1 → invenio-vocabularies-4.2.0}/invenio_vocabularies/alembic/e1146238edd3_create_awards_table.py +0 -0
- {invenio-vocabularies-4.1.1 → invenio-vocabularies-4.2.0}/invenio_vocabularies/assets/semantic-ui/js/invenio_vocabularies/.eslintrc.yml +0 -0
- {invenio-vocabularies-4.1.1 → invenio-vocabularies-4.2.0}/invenio_vocabularies/assets/semantic-ui/js/invenio_vocabularies/.prettierrc +0 -0
- {invenio-vocabularies-4.1.1 → invenio-vocabularies-4.2.0}/invenio_vocabularies/assets/semantic-ui/js/invenio_vocabularies/index.js +0 -0
- {invenio-vocabularies-4.1.1 → invenio-vocabularies-4.2.0}/invenio_vocabularies/assets/semantic-ui/js/invenio_vocabularies/package.json +0 -0
- {invenio-vocabularies-4.1.1 → invenio-vocabularies-4.2.0}/invenio_vocabularies/assets/semantic-ui/js/invenio_vocabularies/src/contrib/forms/Funding/AwardResults.js +0 -0
- {invenio-vocabularies-4.1.1 → invenio-vocabularies-4.2.0}/invenio_vocabularies/assets/semantic-ui/js/invenio_vocabularies/src/contrib/forms/Funding/CustomAwardForm.js +0 -0
- {invenio-vocabularies-4.1.1 → invenio-vocabularies-4.2.0}/invenio_vocabularies/assets/semantic-ui/js/invenio_vocabularies/src/contrib/forms/Funding/FunderDropdown.js +0 -0
- {invenio-vocabularies-4.1.1 → invenio-vocabularies-4.2.0}/invenio_vocabularies/assets/semantic-ui/js/invenio_vocabularies/src/contrib/forms/Funding/FundingField.js +0 -0
- {invenio-vocabularies-4.1.1 → invenio-vocabularies-4.2.0}/invenio_vocabularies/assets/semantic-ui/js/invenio_vocabularies/src/contrib/forms/Funding/FundingField.test.js +0 -0
- {invenio-vocabularies-4.1.1 → invenio-vocabularies-4.2.0}/invenio_vocabularies/assets/semantic-ui/js/invenio_vocabularies/src/contrib/forms/Funding/FundingFieldItem.js +0 -0
- {invenio-vocabularies-4.1.1 → invenio-vocabularies-4.2.0}/invenio_vocabularies/assets/semantic-ui/js/invenio_vocabularies/src/contrib/forms/Funding/FundingModal.js +0 -0
- {invenio-vocabularies-4.1.1 → invenio-vocabularies-4.2.0}/invenio_vocabularies/assets/semantic-ui/js/invenio_vocabularies/src/contrib/forms/Funding/NoAwardResults.js +0 -0
- {invenio-vocabularies-4.1.1 → invenio-vocabularies-4.2.0}/invenio_vocabularies/assets/semantic-ui/js/invenio_vocabularies/src/contrib/forms/Funding/index.js +0 -0
- {invenio-vocabularies-4.1.1 → invenio-vocabularies-4.2.0}/invenio_vocabularies/assets/semantic-ui/js/invenio_vocabularies/src/contrib/forms/index.js +0 -0
- {invenio-vocabularies-4.1.1 → invenio-vocabularies-4.2.0}/invenio_vocabularies/assets/semantic-ui/js/invenio_vocabularies/src/contrib/index.js +0 -0
- {invenio-vocabularies-4.1.1 → invenio-vocabularies-4.2.0}/invenio_vocabularies/assets/semantic-ui/js/invenio_vocabularies/src/index.js +0 -0
- {invenio-vocabularies-4.1.1 → invenio-vocabularies-4.2.0}/invenio_vocabularies/assets/semantic-ui/translations/invenio_vocabularies/i18next-scanner.config.js +0 -0
- {invenio-vocabularies-4.1.1 → invenio-vocabularies-4.2.0}/invenio_vocabularies/assets/semantic-ui/translations/invenio_vocabularies/i18next.js +0 -0
- {invenio-vocabularies-4.1.1 → invenio-vocabularies-4.2.0}/invenio_vocabularies/assets/semantic-ui/translations/invenio_vocabularies/messages/index.js +0 -0
- {invenio-vocabularies-4.1.1 → invenio-vocabularies-4.2.0}/invenio_vocabularies/assets/semantic-ui/translations/invenio_vocabularies/package.json +0 -0
- {invenio-vocabularies-4.1.1 → invenio-vocabularies-4.2.0}/invenio_vocabularies/assets/semantic-ui/translations/invenio_vocabularies/scripts/compileCatalog.js +0 -0
- {invenio-vocabularies-4.1.1 → invenio-vocabularies-4.2.0}/invenio_vocabularies/assets/semantic-ui/translations/invenio_vocabularies/scripts/initCatalog.js +0 -0
- {invenio-vocabularies-4.1.1 → invenio-vocabularies-4.2.0}/invenio_vocabularies/contrib/__init__.py +0 -0
- {invenio-vocabularies-4.1.1 → invenio-vocabularies-4.2.0}/invenio_vocabularies/contrib/affiliations/__init__.py +0 -0
- {invenio-vocabularies-4.1.1 → invenio-vocabularies-4.2.0}/invenio_vocabularies/contrib/affiliations/affiliations.py +0 -0
- {invenio-vocabularies-4.1.1 → invenio-vocabularies-4.2.0}/invenio_vocabularies/contrib/affiliations/config.py +0 -0
- {invenio-vocabularies-4.1.1 → invenio-vocabularies-4.2.0}/invenio_vocabularies/contrib/affiliations/facets.py +0 -0
- {invenio-vocabularies-4.1.1 → invenio-vocabularies-4.2.0}/invenio_vocabularies/contrib/affiliations/jsonschemas/__init__.py +0 -0
- {invenio-vocabularies-4.1.1 → invenio-vocabularies-4.2.0}/invenio_vocabularies/contrib/affiliations/jsonschemas/affiliations/affiliation-v1.0.0.json +0 -0
- {invenio-vocabularies-4.1.1 → invenio-vocabularies-4.2.0}/invenio_vocabularies/contrib/affiliations/mappings/__init__.py +0 -0
- {invenio-vocabularies-4.1.1 → invenio-vocabularies-4.2.0}/invenio_vocabularies/contrib/affiliations/mappings/os-v1/__init__.py +0 -0
- {invenio-vocabularies-4.1.1 → invenio-vocabularies-4.2.0}/invenio_vocabularies/contrib/affiliations/mappings/os-v1/affiliations/affiliation-v1.0.0.json +0 -0
- {invenio-vocabularies-4.1.1 → invenio-vocabularies-4.2.0}/invenio_vocabularies/contrib/affiliations/mappings/os-v2/__init__.py +0 -0
- {invenio-vocabularies-4.1.1 → invenio-vocabularies-4.2.0}/invenio_vocabularies/contrib/affiliations/mappings/os-v2/affiliations/affiliation-v1.0.0.json +0 -0
- {invenio-vocabularies-4.1.1 → invenio-vocabularies-4.2.0}/invenio_vocabularies/contrib/affiliations/mappings/v7/__init__.py +0 -0
- {invenio-vocabularies-4.1.1 → invenio-vocabularies-4.2.0}/invenio_vocabularies/contrib/affiliations/mappings/v7/affiliations/affiliation-v1.0.0.json +0 -0
- {invenio-vocabularies-4.1.1 → invenio-vocabularies-4.2.0}/invenio_vocabularies/contrib/affiliations/models.py +0 -0
- {invenio-vocabularies-4.1.1 → invenio-vocabularies-4.2.0}/invenio_vocabularies/contrib/affiliations/resources.py +0 -0
- {invenio-vocabularies-4.1.1 → invenio-vocabularies-4.2.0}/invenio_vocabularies/contrib/affiliations/schema.py +0 -0
- {invenio-vocabularies-4.1.1 → invenio-vocabularies-4.2.0}/invenio_vocabularies/contrib/awards/__init__.py +0 -0
- {invenio-vocabularies-4.1.1 → invenio-vocabularies-4.2.0}/invenio_vocabularies/contrib/awards/api.py +0 -0
- {invenio-vocabularies-4.1.1 → invenio-vocabularies-4.2.0}/invenio_vocabularies/contrib/awards/config.py +0 -0
- {invenio-vocabularies-4.1.1 → invenio-vocabularies-4.2.0}/invenio_vocabularies/contrib/awards/jsonschemas/__init__.py +0 -0
- {invenio-vocabularies-4.1.1 → invenio-vocabularies-4.2.0}/invenio_vocabularies/contrib/awards/jsonschemas/awards/award-v1.0.0.json +0 -0
- {invenio-vocabularies-4.1.1 → invenio-vocabularies-4.2.0}/invenio_vocabularies/contrib/awards/mappings/__init__.py +0 -0
- {invenio-vocabularies-4.1.1 → invenio-vocabularies-4.2.0}/invenio_vocabularies/contrib/awards/mappings/os-v1/__init__.py +0 -0
- {invenio-vocabularies-4.1.1 → invenio-vocabularies-4.2.0}/invenio_vocabularies/contrib/awards/mappings/os-v1/awards/award-v1.0.0.json +0 -0
- {invenio-vocabularies-4.1.1 → invenio-vocabularies-4.2.0}/invenio_vocabularies/contrib/awards/mappings/os-v2/__init__.py +0 -0
- {invenio-vocabularies-4.1.1 → invenio-vocabularies-4.2.0}/invenio_vocabularies/contrib/awards/mappings/os-v2/awards/award-v1.0.0.json +0 -0
- {invenio-vocabularies-4.1.1 → invenio-vocabularies-4.2.0}/invenio_vocabularies/contrib/awards/mappings/v7/__init__.py +0 -0
- {invenio-vocabularies-4.1.1 → invenio-vocabularies-4.2.0}/invenio_vocabularies/contrib/awards/mappings/v7/awards/award-v1.0.0.json +0 -0
- {invenio-vocabularies-4.1.1 → invenio-vocabularies-4.2.0}/invenio_vocabularies/contrib/awards/models.py +0 -0
- {invenio-vocabularies-4.1.1 → invenio-vocabularies-4.2.0}/invenio_vocabularies/contrib/awards/resources.py +0 -0
- {invenio-vocabularies-4.1.1 → invenio-vocabularies-4.2.0}/invenio_vocabularies/contrib/awards/schema.py +0 -0
- {invenio-vocabularies-4.1.1 → invenio-vocabularies-4.2.0}/invenio_vocabularies/contrib/awards/serializer.py +0 -0
- {invenio-vocabularies-4.1.1 → invenio-vocabularies-4.2.0}/invenio_vocabularies/contrib/common/__init__.py +0 -0
- {invenio-vocabularies-4.1.1 → invenio-vocabularies-4.2.0}/invenio_vocabularies/contrib/common/ror/__init__.py +0 -0
- {invenio-vocabularies-4.1.1 → invenio-vocabularies-4.2.0}/invenio_vocabularies/contrib/funders/__init__.py +0 -0
- {invenio-vocabularies-4.1.1 → invenio-vocabularies-4.2.0}/invenio_vocabularies/contrib/funders/api.py +0 -0
- {invenio-vocabularies-4.1.1 → invenio-vocabularies-4.2.0}/invenio_vocabularies/contrib/funders/config.py +0 -0
- {invenio-vocabularies-4.1.1 → invenio-vocabularies-4.2.0}/invenio_vocabularies/contrib/funders/facets.py +0 -0
- {invenio-vocabularies-4.1.1 → invenio-vocabularies-4.2.0}/invenio_vocabularies/contrib/funders/jsonschemas/__init__.py +0 -0
- {invenio-vocabularies-4.1.1 → invenio-vocabularies-4.2.0}/invenio_vocabularies/contrib/funders/jsonschemas/funders/funder-v1.0.0.json +0 -0
- {invenio-vocabularies-4.1.1 → invenio-vocabularies-4.2.0}/invenio_vocabularies/contrib/funders/mappings/__init__.py +0 -0
- {invenio-vocabularies-4.1.1 → invenio-vocabularies-4.2.0}/invenio_vocabularies/contrib/funders/mappings/os-v1/__init__.py +0 -0
- {invenio-vocabularies-4.1.1 → invenio-vocabularies-4.2.0}/invenio_vocabularies/contrib/funders/mappings/os-v1/funders/funder-v1.0.0.json +0 -0
- {invenio-vocabularies-4.1.1 → invenio-vocabularies-4.2.0}/invenio_vocabularies/contrib/funders/mappings/os-v2/__init__.py +0 -0
- {invenio-vocabularies-4.1.1 → invenio-vocabularies-4.2.0}/invenio_vocabularies/contrib/funders/mappings/os-v2/funders/funder-v1.0.0.json +0 -0
- {invenio-vocabularies-4.1.1 → invenio-vocabularies-4.2.0}/invenio_vocabularies/contrib/funders/mappings/v7/__init__.py +0 -0
- {invenio-vocabularies-4.1.1 → invenio-vocabularies-4.2.0}/invenio_vocabularies/contrib/funders/mappings/v7/funders/funder-v1.0.0.json +0 -0
- {invenio-vocabularies-4.1.1 → invenio-vocabularies-4.2.0}/invenio_vocabularies/contrib/funders/models.py +0 -0
- {invenio-vocabularies-4.1.1 → invenio-vocabularies-4.2.0}/invenio_vocabularies/contrib/funders/resources.py +0 -0
- {invenio-vocabularies-4.1.1 → invenio-vocabularies-4.2.0}/invenio_vocabularies/contrib/funders/schema.py +0 -0
- {invenio-vocabularies-4.1.1 → invenio-vocabularies-4.2.0}/invenio_vocabularies/contrib/funders/serializer.py +0 -0
- {invenio-vocabularies-4.1.1 → invenio-vocabularies-4.2.0}/invenio_vocabularies/contrib/funders/services.py +0 -0
- {invenio-vocabularies-4.1.1 → invenio-vocabularies-4.2.0}/invenio_vocabularies/contrib/names/__init__.py +0 -0
- {invenio-vocabularies-4.1.1 → invenio-vocabularies-4.2.0}/invenio_vocabularies/contrib/names/api.py +0 -0
- {invenio-vocabularies-4.1.1 → invenio-vocabularies-4.2.0}/invenio_vocabularies/contrib/names/config.py +0 -0
- {invenio-vocabularies-4.1.1 → invenio-vocabularies-4.2.0}/invenio_vocabularies/contrib/names/datastreams.py +0 -0
- {invenio-vocabularies-4.1.1 → invenio-vocabularies-4.2.0}/invenio_vocabularies/contrib/names/jsonschemas/__init__.py +0 -0
- {invenio-vocabularies-4.1.1 → invenio-vocabularies-4.2.0}/invenio_vocabularies/contrib/names/jsonschemas/names/name-v1.0.0.json +0 -0
- {invenio-vocabularies-4.1.1 → invenio-vocabularies-4.2.0}/invenio_vocabularies/contrib/names/mappings/__init__.py +0 -0
- {invenio-vocabularies-4.1.1 → invenio-vocabularies-4.2.0}/invenio_vocabularies/contrib/names/mappings/os-v1/__init__.py +0 -0
- {invenio-vocabularies-4.1.1 → invenio-vocabularies-4.2.0}/invenio_vocabularies/contrib/names/mappings/os-v1/names/name-v1.0.0.json +0 -0
- {invenio-vocabularies-4.1.1 → invenio-vocabularies-4.2.0}/invenio_vocabularies/contrib/names/mappings/os-v2/__init__.py +0 -0
- {invenio-vocabularies-4.1.1 → invenio-vocabularies-4.2.0}/invenio_vocabularies/contrib/names/mappings/os-v2/names/name-v1.0.0.json +0 -0
- {invenio-vocabularies-4.1.1 → invenio-vocabularies-4.2.0}/invenio_vocabularies/contrib/names/mappings/v7/__init__.py +0 -0
- {invenio-vocabularies-4.1.1 → invenio-vocabularies-4.2.0}/invenio_vocabularies/contrib/names/mappings/v7/names/name-v1.0.0.json +0 -0
- {invenio-vocabularies-4.1.1 → invenio-vocabularies-4.2.0}/invenio_vocabularies/contrib/names/models.py +0 -0
- {invenio-vocabularies-4.1.1 → invenio-vocabularies-4.2.0}/invenio_vocabularies/contrib/names/names.py +0 -0
- {invenio-vocabularies-4.1.1 → invenio-vocabularies-4.2.0}/invenio_vocabularies/contrib/names/resources.py +0 -0
- {invenio-vocabularies-4.1.1 → invenio-vocabularies-4.2.0}/invenio_vocabularies/contrib/names/schema.py +0 -0
- {invenio-vocabularies-4.1.1 → invenio-vocabularies-4.2.0}/invenio_vocabularies/contrib/names/services.py +0 -0
- {invenio-vocabularies-4.1.1 → invenio-vocabularies-4.2.0}/invenio_vocabularies/contrib/subjects/__init__.py +0 -0
- {invenio-vocabularies-4.1.1 → invenio-vocabularies-4.2.0}/invenio_vocabularies/contrib/subjects/api.py +0 -0
- {invenio-vocabularies-4.1.1 → invenio-vocabularies-4.2.0}/invenio_vocabularies/contrib/subjects/config.py +0 -0
- {invenio-vocabularies-4.1.1 → invenio-vocabularies-4.2.0}/invenio_vocabularies/contrib/subjects/facets.py +0 -0
- {invenio-vocabularies-4.1.1 → invenio-vocabularies-4.2.0}/invenio_vocabularies/contrib/subjects/jsonschemas/__init__.py +0 -0
- {invenio-vocabularies-4.1.1 → invenio-vocabularies-4.2.0}/invenio_vocabularies/contrib/subjects/jsonschemas/subjects/subject-v1.0.0.json +0 -0
- {invenio-vocabularies-4.1.1 → invenio-vocabularies-4.2.0}/invenio_vocabularies/contrib/subjects/mappings/__init__.py +0 -0
- {invenio-vocabularies-4.1.1 → invenio-vocabularies-4.2.0}/invenio_vocabularies/contrib/subjects/mappings/os-v1/__init__.py +0 -0
- {invenio-vocabularies-4.1.1 → invenio-vocabularies-4.2.0}/invenio_vocabularies/contrib/subjects/mappings/os-v1/subjects/subject-v1.0.0.json +0 -0
- {invenio-vocabularies-4.1.1 → invenio-vocabularies-4.2.0}/invenio_vocabularies/contrib/subjects/mappings/os-v2/__init__.py +0 -0
- {invenio-vocabularies-4.1.1 → invenio-vocabularies-4.2.0}/invenio_vocabularies/contrib/subjects/mappings/os-v2/subjects/subject-v1.0.0.json +0 -0
- {invenio-vocabularies-4.1.1 → invenio-vocabularies-4.2.0}/invenio_vocabularies/contrib/subjects/mappings/v7/__init__.py +0 -0
- {invenio-vocabularies-4.1.1 → invenio-vocabularies-4.2.0}/invenio_vocabularies/contrib/subjects/mappings/v7/subjects/subject-v1.0.0.json +0 -0
- {invenio-vocabularies-4.1.1 → invenio-vocabularies-4.2.0}/invenio_vocabularies/contrib/subjects/models.py +0 -0
- {invenio-vocabularies-4.1.1 → invenio-vocabularies-4.2.0}/invenio_vocabularies/contrib/subjects/resources.py +0 -0
- {invenio-vocabularies-4.1.1 → invenio-vocabularies-4.2.0}/invenio_vocabularies/contrib/subjects/schema.py +0 -0
- {invenio-vocabularies-4.1.1 → invenio-vocabularies-4.2.0}/invenio_vocabularies/contrib/subjects/services.py +0 -0
- {invenio-vocabularies-4.1.1 → invenio-vocabularies-4.2.0}/invenio_vocabularies/contrib/subjects/subjects.py +0 -0
- {invenio-vocabularies-4.1.1 → invenio-vocabularies-4.2.0}/invenio_vocabularies/datastreams/__init__.py +0 -0
- {invenio-vocabularies-4.1.1 → invenio-vocabularies-4.2.0}/invenio_vocabularies/datastreams/datastreams.py +0 -0
- {invenio-vocabularies-4.1.1 → invenio-vocabularies-4.2.0}/invenio_vocabularies/datastreams/errors.py +0 -0
- {invenio-vocabularies-4.1.1 → invenio-vocabularies-4.2.0}/invenio_vocabularies/datastreams/factories.py +0 -0
- {invenio-vocabularies-4.1.1 → invenio-vocabularies-4.2.0}/invenio_vocabularies/datastreams/transformers.py +0 -0
- {invenio-vocabularies-4.1.1 → invenio-vocabularies-4.2.0}/invenio_vocabularies/datastreams/xml.py +0 -0
- {invenio-vocabularies-4.1.1 → invenio-vocabularies-4.2.0}/invenio_vocabularies/ext.py +0 -0
- {invenio-vocabularies-4.1.1 → invenio-vocabularies-4.2.0}/invenio_vocabularies/fixtures.py +0 -0
- {invenio-vocabularies-4.1.1 → invenio-vocabularies-4.2.0}/invenio_vocabularies/proxies.py +0 -0
- {invenio-vocabularies-4.1.1 → invenio-vocabularies-4.2.0}/invenio_vocabularies/records/__init__.py +0 -0
- {invenio-vocabularies-4.1.1 → invenio-vocabularies-4.2.0}/invenio_vocabularies/records/api.py +0 -0
- {invenio-vocabularies-4.1.1 → invenio-vocabularies-4.2.0}/invenio_vocabularies/records/jsonschemas/__init__.py +0 -0
- {invenio-vocabularies-4.1.1 → invenio-vocabularies-4.2.0}/invenio_vocabularies/records/jsonschemas/vocabularies/definitions-v1.0.0.json +0 -0
- {invenio-vocabularies-4.1.1 → invenio-vocabularies-4.2.0}/invenio_vocabularies/records/jsonschemas/vocabularies/vocabulary-v1.0.0.json +0 -0
- {invenio-vocabularies-4.1.1 → invenio-vocabularies-4.2.0}/invenio_vocabularies/records/mappings/__init__.py +0 -0
- {invenio-vocabularies-4.1.1 → invenio-vocabularies-4.2.0}/invenio_vocabularies/records/mappings/os-v1/__init__.py +0 -0
- {invenio-vocabularies-4.1.1 → invenio-vocabularies-4.2.0}/invenio_vocabularies/records/mappings/os-v1/vocabularies/vocabulary-v1.0.0.json +0 -0
- {invenio-vocabularies-4.1.1 → invenio-vocabularies-4.2.0}/invenio_vocabularies/records/mappings/os-v2/__init__.py +0 -0
- {invenio-vocabularies-4.1.1 → invenio-vocabularies-4.2.0}/invenio_vocabularies/records/mappings/os-v2/vocabularies/vocabulary-v1.0.0.json +0 -0
- {invenio-vocabularies-4.1.1 → invenio-vocabularies-4.2.0}/invenio_vocabularies/records/mappings/v7/__init__.py +0 -0
- {invenio-vocabularies-4.1.1 → invenio-vocabularies-4.2.0}/invenio_vocabularies/records/mappings/v7/vocabularies/vocabulary-v1.0.0.json +0 -0
- {invenio-vocabularies-4.1.1 → invenio-vocabularies-4.2.0}/invenio_vocabularies/records/systemfields/__init__.py +0 -0
- {invenio-vocabularies-4.1.1 → invenio-vocabularies-4.2.0}/invenio_vocabularies/records/systemfields/pid.py +0 -0
- {invenio-vocabularies-4.1.1 → invenio-vocabularies-4.2.0}/invenio_vocabularies/records/systemfields/relations.py +0 -0
- {invenio-vocabularies-4.1.1 → invenio-vocabularies-4.2.0}/invenio_vocabularies/resources/config.py +0 -0
- {invenio-vocabularies-4.1.1 → invenio-vocabularies-4.2.0}/invenio_vocabularies/resources/resource.py +0 -0
- {invenio-vocabularies-4.1.1 → invenio-vocabularies-4.2.0}/invenio_vocabularies/resources/serializer.py +0 -0
- {invenio-vocabularies-4.1.1 → invenio-vocabularies-4.2.0}/invenio_vocabularies/services/__init__.py +0 -0
- {invenio-vocabularies-4.1.1 → invenio-vocabularies-4.2.0}/invenio_vocabularies/services/components.py +0 -0
- {invenio-vocabularies-4.1.1 → invenio-vocabularies-4.2.0}/invenio_vocabularies/services/config.py +0 -0
- {invenio-vocabularies-4.1.1 → invenio-vocabularies-4.2.0}/invenio_vocabularies/services/custom_fields/__init__.py +0 -0
- {invenio-vocabularies-4.1.1 → invenio-vocabularies-4.2.0}/invenio_vocabularies/services/facets.py +0 -0
- {invenio-vocabularies-4.1.1 → invenio-vocabularies-4.2.0}/invenio_vocabularies/services/permissions.py +0 -0
- {invenio-vocabularies-4.1.1 → invenio-vocabularies-4.2.0}/invenio_vocabularies/services/querystr.py +0 -0
- {invenio-vocabularies-4.1.1 → invenio-vocabularies-4.2.0}/invenio_vocabularies/services/results.py +0 -0
- {invenio-vocabularies-4.1.1 → invenio-vocabularies-4.2.0}/invenio_vocabularies/services/schema.py +0 -0
- {invenio-vocabularies-4.1.1 → invenio-vocabularies-4.2.0}/invenio_vocabularies/services/service.py +0 -0
- {invenio-vocabularies-4.1.1 → invenio-vocabularies-4.2.0}/invenio_vocabularies/templates/semantic-ui/invenio_vocabularies/subjects.html +0 -0
- {invenio-vocabularies-4.1.1 → invenio-vocabularies-4.2.0}/invenio_vocabularies/templates/semantic-ui/invenio_vocabularies/vocabularies-list.html +0 -0
- {invenio-vocabularies-4.1.1 → invenio-vocabularies-4.2.0}/invenio_vocabularies/templates/semantic-ui/invenio_vocabularies/vocabulary-details.html +0 -0
- {invenio-vocabularies-4.1.1 → invenio-vocabularies-4.2.0}/invenio_vocabularies/translations/af/LC_MESSAGES/messages.mo +0 -0
- {invenio-vocabularies-4.1.1 → invenio-vocabularies-4.2.0}/invenio_vocabularies/translations/af/LC_MESSAGES/messages.po +0 -0
- {invenio-vocabularies-4.1.1 → invenio-vocabularies-4.2.0}/invenio_vocabularies/translations/ar/LC_MESSAGES/messages.mo +0 -0
- {invenio-vocabularies-4.1.1 → invenio-vocabularies-4.2.0}/invenio_vocabularies/translations/ar/LC_MESSAGES/messages.po +0 -0
- {invenio-vocabularies-4.1.1 → invenio-vocabularies-4.2.0}/invenio_vocabularies/translations/bg/LC_MESSAGES/messages.mo +0 -0
- {invenio-vocabularies-4.1.1 → invenio-vocabularies-4.2.0}/invenio_vocabularies/translations/bg/LC_MESSAGES/messages.po +0 -0
- {invenio-vocabularies-4.1.1 → invenio-vocabularies-4.2.0}/invenio_vocabularies/translations/ca/LC_MESSAGES/messages.mo +0 -0
- {invenio-vocabularies-4.1.1 → invenio-vocabularies-4.2.0}/invenio_vocabularies/translations/ca/LC_MESSAGES/messages.po +0 -0
- {invenio-vocabularies-4.1.1 → invenio-vocabularies-4.2.0}/invenio_vocabularies/translations/cs/LC_MESSAGES/messages.mo +0 -0
- {invenio-vocabularies-4.1.1 → invenio-vocabularies-4.2.0}/invenio_vocabularies/translations/cs/LC_MESSAGES/messages.po +0 -0
- {invenio-vocabularies-4.1.1 → invenio-vocabularies-4.2.0}/invenio_vocabularies/translations/da/LC_MESSAGES/messages.mo +0 -0
- {invenio-vocabularies-4.1.1 → invenio-vocabularies-4.2.0}/invenio_vocabularies/translations/da/LC_MESSAGES/messages.po +0 -0
- {invenio-vocabularies-4.1.1 → invenio-vocabularies-4.2.0}/invenio_vocabularies/translations/de/LC_MESSAGES/messages.mo +0 -0
- {invenio-vocabularies-4.1.1 → invenio-vocabularies-4.2.0}/invenio_vocabularies/translations/de/LC_MESSAGES/messages.po +0 -0
- {invenio-vocabularies-4.1.1 → invenio-vocabularies-4.2.0}/invenio_vocabularies/translations/de_AT/LC_MESSAGES/messages.mo +0 -0
- {invenio-vocabularies-4.1.1 → invenio-vocabularies-4.2.0}/invenio_vocabularies/translations/de_AT/LC_MESSAGES/messages.po +0 -0
- {invenio-vocabularies-4.1.1 → invenio-vocabularies-4.2.0}/invenio_vocabularies/translations/de_DE/LC_MESSAGES/messages.mo +0 -0
- {invenio-vocabularies-4.1.1 → invenio-vocabularies-4.2.0}/invenio_vocabularies/translations/de_DE/LC_MESSAGES/messages.po +0 -0
- {invenio-vocabularies-4.1.1 → invenio-vocabularies-4.2.0}/invenio_vocabularies/translations/el/LC_MESSAGES/messages.mo +0 -0
- {invenio-vocabularies-4.1.1 → invenio-vocabularies-4.2.0}/invenio_vocabularies/translations/el/LC_MESSAGES/messages.po +0 -0
- {invenio-vocabularies-4.1.1 → invenio-vocabularies-4.2.0}/invenio_vocabularies/translations/en/LC_MESSAGES/messages.mo +0 -0
- {invenio-vocabularies-4.1.1 → invenio-vocabularies-4.2.0}/invenio_vocabularies/translations/en/LC_MESSAGES/messages.po +0 -0
- {invenio-vocabularies-4.1.1 → invenio-vocabularies-4.2.0}/invenio_vocabularies/translations/en_AT/LC_MESSAGES/messages.mo +0 -0
- {invenio-vocabularies-4.1.1 → invenio-vocabularies-4.2.0}/invenio_vocabularies/translations/en_AT/LC_MESSAGES/messages.po +0 -0
- {invenio-vocabularies-4.1.1 → invenio-vocabularies-4.2.0}/invenio_vocabularies/translations/en_HU/LC_MESSAGES/messages.mo +0 -0
- {invenio-vocabularies-4.1.1 → invenio-vocabularies-4.2.0}/invenio_vocabularies/translations/en_HU/LC_MESSAGES/messages.po +0 -0
- {invenio-vocabularies-4.1.1 → invenio-vocabularies-4.2.0}/invenio_vocabularies/translations/es/LC_MESSAGES/messages.mo +0 -0
- {invenio-vocabularies-4.1.1 → invenio-vocabularies-4.2.0}/invenio_vocabularies/translations/es/LC_MESSAGES/messages.po +0 -0
- {invenio-vocabularies-4.1.1 → invenio-vocabularies-4.2.0}/invenio_vocabularies/translations/es_CU/LC_MESSAGES/messages.mo +0 -0
- {invenio-vocabularies-4.1.1 → invenio-vocabularies-4.2.0}/invenio_vocabularies/translations/es_CU/LC_MESSAGES/messages.po +0 -0
- {invenio-vocabularies-4.1.1 → invenio-vocabularies-4.2.0}/invenio_vocabularies/translations/es_MX/LC_MESSAGES/messages.mo +0 -0
- {invenio-vocabularies-4.1.1 → invenio-vocabularies-4.2.0}/invenio_vocabularies/translations/es_MX/LC_MESSAGES/messages.po +0 -0
- {invenio-vocabularies-4.1.1 → invenio-vocabularies-4.2.0}/invenio_vocabularies/translations/et/LC_MESSAGES/messages.mo +0 -0
- {invenio-vocabularies-4.1.1 → invenio-vocabularies-4.2.0}/invenio_vocabularies/translations/et/LC_MESSAGES/messages.po +0 -0
- {invenio-vocabularies-4.1.1 → invenio-vocabularies-4.2.0}/invenio_vocabularies/translations/et_EE/LC_MESSAGES/messages.mo +0 -0
- {invenio-vocabularies-4.1.1 → invenio-vocabularies-4.2.0}/invenio_vocabularies/translations/et_EE/LC_MESSAGES/messages.po +0 -0
- {invenio-vocabularies-4.1.1 → invenio-vocabularies-4.2.0}/invenio_vocabularies/translations/fa/LC_MESSAGES/messages.mo +0 -0
- {invenio-vocabularies-4.1.1 → invenio-vocabularies-4.2.0}/invenio_vocabularies/translations/fa/LC_MESSAGES/messages.po +0 -0
- {invenio-vocabularies-4.1.1 → invenio-vocabularies-4.2.0}/invenio_vocabularies/translations/fa_IR/LC_MESSAGES/messages.mo +0 -0
- {invenio-vocabularies-4.1.1 → invenio-vocabularies-4.2.0}/invenio_vocabularies/translations/fa_IR/LC_MESSAGES/messages.po +0 -0
- {invenio-vocabularies-4.1.1 → invenio-vocabularies-4.2.0}/invenio_vocabularies/translations/fr/LC_MESSAGES/messages.mo +0 -0
- {invenio-vocabularies-4.1.1 → invenio-vocabularies-4.2.0}/invenio_vocabularies/translations/fr/LC_MESSAGES/messages.po +0 -0
- {invenio-vocabularies-4.1.1 → invenio-vocabularies-4.2.0}/invenio_vocabularies/translations/fr_CI/LC_MESSAGES/messages.mo +0 -0
- {invenio-vocabularies-4.1.1 → invenio-vocabularies-4.2.0}/invenio_vocabularies/translations/fr_CI/LC_MESSAGES/messages.po +0 -0
- {invenio-vocabularies-4.1.1 → invenio-vocabularies-4.2.0}/invenio_vocabularies/translations/fr_FR/LC_MESSAGES/messages.mo +0 -0
- {invenio-vocabularies-4.1.1 → invenio-vocabularies-4.2.0}/invenio_vocabularies/translations/fr_FR/LC_MESSAGES/messages.po +0 -0
- {invenio-vocabularies-4.1.1 → invenio-vocabularies-4.2.0}/invenio_vocabularies/translations/gl/LC_MESSAGES/messages.mo +0 -0
- {invenio-vocabularies-4.1.1 → invenio-vocabularies-4.2.0}/invenio_vocabularies/translations/gl/LC_MESSAGES/messages.po +0 -0
- {invenio-vocabularies-4.1.1 → invenio-vocabularies-4.2.0}/invenio_vocabularies/translations/hi_IN/LC_MESSAGES/messages.mo +0 -0
- {invenio-vocabularies-4.1.1 → invenio-vocabularies-4.2.0}/invenio_vocabularies/translations/hi_IN/LC_MESSAGES/messages.po +0 -0
- {invenio-vocabularies-4.1.1 → invenio-vocabularies-4.2.0}/invenio_vocabularies/translations/hr/LC_MESSAGES/messages.mo +0 -0
- {invenio-vocabularies-4.1.1 → invenio-vocabularies-4.2.0}/invenio_vocabularies/translations/hr/LC_MESSAGES/messages.po +0 -0
- {invenio-vocabularies-4.1.1 → invenio-vocabularies-4.2.0}/invenio_vocabularies/translations/hu/LC_MESSAGES/messages.mo +0 -0
- {invenio-vocabularies-4.1.1 → invenio-vocabularies-4.2.0}/invenio_vocabularies/translations/hu/LC_MESSAGES/messages.po +0 -0
- {invenio-vocabularies-4.1.1 → invenio-vocabularies-4.2.0}/invenio_vocabularies/translations/hu_HU/LC_MESSAGES/messages.mo +0 -0
- {invenio-vocabularies-4.1.1 → invenio-vocabularies-4.2.0}/invenio_vocabularies/translations/hu_HU/LC_MESSAGES/messages.po +0 -0
- {invenio-vocabularies-4.1.1 → invenio-vocabularies-4.2.0}/invenio_vocabularies/translations/it/LC_MESSAGES/messages.mo +0 -0
- {invenio-vocabularies-4.1.1 → invenio-vocabularies-4.2.0}/invenio_vocabularies/translations/it/LC_MESSAGES/messages.po +0 -0
- {invenio-vocabularies-4.1.1 → invenio-vocabularies-4.2.0}/invenio_vocabularies/translations/ja/LC_MESSAGES/messages.mo +0 -0
- {invenio-vocabularies-4.1.1 → invenio-vocabularies-4.2.0}/invenio_vocabularies/translations/ja/LC_MESSAGES/messages.po +0 -0
- {invenio-vocabularies-4.1.1 → invenio-vocabularies-4.2.0}/invenio_vocabularies/translations/ka/LC_MESSAGES/messages.mo +0 -0
- {invenio-vocabularies-4.1.1 → invenio-vocabularies-4.2.0}/invenio_vocabularies/translations/ka/LC_MESSAGES/messages.po +0 -0
- {invenio-vocabularies-4.1.1 → invenio-vocabularies-4.2.0}/invenio_vocabularies/translations/lt/LC_MESSAGES/messages.mo +0 -0
- {invenio-vocabularies-4.1.1 → invenio-vocabularies-4.2.0}/invenio_vocabularies/translations/lt/LC_MESSAGES/messages.po +0 -0
- {invenio-vocabularies-4.1.1 → invenio-vocabularies-4.2.0}/invenio_vocabularies/translations/messages.pot +0 -0
- {invenio-vocabularies-4.1.1 → invenio-vocabularies-4.2.0}/invenio_vocabularies/translations/ne/LC_MESSAGES/messages.mo +0 -0
- {invenio-vocabularies-4.1.1 → invenio-vocabularies-4.2.0}/invenio_vocabularies/translations/ne/LC_MESSAGES/messages.po +0 -0
- {invenio-vocabularies-4.1.1 → invenio-vocabularies-4.2.0}/invenio_vocabularies/translations/no/LC_MESSAGES/messages.mo +0 -0
- {invenio-vocabularies-4.1.1 → invenio-vocabularies-4.2.0}/invenio_vocabularies/translations/no/LC_MESSAGES/messages.po +0 -0
- {invenio-vocabularies-4.1.1 → invenio-vocabularies-4.2.0}/invenio_vocabularies/translations/pl/LC_MESSAGES/messages.mo +0 -0
- {invenio-vocabularies-4.1.1 → invenio-vocabularies-4.2.0}/invenio_vocabularies/translations/pl/LC_MESSAGES/messages.po +0 -0
- {invenio-vocabularies-4.1.1 → invenio-vocabularies-4.2.0}/invenio_vocabularies/translations/pt/LC_MESSAGES/messages.mo +0 -0
- {invenio-vocabularies-4.1.1 → invenio-vocabularies-4.2.0}/invenio_vocabularies/translations/pt/LC_MESSAGES/messages.po +0 -0
- {invenio-vocabularies-4.1.1 → invenio-vocabularies-4.2.0}/invenio_vocabularies/translations/ro/LC_MESSAGES/messages.mo +0 -0
- {invenio-vocabularies-4.1.1 → invenio-vocabularies-4.2.0}/invenio_vocabularies/translations/ro/LC_MESSAGES/messages.po +0 -0
- {invenio-vocabularies-4.1.1 → invenio-vocabularies-4.2.0}/invenio_vocabularies/translations/ru/LC_MESSAGES/messages.mo +0 -0
- {invenio-vocabularies-4.1.1 → invenio-vocabularies-4.2.0}/invenio_vocabularies/translations/ru/LC_MESSAGES/messages.po +0 -0
- {invenio-vocabularies-4.1.1 → invenio-vocabularies-4.2.0}/invenio_vocabularies/translations/rw/LC_MESSAGES/messages.mo +0 -0
- {invenio-vocabularies-4.1.1 → invenio-vocabularies-4.2.0}/invenio_vocabularies/translations/rw/LC_MESSAGES/messages.po +0 -0
- {invenio-vocabularies-4.1.1 → invenio-vocabularies-4.2.0}/invenio_vocabularies/translations/sk/LC_MESSAGES/messages.mo +0 -0
- {invenio-vocabularies-4.1.1 → invenio-vocabularies-4.2.0}/invenio_vocabularies/translations/sk/LC_MESSAGES/messages.po +0 -0
- {invenio-vocabularies-4.1.1 → invenio-vocabularies-4.2.0}/invenio_vocabularies/translations/sv/LC_MESSAGES/messages.mo +0 -0
- {invenio-vocabularies-4.1.1 → invenio-vocabularies-4.2.0}/invenio_vocabularies/translations/sv/LC_MESSAGES/messages.po +0 -0
- {invenio-vocabularies-4.1.1 → invenio-vocabularies-4.2.0}/invenio_vocabularies/translations/sv_SE/LC_MESSAGES/messages.mo +0 -0
- {invenio-vocabularies-4.1.1 → invenio-vocabularies-4.2.0}/invenio_vocabularies/translations/sv_SE/LC_MESSAGES/messages.po +0 -0
- {invenio-vocabularies-4.1.1 → invenio-vocabularies-4.2.0}/invenio_vocabularies/translations/tr/LC_MESSAGES/messages.mo +0 -0
- {invenio-vocabularies-4.1.1 → invenio-vocabularies-4.2.0}/invenio_vocabularies/translations/tr/LC_MESSAGES/messages.po +0 -0
- {invenio-vocabularies-4.1.1 → invenio-vocabularies-4.2.0}/invenio_vocabularies/translations/uk/LC_MESSAGES/messages.mo +0 -0
- {invenio-vocabularies-4.1.1 → invenio-vocabularies-4.2.0}/invenio_vocabularies/translations/uk/LC_MESSAGES/messages.po +0 -0
- {invenio-vocabularies-4.1.1 → invenio-vocabularies-4.2.0}/invenio_vocabularies/translations/uk_UA/LC_MESSAGES/messages.mo +0 -0
- {invenio-vocabularies-4.1.1 → invenio-vocabularies-4.2.0}/invenio_vocabularies/translations/uk_UA/LC_MESSAGES/messages.po +0 -0
- {invenio-vocabularies-4.1.1 → invenio-vocabularies-4.2.0}/invenio_vocabularies/translations/zh_CN/LC_MESSAGES/messages.mo +0 -0
- {invenio-vocabularies-4.1.1 → invenio-vocabularies-4.2.0}/invenio_vocabularies/translations/zh_CN/LC_MESSAGES/messages.po +0 -0
- {invenio-vocabularies-4.1.1 → invenio-vocabularies-4.2.0}/invenio_vocabularies/translations/zh_TW/LC_MESSAGES/messages.mo +0 -0
- {invenio-vocabularies-4.1.1 → invenio-vocabularies-4.2.0}/invenio_vocabularies/translations/zh_TW/LC_MESSAGES/messages.po +0 -0
- {invenio-vocabularies-4.1.1 → invenio-vocabularies-4.2.0}/invenio_vocabularies/views.py +0 -0
- {invenio-vocabularies-4.1.1 → invenio-vocabularies-4.2.0}/invenio_vocabularies/webpack.py +0 -0
- {invenio-vocabularies-4.1.1 → invenio-vocabularies-4.2.0}/invenio_vocabularies.egg-info/dependency_links.txt +0 -0
- {invenio-vocabularies-4.1.1 → invenio-vocabularies-4.2.0}/invenio_vocabularies.egg-info/entry_points.txt +0 -0
- {invenio-vocabularies-4.1.1 → invenio-vocabularies-4.2.0}/invenio_vocabularies.egg-info/not-zip-safe +0 -0
- {invenio-vocabularies-4.1.1 → invenio-vocabularies-4.2.0}/invenio_vocabularies.egg-info/requires.txt +0 -0
- {invenio-vocabularies-4.1.1 → invenio-vocabularies-4.2.0}/invenio_vocabularies.egg-info/top_level.txt +0 -0
- {invenio-vocabularies-4.1.1 → invenio-vocabularies-4.2.0}/pyproject.toml +0 -0
- {invenio-vocabularies-4.1.1 → invenio-vocabularies-4.2.0}/requirements-feature.txt +0 -0
- {invenio-vocabularies-4.1.1 → invenio-vocabularies-4.2.0}/run-js-linter.sh +0 -0
- {invenio-vocabularies-4.1.1 → invenio-vocabularies-4.2.0}/run-tests.sh +0 -0
- {invenio-vocabularies-4.1.1 → invenio-vocabularies-4.2.0}/setup.cfg +0 -0
- {invenio-vocabularies-4.1.1 → invenio-vocabularies-4.2.0}/setup.py +0 -0
- {invenio-vocabularies-4.1.1 → invenio-vocabularies-4.2.0}/tests/conftest.py +0 -0
- {invenio-vocabularies-4.1.1 → invenio-vocabularies-4.2.0}/tests/contrib/affiliations/conftest.py +0 -0
- {invenio-vocabularies-4.1.1 → invenio-vocabularies-4.2.0}/tests/contrib/affiliations/test_affiliations_api.py +0 -0
- {invenio-vocabularies-4.1.1 → invenio-vocabularies-4.2.0}/tests/contrib/affiliations/test_affiliations_datastreams.py +0 -0
- {invenio-vocabularies-4.1.1 → invenio-vocabularies-4.2.0}/tests/contrib/affiliations/test_affiliations_jsonschema.py +0 -0
- {invenio-vocabularies-4.1.1 → invenio-vocabularies-4.2.0}/tests/contrib/affiliations/test_affiliations_resource.py +0 -0
- {invenio-vocabularies-4.1.1 → invenio-vocabularies-4.2.0}/tests/contrib/affiliations/test_affiliations_schema.py +0 -0
- {invenio-vocabularies-4.1.1 → invenio-vocabularies-4.2.0}/tests/contrib/affiliations/test_affiliations_service.py +0 -0
- {invenio-vocabularies-4.1.1 → invenio-vocabularies-4.2.0}/tests/contrib/awards/conftest.py +0 -0
- {invenio-vocabularies-4.1.1 → invenio-vocabularies-4.2.0}/tests/contrib/awards/test_awards_api.py +0 -0
- {invenio-vocabularies-4.1.1 → invenio-vocabularies-4.2.0}/tests/contrib/awards/test_awards_datastreams.py +0 -0
- {invenio-vocabularies-4.1.1 → invenio-vocabularies-4.2.0}/tests/contrib/awards/test_awards_jsonschema.py +0 -0
- {invenio-vocabularies-4.1.1 → invenio-vocabularies-4.2.0}/tests/contrib/awards/test_awards_resource.py +0 -0
- {invenio-vocabularies-4.1.1 → invenio-vocabularies-4.2.0}/tests/contrib/awards/test_awards_schema.py +0 -0
- {invenio-vocabularies-4.1.1 → invenio-vocabularies-4.2.0}/tests/contrib/awards/test_awards_service.py +0 -0
- {invenio-vocabularies-4.1.1 → invenio-vocabularies-4.2.0}/tests/contrib/funders/conftest.py +0 -0
- {invenio-vocabularies-4.1.1 → invenio-vocabularies-4.2.0}/tests/contrib/funders/test_funders_api.py +0 -0
- {invenio-vocabularies-4.1.1 → invenio-vocabularies-4.2.0}/tests/contrib/funders/test_funders_datastreams.py +0 -0
- {invenio-vocabularies-4.1.1 → invenio-vocabularies-4.2.0}/tests/contrib/funders/test_funders_jsonschema.py +0 -0
- {invenio-vocabularies-4.1.1 → invenio-vocabularies-4.2.0}/tests/contrib/funders/test_funders_resource.py +0 -0
- {invenio-vocabularies-4.1.1 → invenio-vocabularies-4.2.0}/tests/contrib/funders/test_funders_schema.py +0 -0
- {invenio-vocabularies-4.1.1 → invenio-vocabularies-4.2.0}/tests/contrib/funders/test_funders_service.py +0 -0
- {invenio-vocabularies-4.1.1 → invenio-vocabularies-4.2.0}/tests/contrib/names/conftest.py +0 -0
- {invenio-vocabularies-4.1.1 → invenio-vocabularies-4.2.0}/tests/contrib/names/test_names_api.py +0 -0
- {invenio-vocabularies-4.1.1 → invenio-vocabularies-4.2.0}/tests/contrib/names/test_names_datastreams.py +0 -0
- {invenio-vocabularies-4.1.1 → invenio-vocabularies-4.2.0}/tests/contrib/names/test_names_jsonschema.py +0 -0
- {invenio-vocabularies-4.1.1 → invenio-vocabularies-4.2.0}/tests/contrib/names/test_names_resource.py +0 -0
- {invenio-vocabularies-4.1.1 → invenio-vocabularies-4.2.0}/tests/contrib/names/test_names_schema.py +0 -0
- {invenio-vocabularies-4.1.1 → invenio-vocabularies-4.2.0}/tests/contrib/names/test_names_service.py +0 -0
- {invenio-vocabularies-4.1.1 → invenio-vocabularies-4.2.0}/tests/contrib/subjects/conftest.py +0 -0
- {invenio-vocabularies-4.1.1 → invenio-vocabularies-4.2.0}/tests/contrib/subjects/test_subjects_api.py +0 -0
- {invenio-vocabularies-4.1.1 → invenio-vocabularies-4.2.0}/tests/contrib/subjects/test_subjects_facets.py +0 -0
- {invenio-vocabularies-4.1.1 → invenio-vocabularies-4.2.0}/tests/contrib/subjects/test_subjects_jsonschema.py +0 -0
- {invenio-vocabularies-4.1.1 → invenio-vocabularies-4.2.0}/tests/contrib/subjects/test_subjects_resource.py +0 -0
- {invenio-vocabularies-4.1.1 → invenio-vocabularies-4.2.0}/tests/contrib/subjects/test_subjects_schema.py +0 -0
- {invenio-vocabularies-4.1.1 → invenio-vocabularies-4.2.0}/tests/contrib/subjects/test_subjects_service.py +0 -0
- {invenio-vocabularies-4.1.1 → invenio-vocabularies-4.2.0}/tests/custom_fields/test_custom_fields.py +0 -0
- {invenio-vocabularies-4.1.1 → invenio-vocabularies-4.2.0}/tests/datastreams/test_datastreams.py +0 -0
- {invenio-vocabularies-4.1.1 → invenio-vocabularies-4.2.0}/tests/datastreams/test_fixtures.py +0 -0
- {invenio-vocabularies-4.1.1 → invenio-vocabularies-4.2.0}/tests/datastreams/test_transformers.py +0 -0
- {invenio-vocabularies-4.1.1 → invenio-vocabularies-4.2.0}/tests/datastreams/vocabularies.yaml +0 -0
- {invenio-vocabularies-4.1.1 → invenio-vocabularies-4.2.0}/tests/mock_module/__init__.py +0 -0
- {invenio-vocabularies-4.1.1 → invenio-vocabularies-4.2.0}/tests/mock_module/api.py +0 -0
- {invenio-vocabularies-4.1.1 → invenio-vocabularies-4.2.0}/tests/mock_module/jsonschemas/__init__.py +0 -0
- {invenio-vocabularies-4.1.1 → invenio-vocabularies-4.2.0}/tests/mock_module/jsonschemas/records/record-v1.0.0.json +0 -0
- {invenio-vocabularies-4.1.1 → invenio-vocabularies-4.2.0}/tests/mock_module/mappings/__init__.py +0 -0
- {invenio-vocabularies-4.1.1 → invenio-vocabularies-4.2.0}/tests/mock_module/mappings/v6/__init__.py +0 -0
- {invenio-vocabularies-4.1.1 → invenio-vocabularies-4.2.0}/tests/mock_module/mappings/v6/records/record-v1.0.0.json +0 -0
- {invenio-vocabularies-4.1.1 → invenio-vocabularies-4.2.0}/tests/mock_module/mappings/v7/__init__.py +0 -0
- {invenio-vocabularies-4.1.1 → invenio-vocabularies-4.2.0}/tests/mock_module/mappings/v7/records/record-v1.0.0.json +0 -0
- {invenio-vocabularies-4.1.1 → invenio-vocabularies-4.2.0}/tests/mock_module/models.py +0 -0
- {invenio-vocabularies-4.1.1 → invenio-vocabularies-4.2.0}/tests/records/conftest.py +0 -0
- {invenio-vocabularies-4.1.1 → invenio-vocabularies-4.2.0}/tests/records/test_api.py +0 -0
- {invenio-vocabularies-4.1.1 → invenio-vocabularies-4.2.0}/tests/records/test_jsonschema.py +0 -0
- {invenio-vocabularies-4.1.1 → invenio-vocabularies-4.2.0}/tests/records/test_relationship.py +0 -0
- {invenio-vocabularies-4.1.1 → invenio-vocabularies-4.2.0}/tests/resources/conftest.py +0 -0
- {invenio-vocabularies-4.1.1 → invenio-vocabularies-4.2.0}/tests/resources/test_resources_get.py +0 -0
- {invenio-vocabularies-4.1.1 → invenio-vocabularies-4.2.0}/tests/resources/test_resources_l10n.py +0 -0
- {invenio-vocabularies-4.1.1 → invenio-vocabularies-4.2.0}/tests/resources/test_resources_search.py +0 -0
- {invenio-vocabularies-4.1.1 → invenio-vocabularies-4.2.0}/tests/resources/test_tasks_resources.py +0 -0
- {invenio-vocabularies-4.1.1 → invenio-vocabularies-4.2.0}/tests/services/conftest.py +0 -0
- {invenio-vocabularies-4.1.1 → invenio-vocabularies-4.2.0}/tests/services/test_labels.py +0 -0
- {invenio-vocabularies-4.1.1 → invenio-vocabularies-4.2.0}/tests/services/test_permissions.py +0 -0
- {invenio-vocabularies-4.1.1 → invenio-vocabularies-4.2.0}/tests/services/test_schema.py +0 -0
- {invenio-vocabularies-4.1.1 → invenio-vocabularies-4.2.0}/tests/services/test_service.py +0 -0
- {invenio-vocabularies-4.1.1 → invenio-vocabularies-4.2.0}/tests/test_alembic.py +0 -0
- {invenio-vocabularies-4.1.1 → invenio-vocabularies-4.2.0}/tests/test_cli.py +0 -0
- {invenio-vocabularies-4.1.1 → invenio-vocabularies-4.2.0}/tests/test_invenio_vocabularies.py +0 -0
|
@@ -8,6 +8,14 @@
|
|
|
8
8
|
Changes
|
|
9
9
|
=======
|
|
10
10
|
|
|
11
|
+
Version v4.2.0 (released 2024-07-24)
|
|
12
|
+
|
|
13
|
+
- ror: check last update; use ld+json for metadata (#367)
|
|
14
|
+
- tasks: remove import funders task
|
|
15
|
+
- funders: add and export custom transformer
|
|
16
|
+
- affiliations: add and export custom transformer
|
|
17
|
+
- datastreams: implement asynchronous writer
|
|
18
|
+
|
|
11
19
|
Version v4.1.1 (released 2024-07-15)
|
|
12
20
|
|
|
13
21
|
- installation: use invenio-oaipmh-scythe from PyPI
|
{invenio-vocabularies-4.1.1/invenio_vocabularies.egg-info → invenio-vocabularies-4.2.0}/PKG-INFO
RENAMED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
Metadata-Version: 2.1
|
|
2
2
|
Name: invenio-vocabularies
|
|
3
|
-
Version: 4.
|
|
3
|
+
Version: 4.2.0
|
|
4
4
|
Summary: "Invenio module for managing vocabularies."
|
|
5
5
|
Home-page: https://github.com/inveniosoftware/invenio-vocabularies
|
|
6
6
|
Author: CERN
|
|
@@ -50,6 +50,14 @@ Description: ..
|
|
|
50
50
|
Changes
|
|
51
51
|
=======
|
|
52
52
|
|
|
53
|
+
Version v4.2.0 (released 2024-07-24)
|
|
54
|
+
|
|
55
|
+
- ror: check last update; use ld+json for metadata (#367)
|
|
56
|
+
- tasks: remove import funders task
|
|
57
|
+
- funders: add and export custom transformer
|
|
58
|
+
- affiliations: add and export custom transformer
|
|
59
|
+
- datastreams: implement asynchronous writer
|
|
60
|
+
|
|
53
61
|
Version v4.1.1 (released 2024-07-15)
|
|
54
62
|
|
|
55
63
|
- installation: use invenio-oaipmh-scythe from PyPI
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
# -*- coding: utf-8 -*-
|
|
2
2
|
#
|
|
3
|
-
# Copyright (C) 2020-
|
|
3
|
+
# Copyright (C) 2020-2024 CERN.
|
|
4
4
|
# Copyright (C) 2021 Graz University of Technology.
|
|
5
5
|
#
|
|
6
6
|
# Invenio-Vocabularies is free software; you can redistribute it and/or
|
|
@@ -9,7 +9,6 @@
|
|
|
9
9
|
|
|
10
10
|
"""Commands to create and manage vocabularies."""
|
|
11
11
|
|
|
12
|
-
|
|
13
12
|
import click
|
|
14
13
|
from flask.cli import with_appcontext
|
|
15
14
|
from invenio_access.permissions import system_identity
|
|
@@ -101,7 +100,10 @@ def update(vocabulary, filepath=None, origin=None):
|
|
|
101
100
|
config = vc.get_config(filepath, origin)
|
|
102
101
|
|
|
103
102
|
for w_conf in config["writers"]:
|
|
104
|
-
w_conf["
|
|
103
|
+
if w_conf["type"] == "async":
|
|
104
|
+
w_conf["args"]["writer"]["args"]["update"] = True
|
|
105
|
+
else:
|
|
106
|
+
w_conf["args"]["update"] = True
|
|
105
107
|
|
|
106
108
|
success, errored, filtered = _process_vocab(config)
|
|
107
109
|
|
|
@@ -24,7 +24,7 @@ from .datastreams.readers import (
|
|
|
24
24
|
ZipReader,
|
|
25
25
|
)
|
|
26
26
|
from .datastreams.transformers import XMLTransformer
|
|
27
|
-
from .datastreams.writers import ServiceWriter, YamlWriter
|
|
27
|
+
from .datastreams.writers import AsyncWriter, ServiceWriter, YamlWriter
|
|
28
28
|
from .resources import VocabulariesResourceConfig
|
|
29
29
|
from .services.config import VocabulariesServiceConfig
|
|
30
30
|
|
|
@@ -134,6 +134,7 @@ VOCABULARIES_DATASTREAM_TRANSFORMERS = {
|
|
|
134
134
|
VOCABULARIES_DATASTREAM_WRITERS = {
|
|
135
135
|
"service": ServiceWriter,
|
|
136
136
|
"yaml": YamlWriter,
|
|
137
|
+
"async": AsyncWriter,
|
|
137
138
|
}
|
|
138
139
|
"""Data Streams writers."""
|
|
139
140
|
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
# -*- coding: utf-8 -*-
|
|
2
2
|
#
|
|
3
|
-
# Copyright (C) 2021 CERN.
|
|
3
|
+
# Copyright (C) 2021-2024 CERN.
|
|
4
4
|
#
|
|
5
5
|
# Invenio-Vocabularies is free software; you can redistribute it and/or
|
|
6
6
|
# modify it under the terms of the MIT License; see LICENSE file for more
|
|
@@ -8,7 +8,6 @@
|
|
|
8
8
|
|
|
9
9
|
"""Vocabulary affiliations."""
|
|
10
10
|
|
|
11
|
-
|
|
12
11
|
from .affiliations import record_type
|
|
13
12
|
|
|
14
13
|
Affiliation = record_type.record_cls
|
|
@@ -9,11 +9,11 @@
|
|
|
9
9
|
|
|
10
10
|
"""Affiliations datastreams, transformers, writers and readers."""
|
|
11
11
|
|
|
12
|
-
from
|
|
12
|
+
from flask import current_app
|
|
13
13
|
from invenio_i18n import lazy_gettext as _
|
|
14
14
|
|
|
15
15
|
from ...datastreams.writers import ServiceWriter
|
|
16
|
-
from .
|
|
16
|
+
from ..common.ror.datastreams import RORTransformer
|
|
17
17
|
|
|
18
18
|
|
|
19
19
|
class AffiliationsServiceWriter(ServiceWriter):
|
|
@@ -29,9 +29,35 @@ class AffiliationsServiceWriter(ServiceWriter):
|
|
|
29
29
|
return entry["id"]
|
|
30
30
|
|
|
31
31
|
|
|
32
|
+
class AffiliationsRORTransformer(RORTransformer):
|
|
33
|
+
"""Affiliations ROR Transformer."""
|
|
34
|
+
|
|
35
|
+
def __init__(
|
|
36
|
+
self, *args, vocab_schemes=None, funder_fundref_doi_prefix=None, **kwargs
|
|
37
|
+
):
|
|
38
|
+
"""Constructor."""
|
|
39
|
+
if vocab_schemes is None:
|
|
40
|
+
vocab_schemes = current_app.config.get("VOCABULARIES_AFFILIATION_SCHEMES")
|
|
41
|
+
super().__init__(
|
|
42
|
+
*args,
|
|
43
|
+
vocab_schemes=vocab_schemes,
|
|
44
|
+
funder_fundref_doi_prefix=funder_fundref_doi_prefix,
|
|
45
|
+
**kwargs
|
|
46
|
+
)
|
|
47
|
+
|
|
48
|
+
|
|
49
|
+
VOCABULARIES_DATASTREAM_READERS = {}
|
|
50
|
+
"""Affiliations datastream readers."""
|
|
51
|
+
|
|
32
52
|
VOCABULARIES_DATASTREAM_WRITERS = {
|
|
33
53
|
"affiliations-service": AffiliationsServiceWriter,
|
|
34
54
|
}
|
|
55
|
+
"""Affiliations datastream writers."""
|
|
56
|
+
|
|
57
|
+
VOCABULARIES_DATASTREAM_TRANSFORMERS = {
|
|
58
|
+
"ror-affiliations": AffiliationsRORTransformer,
|
|
59
|
+
}
|
|
60
|
+
"""Affiliations datastream transformers."""
|
|
35
61
|
|
|
36
62
|
|
|
37
63
|
DATASTREAM_CONFIG = {
|
|
@@ -46,17 +72,16 @@ DATASTREAM_CONFIG = {
|
|
|
46
72
|
],
|
|
47
73
|
"transformers": [
|
|
48
74
|
{
|
|
49
|
-
"type": "ror",
|
|
50
|
-
"args": {
|
|
51
|
-
"vocab_schemes": affiliation_schemes,
|
|
52
|
-
},
|
|
75
|
+
"type": "ror-affiliations",
|
|
53
76
|
},
|
|
54
77
|
],
|
|
55
78
|
"writers": [
|
|
56
79
|
{
|
|
57
|
-
"type": "
|
|
80
|
+
"type": "async",
|
|
58
81
|
"args": {
|
|
59
|
-
"
|
|
82
|
+
"writer": {
|
|
83
|
+
"type": "affiliations-service",
|
|
84
|
+
}
|
|
60
85
|
},
|
|
61
86
|
}
|
|
62
87
|
],
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
# -*- coding: utf-8 -*-
|
|
2
2
|
#
|
|
3
|
-
# Copyright (C) 2021 CERN.
|
|
3
|
+
# Copyright (C) 2021-2024 CERN.
|
|
4
4
|
#
|
|
5
5
|
# Invenio-Vocabularies is free software; you can redistribute it and/or
|
|
6
6
|
# modify it under the terms of the MIT License; see LICENSE file for more
|
|
@@ -8,7 +8,6 @@
|
|
|
8
8
|
|
|
9
9
|
"""Vocabulary affiliations."""
|
|
10
10
|
|
|
11
|
-
|
|
12
11
|
from .affiliations import record_type
|
|
13
12
|
|
|
14
13
|
AffiliationsServiceConfig = record_type.service_config_cls
|
|
@@ -1,12 +1,13 @@
|
|
|
1
1
|
# -*- coding: utf-8 -*-
|
|
2
2
|
#
|
|
3
|
-
# Copyright (C) 2022 CERN.
|
|
3
|
+
# Copyright (C) 2022-2024 CERN.
|
|
4
4
|
#
|
|
5
5
|
# Invenio-Vocabularies is free software; you can redistribute it and/or
|
|
6
6
|
# modify it under the terms of the MIT License; see LICENSE file for more
|
|
7
7
|
# details.
|
|
8
8
|
|
|
9
9
|
"""Vocabulary awards."""
|
|
10
|
+
|
|
10
11
|
from flask_resources import (
|
|
11
12
|
BaseListSchema,
|
|
12
13
|
JSONSerializer,
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
# -*- coding: utf-8 -*-
|
|
2
2
|
#
|
|
3
|
-
# Copyright (C) 2022 CERN.
|
|
3
|
+
# Copyright (C) 2022-2024 CERN.
|
|
4
4
|
#
|
|
5
5
|
# Invenio-Vocabularies is free software; you can redistribute it and/or
|
|
6
6
|
# modify it under the terms of the MIT License; see LICENSE file for more
|
|
@@ -8,7 +8,6 @@
|
|
|
8
8
|
|
|
9
9
|
"""Vocabulary awards."""
|
|
10
10
|
|
|
11
|
-
|
|
12
11
|
from .awards import record_type
|
|
13
12
|
|
|
14
13
|
AwardsServiceConfig = record_type.service_config_cls
|
|
@@ -10,6 +10,7 @@
|
|
|
10
10
|
"""ROR-related Datastreams Readers/Writers/Transformers module."""
|
|
11
11
|
|
|
12
12
|
import io
|
|
13
|
+
from datetime import datetime
|
|
13
14
|
|
|
14
15
|
import requests
|
|
15
16
|
from idutils import normalize_ror
|
|
@@ -22,6 +23,11 @@ from invenio_vocabularies.datastreams.transformers import BaseTransformer
|
|
|
22
23
|
class RORHTTPReader(BaseReader):
|
|
23
24
|
"""ROR HTTP Reader returning an in-memory binary stream of the latest ROR data dump ZIP file."""
|
|
24
25
|
|
|
26
|
+
def __init__(self, origin=None, mode="r", since=None, *args, **kwargs):
|
|
27
|
+
"""Constructor."""
|
|
28
|
+
self._since = since
|
|
29
|
+
super().__init__(origin, mode, *args, **kwargs)
|
|
30
|
+
|
|
25
31
|
def _iter(self, fp, *args, **kwargs):
|
|
26
32
|
raise NotImplementedError(
|
|
27
33
|
"RORHTTPReader downloads one file and therefore does not iterate through items"
|
|
@@ -34,15 +40,41 @@ class RORHTTPReader(BaseReader):
|
|
|
34
40
|
"RORHTTPReader does not support being chained after another reader"
|
|
35
41
|
)
|
|
36
42
|
|
|
43
|
+
# Follow the DOI to get the link of the linkset
|
|
44
|
+
dataset_doi_link = "https://doi.org/10.5281/zenodo.6347574"
|
|
45
|
+
landing_page = requests.get(dataset_doi_link, allow_redirects=True)
|
|
46
|
+
landing_page.raise_for_status()
|
|
47
|
+
|
|
37
48
|
# Call the signposting `linkset+json` endpoint for the Concept DOI (i.e. latest version) of the ROR data dump.
|
|
38
49
|
# See: https://github.com/inveniosoftware/rfcs/blob/master/rfcs/rdm-0071-signposting.md#provide-an-applicationlinksetjson-endpoint
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
50
|
+
if "linkset" not in landing_page.links:
|
|
51
|
+
raise ReaderError("Linkset not found in the ROR dataset record.")
|
|
52
|
+
linkset_response = requests.get(
|
|
53
|
+
landing_page.links["linkset"]["url"],
|
|
54
|
+
headers={"Accept": "application/linkset+json"},
|
|
55
|
+
)
|
|
56
|
+
linkset_response.raise_for_status()
|
|
57
|
+
|
|
58
|
+
if self._since:
|
|
59
|
+
for link in linkset_response.json()["linkset"]:
|
|
60
|
+
if "type" in link and link["type"] == "application/ld+json":
|
|
61
|
+
json_ld_reponse = requests.get(
|
|
62
|
+
link["anchor"], headers={"Accept": link["type"]}
|
|
63
|
+
)
|
|
64
|
+
json_ld_reponse.raise_for_status()
|
|
65
|
+
|
|
66
|
+
# TODO Update to use dateCreated once the field is added to InvenioRDM. (https://github.com/inveniosoftware/invenio-rdm-records/issues/1777)
|
|
67
|
+
last_dump_date = json_ld_reponse.json()["datePublished"]
|
|
68
|
+
if datetime.fromisoformat(last_dump_date) < datetime.fromisoformat(
|
|
69
|
+
self._since
|
|
70
|
+
):
|
|
71
|
+
return
|
|
72
|
+
break
|
|
73
|
+
else:
|
|
74
|
+
raise ReaderError("Couldn't find json-ld in publisher's linkset.")
|
|
43
75
|
|
|
44
76
|
# Extract the Landing page Link Set Object located as the first (index 0) item.
|
|
45
|
-
landing_page_linkset =
|
|
77
|
+
landing_page_linkset = linkset_response.json()["linkset"][0]
|
|
46
78
|
|
|
47
79
|
# Extract the URL of the only ZIP file linked to the record.
|
|
48
80
|
landing_page_zip_items = [
|
|
@@ -164,3 +196,5 @@ class RORTransformer(BaseTransformer):
|
|
|
164
196
|
VOCABULARIES_DATASTREAM_TRANSFORMERS = {
|
|
165
197
|
"ror": RORTransformer,
|
|
166
198
|
}
|
|
199
|
+
|
|
200
|
+
VOCABULARIES_DATASTREAM_WRITERS = {}
|
|
@@ -9,12 +9,11 @@
|
|
|
9
9
|
|
|
10
10
|
"""Funders datastreams, transformers, writers and readers."""
|
|
11
11
|
|
|
12
|
-
from
|
|
13
|
-
from invenio_access.permissions import system_identity
|
|
12
|
+
from flask import current_app
|
|
14
13
|
from invenio_i18n import lazy_gettext as _
|
|
15
14
|
|
|
16
15
|
from ...datastreams.writers import ServiceWriter
|
|
17
|
-
from .
|
|
16
|
+
from ..common.ror.datastreams import RORTransformer
|
|
18
17
|
|
|
19
18
|
|
|
20
19
|
class FundersServiceWriter(ServiceWriter):
|
|
@@ -30,10 +29,40 @@ class FundersServiceWriter(ServiceWriter):
|
|
|
30
29
|
return entry["id"]
|
|
31
30
|
|
|
32
31
|
|
|
32
|
+
class FundersRORTransformer(RORTransformer):
|
|
33
|
+
"""Funders ROR Transformer."""
|
|
34
|
+
|
|
35
|
+
def __init__(
|
|
36
|
+
self, *args, vocab_schemes=None, funder_fundref_doi_prefix=None, **kwargs
|
|
37
|
+
):
|
|
38
|
+
"""Constructor."""
|
|
39
|
+
if vocab_schemes is None:
|
|
40
|
+
vocab_schemes = current_app.config.get("VOCABULARIES_FUNDER_SCHEMES")
|
|
41
|
+
if funder_fundref_doi_prefix is None:
|
|
42
|
+
funder_fundref_doi_prefix = current_app.config.get(
|
|
43
|
+
"VOCABULARIES_FUNDER_DOI_PREFIX"
|
|
44
|
+
)
|
|
45
|
+
super().__init__(
|
|
46
|
+
*args,
|
|
47
|
+
vocab_schemes=vocab_schemes,
|
|
48
|
+
funder_fundref_doi_prefix=funder_fundref_doi_prefix,
|
|
49
|
+
**kwargs
|
|
50
|
+
)
|
|
51
|
+
|
|
52
|
+
|
|
53
|
+
VOCABULARIES_DATASTREAM_READERS = {}
|
|
54
|
+
"""Funders datastreams writers."""
|
|
55
|
+
|
|
33
56
|
VOCABULARIES_DATASTREAM_WRITERS = {
|
|
34
57
|
"funders-service": FundersServiceWriter,
|
|
35
58
|
}
|
|
36
|
-
"""Funders
|
|
59
|
+
"""Funders datastreams writers."""
|
|
60
|
+
|
|
61
|
+
|
|
62
|
+
VOCABULARIES_DATASTREAM_TRANSFORMERS = {
|
|
63
|
+
"ror-funders": FundersRORTransformer,
|
|
64
|
+
}
|
|
65
|
+
"""Funders datastreams transformers."""
|
|
37
66
|
|
|
38
67
|
|
|
39
68
|
DATASTREAM_CONFIG = {
|
|
@@ -48,18 +77,16 @@ DATASTREAM_CONFIG = {
|
|
|
48
77
|
],
|
|
49
78
|
"transformers": [
|
|
50
79
|
{
|
|
51
|
-
"type": "ror",
|
|
52
|
-
"args": {
|
|
53
|
-
"vocab_schemes": funder_schemes,
|
|
54
|
-
"funder_fundref_doi_prefix": funder_fundref_doi_prefix,
|
|
55
|
-
},
|
|
80
|
+
"type": "ror-funders",
|
|
56
81
|
},
|
|
57
82
|
],
|
|
58
83
|
"writers": [
|
|
59
84
|
{
|
|
60
|
-
"type": "
|
|
85
|
+
"type": "async",
|
|
61
86
|
"args": {
|
|
62
|
-
"
|
|
87
|
+
"writer": {
|
|
88
|
+
"type": "funders-service",
|
|
89
|
+
}
|
|
63
90
|
},
|
|
64
91
|
}
|
|
65
92
|
],
|
|
@@ -1,12 +1,13 @@
|
|
|
1
1
|
# -*- coding: utf-8 -*-
|
|
2
2
|
#
|
|
3
|
-
# Copyright (C) 2022 CERN.
|
|
3
|
+
# Copyright (C) 2022-2024 CERN.
|
|
4
4
|
#
|
|
5
5
|
# Invenio-Vocabularies is free software; you can redistribute it and/or
|
|
6
6
|
# modify it under the terms of the MIT License; see LICENSE file for more
|
|
7
7
|
# details.
|
|
8
8
|
|
|
9
9
|
"""Vocabulary funders."""
|
|
10
|
+
|
|
10
11
|
from flask_resources import (
|
|
11
12
|
BaseListSchema,
|
|
12
13
|
JSONSerializer,
|
|
@@ -270,19 +270,38 @@ class OAIPMHReader(BaseReader):
|
|
|
270
270
|
self.xml.find(f".//{self._oai_namespace}metadata").getchildren()[0],
|
|
271
271
|
)
|
|
272
272
|
|
|
273
|
-
|
|
274
|
-
|
|
275
|
-
|
|
276
|
-
|
|
277
|
-
|
|
278
|
-
|
|
279
|
-
|
|
280
|
-
|
|
281
|
-
|
|
282
|
-
|
|
283
|
-
|
|
284
|
-
|
|
285
|
-
|
|
273
|
+
if self._verb == "ListRecords":
|
|
274
|
+
scythe.class_mapping["ListRecords"] = OAIRecord
|
|
275
|
+
try:
|
|
276
|
+
records = scythe.list_records(
|
|
277
|
+
from_=self._from,
|
|
278
|
+
until=self._until,
|
|
279
|
+
metadata_prefix=self._metadata_prefix,
|
|
280
|
+
set_=self._set,
|
|
281
|
+
ignore_deleted=True,
|
|
282
|
+
)
|
|
283
|
+
for record in records:
|
|
284
|
+
yield {"record": record}
|
|
285
|
+
except oaipmh_scythe.NoRecordsMatch:
|
|
286
|
+
raise ReaderError("No records found in OAI-PMH request.")
|
|
287
|
+
else:
|
|
288
|
+
scythe.class_mapping["GetRecord"] = OAIRecord
|
|
289
|
+
try:
|
|
290
|
+
headers = scythe.list_identifiers(
|
|
291
|
+
from_=self._from,
|
|
292
|
+
until=self._until,
|
|
293
|
+
metadata_prefix=self._metadata_prefix,
|
|
294
|
+
set_=self._set,
|
|
295
|
+
ignore_deleted=True,
|
|
296
|
+
)
|
|
297
|
+
for header in headers:
|
|
298
|
+
record = scythe.get_record(
|
|
299
|
+
identifier=header.identifier,
|
|
300
|
+
metadata_prefix=self._metadata_prefix,
|
|
301
|
+
)
|
|
302
|
+
yield {"record": record}
|
|
303
|
+
except oaipmh_scythe.NoRecordsMatch:
|
|
304
|
+
raise ReaderError("No records found in OAI-PMH request.")
|
|
286
305
|
|
|
287
306
|
def read(self, item=None, *args, **kwargs):
|
|
288
307
|
"""Reads from item or opens the file descriptor from origin."""
|
|
@@ -0,0 +1,25 @@
|
|
|
1
|
+
# -*- coding: utf-8 -*-
|
|
2
|
+
#
|
|
3
|
+
# Copyright (C) 2022-2024 CERN.
|
|
4
|
+
#
|
|
5
|
+
# Invenio-Vocabularies is free software; you can redistribute it and/or
|
|
6
|
+
# modify it under the terms of the MIT License; see LICENSE file for more
|
|
7
|
+
# details.
|
|
8
|
+
|
|
9
|
+
"""Data Streams Celery tasks."""
|
|
10
|
+
|
|
11
|
+
from celery import shared_task
|
|
12
|
+
|
|
13
|
+
from ..datastreams import StreamEntry
|
|
14
|
+
from ..datastreams.factories import WriterFactory
|
|
15
|
+
|
|
16
|
+
|
|
17
|
+
@shared_task(ignore_result=True)
|
|
18
|
+
def write_entry(writer, entry):
|
|
19
|
+
"""Write an entry.
|
|
20
|
+
|
|
21
|
+
:param writer: writer configuration as accepted by the WriterFactory.
|
|
22
|
+
:param entry: dictionary, StreamEntry is not serializable.
|
|
23
|
+
"""
|
|
24
|
+
writer = WriterFactory.create(config=writer)
|
|
25
|
+
writer.write(StreamEntry(entry))
|
|
@@ -20,6 +20,7 @@ from marshmallow import ValidationError
|
|
|
20
20
|
|
|
21
21
|
from .datastreams import StreamEntry
|
|
22
22
|
from .errors import WriterError
|
|
23
|
+
from .tasks import write_entry
|
|
23
24
|
|
|
24
25
|
|
|
25
26
|
class BaseWriter(ABC):
|
|
@@ -106,3 +107,21 @@ class YamlWriter(BaseWriter):
|
|
|
106
107
|
yaml.safe_dump([stream_entry.entry], file, allow_unicode=True)
|
|
107
108
|
|
|
108
109
|
return stream_entry
|
|
110
|
+
|
|
111
|
+
|
|
112
|
+
class AsyncWriter(BaseWriter):
|
|
113
|
+
"""Writes the entries asynchronously (celery task)."""
|
|
114
|
+
|
|
115
|
+
def __init__(self, writer, *args, **kwargs):
|
|
116
|
+
"""Constructor.
|
|
117
|
+
|
|
118
|
+
:param writer: writer to use.
|
|
119
|
+
"""
|
|
120
|
+
self._writer = writer
|
|
121
|
+
super().__init__(*args, **kwargs)
|
|
122
|
+
|
|
123
|
+
def write(self, stream_entry, *args, **kwargs):
|
|
124
|
+
"""Launches a celery task to write an entry."""
|
|
125
|
+
write_entry.delay(self._writer, stream_entry.entry)
|
|
126
|
+
|
|
127
|
+
return stream_entry
|
{invenio-vocabularies-4.1.1 → invenio-vocabularies-4.2.0}/invenio_vocabularies/records/models.py
RENAMED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
# -*- coding: utf-8 -*-
|
|
2
2
|
#
|
|
3
|
-
# Copyright (C) 2020-
|
|
3
|
+
# Copyright (C) 2020-2024 CERN.
|
|
4
4
|
#
|
|
5
5
|
# Invenio-Vocabularies is free software; you can redistribute it and/or
|
|
6
6
|
# modify it under the terms of the MIT License; see LICENSE file for more
|
|
@@ -79,9 +79,7 @@ class VocabularyScheme(db.Model):
|
|
|
79
79
|
"""Create a new vocabulary subtype."""
|
|
80
80
|
banned = [",", ":"]
|
|
81
81
|
for b in banned:
|
|
82
|
-
assert
|
|
83
|
-
b not in data["id"]
|
|
84
|
-
), f"No '{b}' allowed in VocabularyScheme.id" # noqa
|
|
82
|
+
assert b not in data["id"], f"No '{b}' allowed in VocabularyScheme.id"
|
|
85
83
|
|
|
86
84
|
with db.session.begin_nested():
|
|
87
85
|
obj = cls(**data)
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
# -*- coding: utf-8 -*-
|
|
2
2
|
#
|
|
3
|
-
# Copyright (C) 2021 CERN.
|
|
3
|
+
# Copyright (C) 2021-2024 CERN.
|
|
4
4
|
#
|
|
5
5
|
# Invenio-Vocabularies is free software; you can redistribute it and/or
|
|
6
6
|
# modify it under the terms of the MIT License; see LICENSE file for more
|
|
@@ -8,7 +8,6 @@
|
|
|
8
8
|
|
|
9
9
|
"""Persistent identifier provider for vocabularies."""
|
|
10
10
|
|
|
11
|
-
|
|
12
11
|
from invenio_pidstore.models import PIDStatus
|
|
13
12
|
from invenio_pidstore.providers.base import BaseProvider
|
|
14
13
|
|
{invenio-vocabularies-4.1.1 → invenio-vocabularies-4.2.0}/invenio_vocabularies/resources/schema.py
RENAMED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
# -*- coding: utf-8 -*-
|
|
2
2
|
#
|
|
3
|
-
# Copyright (C) 2020-
|
|
3
|
+
# Copyright (C) 2020-2024 CERN.
|
|
4
4
|
# Copyright (C) 2021 Northwestern University.
|
|
5
5
|
#
|
|
6
6
|
# Invenio-Vocabularies is free software; you can redistribute it and/or
|
|
@@ -8,6 +8,7 @@
|
|
|
8
8
|
# details.
|
|
9
9
|
|
|
10
10
|
"""Vocabulary resource schema."""
|
|
11
|
+
|
|
11
12
|
from marshmallow import Schema, fields
|
|
12
13
|
|
|
13
14
|
from invenio_vocabularies.resources.serializer import L10NString
|
|
@@ -7,6 +7,7 @@
|
|
|
7
7
|
|
|
8
8
|
|
|
9
9
|
"""Custom fields."""
|
|
10
|
+
|
|
10
11
|
from invenio_i18n import lazy_gettext as _
|
|
11
12
|
|
|
12
13
|
from ...contrib.subjects.api import Subject
|
|
@@ -25,7 +26,7 @@ class SubjectCF(VocabularyCF):
|
|
|
25
26
|
vocabulary_id="subjects",
|
|
26
27
|
schema=SubjectRelationSchema,
|
|
27
28
|
ui_schema=SubjectRelationSchema,
|
|
28
|
-
**kwargs
|
|
29
|
+
**kwargs,
|
|
29
30
|
)
|
|
30
31
|
self.pid_field = Subject.pid
|
|
31
32
|
|
|
@@ -0,0 +1,28 @@
|
|
|
1
|
+
# -*- coding: utf-8 -*-
|
|
2
|
+
#
|
|
3
|
+
# Copyright (C) 2022-2024 CERN.
|
|
4
|
+
#
|
|
5
|
+
# Invenio-Vocabularies is free software; you can redistribute it and/or modify
|
|
6
|
+
# it under the terms of the MIT License; see LICENSE file for more details.
|
|
7
|
+
|
|
8
|
+
"""Celery tasks."""
|
|
9
|
+
|
|
10
|
+
from celery import shared_task
|
|
11
|
+
from flask import current_app
|
|
12
|
+
|
|
13
|
+
from ..datastreams.factories import DataStreamFactory
|
|
14
|
+
|
|
15
|
+
|
|
16
|
+
@shared_task(ignore_result=True)
|
|
17
|
+
def process_datastream(config):
|
|
18
|
+
"""Process a datastream from config."""
|
|
19
|
+
ds = DataStreamFactory.create(
|
|
20
|
+
readers_config=config["readers"],
|
|
21
|
+
transformers_config=config.get("transformers"),
|
|
22
|
+
writers_config=config["writers"],
|
|
23
|
+
)
|
|
24
|
+
|
|
25
|
+
for result in ds.process():
|
|
26
|
+
if result.errors:
|
|
27
|
+
for err in result.errors:
|
|
28
|
+
current_app.logger.error(err)
|