invenio-vocabularies 1.5.1__tar.gz → 2.0.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 (380) hide show
  1. {invenio-vocabularies-1.5.1 → invenio-vocabularies-2.0.0}/.github/workflows/tests.yml +2 -14
  2. {invenio-vocabularies-1.5.1 → invenio-vocabularies-2.0.0}/CHANGES.rst +13 -0
  3. {invenio-vocabularies-1.5.1/invenio_vocabularies.egg-info → invenio-vocabularies-2.0.0}/PKG-INFO +14 -1
  4. {invenio-vocabularies-1.5.1 → invenio-vocabularies-2.0.0}/invenio_vocabularies/__init__.py +1 -1
  5. invenio-vocabularies-2.0.0/invenio_vocabularies/alembic/55a700f897b6_add_names_and_afiliations_pid_column.py +96 -0
  6. {invenio-vocabularies-1.5.1 → invenio-vocabularies-2.0.0}/invenio_vocabularies/config.py +6 -3
  7. {invenio-vocabularies-1.5.1 → invenio-vocabularies-2.0.0}/invenio_vocabularies/contrib/affiliations/affiliations.py +11 -6
  8. {invenio-vocabularies-1.5.1 → invenio-vocabularies-2.0.0}/invenio_vocabularies/contrib/affiliations/jsonschemas/affiliations/affiliation-v1.0.0.json +0 -6
  9. {invenio-vocabularies-1.5.1 → invenio-vocabularies-2.0.0}/invenio_vocabularies/contrib/affiliations/schema.py +6 -2
  10. {invenio-vocabularies-1.5.1 → invenio-vocabularies-2.0.0}/invenio_vocabularies/contrib/awards/datastreams.py +9 -0
  11. {invenio-vocabularies-1.5.1 → invenio-vocabularies-2.0.0}/invenio_vocabularies/contrib/awards/jsonschemas/awards/award-v1.0.0.json +3 -0
  12. {invenio-vocabularies-1.5.1/invenio_vocabularies/contrib/awards/mappings/os-v2 → invenio-vocabularies-2.0.0/invenio_vocabularies/contrib/awards/mappings/os-v1}/awards/award-v1.0.0.json +3 -0
  13. {invenio-vocabularies-1.5.1/invenio_vocabularies/contrib/awards/mappings/v7 → invenio-vocabularies-2.0.0/invenio_vocabularies/contrib/awards/mappings/os-v2}/awards/award-v1.0.0.json +3 -0
  14. {invenio-vocabularies-1.5.1/invenio_vocabularies/contrib/awards/mappings/os-v1 → invenio-vocabularies-2.0.0/invenio_vocabularies/contrib/awards/mappings/v7}/awards/award-v1.0.0.json +3 -0
  15. {invenio-vocabularies-1.5.1 → invenio-vocabularies-2.0.0}/invenio_vocabularies/contrib/awards/schema.py +11 -34
  16. {invenio-vocabularies-1.5.1 → invenio-vocabularies-2.0.0}/invenio_vocabularies/contrib/awards/serializer.py +1 -0
  17. {invenio-vocabularies-1.5.1 → invenio-vocabularies-2.0.0}/invenio_vocabularies/contrib/names/datastreams.py +5 -34
  18. {invenio-vocabularies-1.5.1 → invenio-vocabularies-2.0.0}/invenio_vocabularies/contrib/names/jsonschemas/names/name-v1.0.0.json +0 -7
  19. {invenio-vocabularies-1.5.1 → invenio-vocabularies-2.0.0}/invenio_vocabularies/contrib/names/names.py +14 -10
  20. {invenio-vocabularies-1.5.1 → invenio-vocabularies-2.0.0}/invenio_vocabularies/contrib/names/schema.py +2 -2
  21. {invenio-vocabularies-1.5.1 → invenio-vocabularies-2.0.0}/invenio_vocabularies/services/custom_fields/vocabulary.py +9 -1
  22. {invenio-vocabularies-1.5.1 → invenio-vocabularies-2.0.0}/invenio_vocabularies/services/schema.py +28 -0
  23. {invenio-vocabularies-1.5.1 → invenio-vocabularies-2.0.0/invenio_vocabularies.egg-info}/PKG-INFO +14 -1
  24. {invenio-vocabularies-1.5.1 → invenio-vocabularies-2.0.0}/invenio_vocabularies.egg-info/SOURCES.txt +1 -0
  25. {invenio-vocabularies-1.5.1 → invenio-vocabularies-2.0.0}/run-tests.sh +1 -1
  26. {invenio-vocabularies-1.5.1 → invenio-vocabularies-2.0.0}/tests/contrib/affiliations/test_affiliations_api.py +4 -3
  27. {invenio-vocabularies-1.5.1 → invenio-vocabularies-2.0.0}/tests/contrib/affiliations/test_affiliations_jsonschema.py +0 -2
  28. {invenio-vocabularies-1.5.1 → invenio-vocabularies-2.0.0}/tests/contrib/affiliations/test_affiliations_schema.py +6 -1
  29. {invenio-vocabularies-1.5.1 → invenio-vocabularies-2.0.0}/tests/contrib/affiliations/test_affiliations_service.py +4 -2
  30. {invenio-vocabularies-1.5.1 → invenio-vocabularies-2.0.0}/tests/contrib/awards/conftest.py +2 -0
  31. {invenio-vocabularies-1.5.1 → invenio-vocabularies-2.0.0}/tests/contrib/awards/test_awards_datastreams.py +2 -0
  32. {invenio-vocabularies-1.5.1 → invenio-vocabularies-2.0.0}/tests/contrib/names/conftest.py +15 -8
  33. {invenio-vocabularies-1.5.1 → invenio-vocabularies-2.0.0}/tests/contrib/names/test_names_api.py +5 -6
  34. {invenio-vocabularies-1.5.1 → invenio-vocabularies-2.0.0}/tests/contrib/names/test_names_datastreams.py +10 -7
  35. {invenio-vocabularies-1.5.1 → invenio-vocabularies-2.0.0}/tests/contrib/names/test_names_schema.py +17 -4
  36. {invenio-vocabularies-1.5.1 → invenio-vocabularies-2.0.0}/tests/contrib/names/test_names_service.py +11 -5
  37. {invenio-vocabularies-1.5.1 → invenio-vocabularies-2.0.0}/.dockerignore +0 -0
  38. {invenio-vocabularies-1.5.1 → invenio-vocabularies-2.0.0}/.editorconfig +0 -0
  39. {invenio-vocabularies-1.5.1 → invenio-vocabularies-2.0.0}/.git-blame-ignore-revs +0 -0
  40. {invenio-vocabularies-1.5.1 → invenio-vocabularies-2.0.0}/.github/workflows/i18n-pull.yml +0 -0
  41. {invenio-vocabularies-1.5.1 → invenio-vocabularies-2.0.0}/.github/workflows/i18n-push.yml +0 -0
  42. {invenio-vocabularies-1.5.1 → invenio-vocabularies-2.0.0}/.github/workflows/pypi-publish.yml +0 -0
  43. {invenio-vocabularies-1.5.1 → invenio-vocabularies-2.0.0}/.tx/config +0 -0
  44. {invenio-vocabularies-1.5.1 → invenio-vocabularies-2.0.0}/AUTHORS.rst +0 -0
  45. {invenio-vocabularies-1.5.1 → invenio-vocabularies-2.0.0}/CONTRIBUTING.rst +0 -0
  46. {invenio-vocabularies-1.5.1 → invenio-vocabularies-2.0.0}/INSTALL.rst +0 -0
  47. {invenio-vocabularies-1.5.1 → invenio-vocabularies-2.0.0}/LICENSE +0 -0
  48. {invenio-vocabularies-1.5.1 → invenio-vocabularies-2.0.0}/MANIFEST.in +0 -0
  49. {invenio-vocabularies-1.5.1 → invenio-vocabularies-2.0.0}/README.rst +0 -0
  50. {invenio-vocabularies-1.5.1 → invenio-vocabularies-2.0.0}/babel.ini +0 -0
  51. {invenio-vocabularies-1.5.1 → invenio-vocabularies-2.0.0}/docs/Makefile +0 -0
  52. {invenio-vocabularies-1.5.1 → invenio-vocabularies-2.0.0}/docs/api.rst +0 -0
  53. {invenio-vocabularies-1.5.1 → invenio-vocabularies-2.0.0}/docs/authors.rst +0 -0
  54. {invenio-vocabularies-1.5.1 → invenio-vocabularies-2.0.0}/docs/changes.rst +0 -0
  55. {invenio-vocabularies-1.5.1 → invenio-vocabularies-2.0.0}/docs/conf.py +0 -0
  56. {invenio-vocabularies-1.5.1 → invenio-vocabularies-2.0.0}/docs/configuration.rst +0 -0
  57. {invenio-vocabularies-1.5.1 → invenio-vocabularies-2.0.0}/docs/contributing.rst +0 -0
  58. {invenio-vocabularies-1.5.1 → invenio-vocabularies-2.0.0}/docs/index.rst +0 -0
  59. {invenio-vocabularies-1.5.1 → invenio-vocabularies-2.0.0}/docs/installation.rst +0 -0
  60. {invenio-vocabularies-1.5.1 → invenio-vocabularies-2.0.0}/docs/license.rst +0 -0
  61. {invenio-vocabularies-1.5.1 → invenio-vocabularies-2.0.0}/docs/make.bat +0 -0
  62. {invenio-vocabularies-1.5.1 → invenio-vocabularies-2.0.0}/docs/requirements.txt +0 -0
  63. {invenio-vocabularies-1.5.1 → invenio-vocabularies-2.0.0}/docs/usage.rst +0 -0
  64. {invenio-vocabularies-1.5.1 → invenio-vocabularies-2.0.0}/gen-migration.sh +0 -0
  65. {invenio-vocabularies-1.5.1 → invenio-vocabularies-2.0.0}/invenio_vocabularies/alembic/17c703ce1eb7_create_names_table.py +0 -0
  66. {invenio-vocabularies-1.5.1 → invenio-vocabularies-2.0.0}/invenio_vocabularies/alembic/4a9a4fd235f8_create_vocabulary_schemes.py +0 -0
  67. {invenio-vocabularies-1.5.1 → invenio-vocabularies-2.0.0}/invenio_vocabularies/alembic/4f365fced43f_create_vocabularies_tables.py +0 -0
  68. {invenio-vocabularies-1.5.1 → invenio-vocabularies-2.0.0}/invenio_vocabularies/alembic/6312f33645c1_create_affiliations_table.py +0 -0
  69. {invenio-vocabularies-1.5.1 → invenio-vocabularies-2.0.0}/invenio_vocabularies/alembic/676dd587542d_create_funders_vocabulary_table.py +0 -0
  70. {invenio-vocabularies-1.5.1 → invenio-vocabularies-2.0.0}/invenio_vocabularies/alembic/8ff82dfb0be8_create_vocabularies_branch.py +0 -0
  71. {invenio-vocabularies-1.5.1 → invenio-vocabularies-2.0.0}/invenio_vocabularies/alembic/__init__.py +0 -0
  72. {invenio-vocabularies-1.5.1 → invenio-vocabularies-2.0.0}/invenio_vocabularies/alembic/e1146238edd3_create_awards_table.py +0 -0
  73. {invenio-vocabularies-1.5.1 → invenio-vocabularies-2.0.0}/invenio_vocabularies/assets/semantic-ui/js/invenio_vocabularies/.eslintrc.yml +0 -0
  74. {invenio-vocabularies-1.5.1 → invenio-vocabularies-2.0.0}/invenio_vocabularies/assets/semantic-ui/js/invenio_vocabularies/.prettierrc +0 -0
  75. {invenio-vocabularies-1.5.1 → invenio-vocabularies-2.0.0}/invenio_vocabularies/assets/semantic-ui/js/invenio_vocabularies/index.js +0 -0
  76. {invenio-vocabularies-1.5.1 → invenio-vocabularies-2.0.0}/invenio_vocabularies/assets/semantic-ui/js/invenio_vocabularies/package.json +0 -0
  77. {invenio-vocabularies-1.5.1 → invenio-vocabularies-2.0.0}/invenio_vocabularies/assets/semantic-ui/js/invenio_vocabularies/src/contrib/forms/Funding/AwardResults.js +0 -0
  78. {invenio-vocabularies-1.5.1 → invenio-vocabularies-2.0.0}/invenio_vocabularies/assets/semantic-ui/js/invenio_vocabularies/src/contrib/forms/Funding/CustomAwardForm.js +0 -0
  79. {invenio-vocabularies-1.5.1 → invenio-vocabularies-2.0.0}/invenio_vocabularies/assets/semantic-ui/js/invenio_vocabularies/src/contrib/forms/Funding/FunderDropdown.js +0 -0
  80. {invenio-vocabularies-1.5.1 → invenio-vocabularies-2.0.0}/invenio_vocabularies/assets/semantic-ui/js/invenio_vocabularies/src/contrib/forms/Funding/FundingField.js +0 -0
  81. {invenio-vocabularies-1.5.1 → invenio-vocabularies-2.0.0}/invenio_vocabularies/assets/semantic-ui/js/invenio_vocabularies/src/contrib/forms/Funding/FundingField.test.js +0 -0
  82. {invenio-vocabularies-1.5.1 → invenio-vocabularies-2.0.0}/invenio_vocabularies/assets/semantic-ui/js/invenio_vocabularies/src/contrib/forms/Funding/FundingFieldItem.js +0 -0
  83. {invenio-vocabularies-1.5.1 → invenio-vocabularies-2.0.0}/invenio_vocabularies/assets/semantic-ui/js/invenio_vocabularies/src/contrib/forms/Funding/FundingModal.js +0 -0
  84. {invenio-vocabularies-1.5.1 → invenio-vocabularies-2.0.0}/invenio_vocabularies/assets/semantic-ui/js/invenio_vocabularies/src/contrib/forms/Funding/NoAwardResults.js +0 -0
  85. {invenio-vocabularies-1.5.1 → invenio-vocabularies-2.0.0}/invenio_vocabularies/assets/semantic-ui/js/invenio_vocabularies/src/contrib/forms/Funding/index.js +0 -0
  86. {invenio-vocabularies-1.5.1 → invenio-vocabularies-2.0.0}/invenio_vocabularies/assets/semantic-ui/js/invenio_vocabularies/src/contrib/forms/index.js +0 -0
  87. {invenio-vocabularies-1.5.1 → invenio-vocabularies-2.0.0}/invenio_vocabularies/assets/semantic-ui/js/invenio_vocabularies/src/contrib/index.js +0 -0
  88. {invenio-vocabularies-1.5.1 → invenio-vocabularies-2.0.0}/invenio_vocabularies/assets/semantic-ui/js/invenio_vocabularies/src/index.js +0 -0
  89. {invenio-vocabularies-1.5.1 → invenio-vocabularies-2.0.0}/invenio_vocabularies/assets/semantic-ui/translations/invenio_vocabularies/i18next-scanner.config.js +0 -0
  90. {invenio-vocabularies-1.5.1 → invenio-vocabularies-2.0.0}/invenio_vocabularies/assets/semantic-ui/translations/invenio_vocabularies/i18next.js +0 -0
  91. {invenio-vocabularies-1.5.1 → invenio-vocabularies-2.0.0}/invenio_vocabularies/assets/semantic-ui/translations/invenio_vocabularies/messages/index.js +0 -0
  92. {invenio-vocabularies-1.5.1 → invenio-vocabularies-2.0.0}/invenio_vocabularies/assets/semantic-ui/translations/invenio_vocabularies/package.json +0 -0
  93. {invenio-vocabularies-1.5.1 → invenio-vocabularies-2.0.0}/invenio_vocabularies/assets/semantic-ui/translations/invenio_vocabularies/scripts/compileCatalog.js +0 -0
  94. {invenio-vocabularies-1.5.1 → invenio-vocabularies-2.0.0}/invenio_vocabularies/assets/semantic-ui/translations/invenio_vocabularies/scripts/initCatalog.js +0 -0
  95. {invenio-vocabularies-1.5.1 → invenio-vocabularies-2.0.0}/invenio_vocabularies/cli.py +0 -0
  96. {invenio-vocabularies-1.5.1 → invenio-vocabularies-2.0.0}/invenio_vocabularies/contrib/__init__.py +0 -0
  97. {invenio-vocabularies-1.5.1 → invenio-vocabularies-2.0.0}/invenio_vocabularies/contrib/affiliations/__init__.py +0 -0
  98. {invenio-vocabularies-1.5.1 → invenio-vocabularies-2.0.0}/invenio_vocabularies/contrib/affiliations/api.py +0 -0
  99. {invenio-vocabularies-1.5.1 → invenio-vocabularies-2.0.0}/invenio_vocabularies/contrib/affiliations/config.py +0 -0
  100. {invenio-vocabularies-1.5.1 → invenio-vocabularies-2.0.0}/invenio_vocabularies/contrib/affiliations/jsonschemas/__init__.py +0 -0
  101. {invenio-vocabularies-1.5.1 → invenio-vocabularies-2.0.0}/invenio_vocabularies/contrib/affiliations/mappings/__init__.py +0 -0
  102. {invenio-vocabularies-1.5.1 → invenio-vocabularies-2.0.0}/invenio_vocabularies/contrib/affiliations/mappings/os-v1/__init__.py +0 -0
  103. {invenio-vocabularies-1.5.1 → invenio-vocabularies-2.0.0}/invenio_vocabularies/contrib/affiliations/mappings/os-v1/affiliations/affiliation-v1.0.0.json +0 -0
  104. {invenio-vocabularies-1.5.1 → invenio-vocabularies-2.0.0}/invenio_vocabularies/contrib/affiliations/mappings/os-v2/__init__.py +0 -0
  105. {invenio-vocabularies-1.5.1 → invenio-vocabularies-2.0.0}/invenio_vocabularies/contrib/affiliations/mappings/os-v2/affiliations/affiliation-v1.0.0.json +0 -0
  106. {invenio-vocabularies-1.5.1 → invenio-vocabularies-2.0.0}/invenio_vocabularies/contrib/affiliations/mappings/v7/__init__.py +0 -0
  107. {invenio-vocabularies-1.5.1 → invenio-vocabularies-2.0.0}/invenio_vocabularies/contrib/affiliations/mappings/v7/affiliations/affiliation-v1.0.0.json +0 -0
  108. {invenio-vocabularies-1.5.1 → invenio-vocabularies-2.0.0}/invenio_vocabularies/contrib/affiliations/models.py +0 -0
  109. {invenio-vocabularies-1.5.1 → invenio-vocabularies-2.0.0}/invenio_vocabularies/contrib/affiliations/resources.py +0 -0
  110. {invenio-vocabularies-1.5.1 → invenio-vocabularies-2.0.0}/invenio_vocabularies/contrib/affiliations/services.py +0 -0
  111. {invenio-vocabularies-1.5.1 → invenio-vocabularies-2.0.0}/invenio_vocabularies/contrib/awards/__init__.py +0 -0
  112. {invenio-vocabularies-1.5.1 → invenio-vocabularies-2.0.0}/invenio_vocabularies/contrib/awards/api.py +0 -0
  113. {invenio-vocabularies-1.5.1 → invenio-vocabularies-2.0.0}/invenio_vocabularies/contrib/awards/awards.py +0 -0
  114. {invenio-vocabularies-1.5.1 → invenio-vocabularies-2.0.0}/invenio_vocabularies/contrib/awards/config.py +0 -0
  115. {invenio-vocabularies-1.5.1 → invenio-vocabularies-2.0.0}/invenio_vocabularies/contrib/awards/jsonschemas/__init__.py +0 -0
  116. {invenio-vocabularies-1.5.1 → invenio-vocabularies-2.0.0}/invenio_vocabularies/contrib/awards/mappings/__init__.py +0 -0
  117. {invenio-vocabularies-1.5.1 → invenio-vocabularies-2.0.0}/invenio_vocabularies/contrib/awards/mappings/os-v1/__init__.py +0 -0
  118. {invenio-vocabularies-1.5.1 → invenio-vocabularies-2.0.0}/invenio_vocabularies/contrib/awards/mappings/os-v2/__init__.py +0 -0
  119. {invenio-vocabularies-1.5.1 → invenio-vocabularies-2.0.0}/invenio_vocabularies/contrib/awards/mappings/v7/__init__.py +0 -0
  120. {invenio-vocabularies-1.5.1 → invenio-vocabularies-2.0.0}/invenio_vocabularies/contrib/awards/models.py +0 -0
  121. {invenio-vocabularies-1.5.1 → invenio-vocabularies-2.0.0}/invenio_vocabularies/contrib/awards/resources.py +0 -0
  122. {invenio-vocabularies-1.5.1 → invenio-vocabularies-2.0.0}/invenio_vocabularies/contrib/awards/services.py +0 -0
  123. {invenio-vocabularies-1.5.1 → invenio-vocabularies-2.0.0}/invenio_vocabularies/contrib/funders/__init__.py +0 -0
  124. {invenio-vocabularies-1.5.1 → invenio-vocabularies-2.0.0}/invenio_vocabularies/contrib/funders/api.py +0 -0
  125. {invenio-vocabularies-1.5.1 → invenio-vocabularies-2.0.0}/invenio_vocabularies/contrib/funders/config.py +0 -0
  126. {invenio-vocabularies-1.5.1 → invenio-vocabularies-2.0.0}/invenio_vocabularies/contrib/funders/datastreams.py +0 -0
  127. {invenio-vocabularies-1.5.1 → invenio-vocabularies-2.0.0}/invenio_vocabularies/contrib/funders/facets.py +0 -0
  128. {invenio-vocabularies-1.5.1 → invenio-vocabularies-2.0.0}/invenio_vocabularies/contrib/funders/funders.py +0 -0
  129. {invenio-vocabularies-1.5.1 → invenio-vocabularies-2.0.0}/invenio_vocabularies/contrib/funders/jsonschemas/__init__.py +0 -0
  130. {invenio-vocabularies-1.5.1 → invenio-vocabularies-2.0.0}/invenio_vocabularies/contrib/funders/jsonschemas/funders/funder-v1.0.0.json +0 -0
  131. {invenio-vocabularies-1.5.1 → invenio-vocabularies-2.0.0}/invenio_vocabularies/contrib/funders/mappings/__init__.py +0 -0
  132. {invenio-vocabularies-1.5.1 → invenio-vocabularies-2.0.0}/invenio_vocabularies/contrib/funders/mappings/os-v1/__init__.py +0 -0
  133. {invenio-vocabularies-1.5.1 → invenio-vocabularies-2.0.0}/invenio_vocabularies/contrib/funders/mappings/os-v1/funders/funder-v1.0.0.json +0 -0
  134. {invenio-vocabularies-1.5.1 → invenio-vocabularies-2.0.0}/invenio_vocabularies/contrib/funders/mappings/os-v2/__init__.py +0 -0
  135. {invenio-vocabularies-1.5.1 → invenio-vocabularies-2.0.0}/invenio_vocabularies/contrib/funders/mappings/os-v2/funders/funder-v1.0.0.json +0 -0
  136. {invenio-vocabularies-1.5.1 → invenio-vocabularies-2.0.0}/invenio_vocabularies/contrib/funders/mappings/v7/__init__.py +0 -0
  137. {invenio-vocabularies-1.5.1 → invenio-vocabularies-2.0.0}/invenio_vocabularies/contrib/funders/mappings/v7/funders/funder-v1.0.0.json +0 -0
  138. {invenio-vocabularies-1.5.1 → invenio-vocabularies-2.0.0}/invenio_vocabularies/contrib/funders/models.py +0 -0
  139. {invenio-vocabularies-1.5.1 → invenio-vocabularies-2.0.0}/invenio_vocabularies/contrib/funders/resources.py +0 -0
  140. {invenio-vocabularies-1.5.1 → invenio-vocabularies-2.0.0}/invenio_vocabularies/contrib/funders/schema.py +0 -0
  141. {invenio-vocabularies-1.5.1 → invenio-vocabularies-2.0.0}/invenio_vocabularies/contrib/funders/serializer.py +0 -0
  142. {invenio-vocabularies-1.5.1 → invenio-vocabularies-2.0.0}/invenio_vocabularies/contrib/funders/services.py +0 -0
  143. {invenio-vocabularies-1.5.1 → invenio-vocabularies-2.0.0}/invenio_vocabularies/contrib/names/__init__.py +0 -0
  144. {invenio-vocabularies-1.5.1 → invenio-vocabularies-2.0.0}/invenio_vocabularies/contrib/names/api.py +0 -0
  145. {invenio-vocabularies-1.5.1 → invenio-vocabularies-2.0.0}/invenio_vocabularies/contrib/names/config.py +0 -0
  146. {invenio-vocabularies-1.5.1 → invenio-vocabularies-2.0.0}/invenio_vocabularies/contrib/names/jsonschemas/__init__.py +0 -0
  147. {invenio-vocabularies-1.5.1 → invenio-vocabularies-2.0.0}/invenio_vocabularies/contrib/names/mappings/__init__.py +0 -0
  148. {invenio-vocabularies-1.5.1 → invenio-vocabularies-2.0.0}/invenio_vocabularies/contrib/names/mappings/os-v1/__init__.py +0 -0
  149. {invenio-vocabularies-1.5.1 → invenio-vocabularies-2.0.0}/invenio_vocabularies/contrib/names/mappings/os-v1/names/name-v1.0.0.json +0 -0
  150. {invenio-vocabularies-1.5.1 → invenio-vocabularies-2.0.0}/invenio_vocabularies/contrib/names/mappings/os-v2/__init__.py +0 -0
  151. {invenio-vocabularies-1.5.1 → invenio-vocabularies-2.0.0}/invenio_vocabularies/contrib/names/mappings/os-v2/names/name-v1.0.0.json +0 -0
  152. {invenio-vocabularies-1.5.1 → invenio-vocabularies-2.0.0}/invenio_vocabularies/contrib/names/mappings/v7/__init__.py +0 -0
  153. {invenio-vocabularies-1.5.1 → invenio-vocabularies-2.0.0}/invenio_vocabularies/contrib/names/mappings/v7/names/name-v1.0.0.json +0 -0
  154. {invenio-vocabularies-1.5.1 → invenio-vocabularies-2.0.0}/invenio_vocabularies/contrib/names/models.py +0 -0
  155. {invenio-vocabularies-1.5.1 → invenio-vocabularies-2.0.0}/invenio_vocabularies/contrib/names/resources.py +0 -0
  156. {invenio-vocabularies-1.5.1 → invenio-vocabularies-2.0.0}/invenio_vocabularies/contrib/names/services.py +0 -0
  157. {invenio-vocabularies-1.5.1 → invenio-vocabularies-2.0.0}/invenio_vocabularies/contrib/subjects/__init__.py +0 -0
  158. {invenio-vocabularies-1.5.1 → invenio-vocabularies-2.0.0}/invenio_vocabularies/contrib/subjects/api.py +0 -0
  159. {invenio-vocabularies-1.5.1 → invenio-vocabularies-2.0.0}/invenio_vocabularies/contrib/subjects/config.py +0 -0
  160. {invenio-vocabularies-1.5.1 → invenio-vocabularies-2.0.0}/invenio_vocabularies/contrib/subjects/facets.py +0 -0
  161. {invenio-vocabularies-1.5.1 → invenio-vocabularies-2.0.0}/invenio_vocabularies/contrib/subjects/jsonschemas/__init__.py +0 -0
  162. {invenio-vocabularies-1.5.1 → invenio-vocabularies-2.0.0}/invenio_vocabularies/contrib/subjects/jsonschemas/subjects/subject-v1.0.0.json +0 -0
  163. {invenio-vocabularies-1.5.1 → invenio-vocabularies-2.0.0}/invenio_vocabularies/contrib/subjects/mappings/__init__.py +0 -0
  164. {invenio-vocabularies-1.5.1 → invenio-vocabularies-2.0.0}/invenio_vocabularies/contrib/subjects/mappings/os-v1/__init__.py +0 -0
  165. {invenio-vocabularies-1.5.1 → invenio-vocabularies-2.0.0}/invenio_vocabularies/contrib/subjects/mappings/os-v1/subjects/subject-v1.0.0.json +0 -0
  166. {invenio-vocabularies-1.5.1 → invenio-vocabularies-2.0.0}/invenio_vocabularies/contrib/subjects/mappings/os-v2/__init__.py +0 -0
  167. {invenio-vocabularies-1.5.1 → invenio-vocabularies-2.0.0}/invenio_vocabularies/contrib/subjects/mappings/os-v2/subjects/subject-v1.0.0.json +0 -0
  168. {invenio-vocabularies-1.5.1 → invenio-vocabularies-2.0.0}/invenio_vocabularies/contrib/subjects/mappings/v7/__init__.py +0 -0
  169. {invenio-vocabularies-1.5.1 → invenio-vocabularies-2.0.0}/invenio_vocabularies/contrib/subjects/mappings/v7/subjects/subject-v1.0.0.json +0 -0
  170. {invenio-vocabularies-1.5.1 → invenio-vocabularies-2.0.0}/invenio_vocabularies/contrib/subjects/models.py +0 -0
  171. {invenio-vocabularies-1.5.1 → invenio-vocabularies-2.0.0}/invenio_vocabularies/contrib/subjects/resources.py +0 -0
  172. {invenio-vocabularies-1.5.1 → invenio-vocabularies-2.0.0}/invenio_vocabularies/contrib/subjects/schema.py +0 -0
  173. {invenio-vocabularies-1.5.1 → invenio-vocabularies-2.0.0}/invenio_vocabularies/contrib/subjects/services.py +0 -0
  174. {invenio-vocabularies-1.5.1 → invenio-vocabularies-2.0.0}/invenio_vocabularies/contrib/subjects/subjects.py +0 -0
  175. {invenio-vocabularies-1.5.1 → invenio-vocabularies-2.0.0}/invenio_vocabularies/datastreams/__init__.py +0 -0
  176. {invenio-vocabularies-1.5.1 → invenio-vocabularies-2.0.0}/invenio_vocabularies/datastreams/datastreams.py +0 -0
  177. {invenio-vocabularies-1.5.1 → invenio-vocabularies-2.0.0}/invenio_vocabularies/datastreams/errors.py +0 -0
  178. {invenio-vocabularies-1.5.1 → invenio-vocabularies-2.0.0}/invenio_vocabularies/datastreams/factories.py +0 -0
  179. {invenio-vocabularies-1.5.1 → invenio-vocabularies-2.0.0}/invenio_vocabularies/datastreams/readers.py +0 -0
  180. {invenio-vocabularies-1.5.1 → invenio-vocabularies-2.0.0}/invenio_vocabularies/datastreams/transformers.py +0 -0
  181. {invenio-vocabularies-1.5.1 → invenio-vocabularies-2.0.0}/invenio_vocabularies/datastreams/writers.py +0 -0
  182. {invenio-vocabularies-1.5.1 → invenio-vocabularies-2.0.0}/invenio_vocabularies/ext.py +0 -0
  183. {invenio-vocabularies-1.5.1 → invenio-vocabularies-2.0.0}/invenio_vocabularies/fixtures.py +0 -0
  184. {invenio-vocabularies-1.5.1 → invenio-vocabularies-2.0.0}/invenio_vocabularies/proxies.py +0 -0
  185. {invenio-vocabularies-1.5.1 → invenio-vocabularies-2.0.0}/invenio_vocabularies/records/__init__.py +0 -0
  186. {invenio-vocabularies-1.5.1 → invenio-vocabularies-2.0.0}/invenio_vocabularies/records/api.py +0 -0
  187. {invenio-vocabularies-1.5.1 → invenio-vocabularies-2.0.0}/invenio_vocabularies/records/jsonschemas/__init__.py +0 -0
  188. {invenio-vocabularies-1.5.1 → invenio-vocabularies-2.0.0}/invenio_vocabularies/records/jsonschemas/vocabularies/definitions-v1.0.0.json +0 -0
  189. {invenio-vocabularies-1.5.1 → invenio-vocabularies-2.0.0}/invenio_vocabularies/records/jsonschemas/vocabularies/vocabulary-v1.0.0.json +0 -0
  190. {invenio-vocabularies-1.5.1 → invenio-vocabularies-2.0.0}/invenio_vocabularies/records/mappings/__init__.py +0 -0
  191. {invenio-vocabularies-1.5.1 → invenio-vocabularies-2.0.0}/invenio_vocabularies/records/mappings/os-v1/__init__.py +0 -0
  192. {invenio-vocabularies-1.5.1 → invenio-vocabularies-2.0.0}/invenio_vocabularies/records/mappings/os-v1/vocabularies/vocabulary-v1.0.0.json +0 -0
  193. {invenio-vocabularies-1.5.1 → invenio-vocabularies-2.0.0}/invenio_vocabularies/records/mappings/os-v2/__init__.py +0 -0
  194. {invenio-vocabularies-1.5.1 → invenio-vocabularies-2.0.0}/invenio_vocabularies/records/mappings/os-v2/vocabularies/vocabulary-v1.0.0.json +0 -0
  195. {invenio-vocabularies-1.5.1 → invenio-vocabularies-2.0.0}/invenio_vocabularies/records/mappings/v7/__init__.py +0 -0
  196. {invenio-vocabularies-1.5.1 → invenio-vocabularies-2.0.0}/invenio_vocabularies/records/mappings/v7/vocabularies/vocabulary-v1.0.0.json +0 -0
  197. {invenio-vocabularies-1.5.1 → invenio-vocabularies-2.0.0}/invenio_vocabularies/records/models.py +0 -0
  198. {invenio-vocabularies-1.5.1 → invenio-vocabularies-2.0.0}/invenio_vocabularies/records/pidprovider.py +0 -0
  199. {invenio-vocabularies-1.5.1 → invenio-vocabularies-2.0.0}/invenio_vocabularies/records/systemfields/__init__.py +0 -0
  200. {invenio-vocabularies-1.5.1 → invenio-vocabularies-2.0.0}/invenio_vocabularies/records/systemfields/pid.py +0 -0
  201. {invenio-vocabularies-1.5.1 → invenio-vocabularies-2.0.0}/invenio_vocabularies/records/systemfields/relations.py +0 -0
  202. {invenio-vocabularies-1.5.1 → invenio-vocabularies-2.0.0}/invenio_vocabularies/resources/__init__.py +0 -0
  203. {invenio-vocabularies-1.5.1 → invenio-vocabularies-2.0.0}/invenio_vocabularies/resources/resource.py +0 -0
  204. {invenio-vocabularies-1.5.1 → invenio-vocabularies-2.0.0}/invenio_vocabularies/resources/schema.py +0 -0
  205. {invenio-vocabularies-1.5.1 → invenio-vocabularies-2.0.0}/invenio_vocabularies/resources/serializer.py +0 -0
  206. {invenio-vocabularies-1.5.1 → invenio-vocabularies-2.0.0}/invenio_vocabularies/services/__init__.py +0 -0
  207. {invenio-vocabularies-1.5.1 → invenio-vocabularies-2.0.0}/invenio_vocabularies/services/components.py +0 -0
  208. {invenio-vocabularies-1.5.1 → invenio-vocabularies-2.0.0}/invenio_vocabularies/services/custom_fields/__init__.py +0 -0
  209. {invenio-vocabularies-1.5.1 → invenio-vocabularies-2.0.0}/invenio_vocabularies/services/facets.py +0 -0
  210. {invenio-vocabularies-1.5.1 → invenio-vocabularies-2.0.0}/invenio_vocabularies/services/permissions.py +0 -0
  211. {invenio-vocabularies-1.5.1 → invenio-vocabularies-2.0.0}/invenio_vocabularies/services/querystr.py +0 -0
  212. {invenio-vocabularies-1.5.1 → invenio-vocabularies-2.0.0}/invenio_vocabularies/services/service.py +0 -0
  213. {invenio-vocabularies-1.5.1 → invenio-vocabularies-2.0.0}/invenio_vocabularies/services/tasks.py +0 -0
  214. {invenio-vocabularies-1.5.1 → invenio-vocabularies-2.0.0}/invenio_vocabularies/translations/af/LC_MESSAGES/messages.mo +0 -0
  215. {invenio-vocabularies-1.5.1 → invenio-vocabularies-2.0.0}/invenio_vocabularies/translations/af/LC_MESSAGES/messages.po +0 -0
  216. {invenio-vocabularies-1.5.1 → invenio-vocabularies-2.0.0}/invenio_vocabularies/translations/ar/LC_MESSAGES/messages.mo +0 -0
  217. {invenio-vocabularies-1.5.1 → invenio-vocabularies-2.0.0}/invenio_vocabularies/translations/ar/LC_MESSAGES/messages.po +0 -0
  218. {invenio-vocabularies-1.5.1 → invenio-vocabularies-2.0.0}/invenio_vocabularies/translations/bg/LC_MESSAGES/messages.mo +0 -0
  219. {invenio-vocabularies-1.5.1 → invenio-vocabularies-2.0.0}/invenio_vocabularies/translations/bg/LC_MESSAGES/messages.po +0 -0
  220. {invenio-vocabularies-1.5.1 → invenio-vocabularies-2.0.0}/invenio_vocabularies/translations/ca/LC_MESSAGES/messages.mo +0 -0
  221. {invenio-vocabularies-1.5.1 → invenio-vocabularies-2.0.0}/invenio_vocabularies/translations/ca/LC_MESSAGES/messages.po +0 -0
  222. {invenio-vocabularies-1.5.1 → invenio-vocabularies-2.0.0}/invenio_vocabularies/translations/cs/LC_MESSAGES/messages.mo +0 -0
  223. {invenio-vocabularies-1.5.1 → invenio-vocabularies-2.0.0}/invenio_vocabularies/translations/cs/LC_MESSAGES/messages.po +0 -0
  224. {invenio-vocabularies-1.5.1 → invenio-vocabularies-2.0.0}/invenio_vocabularies/translations/da/LC_MESSAGES/messages.mo +0 -0
  225. {invenio-vocabularies-1.5.1 → invenio-vocabularies-2.0.0}/invenio_vocabularies/translations/da/LC_MESSAGES/messages.po +0 -0
  226. {invenio-vocabularies-1.5.1 → invenio-vocabularies-2.0.0}/invenio_vocabularies/translations/de/LC_MESSAGES/messages.mo +0 -0
  227. {invenio-vocabularies-1.5.1 → invenio-vocabularies-2.0.0}/invenio_vocabularies/translations/de/LC_MESSAGES/messages.po +0 -0
  228. {invenio-vocabularies-1.5.1 → invenio-vocabularies-2.0.0}/invenio_vocabularies/translations/de_AT/LC_MESSAGES/messages.mo +0 -0
  229. {invenio-vocabularies-1.5.1 → invenio-vocabularies-2.0.0}/invenio_vocabularies/translations/de_AT/LC_MESSAGES/messages.po +0 -0
  230. {invenio-vocabularies-1.5.1 → invenio-vocabularies-2.0.0}/invenio_vocabularies/translations/de_DE/LC_MESSAGES/messages.mo +0 -0
  231. {invenio-vocabularies-1.5.1 → invenio-vocabularies-2.0.0}/invenio_vocabularies/translations/de_DE/LC_MESSAGES/messages.po +0 -0
  232. {invenio-vocabularies-1.5.1 → invenio-vocabularies-2.0.0}/invenio_vocabularies/translations/el/LC_MESSAGES/messages.mo +0 -0
  233. {invenio-vocabularies-1.5.1 → invenio-vocabularies-2.0.0}/invenio_vocabularies/translations/el/LC_MESSAGES/messages.po +0 -0
  234. {invenio-vocabularies-1.5.1 → invenio-vocabularies-2.0.0}/invenio_vocabularies/translations/en/LC_MESSAGES/messages.mo +0 -0
  235. {invenio-vocabularies-1.5.1 → invenio-vocabularies-2.0.0}/invenio_vocabularies/translations/en/LC_MESSAGES/messages.po +0 -0
  236. {invenio-vocabularies-1.5.1 → invenio-vocabularies-2.0.0}/invenio_vocabularies/translations/en_AT/LC_MESSAGES/messages.mo +0 -0
  237. {invenio-vocabularies-1.5.1 → invenio-vocabularies-2.0.0}/invenio_vocabularies/translations/en_AT/LC_MESSAGES/messages.po +0 -0
  238. {invenio-vocabularies-1.5.1 → invenio-vocabularies-2.0.0}/invenio_vocabularies/translations/en_HU/LC_MESSAGES/messages.mo +0 -0
  239. {invenio-vocabularies-1.5.1 → invenio-vocabularies-2.0.0}/invenio_vocabularies/translations/en_HU/LC_MESSAGES/messages.po +0 -0
  240. {invenio-vocabularies-1.5.1 → invenio-vocabularies-2.0.0}/invenio_vocabularies/translations/es/LC_MESSAGES/messages.mo +0 -0
  241. {invenio-vocabularies-1.5.1 → invenio-vocabularies-2.0.0}/invenio_vocabularies/translations/es/LC_MESSAGES/messages.po +0 -0
  242. {invenio-vocabularies-1.5.1 → invenio-vocabularies-2.0.0}/invenio_vocabularies/translations/es_CU/LC_MESSAGES/messages.mo +0 -0
  243. {invenio-vocabularies-1.5.1 → invenio-vocabularies-2.0.0}/invenio_vocabularies/translations/es_CU/LC_MESSAGES/messages.po +0 -0
  244. {invenio-vocabularies-1.5.1 → invenio-vocabularies-2.0.0}/invenio_vocabularies/translations/es_MX/LC_MESSAGES/messages.mo +0 -0
  245. {invenio-vocabularies-1.5.1 → invenio-vocabularies-2.0.0}/invenio_vocabularies/translations/es_MX/LC_MESSAGES/messages.po +0 -0
  246. {invenio-vocabularies-1.5.1 → invenio-vocabularies-2.0.0}/invenio_vocabularies/translations/et/LC_MESSAGES/messages.mo +0 -0
  247. {invenio-vocabularies-1.5.1 → invenio-vocabularies-2.0.0}/invenio_vocabularies/translations/et/LC_MESSAGES/messages.po +0 -0
  248. {invenio-vocabularies-1.5.1 → invenio-vocabularies-2.0.0}/invenio_vocabularies/translations/et_EE/LC_MESSAGES/messages.mo +0 -0
  249. {invenio-vocabularies-1.5.1 → invenio-vocabularies-2.0.0}/invenio_vocabularies/translations/et_EE/LC_MESSAGES/messages.po +0 -0
  250. {invenio-vocabularies-1.5.1 → invenio-vocabularies-2.0.0}/invenio_vocabularies/translations/fa/LC_MESSAGES/messages.mo +0 -0
  251. {invenio-vocabularies-1.5.1 → invenio-vocabularies-2.0.0}/invenio_vocabularies/translations/fa/LC_MESSAGES/messages.po +0 -0
  252. {invenio-vocabularies-1.5.1 → invenio-vocabularies-2.0.0}/invenio_vocabularies/translations/fa_IR/LC_MESSAGES/messages.mo +0 -0
  253. {invenio-vocabularies-1.5.1 → invenio-vocabularies-2.0.0}/invenio_vocabularies/translations/fa_IR/LC_MESSAGES/messages.po +0 -0
  254. {invenio-vocabularies-1.5.1 → invenio-vocabularies-2.0.0}/invenio_vocabularies/translations/fr/LC_MESSAGES/messages.mo +0 -0
  255. {invenio-vocabularies-1.5.1 → invenio-vocabularies-2.0.0}/invenio_vocabularies/translations/fr/LC_MESSAGES/messages.po +0 -0
  256. {invenio-vocabularies-1.5.1 → invenio-vocabularies-2.0.0}/invenio_vocabularies/translations/fr_CI/LC_MESSAGES/messages.mo +0 -0
  257. {invenio-vocabularies-1.5.1 → invenio-vocabularies-2.0.0}/invenio_vocabularies/translations/fr_CI/LC_MESSAGES/messages.po +0 -0
  258. {invenio-vocabularies-1.5.1 → invenio-vocabularies-2.0.0}/invenio_vocabularies/translations/fr_FR/LC_MESSAGES/messages.mo +0 -0
  259. {invenio-vocabularies-1.5.1 → invenio-vocabularies-2.0.0}/invenio_vocabularies/translations/fr_FR/LC_MESSAGES/messages.po +0 -0
  260. {invenio-vocabularies-1.5.1 → invenio-vocabularies-2.0.0}/invenio_vocabularies/translations/gl/LC_MESSAGES/messages.mo +0 -0
  261. {invenio-vocabularies-1.5.1 → invenio-vocabularies-2.0.0}/invenio_vocabularies/translations/gl/LC_MESSAGES/messages.po +0 -0
  262. {invenio-vocabularies-1.5.1 → invenio-vocabularies-2.0.0}/invenio_vocabularies/translations/hi_IN/LC_MESSAGES/messages.mo +0 -0
  263. {invenio-vocabularies-1.5.1 → invenio-vocabularies-2.0.0}/invenio_vocabularies/translations/hi_IN/LC_MESSAGES/messages.po +0 -0
  264. {invenio-vocabularies-1.5.1 → invenio-vocabularies-2.0.0}/invenio_vocabularies/translations/hr/LC_MESSAGES/messages.mo +0 -0
  265. {invenio-vocabularies-1.5.1 → invenio-vocabularies-2.0.0}/invenio_vocabularies/translations/hr/LC_MESSAGES/messages.po +0 -0
  266. {invenio-vocabularies-1.5.1 → invenio-vocabularies-2.0.0}/invenio_vocabularies/translations/hu/LC_MESSAGES/messages.mo +0 -0
  267. {invenio-vocabularies-1.5.1 → invenio-vocabularies-2.0.0}/invenio_vocabularies/translations/hu/LC_MESSAGES/messages.po +0 -0
  268. {invenio-vocabularies-1.5.1 → invenio-vocabularies-2.0.0}/invenio_vocabularies/translations/hu_HU/LC_MESSAGES/messages.mo +0 -0
  269. {invenio-vocabularies-1.5.1 → invenio-vocabularies-2.0.0}/invenio_vocabularies/translations/hu_HU/LC_MESSAGES/messages.po +0 -0
  270. {invenio-vocabularies-1.5.1 → invenio-vocabularies-2.0.0}/invenio_vocabularies/translations/it/LC_MESSAGES/messages.mo +0 -0
  271. {invenio-vocabularies-1.5.1 → invenio-vocabularies-2.0.0}/invenio_vocabularies/translations/it/LC_MESSAGES/messages.po +0 -0
  272. {invenio-vocabularies-1.5.1 → invenio-vocabularies-2.0.0}/invenio_vocabularies/translations/ja/LC_MESSAGES/messages.mo +0 -0
  273. {invenio-vocabularies-1.5.1 → invenio-vocabularies-2.0.0}/invenio_vocabularies/translations/ja/LC_MESSAGES/messages.po +0 -0
  274. {invenio-vocabularies-1.5.1 → invenio-vocabularies-2.0.0}/invenio_vocabularies/translations/ka/LC_MESSAGES/messages.mo +0 -0
  275. {invenio-vocabularies-1.5.1 → invenio-vocabularies-2.0.0}/invenio_vocabularies/translations/ka/LC_MESSAGES/messages.po +0 -0
  276. {invenio-vocabularies-1.5.1 → invenio-vocabularies-2.0.0}/invenio_vocabularies/translations/lt/LC_MESSAGES/messages.mo +0 -0
  277. {invenio-vocabularies-1.5.1 → invenio-vocabularies-2.0.0}/invenio_vocabularies/translations/lt/LC_MESSAGES/messages.po +0 -0
  278. {invenio-vocabularies-1.5.1 → invenio-vocabularies-2.0.0}/invenio_vocabularies/translations/messages.pot +0 -0
  279. {invenio-vocabularies-1.5.1 → invenio-vocabularies-2.0.0}/invenio_vocabularies/translations/ne/LC_MESSAGES/messages.mo +0 -0
  280. {invenio-vocabularies-1.5.1 → invenio-vocabularies-2.0.0}/invenio_vocabularies/translations/ne/LC_MESSAGES/messages.po +0 -0
  281. {invenio-vocabularies-1.5.1 → invenio-vocabularies-2.0.0}/invenio_vocabularies/translations/no/LC_MESSAGES/messages.mo +0 -0
  282. {invenio-vocabularies-1.5.1 → invenio-vocabularies-2.0.0}/invenio_vocabularies/translations/no/LC_MESSAGES/messages.po +0 -0
  283. {invenio-vocabularies-1.5.1 → invenio-vocabularies-2.0.0}/invenio_vocabularies/translations/pl/LC_MESSAGES/messages.mo +0 -0
  284. {invenio-vocabularies-1.5.1 → invenio-vocabularies-2.0.0}/invenio_vocabularies/translations/pl/LC_MESSAGES/messages.po +0 -0
  285. {invenio-vocabularies-1.5.1 → invenio-vocabularies-2.0.0}/invenio_vocabularies/translations/pt/LC_MESSAGES/messages.mo +0 -0
  286. {invenio-vocabularies-1.5.1 → invenio-vocabularies-2.0.0}/invenio_vocabularies/translations/pt/LC_MESSAGES/messages.po +0 -0
  287. {invenio-vocabularies-1.5.1 → invenio-vocabularies-2.0.0}/invenio_vocabularies/translations/ro/LC_MESSAGES/messages.mo +0 -0
  288. {invenio-vocabularies-1.5.1 → invenio-vocabularies-2.0.0}/invenio_vocabularies/translations/ro/LC_MESSAGES/messages.po +0 -0
  289. {invenio-vocabularies-1.5.1 → invenio-vocabularies-2.0.0}/invenio_vocabularies/translations/ru/LC_MESSAGES/messages.mo +0 -0
  290. {invenio-vocabularies-1.5.1 → invenio-vocabularies-2.0.0}/invenio_vocabularies/translations/ru/LC_MESSAGES/messages.po +0 -0
  291. {invenio-vocabularies-1.5.1 → invenio-vocabularies-2.0.0}/invenio_vocabularies/translations/rw/LC_MESSAGES/messages.mo +0 -0
  292. {invenio-vocabularies-1.5.1 → invenio-vocabularies-2.0.0}/invenio_vocabularies/translations/rw/LC_MESSAGES/messages.po +0 -0
  293. {invenio-vocabularies-1.5.1 → invenio-vocabularies-2.0.0}/invenio_vocabularies/translations/sk/LC_MESSAGES/messages.mo +0 -0
  294. {invenio-vocabularies-1.5.1 → invenio-vocabularies-2.0.0}/invenio_vocabularies/translations/sk/LC_MESSAGES/messages.po +0 -0
  295. {invenio-vocabularies-1.5.1 → invenio-vocabularies-2.0.0}/invenio_vocabularies/translations/sv/LC_MESSAGES/messages.mo +0 -0
  296. {invenio-vocabularies-1.5.1 → invenio-vocabularies-2.0.0}/invenio_vocabularies/translations/sv/LC_MESSAGES/messages.po +0 -0
  297. {invenio-vocabularies-1.5.1 → invenio-vocabularies-2.0.0}/invenio_vocabularies/translations/sv_SE/LC_MESSAGES/messages.mo +0 -0
  298. {invenio-vocabularies-1.5.1 → invenio-vocabularies-2.0.0}/invenio_vocabularies/translations/sv_SE/LC_MESSAGES/messages.po +0 -0
  299. {invenio-vocabularies-1.5.1 → invenio-vocabularies-2.0.0}/invenio_vocabularies/translations/tr/LC_MESSAGES/messages.mo +0 -0
  300. {invenio-vocabularies-1.5.1 → invenio-vocabularies-2.0.0}/invenio_vocabularies/translations/tr/LC_MESSAGES/messages.po +0 -0
  301. {invenio-vocabularies-1.5.1 → invenio-vocabularies-2.0.0}/invenio_vocabularies/translations/uk/LC_MESSAGES/messages.mo +0 -0
  302. {invenio-vocabularies-1.5.1 → invenio-vocabularies-2.0.0}/invenio_vocabularies/translations/uk/LC_MESSAGES/messages.po +0 -0
  303. {invenio-vocabularies-1.5.1 → invenio-vocabularies-2.0.0}/invenio_vocabularies/translations/uk_UA/LC_MESSAGES/messages.mo +0 -0
  304. {invenio-vocabularies-1.5.1 → invenio-vocabularies-2.0.0}/invenio_vocabularies/translations/uk_UA/LC_MESSAGES/messages.po +0 -0
  305. {invenio-vocabularies-1.5.1 → invenio-vocabularies-2.0.0}/invenio_vocabularies/translations/zh_CN/LC_MESSAGES/messages.mo +0 -0
  306. {invenio-vocabularies-1.5.1 → invenio-vocabularies-2.0.0}/invenio_vocabularies/translations/zh_CN/LC_MESSAGES/messages.po +0 -0
  307. {invenio-vocabularies-1.5.1 → invenio-vocabularies-2.0.0}/invenio_vocabularies/translations/zh_TW/LC_MESSAGES/messages.mo +0 -0
  308. {invenio-vocabularies-1.5.1 → invenio-vocabularies-2.0.0}/invenio_vocabularies/translations/zh_TW/LC_MESSAGES/messages.po +0 -0
  309. {invenio-vocabularies-1.5.1 → invenio-vocabularies-2.0.0}/invenio_vocabularies/views.py +0 -0
  310. {invenio-vocabularies-1.5.1 → invenio-vocabularies-2.0.0}/invenio_vocabularies/webpack.py +0 -0
  311. {invenio-vocabularies-1.5.1 → invenio-vocabularies-2.0.0}/invenio_vocabularies.egg-info/dependency_links.txt +0 -0
  312. {invenio-vocabularies-1.5.1 → invenio-vocabularies-2.0.0}/invenio_vocabularies.egg-info/entry_points.txt +0 -0
  313. {invenio-vocabularies-1.5.1 → invenio-vocabularies-2.0.0}/invenio_vocabularies.egg-info/not-zip-safe +0 -0
  314. {invenio-vocabularies-1.5.1 → invenio-vocabularies-2.0.0}/invenio_vocabularies.egg-info/requires.txt +0 -0
  315. {invenio-vocabularies-1.5.1 → invenio-vocabularies-2.0.0}/invenio_vocabularies.egg-info/top_level.txt +0 -0
  316. {invenio-vocabularies-1.5.1 → invenio-vocabularies-2.0.0}/pyproject.toml +0 -0
  317. {invenio-vocabularies-1.5.1 → invenio-vocabularies-2.0.0}/requirements-feature.txt +0 -0
  318. {invenio-vocabularies-1.5.1 → invenio-vocabularies-2.0.0}/run-js-linter.sh +0 -0
  319. {invenio-vocabularies-1.5.1 → invenio-vocabularies-2.0.0}/setup.cfg +0 -0
  320. {invenio-vocabularies-1.5.1 → invenio-vocabularies-2.0.0}/setup.py +0 -0
  321. {invenio-vocabularies-1.5.1 → invenio-vocabularies-2.0.0}/tests/conftest.py +0 -0
  322. {invenio-vocabularies-1.5.1 → invenio-vocabularies-2.0.0}/tests/contrib/affiliations/conftest.py +0 -0
  323. {invenio-vocabularies-1.5.1 → invenio-vocabularies-2.0.0}/tests/contrib/affiliations/test_affiliations_resource.py +0 -0
  324. {invenio-vocabularies-1.5.1 → invenio-vocabularies-2.0.0}/tests/contrib/awards/test_awards_api.py +0 -0
  325. {invenio-vocabularies-1.5.1 → invenio-vocabularies-2.0.0}/tests/contrib/awards/test_awards_jsonschema.py +0 -0
  326. {invenio-vocabularies-1.5.1 → invenio-vocabularies-2.0.0}/tests/contrib/awards/test_awards_resource.py +0 -0
  327. {invenio-vocabularies-1.5.1 → invenio-vocabularies-2.0.0}/tests/contrib/awards/test_awards_schema.py +0 -0
  328. {invenio-vocabularies-1.5.1 → invenio-vocabularies-2.0.0}/tests/contrib/awards/test_awards_service.py +0 -0
  329. {invenio-vocabularies-1.5.1 → invenio-vocabularies-2.0.0}/tests/contrib/funders/conftest.py +0 -0
  330. {invenio-vocabularies-1.5.1 → invenio-vocabularies-2.0.0}/tests/contrib/funders/test_funders_api.py +0 -0
  331. {invenio-vocabularies-1.5.1 → invenio-vocabularies-2.0.0}/tests/contrib/funders/test_funders_datastreams.py +0 -0
  332. {invenio-vocabularies-1.5.1 → invenio-vocabularies-2.0.0}/tests/contrib/funders/test_funders_jsonschema.py +0 -0
  333. {invenio-vocabularies-1.5.1 → invenio-vocabularies-2.0.0}/tests/contrib/funders/test_funders_resource.py +0 -0
  334. {invenio-vocabularies-1.5.1 → invenio-vocabularies-2.0.0}/tests/contrib/funders/test_funders_schema.py +0 -0
  335. {invenio-vocabularies-1.5.1 → invenio-vocabularies-2.0.0}/tests/contrib/funders/test_funders_service.py +0 -0
  336. {invenio-vocabularies-1.5.1 → invenio-vocabularies-2.0.0}/tests/contrib/names/test_names_jsonschema.py +0 -0
  337. {invenio-vocabularies-1.5.1 → invenio-vocabularies-2.0.0}/tests/contrib/names/test_names_resource.py +0 -0
  338. {invenio-vocabularies-1.5.1 → invenio-vocabularies-2.0.0}/tests/contrib/subjects/conftest.py +0 -0
  339. {invenio-vocabularies-1.5.1 → invenio-vocabularies-2.0.0}/tests/contrib/subjects/test_subjects_api.py +0 -0
  340. {invenio-vocabularies-1.5.1 → invenio-vocabularies-2.0.0}/tests/contrib/subjects/test_subjects_facets.py +0 -0
  341. {invenio-vocabularies-1.5.1 → invenio-vocabularies-2.0.0}/tests/contrib/subjects/test_subjects_jsonschema.py +0 -0
  342. {invenio-vocabularies-1.5.1 → invenio-vocabularies-2.0.0}/tests/contrib/subjects/test_subjects_resource.py +0 -0
  343. {invenio-vocabularies-1.5.1 → invenio-vocabularies-2.0.0}/tests/contrib/subjects/test_subjects_schema.py +0 -0
  344. {invenio-vocabularies-1.5.1 → invenio-vocabularies-2.0.0}/tests/contrib/subjects/test_subjects_service.py +0 -0
  345. {invenio-vocabularies-1.5.1 → invenio-vocabularies-2.0.0}/tests/custom_fields/test_custom_fields.py +0 -0
  346. {invenio-vocabularies-1.5.1 → invenio-vocabularies-2.0.0}/tests/datastreams/conftest.py +0 -0
  347. {invenio-vocabularies-1.5.1 → invenio-vocabularies-2.0.0}/tests/datastreams/test_datastreams.py +0 -0
  348. {invenio-vocabularies-1.5.1 → invenio-vocabularies-2.0.0}/tests/datastreams/test_fixtures.py +0 -0
  349. {invenio-vocabularies-1.5.1 → invenio-vocabularies-2.0.0}/tests/datastreams/test_readers.py +0 -0
  350. {invenio-vocabularies-1.5.1 → invenio-vocabularies-2.0.0}/tests/datastreams/test_transformers.py +0 -0
  351. {invenio-vocabularies-1.5.1 → invenio-vocabularies-2.0.0}/tests/datastreams/test_writers.py +0 -0
  352. {invenio-vocabularies-1.5.1 → invenio-vocabularies-2.0.0}/tests/datastreams/vocabularies.yaml +0 -0
  353. {invenio-vocabularies-1.5.1 → invenio-vocabularies-2.0.0}/tests/mock_module/__init__.py +0 -0
  354. {invenio-vocabularies-1.5.1 → invenio-vocabularies-2.0.0}/tests/mock_module/api.py +0 -0
  355. {invenio-vocabularies-1.5.1 → invenio-vocabularies-2.0.0}/tests/mock_module/jsonschemas/__init__.py +0 -0
  356. {invenio-vocabularies-1.5.1 → invenio-vocabularies-2.0.0}/tests/mock_module/jsonschemas/records/record-v1.0.0.json +0 -0
  357. {invenio-vocabularies-1.5.1 → invenio-vocabularies-2.0.0}/tests/mock_module/mappings/__init__.py +0 -0
  358. {invenio-vocabularies-1.5.1 → invenio-vocabularies-2.0.0}/tests/mock_module/mappings/v6/__init__.py +0 -0
  359. {invenio-vocabularies-1.5.1 → invenio-vocabularies-2.0.0}/tests/mock_module/mappings/v6/records/record-v1.0.0.json +0 -0
  360. {invenio-vocabularies-1.5.1 → invenio-vocabularies-2.0.0}/tests/mock_module/mappings/v7/__init__.py +0 -0
  361. {invenio-vocabularies-1.5.1 → invenio-vocabularies-2.0.0}/tests/mock_module/mappings/v7/records/record-v1.0.0.json +0 -0
  362. {invenio-vocabularies-1.5.1 → invenio-vocabularies-2.0.0}/tests/mock_module/models.py +0 -0
  363. {invenio-vocabularies-1.5.1 → invenio-vocabularies-2.0.0}/tests/records/conftest.py +0 -0
  364. {invenio-vocabularies-1.5.1 → invenio-vocabularies-2.0.0}/tests/records/test_api.py +0 -0
  365. {invenio-vocabularies-1.5.1 → invenio-vocabularies-2.0.0}/tests/records/test_jsonschema.py +0 -0
  366. {invenio-vocabularies-1.5.1 → invenio-vocabularies-2.0.0}/tests/records/test_models.py +0 -0
  367. {invenio-vocabularies-1.5.1 → invenio-vocabularies-2.0.0}/tests/records/test_relationship.py +0 -0
  368. {invenio-vocabularies-1.5.1 → invenio-vocabularies-2.0.0}/tests/resources/conftest.py +0 -0
  369. {invenio-vocabularies-1.5.1 → invenio-vocabularies-2.0.0}/tests/resources/test_resources_get.py +0 -0
  370. {invenio-vocabularies-1.5.1 → invenio-vocabularies-2.0.0}/tests/resources/test_resources_l10n.py +0 -0
  371. {invenio-vocabularies-1.5.1 → invenio-vocabularies-2.0.0}/tests/resources/test_resources_search.py +0 -0
  372. {invenio-vocabularies-1.5.1 → invenio-vocabularies-2.0.0}/tests/resources/test_tasks_resources.py +0 -0
  373. {invenio-vocabularies-1.5.1 → invenio-vocabularies-2.0.0}/tests/services/conftest.py +0 -0
  374. {invenio-vocabularies-1.5.1 → invenio-vocabularies-2.0.0}/tests/services/test_labels.py +0 -0
  375. {invenio-vocabularies-1.5.1 → invenio-vocabularies-2.0.0}/tests/services/test_permissions.py +0 -0
  376. {invenio-vocabularies-1.5.1 → invenio-vocabularies-2.0.0}/tests/services/test_schema.py +0 -0
  377. {invenio-vocabularies-1.5.1 → invenio-vocabularies-2.0.0}/tests/services/test_service.py +0 -0
  378. {invenio-vocabularies-1.5.1 → invenio-vocabularies-2.0.0}/tests/test_alembic.py +0 -0
  379. {invenio-vocabularies-1.5.1 → invenio-vocabularies-2.0.0}/tests/test_cli.py +0 -0
  380. {invenio-vocabularies-1.5.1 → invenio-vocabularies-2.0.0}/tests/test_invenio_vocabularies.py +0 -0
@@ -31,28 +31,16 @@ jobs:
31
31
  runs-on: ubuntu-20.04
32
32
  strategy:
33
33
  matrix:
34
- python-version: [3.7, 3.8, 3.9]
34
+ python-version: [3.8, 3.9]
35
35
  requirements-level: [pypi]
36
- db-service: [postgresql10, postgresql13, mysql8]
36
+ db-service: [postgresql14]
37
37
  search-service: [opensearch2, elasticsearch7]
38
38
  node-version: [16.x]
39
- exclude:
40
- - python-version: 3.7
41
- db-service: postgresql13
42
-
43
- - python-version: 3.7
44
- db-service: mysql8
45
-
46
39
  include:
47
40
  - search-service: opensearch2
48
41
  SEARCH_EXTRAS: "opensearch2"
49
-
50
42
  - search-service: elasticsearch7
51
43
  SEARCH_EXTRAS: "elasticsearch7"
52
-
53
- - db-service: mysql8
54
- DB_EXTRAS: "mysql"
55
-
56
44
  env:
57
45
  DB: ${{ matrix.db-service }}
58
46
  SEARCH: ${{ matrix.search-service }}
@@ -8,6 +8,19 @@
8
8
  Changes
9
9
  =======
10
10
 
11
+ Version 2.0.0 (2023-09-14)
12
+
13
+ - contrib-awards: add "program" to schema fields
14
+ - global: switch names and affiliations to model PID field
15
+ - ci: update matrix
16
+ - awards: add "program" field
17
+ - config: update awards funders mapping
18
+ - service: add sort option to load vocabs
19
+
20
+ Version 1.6.0 (2023-09-12)
21
+
22
+ - awards: add acronym to schema
23
+
11
24
  Version 1.5.1 (2023-07-07)
12
25
 
13
26
  - fix string type columns for mysql
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.1
2
2
  Name: invenio-vocabularies
3
- Version: 1.5.1
3
+ Version: 2.0.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,19 @@ Description: ..
50
50
  Changes
51
51
  =======
52
52
 
53
+ Version 2.0.0 (2023-09-14)
54
+
55
+ - contrib-awards: add "program" to schema fields
56
+ - global: switch names and affiliations to model PID field
57
+ - ci: update matrix
58
+ - awards: add "program" field
59
+ - config: update awards funders mapping
60
+ - service: add sort option to load vocabs
61
+
62
+ Version 1.6.0 (2023-09-12)
63
+
64
+ - awards: add acronym to schema
65
+
53
66
  Version 1.5.1 (2023-07-07)
54
67
 
55
68
  - fix string type columns for mysql
@@ -10,6 +10,6 @@
10
10
 
11
11
  from .ext import InvenioVocabularies
12
12
 
13
- __version__ = "1.5.1"
13
+ __version__ = "2.0.0"
14
14
 
15
15
  __all__ = ("__version__", "InvenioVocabularies")
@@ -0,0 +1,96 @@
1
+ #
2
+ # This file is part of Invenio.
3
+ # Copyright (C) 2023 CERN.
4
+ #
5
+ # Invenio is free software; you can redistribute it and/or modify it
6
+ # under the terms of the MIT License; see LICENSE file for more details.
7
+
8
+ """Add "pid" column to names and affiliations tables."""
9
+
10
+ import sqlalchemy as sa
11
+ from alembic import op
12
+
13
+ # revision identifiers, used by Alembic.
14
+ revision = "55a700f897b6"
15
+ down_revision = "e1146238edd3"
16
+ branch_labels = ()
17
+ depends_on = None
18
+
19
+
20
+ pids_table = sa.sql.table(
21
+ "pidstore_pid",
22
+ sa.sql.column("pid_type"),
23
+ sa.sql.column("pid_value"),
24
+ sa.sql.column("object_uuid"),
25
+ sa.sql.column("object_type"),
26
+ )
27
+ names_table = sa.sql.table(
28
+ "name_metadata",
29
+ sa.sql.column("id"),
30
+ sa.sql.column("pid"),
31
+ )
32
+ affiliations_table = sa.sql.table(
33
+ "affiliation_metadata",
34
+ sa.sql.column("id"),
35
+ sa.sql.column("pid"),
36
+ )
37
+
38
+
39
+ def upgrade():
40
+ """Upgrade database."""
41
+ op.add_column(
42
+ "name_metadata",
43
+ sa.Column("pid", sa.String(255), nullable=True),
44
+ )
45
+ # populate from PIDStore
46
+ op.execute(
47
+ names_table.update()
48
+ .where(
49
+ names_table.c.id == pids_table.c.object_uuid,
50
+ pids_table.c.object_type == "rec",
51
+ pids_table.c.pid_type == "names",
52
+ )
53
+ .values(pid=pids_table.c.pid_value)
54
+ )
55
+ op.create_unique_constraint(
56
+ op.f("uq_name_metadata_pid"),
57
+ "name_metadata",
58
+ ["pid"],
59
+ )
60
+
61
+ op.add_column(
62
+ "affiliation_metadata",
63
+ sa.Column("pid", sa.String(255), nullable=True),
64
+ )
65
+ # populate from PIDStore
66
+ op.execute(
67
+ affiliations_table.update()
68
+ .where(
69
+ affiliations_table.c.id == pids_table.c.object_uuid,
70
+ pids_table.c.object_type == "rec",
71
+ pids_table.c.pid_type == "aff",
72
+ )
73
+ .values(pid=pids_table.c.pid_value)
74
+ )
75
+
76
+ op.create_unique_constraint(
77
+ op.f("uq_affiliation_metadata_pid"),
78
+ "affiliation_metadata",
79
+ ["pid"],
80
+ )
81
+
82
+
83
+ def downgrade():
84
+ """Downgrade database."""
85
+ op.drop_constraint(
86
+ op.f("uq_name_metadata_pid"),
87
+ "name_metadata",
88
+ type_="unique",
89
+ )
90
+ op.drop_constraint(
91
+ op.f("uq_affiliation_metadata_pid"),
92
+ "affiliation_metadata",
93
+ type_="unique",
94
+ )
95
+ op.drop_column("name_metadata", "pid")
96
+ op.drop_column("affiliation_metadata", "pid")
@@ -62,15 +62,18 @@ VOCABULARIES_AWARD_SCHEMES = {
62
62
  """Awards allowed identifier schemes."""
63
63
 
64
64
  VOCABULARIES_AWARDS_OPENAIRE_FUNDERS = {
65
- "anr_________": "00rbzpz17",
66
65
  "aka_________": "05k73zm37",
66
+ "anr_________": "00rbzpz17",
67
67
  "arc_________": "05mmh0f86",
68
+ "asap________": "03zj4c476",
68
69
  "cihr________": "01gavpb45",
69
70
  "corda_______": "00k4n6c32",
71
+ "corda_____he": "00k4n6c32",
70
72
  "corda__h2020": "00k4n6c32",
71
73
  "euenvagency_": "02k4b9v70",
72
74
  "fct_________": "00snfqn58",
73
75
  "fwf_________": "013tf3c58",
76
+ "inca________": "03m8vkq32",
74
77
  "irb_hr______": "03n51vw80",
75
78
  "mestd_______": "01znas443",
76
79
  "nhmrc_______": "011kf5r70",
@@ -78,12 +81,12 @@ VOCABULARIES_AWARDS_OPENAIRE_FUNDERS = {
78
81
  "nserc_______": "01h531d29",
79
82
  "nsf_________": "021nxhr62",
80
83
  "nwo_________": "04jsz6e67",
81
- "rcuk________": "10.13039/501100000690",
82
- "ukri________": "001aqnf71",
84
+ "rcuk________": "00dq2kk65", # deprecated funder org
83
85
  "sfi_________": "0271asj38",
84
86
  "snsf________": "00yjd3n13",
85
87
  "sshrc_______": "006cvnv84",
86
88
  "tubitakf____": "04w9kkr77",
89
+ "ukri________": "001aqnf71",
87
90
  "wt__________": "029chgv08",
88
91
  }
89
92
  """Mapping of OpenAIRE and ROR funder codes."""
@@ -8,12 +8,12 @@
8
8
 
9
9
  """Vocabulary affiliations."""
10
10
 
11
+ from invenio_db import db
11
12
  from invenio_records.dumpers import SearchDumper
12
13
  from invenio_records.dumpers.indexedat import IndexedAtDumperExt
13
14
  from invenio_records_resources.factories.factory import RecordTypeFactory
15
+ from invenio_records_resources.records.systemfields import ModelPIDField
14
16
 
15
- from ...records.pidprovider import PIDProviderFactory
16
- from ...records.systemfields import BaseVocabularyPIDFieldContext
17
17
  from ...services.permissions import PermissionPolicy
18
18
  from .config import AffiliationsSearchOptions, service_components
19
19
  from .schema import AffiliationSchema
@@ -21,17 +21,22 @@ from .schema import AffiliationSchema
21
21
  record_type = RecordTypeFactory(
22
22
  "Affiliation",
23
23
  # Data layer
24
+ pid_field_cls=ModelPIDField,
24
25
  pid_field_kwargs={
25
- "create": False,
26
- "provider": PIDProviderFactory.create(pid_type="aff"),
27
- "context_cls": BaseVocabularyPIDFieldContext,
26
+ "model_field_name": "pid",
27
+ },
28
+ model_cls_attrs={
29
+ # cannot set to nullable=False because it would fail at
30
+ # service level when create({}), see records-resources.
31
+ "pid": db.Column(db.String(255), unique=True),
28
32
  },
29
33
  schema_version="1.0.0",
30
34
  schema_path="local://affiliations/affiliation-v1.0.0.json",
31
35
  record_dumper=SearchDumper(
36
+ model_fields={"pid": ("id", str)},
32
37
  extensions=[
33
38
  IndexedAtDumperExt(),
34
- ]
39
+ ],
35
40
  ),
36
41
  # Service layer
37
42
  service_id="affiliations",
@@ -10,9 +10,6 @@
10
10
  "acronym": {
11
11
  "type": "string"
12
12
  },
13
- "id": {
14
- "$ref": "local://definitions-v1.0.0.json#/identifier"
15
- },
16
13
  "identifiers": {
17
14
  "description": "Alternate identifiers for the record.",
18
15
  "type": "array",
@@ -22,9 +19,6 @@
22
19
  "name": {
23
20
  "type": "string"
24
21
  },
25
- "pid": {
26
- "$ref": "local://definitions-v1.0.0.json#/internal-pid"
27
- },
28
22
  "title": {
29
23
  "$ref": "local://vocabularies/definitions-v1.0.0.json#/title"
30
24
  }
@@ -15,11 +15,15 @@ from marshmallow import fields
15
15
  from marshmallow_utils.fields import IdentifierSet, SanitizedUnicode
16
16
  from marshmallow_utils.schemas import IdentifierSchema
17
17
 
18
- from ...services.schema import BaseVocabularySchema, ContribVocabularyRelationSchema
18
+ from ...services.schema import (
19
+ BaseVocabularySchema,
20
+ ContribVocabularyRelationSchema,
21
+ ModePIDFieldVocabularyMixin,
22
+ )
19
23
  from .config import affiliation_schemes
20
24
 
21
25
 
22
- class AffiliationSchema(BaseVocabularySchema):
26
+ class AffiliationSchema(BaseVocabularySchema, ModePIDFieldVocabularyMixin):
23
27
  """Service schema for affiliations."""
24
28
 
25
29
  acronym = SanitizedUnicode()
@@ -52,6 +52,15 @@ class OpenAIREProjectTransformer(BaseTransformer):
52
52
 
53
53
  award["id"] = f"{funder_id}::{code}"
54
54
 
55
+ funding = next(iter(record.get("funding", [])), None)
56
+ if funding:
57
+ funding_stream_id = funding.get("funding_stream", {}).get("id", "")
58
+ # Example funding stream ID: `EC::HE::HORIZON-AG-UN`. We need the `EC`
59
+ # string, i.e. the second "part" of the identifier.
60
+ program = next(iter(funding_stream_id.split("::")[1:2]), "")
61
+ if program:
62
+ award["program"] = program
63
+
55
64
  identifiers = []
56
65
  if funder_id == awards_ec_ror_id:
57
66
  identifiers.append(
@@ -55,6 +55,9 @@
55
55
  "acronym": {
56
56
  "type": "keyword"
57
57
  },
58
+ "program": {
59
+ "type": "keyword"
60
+ },
58
61
  "funder": {
59
62
  "type": "object",
60
63
  "properties": {
@@ -55,6 +55,9 @@
55
55
  "acronym": {
56
56
  "type": "keyword"
57
57
  },
58
+ "program": {
59
+ "type": "keyword"
60
+ },
58
61
  "funder": {
59
62
  "type": "object",
60
63
  "properties": {
@@ -55,6 +55,9 @@
55
55
  "acronym": {
56
56
  "type": "keyword"
57
57
  },
58
+ "program": {
59
+ "type": "keyword"
60
+ },
58
61
  "funder": {
59
62
  "type": "object",
60
63
  "properties": {
@@ -10,26 +10,21 @@
10
10
 
11
11
  from functools import partial
12
12
 
13
- from attr import attr
14
13
  from invenio_i18n import lazy_gettext as _
15
- from marshmallow import (
16
- Schema,
17
- ValidationError,
18
- fields,
19
- post_load,
20
- pre_dump,
21
- validate,
22
- validates_schema,
23
- )
14
+ from marshmallow import Schema, ValidationError, fields, validate, validates_schema
24
15
  from marshmallow_utils.fields import IdentifierSet, SanitizedUnicode
25
16
  from marshmallow_utils.schemas import IdentifierSchema
26
17
 
27
- from ...services.schema import BaseVocabularySchema, i18n_strings
18
+ from ...services.schema import (
19
+ BaseVocabularySchema,
20
+ ModePIDFieldVocabularyMixin,
21
+ i18n_strings,
22
+ )
28
23
  from ..funders.schema import FunderRelationSchema
29
24
  from .config import award_schemes
30
25
 
31
26
 
32
- class AwardSchema(BaseVocabularySchema):
27
+ class AwardSchema(BaseVocabularySchema, ModePIDFieldVocabularyMixin):
33
28
  """Award schema."""
34
29
 
35
30
  identifiers = IdentifierSet(
@@ -49,32 +44,12 @@ class AwardSchema(BaseVocabularySchema):
49
44
 
50
45
  acronym = SanitizedUnicode()
51
46
 
47
+ program = SanitizedUnicode()
48
+
52
49
  id = SanitizedUnicode(
53
50
  validate=validate.Length(min=1, error=_("PID cannot be blank."))
54
51
  )
55
52
 
56
- @validates_schema
57
- def validate_id(self, data, **kwargs):
58
- """Validates ID."""
59
- is_create = "record" not in self.context
60
- if is_create and "id" not in data:
61
- raise ValidationError(_("Missing PID."), "id")
62
- if not is_create:
63
- data.pop("id", None)
64
-
65
- @post_load(pass_many=False)
66
- def move_id(self, data, **kwargs):
67
- """Moves id to pid."""
68
- if "id" in data:
69
- data["pid"] = data.pop("id")
70
- return data
71
-
72
- @pre_dump(pass_many=False)
73
- def extract_pid_value(self, data, **kwargs):
74
- """Extracts the PID value."""
75
- data["id"] = data.pid.pid_value
76
- return data
77
-
78
53
 
79
54
  class AwardRelationSchema(Schema):
80
55
  """Award relation schema."""
@@ -91,6 +66,8 @@ class AwardRelationSchema(Schema):
91
66
  )
92
67
  )
93
68
  )
69
+ acronym = SanitizedUnicode()
70
+ program = SanitizedUnicode()
94
71
 
95
72
  @validates_schema
96
73
  def validate_data(self, data, **kwargs):
@@ -35,5 +35,6 @@ class AwardL10NItemSchema(Schema):
35
35
  description = L10NString(data_key="description_l10n")
36
36
  number = fields.String(dump_only=True)
37
37
  acronym = fields.String(dump_only=True)
38
+ program = fields.String(dump_only=True)
38
39
  funder = fields.Nested(FunderRelationSchema, dump_only=True)
39
40
  identifiers = fields.List(fields.Nested(IdentifierSchema), dump_only=True)
@@ -9,12 +9,9 @@
9
9
  """Names datastreams, transformers, writers and readers."""
10
10
 
11
11
  from invenio_access.permissions import system_identity
12
- from invenio_pidstore.errors import PIDDoesNotExistError
13
12
  from invenio_records.dictutils import dict_lookup
14
- from marshmallow import ValidationError
15
13
 
16
- from ...datastreams import StreamEntry
17
- from ...datastreams.errors import TransformerError, WriterError
14
+ from ...datastreams.errors import TransformerError
18
15
  from ...datastreams.readers import SimpleHTTPReader
19
16
  from ...datastreams.transformers import BaseTransformer
20
17
  from ...datastreams.writers import ServiceWriter
@@ -40,13 +37,14 @@ class OrcidTransformer(BaseTransformer):
40
37
  """Applies the transformation to the stream entry."""
41
38
  record = stream_entry.entry
42
39
  person = record["person"]
43
- orcid_id = record["orcid-identifier"]["uri"]
40
+ orcid_id = record["orcid-identifier"]["path"]
44
41
 
45
42
  name = person.get("name")
46
43
  if name is None:
47
44
  raise TransformerError(f"Name not found in ORCiD entry.")
48
45
 
49
46
  entry = {
47
+ "id": orcid_id,
50
48
  "given_name": name.get("given-names"),
51
49
  "family_name": name.get("family-name"),
52
50
  "identifiers": [{"scheme": "orcid", "identifier": orcid_id}],
@@ -79,41 +77,14 @@ class OrcidTransformer(BaseTransformer):
79
77
  class NamesServiceWriter(ServiceWriter):
80
78
  """Names service writer."""
81
79
 
82
- def __init__(self, *args, scheme_id="orcid", **kwargs):
80
+ def __init__(self, *args, **kwargs):
83
81
  """Constructor."""
84
82
  service_or_name = kwargs.pop("service_or_name", "names")
85
83
  super().__init__(service_or_name=service_or_name, *args, **kwargs)
86
- self._scheme_id = scheme_id
87
84
 
88
85
  def _entry_id(self, entry):
89
86
  """Get the id from an entry."""
90
- for identifier in entry.get("identifiers"):
91
- if identifier.get("scheme") == self._scheme_id:
92
- return identifier["identifier"]
93
-
94
- def _resolve(self, id_):
95
- """Resolve an entry given an id."""
96
- return self._service.resolve(self._identity, id_=id_, id_type=self._scheme_id)
97
-
98
- def write(self, stream_entry, *args, **kwargs):
99
- """Writes the input entry using a given service."""
100
- entry = stream_entry.entry
101
- try:
102
- vocab_id = self._entry_id(entry)
103
- # it is resolved before creation to avoid duplicates since
104
- # the pid is recidv2 not e.g. the orcid
105
- current = self._resolve(vocab_id)
106
- if not self._update:
107
- raise WriterError([f"Vocabulary entry already exists: {entry}"])
108
- updated = dict(current.to_dict(), **entry)
109
- return StreamEntry(
110
- self._service.update(self._identity, current.id, updated)
111
- )
112
- except PIDDoesNotExistError:
113
- return StreamEntry(self._service.create(self._identity, entry))
114
-
115
- except ValidationError as err:
116
- raise WriterError([{"ValidationError": err.messages}])
87
+ return entry["id"]
117
88
 
118
89
 
119
90
  VOCABULARIES_DATASTREAM_READERS = {
@@ -8,13 +8,6 @@
8
8
  "$schema": {
9
9
  "$ref": "local://definitions-v1.0.0.json#/$schema"
10
10
  },
11
- "id": {
12
- "description": "URI or classification code as identifier - globally unique among all names schemes.",
13
- "$ref": "local://definitions-v1.0.0.json#/identifier"
14
- },
15
- "pid": {
16
- "$ref": "local://definitions-v1.0.0.json#/internal-pid"
17
- },
18
11
  "scheme": {
19
12
  "description": "Identifier of the name scheme.",
20
13
  "$ref": "local://definitions-v1.0.0.json#/identifier"
@@ -8,16 +8,17 @@
8
8
 
9
9
  """Vocabulary names."""
10
10
 
11
- from invenio_pidstore.providers.recordid_v2 import RecordIdProviderV2
11
+ from invenio_db import db
12
12
  from invenio_records.dumpers import SearchDumper
13
13
  from invenio_records.dumpers.indexedat import IndexedAtDumperExt
14
14
  from invenio_records.dumpers.relations import RelationDumperExt
15
15
  from invenio_records.systemfields import RelationsField
16
16
  from invenio_records_resources.factories.factory import RecordTypeFactory
17
- from invenio_records_resources.records.systemfields import PIDListRelation
17
+ from invenio_records_resources.records.systemfields import (
18
+ ModelPIDField,
19
+ PIDListRelation,
20
+ )
18
21
 
19
- from ...records.pidprovider import PIDProviderFactory
20
- from ...records.systemfields import BaseVocabularyPIDFieldContext
21
22
  from ...services.permissions import PermissionPolicy
22
23
  from ..affiliations.api import Affiliation
23
24
  from .config import NamesSearchOptions, service_components
@@ -35,21 +36,24 @@ name_relations = RelationsField(
35
36
  record_type = RecordTypeFactory(
36
37
  "Name",
37
38
  # Data layer
39
+ pid_field_cls=ModelPIDField,
38
40
  pid_field_kwargs={
39
- "create": False,
40
- "provider": PIDProviderFactory.create(
41
- pid_type="names", base_cls=RecordIdProviderV2
42
- ),
43
- "context_cls": BaseVocabularyPIDFieldContext,
41
+ "model_field_name": "pid",
42
+ },
43
+ model_cls_attrs={
44
+ # cannot set to nullable=False because it would fail at
45
+ # service level when create({}), see records-resources.
46
+ "pid": db.Column(db.String(255), unique=True),
44
47
  },
45
48
  schema_version="1.0.0",
46
49
  schema_path="local://names/name-v1.0.0.json",
47
50
  record_relations=name_relations,
48
51
  record_dumper=SearchDumper(
52
+ model_fields={"pid": ("id", str)},
49
53
  extensions=[
50
54
  RelationDumperExt("relations"),
51
55
  IndexedAtDumperExt(),
52
- ]
56
+ ],
53
57
  ),
54
58
  # Service layer
55
59
  service_id="names",
@@ -11,16 +11,16 @@
11
11
  from functools import partial
12
12
 
13
13
  from invenio_i18n import lazy_gettext as _
14
- from invenio_records_resources.services.records.schema import BaseRecordSchema
15
14
  from marshmallow import ValidationError, fields, post_load, validates_schema
16
15
  from marshmallow_utils.fields import IdentifierSet, SanitizedUnicode
17
16
  from marshmallow_utils.schemas import IdentifierSchema
18
17
 
18
+ from ...services.schema import BaseVocabularySchema, ModePIDFieldVocabularyMixin
19
19
  from ..affiliations.schema import AffiliationRelationSchema
20
20
  from .config import names_schemes
21
21
 
22
22
 
23
- class NameSchema(BaseRecordSchema):
23
+ class NameSchema(BaseVocabularySchema, ModePIDFieldVocabularyMixin):
24
24
  """Service schema for names.
25
25
 
26
26
  Note that this vocabulary is very different from the base vocabulary
@@ -30,7 +30,13 @@ class VocabularyCF(BaseCF):
30
30
  """
31
31
 
32
32
  def __init__(
33
- self, name, vocabulary_id, multiple=False, dump_options=True, **kwargs
33
+ self,
34
+ name,
35
+ vocabulary_id,
36
+ multiple=False,
37
+ dump_options=True,
38
+ sort_by=None,
39
+ **kwargs
34
40
  ):
35
41
  """Constructor."""
36
42
  super().__init__(name, **kwargs)
@@ -38,6 +44,7 @@ class VocabularyCF(BaseCF):
38
44
  self.vocabulary_id = vocabulary_id
39
45
  self.dump_options = dump_options
40
46
  self.multiple = multiple
47
+ self.sort_by = sort_by
41
48
 
42
49
  @property
43
50
  def mapping(self):
@@ -78,6 +85,7 @@ class VocabularyCF(BaseCF):
78
85
  identity,
79
86
  fields=self.field_keys,
80
87
  type=self.vocabulary_id,
88
+ sort=self.sort_by,
81
89
  )
82
90
  options = []
83
91
  for vocab in vocabs: