oarepo-runtime 1.10.1__tar.gz → 1.10.3__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.
Files changed (172) hide show
  1. {oarepo_runtime-1.10.1/oarepo_runtime.egg-info → oarepo_runtime-1.10.3}/PKG-INFO +1 -1
  2. oarepo_runtime-1.10.3/oarepo_runtime/services/schema/rdm.py +146 -0
  3. {oarepo_runtime-1.10.1 → oarepo_runtime-1.10.3}/oarepo_runtime/services/schema/ui.py +3 -1
  4. oarepo_runtime-1.10.3/oarepo_runtime/translations/cs/LC_MESSAGES/messages.mo +0 -0
  5. {oarepo_runtime-1.10.1 → oarepo_runtime-1.10.3}/oarepo_runtime/translations/cs/LC_MESSAGES/messages.po +10 -0
  6. {oarepo_runtime-1.10.1 → oarepo_runtime-1.10.3}/oarepo_runtime/translations/en/LC_MESSAGES/messages.po +8 -0
  7. {oarepo_runtime-1.10.1 → oarepo_runtime-1.10.3}/oarepo_runtime/translations/messages.pot +10 -1
  8. {oarepo_runtime-1.10.1 → oarepo_runtime-1.10.3/oarepo_runtime.egg-info}/PKG-INFO +1 -1
  9. {oarepo_runtime-1.10.1 → oarepo_runtime-1.10.3}/setup.cfg +1 -1
  10. oarepo_runtime-1.10.1/oarepo_runtime/services/schema/rdm.py +0 -75
  11. oarepo_runtime-1.10.1/oarepo_runtime/translations/cs/LC_MESSAGES/messages.mo +0 -0
  12. {oarepo_runtime-1.10.1 → oarepo_runtime-1.10.3}/LICENSE +0 -0
  13. {oarepo_runtime-1.10.1 → oarepo_runtime-1.10.3}/MANIFEST.in +0 -0
  14. {oarepo_runtime-1.10.1 → oarepo_runtime-1.10.3}/README.md +0 -0
  15. {oarepo_runtime-1.10.1 → oarepo_runtime-1.10.3}/oarepo_runtime/__init__.py +0 -0
  16. {oarepo_runtime-1.10.1 → oarepo_runtime-1.10.3}/oarepo_runtime/cli/__init__.py +0 -0
  17. {oarepo_runtime-1.10.1 → oarepo_runtime-1.10.3}/oarepo_runtime/cli/assets.py +0 -0
  18. {oarepo_runtime-1.10.1 → oarepo_runtime-1.10.3}/oarepo_runtime/cli/base.py +0 -0
  19. {oarepo_runtime-1.10.1 → oarepo_runtime-1.10.3}/oarepo_runtime/cli/cf.py +0 -0
  20. {oarepo_runtime-1.10.1 → oarepo_runtime-1.10.3}/oarepo_runtime/cli/check.py +0 -0
  21. {oarepo_runtime-1.10.1 → oarepo_runtime-1.10.3}/oarepo_runtime/cli/configuration.py +0 -0
  22. {oarepo_runtime-1.10.1 → oarepo_runtime-1.10.3}/oarepo_runtime/cli/fixtures.py +0 -0
  23. {oarepo_runtime-1.10.1 → oarepo_runtime-1.10.3}/oarepo_runtime/cli/index.py +0 -0
  24. {oarepo_runtime-1.10.1 → oarepo_runtime-1.10.3}/oarepo_runtime/cli/permissions/__init__.py +0 -0
  25. {oarepo_runtime-1.10.1 → oarepo_runtime-1.10.3}/oarepo_runtime/cli/permissions/base.py +0 -0
  26. {oarepo_runtime-1.10.1 → oarepo_runtime-1.10.3}/oarepo_runtime/cli/permissions/evaluate.py +0 -0
  27. {oarepo_runtime-1.10.1 → oarepo_runtime-1.10.3}/oarepo_runtime/cli/permissions/list.py +0 -0
  28. {oarepo_runtime-1.10.1 → oarepo_runtime-1.10.3}/oarepo_runtime/cli/permissions/search.py +0 -0
  29. {oarepo_runtime-1.10.1 → oarepo_runtime-1.10.3}/oarepo_runtime/cli/validate.py +0 -0
  30. {oarepo_runtime-1.10.1 → oarepo_runtime-1.10.3}/oarepo_runtime/config.py +0 -0
  31. {oarepo_runtime-1.10.1 → oarepo_runtime-1.10.3}/oarepo_runtime/datastreams/__init__.py +0 -0
  32. {oarepo_runtime-1.10.1 → oarepo_runtime-1.10.3}/oarepo_runtime/datastreams/asynchronous.py +0 -0
  33. {oarepo_runtime-1.10.1 → oarepo_runtime-1.10.3}/oarepo_runtime/datastreams/catalogue.py +0 -0
  34. {oarepo_runtime-1.10.1 → oarepo_runtime-1.10.3}/oarepo_runtime/datastreams/datastreams.py +0 -0
  35. {oarepo_runtime-1.10.1 → oarepo_runtime-1.10.3}/oarepo_runtime/datastreams/errors.py +0 -0
  36. {oarepo_runtime-1.10.1 → oarepo_runtime-1.10.3}/oarepo_runtime/datastreams/ext.py +0 -0
  37. {oarepo_runtime-1.10.1 → oarepo_runtime-1.10.3}/oarepo_runtime/datastreams/fixtures.py +0 -0
  38. {oarepo_runtime-1.10.1 → oarepo_runtime-1.10.3}/oarepo_runtime/datastreams/json.py +0 -0
  39. {oarepo_runtime-1.10.1 → oarepo_runtime-1.10.3}/oarepo_runtime/datastreams/readers/__init__.py +0 -0
  40. {oarepo_runtime-1.10.1 → oarepo_runtime-1.10.3}/oarepo_runtime/datastreams/readers/attachments.py +0 -0
  41. {oarepo_runtime-1.10.1 → oarepo_runtime-1.10.3}/oarepo_runtime/datastreams/readers/excel.py +0 -0
  42. {oarepo_runtime-1.10.1 → oarepo_runtime-1.10.3}/oarepo_runtime/datastreams/readers/json.py +0 -0
  43. {oarepo_runtime-1.10.1 → oarepo_runtime-1.10.3}/oarepo_runtime/datastreams/readers/service.py +0 -0
  44. {oarepo_runtime-1.10.1 → oarepo_runtime-1.10.3}/oarepo_runtime/datastreams/readers/yaml.py +0 -0
  45. {oarepo_runtime-1.10.1 → oarepo_runtime-1.10.3}/oarepo_runtime/datastreams/semi_asynchronous.py +0 -0
  46. {oarepo_runtime-1.10.1 → oarepo_runtime-1.10.3}/oarepo_runtime/datastreams/synchronous.py +0 -0
  47. {oarepo_runtime-1.10.1 → oarepo_runtime-1.10.3}/oarepo_runtime/datastreams/transformers.py +0 -0
  48. {oarepo_runtime-1.10.1 → oarepo_runtime-1.10.3}/oarepo_runtime/datastreams/types.py +0 -0
  49. {oarepo_runtime-1.10.1 → oarepo_runtime-1.10.3}/oarepo_runtime/datastreams/utils.py +0 -0
  50. {oarepo_runtime-1.10.1 → oarepo_runtime-1.10.3}/oarepo_runtime/datastreams/writers/__init__.py +0 -0
  51. {oarepo_runtime-1.10.1 → oarepo_runtime-1.10.3}/oarepo_runtime/datastreams/writers/attachments_file.py +0 -0
  52. {oarepo_runtime-1.10.1 → oarepo_runtime-1.10.3}/oarepo_runtime/datastreams/writers/attachments_service.py +0 -0
  53. {oarepo_runtime-1.10.1 → oarepo_runtime-1.10.3}/oarepo_runtime/datastreams/writers/publish.py +0 -0
  54. {oarepo_runtime-1.10.1 → oarepo_runtime-1.10.3}/oarepo_runtime/datastreams/writers/service.py +0 -0
  55. {oarepo_runtime-1.10.1 → oarepo_runtime-1.10.3}/oarepo_runtime/datastreams/writers/utils.py +0 -0
  56. {oarepo_runtime-1.10.1 → oarepo_runtime-1.10.3}/oarepo_runtime/datastreams/writers/validation_errors.py +0 -0
  57. {oarepo_runtime-1.10.1 → oarepo_runtime-1.10.3}/oarepo_runtime/datastreams/writers/yaml.py +0 -0
  58. {oarepo_runtime-1.10.1 → oarepo_runtime-1.10.3}/oarepo_runtime/ext.py +0 -0
  59. {oarepo_runtime-1.10.1 → oarepo_runtime-1.10.3}/oarepo_runtime/ext_config.py +0 -0
  60. {oarepo_runtime-1.10.1 → oarepo_runtime-1.10.3}/oarepo_runtime/i18n/__init__.py +0 -0
  61. {oarepo_runtime-1.10.1 → oarepo_runtime-1.10.3}/oarepo_runtime/info/__init__.py +0 -0
  62. {oarepo_runtime-1.10.1 → oarepo_runtime-1.10.3}/oarepo_runtime/info/check.py +0 -0
  63. {oarepo_runtime-1.10.1 → oarepo_runtime-1.10.3}/oarepo_runtime/info/permissions/__init__.py +0 -0
  64. {oarepo_runtime-1.10.1 → oarepo_runtime-1.10.3}/oarepo_runtime/info/permissions/debug.py +0 -0
  65. {oarepo_runtime-1.10.1 → oarepo_runtime-1.10.3}/oarepo_runtime/info/views.py +0 -0
  66. {oarepo_runtime-1.10.1 → oarepo_runtime-1.10.3}/oarepo_runtime/profile.py +0 -0
  67. {oarepo_runtime-1.10.1 → oarepo_runtime-1.10.3}/oarepo_runtime/proxies.py +0 -0
  68. {oarepo_runtime-1.10.1 → oarepo_runtime-1.10.3}/oarepo_runtime/records/__init__.py +0 -0
  69. {oarepo_runtime-1.10.1 → oarepo_runtime-1.10.3}/oarepo_runtime/records/drafts.py +0 -0
  70. {oarepo_runtime-1.10.1 → oarepo_runtime-1.10.3}/oarepo_runtime/records/dumpers/__init__.py +0 -0
  71. {oarepo_runtime-1.10.1 → oarepo_runtime-1.10.3}/oarepo_runtime/records/dumpers/edtf_interval.py +0 -0
  72. {oarepo_runtime-1.10.1 → oarepo_runtime-1.10.3}/oarepo_runtime/records/dumpers/multilingual_dumper.py +0 -0
  73. {oarepo_runtime-1.10.1 → oarepo_runtime-1.10.3}/oarepo_runtime/records/entity_resolvers/__init__.py +0 -0
  74. {oarepo_runtime-1.10.1 → oarepo_runtime-1.10.3}/oarepo_runtime/records/entity_resolvers/proxies.py +0 -0
  75. {oarepo_runtime-1.10.1 → oarepo_runtime-1.10.3}/oarepo_runtime/records/mappings/__init__.py +0 -0
  76. {oarepo_runtime-1.10.1 → oarepo_runtime-1.10.3}/oarepo_runtime/records/mappings/rdm_parent_mapping.json +0 -0
  77. {oarepo_runtime-1.10.1 → oarepo_runtime-1.10.3}/oarepo_runtime/records/owners/__init__.py +0 -0
  78. {oarepo_runtime-1.10.1 → oarepo_runtime-1.10.3}/oarepo_runtime/records/owners/registry.py +0 -0
  79. {oarepo_runtime-1.10.1 → oarepo_runtime-1.10.3}/oarepo_runtime/records/pid_providers.py +0 -0
  80. {oarepo_runtime-1.10.1 → oarepo_runtime-1.10.3}/oarepo_runtime/records/relations/__init__.py +0 -0
  81. {oarepo_runtime-1.10.1 → oarepo_runtime-1.10.3}/oarepo_runtime/records/relations/base.py +0 -0
  82. {oarepo_runtime-1.10.1 → oarepo_runtime-1.10.3}/oarepo_runtime/records/relations/internal.py +0 -0
  83. {oarepo_runtime-1.10.1 → oarepo_runtime-1.10.3}/oarepo_runtime/records/relations/lookup.py +0 -0
  84. {oarepo_runtime-1.10.1 → oarepo_runtime-1.10.3}/oarepo_runtime/records/relations/pid_relation.py +0 -0
  85. {oarepo_runtime-1.10.1 → oarepo_runtime-1.10.3}/oarepo_runtime/records/systemfields/__init__.py +0 -0
  86. {oarepo_runtime-1.10.1 → oarepo_runtime-1.10.3}/oarepo_runtime/records/systemfields/featured_file.py +0 -0
  87. {oarepo_runtime-1.10.1 → oarepo_runtime-1.10.3}/oarepo_runtime/records/systemfields/has_draftcheck.py +0 -0
  88. {oarepo_runtime-1.10.1 → oarepo_runtime-1.10.3}/oarepo_runtime/records/systemfields/icu.py +0 -0
  89. {oarepo_runtime-1.10.1 → oarepo_runtime-1.10.3}/oarepo_runtime/records/systemfields/mapping.py +0 -0
  90. {oarepo_runtime-1.10.1 → oarepo_runtime-1.10.3}/oarepo_runtime/records/systemfields/owner.py +0 -0
  91. {oarepo_runtime-1.10.1 → oarepo_runtime-1.10.3}/oarepo_runtime/records/systemfields/record_status.py +0 -0
  92. {oarepo_runtime-1.10.1 → oarepo_runtime-1.10.3}/oarepo_runtime/records/systemfields/selectors.py +0 -0
  93. {oarepo_runtime-1.10.1 → oarepo_runtime-1.10.3}/oarepo_runtime/records/systemfields/synthetic.py +0 -0
  94. {oarepo_runtime-1.10.1 → oarepo_runtime-1.10.3}/oarepo_runtime/resources/__init__.py +0 -0
  95. {oarepo_runtime-1.10.1 → oarepo_runtime-1.10.3}/oarepo_runtime/resources/config.py +0 -0
  96. {oarepo_runtime-1.10.1 → oarepo_runtime-1.10.3}/oarepo_runtime/resources/file_resource.py +0 -0
  97. {oarepo_runtime-1.10.1 → oarepo_runtime-1.10.3}/oarepo_runtime/resources/json_serializer.py +0 -0
  98. {oarepo_runtime-1.10.1 → oarepo_runtime-1.10.3}/oarepo_runtime/resources/localized_ui_json_serializer.py +0 -0
  99. {oarepo_runtime-1.10.1 → oarepo_runtime-1.10.3}/oarepo_runtime/resources/resource.py +0 -0
  100. {oarepo_runtime-1.10.1 → oarepo_runtime-1.10.3}/oarepo_runtime/resources/responses.py +0 -0
  101. {oarepo_runtime-1.10.1 → oarepo_runtime-1.10.3}/oarepo_runtime/services/__init__.py +0 -0
  102. {oarepo_runtime-1.10.1 → oarepo_runtime-1.10.3}/oarepo_runtime/services/components.py +0 -0
  103. {oarepo_runtime-1.10.1 → oarepo_runtime-1.10.3}/oarepo_runtime/services/config/__init__.py +0 -0
  104. {oarepo_runtime-1.10.1 → oarepo_runtime-1.10.3}/oarepo_runtime/services/config/draft_link.py +0 -0
  105. {oarepo_runtime-1.10.1 → oarepo_runtime-1.10.3}/oarepo_runtime/services/config/link_conditions.py +0 -0
  106. {oarepo_runtime-1.10.1 → oarepo_runtime-1.10.3}/oarepo_runtime/services/config/permissions_presets.py +0 -0
  107. {oarepo_runtime-1.10.1 → oarepo_runtime-1.10.3}/oarepo_runtime/services/config/service.py +0 -0
  108. {oarepo_runtime-1.10.1 → oarepo_runtime-1.10.3}/oarepo_runtime/services/custom_fields/__init__.py +0 -0
  109. {oarepo_runtime-1.10.1 → oarepo_runtime-1.10.3}/oarepo_runtime/services/custom_fields/mappings.py +0 -0
  110. {oarepo_runtime-1.10.1 → oarepo_runtime-1.10.3}/oarepo_runtime/services/entity/__init__.py +0 -0
  111. {oarepo_runtime-1.10.1 → oarepo_runtime-1.10.3}/oarepo_runtime/services/entity/config.py +0 -0
  112. {oarepo_runtime-1.10.1 → oarepo_runtime-1.10.3}/oarepo_runtime/services/entity/schema.py +0 -0
  113. {oarepo_runtime-1.10.1 → oarepo_runtime-1.10.3}/oarepo_runtime/services/entity/service.py +0 -0
  114. {oarepo_runtime-1.10.1 → oarepo_runtime-1.10.3}/oarepo_runtime/services/expansions/__init__.py +0 -0
  115. {oarepo_runtime-1.10.1 → oarepo_runtime-1.10.3}/oarepo_runtime/services/expansions/expandable_fields.py +0 -0
  116. {oarepo_runtime-1.10.1 → oarepo_runtime-1.10.3}/oarepo_runtime/services/expansions/service.py +0 -0
  117. {oarepo_runtime-1.10.1 → oarepo_runtime-1.10.3}/oarepo_runtime/services/facets/__init__.py +0 -0
  118. {oarepo_runtime-1.10.1 → oarepo_runtime-1.10.3}/oarepo_runtime/services/facets/base.py +0 -0
  119. {oarepo_runtime-1.10.1 → oarepo_runtime-1.10.3}/oarepo_runtime/services/facets/date.py +0 -0
  120. {oarepo_runtime-1.10.1 → oarepo_runtime-1.10.3}/oarepo_runtime/services/facets/enum.py +0 -0
  121. {oarepo_runtime-1.10.1 → oarepo_runtime-1.10.3}/oarepo_runtime/services/facets/facet_groups_names.py +0 -0
  122. {oarepo_runtime-1.10.1 → oarepo_runtime-1.10.3}/oarepo_runtime/services/facets/max_facet.py +0 -0
  123. {oarepo_runtime-1.10.1 → oarepo_runtime-1.10.3}/oarepo_runtime/services/facets/multilingual_facet.py +0 -0
  124. {oarepo_runtime-1.10.1 → oarepo_runtime-1.10.3}/oarepo_runtime/services/facets/nested_facet.py +0 -0
  125. {oarepo_runtime-1.10.1 → oarepo_runtime-1.10.3}/oarepo_runtime/services/facets/params.py +0 -0
  126. {oarepo_runtime-1.10.1 → oarepo_runtime-1.10.3}/oarepo_runtime/services/facets/year_histogram.py +0 -0
  127. {oarepo_runtime-1.10.1 → oarepo_runtime-1.10.3}/oarepo_runtime/services/files/__init__.py +0 -0
  128. {oarepo_runtime-1.10.1 → oarepo_runtime-1.10.3}/oarepo_runtime/services/files/components.py +0 -0
  129. {oarepo_runtime-1.10.1 → oarepo_runtime-1.10.3}/oarepo_runtime/services/files/service.py +0 -0
  130. {oarepo_runtime-1.10.1 → oarepo_runtime-1.10.3}/oarepo_runtime/services/generators.py +0 -0
  131. {oarepo_runtime-1.10.1 → oarepo_runtime-1.10.3}/oarepo_runtime/services/permissions/__init__.py +0 -0
  132. {oarepo_runtime-1.10.1 → oarepo_runtime-1.10.3}/oarepo_runtime/services/permissions/generators.py +0 -0
  133. {oarepo_runtime-1.10.1 → oarepo_runtime-1.10.3}/oarepo_runtime/services/records/__init__.py +0 -0
  134. {oarepo_runtime-1.10.1 → oarepo_runtime-1.10.3}/oarepo_runtime/services/records/links.py +0 -0
  135. {oarepo_runtime-1.10.1 → oarepo_runtime-1.10.3}/oarepo_runtime/services/relations/__init__.py +0 -0
  136. {oarepo_runtime-1.10.1 → oarepo_runtime-1.10.3}/oarepo_runtime/services/relations/components.py +0 -0
  137. {oarepo_runtime-1.10.1 → oarepo_runtime-1.10.3}/oarepo_runtime/services/relations/errors.py +0 -0
  138. {oarepo_runtime-1.10.1 → oarepo_runtime-1.10.3}/oarepo_runtime/services/relations/mapping.py +0 -0
  139. {oarepo_runtime-1.10.1 → oarepo_runtime-1.10.3}/oarepo_runtime/services/results.py +0 -0
  140. {oarepo_runtime-1.10.1 → oarepo_runtime-1.10.3}/oarepo_runtime/services/schema/__init__.py +0 -0
  141. {oarepo_runtime-1.10.1 → oarepo_runtime-1.10.3}/oarepo_runtime/services/schema/cf.py +0 -0
  142. {oarepo_runtime-1.10.1 → oarepo_runtime-1.10.3}/oarepo_runtime/services/schema/i18n.py +0 -0
  143. {oarepo_runtime-1.10.1 → oarepo_runtime-1.10.3}/oarepo_runtime/services/schema/i18n_ui.py +0 -0
  144. {oarepo_runtime-1.10.1 → oarepo_runtime-1.10.3}/oarepo_runtime/services/schema/i18n_validation.py +0 -0
  145. {oarepo_runtime-1.10.1 → oarepo_runtime-1.10.3}/oarepo_runtime/services/schema/marshmallow.py +0 -0
  146. {oarepo_runtime-1.10.1 → oarepo_runtime-1.10.3}/oarepo_runtime/services/schema/marshmallow_to_json_schema.py +0 -0
  147. {oarepo_runtime-1.10.1 → oarepo_runtime-1.10.3}/oarepo_runtime/services/schema/oneofschema.py +0 -0
  148. {oarepo_runtime-1.10.1 → oarepo_runtime-1.10.3}/oarepo_runtime/services/schema/polymorphic.py +0 -0
  149. {oarepo_runtime-1.10.1 → oarepo_runtime-1.10.3}/oarepo_runtime/services/schema/rdm_ui.py +0 -0
  150. {oarepo_runtime-1.10.1 → oarepo_runtime-1.10.3}/oarepo_runtime/services/schema/validation.py +0 -0
  151. {oarepo_runtime-1.10.1 → oarepo_runtime-1.10.3}/oarepo_runtime/services/search.py +0 -0
  152. {oarepo_runtime-1.10.1 → oarepo_runtime-1.10.3}/oarepo_runtime/services/service.py +0 -0
  153. {oarepo_runtime-1.10.1 → oarepo_runtime-1.10.3}/oarepo_runtime/tasks.py +0 -0
  154. {oarepo_runtime-1.10.1 → oarepo_runtime-1.10.3}/oarepo_runtime/translations/default_translations.py +0 -0
  155. {oarepo_runtime-1.10.1 → oarepo_runtime-1.10.3}/oarepo_runtime/translations/en/LC_MESSAGES/messages.mo +0 -0
  156. {oarepo_runtime-1.10.1 → oarepo_runtime-1.10.3}/oarepo_runtime/uow.py +0 -0
  157. {oarepo_runtime-1.10.1 → oarepo_runtime-1.10.3}/oarepo_runtime/utils/__init__.py +0 -0
  158. {oarepo_runtime-1.10.1 → oarepo_runtime-1.10.3}/oarepo_runtime/utils/functools.py +0 -0
  159. {oarepo_runtime-1.10.1 → oarepo_runtime-1.10.3}/oarepo_runtime/utils/identity_utils.py +0 -0
  160. {oarepo_runtime-1.10.1 → oarepo_runtime-1.10.3}/oarepo_runtime/utils/index.py +0 -0
  161. {oarepo_runtime-1.10.1 → oarepo_runtime-1.10.3}/oarepo_runtime/utils/path.py +0 -0
  162. {oarepo_runtime-1.10.1 → oarepo_runtime-1.10.3}/oarepo_runtime.egg-info/SOURCES.txt +0 -0
  163. {oarepo_runtime-1.10.1 → oarepo_runtime-1.10.3}/oarepo_runtime.egg-info/dependency_links.txt +0 -0
  164. {oarepo_runtime-1.10.1 → oarepo_runtime-1.10.3}/oarepo_runtime.egg-info/entry_points.txt +0 -0
  165. {oarepo_runtime-1.10.1 → oarepo_runtime-1.10.3}/oarepo_runtime.egg-info/requires.txt +0 -0
  166. {oarepo_runtime-1.10.1 → oarepo_runtime-1.10.3}/oarepo_runtime.egg-info/top_level.txt +0 -0
  167. {oarepo_runtime-1.10.1 → oarepo_runtime-1.10.3}/pyproject.toml +0 -0
  168. {oarepo_runtime-1.10.1 → oarepo_runtime-1.10.3}/setup.py +0 -0
  169. {oarepo_runtime-1.10.1 → oarepo_runtime-1.10.3}/tests/marshmallow_to_json/__init__.py +0 -0
  170. {oarepo_runtime-1.10.1 → oarepo_runtime-1.10.3}/tests/marshmallow_to_json/test_datacite_ui_schema.py +0 -0
  171. {oarepo_runtime-1.10.1 → oarepo_runtime-1.10.3}/tests/marshmallow_to_json/test_simple_schema.py +0 -0
  172. {oarepo_runtime-1.10.1 → oarepo_runtime-1.10.3}/tests/pkg_data/__init__.py +0 -0
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: oarepo-runtime
3
- Version: 1.10.1
3
+ Version: 1.10.3
4
4
  Summary: A set of runtime extensions of Invenio repository
5
5
  Description-Content-Type: text/markdown
6
6
  License-File: LICENSE
@@ -0,0 +1,146 @@
1
+ import re
2
+ from functools import partial
3
+
4
+ import marshmallow as ma
5
+ from invenio_access.permissions import system_identity
6
+ from invenio_i18n import gettext as _
7
+ from invenio_i18n.selectors import get_locale
8
+ from invenio_rdm_records.services.schemas.metadata import (
9
+ CreatorSchema,
10
+ record_identifiers_schemes,
11
+ )
12
+ from invenio_rdm_records.services.schemas.tombstone import DeletionStatusSchema
13
+ from invenio_rdm_records.services.schemas.versions import VersionsSchema
14
+ from invenio_records_resources.proxies import current_service_registry
15
+ from invenio_vocabularies.contrib.awards.schema import AwardRelationSchema
16
+ from invenio_vocabularies.contrib.funders.schema import FunderRelationSchema
17
+ from marshmallow import fields as ma_fields
18
+ from marshmallow import pre_load
19
+ from marshmallow_utils.fields import (
20
+ IdentifierSet,
21
+ )
22
+ from marshmallow_utils.fields.nestedattr import NestedAttribute
23
+ from marshmallow_utils.schemas.identifier import IdentifierSchema
24
+
25
+ from .i18n import MultilingualField
26
+
27
+
28
+ class RDMRecordMixin(ma.Schema):
29
+ versions = NestedAttribute(VersionsSchema, dump_only=True)
30
+ deletion_status = ma_fields.Nested(DeletionStatusSchema, dump_only=True)
31
+
32
+
33
+ class MultilingualAwardSchema(AwardRelationSchema):
34
+ class Meta:
35
+ unknown = ma.RAISE
36
+
37
+ @pre_load()
38
+ def convert_to_multilingual(self, data, many, **kwargs):
39
+ if "title" in data and type(data["title"]) is str:
40
+ lang = get_locale()
41
+ data["title"] = {lang: data["title"]}
42
+ return data
43
+
44
+
45
+ class FundingSchema(ma.Schema):
46
+ """Funding schema."""
47
+
48
+ funder = ma_fields.Nested(FunderRelationSchema, required=True)
49
+ award = ma_fields.Nested(MultilingualAwardSchema)
50
+
51
+
52
+ class RecordIdentifierField(IdentifierSet):
53
+ def __init__(self, *args, **kwargs):
54
+ super().__init__(
55
+ ma.fields.Nested(
56
+ partial(IdentifierSchema, allowed_schemes=record_identifiers_schemes)
57
+ ),
58
+ *args,
59
+ **kwargs,
60
+ )
61
+
62
+
63
+ class RelatedRecordIdentifierField(IdentifierSet):
64
+ def __init__(self, *args, **kwargs):
65
+ super().__init__(
66
+ ma.fields.Nested(
67
+ partial(IdentifierSchema, allowed_schemes=record_identifiers_schemes)
68
+ ),
69
+ *args,
70
+ **kwargs,
71
+ )
72
+
73
+
74
+ class RDMSubjectSchema(ma.Schema):
75
+ """Subject ui schema."""
76
+
77
+ class Meta:
78
+ unknown = ma.RAISE
79
+
80
+ _id = ma.fields.String(data_key="id")
81
+
82
+ subject = MultilingualField()
83
+
84
+
85
+ class RDMNTKCreatorsSchema(CreatorSchema):
86
+ """NTK version of RDM creators schema.
87
+
88
+ This version makes sure that organizations are selected from the
89
+ list of organizations in the system. Record will not be valid if
90
+ organization is not in the system.
91
+ """
92
+
93
+ @ma.validates_schema
94
+ def check_organization_or_affiliation(self, data, **kwargs):
95
+ """Check if organization is in the system."""
96
+ person_or_org = data.get("person_or_org", {})
97
+ if person_or_org.get("type") == "personal":
98
+ affiliations = data.get("affiliations", [])
99
+ for affiliation in affiliations:
100
+ if not self.from_vocabulary(affiliation):
101
+ raise ma.ValidationError(
102
+ _(
103
+ "It is necessary to choose organization from the controlled vocabulary. "
104
+ "To add organization, please go to "
105
+ "https://nusl.techlib.cz/cs/migrace-nusl/navrh-novych-hesel/"
106
+ ),
107
+ field_name="affiliations",
108
+ )
109
+ else:
110
+ # organization
111
+ name = person_or_org.get("name")
112
+ affiliations = current_service_registry.get("affiliations")
113
+ found = [
114
+ x["name"]
115
+ for x in affiliations.search(
116
+ system_identity,
117
+ q=f'name.suggest:"{escape_opensearch_query(name)}"',
118
+ size=100,
119
+ ).hits
120
+ ]
121
+ if name not in found:
122
+ raise ma.ValidationError(
123
+ _(
124
+ "It is necessary to choose organization from the controlled vocabulary. "
125
+ "To add organization, please go to "
126
+ "https://nusl.techlib.cz/cs/migrace-nusl/navrh-novych-hesel/"
127
+ ),
128
+ field_name="person_or_org",
129
+ )
130
+ return data
131
+
132
+ def from_vocabulary(self, affiliation):
133
+ """Check if affiliation is from the vocabulary."""
134
+ if "id" not in affiliation:
135
+ return False
136
+ return True
137
+
138
+
139
+ def escape_opensearch_query(value: str) -> str:
140
+ """
141
+ Escapes special characters in a string for safe use in OpenSearch query syntax.
142
+ """
143
+ # Escape each special character with a backslash
144
+ escaped = re.sub(r'([\\+\-=&|><!(){}\[\]^"~*?:/])', r"\\\1", value)
145
+
146
+ return escaped
@@ -16,7 +16,7 @@ from invenio_rdm_records.services.schemas.parent import RDMParentSchema
16
16
  from invenio_rdm_records.services.schemas.pids import PIDSchema
17
17
  from invenio_rdm_records.services.schemas.record import validate_scheme
18
18
  from invenio_rdm_records.services.schemas.versions import VersionsSchema
19
- from marshmallow.fields import Dict, Nested
19
+ from marshmallow.fields import Dict, Nested, Raw
20
20
  from marshmallow_utils.fields import (
21
21
  BabelGettextDictField,
22
22
  FormatDate,
@@ -239,6 +239,8 @@ class InvenioRDMUISchema(InvenioUISchema, RDMBaseRecordSchema):
239
239
  values=Nested(PIDSchema),
240
240
  )
241
241
  parent = ma.fields.Nested(InvenioRDMParentUISchema)
242
+ access = ma.fields.Raw(attribute="access", data_key="access", dump_only=True)
243
+ files = ma.fields.Raw(attribute="files", data_key="files", dump_only=True)
242
244
 
243
245
  def hide_tombstone(self, data):
244
246
  """Hide tombstone info if the record isn't deleted and metadata if it is."""
@@ -83,3 +83,13 @@ msgstr ""
83
83
  #: /Users/m/w/cesnet/oarepo-runtime/oarepo_runtime/services/schema/i18n.py:28
84
84
  msgid "Both language and text must be provided."
85
85
  msgstr "Musí být vyplněn jazyk i hodnota."
86
+
87
+ #: /Users/m/w/cesnet/oarepo-runtime/oarepo_runtime/services/schema/rdm.py:103
88
+ #: /Users/m/w/cesnet/oarepo-runtime/oarepo_runtime/services/schema/rdm.py:127
89
+ msgid ""
90
+ "It is necessary to choose organization from the controlled vocabulary. To "
91
+ "add organization, please go to https://nusl.techlib.cz/cs/migrace-"
92
+ "nusl/navrh-novych-hesel/"
93
+ msgstr ""
94
+ "Organizaci je nutné vybrat ze slovníku. Pro doplnění nové, vyplňte formulář "
95
+ "na https://nusl.techlib.cz/cs/migrace-nusl/navrh-novych-hesel/"
@@ -87,3 +87,11 @@ msgstr ""
87
87
  #: /Users/m/w/cesnet/oarepo-runtime/oarepo_runtime/services/schema/i18n.py:28
88
88
  msgid "Both language and text must be provided."
89
89
  msgstr ""
90
+
91
+ #: /Users/m/w/cesnet/oarepo-runtime/oarepo_runtime/services/schema/rdm.py:103
92
+ #: /Users/m/w/cesnet/oarepo-runtime/oarepo_runtime/services/schema/rdm.py:127
93
+ msgid ""
94
+ "It is necessary to choose organization from the controlled vocabulary. To "
95
+ "add organization, please go to https://nusl.techlib.cz/cs/migrace-"
96
+ "nusl/navrh-novych-hesel/"
97
+ msgstr ""
@@ -8,7 +8,7 @@ msgid ""
8
8
  msgstr ""
9
9
  "Project-Id-Version: PROJECT VERSION\n"
10
10
  "Report-Msgid-Bugs-To: EMAIL@ADDRESS\n"
11
- "POT-Creation-Date: 2025-07-29 15:53+0200\n"
11
+ "POT-Creation-Date: 2025-08-05 11:53+0200\n"
12
12
  "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
13
13
  "Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
14
14
  "Language-Team: LANGUAGE <LL@li.org>\n"
@@ -53,9 +53,18 @@ msgid "Version"
53
53
  msgstr ""
54
54
 
55
55
  #: /Users/m/w/cesnet/oarepo-runtime/oarepo_runtime/services/schema/i18n.py:28
56
+ #: /Users/m/w/cesnet/oarepo-runtime/oarepo_runtime/services/schema/i18n.py:29
56
57
  msgid "Both language and text must be provided."
57
58
  msgstr ""
58
59
 
60
+ #: /Users/m/w/cesnet/oarepo-runtime/oarepo_runtime/services/schema/rdm.py:103
61
+ #: /Users/m/w/cesnet/oarepo-runtime/oarepo_runtime/services/schema/rdm.py:127
62
+ msgid ""
63
+ "It is necessary to choose organization from the controlled vocabulary. To"
64
+ " add organization, please go to https://nusl.techlib.cz/cs/migrace-nusl"
65
+ "/navrh-novych-hesel/"
66
+ msgstr ""
67
+
59
68
  #: /Users/m/w/cesnet/oarepo-runtime/oarepo_runtime/services/schema/ui.py:155
60
69
  msgid "True"
61
70
  msgstr ""
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: oarepo-runtime
3
- Version: 1.10.1
3
+ Version: 1.10.3
4
4
  Summary: A set of runtime extensions of Invenio repository
5
5
  Description-Content-Type: text/markdown
6
6
  License-File: LICENSE
@@ -1,6 +1,6 @@
1
1
  [metadata]
2
2
  name = oarepo-runtime
3
- version = 1.10.1
3
+ version = 1.10.3
4
4
  description = A set of runtime extensions of Invenio repository
5
5
  authors = Alzbeta Pokorna
6
6
  readme = README.md
@@ -1,75 +0,0 @@
1
- from functools import partial
2
-
3
- import marshmallow as ma
4
- from invenio_i18n.selectors import get_locale
5
- from invenio_rdm_records.services.schemas.metadata import record_identifiers_schemes
6
- from invenio_rdm_records.services.schemas.tombstone import DeletionStatusSchema
7
- from invenio_rdm_records.services.schemas.versions import VersionsSchema
8
- from invenio_vocabularies.contrib.awards.schema import AwardRelationSchema
9
- from invenio_vocabularies.contrib.funders.schema import FunderRelationSchema
10
- from marshmallow import fields as ma_fields
11
- from marshmallow import pre_load
12
- from marshmallow_utils.fields import (
13
- IdentifierSet,
14
- )
15
- from marshmallow_utils.fields.nestedattr import NestedAttribute
16
- from marshmallow_utils.schemas.identifier import IdentifierSchema
17
-
18
- from .i18n import MultilingualField
19
-
20
-
21
- class RDMRecordMixin(ma.Schema):
22
- versions = NestedAttribute(VersionsSchema, dump_only=True)
23
- deletion_status = ma_fields.Nested(DeletionStatusSchema, dump_only=True)
24
-
25
-
26
- class MultilingualAwardSchema(AwardRelationSchema):
27
- class Meta:
28
- unknown = ma.RAISE
29
-
30
- @pre_load()
31
- def convert_to_multilingual(self, data, many, **kwargs):
32
- if "title" in data and type(data["title"]) is str:
33
- lang = get_locale()
34
- data["title"] = {lang: data["title"]}
35
- return data
36
-
37
-
38
- class FundingSchema(ma.Schema):
39
- """Funding schema."""
40
-
41
- funder = ma_fields.Nested(FunderRelationSchema, required=True)
42
- award = ma_fields.Nested(MultilingualAwardSchema)
43
-
44
-
45
- class RecordIdentifierField(IdentifierSet):
46
- def __init__(self, *args, **kwargs):
47
- super().__init__(
48
- ma.fields.Nested(
49
- partial(IdentifierSchema, allowed_schemes=record_identifiers_schemes)
50
- ),
51
- *args,
52
- **kwargs
53
- )
54
-
55
-
56
- class RelatedRecordIdentifierField(IdentifierSet):
57
- def __init__(self, *args, **kwargs):
58
- super().__init__(
59
- ma.fields.Nested(
60
- partial(IdentifierSchema, allowed_schemes=record_identifiers_schemes)
61
- ),
62
- *args,
63
- **kwargs
64
- )
65
-
66
-
67
- class RDMSubjectSchema(ma.Schema):
68
- """Subject ui schema."""
69
-
70
- class Meta:
71
- unknown = ma.RAISE
72
-
73
- _id = ma.fields.String(data_key="id")
74
-
75
- subject = MultilingualField()
File without changes