invenio-vocabularies 4.3.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.3.0 → invenio-vocabularies-4.5.0}/CHANGES.rst +10 -0
  2. {invenio-vocabularies-4.3.0/invenio_vocabularies.egg-info → invenio-vocabularies-4.5.0}/PKG-INFO +11 -1
  3. {invenio-vocabularies-4.3.0 → invenio-vocabularies-4.5.0}/invenio_vocabularies/__init__.py +1 -1
  4. {invenio-vocabularies-4.3.0 → invenio-vocabularies-4.5.0}/invenio_vocabularies/assets/semantic-ui/js/invenio_vocabularies/package.json +0 -6
  5. {invenio-vocabularies-4.3.0 → invenio-vocabularies-4.5.0}/invenio_vocabularies/config.py +7 -1
  6. {invenio-vocabularies-4.3.0 → invenio-vocabularies-4.5.0}/invenio_vocabularies/contrib/affiliations/affiliations.py +10 -0
  7. {invenio-vocabularies-4.3.0 → invenio-vocabularies-4.5.0}/invenio_vocabularies/contrib/common/ror/datastreams.py +34 -32
  8. {invenio-vocabularies-4.3.0 → invenio-vocabularies-4.5.0}/invenio_vocabularies/contrib/names/names.py +10 -0
  9. {invenio-vocabularies-4.3.0 → invenio-vocabularies-4.5.0}/invenio_vocabularies/contrib/subjects/config.py +10 -4
  10. invenio-vocabularies-4.5.0/invenio_vocabularies/contrib/subjects/datastreams.py +55 -0
  11. {invenio-vocabularies-4.3.0 → invenio-vocabularies-4.5.0}/invenio_vocabularies/contrib/subjects/jsonschemas/subjects/subject-v1.0.0.json +12 -0
  12. {invenio-vocabularies-4.3.0 → invenio-vocabularies-4.5.0}/invenio_vocabularies/contrib/subjects/mappings/os-v1/subjects/subject-v1.0.0.json +18 -0
  13. invenio-vocabularies-4.5.0/invenio_vocabularies/contrib/subjects/mappings/os-v2/subjects/subject-v1.0.0.json +82 -0
  14. invenio-vocabularies-4.5.0/invenio_vocabularies/contrib/subjects/mappings/v7/subjects/subject-v1.0.0.json +82 -0
  15. invenio-vocabularies-4.5.0/invenio_vocabularies/contrib/subjects/mesh/datastreams.py +43 -0
  16. {invenio-vocabularies-4.3.0 → invenio-vocabularies-4.5.0}/invenio_vocabularies/contrib/subjects/schema.py +21 -3
  17. {invenio-vocabularies-4.3.0 → invenio-vocabularies-4.5.0}/invenio_vocabularies/contrib/subjects/subjects.py +10 -0
  18. {invenio-vocabularies-4.3.0 → invenio-vocabularies-4.5.0}/invenio_vocabularies/factories.py +13 -0
  19. {invenio-vocabularies-4.3.0 → invenio-vocabularies-4.5.0}/invenio_vocabularies/services/config.py +1 -1
  20. {invenio-vocabularies-4.3.0 → invenio-vocabularies-4.5.0}/invenio_vocabularies/services/service.py +1 -1
  21. invenio-vocabularies-4.5.0/invenio_vocabularies/translations/messages.pot +185 -0
  22. {invenio-vocabularies-4.3.0 → invenio-vocabularies-4.5.0}/invenio_vocabularies/webpack.py +1 -1
  23. {invenio-vocabularies-4.3.0 → invenio-vocabularies-4.5.0/invenio_vocabularies.egg-info}/PKG-INFO +11 -1
  24. {invenio-vocabularies-4.3.0 → invenio-vocabularies-4.5.0}/invenio_vocabularies.egg-info/SOURCES.txt +3 -0
  25. {invenio-vocabularies-4.3.0 → invenio-vocabularies-4.5.0}/tests/contrib/common/ror/test_ror_datastreams.py +22 -52
  26. invenio-vocabularies-4.5.0/tests/contrib/subjects/conftest.py +56 -0
  27. {invenio-vocabularies-4.3.0 → invenio-vocabularies-4.5.0}/tests/contrib/subjects/test_subjects_api.py +3 -3
  28. invenio-vocabularies-4.5.0/tests/contrib/subjects/test_subjects_datastreams.py +94 -0
  29. {invenio-vocabularies-4.3.0 → invenio-vocabularies-4.5.0}/tests/contrib/subjects/test_subjects_jsonschema.py +9 -5
  30. {invenio-vocabularies-4.3.0 → invenio-vocabularies-4.5.0}/tests/contrib/subjects/test_subjects_resource.py +18 -3
  31. invenio-vocabularies-4.5.0/tests/contrib/subjects/test_subjects_schema.py +37 -0
  32. {invenio-vocabularies-4.3.0 → invenio-vocabularies-4.5.0}/tests/contrib/subjects/test_subjects_service.py +9 -7
  33. invenio-vocabularies-4.3.0/invenio_vocabularies/contrib/subjects/mappings/os-v2/subjects/subject-v1.0.0.json +0 -64
  34. invenio-vocabularies-4.3.0/invenio_vocabularies/contrib/subjects/mappings/v7/subjects/subject-v1.0.0.json +0 -64
  35. invenio-vocabularies-4.3.0/invenio_vocabularies/translations/messages.pot +0 -138
  36. invenio-vocabularies-4.3.0/tests/contrib/subjects/conftest.py +0 -33
  37. invenio-vocabularies-4.3.0/tests/contrib/subjects/test_subjects_schema.py +0 -69
  38. {invenio-vocabularies-4.3.0 → invenio-vocabularies-4.5.0}/.dockerignore +0 -0
  39. {invenio-vocabularies-4.3.0 → invenio-vocabularies-4.5.0}/.editorconfig +0 -0
  40. {invenio-vocabularies-4.3.0 → invenio-vocabularies-4.5.0}/.git-blame-ignore-revs +0 -0
  41. {invenio-vocabularies-4.3.0 → invenio-vocabularies-4.5.0}/.github/workflows/i18n-pull.yml +0 -0
  42. {invenio-vocabularies-4.3.0 → invenio-vocabularies-4.5.0}/.github/workflows/i18n-push.yml +0 -0
  43. {invenio-vocabularies-4.3.0 → invenio-vocabularies-4.5.0}/.github/workflows/pypi-publish.yml +0 -0
  44. {invenio-vocabularies-4.3.0 → invenio-vocabularies-4.5.0}/.github/workflows/tests.yml +0 -0
  45. {invenio-vocabularies-4.3.0 → invenio-vocabularies-4.5.0}/.tx/config +0 -0
  46. {invenio-vocabularies-4.3.0 → invenio-vocabularies-4.5.0}/AUTHORS.rst +0 -0
  47. {invenio-vocabularies-4.3.0 → invenio-vocabularies-4.5.0}/CONTRIBUTING.rst +0 -0
  48. {invenio-vocabularies-4.3.0 → invenio-vocabularies-4.5.0}/INSTALL.rst +0 -0
  49. {invenio-vocabularies-4.3.0 → invenio-vocabularies-4.5.0}/LICENSE +0 -0
  50. {invenio-vocabularies-4.3.0 → invenio-vocabularies-4.5.0}/MANIFEST.in +0 -0
  51. {invenio-vocabularies-4.3.0 → invenio-vocabularies-4.5.0}/README.rst +0 -0
  52. {invenio-vocabularies-4.3.0 → invenio-vocabularies-4.5.0}/babel.ini +0 -0
  53. {invenio-vocabularies-4.3.0 → invenio-vocabularies-4.5.0}/docs/Makefile +0 -0
  54. {invenio-vocabularies-4.3.0 → invenio-vocabularies-4.5.0}/docs/api.rst +0 -0
  55. {invenio-vocabularies-4.3.0 → invenio-vocabularies-4.5.0}/docs/authors.rst +0 -0
  56. {invenio-vocabularies-4.3.0 → invenio-vocabularies-4.5.0}/docs/changes.rst +0 -0
  57. {invenio-vocabularies-4.3.0 → invenio-vocabularies-4.5.0}/docs/conf.py +0 -0
  58. {invenio-vocabularies-4.3.0 → invenio-vocabularies-4.5.0}/docs/configuration.rst +0 -0
  59. {invenio-vocabularies-4.3.0 → invenio-vocabularies-4.5.0}/docs/contributing.rst +0 -0
  60. {invenio-vocabularies-4.3.0 → invenio-vocabularies-4.5.0}/docs/index.rst +0 -0
  61. {invenio-vocabularies-4.3.0 → invenio-vocabularies-4.5.0}/docs/installation.rst +0 -0
  62. {invenio-vocabularies-4.3.0 → invenio-vocabularies-4.5.0}/docs/license.rst +0 -0
  63. {invenio-vocabularies-4.3.0 → invenio-vocabularies-4.5.0}/docs/make.bat +0 -0
  64. {invenio-vocabularies-4.3.0 → invenio-vocabularies-4.5.0}/docs/requirements.txt +0 -0
  65. {invenio-vocabularies-4.3.0 → invenio-vocabularies-4.5.0}/docs/usage.rst +0 -0
  66. {invenio-vocabularies-4.3.0 → invenio-vocabularies-4.5.0}/gen-migration.sh +0 -0
  67. {invenio-vocabularies-4.3.0 → invenio-vocabularies-4.5.0}/invenio_vocabularies/administration/__init__.py +0 -0
  68. {invenio-vocabularies-4.3.0 → invenio-vocabularies-4.5.0}/invenio_vocabularies/administration/views/__init__.py +0 -0
  69. {invenio-vocabularies-4.3.0 → invenio-vocabularies-4.5.0}/invenio_vocabularies/administration/views/vocabularies.py +0 -0
  70. {invenio-vocabularies-4.3.0 → invenio-vocabularies-4.5.0}/invenio_vocabularies/alembic/17c703ce1eb7_create_names_table.py +0 -0
  71. {invenio-vocabularies-4.3.0 → invenio-vocabularies-4.5.0}/invenio_vocabularies/alembic/4a9a4fd235f8_create_vocabulary_schemes.py +0 -0
  72. {invenio-vocabularies-4.3.0 → invenio-vocabularies-4.5.0}/invenio_vocabularies/alembic/4f365fced43f_create_vocabularies_tables.py +0 -0
  73. {invenio-vocabularies-4.3.0 → invenio-vocabularies-4.5.0}/invenio_vocabularies/alembic/55a700f897b6_add_names_and_afiliations_pid_column.py +0 -0
  74. {invenio-vocabularies-4.3.0 → invenio-vocabularies-4.5.0}/invenio_vocabularies/alembic/6312f33645c1_create_affiliations_table.py +0 -0
  75. {invenio-vocabularies-4.3.0 → invenio-vocabularies-4.5.0}/invenio_vocabularies/alembic/676dd587542d_create_funders_vocabulary_table.py +0 -0
  76. {invenio-vocabularies-4.3.0 → invenio-vocabularies-4.5.0}/invenio_vocabularies/alembic/8ff82dfb0be8_create_vocabularies_branch.py +0 -0
  77. {invenio-vocabularies-4.3.0 → invenio-vocabularies-4.5.0}/invenio_vocabularies/alembic/__init__.py +0 -0
  78. {invenio-vocabularies-4.3.0 → invenio-vocabularies-4.5.0}/invenio_vocabularies/alembic/e1146238edd3_create_awards_table.py +0 -0
  79. {invenio-vocabularies-4.3.0 → invenio-vocabularies-4.5.0}/invenio_vocabularies/assets/semantic-ui/js/invenio_vocabularies/.eslintrc.yml +0 -0
  80. {invenio-vocabularies-4.3.0 → invenio-vocabularies-4.5.0}/invenio_vocabularies/assets/semantic-ui/js/invenio_vocabularies/.prettierrc +0 -0
  81. {invenio-vocabularies-4.3.0 → invenio-vocabularies-4.5.0}/invenio_vocabularies/assets/semantic-ui/js/invenio_vocabularies/index.js +0 -0
  82. {invenio-vocabularies-4.3.0 → invenio-vocabularies-4.5.0}/invenio_vocabularies/assets/semantic-ui/js/invenio_vocabularies/src/contrib/forms/Funding/AwardResults.js +0 -0
  83. {invenio-vocabularies-4.3.0 → invenio-vocabularies-4.5.0}/invenio_vocabularies/assets/semantic-ui/js/invenio_vocabularies/src/contrib/forms/Funding/CustomAwardForm.js +0 -0
  84. {invenio-vocabularies-4.3.0 → invenio-vocabularies-4.5.0}/invenio_vocabularies/assets/semantic-ui/js/invenio_vocabularies/src/contrib/forms/Funding/FunderDropdown.js +0 -0
  85. {invenio-vocabularies-4.3.0 → invenio-vocabularies-4.5.0}/invenio_vocabularies/assets/semantic-ui/js/invenio_vocabularies/src/contrib/forms/Funding/FundingField.js +0 -0
  86. {invenio-vocabularies-4.3.0 → invenio-vocabularies-4.5.0}/invenio_vocabularies/assets/semantic-ui/js/invenio_vocabularies/src/contrib/forms/Funding/FundingField.test.js +0 -0
  87. {invenio-vocabularies-4.3.0 → invenio-vocabularies-4.5.0}/invenio_vocabularies/assets/semantic-ui/js/invenio_vocabularies/src/contrib/forms/Funding/FundingFieldItem.js +0 -0
  88. {invenio-vocabularies-4.3.0 → invenio-vocabularies-4.5.0}/invenio_vocabularies/assets/semantic-ui/js/invenio_vocabularies/src/contrib/forms/Funding/FundingModal.js +0 -0
  89. {invenio-vocabularies-4.3.0 → invenio-vocabularies-4.5.0}/invenio_vocabularies/assets/semantic-ui/js/invenio_vocabularies/src/contrib/forms/Funding/NoAwardResults.js +0 -0
  90. {invenio-vocabularies-4.3.0 → invenio-vocabularies-4.5.0}/invenio_vocabularies/assets/semantic-ui/js/invenio_vocabularies/src/contrib/forms/Funding/index.js +0 -0
  91. {invenio-vocabularies-4.3.0 → invenio-vocabularies-4.5.0}/invenio_vocabularies/assets/semantic-ui/js/invenio_vocabularies/src/contrib/forms/index.js +0 -0
  92. {invenio-vocabularies-4.3.0 → invenio-vocabularies-4.5.0}/invenio_vocabularies/assets/semantic-ui/js/invenio_vocabularies/src/contrib/index.js +0 -0
  93. {invenio-vocabularies-4.3.0 → invenio-vocabularies-4.5.0}/invenio_vocabularies/assets/semantic-ui/js/invenio_vocabularies/src/index.js +0 -0
  94. {invenio-vocabularies-4.3.0 → invenio-vocabularies-4.5.0}/invenio_vocabularies/assets/semantic-ui/translations/invenio_vocabularies/i18next-scanner.config.js +0 -0
  95. {invenio-vocabularies-4.3.0 → invenio-vocabularies-4.5.0}/invenio_vocabularies/assets/semantic-ui/translations/invenio_vocabularies/i18next.js +0 -0
  96. {invenio-vocabularies-4.3.0 → invenio-vocabularies-4.5.0}/invenio_vocabularies/assets/semantic-ui/translations/invenio_vocabularies/messages/index.js +0 -0
  97. {invenio-vocabularies-4.3.0 → invenio-vocabularies-4.5.0}/invenio_vocabularies/assets/semantic-ui/translations/invenio_vocabularies/package.json +0 -0
  98. {invenio-vocabularies-4.3.0 → invenio-vocabularies-4.5.0}/invenio_vocabularies/assets/semantic-ui/translations/invenio_vocabularies/scripts/compileCatalog.js +0 -0
  99. {invenio-vocabularies-4.3.0 → invenio-vocabularies-4.5.0}/invenio_vocabularies/assets/semantic-ui/translations/invenio_vocabularies/scripts/initCatalog.js +0 -0
  100. {invenio-vocabularies-4.3.0 → invenio-vocabularies-4.5.0}/invenio_vocabularies/cli.py +0 -0
  101. {invenio-vocabularies-4.3.0 → invenio-vocabularies-4.5.0}/invenio_vocabularies/contrib/__init__.py +0 -0
  102. {invenio-vocabularies-4.3.0 → invenio-vocabularies-4.5.0}/invenio_vocabularies/contrib/affiliations/__init__.py +0 -0
  103. {invenio-vocabularies-4.3.0 → invenio-vocabularies-4.5.0}/invenio_vocabularies/contrib/affiliations/api.py +0 -0
  104. {invenio-vocabularies-4.3.0 → invenio-vocabularies-4.5.0}/invenio_vocabularies/contrib/affiliations/config.py +0 -0
  105. {invenio-vocabularies-4.3.0 → invenio-vocabularies-4.5.0}/invenio_vocabularies/contrib/affiliations/datastreams.py +0 -0
  106. {invenio-vocabularies-4.3.0 → invenio-vocabularies-4.5.0}/invenio_vocabularies/contrib/affiliations/facets.py +0 -0
  107. {invenio-vocabularies-4.3.0 → invenio-vocabularies-4.5.0}/invenio_vocabularies/contrib/affiliations/jsonschemas/__init__.py +0 -0
  108. {invenio-vocabularies-4.3.0 → invenio-vocabularies-4.5.0}/invenio_vocabularies/contrib/affiliations/jsonschemas/affiliations/affiliation-v1.0.0.json +0 -0
  109. {invenio-vocabularies-4.3.0 → invenio-vocabularies-4.5.0}/invenio_vocabularies/contrib/affiliations/mappings/__init__.py +0 -0
  110. {invenio-vocabularies-4.3.0 → invenio-vocabularies-4.5.0}/invenio_vocabularies/contrib/affiliations/mappings/os-v1/__init__.py +0 -0
  111. {invenio-vocabularies-4.3.0 → invenio-vocabularies-4.5.0}/invenio_vocabularies/contrib/affiliations/mappings/os-v1/affiliations/affiliation-v1.0.0.json +0 -0
  112. {invenio-vocabularies-4.3.0 → invenio-vocabularies-4.5.0}/invenio_vocabularies/contrib/affiliations/mappings/os-v2/__init__.py +0 -0
  113. {invenio-vocabularies-4.3.0 → invenio-vocabularies-4.5.0}/invenio_vocabularies/contrib/affiliations/mappings/os-v2/affiliations/affiliation-v1.0.0.json +0 -0
  114. {invenio-vocabularies-4.3.0 → invenio-vocabularies-4.5.0}/invenio_vocabularies/contrib/affiliations/mappings/v7/__init__.py +0 -0
  115. {invenio-vocabularies-4.3.0 → invenio-vocabularies-4.5.0}/invenio_vocabularies/contrib/affiliations/mappings/v7/affiliations/affiliation-v1.0.0.json +0 -0
  116. {invenio-vocabularies-4.3.0 → invenio-vocabularies-4.5.0}/invenio_vocabularies/contrib/affiliations/models.py +0 -0
  117. {invenio-vocabularies-4.3.0 → invenio-vocabularies-4.5.0}/invenio_vocabularies/contrib/affiliations/resources.py +0 -0
  118. {invenio-vocabularies-4.3.0 → invenio-vocabularies-4.5.0}/invenio_vocabularies/contrib/affiliations/schema.py +0 -0
  119. {invenio-vocabularies-4.3.0 → invenio-vocabularies-4.5.0}/invenio_vocabularies/contrib/affiliations/services.py +0 -0
  120. {invenio-vocabularies-4.3.0 → invenio-vocabularies-4.5.0}/invenio_vocabularies/contrib/awards/__init__.py +0 -0
  121. {invenio-vocabularies-4.3.0 → invenio-vocabularies-4.5.0}/invenio_vocabularies/contrib/awards/api.py +0 -0
  122. {invenio-vocabularies-4.3.0 → invenio-vocabularies-4.5.0}/invenio_vocabularies/contrib/awards/awards.py +0 -0
  123. {invenio-vocabularies-4.3.0 → invenio-vocabularies-4.5.0}/invenio_vocabularies/contrib/awards/config.py +0 -0
  124. {invenio-vocabularies-4.3.0 → invenio-vocabularies-4.5.0}/invenio_vocabularies/contrib/awards/datastreams.py +0 -0
  125. {invenio-vocabularies-4.3.0 → invenio-vocabularies-4.5.0}/invenio_vocabularies/contrib/awards/jsonschemas/__init__.py +0 -0
  126. {invenio-vocabularies-4.3.0 → invenio-vocabularies-4.5.0}/invenio_vocabularies/contrib/awards/jsonschemas/awards/award-v1.0.0.json +0 -0
  127. {invenio-vocabularies-4.3.0 → invenio-vocabularies-4.5.0}/invenio_vocabularies/contrib/awards/mappings/__init__.py +0 -0
  128. {invenio-vocabularies-4.3.0 → invenio-vocabularies-4.5.0}/invenio_vocabularies/contrib/awards/mappings/os-v1/__init__.py +0 -0
  129. {invenio-vocabularies-4.3.0 → invenio-vocabularies-4.5.0}/invenio_vocabularies/contrib/awards/mappings/os-v1/awards/award-v1.0.0.json +0 -0
  130. {invenio-vocabularies-4.3.0 → invenio-vocabularies-4.5.0}/invenio_vocabularies/contrib/awards/mappings/os-v2/__init__.py +0 -0
  131. {invenio-vocabularies-4.3.0 → invenio-vocabularies-4.5.0}/invenio_vocabularies/contrib/awards/mappings/os-v2/awards/award-v1.0.0.json +0 -0
  132. {invenio-vocabularies-4.3.0 → invenio-vocabularies-4.5.0}/invenio_vocabularies/contrib/awards/mappings/v7/__init__.py +0 -0
  133. {invenio-vocabularies-4.3.0 → invenio-vocabularies-4.5.0}/invenio_vocabularies/contrib/awards/mappings/v7/awards/award-v1.0.0.json +0 -0
  134. {invenio-vocabularies-4.3.0 → invenio-vocabularies-4.5.0}/invenio_vocabularies/contrib/awards/models.py +0 -0
  135. {invenio-vocabularies-4.3.0 → invenio-vocabularies-4.5.0}/invenio_vocabularies/contrib/awards/resources.py +0 -0
  136. {invenio-vocabularies-4.3.0 → invenio-vocabularies-4.5.0}/invenio_vocabularies/contrib/awards/schema.py +0 -0
  137. {invenio-vocabularies-4.3.0 → invenio-vocabularies-4.5.0}/invenio_vocabularies/contrib/awards/serializer.py +0 -0
  138. {invenio-vocabularies-4.3.0 → invenio-vocabularies-4.5.0}/invenio_vocabularies/contrib/awards/services.py +0 -0
  139. {invenio-vocabularies-4.3.0 → invenio-vocabularies-4.5.0}/invenio_vocabularies/contrib/common/__init__.py +0 -0
  140. {invenio-vocabularies-4.3.0 → invenio-vocabularies-4.5.0}/invenio_vocabularies/contrib/common/ror/__init__.py +0 -0
  141. {invenio-vocabularies-4.3.0 → invenio-vocabularies-4.5.0}/invenio_vocabularies/contrib/funders/__init__.py +0 -0
  142. {invenio-vocabularies-4.3.0 → invenio-vocabularies-4.5.0}/invenio_vocabularies/contrib/funders/api.py +0 -0
  143. {invenio-vocabularies-4.3.0 → invenio-vocabularies-4.5.0}/invenio_vocabularies/contrib/funders/config.py +0 -0
  144. {invenio-vocabularies-4.3.0 → invenio-vocabularies-4.5.0}/invenio_vocabularies/contrib/funders/datastreams.py +0 -0
  145. {invenio-vocabularies-4.3.0 → invenio-vocabularies-4.5.0}/invenio_vocabularies/contrib/funders/facets.py +0 -0
  146. {invenio-vocabularies-4.3.0 → invenio-vocabularies-4.5.0}/invenio_vocabularies/contrib/funders/funders.py +0 -0
  147. {invenio-vocabularies-4.3.0 → invenio-vocabularies-4.5.0}/invenio_vocabularies/contrib/funders/jsonschemas/__init__.py +0 -0
  148. {invenio-vocabularies-4.3.0 → invenio-vocabularies-4.5.0}/invenio_vocabularies/contrib/funders/jsonschemas/funders/funder-v1.0.0.json +0 -0
  149. {invenio-vocabularies-4.3.0 → invenio-vocabularies-4.5.0}/invenio_vocabularies/contrib/funders/mappings/__init__.py +0 -0
  150. {invenio-vocabularies-4.3.0 → invenio-vocabularies-4.5.0}/invenio_vocabularies/contrib/funders/mappings/os-v1/__init__.py +0 -0
  151. {invenio-vocabularies-4.3.0 → invenio-vocabularies-4.5.0}/invenio_vocabularies/contrib/funders/mappings/os-v1/funders/funder-v1.0.0.json +0 -0
  152. {invenio-vocabularies-4.3.0 → invenio-vocabularies-4.5.0}/invenio_vocabularies/contrib/funders/mappings/os-v2/__init__.py +0 -0
  153. {invenio-vocabularies-4.3.0 → invenio-vocabularies-4.5.0}/invenio_vocabularies/contrib/funders/mappings/os-v2/funders/funder-v1.0.0.json +0 -0
  154. {invenio-vocabularies-4.3.0 → invenio-vocabularies-4.5.0}/invenio_vocabularies/contrib/funders/mappings/v7/__init__.py +0 -0
  155. {invenio-vocabularies-4.3.0 → invenio-vocabularies-4.5.0}/invenio_vocabularies/contrib/funders/mappings/v7/funders/funder-v1.0.0.json +0 -0
  156. {invenio-vocabularies-4.3.0 → invenio-vocabularies-4.5.0}/invenio_vocabularies/contrib/funders/models.py +0 -0
  157. {invenio-vocabularies-4.3.0 → invenio-vocabularies-4.5.0}/invenio_vocabularies/contrib/funders/resources.py +0 -0
  158. {invenio-vocabularies-4.3.0 → invenio-vocabularies-4.5.0}/invenio_vocabularies/contrib/funders/schema.py +0 -0
  159. {invenio-vocabularies-4.3.0 → invenio-vocabularies-4.5.0}/invenio_vocabularies/contrib/funders/serializer.py +0 -0
  160. {invenio-vocabularies-4.3.0 → invenio-vocabularies-4.5.0}/invenio_vocabularies/contrib/funders/services.py +0 -0
  161. {invenio-vocabularies-4.3.0 → invenio-vocabularies-4.5.0}/invenio_vocabularies/contrib/names/__init__.py +0 -0
  162. {invenio-vocabularies-4.3.0 → invenio-vocabularies-4.5.0}/invenio_vocabularies/contrib/names/api.py +0 -0
  163. {invenio-vocabularies-4.3.0 → invenio-vocabularies-4.5.0}/invenio_vocabularies/contrib/names/config.py +0 -0
  164. {invenio-vocabularies-4.3.0 → invenio-vocabularies-4.5.0}/invenio_vocabularies/contrib/names/datastreams.py +0 -0
  165. {invenio-vocabularies-4.3.0 → invenio-vocabularies-4.5.0}/invenio_vocabularies/contrib/names/jsonschemas/__init__.py +0 -0
  166. {invenio-vocabularies-4.3.0 → invenio-vocabularies-4.5.0}/invenio_vocabularies/contrib/names/jsonschemas/names/name-v1.0.0.json +0 -0
  167. {invenio-vocabularies-4.3.0 → invenio-vocabularies-4.5.0}/invenio_vocabularies/contrib/names/mappings/__init__.py +0 -0
  168. {invenio-vocabularies-4.3.0 → invenio-vocabularies-4.5.0}/invenio_vocabularies/contrib/names/mappings/os-v1/__init__.py +0 -0
  169. {invenio-vocabularies-4.3.0 → invenio-vocabularies-4.5.0}/invenio_vocabularies/contrib/names/mappings/os-v1/names/name-v1.0.0.json +0 -0
  170. {invenio-vocabularies-4.3.0 → invenio-vocabularies-4.5.0}/invenio_vocabularies/contrib/names/mappings/os-v2/__init__.py +0 -0
  171. {invenio-vocabularies-4.3.0 → invenio-vocabularies-4.5.0}/invenio_vocabularies/contrib/names/mappings/os-v2/names/name-v1.0.0.json +0 -0
  172. {invenio-vocabularies-4.3.0 → invenio-vocabularies-4.5.0}/invenio_vocabularies/contrib/names/mappings/v7/__init__.py +0 -0
  173. {invenio-vocabularies-4.3.0 → invenio-vocabularies-4.5.0}/invenio_vocabularies/contrib/names/mappings/v7/names/name-v1.0.0.json +0 -0
  174. {invenio-vocabularies-4.3.0 → invenio-vocabularies-4.5.0}/invenio_vocabularies/contrib/names/models.py +0 -0
  175. {invenio-vocabularies-4.3.0 → invenio-vocabularies-4.5.0}/invenio_vocabularies/contrib/names/resources.py +0 -0
  176. {invenio-vocabularies-4.3.0 → invenio-vocabularies-4.5.0}/invenio_vocabularies/contrib/names/s3client.py +0 -0
  177. {invenio-vocabularies-4.3.0 → invenio-vocabularies-4.5.0}/invenio_vocabularies/contrib/names/schema.py +0 -0
  178. {invenio-vocabularies-4.3.0 → invenio-vocabularies-4.5.0}/invenio_vocabularies/contrib/names/services.py +0 -0
  179. {invenio-vocabularies-4.3.0 → invenio-vocabularies-4.5.0}/invenio_vocabularies/contrib/subjects/__init__.py +0 -0
  180. {invenio-vocabularies-4.3.0 → invenio-vocabularies-4.5.0}/invenio_vocabularies/contrib/subjects/api.py +0 -0
  181. {invenio-vocabularies-4.3.0 → invenio-vocabularies-4.5.0}/invenio_vocabularies/contrib/subjects/facets.py +0 -0
  182. {invenio-vocabularies-4.3.0 → invenio-vocabularies-4.5.0}/invenio_vocabularies/contrib/subjects/jsonschemas/__init__.py +0 -0
  183. {invenio-vocabularies-4.3.0 → invenio-vocabularies-4.5.0}/invenio_vocabularies/contrib/subjects/mappings/__init__.py +0 -0
  184. {invenio-vocabularies-4.3.0 → invenio-vocabularies-4.5.0}/invenio_vocabularies/contrib/subjects/mappings/os-v1/__init__.py +0 -0
  185. {invenio-vocabularies-4.3.0 → invenio-vocabularies-4.5.0}/invenio_vocabularies/contrib/subjects/mappings/os-v2/__init__.py +0 -0
  186. {invenio-vocabularies-4.3.0 → invenio-vocabularies-4.5.0}/invenio_vocabularies/contrib/subjects/mappings/v7/__init__.py +0 -0
  187. {invenio-vocabularies-4.3.0 → invenio-vocabularies-4.5.0}/invenio_vocabularies/contrib/subjects/models.py +0 -0
  188. {invenio-vocabularies-4.3.0 → invenio-vocabularies-4.5.0}/invenio_vocabularies/contrib/subjects/resources.py +0 -0
  189. {invenio-vocabularies-4.3.0 → invenio-vocabularies-4.5.0}/invenio_vocabularies/contrib/subjects/services.py +0 -0
  190. {invenio-vocabularies-4.3.0 → invenio-vocabularies-4.5.0}/invenio_vocabularies/datastreams/__init__.py +0 -0
  191. {invenio-vocabularies-4.3.0 → invenio-vocabularies-4.5.0}/invenio_vocabularies/datastreams/datastreams.py +0 -0
  192. {invenio-vocabularies-4.3.0 → invenio-vocabularies-4.5.0}/invenio_vocabularies/datastreams/errors.py +0 -0
  193. {invenio-vocabularies-4.3.0 → invenio-vocabularies-4.5.0}/invenio_vocabularies/datastreams/factories.py +0 -0
  194. {invenio-vocabularies-4.3.0 → invenio-vocabularies-4.5.0}/invenio_vocabularies/datastreams/readers.py +0 -0
  195. {invenio-vocabularies-4.3.0 → invenio-vocabularies-4.5.0}/invenio_vocabularies/datastreams/tasks.py +0 -0
  196. {invenio-vocabularies-4.3.0 → invenio-vocabularies-4.5.0}/invenio_vocabularies/datastreams/transformers.py +0 -0
  197. {invenio-vocabularies-4.3.0 → invenio-vocabularies-4.5.0}/invenio_vocabularies/datastreams/writers.py +0 -0
  198. {invenio-vocabularies-4.3.0 → invenio-vocabularies-4.5.0}/invenio_vocabularies/datastreams/xml.py +0 -0
  199. {invenio-vocabularies-4.3.0 → invenio-vocabularies-4.5.0}/invenio_vocabularies/ext.py +0 -0
  200. {invenio-vocabularies-4.3.0 → invenio-vocabularies-4.5.0}/invenio_vocabularies/fixtures.py +0 -0
  201. {invenio-vocabularies-4.3.0 → invenio-vocabularies-4.5.0}/invenio_vocabularies/proxies.py +0 -0
  202. {invenio-vocabularies-4.3.0 → invenio-vocabularies-4.5.0}/invenio_vocabularies/records/__init__.py +0 -0
  203. {invenio-vocabularies-4.3.0 → invenio-vocabularies-4.5.0}/invenio_vocabularies/records/api.py +0 -0
  204. {invenio-vocabularies-4.3.0 → invenio-vocabularies-4.5.0}/invenio_vocabularies/records/jsonschemas/__init__.py +0 -0
  205. {invenio-vocabularies-4.3.0 → invenio-vocabularies-4.5.0}/invenio_vocabularies/records/jsonschemas/vocabularies/definitions-v1.0.0.json +0 -0
  206. {invenio-vocabularies-4.3.0 → invenio-vocabularies-4.5.0}/invenio_vocabularies/records/jsonschemas/vocabularies/vocabulary-v1.0.0.json +0 -0
  207. {invenio-vocabularies-4.3.0 → invenio-vocabularies-4.5.0}/invenio_vocabularies/records/mappings/__init__.py +0 -0
  208. {invenio-vocabularies-4.3.0 → invenio-vocabularies-4.5.0}/invenio_vocabularies/records/mappings/os-v1/__init__.py +0 -0
  209. {invenio-vocabularies-4.3.0 → invenio-vocabularies-4.5.0}/invenio_vocabularies/records/mappings/os-v1/vocabularies/vocabulary-v1.0.0.json +0 -0
  210. {invenio-vocabularies-4.3.0 → invenio-vocabularies-4.5.0}/invenio_vocabularies/records/mappings/os-v2/__init__.py +0 -0
  211. {invenio-vocabularies-4.3.0 → invenio-vocabularies-4.5.0}/invenio_vocabularies/records/mappings/os-v2/vocabularies/vocabulary-v1.0.0.json +0 -0
  212. {invenio-vocabularies-4.3.0 → invenio-vocabularies-4.5.0}/invenio_vocabularies/records/mappings/v7/__init__.py +0 -0
  213. {invenio-vocabularies-4.3.0 → invenio-vocabularies-4.5.0}/invenio_vocabularies/records/mappings/v7/vocabularies/vocabulary-v1.0.0.json +0 -0
  214. {invenio-vocabularies-4.3.0 → invenio-vocabularies-4.5.0}/invenio_vocabularies/records/models.py +0 -0
  215. {invenio-vocabularies-4.3.0 → invenio-vocabularies-4.5.0}/invenio_vocabularies/records/pidprovider.py +0 -0
  216. {invenio-vocabularies-4.3.0 → invenio-vocabularies-4.5.0}/invenio_vocabularies/records/systemfields/__init__.py +0 -0
  217. {invenio-vocabularies-4.3.0 → invenio-vocabularies-4.5.0}/invenio_vocabularies/records/systemfields/pid.py +0 -0
  218. {invenio-vocabularies-4.3.0 → invenio-vocabularies-4.5.0}/invenio_vocabularies/records/systemfields/relations.py +0 -0
  219. {invenio-vocabularies-4.3.0 → invenio-vocabularies-4.5.0}/invenio_vocabularies/resources/__init__.py +0 -0
  220. {invenio-vocabularies-4.3.0 → invenio-vocabularies-4.5.0}/invenio_vocabularies/resources/config.py +0 -0
  221. {invenio-vocabularies-4.3.0 → invenio-vocabularies-4.5.0}/invenio_vocabularies/resources/resource.py +0 -0
  222. {invenio-vocabularies-4.3.0 → invenio-vocabularies-4.5.0}/invenio_vocabularies/resources/schema.py +0 -0
  223. {invenio-vocabularies-4.3.0 → invenio-vocabularies-4.5.0}/invenio_vocabularies/resources/serializer.py +0 -0
  224. {invenio-vocabularies-4.3.0 → invenio-vocabularies-4.5.0}/invenio_vocabularies/services/__init__.py +0 -0
  225. {invenio-vocabularies-4.3.0 → invenio-vocabularies-4.5.0}/invenio_vocabularies/services/components.py +0 -0
  226. {invenio-vocabularies-4.3.0 → invenio-vocabularies-4.5.0}/invenio_vocabularies/services/custom_fields/__init__.py +0 -0
  227. {invenio-vocabularies-4.3.0 → invenio-vocabularies-4.5.0}/invenio_vocabularies/services/custom_fields/subject.py +0 -0
  228. {invenio-vocabularies-4.3.0 → invenio-vocabularies-4.5.0}/invenio_vocabularies/services/custom_fields/vocabulary.py +0 -0
  229. {invenio-vocabularies-4.3.0 → invenio-vocabularies-4.5.0}/invenio_vocabularies/services/facets.py +0 -0
  230. {invenio-vocabularies-4.3.0 → invenio-vocabularies-4.5.0}/invenio_vocabularies/services/permissions.py +0 -0
  231. {invenio-vocabularies-4.3.0 → invenio-vocabularies-4.5.0}/invenio_vocabularies/services/querystr.py +0 -0
  232. {invenio-vocabularies-4.3.0 → invenio-vocabularies-4.5.0}/invenio_vocabularies/services/results.py +0 -0
  233. {invenio-vocabularies-4.3.0 → invenio-vocabularies-4.5.0}/invenio_vocabularies/services/schema.py +0 -0
  234. {invenio-vocabularies-4.3.0 → invenio-vocabularies-4.5.0}/invenio_vocabularies/services/tasks.py +0 -0
  235. {invenio-vocabularies-4.3.0 → invenio-vocabularies-4.5.0}/invenio_vocabularies/templates/semantic-ui/invenio_vocabularies/subjects.html +0 -0
  236. {invenio-vocabularies-4.3.0 → invenio-vocabularies-4.5.0}/invenio_vocabularies/templates/semantic-ui/invenio_vocabularies/vocabularies-list.html +0 -0
  237. {invenio-vocabularies-4.3.0 → invenio-vocabularies-4.5.0}/invenio_vocabularies/templates/semantic-ui/invenio_vocabularies/vocabulary-details.html +0 -0
  238. {invenio-vocabularies-4.3.0 → invenio-vocabularies-4.5.0}/invenio_vocabularies/translations/af/LC_MESSAGES/messages.mo +0 -0
  239. {invenio-vocabularies-4.3.0 → invenio-vocabularies-4.5.0}/invenio_vocabularies/translations/af/LC_MESSAGES/messages.po +0 -0
  240. {invenio-vocabularies-4.3.0 → invenio-vocabularies-4.5.0}/invenio_vocabularies/translations/ar/LC_MESSAGES/messages.mo +0 -0
  241. {invenio-vocabularies-4.3.0 → invenio-vocabularies-4.5.0}/invenio_vocabularies/translations/ar/LC_MESSAGES/messages.po +0 -0
  242. {invenio-vocabularies-4.3.0 → invenio-vocabularies-4.5.0}/invenio_vocabularies/translations/bg/LC_MESSAGES/messages.mo +0 -0
  243. {invenio-vocabularies-4.3.0 → invenio-vocabularies-4.5.0}/invenio_vocabularies/translations/bg/LC_MESSAGES/messages.po +0 -0
  244. {invenio-vocabularies-4.3.0 → invenio-vocabularies-4.5.0}/invenio_vocabularies/translations/ca/LC_MESSAGES/messages.mo +0 -0
  245. {invenio-vocabularies-4.3.0 → invenio-vocabularies-4.5.0}/invenio_vocabularies/translations/ca/LC_MESSAGES/messages.po +0 -0
  246. {invenio-vocabularies-4.3.0 → invenio-vocabularies-4.5.0}/invenio_vocabularies/translations/cs/LC_MESSAGES/messages.mo +0 -0
  247. {invenio-vocabularies-4.3.0 → invenio-vocabularies-4.5.0}/invenio_vocabularies/translations/cs/LC_MESSAGES/messages.po +0 -0
  248. {invenio-vocabularies-4.3.0 → invenio-vocabularies-4.5.0}/invenio_vocabularies/translations/da/LC_MESSAGES/messages.mo +0 -0
  249. {invenio-vocabularies-4.3.0 → invenio-vocabularies-4.5.0}/invenio_vocabularies/translations/da/LC_MESSAGES/messages.po +0 -0
  250. {invenio-vocabularies-4.3.0 → invenio-vocabularies-4.5.0}/invenio_vocabularies/translations/de/LC_MESSAGES/messages.mo +0 -0
  251. {invenio-vocabularies-4.3.0 → invenio-vocabularies-4.5.0}/invenio_vocabularies/translations/de/LC_MESSAGES/messages.po +0 -0
  252. {invenio-vocabularies-4.3.0 → invenio-vocabularies-4.5.0}/invenio_vocabularies/translations/de_AT/LC_MESSAGES/messages.mo +0 -0
  253. {invenio-vocabularies-4.3.0 → invenio-vocabularies-4.5.0}/invenio_vocabularies/translations/de_AT/LC_MESSAGES/messages.po +0 -0
  254. {invenio-vocabularies-4.3.0 → invenio-vocabularies-4.5.0}/invenio_vocabularies/translations/de_DE/LC_MESSAGES/messages.mo +0 -0
  255. {invenio-vocabularies-4.3.0 → invenio-vocabularies-4.5.0}/invenio_vocabularies/translations/de_DE/LC_MESSAGES/messages.po +0 -0
  256. {invenio-vocabularies-4.3.0 → invenio-vocabularies-4.5.0}/invenio_vocabularies/translations/el/LC_MESSAGES/messages.mo +0 -0
  257. {invenio-vocabularies-4.3.0 → invenio-vocabularies-4.5.0}/invenio_vocabularies/translations/el/LC_MESSAGES/messages.po +0 -0
  258. {invenio-vocabularies-4.3.0 → invenio-vocabularies-4.5.0}/invenio_vocabularies/translations/en/LC_MESSAGES/messages.mo +0 -0
  259. {invenio-vocabularies-4.3.0 → invenio-vocabularies-4.5.0}/invenio_vocabularies/translations/en/LC_MESSAGES/messages.po +0 -0
  260. {invenio-vocabularies-4.3.0 → invenio-vocabularies-4.5.0}/invenio_vocabularies/translations/en_AT/LC_MESSAGES/messages.mo +0 -0
  261. {invenio-vocabularies-4.3.0 → invenio-vocabularies-4.5.0}/invenio_vocabularies/translations/en_AT/LC_MESSAGES/messages.po +0 -0
  262. {invenio-vocabularies-4.3.0 → invenio-vocabularies-4.5.0}/invenio_vocabularies/translations/en_HU/LC_MESSAGES/messages.mo +0 -0
  263. {invenio-vocabularies-4.3.0 → invenio-vocabularies-4.5.0}/invenio_vocabularies/translations/en_HU/LC_MESSAGES/messages.po +0 -0
  264. {invenio-vocabularies-4.3.0 → invenio-vocabularies-4.5.0}/invenio_vocabularies/translations/es/LC_MESSAGES/messages.mo +0 -0
  265. {invenio-vocabularies-4.3.0 → invenio-vocabularies-4.5.0}/invenio_vocabularies/translations/es/LC_MESSAGES/messages.po +0 -0
  266. {invenio-vocabularies-4.3.0 → invenio-vocabularies-4.5.0}/invenio_vocabularies/translations/es_CU/LC_MESSAGES/messages.mo +0 -0
  267. {invenio-vocabularies-4.3.0 → invenio-vocabularies-4.5.0}/invenio_vocabularies/translations/es_CU/LC_MESSAGES/messages.po +0 -0
  268. {invenio-vocabularies-4.3.0 → invenio-vocabularies-4.5.0}/invenio_vocabularies/translations/es_MX/LC_MESSAGES/messages.mo +0 -0
  269. {invenio-vocabularies-4.3.0 → invenio-vocabularies-4.5.0}/invenio_vocabularies/translations/es_MX/LC_MESSAGES/messages.po +0 -0
  270. {invenio-vocabularies-4.3.0 → invenio-vocabularies-4.5.0}/invenio_vocabularies/translations/et/LC_MESSAGES/messages.mo +0 -0
  271. {invenio-vocabularies-4.3.0 → invenio-vocabularies-4.5.0}/invenio_vocabularies/translations/et/LC_MESSAGES/messages.po +0 -0
  272. {invenio-vocabularies-4.3.0 → invenio-vocabularies-4.5.0}/invenio_vocabularies/translations/et_EE/LC_MESSAGES/messages.mo +0 -0
  273. {invenio-vocabularies-4.3.0 → invenio-vocabularies-4.5.0}/invenio_vocabularies/translations/et_EE/LC_MESSAGES/messages.po +0 -0
  274. {invenio-vocabularies-4.3.0 → invenio-vocabularies-4.5.0}/invenio_vocabularies/translations/fa/LC_MESSAGES/messages.mo +0 -0
  275. {invenio-vocabularies-4.3.0 → invenio-vocabularies-4.5.0}/invenio_vocabularies/translations/fa/LC_MESSAGES/messages.po +0 -0
  276. {invenio-vocabularies-4.3.0 → invenio-vocabularies-4.5.0}/invenio_vocabularies/translations/fa_IR/LC_MESSAGES/messages.mo +0 -0
  277. {invenio-vocabularies-4.3.0 → invenio-vocabularies-4.5.0}/invenio_vocabularies/translations/fa_IR/LC_MESSAGES/messages.po +0 -0
  278. {invenio-vocabularies-4.3.0 → invenio-vocabularies-4.5.0}/invenio_vocabularies/translations/fr/LC_MESSAGES/messages.mo +0 -0
  279. {invenio-vocabularies-4.3.0 → invenio-vocabularies-4.5.0}/invenio_vocabularies/translations/fr/LC_MESSAGES/messages.po +0 -0
  280. {invenio-vocabularies-4.3.0 → invenio-vocabularies-4.5.0}/invenio_vocabularies/translations/fr_CI/LC_MESSAGES/messages.mo +0 -0
  281. {invenio-vocabularies-4.3.0 → invenio-vocabularies-4.5.0}/invenio_vocabularies/translations/fr_CI/LC_MESSAGES/messages.po +0 -0
  282. {invenio-vocabularies-4.3.0 → invenio-vocabularies-4.5.0}/invenio_vocabularies/translations/fr_FR/LC_MESSAGES/messages.mo +0 -0
  283. {invenio-vocabularies-4.3.0 → invenio-vocabularies-4.5.0}/invenio_vocabularies/translations/fr_FR/LC_MESSAGES/messages.po +0 -0
  284. {invenio-vocabularies-4.3.0 → invenio-vocabularies-4.5.0}/invenio_vocabularies/translations/gl/LC_MESSAGES/messages.mo +0 -0
  285. {invenio-vocabularies-4.3.0 → invenio-vocabularies-4.5.0}/invenio_vocabularies/translations/gl/LC_MESSAGES/messages.po +0 -0
  286. {invenio-vocabularies-4.3.0 → invenio-vocabularies-4.5.0}/invenio_vocabularies/translations/hi_IN/LC_MESSAGES/messages.mo +0 -0
  287. {invenio-vocabularies-4.3.0 → invenio-vocabularies-4.5.0}/invenio_vocabularies/translations/hi_IN/LC_MESSAGES/messages.po +0 -0
  288. {invenio-vocabularies-4.3.0 → invenio-vocabularies-4.5.0}/invenio_vocabularies/translations/hr/LC_MESSAGES/messages.mo +0 -0
  289. {invenio-vocabularies-4.3.0 → invenio-vocabularies-4.5.0}/invenio_vocabularies/translations/hr/LC_MESSAGES/messages.po +0 -0
  290. {invenio-vocabularies-4.3.0 → invenio-vocabularies-4.5.0}/invenio_vocabularies/translations/hu/LC_MESSAGES/messages.mo +0 -0
  291. {invenio-vocabularies-4.3.0 → invenio-vocabularies-4.5.0}/invenio_vocabularies/translations/hu/LC_MESSAGES/messages.po +0 -0
  292. {invenio-vocabularies-4.3.0 → invenio-vocabularies-4.5.0}/invenio_vocabularies/translations/hu_HU/LC_MESSAGES/messages.mo +0 -0
  293. {invenio-vocabularies-4.3.0 → invenio-vocabularies-4.5.0}/invenio_vocabularies/translations/hu_HU/LC_MESSAGES/messages.po +0 -0
  294. {invenio-vocabularies-4.3.0 → invenio-vocabularies-4.5.0}/invenio_vocabularies/translations/it/LC_MESSAGES/messages.mo +0 -0
  295. {invenio-vocabularies-4.3.0 → invenio-vocabularies-4.5.0}/invenio_vocabularies/translations/it/LC_MESSAGES/messages.po +0 -0
  296. {invenio-vocabularies-4.3.0 → invenio-vocabularies-4.5.0}/invenio_vocabularies/translations/ja/LC_MESSAGES/messages.mo +0 -0
  297. {invenio-vocabularies-4.3.0 → invenio-vocabularies-4.5.0}/invenio_vocabularies/translations/ja/LC_MESSAGES/messages.po +0 -0
  298. {invenio-vocabularies-4.3.0 → invenio-vocabularies-4.5.0}/invenio_vocabularies/translations/ka/LC_MESSAGES/messages.mo +0 -0
  299. {invenio-vocabularies-4.3.0 → invenio-vocabularies-4.5.0}/invenio_vocabularies/translations/ka/LC_MESSAGES/messages.po +0 -0
  300. {invenio-vocabularies-4.3.0 → invenio-vocabularies-4.5.0}/invenio_vocabularies/translations/lt/LC_MESSAGES/messages.mo +0 -0
  301. {invenio-vocabularies-4.3.0 → invenio-vocabularies-4.5.0}/invenio_vocabularies/translations/lt/LC_MESSAGES/messages.po +0 -0
  302. {invenio-vocabularies-4.3.0 → invenio-vocabularies-4.5.0}/invenio_vocabularies/translations/ne/LC_MESSAGES/messages.mo +0 -0
  303. {invenio-vocabularies-4.3.0 → invenio-vocabularies-4.5.0}/invenio_vocabularies/translations/ne/LC_MESSAGES/messages.po +0 -0
  304. {invenio-vocabularies-4.3.0 → invenio-vocabularies-4.5.0}/invenio_vocabularies/translations/no/LC_MESSAGES/messages.mo +0 -0
  305. {invenio-vocabularies-4.3.0 → invenio-vocabularies-4.5.0}/invenio_vocabularies/translations/no/LC_MESSAGES/messages.po +0 -0
  306. {invenio-vocabularies-4.3.0 → invenio-vocabularies-4.5.0}/invenio_vocabularies/translations/pl/LC_MESSAGES/messages.mo +0 -0
  307. {invenio-vocabularies-4.3.0 → invenio-vocabularies-4.5.0}/invenio_vocabularies/translations/pl/LC_MESSAGES/messages.po +0 -0
  308. {invenio-vocabularies-4.3.0 → invenio-vocabularies-4.5.0}/invenio_vocabularies/translations/pt/LC_MESSAGES/messages.mo +0 -0
  309. {invenio-vocabularies-4.3.0 → invenio-vocabularies-4.5.0}/invenio_vocabularies/translations/pt/LC_MESSAGES/messages.po +0 -0
  310. {invenio-vocabularies-4.3.0 → invenio-vocabularies-4.5.0}/invenio_vocabularies/translations/ro/LC_MESSAGES/messages.mo +0 -0
  311. {invenio-vocabularies-4.3.0 → invenio-vocabularies-4.5.0}/invenio_vocabularies/translations/ro/LC_MESSAGES/messages.po +0 -0
  312. {invenio-vocabularies-4.3.0 → invenio-vocabularies-4.5.0}/invenio_vocabularies/translations/ru/LC_MESSAGES/messages.mo +0 -0
  313. {invenio-vocabularies-4.3.0 → invenio-vocabularies-4.5.0}/invenio_vocabularies/translations/ru/LC_MESSAGES/messages.po +0 -0
  314. {invenio-vocabularies-4.3.0 → invenio-vocabularies-4.5.0}/invenio_vocabularies/translations/rw/LC_MESSAGES/messages.mo +0 -0
  315. {invenio-vocabularies-4.3.0 → invenio-vocabularies-4.5.0}/invenio_vocabularies/translations/rw/LC_MESSAGES/messages.po +0 -0
  316. {invenio-vocabularies-4.3.0 → invenio-vocabularies-4.5.0}/invenio_vocabularies/translations/sk/LC_MESSAGES/messages.mo +0 -0
  317. {invenio-vocabularies-4.3.0 → invenio-vocabularies-4.5.0}/invenio_vocabularies/translations/sk/LC_MESSAGES/messages.po +0 -0
  318. {invenio-vocabularies-4.3.0 → invenio-vocabularies-4.5.0}/invenio_vocabularies/translations/sv/LC_MESSAGES/messages.mo +0 -0
  319. {invenio-vocabularies-4.3.0 → invenio-vocabularies-4.5.0}/invenio_vocabularies/translations/sv/LC_MESSAGES/messages.po +0 -0
  320. {invenio-vocabularies-4.3.0 → invenio-vocabularies-4.5.0}/invenio_vocabularies/translations/sv_SE/LC_MESSAGES/messages.mo +0 -0
  321. {invenio-vocabularies-4.3.0 → invenio-vocabularies-4.5.0}/invenio_vocabularies/translations/sv_SE/LC_MESSAGES/messages.po +0 -0
  322. {invenio-vocabularies-4.3.0 → invenio-vocabularies-4.5.0}/invenio_vocabularies/translations/tr/LC_MESSAGES/messages.mo +0 -0
  323. {invenio-vocabularies-4.3.0 → invenio-vocabularies-4.5.0}/invenio_vocabularies/translations/tr/LC_MESSAGES/messages.po +0 -0
  324. {invenio-vocabularies-4.3.0 → invenio-vocabularies-4.5.0}/invenio_vocabularies/translations/uk/LC_MESSAGES/messages.mo +0 -0
  325. {invenio-vocabularies-4.3.0 → invenio-vocabularies-4.5.0}/invenio_vocabularies/translations/uk/LC_MESSAGES/messages.po +0 -0
  326. {invenio-vocabularies-4.3.0 → invenio-vocabularies-4.5.0}/invenio_vocabularies/translations/uk_UA/LC_MESSAGES/messages.mo +0 -0
  327. {invenio-vocabularies-4.3.0 → invenio-vocabularies-4.5.0}/invenio_vocabularies/translations/uk_UA/LC_MESSAGES/messages.po +0 -0
  328. {invenio-vocabularies-4.3.0 → invenio-vocabularies-4.5.0}/invenio_vocabularies/translations/zh_CN/LC_MESSAGES/messages.mo +0 -0
  329. {invenio-vocabularies-4.3.0 → invenio-vocabularies-4.5.0}/invenio_vocabularies/translations/zh_CN/LC_MESSAGES/messages.po +0 -0
  330. {invenio-vocabularies-4.3.0 → invenio-vocabularies-4.5.0}/invenio_vocabularies/translations/zh_TW/LC_MESSAGES/messages.mo +0 -0
  331. {invenio-vocabularies-4.3.0 → invenio-vocabularies-4.5.0}/invenio_vocabularies/translations/zh_TW/LC_MESSAGES/messages.po +0 -0
  332. {invenio-vocabularies-4.3.0 → invenio-vocabularies-4.5.0}/invenio_vocabularies/views.py +0 -0
  333. {invenio-vocabularies-4.3.0 → invenio-vocabularies-4.5.0}/invenio_vocabularies.egg-info/dependency_links.txt +0 -0
  334. {invenio-vocabularies-4.3.0 → invenio-vocabularies-4.5.0}/invenio_vocabularies.egg-info/entry_points.txt +0 -0
  335. {invenio-vocabularies-4.3.0 → invenio-vocabularies-4.5.0}/invenio_vocabularies.egg-info/not-zip-safe +0 -0
  336. {invenio-vocabularies-4.3.0 → invenio-vocabularies-4.5.0}/invenio_vocabularies.egg-info/requires.txt +0 -0
  337. {invenio-vocabularies-4.3.0 → invenio-vocabularies-4.5.0}/invenio_vocabularies.egg-info/top_level.txt +0 -0
  338. {invenio-vocabularies-4.3.0 → invenio-vocabularies-4.5.0}/pyproject.toml +0 -0
  339. {invenio-vocabularies-4.3.0 → invenio-vocabularies-4.5.0}/requirements-feature.txt +0 -0
  340. {invenio-vocabularies-4.3.0 → invenio-vocabularies-4.5.0}/run-js-linter.sh +0 -0
  341. {invenio-vocabularies-4.3.0 → invenio-vocabularies-4.5.0}/run-tests.sh +0 -0
  342. {invenio-vocabularies-4.3.0 → invenio-vocabularies-4.5.0}/setup.cfg +0 -0
  343. {invenio-vocabularies-4.3.0 → invenio-vocabularies-4.5.0}/setup.py +0 -0
  344. {invenio-vocabularies-4.3.0 → invenio-vocabularies-4.5.0}/tests/conftest.py +0 -0
  345. {invenio-vocabularies-4.3.0 → invenio-vocabularies-4.5.0}/tests/contrib/affiliations/conftest.py +0 -0
  346. {invenio-vocabularies-4.3.0 → invenio-vocabularies-4.5.0}/tests/contrib/affiliations/test_affiliations_api.py +0 -0
  347. {invenio-vocabularies-4.3.0 → invenio-vocabularies-4.5.0}/tests/contrib/affiliations/test_affiliations_datastreams.py +0 -0
  348. {invenio-vocabularies-4.3.0 → invenio-vocabularies-4.5.0}/tests/contrib/affiliations/test_affiliations_jsonschema.py +0 -0
  349. {invenio-vocabularies-4.3.0 → invenio-vocabularies-4.5.0}/tests/contrib/affiliations/test_affiliations_resource.py +0 -0
  350. {invenio-vocabularies-4.3.0 → invenio-vocabularies-4.5.0}/tests/contrib/affiliations/test_affiliations_schema.py +0 -0
  351. {invenio-vocabularies-4.3.0 → invenio-vocabularies-4.5.0}/tests/contrib/affiliations/test_affiliations_service.py +0 -0
  352. {invenio-vocabularies-4.3.0 → invenio-vocabularies-4.5.0}/tests/contrib/awards/conftest.py +0 -0
  353. {invenio-vocabularies-4.3.0 → invenio-vocabularies-4.5.0}/tests/contrib/awards/test_awards_api.py +0 -0
  354. {invenio-vocabularies-4.3.0 → invenio-vocabularies-4.5.0}/tests/contrib/awards/test_awards_datastreams.py +0 -0
  355. {invenio-vocabularies-4.3.0 → invenio-vocabularies-4.5.0}/tests/contrib/awards/test_awards_jsonschema.py +0 -0
  356. {invenio-vocabularies-4.3.0 → invenio-vocabularies-4.5.0}/tests/contrib/awards/test_awards_resource.py +0 -0
  357. {invenio-vocabularies-4.3.0 → invenio-vocabularies-4.5.0}/tests/contrib/awards/test_awards_schema.py +0 -0
  358. {invenio-vocabularies-4.3.0 → invenio-vocabularies-4.5.0}/tests/contrib/awards/test_awards_service.py +0 -0
  359. {invenio-vocabularies-4.3.0 → invenio-vocabularies-4.5.0}/tests/contrib/funders/conftest.py +0 -0
  360. {invenio-vocabularies-4.3.0 → invenio-vocabularies-4.5.0}/tests/contrib/funders/test_funders_api.py +0 -0
  361. {invenio-vocabularies-4.3.0 → invenio-vocabularies-4.5.0}/tests/contrib/funders/test_funders_datastreams.py +0 -0
  362. {invenio-vocabularies-4.3.0 → invenio-vocabularies-4.5.0}/tests/contrib/funders/test_funders_jsonschema.py +0 -0
  363. {invenio-vocabularies-4.3.0 → invenio-vocabularies-4.5.0}/tests/contrib/funders/test_funders_resource.py +0 -0
  364. {invenio-vocabularies-4.3.0 → invenio-vocabularies-4.5.0}/tests/contrib/funders/test_funders_schema.py +0 -0
  365. {invenio-vocabularies-4.3.0 → invenio-vocabularies-4.5.0}/tests/contrib/funders/test_funders_service.py +0 -0
  366. {invenio-vocabularies-4.3.0 → invenio-vocabularies-4.5.0}/tests/contrib/names/conftest.py +0 -0
  367. {invenio-vocabularies-4.3.0 → invenio-vocabularies-4.5.0}/tests/contrib/names/test_names_api.py +0 -0
  368. {invenio-vocabularies-4.3.0 → invenio-vocabularies-4.5.0}/tests/contrib/names/test_names_datastreams.py +0 -0
  369. {invenio-vocabularies-4.3.0 → invenio-vocabularies-4.5.0}/tests/contrib/names/test_names_jsonschema.py +0 -0
  370. {invenio-vocabularies-4.3.0 → invenio-vocabularies-4.5.0}/tests/contrib/names/test_names_resource.py +0 -0
  371. {invenio-vocabularies-4.3.0 → invenio-vocabularies-4.5.0}/tests/contrib/names/test_names_schema.py +0 -0
  372. {invenio-vocabularies-4.3.0 → invenio-vocabularies-4.5.0}/tests/contrib/names/test_names_service.py +0 -0
  373. {invenio-vocabularies-4.3.0 → invenio-vocabularies-4.5.0}/tests/contrib/subjects/test_subjects_facets.py +0 -0
  374. {invenio-vocabularies-4.3.0 → invenio-vocabularies-4.5.0}/tests/custom_fields/test_custom_fields.py +0 -0
  375. {invenio-vocabularies-4.3.0 → invenio-vocabularies-4.5.0}/tests/datastreams/conftest.py +0 -0
  376. {invenio-vocabularies-4.3.0 → invenio-vocabularies-4.5.0}/tests/datastreams/test_datastreams.py +0 -0
  377. {invenio-vocabularies-4.3.0 → invenio-vocabularies-4.5.0}/tests/datastreams/test_datastreams_tasks.py +0 -0
  378. {invenio-vocabularies-4.3.0 → invenio-vocabularies-4.5.0}/tests/datastreams/test_fixtures.py +0 -0
  379. {invenio-vocabularies-4.3.0 → invenio-vocabularies-4.5.0}/tests/datastreams/test_readers.py +0 -0
  380. {invenio-vocabularies-4.3.0 → invenio-vocabularies-4.5.0}/tests/datastreams/test_transformers.py +0 -0
  381. {invenio-vocabularies-4.3.0 → invenio-vocabularies-4.5.0}/tests/datastreams/test_writers.py +0 -0
  382. {invenio-vocabularies-4.3.0 → invenio-vocabularies-4.5.0}/tests/datastreams/vocabularies.yaml +0 -0
  383. {invenio-vocabularies-4.3.0 → invenio-vocabularies-4.5.0}/tests/mock_module/__init__.py +0 -0
  384. {invenio-vocabularies-4.3.0 → invenio-vocabularies-4.5.0}/tests/mock_module/api.py +0 -0
  385. {invenio-vocabularies-4.3.0 → invenio-vocabularies-4.5.0}/tests/mock_module/jsonschemas/__init__.py +0 -0
  386. {invenio-vocabularies-4.3.0 → invenio-vocabularies-4.5.0}/tests/mock_module/jsonschemas/records/record-v1.0.0.json +0 -0
  387. {invenio-vocabularies-4.3.0 → invenio-vocabularies-4.5.0}/tests/mock_module/mappings/__init__.py +0 -0
  388. {invenio-vocabularies-4.3.0 → invenio-vocabularies-4.5.0}/tests/mock_module/mappings/v6/__init__.py +0 -0
  389. {invenio-vocabularies-4.3.0 → invenio-vocabularies-4.5.0}/tests/mock_module/mappings/v6/records/record-v1.0.0.json +0 -0
  390. {invenio-vocabularies-4.3.0 → invenio-vocabularies-4.5.0}/tests/mock_module/mappings/v7/__init__.py +0 -0
  391. {invenio-vocabularies-4.3.0 → invenio-vocabularies-4.5.0}/tests/mock_module/mappings/v7/records/record-v1.0.0.json +0 -0
  392. {invenio-vocabularies-4.3.0 → invenio-vocabularies-4.5.0}/tests/mock_module/models.py +0 -0
  393. {invenio-vocabularies-4.3.0 → invenio-vocabularies-4.5.0}/tests/records/conftest.py +0 -0
  394. {invenio-vocabularies-4.3.0 → invenio-vocabularies-4.5.0}/tests/records/test_api.py +0 -0
  395. {invenio-vocabularies-4.3.0 → invenio-vocabularies-4.5.0}/tests/records/test_jsonschema.py +0 -0
  396. {invenio-vocabularies-4.3.0 → invenio-vocabularies-4.5.0}/tests/records/test_models.py +0 -0
  397. {invenio-vocabularies-4.3.0 → invenio-vocabularies-4.5.0}/tests/records/test_relationship.py +0 -0
  398. {invenio-vocabularies-4.3.0 → invenio-vocabularies-4.5.0}/tests/resources/conftest.py +0 -0
  399. {invenio-vocabularies-4.3.0 → invenio-vocabularies-4.5.0}/tests/resources/test_resources_get.py +0 -0
  400. {invenio-vocabularies-4.3.0 → invenio-vocabularies-4.5.0}/tests/resources/test_resources_l10n.py +0 -0
  401. {invenio-vocabularies-4.3.0 → invenio-vocabularies-4.5.0}/tests/resources/test_resources_search.py +0 -0
  402. {invenio-vocabularies-4.3.0 → invenio-vocabularies-4.5.0}/tests/resources/test_tasks_resources.py +0 -0
  403. {invenio-vocabularies-4.3.0 → invenio-vocabularies-4.5.0}/tests/services/conftest.py +0 -0
  404. {invenio-vocabularies-4.3.0 → invenio-vocabularies-4.5.0}/tests/services/test_labels.py +0 -0
  405. {invenio-vocabularies-4.3.0 → invenio-vocabularies-4.5.0}/tests/services/test_permissions.py +0 -0
  406. {invenio-vocabularies-4.3.0 → invenio-vocabularies-4.5.0}/tests/services/test_schema.py +0 -0
  407. {invenio-vocabularies-4.3.0 → invenio-vocabularies-4.5.0}/tests/services/test_service.py +0 -0
  408. {invenio-vocabularies-4.3.0 → invenio-vocabularies-4.5.0}/tests/test_alembic.py +0 -0
  409. {invenio-vocabularies-4.3.0 → invenio-vocabularies-4.5.0}/tests/test_cli.py +0 -0
  410. {invenio-vocabularies-4.3.0 → invenio-vocabularies-4.5.0}/tests/test_factory.py +0 -0
  411. {invenio-vocabularies-4.3.0 → invenio-vocabularies-4.5.0}/tests/test_invenio_vocabularies.py +0 -0
@@ -8,6 +8,16 @@
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
+
17
+ Version v4.4.0 (released 2024-08-09)
18
+
19
+ - services: use and adjust vnd.inveniordm.v1+json http accept header
20
+
11
21
  Version v4.3.0 (released 2024-08-05)
12
22
 
13
23
  - names: make names_exclude_regex configurable
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.1
2
2
  Name: invenio-vocabularies
3
- Version: 4.3.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,16 @@ 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
+
59
+ Version v4.4.0 (released 2024-08-09)
60
+
61
+ - services: use and adjust vnd.inveniordm.v1+json http accept header
62
+
53
63
  Version v4.3.0 (released 2024-08-05)
54
64
 
55
65
  - names: make names_exclude_regex configurable
@@ -10,6 +10,6 @@
10
10
 
11
11
  from .ext import InvenioVocabularies
12
12
 
13
- __version__ = "4.3.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,
@@ -8,11 +8,13 @@
8
8
 
9
9
  """Vocabulary affiliations."""
10
10
 
11
+ from flask_resources import JSONSerializer, ResponseHandler
11
12
  from invenio_db import db
12
13
  from invenio_records.dumpers import SearchDumper
13
14
  from invenio_records.dumpers.indexedat import IndexedAtDumperExt
14
15
  from invenio_records_resources.factories.factory import RecordTypeFactory
15
16
  from invenio_records_resources.records.systemfields import ModelPIDField
17
+ from invenio_records_resources.resources.records.headers import etag_headers
16
18
 
17
19
  from ...services.permissions import PermissionPolicy
18
20
  from .config import AffiliationsSearchOptions, service_components
@@ -46,4 +48,12 @@ record_type = RecordTypeFactory(
46
48
  permission_policy_cls=PermissionPolicy,
47
49
  # Resource layer
48
50
  endpoint_route="/affiliations",
51
+ resource_cls_attrs={
52
+ "response_handlers": {
53
+ "application/json": ResponseHandler(JSONSerializer(), headers=etag_headers),
54
+ "application/vnd.inveniordm.v1+json": ResponseHandler(
55
+ JSONSerializer(), headers=etag_headers
56
+ ),
57
+ }
58
+ },
49
59
  )
@@ -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`).
@@ -8,6 +8,7 @@
8
8
 
9
9
  """Vocabulary names."""
10
10
 
11
+ from flask_resources import JSONSerializer, ResponseHandler
11
12
  from invenio_db import db
12
13
  from invenio_records.dumpers import SearchDumper
13
14
  from invenio_records.dumpers.indexedat import IndexedAtDumperExt
@@ -18,6 +19,7 @@ from invenio_records_resources.records.systemfields import (
18
19
  ModelPIDField,
19
20
  PIDListRelation,
20
21
  )
22
+ from invenio_records_resources.resources.records.headers import etag_headers
21
23
 
22
24
  from ...services.permissions import PermissionPolicy
23
25
  from ..affiliations.api import Affiliation
@@ -63,4 +65,12 @@ record_type = RecordTypeFactory(
63
65
  permission_policy_cls=PermissionPolicy,
64
66
  # Resource layer
65
67
  endpoint_route="/names",
68
+ resource_cls_attrs={
69
+ "response_handlers": {
70
+ "application/json": ResponseHandler(JSONSerializer(), headers=etag_headers),
71
+ "application/vnd.inveniordm.v1+json": ResponseHandler(
72
+ JSONSerializer(), headers=etag_headers
73
+ ),
74
+ }
75
+ },
66
76
  )
@@ -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())
@@ -9,9 +9,11 @@
9
9
 
10
10
  """Vocabulary subjects."""
11
11
 
12
+ from flask_resources import JSONSerializer, ResponseHandler
12
13
  from invenio_records.dumpers import SearchDumper
13
14
  from invenio_records.dumpers.indexedat import IndexedAtDumperExt
14
15
  from invenio_records_resources.factories.factory import RecordTypeFactory
16
+ from invenio_records_resources.resources.records.headers import etag_headers
15
17
 
16
18
  from ...records.pidprovider import PIDProviderFactory
17
19
  from ...records.systemfields import BaseVocabularyPIDFieldContext
@@ -42,4 +44,12 @@ record_type = RecordTypeFactory(
42
44
  permission_policy_cls=PermissionPolicy,
43
45
  # Resource layer
44
46
  endpoint_route="/subjects",
47
+ resource_cls_attrs={
48
+ "response_handlers": {
49
+ "application/json": ResponseHandler(JSONSerializer(), headers=etag_headers),
50
+ "application/vnd.inveniordm.v1+json": ResponseHandler(
51
+ JSONSerializer(), headers=etag_headers
52
+ ),
53
+ }
54
+ },
45
55
  )