invenio-vocabularies 4.4.0__tar.gz → 4.5.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.

Files changed (411) hide show
  1. {invenio-vocabularies-4.4.0 → invenio-vocabularies-4.5.0}/CHANGES.rst +6 -0
  2. {invenio-vocabularies-4.4.0/invenio_vocabularies.egg-info → invenio-vocabularies-4.5.0}/PKG-INFO +7 -1
  3. {invenio-vocabularies-4.4.0 → invenio-vocabularies-4.5.0}/invenio_vocabularies/__init__.py +1 -1
  4. {invenio-vocabularies-4.4.0 → invenio-vocabularies-4.5.0}/invenio_vocabularies/assets/semantic-ui/js/invenio_vocabularies/package.json +0 -6
  5. {invenio-vocabularies-4.4.0 → invenio-vocabularies-4.5.0}/invenio_vocabularies/config.py +7 -1
  6. {invenio-vocabularies-4.4.0 → invenio-vocabularies-4.5.0}/invenio_vocabularies/contrib/common/ror/datastreams.py +34 -32
  7. {invenio-vocabularies-4.4.0 → invenio-vocabularies-4.5.0}/invenio_vocabularies/contrib/subjects/config.py +10 -4
  8. invenio-vocabularies-4.5.0/invenio_vocabularies/contrib/subjects/datastreams.py +55 -0
  9. {invenio-vocabularies-4.4.0 → invenio-vocabularies-4.5.0}/invenio_vocabularies/contrib/subjects/jsonschemas/subjects/subject-v1.0.0.json +12 -0
  10. {invenio-vocabularies-4.4.0 → invenio-vocabularies-4.5.0}/invenio_vocabularies/contrib/subjects/mappings/os-v1/subjects/subject-v1.0.0.json +18 -0
  11. invenio-vocabularies-4.5.0/invenio_vocabularies/contrib/subjects/mappings/os-v2/subjects/subject-v1.0.0.json +82 -0
  12. invenio-vocabularies-4.5.0/invenio_vocabularies/contrib/subjects/mappings/v7/subjects/subject-v1.0.0.json +82 -0
  13. invenio-vocabularies-4.5.0/invenio_vocabularies/contrib/subjects/mesh/datastreams.py +43 -0
  14. {invenio-vocabularies-4.4.0 → invenio-vocabularies-4.5.0}/invenio_vocabularies/contrib/subjects/schema.py +21 -3
  15. {invenio-vocabularies-4.4.0 → invenio-vocabularies-4.5.0}/invenio_vocabularies/factories.py +13 -0
  16. {invenio-vocabularies-4.4.0 → invenio-vocabularies-4.5.0}/invenio_vocabularies/services/config.py +1 -1
  17. {invenio-vocabularies-4.4.0 → invenio-vocabularies-4.5.0}/invenio_vocabularies/services/service.py +1 -1
  18. invenio-vocabularies-4.5.0/invenio_vocabularies/translations/messages.pot +185 -0
  19. {invenio-vocabularies-4.4.0 → invenio-vocabularies-4.5.0}/invenio_vocabularies/webpack.py +1 -1
  20. {invenio-vocabularies-4.4.0 → invenio-vocabularies-4.5.0/invenio_vocabularies.egg-info}/PKG-INFO +7 -1
  21. {invenio-vocabularies-4.4.0 → invenio-vocabularies-4.5.0}/invenio_vocabularies.egg-info/SOURCES.txt +3 -0
  22. {invenio-vocabularies-4.4.0 → invenio-vocabularies-4.5.0}/tests/contrib/common/ror/test_ror_datastreams.py +22 -52
  23. invenio-vocabularies-4.5.0/tests/contrib/subjects/conftest.py +56 -0
  24. {invenio-vocabularies-4.4.0 → invenio-vocabularies-4.5.0}/tests/contrib/subjects/test_subjects_api.py +3 -3
  25. invenio-vocabularies-4.5.0/tests/contrib/subjects/test_subjects_datastreams.py +94 -0
  26. {invenio-vocabularies-4.4.0 → invenio-vocabularies-4.5.0}/tests/contrib/subjects/test_subjects_jsonschema.py +9 -5
  27. {invenio-vocabularies-4.4.0 → invenio-vocabularies-4.5.0}/tests/contrib/subjects/test_subjects_resource.py +18 -3
  28. invenio-vocabularies-4.5.0/tests/contrib/subjects/test_subjects_schema.py +37 -0
  29. {invenio-vocabularies-4.4.0 → invenio-vocabularies-4.5.0}/tests/contrib/subjects/test_subjects_service.py +9 -7
  30. invenio-vocabularies-4.4.0/invenio_vocabularies/contrib/subjects/mappings/os-v2/subjects/subject-v1.0.0.json +0 -64
  31. invenio-vocabularies-4.4.0/invenio_vocabularies/contrib/subjects/mappings/v7/subjects/subject-v1.0.0.json +0 -64
  32. invenio-vocabularies-4.4.0/invenio_vocabularies/translations/messages.pot +0 -138
  33. invenio-vocabularies-4.4.0/tests/contrib/subjects/conftest.py +0 -33
  34. invenio-vocabularies-4.4.0/tests/contrib/subjects/test_subjects_schema.py +0 -69
  35. {invenio-vocabularies-4.4.0 → invenio-vocabularies-4.5.0}/.dockerignore +0 -0
  36. {invenio-vocabularies-4.4.0 → invenio-vocabularies-4.5.0}/.editorconfig +0 -0
  37. {invenio-vocabularies-4.4.0 → invenio-vocabularies-4.5.0}/.git-blame-ignore-revs +0 -0
  38. {invenio-vocabularies-4.4.0 → invenio-vocabularies-4.5.0}/.github/workflows/i18n-pull.yml +0 -0
  39. {invenio-vocabularies-4.4.0 → invenio-vocabularies-4.5.0}/.github/workflows/i18n-push.yml +0 -0
  40. {invenio-vocabularies-4.4.0 → invenio-vocabularies-4.5.0}/.github/workflows/pypi-publish.yml +0 -0
  41. {invenio-vocabularies-4.4.0 → invenio-vocabularies-4.5.0}/.github/workflows/tests.yml +0 -0
  42. {invenio-vocabularies-4.4.0 → invenio-vocabularies-4.5.0}/.tx/config +0 -0
  43. {invenio-vocabularies-4.4.0 → invenio-vocabularies-4.5.0}/AUTHORS.rst +0 -0
  44. {invenio-vocabularies-4.4.0 → invenio-vocabularies-4.5.0}/CONTRIBUTING.rst +0 -0
  45. {invenio-vocabularies-4.4.0 → invenio-vocabularies-4.5.0}/INSTALL.rst +0 -0
  46. {invenio-vocabularies-4.4.0 → invenio-vocabularies-4.5.0}/LICENSE +0 -0
  47. {invenio-vocabularies-4.4.0 → invenio-vocabularies-4.5.0}/MANIFEST.in +0 -0
  48. {invenio-vocabularies-4.4.0 → invenio-vocabularies-4.5.0}/README.rst +0 -0
  49. {invenio-vocabularies-4.4.0 → invenio-vocabularies-4.5.0}/babel.ini +0 -0
  50. {invenio-vocabularies-4.4.0 → invenio-vocabularies-4.5.0}/docs/Makefile +0 -0
  51. {invenio-vocabularies-4.4.0 → invenio-vocabularies-4.5.0}/docs/api.rst +0 -0
  52. {invenio-vocabularies-4.4.0 → invenio-vocabularies-4.5.0}/docs/authors.rst +0 -0
  53. {invenio-vocabularies-4.4.0 → invenio-vocabularies-4.5.0}/docs/changes.rst +0 -0
  54. {invenio-vocabularies-4.4.0 → invenio-vocabularies-4.5.0}/docs/conf.py +0 -0
  55. {invenio-vocabularies-4.4.0 → invenio-vocabularies-4.5.0}/docs/configuration.rst +0 -0
  56. {invenio-vocabularies-4.4.0 → invenio-vocabularies-4.5.0}/docs/contributing.rst +0 -0
  57. {invenio-vocabularies-4.4.0 → invenio-vocabularies-4.5.0}/docs/index.rst +0 -0
  58. {invenio-vocabularies-4.4.0 → invenio-vocabularies-4.5.0}/docs/installation.rst +0 -0
  59. {invenio-vocabularies-4.4.0 → invenio-vocabularies-4.5.0}/docs/license.rst +0 -0
  60. {invenio-vocabularies-4.4.0 → invenio-vocabularies-4.5.0}/docs/make.bat +0 -0
  61. {invenio-vocabularies-4.4.0 → invenio-vocabularies-4.5.0}/docs/requirements.txt +0 -0
  62. {invenio-vocabularies-4.4.0 → invenio-vocabularies-4.5.0}/docs/usage.rst +0 -0
  63. {invenio-vocabularies-4.4.0 → invenio-vocabularies-4.5.0}/gen-migration.sh +0 -0
  64. {invenio-vocabularies-4.4.0 → invenio-vocabularies-4.5.0}/invenio_vocabularies/administration/__init__.py +0 -0
  65. {invenio-vocabularies-4.4.0 → invenio-vocabularies-4.5.0}/invenio_vocabularies/administration/views/__init__.py +0 -0
  66. {invenio-vocabularies-4.4.0 → invenio-vocabularies-4.5.0}/invenio_vocabularies/administration/views/vocabularies.py +0 -0
  67. {invenio-vocabularies-4.4.0 → invenio-vocabularies-4.5.0}/invenio_vocabularies/alembic/17c703ce1eb7_create_names_table.py +0 -0
  68. {invenio-vocabularies-4.4.0 → invenio-vocabularies-4.5.0}/invenio_vocabularies/alembic/4a9a4fd235f8_create_vocabulary_schemes.py +0 -0
  69. {invenio-vocabularies-4.4.0 → invenio-vocabularies-4.5.0}/invenio_vocabularies/alembic/4f365fced43f_create_vocabularies_tables.py +0 -0
  70. {invenio-vocabularies-4.4.0 → invenio-vocabularies-4.5.0}/invenio_vocabularies/alembic/55a700f897b6_add_names_and_afiliations_pid_column.py +0 -0
  71. {invenio-vocabularies-4.4.0 → invenio-vocabularies-4.5.0}/invenio_vocabularies/alembic/6312f33645c1_create_affiliations_table.py +0 -0
  72. {invenio-vocabularies-4.4.0 → invenio-vocabularies-4.5.0}/invenio_vocabularies/alembic/676dd587542d_create_funders_vocabulary_table.py +0 -0
  73. {invenio-vocabularies-4.4.0 → invenio-vocabularies-4.5.0}/invenio_vocabularies/alembic/8ff82dfb0be8_create_vocabularies_branch.py +0 -0
  74. {invenio-vocabularies-4.4.0 → invenio-vocabularies-4.5.0}/invenio_vocabularies/alembic/__init__.py +0 -0
  75. {invenio-vocabularies-4.4.0 → invenio-vocabularies-4.5.0}/invenio_vocabularies/alembic/e1146238edd3_create_awards_table.py +0 -0
  76. {invenio-vocabularies-4.4.0 → invenio-vocabularies-4.5.0}/invenio_vocabularies/assets/semantic-ui/js/invenio_vocabularies/.eslintrc.yml +0 -0
  77. {invenio-vocabularies-4.4.0 → invenio-vocabularies-4.5.0}/invenio_vocabularies/assets/semantic-ui/js/invenio_vocabularies/.prettierrc +0 -0
  78. {invenio-vocabularies-4.4.0 → invenio-vocabularies-4.5.0}/invenio_vocabularies/assets/semantic-ui/js/invenio_vocabularies/index.js +0 -0
  79. {invenio-vocabularies-4.4.0 → invenio-vocabularies-4.5.0}/invenio_vocabularies/assets/semantic-ui/js/invenio_vocabularies/src/contrib/forms/Funding/AwardResults.js +0 -0
  80. {invenio-vocabularies-4.4.0 → invenio-vocabularies-4.5.0}/invenio_vocabularies/assets/semantic-ui/js/invenio_vocabularies/src/contrib/forms/Funding/CustomAwardForm.js +0 -0
  81. {invenio-vocabularies-4.4.0 → invenio-vocabularies-4.5.0}/invenio_vocabularies/assets/semantic-ui/js/invenio_vocabularies/src/contrib/forms/Funding/FunderDropdown.js +0 -0
  82. {invenio-vocabularies-4.4.0 → invenio-vocabularies-4.5.0}/invenio_vocabularies/assets/semantic-ui/js/invenio_vocabularies/src/contrib/forms/Funding/FundingField.js +0 -0
  83. {invenio-vocabularies-4.4.0 → invenio-vocabularies-4.5.0}/invenio_vocabularies/assets/semantic-ui/js/invenio_vocabularies/src/contrib/forms/Funding/FundingField.test.js +0 -0
  84. {invenio-vocabularies-4.4.0 → invenio-vocabularies-4.5.0}/invenio_vocabularies/assets/semantic-ui/js/invenio_vocabularies/src/contrib/forms/Funding/FundingFieldItem.js +0 -0
  85. {invenio-vocabularies-4.4.0 → invenio-vocabularies-4.5.0}/invenio_vocabularies/assets/semantic-ui/js/invenio_vocabularies/src/contrib/forms/Funding/FundingModal.js +0 -0
  86. {invenio-vocabularies-4.4.0 → invenio-vocabularies-4.5.0}/invenio_vocabularies/assets/semantic-ui/js/invenio_vocabularies/src/contrib/forms/Funding/NoAwardResults.js +0 -0
  87. {invenio-vocabularies-4.4.0 → invenio-vocabularies-4.5.0}/invenio_vocabularies/assets/semantic-ui/js/invenio_vocabularies/src/contrib/forms/Funding/index.js +0 -0
  88. {invenio-vocabularies-4.4.0 → invenio-vocabularies-4.5.0}/invenio_vocabularies/assets/semantic-ui/js/invenio_vocabularies/src/contrib/forms/index.js +0 -0
  89. {invenio-vocabularies-4.4.0 → invenio-vocabularies-4.5.0}/invenio_vocabularies/assets/semantic-ui/js/invenio_vocabularies/src/contrib/index.js +0 -0
  90. {invenio-vocabularies-4.4.0 → invenio-vocabularies-4.5.0}/invenio_vocabularies/assets/semantic-ui/js/invenio_vocabularies/src/index.js +0 -0
  91. {invenio-vocabularies-4.4.0 → invenio-vocabularies-4.5.0}/invenio_vocabularies/assets/semantic-ui/translations/invenio_vocabularies/i18next-scanner.config.js +0 -0
  92. {invenio-vocabularies-4.4.0 → invenio-vocabularies-4.5.0}/invenio_vocabularies/assets/semantic-ui/translations/invenio_vocabularies/i18next.js +0 -0
  93. {invenio-vocabularies-4.4.0 → invenio-vocabularies-4.5.0}/invenio_vocabularies/assets/semantic-ui/translations/invenio_vocabularies/messages/index.js +0 -0
  94. {invenio-vocabularies-4.4.0 → invenio-vocabularies-4.5.0}/invenio_vocabularies/assets/semantic-ui/translations/invenio_vocabularies/package.json +0 -0
  95. {invenio-vocabularies-4.4.0 → invenio-vocabularies-4.5.0}/invenio_vocabularies/assets/semantic-ui/translations/invenio_vocabularies/scripts/compileCatalog.js +0 -0
  96. {invenio-vocabularies-4.4.0 → invenio-vocabularies-4.5.0}/invenio_vocabularies/assets/semantic-ui/translations/invenio_vocabularies/scripts/initCatalog.js +0 -0
  97. {invenio-vocabularies-4.4.0 → invenio-vocabularies-4.5.0}/invenio_vocabularies/cli.py +0 -0
  98. {invenio-vocabularies-4.4.0 → invenio-vocabularies-4.5.0}/invenio_vocabularies/contrib/__init__.py +0 -0
  99. {invenio-vocabularies-4.4.0 → invenio-vocabularies-4.5.0}/invenio_vocabularies/contrib/affiliations/__init__.py +0 -0
  100. {invenio-vocabularies-4.4.0 → invenio-vocabularies-4.5.0}/invenio_vocabularies/contrib/affiliations/affiliations.py +0 -0
  101. {invenio-vocabularies-4.4.0 → invenio-vocabularies-4.5.0}/invenio_vocabularies/contrib/affiliations/api.py +0 -0
  102. {invenio-vocabularies-4.4.0 → invenio-vocabularies-4.5.0}/invenio_vocabularies/contrib/affiliations/config.py +0 -0
  103. {invenio-vocabularies-4.4.0 → invenio-vocabularies-4.5.0}/invenio_vocabularies/contrib/affiliations/datastreams.py +0 -0
  104. {invenio-vocabularies-4.4.0 → invenio-vocabularies-4.5.0}/invenio_vocabularies/contrib/affiliations/facets.py +0 -0
  105. {invenio-vocabularies-4.4.0 → invenio-vocabularies-4.5.0}/invenio_vocabularies/contrib/affiliations/jsonschemas/__init__.py +0 -0
  106. {invenio-vocabularies-4.4.0 → invenio-vocabularies-4.5.0}/invenio_vocabularies/contrib/affiliations/jsonschemas/affiliations/affiliation-v1.0.0.json +0 -0
  107. {invenio-vocabularies-4.4.0 → invenio-vocabularies-4.5.0}/invenio_vocabularies/contrib/affiliations/mappings/__init__.py +0 -0
  108. {invenio-vocabularies-4.4.0 → invenio-vocabularies-4.5.0}/invenio_vocabularies/contrib/affiliations/mappings/os-v1/__init__.py +0 -0
  109. {invenio-vocabularies-4.4.0 → invenio-vocabularies-4.5.0}/invenio_vocabularies/contrib/affiliations/mappings/os-v1/affiliations/affiliation-v1.0.0.json +0 -0
  110. {invenio-vocabularies-4.4.0 → invenio-vocabularies-4.5.0}/invenio_vocabularies/contrib/affiliations/mappings/os-v2/__init__.py +0 -0
  111. {invenio-vocabularies-4.4.0 → invenio-vocabularies-4.5.0}/invenio_vocabularies/contrib/affiliations/mappings/os-v2/affiliations/affiliation-v1.0.0.json +0 -0
  112. {invenio-vocabularies-4.4.0 → invenio-vocabularies-4.5.0}/invenio_vocabularies/contrib/affiliations/mappings/v7/__init__.py +0 -0
  113. {invenio-vocabularies-4.4.0 → invenio-vocabularies-4.5.0}/invenio_vocabularies/contrib/affiliations/mappings/v7/affiliations/affiliation-v1.0.0.json +0 -0
  114. {invenio-vocabularies-4.4.0 → invenio-vocabularies-4.5.0}/invenio_vocabularies/contrib/affiliations/models.py +0 -0
  115. {invenio-vocabularies-4.4.0 → invenio-vocabularies-4.5.0}/invenio_vocabularies/contrib/affiliations/resources.py +0 -0
  116. {invenio-vocabularies-4.4.0 → invenio-vocabularies-4.5.0}/invenio_vocabularies/contrib/affiliations/schema.py +0 -0
  117. {invenio-vocabularies-4.4.0 → invenio-vocabularies-4.5.0}/invenio_vocabularies/contrib/affiliations/services.py +0 -0
  118. {invenio-vocabularies-4.4.0 → invenio-vocabularies-4.5.0}/invenio_vocabularies/contrib/awards/__init__.py +0 -0
  119. {invenio-vocabularies-4.4.0 → invenio-vocabularies-4.5.0}/invenio_vocabularies/contrib/awards/api.py +0 -0
  120. {invenio-vocabularies-4.4.0 → invenio-vocabularies-4.5.0}/invenio_vocabularies/contrib/awards/awards.py +0 -0
  121. {invenio-vocabularies-4.4.0 → invenio-vocabularies-4.5.0}/invenio_vocabularies/contrib/awards/config.py +0 -0
  122. {invenio-vocabularies-4.4.0 → invenio-vocabularies-4.5.0}/invenio_vocabularies/contrib/awards/datastreams.py +0 -0
  123. {invenio-vocabularies-4.4.0 → invenio-vocabularies-4.5.0}/invenio_vocabularies/contrib/awards/jsonschemas/__init__.py +0 -0
  124. {invenio-vocabularies-4.4.0 → invenio-vocabularies-4.5.0}/invenio_vocabularies/contrib/awards/jsonschemas/awards/award-v1.0.0.json +0 -0
  125. {invenio-vocabularies-4.4.0 → invenio-vocabularies-4.5.0}/invenio_vocabularies/contrib/awards/mappings/__init__.py +0 -0
  126. {invenio-vocabularies-4.4.0 → invenio-vocabularies-4.5.0}/invenio_vocabularies/contrib/awards/mappings/os-v1/__init__.py +0 -0
  127. {invenio-vocabularies-4.4.0 → invenio-vocabularies-4.5.0}/invenio_vocabularies/contrib/awards/mappings/os-v1/awards/award-v1.0.0.json +0 -0
  128. {invenio-vocabularies-4.4.0 → invenio-vocabularies-4.5.0}/invenio_vocabularies/contrib/awards/mappings/os-v2/__init__.py +0 -0
  129. {invenio-vocabularies-4.4.0 → invenio-vocabularies-4.5.0}/invenio_vocabularies/contrib/awards/mappings/os-v2/awards/award-v1.0.0.json +0 -0
  130. {invenio-vocabularies-4.4.0 → invenio-vocabularies-4.5.0}/invenio_vocabularies/contrib/awards/mappings/v7/__init__.py +0 -0
  131. {invenio-vocabularies-4.4.0 → invenio-vocabularies-4.5.0}/invenio_vocabularies/contrib/awards/mappings/v7/awards/award-v1.0.0.json +0 -0
  132. {invenio-vocabularies-4.4.0 → invenio-vocabularies-4.5.0}/invenio_vocabularies/contrib/awards/models.py +0 -0
  133. {invenio-vocabularies-4.4.0 → invenio-vocabularies-4.5.0}/invenio_vocabularies/contrib/awards/resources.py +0 -0
  134. {invenio-vocabularies-4.4.0 → invenio-vocabularies-4.5.0}/invenio_vocabularies/contrib/awards/schema.py +0 -0
  135. {invenio-vocabularies-4.4.0 → invenio-vocabularies-4.5.0}/invenio_vocabularies/contrib/awards/serializer.py +0 -0
  136. {invenio-vocabularies-4.4.0 → invenio-vocabularies-4.5.0}/invenio_vocabularies/contrib/awards/services.py +0 -0
  137. {invenio-vocabularies-4.4.0 → invenio-vocabularies-4.5.0}/invenio_vocabularies/contrib/common/__init__.py +0 -0
  138. {invenio-vocabularies-4.4.0 → invenio-vocabularies-4.5.0}/invenio_vocabularies/contrib/common/ror/__init__.py +0 -0
  139. {invenio-vocabularies-4.4.0 → invenio-vocabularies-4.5.0}/invenio_vocabularies/contrib/funders/__init__.py +0 -0
  140. {invenio-vocabularies-4.4.0 → invenio-vocabularies-4.5.0}/invenio_vocabularies/contrib/funders/api.py +0 -0
  141. {invenio-vocabularies-4.4.0 → invenio-vocabularies-4.5.0}/invenio_vocabularies/contrib/funders/config.py +0 -0
  142. {invenio-vocabularies-4.4.0 → invenio-vocabularies-4.5.0}/invenio_vocabularies/contrib/funders/datastreams.py +0 -0
  143. {invenio-vocabularies-4.4.0 → invenio-vocabularies-4.5.0}/invenio_vocabularies/contrib/funders/facets.py +0 -0
  144. {invenio-vocabularies-4.4.0 → invenio-vocabularies-4.5.0}/invenio_vocabularies/contrib/funders/funders.py +0 -0
  145. {invenio-vocabularies-4.4.0 → invenio-vocabularies-4.5.0}/invenio_vocabularies/contrib/funders/jsonschemas/__init__.py +0 -0
  146. {invenio-vocabularies-4.4.0 → invenio-vocabularies-4.5.0}/invenio_vocabularies/contrib/funders/jsonschemas/funders/funder-v1.0.0.json +0 -0
  147. {invenio-vocabularies-4.4.0 → invenio-vocabularies-4.5.0}/invenio_vocabularies/contrib/funders/mappings/__init__.py +0 -0
  148. {invenio-vocabularies-4.4.0 → invenio-vocabularies-4.5.0}/invenio_vocabularies/contrib/funders/mappings/os-v1/__init__.py +0 -0
  149. {invenio-vocabularies-4.4.0 → invenio-vocabularies-4.5.0}/invenio_vocabularies/contrib/funders/mappings/os-v1/funders/funder-v1.0.0.json +0 -0
  150. {invenio-vocabularies-4.4.0 → invenio-vocabularies-4.5.0}/invenio_vocabularies/contrib/funders/mappings/os-v2/__init__.py +0 -0
  151. {invenio-vocabularies-4.4.0 → invenio-vocabularies-4.5.0}/invenio_vocabularies/contrib/funders/mappings/os-v2/funders/funder-v1.0.0.json +0 -0
  152. {invenio-vocabularies-4.4.0 → invenio-vocabularies-4.5.0}/invenio_vocabularies/contrib/funders/mappings/v7/__init__.py +0 -0
  153. {invenio-vocabularies-4.4.0 → invenio-vocabularies-4.5.0}/invenio_vocabularies/contrib/funders/mappings/v7/funders/funder-v1.0.0.json +0 -0
  154. {invenio-vocabularies-4.4.0 → invenio-vocabularies-4.5.0}/invenio_vocabularies/contrib/funders/models.py +0 -0
  155. {invenio-vocabularies-4.4.0 → invenio-vocabularies-4.5.0}/invenio_vocabularies/contrib/funders/resources.py +0 -0
  156. {invenio-vocabularies-4.4.0 → invenio-vocabularies-4.5.0}/invenio_vocabularies/contrib/funders/schema.py +0 -0
  157. {invenio-vocabularies-4.4.0 → invenio-vocabularies-4.5.0}/invenio_vocabularies/contrib/funders/serializer.py +0 -0
  158. {invenio-vocabularies-4.4.0 → invenio-vocabularies-4.5.0}/invenio_vocabularies/contrib/funders/services.py +0 -0
  159. {invenio-vocabularies-4.4.0 → invenio-vocabularies-4.5.0}/invenio_vocabularies/contrib/names/__init__.py +0 -0
  160. {invenio-vocabularies-4.4.0 → invenio-vocabularies-4.5.0}/invenio_vocabularies/contrib/names/api.py +0 -0
  161. {invenio-vocabularies-4.4.0 → invenio-vocabularies-4.5.0}/invenio_vocabularies/contrib/names/config.py +0 -0
  162. {invenio-vocabularies-4.4.0 → invenio-vocabularies-4.5.0}/invenio_vocabularies/contrib/names/datastreams.py +0 -0
  163. {invenio-vocabularies-4.4.0 → invenio-vocabularies-4.5.0}/invenio_vocabularies/contrib/names/jsonschemas/__init__.py +0 -0
  164. {invenio-vocabularies-4.4.0 → invenio-vocabularies-4.5.0}/invenio_vocabularies/contrib/names/jsonschemas/names/name-v1.0.0.json +0 -0
  165. {invenio-vocabularies-4.4.0 → invenio-vocabularies-4.5.0}/invenio_vocabularies/contrib/names/mappings/__init__.py +0 -0
  166. {invenio-vocabularies-4.4.0 → invenio-vocabularies-4.5.0}/invenio_vocabularies/contrib/names/mappings/os-v1/__init__.py +0 -0
  167. {invenio-vocabularies-4.4.0 → invenio-vocabularies-4.5.0}/invenio_vocabularies/contrib/names/mappings/os-v1/names/name-v1.0.0.json +0 -0
  168. {invenio-vocabularies-4.4.0 → invenio-vocabularies-4.5.0}/invenio_vocabularies/contrib/names/mappings/os-v2/__init__.py +0 -0
  169. {invenio-vocabularies-4.4.0 → invenio-vocabularies-4.5.0}/invenio_vocabularies/contrib/names/mappings/os-v2/names/name-v1.0.0.json +0 -0
  170. {invenio-vocabularies-4.4.0 → invenio-vocabularies-4.5.0}/invenio_vocabularies/contrib/names/mappings/v7/__init__.py +0 -0
  171. {invenio-vocabularies-4.4.0 → invenio-vocabularies-4.5.0}/invenio_vocabularies/contrib/names/mappings/v7/names/name-v1.0.0.json +0 -0
  172. {invenio-vocabularies-4.4.0 → invenio-vocabularies-4.5.0}/invenio_vocabularies/contrib/names/models.py +0 -0
  173. {invenio-vocabularies-4.4.0 → invenio-vocabularies-4.5.0}/invenio_vocabularies/contrib/names/names.py +0 -0
  174. {invenio-vocabularies-4.4.0 → invenio-vocabularies-4.5.0}/invenio_vocabularies/contrib/names/resources.py +0 -0
  175. {invenio-vocabularies-4.4.0 → invenio-vocabularies-4.5.0}/invenio_vocabularies/contrib/names/s3client.py +0 -0
  176. {invenio-vocabularies-4.4.0 → invenio-vocabularies-4.5.0}/invenio_vocabularies/contrib/names/schema.py +0 -0
  177. {invenio-vocabularies-4.4.0 → invenio-vocabularies-4.5.0}/invenio_vocabularies/contrib/names/services.py +0 -0
  178. {invenio-vocabularies-4.4.0 → invenio-vocabularies-4.5.0}/invenio_vocabularies/contrib/subjects/__init__.py +0 -0
  179. {invenio-vocabularies-4.4.0 → invenio-vocabularies-4.5.0}/invenio_vocabularies/contrib/subjects/api.py +0 -0
  180. {invenio-vocabularies-4.4.0 → invenio-vocabularies-4.5.0}/invenio_vocabularies/contrib/subjects/facets.py +0 -0
  181. {invenio-vocabularies-4.4.0 → invenio-vocabularies-4.5.0}/invenio_vocabularies/contrib/subjects/jsonschemas/__init__.py +0 -0
  182. {invenio-vocabularies-4.4.0 → invenio-vocabularies-4.5.0}/invenio_vocabularies/contrib/subjects/mappings/__init__.py +0 -0
  183. {invenio-vocabularies-4.4.0 → invenio-vocabularies-4.5.0}/invenio_vocabularies/contrib/subjects/mappings/os-v1/__init__.py +0 -0
  184. {invenio-vocabularies-4.4.0 → invenio-vocabularies-4.5.0}/invenio_vocabularies/contrib/subjects/mappings/os-v2/__init__.py +0 -0
  185. {invenio-vocabularies-4.4.0 → invenio-vocabularies-4.5.0}/invenio_vocabularies/contrib/subjects/mappings/v7/__init__.py +0 -0
  186. {invenio-vocabularies-4.4.0 → invenio-vocabularies-4.5.0}/invenio_vocabularies/contrib/subjects/models.py +0 -0
  187. {invenio-vocabularies-4.4.0 → invenio-vocabularies-4.5.0}/invenio_vocabularies/contrib/subjects/resources.py +0 -0
  188. {invenio-vocabularies-4.4.0 → invenio-vocabularies-4.5.0}/invenio_vocabularies/contrib/subjects/services.py +0 -0
  189. {invenio-vocabularies-4.4.0 → invenio-vocabularies-4.5.0}/invenio_vocabularies/contrib/subjects/subjects.py +0 -0
  190. {invenio-vocabularies-4.4.0 → invenio-vocabularies-4.5.0}/invenio_vocabularies/datastreams/__init__.py +0 -0
  191. {invenio-vocabularies-4.4.0 → invenio-vocabularies-4.5.0}/invenio_vocabularies/datastreams/datastreams.py +0 -0
  192. {invenio-vocabularies-4.4.0 → invenio-vocabularies-4.5.0}/invenio_vocabularies/datastreams/errors.py +0 -0
  193. {invenio-vocabularies-4.4.0 → invenio-vocabularies-4.5.0}/invenio_vocabularies/datastreams/factories.py +0 -0
  194. {invenio-vocabularies-4.4.0 → invenio-vocabularies-4.5.0}/invenio_vocabularies/datastreams/readers.py +0 -0
  195. {invenio-vocabularies-4.4.0 → invenio-vocabularies-4.5.0}/invenio_vocabularies/datastreams/tasks.py +0 -0
  196. {invenio-vocabularies-4.4.0 → invenio-vocabularies-4.5.0}/invenio_vocabularies/datastreams/transformers.py +0 -0
  197. {invenio-vocabularies-4.4.0 → invenio-vocabularies-4.5.0}/invenio_vocabularies/datastreams/writers.py +0 -0
  198. {invenio-vocabularies-4.4.0 → invenio-vocabularies-4.5.0}/invenio_vocabularies/datastreams/xml.py +0 -0
  199. {invenio-vocabularies-4.4.0 → invenio-vocabularies-4.5.0}/invenio_vocabularies/ext.py +0 -0
  200. {invenio-vocabularies-4.4.0 → invenio-vocabularies-4.5.0}/invenio_vocabularies/fixtures.py +0 -0
  201. {invenio-vocabularies-4.4.0 → invenio-vocabularies-4.5.0}/invenio_vocabularies/proxies.py +0 -0
  202. {invenio-vocabularies-4.4.0 → invenio-vocabularies-4.5.0}/invenio_vocabularies/records/__init__.py +0 -0
  203. {invenio-vocabularies-4.4.0 → invenio-vocabularies-4.5.0}/invenio_vocabularies/records/api.py +0 -0
  204. {invenio-vocabularies-4.4.0 → invenio-vocabularies-4.5.0}/invenio_vocabularies/records/jsonschemas/__init__.py +0 -0
  205. {invenio-vocabularies-4.4.0 → invenio-vocabularies-4.5.0}/invenio_vocabularies/records/jsonschemas/vocabularies/definitions-v1.0.0.json +0 -0
  206. {invenio-vocabularies-4.4.0 → invenio-vocabularies-4.5.0}/invenio_vocabularies/records/jsonschemas/vocabularies/vocabulary-v1.0.0.json +0 -0
  207. {invenio-vocabularies-4.4.0 → invenio-vocabularies-4.5.0}/invenio_vocabularies/records/mappings/__init__.py +0 -0
  208. {invenio-vocabularies-4.4.0 → invenio-vocabularies-4.5.0}/invenio_vocabularies/records/mappings/os-v1/__init__.py +0 -0
  209. {invenio-vocabularies-4.4.0 → invenio-vocabularies-4.5.0}/invenio_vocabularies/records/mappings/os-v1/vocabularies/vocabulary-v1.0.0.json +0 -0
  210. {invenio-vocabularies-4.4.0 → invenio-vocabularies-4.5.0}/invenio_vocabularies/records/mappings/os-v2/__init__.py +0 -0
  211. {invenio-vocabularies-4.4.0 → invenio-vocabularies-4.5.0}/invenio_vocabularies/records/mappings/os-v2/vocabularies/vocabulary-v1.0.0.json +0 -0
  212. {invenio-vocabularies-4.4.0 → invenio-vocabularies-4.5.0}/invenio_vocabularies/records/mappings/v7/__init__.py +0 -0
  213. {invenio-vocabularies-4.4.0 → invenio-vocabularies-4.5.0}/invenio_vocabularies/records/mappings/v7/vocabularies/vocabulary-v1.0.0.json +0 -0
  214. {invenio-vocabularies-4.4.0 → invenio-vocabularies-4.5.0}/invenio_vocabularies/records/models.py +0 -0
  215. {invenio-vocabularies-4.4.0 → invenio-vocabularies-4.5.0}/invenio_vocabularies/records/pidprovider.py +0 -0
  216. {invenio-vocabularies-4.4.0 → invenio-vocabularies-4.5.0}/invenio_vocabularies/records/systemfields/__init__.py +0 -0
  217. {invenio-vocabularies-4.4.0 → invenio-vocabularies-4.5.0}/invenio_vocabularies/records/systemfields/pid.py +0 -0
  218. {invenio-vocabularies-4.4.0 → invenio-vocabularies-4.5.0}/invenio_vocabularies/records/systemfields/relations.py +0 -0
  219. {invenio-vocabularies-4.4.0 → invenio-vocabularies-4.5.0}/invenio_vocabularies/resources/__init__.py +0 -0
  220. {invenio-vocabularies-4.4.0 → invenio-vocabularies-4.5.0}/invenio_vocabularies/resources/config.py +0 -0
  221. {invenio-vocabularies-4.4.0 → invenio-vocabularies-4.5.0}/invenio_vocabularies/resources/resource.py +0 -0
  222. {invenio-vocabularies-4.4.0 → invenio-vocabularies-4.5.0}/invenio_vocabularies/resources/schema.py +0 -0
  223. {invenio-vocabularies-4.4.0 → invenio-vocabularies-4.5.0}/invenio_vocabularies/resources/serializer.py +0 -0
  224. {invenio-vocabularies-4.4.0 → invenio-vocabularies-4.5.0}/invenio_vocabularies/services/__init__.py +0 -0
  225. {invenio-vocabularies-4.4.0 → invenio-vocabularies-4.5.0}/invenio_vocabularies/services/components.py +0 -0
  226. {invenio-vocabularies-4.4.0 → invenio-vocabularies-4.5.0}/invenio_vocabularies/services/custom_fields/__init__.py +0 -0
  227. {invenio-vocabularies-4.4.0 → invenio-vocabularies-4.5.0}/invenio_vocabularies/services/custom_fields/subject.py +0 -0
  228. {invenio-vocabularies-4.4.0 → invenio-vocabularies-4.5.0}/invenio_vocabularies/services/custom_fields/vocabulary.py +0 -0
  229. {invenio-vocabularies-4.4.0 → invenio-vocabularies-4.5.0}/invenio_vocabularies/services/facets.py +0 -0
  230. {invenio-vocabularies-4.4.0 → invenio-vocabularies-4.5.0}/invenio_vocabularies/services/permissions.py +0 -0
  231. {invenio-vocabularies-4.4.0 → invenio-vocabularies-4.5.0}/invenio_vocabularies/services/querystr.py +0 -0
  232. {invenio-vocabularies-4.4.0 → invenio-vocabularies-4.5.0}/invenio_vocabularies/services/results.py +0 -0
  233. {invenio-vocabularies-4.4.0 → invenio-vocabularies-4.5.0}/invenio_vocabularies/services/schema.py +0 -0
  234. {invenio-vocabularies-4.4.0 → invenio-vocabularies-4.5.0}/invenio_vocabularies/services/tasks.py +0 -0
  235. {invenio-vocabularies-4.4.0 → invenio-vocabularies-4.5.0}/invenio_vocabularies/templates/semantic-ui/invenio_vocabularies/subjects.html +0 -0
  236. {invenio-vocabularies-4.4.0 → invenio-vocabularies-4.5.0}/invenio_vocabularies/templates/semantic-ui/invenio_vocabularies/vocabularies-list.html +0 -0
  237. {invenio-vocabularies-4.4.0 → invenio-vocabularies-4.5.0}/invenio_vocabularies/templates/semantic-ui/invenio_vocabularies/vocabulary-details.html +0 -0
  238. {invenio-vocabularies-4.4.0 → invenio-vocabularies-4.5.0}/invenio_vocabularies/translations/af/LC_MESSAGES/messages.mo +0 -0
  239. {invenio-vocabularies-4.4.0 → invenio-vocabularies-4.5.0}/invenio_vocabularies/translations/af/LC_MESSAGES/messages.po +0 -0
  240. {invenio-vocabularies-4.4.0 → invenio-vocabularies-4.5.0}/invenio_vocabularies/translations/ar/LC_MESSAGES/messages.mo +0 -0
  241. {invenio-vocabularies-4.4.0 → invenio-vocabularies-4.5.0}/invenio_vocabularies/translations/ar/LC_MESSAGES/messages.po +0 -0
  242. {invenio-vocabularies-4.4.0 → invenio-vocabularies-4.5.0}/invenio_vocabularies/translations/bg/LC_MESSAGES/messages.mo +0 -0
  243. {invenio-vocabularies-4.4.0 → invenio-vocabularies-4.5.0}/invenio_vocabularies/translations/bg/LC_MESSAGES/messages.po +0 -0
  244. {invenio-vocabularies-4.4.0 → invenio-vocabularies-4.5.0}/invenio_vocabularies/translations/ca/LC_MESSAGES/messages.mo +0 -0
  245. {invenio-vocabularies-4.4.0 → invenio-vocabularies-4.5.0}/invenio_vocabularies/translations/ca/LC_MESSAGES/messages.po +0 -0
  246. {invenio-vocabularies-4.4.0 → invenio-vocabularies-4.5.0}/invenio_vocabularies/translations/cs/LC_MESSAGES/messages.mo +0 -0
  247. {invenio-vocabularies-4.4.0 → invenio-vocabularies-4.5.0}/invenio_vocabularies/translations/cs/LC_MESSAGES/messages.po +0 -0
  248. {invenio-vocabularies-4.4.0 → invenio-vocabularies-4.5.0}/invenio_vocabularies/translations/da/LC_MESSAGES/messages.mo +0 -0
  249. {invenio-vocabularies-4.4.0 → invenio-vocabularies-4.5.0}/invenio_vocabularies/translations/da/LC_MESSAGES/messages.po +0 -0
  250. {invenio-vocabularies-4.4.0 → invenio-vocabularies-4.5.0}/invenio_vocabularies/translations/de/LC_MESSAGES/messages.mo +0 -0
  251. {invenio-vocabularies-4.4.0 → invenio-vocabularies-4.5.0}/invenio_vocabularies/translations/de/LC_MESSAGES/messages.po +0 -0
  252. {invenio-vocabularies-4.4.0 → invenio-vocabularies-4.5.0}/invenio_vocabularies/translations/de_AT/LC_MESSAGES/messages.mo +0 -0
  253. {invenio-vocabularies-4.4.0 → invenio-vocabularies-4.5.0}/invenio_vocabularies/translations/de_AT/LC_MESSAGES/messages.po +0 -0
  254. {invenio-vocabularies-4.4.0 → invenio-vocabularies-4.5.0}/invenio_vocabularies/translations/de_DE/LC_MESSAGES/messages.mo +0 -0
  255. {invenio-vocabularies-4.4.0 → invenio-vocabularies-4.5.0}/invenio_vocabularies/translations/de_DE/LC_MESSAGES/messages.po +0 -0
  256. {invenio-vocabularies-4.4.0 → invenio-vocabularies-4.5.0}/invenio_vocabularies/translations/el/LC_MESSAGES/messages.mo +0 -0
  257. {invenio-vocabularies-4.4.0 → invenio-vocabularies-4.5.0}/invenio_vocabularies/translations/el/LC_MESSAGES/messages.po +0 -0
  258. {invenio-vocabularies-4.4.0 → invenio-vocabularies-4.5.0}/invenio_vocabularies/translations/en/LC_MESSAGES/messages.mo +0 -0
  259. {invenio-vocabularies-4.4.0 → invenio-vocabularies-4.5.0}/invenio_vocabularies/translations/en/LC_MESSAGES/messages.po +0 -0
  260. {invenio-vocabularies-4.4.0 → invenio-vocabularies-4.5.0}/invenio_vocabularies/translations/en_AT/LC_MESSAGES/messages.mo +0 -0
  261. {invenio-vocabularies-4.4.0 → invenio-vocabularies-4.5.0}/invenio_vocabularies/translations/en_AT/LC_MESSAGES/messages.po +0 -0
  262. {invenio-vocabularies-4.4.0 → invenio-vocabularies-4.5.0}/invenio_vocabularies/translations/en_HU/LC_MESSAGES/messages.mo +0 -0
  263. {invenio-vocabularies-4.4.0 → invenio-vocabularies-4.5.0}/invenio_vocabularies/translations/en_HU/LC_MESSAGES/messages.po +0 -0
  264. {invenio-vocabularies-4.4.0 → invenio-vocabularies-4.5.0}/invenio_vocabularies/translations/es/LC_MESSAGES/messages.mo +0 -0
  265. {invenio-vocabularies-4.4.0 → invenio-vocabularies-4.5.0}/invenio_vocabularies/translations/es/LC_MESSAGES/messages.po +0 -0
  266. {invenio-vocabularies-4.4.0 → invenio-vocabularies-4.5.0}/invenio_vocabularies/translations/es_CU/LC_MESSAGES/messages.mo +0 -0
  267. {invenio-vocabularies-4.4.0 → invenio-vocabularies-4.5.0}/invenio_vocabularies/translations/es_CU/LC_MESSAGES/messages.po +0 -0
  268. {invenio-vocabularies-4.4.0 → invenio-vocabularies-4.5.0}/invenio_vocabularies/translations/es_MX/LC_MESSAGES/messages.mo +0 -0
  269. {invenio-vocabularies-4.4.0 → invenio-vocabularies-4.5.0}/invenio_vocabularies/translations/es_MX/LC_MESSAGES/messages.po +0 -0
  270. {invenio-vocabularies-4.4.0 → invenio-vocabularies-4.5.0}/invenio_vocabularies/translations/et/LC_MESSAGES/messages.mo +0 -0
  271. {invenio-vocabularies-4.4.0 → invenio-vocabularies-4.5.0}/invenio_vocabularies/translations/et/LC_MESSAGES/messages.po +0 -0
  272. {invenio-vocabularies-4.4.0 → invenio-vocabularies-4.5.0}/invenio_vocabularies/translations/et_EE/LC_MESSAGES/messages.mo +0 -0
  273. {invenio-vocabularies-4.4.0 → invenio-vocabularies-4.5.0}/invenio_vocabularies/translations/et_EE/LC_MESSAGES/messages.po +0 -0
  274. {invenio-vocabularies-4.4.0 → invenio-vocabularies-4.5.0}/invenio_vocabularies/translations/fa/LC_MESSAGES/messages.mo +0 -0
  275. {invenio-vocabularies-4.4.0 → invenio-vocabularies-4.5.0}/invenio_vocabularies/translations/fa/LC_MESSAGES/messages.po +0 -0
  276. {invenio-vocabularies-4.4.0 → invenio-vocabularies-4.5.0}/invenio_vocabularies/translations/fa_IR/LC_MESSAGES/messages.mo +0 -0
  277. {invenio-vocabularies-4.4.0 → invenio-vocabularies-4.5.0}/invenio_vocabularies/translations/fa_IR/LC_MESSAGES/messages.po +0 -0
  278. {invenio-vocabularies-4.4.0 → invenio-vocabularies-4.5.0}/invenio_vocabularies/translations/fr/LC_MESSAGES/messages.mo +0 -0
  279. {invenio-vocabularies-4.4.0 → invenio-vocabularies-4.5.0}/invenio_vocabularies/translations/fr/LC_MESSAGES/messages.po +0 -0
  280. {invenio-vocabularies-4.4.0 → invenio-vocabularies-4.5.0}/invenio_vocabularies/translations/fr_CI/LC_MESSAGES/messages.mo +0 -0
  281. {invenio-vocabularies-4.4.0 → invenio-vocabularies-4.5.0}/invenio_vocabularies/translations/fr_CI/LC_MESSAGES/messages.po +0 -0
  282. {invenio-vocabularies-4.4.0 → invenio-vocabularies-4.5.0}/invenio_vocabularies/translations/fr_FR/LC_MESSAGES/messages.mo +0 -0
  283. {invenio-vocabularies-4.4.0 → invenio-vocabularies-4.5.0}/invenio_vocabularies/translations/fr_FR/LC_MESSAGES/messages.po +0 -0
  284. {invenio-vocabularies-4.4.0 → invenio-vocabularies-4.5.0}/invenio_vocabularies/translations/gl/LC_MESSAGES/messages.mo +0 -0
  285. {invenio-vocabularies-4.4.0 → invenio-vocabularies-4.5.0}/invenio_vocabularies/translations/gl/LC_MESSAGES/messages.po +0 -0
  286. {invenio-vocabularies-4.4.0 → invenio-vocabularies-4.5.0}/invenio_vocabularies/translations/hi_IN/LC_MESSAGES/messages.mo +0 -0
  287. {invenio-vocabularies-4.4.0 → invenio-vocabularies-4.5.0}/invenio_vocabularies/translations/hi_IN/LC_MESSAGES/messages.po +0 -0
  288. {invenio-vocabularies-4.4.0 → invenio-vocabularies-4.5.0}/invenio_vocabularies/translations/hr/LC_MESSAGES/messages.mo +0 -0
  289. {invenio-vocabularies-4.4.0 → invenio-vocabularies-4.5.0}/invenio_vocabularies/translations/hr/LC_MESSAGES/messages.po +0 -0
  290. {invenio-vocabularies-4.4.0 → invenio-vocabularies-4.5.0}/invenio_vocabularies/translations/hu/LC_MESSAGES/messages.mo +0 -0
  291. {invenio-vocabularies-4.4.0 → invenio-vocabularies-4.5.0}/invenio_vocabularies/translations/hu/LC_MESSAGES/messages.po +0 -0
  292. {invenio-vocabularies-4.4.0 → invenio-vocabularies-4.5.0}/invenio_vocabularies/translations/hu_HU/LC_MESSAGES/messages.mo +0 -0
  293. {invenio-vocabularies-4.4.0 → invenio-vocabularies-4.5.0}/invenio_vocabularies/translations/hu_HU/LC_MESSAGES/messages.po +0 -0
  294. {invenio-vocabularies-4.4.0 → invenio-vocabularies-4.5.0}/invenio_vocabularies/translations/it/LC_MESSAGES/messages.mo +0 -0
  295. {invenio-vocabularies-4.4.0 → invenio-vocabularies-4.5.0}/invenio_vocabularies/translations/it/LC_MESSAGES/messages.po +0 -0
  296. {invenio-vocabularies-4.4.0 → invenio-vocabularies-4.5.0}/invenio_vocabularies/translations/ja/LC_MESSAGES/messages.mo +0 -0
  297. {invenio-vocabularies-4.4.0 → invenio-vocabularies-4.5.0}/invenio_vocabularies/translations/ja/LC_MESSAGES/messages.po +0 -0
  298. {invenio-vocabularies-4.4.0 → invenio-vocabularies-4.5.0}/invenio_vocabularies/translations/ka/LC_MESSAGES/messages.mo +0 -0
  299. {invenio-vocabularies-4.4.0 → invenio-vocabularies-4.5.0}/invenio_vocabularies/translations/ka/LC_MESSAGES/messages.po +0 -0
  300. {invenio-vocabularies-4.4.0 → invenio-vocabularies-4.5.0}/invenio_vocabularies/translations/lt/LC_MESSAGES/messages.mo +0 -0
  301. {invenio-vocabularies-4.4.0 → invenio-vocabularies-4.5.0}/invenio_vocabularies/translations/lt/LC_MESSAGES/messages.po +0 -0
  302. {invenio-vocabularies-4.4.0 → invenio-vocabularies-4.5.0}/invenio_vocabularies/translations/ne/LC_MESSAGES/messages.mo +0 -0
  303. {invenio-vocabularies-4.4.0 → invenio-vocabularies-4.5.0}/invenio_vocabularies/translations/ne/LC_MESSAGES/messages.po +0 -0
  304. {invenio-vocabularies-4.4.0 → invenio-vocabularies-4.5.0}/invenio_vocabularies/translations/no/LC_MESSAGES/messages.mo +0 -0
  305. {invenio-vocabularies-4.4.0 → invenio-vocabularies-4.5.0}/invenio_vocabularies/translations/no/LC_MESSAGES/messages.po +0 -0
  306. {invenio-vocabularies-4.4.0 → invenio-vocabularies-4.5.0}/invenio_vocabularies/translations/pl/LC_MESSAGES/messages.mo +0 -0
  307. {invenio-vocabularies-4.4.0 → invenio-vocabularies-4.5.0}/invenio_vocabularies/translations/pl/LC_MESSAGES/messages.po +0 -0
  308. {invenio-vocabularies-4.4.0 → invenio-vocabularies-4.5.0}/invenio_vocabularies/translations/pt/LC_MESSAGES/messages.mo +0 -0
  309. {invenio-vocabularies-4.4.0 → invenio-vocabularies-4.5.0}/invenio_vocabularies/translations/pt/LC_MESSAGES/messages.po +0 -0
  310. {invenio-vocabularies-4.4.0 → invenio-vocabularies-4.5.0}/invenio_vocabularies/translations/ro/LC_MESSAGES/messages.mo +0 -0
  311. {invenio-vocabularies-4.4.0 → invenio-vocabularies-4.5.0}/invenio_vocabularies/translations/ro/LC_MESSAGES/messages.po +0 -0
  312. {invenio-vocabularies-4.4.0 → invenio-vocabularies-4.5.0}/invenio_vocabularies/translations/ru/LC_MESSAGES/messages.mo +0 -0
  313. {invenio-vocabularies-4.4.0 → invenio-vocabularies-4.5.0}/invenio_vocabularies/translations/ru/LC_MESSAGES/messages.po +0 -0
  314. {invenio-vocabularies-4.4.0 → invenio-vocabularies-4.5.0}/invenio_vocabularies/translations/rw/LC_MESSAGES/messages.mo +0 -0
  315. {invenio-vocabularies-4.4.0 → invenio-vocabularies-4.5.0}/invenio_vocabularies/translations/rw/LC_MESSAGES/messages.po +0 -0
  316. {invenio-vocabularies-4.4.0 → invenio-vocabularies-4.5.0}/invenio_vocabularies/translations/sk/LC_MESSAGES/messages.mo +0 -0
  317. {invenio-vocabularies-4.4.0 → invenio-vocabularies-4.5.0}/invenio_vocabularies/translations/sk/LC_MESSAGES/messages.po +0 -0
  318. {invenio-vocabularies-4.4.0 → invenio-vocabularies-4.5.0}/invenio_vocabularies/translations/sv/LC_MESSAGES/messages.mo +0 -0
  319. {invenio-vocabularies-4.4.0 → invenio-vocabularies-4.5.0}/invenio_vocabularies/translations/sv/LC_MESSAGES/messages.po +0 -0
  320. {invenio-vocabularies-4.4.0 → invenio-vocabularies-4.5.0}/invenio_vocabularies/translations/sv_SE/LC_MESSAGES/messages.mo +0 -0
  321. {invenio-vocabularies-4.4.0 → invenio-vocabularies-4.5.0}/invenio_vocabularies/translations/sv_SE/LC_MESSAGES/messages.po +0 -0
  322. {invenio-vocabularies-4.4.0 → invenio-vocabularies-4.5.0}/invenio_vocabularies/translations/tr/LC_MESSAGES/messages.mo +0 -0
  323. {invenio-vocabularies-4.4.0 → invenio-vocabularies-4.5.0}/invenio_vocabularies/translations/tr/LC_MESSAGES/messages.po +0 -0
  324. {invenio-vocabularies-4.4.0 → invenio-vocabularies-4.5.0}/invenio_vocabularies/translations/uk/LC_MESSAGES/messages.mo +0 -0
  325. {invenio-vocabularies-4.4.0 → invenio-vocabularies-4.5.0}/invenio_vocabularies/translations/uk/LC_MESSAGES/messages.po +0 -0
  326. {invenio-vocabularies-4.4.0 → invenio-vocabularies-4.5.0}/invenio_vocabularies/translations/uk_UA/LC_MESSAGES/messages.mo +0 -0
  327. {invenio-vocabularies-4.4.0 → invenio-vocabularies-4.5.0}/invenio_vocabularies/translations/uk_UA/LC_MESSAGES/messages.po +0 -0
  328. {invenio-vocabularies-4.4.0 → invenio-vocabularies-4.5.0}/invenio_vocabularies/translations/zh_CN/LC_MESSAGES/messages.mo +0 -0
  329. {invenio-vocabularies-4.4.0 → invenio-vocabularies-4.5.0}/invenio_vocabularies/translations/zh_CN/LC_MESSAGES/messages.po +0 -0
  330. {invenio-vocabularies-4.4.0 → invenio-vocabularies-4.5.0}/invenio_vocabularies/translations/zh_TW/LC_MESSAGES/messages.mo +0 -0
  331. {invenio-vocabularies-4.4.0 → invenio-vocabularies-4.5.0}/invenio_vocabularies/translations/zh_TW/LC_MESSAGES/messages.po +0 -0
  332. {invenio-vocabularies-4.4.0 → invenio-vocabularies-4.5.0}/invenio_vocabularies/views.py +0 -0
  333. {invenio-vocabularies-4.4.0 → invenio-vocabularies-4.5.0}/invenio_vocabularies.egg-info/dependency_links.txt +0 -0
  334. {invenio-vocabularies-4.4.0 → invenio-vocabularies-4.5.0}/invenio_vocabularies.egg-info/entry_points.txt +0 -0
  335. {invenio-vocabularies-4.4.0 → invenio-vocabularies-4.5.0}/invenio_vocabularies.egg-info/not-zip-safe +0 -0
  336. {invenio-vocabularies-4.4.0 → invenio-vocabularies-4.5.0}/invenio_vocabularies.egg-info/requires.txt +0 -0
  337. {invenio-vocabularies-4.4.0 → invenio-vocabularies-4.5.0}/invenio_vocabularies.egg-info/top_level.txt +0 -0
  338. {invenio-vocabularies-4.4.0 → invenio-vocabularies-4.5.0}/pyproject.toml +0 -0
  339. {invenio-vocabularies-4.4.0 → invenio-vocabularies-4.5.0}/requirements-feature.txt +0 -0
  340. {invenio-vocabularies-4.4.0 → invenio-vocabularies-4.5.0}/run-js-linter.sh +0 -0
  341. {invenio-vocabularies-4.4.0 → invenio-vocabularies-4.5.0}/run-tests.sh +0 -0
  342. {invenio-vocabularies-4.4.0 → invenio-vocabularies-4.5.0}/setup.cfg +0 -0
  343. {invenio-vocabularies-4.4.0 → invenio-vocabularies-4.5.0}/setup.py +0 -0
  344. {invenio-vocabularies-4.4.0 → invenio-vocabularies-4.5.0}/tests/conftest.py +0 -0
  345. {invenio-vocabularies-4.4.0 → invenio-vocabularies-4.5.0}/tests/contrib/affiliations/conftest.py +0 -0
  346. {invenio-vocabularies-4.4.0 → invenio-vocabularies-4.5.0}/tests/contrib/affiliations/test_affiliations_api.py +0 -0
  347. {invenio-vocabularies-4.4.0 → invenio-vocabularies-4.5.0}/tests/contrib/affiliations/test_affiliations_datastreams.py +0 -0
  348. {invenio-vocabularies-4.4.0 → invenio-vocabularies-4.5.0}/tests/contrib/affiliations/test_affiliations_jsonschema.py +0 -0
  349. {invenio-vocabularies-4.4.0 → invenio-vocabularies-4.5.0}/tests/contrib/affiliations/test_affiliations_resource.py +0 -0
  350. {invenio-vocabularies-4.4.0 → invenio-vocabularies-4.5.0}/tests/contrib/affiliations/test_affiliations_schema.py +0 -0
  351. {invenio-vocabularies-4.4.0 → invenio-vocabularies-4.5.0}/tests/contrib/affiliations/test_affiliations_service.py +0 -0
  352. {invenio-vocabularies-4.4.0 → invenio-vocabularies-4.5.0}/tests/contrib/awards/conftest.py +0 -0
  353. {invenio-vocabularies-4.4.0 → invenio-vocabularies-4.5.0}/tests/contrib/awards/test_awards_api.py +0 -0
  354. {invenio-vocabularies-4.4.0 → invenio-vocabularies-4.5.0}/tests/contrib/awards/test_awards_datastreams.py +0 -0
  355. {invenio-vocabularies-4.4.0 → invenio-vocabularies-4.5.0}/tests/contrib/awards/test_awards_jsonschema.py +0 -0
  356. {invenio-vocabularies-4.4.0 → invenio-vocabularies-4.5.0}/tests/contrib/awards/test_awards_resource.py +0 -0
  357. {invenio-vocabularies-4.4.0 → invenio-vocabularies-4.5.0}/tests/contrib/awards/test_awards_schema.py +0 -0
  358. {invenio-vocabularies-4.4.0 → invenio-vocabularies-4.5.0}/tests/contrib/awards/test_awards_service.py +0 -0
  359. {invenio-vocabularies-4.4.0 → invenio-vocabularies-4.5.0}/tests/contrib/funders/conftest.py +0 -0
  360. {invenio-vocabularies-4.4.0 → invenio-vocabularies-4.5.0}/tests/contrib/funders/test_funders_api.py +0 -0
  361. {invenio-vocabularies-4.4.0 → invenio-vocabularies-4.5.0}/tests/contrib/funders/test_funders_datastreams.py +0 -0
  362. {invenio-vocabularies-4.4.0 → invenio-vocabularies-4.5.0}/tests/contrib/funders/test_funders_jsonschema.py +0 -0
  363. {invenio-vocabularies-4.4.0 → invenio-vocabularies-4.5.0}/tests/contrib/funders/test_funders_resource.py +0 -0
  364. {invenio-vocabularies-4.4.0 → invenio-vocabularies-4.5.0}/tests/contrib/funders/test_funders_schema.py +0 -0
  365. {invenio-vocabularies-4.4.0 → invenio-vocabularies-4.5.0}/tests/contrib/funders/test_funders_service.py +0 -0
  366. {invenio-vocabularies-4.4.0 → invenio-vocabularies-4.5.0}/tests/contrib/names/conftest.py +0 -0
  367. {invenio-vocabularies-4.4.0 → invenio-vocabularies-4.5.0}/tests/contrib/names/test_names_api.py +0 -0
  368. {invenio-vocabularies-4.4.0 → invenio-vocabularies-4.5.0}/tests/contrib/names/test_names_datastreams.py +0 -0
  369. {invenio-vocabularies-4.4.0 → invenio-vocabularies-4.5.0}/tests/contrib/names/test_names_jsonschema.py +0 -0
  370. {invenio-vocabularies-4.4.0 → invenio-vocabularies-4.5.0}/tests/contrib/names/test_names_resource.py +0 -0
  371. {invenio-vocabularies-4.4.0 → invenio-vocabularies-4.5.0}/tests/contrib/names/test_names_schema.py +0 -0
  372. {invenio-vocabularies-4.4.0 → invenio-vocabularies-4.5.0}/tests/contrib/names/test_names_service.py +0 -0
  373. {invenio-vocabularies-4.4.0 → invenio-vocabularies-4.5.0}/tests/contrib/subjects/test_subjects_facets.py +0 -0
  374. {invenio-vocabularies-4.4.0 → invenio-vocabularies-4.5.0}/tests/custom_fields/test_custom_fields.py +0 -0
  375. {invenio-vocabularies-4.4.0 → invenio-vocabularies-4.5.0}/tests/datastreams/conftest.py +0 -0
  376. {invenio-vocabularies-4.4.0 → invenio-vocabularies-4.5.0}/tests/datastreams/test_datastreams.py +0 -0
  377. {invenio-vocabularies-4.4.0 → invenio-vocabularies-4.5.0}/tests/datastreams/test_datastreams_tasks.py +0 -0
  378. {invenio-vocabularies-4.4.0 → invenio-vocabularies-4.5.0}/tests/datastreams/test_fixtures.py +0 -0
  379. {invenio-vocabularies-4.4.0 → invenio-vocabularies-4.5.0}/tests/datastreams/test_readers.py +0 -0
  380. {invenio-vocabularies-4.4.0 → invenio-vocabularies-4.5.0}/tests/datastreams/test_transformers.py +0 -0
  381. {invenio-vocabularies-4.4.0 → invenio-vocabularies-4.5.0}/tests/datastreams/test_writers.py +0 -0
  382. {invenio-vocabularies-4.4.0 → invenio-vocabularies-4.5.0}/tests/datastreams/vocabularies.yaml +0 -0
  383. {invenio-vocabularies-4.4.0 → invenio-vocabularies-4.5.0}/tests/mock_module/__init__.py +0 -0
  384. {invenio-vocabularies-4.4.0 → invenio-vocabularies-4.5.0}/tests/mock_module/api.py +0 -0
  385. {invenio-vocabularies-4.4.0 → invenio-vocabularies-4.5.0}/tests/mock_module/jsonschemas/__init__.py +0 -0
  386. {invenio-vocabularies-4.4.0 → invenio-vocabularies-4.5.0}/tests/mock_module/jsonschemas/records/record-v1.0.0.json +0 -0
  387. {invenio-vocabularies-4.4.0 → invenio-vocabularies-4.5.0}/tests/mock_module/mappings/__init__.py +0 -0
  388. {invenio-vocabularies-4.4.0 → invenio-vocabularies-4.5.0}/tests/mock_module/mappings/v6/__init__.py +0 -0
  389. {invenio-vocabularies-4.4.0 → invenio-vocabularies-4.5.0}/tests/mock_module/mappings/v6/records/record-v1.0.0.json +0 -0
  390. {invenio-vocabularies-4.4.0 → invenio-vocabularies-4.5.0}/tests/mock_module/mappings/v7/__init__.py +0 -0
  391. {invenio-vocabularies-4.4.0 → invenio-vocabularies-4.5.0}/tests/mock_module/mappings/v7/records/record-v1.0.0.json +0 -0
  392. {invenio-vocabularies-4.4.0 → invenio-vocabularies-4.5.0}/tests/mock_module/models.py +0 -0
  393. {invenio-vocabularies-4.4.0 → invenio-vocabularies-4.5.0}/tests/records/conftest.py +0 -0
  394. {invenio-vocabularies-4.4.0 → invenio-vocabularies-4.5.0}/tests/records/test_api.py +0 -0
  395. {invenio-vocabularies-4.4.0 → invenio-vocabularies-4.5.0}/tests/records/test_jsonschema.py +0 -0
  396. {invenio-vocabularies-4.4.0 → invenio-vocabularies-4.5.0}/tests/records/test_models.py +0 -0
  397. {invenio-vocabularies-4.4.0 → invenio-vocabularies-4.5.0}/tests/records/test_relationship.py +0 -0
  398. {invenio-vocabularies-4.4.0 → invenio-vocabularies-4.5.0}/tests/resources/conftest.py +0 -0
  399. {invenio-vocabularies-4.4.0 → invenio-vocabularies-4.5.0}/tests/resources/test_resources_get.py +0 -0
  400. {invenio-vocabularies-4.4.0 → invenio-vocabularies-4.5.0}/tests/resources/test_resources_l10n.py +0 -0
  401. {invenio-vocabularies-4.4.0 → invenio-vocabularies-4.5.0}/tests/resources/test_resources_search.py +0 -0
  402. {invenio-vocabularies-4.4.0 → invenio-vocabularies-4.5.0}/tests/resources/test_tasks_resources.py +0 -0
  403. {invenio-vocabularies-4.4.0 → invenio-vocabularies-4.5.0}/tests/services/conftest.py +0 -0
  404. {invenio-vocabularies-4.4.0 → invenio-vocabularies-4.5.0}/tests/services/test_labels.py +0 -0
  405. {invenio-vocabularies-4.4.0 → invenio-vocabularies-4.5.0}/tests/services/test_permissions.py +0 -0
  406. {invenio-vocabularies-4.4.0 → invenio-vocabularies-4.5.0}/tests/services/test_schema.py +0 -0
  407. {invenio-vocabularies-4.4.0 → invenio-vocabularies-4.5.0}/tests/services/test_service.py +0 -0
  408. {invenio-vocabularies-4.4.0 → invenio-vocabularies-4.5.0}/tests/test_alembic.py +0 -0
  409. {invenio-vocabularies-4.4.0 → invenio-vocabularies-4.5.0}/tests/test_cli.py +0 -0
  410. {invenio-vocabularies-4.4.0 → invenio-vocabularies-4.5.0}/tests/test_factory.py +0 -0
  411. {invenio-vocabularies-4.4.0 → invenio-vocabularies-4.5.0}/tests/test_invenio_vocabularies.py +0 -0
@@ -8,6 +8,12 @@
8
8
  Changes
9
9
  =======
10
10
 
11
+ Version v4.5.0 (released 2024-08-21)
12
+
13
+ - ror: fix dump modified date comparison
14
+ - subjects: mesh: add mesh subject datastreams
15
+ - change schema of subject: add text and synonyms switch to datastreams
16
+
11
17
  Version v4.4.0 (released 2024-08-09)
12
18
 
13
19
  - services: use and adjust vnd.inveniordm.v1+json http accept header
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.1
2
2
  Name: invenio-vocabularies
3
- Version: 4.4.0
3
+ Version: 4.5.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,12 @@ Description: ..
50
50
  Changes
51
51
  =======
52
52
 
53
+ Version v4.5.0 (released 2024-08-21)
54
+
55
+ - ror: fix dump modified date comparison
56
+ - subjects: mesh: add mesh subject datastreams
57
+ - change schema of subject: add text and synonyms switch to datastreams
58
+
53
59
  Version v4.4.0 (released 2024-08-09)
54
60
 
55
61
  - services: use and adjust vnd.inveniordm.v1+json http accept header
@@ -10,6 +10,6 @@
10
10
 
11
11
  from .ext import InvenioVocabularies
12
12
 
13
- __version__ = "4.4.0"
13
+ __version__ = "4.5.0"
14
14
 
15
15
  __all__ = ("__version__", "InvenioVocabularies")
@@ -13,7 +13,6 @@
13
13
  "coveralls": "^3.0.0",
14
14
  "enzyme": "^3.10.0",
15
15
  "enzyme-adapter-react-16": "^1.15.0",
16
- "enzyme-to-json": "^3.4.0",
17
16
  "expect": "^26.0.0",
18
17
  "lodash": "^4.17.0",
19
18
  "luxon": "^1.23.0",
@@ -22,10 +21,5 @@
22
21
  "react-scripts": "^5.0.1",
23
22
  "semantic-ui-react": "^2.1.0",
24
23
  "react-overridable": "^0.0.3"
25
- },
26
- "jest": {
27
- "snapshotSerializers": [
28
- "enzyme-to-json/serializer"
29
- ]
30
24
  }
31
25
  }
@@ -2,6 +2,7 @@
2
2
  #
3
3
  # Copyright (C) 2020-2024 CERN.
4
4
  # Copyright (C) 2021 Northwestern University.
5
+ # Copyright (C) 2024 University of Münster.
5
6
  #
6
7
  # Invenio-Vocabularies is free software; you can redistribute it and/or
7
8
  # modify it under the terms of the MIT License; see LICENSE file for more
@@ -104,7 +105,11 @@ VOCABULARIES_NAMES_SCHEMES = {
104
105
  }
105
106
  """Names allowed identifier schemes."""
106
107
 
107
- # configure CUSTOM_VOCABULARY_TYPES to differentiate output. Is used in VocabulariesServiceConfig
108
+ VOCABULARIES_SUBJECTS_SCHEMES = {
109
+ "gnd": {"label": _("GND"), "validator": idutils.is_gnd, "datacite": "GND"},
110
+ }
111
+ """Subjects allowed identifier schemes."""
112
+
108
113
  VOCABULARIES_CUSTOM_VOCABULARY_TYPES = [
109
114
  "names",
110
115
  "affiliations",
@@ -112,6 +117,7 @@ VOCABULARIES_CUSTOM_VOCABULARY_TYPES = [
112
117
  "funders",
113
118
  "subjects",
114
119
  ]
120
+ """List of custom vocabulary types."""
115
121
 
116
122
  VOCABULARIES_DATASTREAM_READERS = {
117
123
  "csv": CSVReader,
@@ -10,8 +10,8 @@
10
10
  """ROR-related Datastreams Readers/Writers/Transformers module."""
11
11
 
12
12
  import io
13
- from datetime import datetime
14
13
 
14
+ import arrow
15
15
  import requests
16
16
  from idutils import normalize_ror
17
17
 
@@ -33,6 +33,26 @@ class RORHTTPReader(BaseReader):
33
33
  "RORHTTPReader downloads one file and therefore does not iterate through items"
34
34
  )
35
35
 
36
+ def _get_last_dump_date(self, linksets):
37
+ """Get the last dump date."""
38
+ for linkset in linksets:
39
+ metadata_formats = linkset.get("describedby", [])
40
+ for format_link in metadata_formats:
41
+ if format_link.get("type") == "application/ld+json":
42
+ json_ld_reponse = requests.get(
43
+ format_link["href"],
44
+ headers={"Accept": format_link["type"]},
45
+ )
46
+ json_ld_reponse.raise_for_status()
47
+ json_ld_data = json_ld_reponse.json()
48
+
49
+ last_dump_date = arrow.get(json_ld_data["dateCreated"])
50
+ return last_dump_date
51
+ else:
52
+ raise ReaderError(
53
+ "Couldn't find JSON-LD in publisher's linkset to determine last dump date."
54
+ )
55
+
36
56
  def read(self, item=None, *args, **kwargs):
37
57
  """Reads the latest ROR data dump ZIP file from Zenodo and yields an in-memory binary stream of it."""
38
58
  if item:
@@ -54,39 +74,21 @@ class RORHTTPReader(BaseReader):
54
74
  headers={"Accept": "application/linkset+json"},
55
75
  )
56
76
  linkset_response.raise_for_status()
77
+ linksets = linkset_response.json()["linkset"]
57
78
 
58
79
  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.")
75
-
76
- # Extract the Landing page Link Set Object located as the first (index 0) item.
77
- landing_page_linkset = linkset_response.json()["linkset"][0]
78
-
79
- # Extract the URL of the only ZIP file linked to the record.
80
- landing_page_zip_items = [
81
- item
82
- for item in landing_page_linkset["item"]
83
- if item["type"] == "application/zip"
84
- ]
85
- if len(landing_page_zip_items) != 1:
86
- raise ReaderError(
87
- f"Expected 1 ZIP item but got {len(landing_page_zip_items)}"
88
- )
89
- file_url = landing_page_zip_items[0]["href"]
80
+ last_dump_date = self._get_last_dump_date(linksets)
81
+ if last_dump_date < arrow.get(self._since):
82
+ return
83
+
84
+ for linkset in linksets:
85
+ items = linkset.get("item", [])
86
+ zip_files = [item for item in items if item["type"] == "application/zip"]
87
+ if len(zip_files) == 1:
88
+ file_url = zip_files[0]["href"]
89
+ break
90
+ if len(zip_files) > 1:
91
+ raise ReaderError(f"Expected 1 ZIP item but got {len(zip_files)}")
90
92
 
91
93
  # Download the ZIP file and fully load the response bytes content in memory.
92
94
  # The bytes content are then wrapped by a BytesIO to be file-like object (as required by `zipfile.ZipFile`).
@@ -1,7 +1,8 @@
1
1
  # -*- coding: utf-8 -*-
2
2
  #
3
- # Copyright (C) 2021 CERN.
3
+ # Copyright (C) 2021-2024 CERN.
4
4
  # Copyright (C) 2021 Northwestern University.
5
+ # Copyright (C) 2024 University of Münster.
5
6
  #
6
7
  # Invenio-Vocabularies is free software; you can redistribute it and/or
7
8
  # modify it under the terms of the MIT License; see LICENSE file for more
@@ -9,13 +10,19 @@
9
10
 
10
11
  """Subjects configuration."""
11
12
 
13
+ from flask import current_app
12
14
  from invenio_i18n import lazy_gettext as _
13
15
  from invenio_records_resources.services import SearchOptions
14
16
  from invenio_records_resources.services.records.components import DataComponent
17
+ from werkzeug.local import LocalProxy
15
18
 
16
19
  from ...services.components import PIDComponent
17
20
  from ...services.querystr import FilteredSuggestQueryParser
18
21
 
22
+ subject_schemes = LocalProxy(
23
+ lambda: current_app.config["VOCABULARIES_SUBJECTS_SCHEMES"]
24
+ )
25
+
19
26
 
20
27
  class SubjectsSearchOptions(SearchOptions):
21
28
  """Search options."""
@@ -23,9 +30,8 @@ class SubjectsSearchOptions(SearchOptions):
23
30
  suggest_parser_cls = FilteredSuggestQueryParser.factory(
24
31
  filter_field="scheme",
25
32
  fields=[ # suggest fields
26
- "subject^100",
27
- "subject._2gram",
28
- "subject._3gram",
33
+ "title.*^100",
34
+ "synonyms^20",
29
35
  ],
30
36
  )
31
37
 
@@ -0,0 +1,55 @@
1
+ # -*- coding: utf-8 -*-
2
+ #
3
+ # Copyright (C) 2024 University of Münster.
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
+ """Names datastreams, transformers, writers and readers."""
10
+
11
+ from invenio_access.permissions import system_identity
12
+ from invenio_i18n import lazy_gettext as _
13
+
14
+ from ...datastreams.writers import ServiceWriter
15
+ from .mesh.datastreams import VOCABULARIES_DATASTREAM_READERS as mesh_readers
16
+ from .mesh.datastreams import VOCABULARIES_DATASTREAM_TRANSFORMERS as mesh_transformers
17
+ from .mesh.datastreams import VOCABULARIES_DATASTREAM_WRITERS as mesh_writers
18
+
19
+
20
+ class SubjectsServiceWriter(ServiceWriter):
21
+ """Subjects Service Writer."""
22
+
23
+ def __init__(self, *args, **kwargs):
24
+ """Constructor."""
25
+ service_or_name = kwargs.pop("service_or_name", "subjects")
26
+ super().__init__(service_or_name=service_or_name, *args, **kwargs)
27
+
28
+ def _entry_id(self, entry):
29
+ """Get the id from an entry."""
30
+ return entry["id"]
31
+
32
+
33
+ VOCABULARIES_DATASTREAM_READERS = {**mesh_readers}
34
+ """Subjects Data Streams readers."""
35
+
36
+ VOCABULARIES_DATASTREAM_TRANSFORMERS = {**mesh_transformers}
37
+ """Subjects Data Streams transformers."""
38
+
39
+ VOCABULARIES_DATASTREAM_WRITERS = {
40
+ "subjects-service": SubjectsServiceWriter,
41
+ **mesh_writers,
42
+ }
43
+ """Subjects Data Streams writers."""
44
+
45
+ DATASTREAM_CONFIG = {
46
+ "readers": [
47
+ {"type": "yaml"},
48
+ ],
49
+ "writers": [
50
+ {
51
+ "type": "subjects-service",
52
+ }
53
+ ],
54
+ }
55
+ """Data Stream configuration."""
@@ -25,6 +25,18 @@
25
25
  "subject": {
26
26
  "description": "Human readable label.",
27
27
  "type": "string"
28
+ },
29
+ "title": {
30
+ "description": "Human readable label in different languages.",
31
+ "$ref": "local://vocabularies/definitions-v1.0.0.json#/title"
32
+ },
33
+ "synonyms": {
34
+ "description": "Synonyms of the subject label.",
35
+ "type": "array",
36
+ "items": {
37
+ "type": "string"
38
+ },
39
+ "uniqueItems": true
28
40
  }
29
41
  }
30
42
  }
@@ -1,5 +1,16 @@
1
1
  {
2
2
  "mappings": {
3
+ "dynamic_templates": [
4
+ {
5
+ "i18n_title": {
6
+ "path_match": "title.*",
7
+ "match_mapping_type": "string",
8
+ "mapping": {
9
+ "type": "search_as_you_type"
10
+ }
11
+ }
12
+ }
13
+ ],
3
14
  "dynamic": "strict",
4
15
  "properties": {
5
16
  "$schema": {
@@ -56,6 +67,13 @@
56
67
  }
57
68
  }
58
69
  },
70
+ "title": {
71
+ "type": "object",
72
+ "dynamic": "true"
73
+ },
74
+ "synonyms": {
75
+ "type": "text"
76
+ },
59
77
  "tags": {
60
78
  "type": "keyword"
61
79
  }
@@ -0,0 +1,82 @@
1
+ {
2
+ "mappings": {
3
+ "dynamic_templates": [
4
+ {
5
+ "i18n_title": {
6
+ "path_match": "title.*",
7
+ "match_mapping_type": "string",
8
+ "mapping": {
9
+ "type": "search_as_you_type"
10
+ }
11
+ }
12
+ }
13
+ ],
14
+ "dynamic": "strict",
15
+ "properties": {
16
+ "$schema": {
17
+ "type": "keyword",
18
+ "index": "false"
19
+ },
20
+ "created": {
21
+ "type": "date"
22
+ },
23
+ "updated": {
24
+ "type": "date"
25
+ },
26
+ "indexed_at": {
27
+ "type": "date"
28
+ },
29
+ "uuid": {
30
+ "type": "keyword"
31
+ },
32
+ "version_id": {
33
+ "type": "integer"
34
+ },
35
+ "id": {
36
+ "type": "keyword"
37
+ },
38
+ "scheme": {
39
+ "type": "keyword"
40
+ },
41
+ "subject": {
42
+ "type": "text",
43
+ "copy_to": "subject_sort",
44
+ "fields": {
45
+ "suggest": {
46
+ "type": "search_as_you_type"
47
+ }
48
+ }
49
+ },
50
+ "subject_sort": {
51
+ "type": "keyword"
52
+ },
53
+ "pid": {
54
+ "type": "object",
55
+ "properties": {
56
+ "pk": {
57
+ "type": "integer"
58
+ },
59
+ "pid_type": {
60
+ "type": "keyword"
61
+ },
62
+ "obj_type": {
63
+ "type": "keyword"
64
+ },
65
+ "status": {
66
+ "type": "keyword"
67
+ }
68
+ }
69
+ },
70
+ "title": {
71
+ "type": "object",
72
+ "dynamic": "true"
73
+ },
74
+ "synonyms": {
75
+ "type": "text"
76
+ },
77
+ "tags": {
78
+ "type": "keyword"
79
+ }
80
+ }
81
+ }
82
+ }
@@ -0,0 +1,82 @@
1
+ {
2
+ "mappings": {
3
+ "dynamic_templates": [
4
+ {
5
+ "i18n_title": {
6
+ "path_match": "title.*",
7
+ "match_mapping_type": "string",
8
+ "mapping": {
9
+ "type": "search_as_you_type"
10
+ }
11
+ }
12
+ }
13
+ ],
14
+ "dynamic": "strict",
15
+ "properties": {
16
+ "$schema": {
17
+ "type": "keyword",
18
+ "index": "false"
19
+ },
20
+ "created": {
21
+ "type": "date"
22
+ },
23
+ "updated": {
24
+ "type": "date"
25
+ },
26
+ "indexed_at": {
27
+ "type": "date"
28
+ },
29
+ "uuid": {
30
+ "type": "keyword"
31
+ },
32
+ "version_id": {
33
+ "type": "integer"
34
+ },
35
+ "id": {
36
+ "type": "keyword"
37
+ },
38
+ "scheme": {
39
+ "type": "keyword"
40
+ },
41
+ "subject": {
42
+ "type": "text",
43
+ "copy_to": "subject_sort",
44
+ "fields": {
45
+ "suggest": {
46
+ "type": "search_as_you_type"
47
+ }
48
+ }
49
+ },
50
+ "subject_sort": {
51
+ "type": "keyword"
52
+ },
53
+ "pid": {
54
+ "type": "object",
55
+ "properties": {
56
+ "pk": {
57
+ "type": "integer"
58
+ },
59
+ "pid_type": {
60
+ "type": "keyword"
61
+ },
62
+ "obj_type": {
63
+ "type": "keyword"
64
+ },
65
+ "status": {
66
+ "type": "keyword"
67
+ }
68
+ }
69
+ },
70
+ "title": {
71
+ "type": "object",
72
+ "dynamic": "true"
73
+ },
74
+ "synonyms": {
75
+ "type": "text"
76
+ },
77
+ "tags": {
78
+ "type": "keyword"
79
+ }
80
+ }
81
+ }
82
+ }
@@ -0,0 +1,43 @@
1
+ # -*- coding: utf-8 -*-
2
+ #
3
+ # Copyright (C) 2022-2024 CERN.
4
+ # Copyright (C) 2024 California Institute of Technology.
5
+ #
6
+ # Invenio-Vocabularies is free software; you can redistribute it and/or
7
+ # modify it under the terms of the MIT License; see LICENSE file for more
8
+ # details.
9
+
10
+ """MeSH subjects datastreams, transformers, writers and readers."""
11
+
12
+ from invenio_vocabularies.datastreams.transformers import (
13
+ BaseTransformer,
14
+ TransformerError,
15
+ )
16
+
17
+
18
+ class MeshSubjectsTransformer(BaseTransformer):
19
+ """MeSH subjects Transformer."""
20
+
21
+ def apply(self, stream_entry, *args, **kwargs):
22
+ """Apply transformation on steam entry."""
23
+ entry_data = stream_entry.entry
24
+
25
+ # ID in MeSH data is the URL, ex. https://id.nlm.nih.gov/mesh/D000001
26
+ # We just want to use the ID prefixed by "mesh:""
27
+ try:
28
+ mesh_id = entry_data["id"].split("/")[-1]
29
+ except Exception:
30
+ raise TransformerError("Not a valid MeSH ID.")
31
+
32
+ entry_data["id"] = "mesh:" + mesh_id
33
+ return stream_entry
34
+
35
+
36
+ VOCABULARIES_DATASTREAM_READERS = {}
37
+ """MeSH datastream readers."""
38
+
39
+ VOCABULARIES_DATASTREAM_WRITERS = {}
40
+ """MeSH subject datastream writers."""
41
+
42
+ VOCABULARIES_DATASTREAM_TRANSFORMERS = {"mesh-subjects": MeshSubjectsTransformer}
43
+ """MeSH subjects datastream transformers."""
@@ -1,7 +1,8 @@
1
1
  # -*- coding: utf-8 -*-
2
2
  #
3
3
  # Copyright (C) 2021 Northwestern University.
4
- # Copyright (C) 2021-2022 CERN.
4
+ # Copyright (C) 2021-2024 CERN.
5
+ # Copyright (C) 2024 University of Münster.
5
6
  #
6
7
  # Invenio-Vocabularies is free software; you can redistribute it and/or
7
8
  # modify it under the terms of the MIT License; see LICENSE file for more
@@ -9,10 +10,15 @@
9
10
 
10
11
  """Subjects schema."""
11
12
 
12
- from invenio_i18n import lazy_gettext as _
13
+ from invenio_i18n import get_locale
14
+ from marshmallow import fields, pre_load
13
15
  from marshmallow_utils.fields import SanitizedUnicode
14
16
 
15
- from ...services.schema import BaseVocabularySchema, ContribVocabularyRelationSchema
17
+ from ...services.schema import (
18
+ BaseVocabularySchema,
19
+ ContribVocabularyRelationSchema,
20
+ i18n_strings,
21
+ )
16
22
 
17
23
 
18
24
  class SubjectSchema(BaseVocabularySchema):
@@ -24,6 +30,16 @@ class SubjectSchema(BaseVocabularySchema):
24
30
  id = SanitizedUnicode(required=True)
25
31
  scheme = SanitizedUnicode(required=True)
26
32
  subject = SanitizedUnicode(required=True)
33
+ title = i18n_strings
34
+ synonyms = fields.List(SanitizedUnicode())
35
+
36
+ @pre_load
37
+ def add_subject_from_title(self, data, **kwargs):
38
+ """Add subject from title if not present."""
39
+ locale = get_locale().language
40
+ if "subject" not in data:
41
+ data["subject"] = data["title"].get(locale) or data["title"].values()[0]
42
+ return data
27
43
 
28
44
 
29
45
  class SubjectRelationSchema(ContribVocabularyRelationSchema):
@@ -33,3 +49,5 @@ class SubjectRelationSchema(ContribVocabularyRelationSchema):
33
49
  parent_field_name = "subjects"
34
50
  subject = SanitizedUnicode()
35
51
  scheme = SanitizedUnicode()
52
+ title = i18n_strings
53
+ synonyms = fields.List(SanitizedUnicode())
@@ -19,6 +19,7 @@ from .contrib.affiliations.datastreams import (
19
19
  from .contrib.awards.datastreams import DATASTREAM_CONFIG as awards_ds_config
20
20
  from .contrib.funders.datastreams import DATASTREAM_CONFIG as funders_ds_config
21
21
  from .contrib.names.datastreams import DATASTREAM_CONFIG as names_ds_config
22
+ from .contrib.subjects.datastreams import DATASTREAM_CONFIG as subjects_ds_config
22
23
 
23
24
 
24
25
  class VocabularyConfig:
@@ -61,6 +62,17 @@ class FundersVocabularyConfig(VocabularyConfig):
61
62
  raise NotImplementedError("Service not implemented for Funders")
62
63
 
63
64
 
65
+ class SubjectsVocabularyConfig(VocabularyConfig):
66
+ """Subjects Vocabulary Config."""
67
+
68
+ config = subjects_ds_config
69
+ vocabulary_name = "subjects"
70
+
71
+ def get_service(self):
72
+ """Get the service for the vocabulary."""
73
+ raise NotImplementedError("Service not implemented for Subjects")
74
+
75
+
64
76
  class AwardsVocabularyConfig(VocabularyConfig):
65
77
  """Awards Vocabulary Config."""
66
78
 
@@ -90,5 +102,6 @@ def get_vocabulary_config(vocabulary):
90
102
  "funders": FundersVocabularyConfig,
91
103
  "awards": AwardsVocabularyConfig,
92
104
  "affiliations": AffiliationsVocabularyConfig,
105
+ "subjects": SubjectsVocabularyConfig,
93
106
  }
94
107
  return vocab_config.get(vocabulary, VocabularyConfig)()
@@ -1,7 +1,7 @@
1
1
  # -*- coding: utf-8 -*-
2
2
  #
3
3
  # Copyright (C) 2024 CERN.
4
- # Copyright (C) 2024 Uni Münster.
4
+ # Copyright (C) 2024 University of Münster.
5
5
  #
6
6
  # Invenio-Vocabularies is free software; you can redistribute it and/or
7
7
  # modify it under the terms of the MIT License; see LICENSE file for more
@@ -2,7 +2,7 @@
2
2
  #
3
3
  # Copyright (C) 2024 CERN.
4
4
  # Copyright (C) 2021 Northwestern University.
5
- # Copyright (C) 2024 Uni Münster.
5
+ # Copyright (C) 2024 University of Münster.
6
6
  #
7
7
  # Invenio-Vocabularies is free software; you can redistribute it and/or
8
8
  # modify it under the terms of the MIT License; see LICENSE file for more