oarepo-runtime 1.7.2__tar.gz → 1.8.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.
Files changed (169) hide show
  1. {oarepo_runtime-1.7.2/oarepo_runtime.egg-info → oarepo_runtime-1.8.0}/PKG-INFO +1 -1
  2. {oarepo_runtime-1.7.2 → oarepo_runtime-1.8.0}/oarepo_runtime/records/systemfields/__init__.py +16 -2
  3. {oarepo_runtime-1.7.2 → oarepo_runtime-1.8.0}/oarepo_runtime/records/systemfields/icu.py +93 -17
  4. {oarepo_runtime-1.7.2 → oarepo_runtime-1.8.0/oarepo_runtime.egg-info}/PKG-INFO +1 -1
  5. {oarepo_runtime-1.7.2 → oarepo_runtime-1.8.0}/setup.cfg +1 -1
  6. {oarepo_runtime-1.7.2 → oarepo_runtime-1.8.0}/LICENSE +0 -0
  7. {oarepo_runtime-1.7.2 → oarepo_runtime-1.8.0}/MANIFEST.in +0 -0
  8. {oarepo_runtime-1.7.2 → oarepo_runtime-1.8.0}/README.md +0 -0
  9. {oarepo_runtime-1.7.2 → oarepo_runtime-1.8.0}/oarepo_runtime/__init__.py +0 -0
  10. {oarepo_runtime-1.7.2 → oarepo_runtime-1.8.0}/oarepo_runtime/cli/__init__.py +0 -0
  11. {oarepo_runtime-1.7.2 → oarepo_runtime-1.8.0}/oarepo_runtime/cli/assets.py +0 -0
  12. {oarepo_runtime-1.7.2 → oarepo_runtime-1.8.0}/oarepo_runtime/cli/base.py +0 -0
  13. {oarepo_runtime-1.7.2 → oarepo_runtime-1.8.0}/oarepo_runtime/cli/cf.py +0 -0
  14. {oarepo_runtime-1.7.2 → oarepo_runtime-1.8.0}/oarepo_runtime/cli/check.py +0 -0
  15. {oarepo_runtime-1.7.2 → oarepo_runtime-1.8.0}/oarepo_runtime/cli/configuration.py +0 -0
  16. {oarepo_runtime-1.7.2 → oarepo_runtime-1.8.0}/oarepo_runtime/cli/fixtures.py +0 -0
  17. {oarepo_runtime-1.7.2 → oarepo_runtime-1.8.0}/oarepo_runtime/cli/index.py +0 -0
  18. {oarepo_runtime-1.7.2 → oarepo_runtime-1.8.0}/oarepo_runtime/cli/permissions/__init__.py +0 -0
  19. {oarepo_runtime-1.7.2 → oarepo_runtime-1.8.0}/oarepo_runtime/cli/permissions/base.py +0 -0
  20. {oarepo_runtime-1.7.2 → oarepo_runtime-1.8.0}/oarepo_runtime/cli/permissions/evaluate.py +0 -0
  21. {oarepo_runtime-1.7.2 → oarepo_runtime-1.8.0}/oarepo_runtime/cli/permissions/list.py +0 -0
  22. {oarepo_runtime-1.7.2 → oarepo_runtime-1.8.0}/oarepo_runtime/cli/permissions/search.py +0 -0
  23. {oarepo_runtime-1.7.2 → oarepo_runtime-1.8.0}/oarepo_runtime/cli/validate.py +0 -0
  24. {oarepo_runtime-1.7.2 → oarepo_runtime-1.8.0}/oarepo_runtime/config.py +0 -0
  25. {oarepo_runtime-1.7.2 → oarepo_runtime-1.8.0}/oarepo_runtime/datastreams/__init__.py +0 -0
  26. {oarepo_runtime-1.7.2 → oarepo_runtime-1.8.0}/oarepo_runtime/datastreams/asynchronous.py +0 -0
  27. {oarepo_runtime-1.7.2 → oarepo_runtime-1.8.0}/oarepo_runtime/datastreams/catalogue.py +0 -0
  28. {oarepo_runtime-1.7.2 → oarepo_runtime-1.8.0}/oarepo_runtime/datastreams/datastreams.py +0 -0
  29. {oarepo_runtime-1.7.2 → oarepo_runtime-1.8.0}/oarepo_runtime/datastreams/errors.py +0 -0
  30. {oarepo_runtime-1.7.2 → oarepo_runtime-1.8.0}/oarepo_runtime/datastreams/ext.py +0 -0
  31. {oarepo_runtime-1.7.2 → oarepo_runtime-1.8.0}/oarepo_runtime/datastreams/fixtures.py +0 -0
  32. {oarepo_runtime-1.7.2 → oarepo_runtime-1.8.0}/oarepo_runtime/datastreams/json.py +0 -0
  33. {oarepo_runtime-1.7.2 → oarepo_runtime-1.8.0}/oarepo_runtime/datastreams/readers/__init__.py +0 -0
  34. {oarepo_runtime-1.7.2 → oarepo_runtime-1.8.0}/oarepo_runtime/datastreams/readers/attachments.py +0 -0
  35. {oarepo_runtime-1.7.2 → oarepo_runtime-1.8.0}/oarepo_runtime/datastreams/readers/excel.py +0 -0
  36. {oarepo_runtime-1.7.2 → oarepo_runtime-1.8.0}/oarepo_runtime/datastreams/readers/json.py +0 -0
  37. {oarepo_runtime-1.7.2 → oarepo_runtime-1.8.0}/oarepo_runtime/datastreams/readers/service.py +0 -0
  38. {oarepo_runtime-1.7.2 → oarepo_runtime-1.8.0}/oarepo_runtime/datastreams/readers/yaml.py +0 -0
  39. {oarepo_runtime-1.7.2 → oarepo_runtime-1.8.0}/oarepo_runtime/datastreams/semi_asynchronous.py +0 -0
  40. {oarepo_runtime-1.7.2 → oarepo_runtime-1.8.0}/oarepo_runtime/datastreams/synchronous.py +0 -0
  41. {oarepo_runtime-1.7.2 → oarepo_runtime-1.8.0}/oarepo_runtime/datastreams/transformers.py +0 -0
  42. {oarepo_runtime-1.7.2 → oarepo_runtime-1.8.0}/oarepo_runtime/datastreams/types.py +0 -0
  43. {oarepo_runtime-1.7.2 → oarepo_runtime-1.8.0}/oarepo_runtime/datastreams/utils.py +0 -0
  44. {oarepo_runtime-1.7.2 → oarepo_runtime-1.8.0}/oarepo_runtime/datastreams/writers/__init__.py +0 -0
  45. {oarepo_runtime-1.7.2 → oarepo_runtime-1.8.0}/oarepo_runtime/datastreams/writers/attachments_file.py +0 -0
  46. {oarepo_runtime-1.7.2 → oarepo_runtime-1.8.0}/oarepo_runtime/datastreams/writers/attachments_service.py +0 -0
  47. {oarepo_runtime-1.7.2 → oarepo_runtime-1.8.0}/oarepo_runtime/datastreams/writers/publish.py +0 -0
  48. {oarepo_runtime-1.7.2 → oarepo_runtime-1.8.0}/oarepo_runtime/datastreams/writers/service.py +0 -0
  49. {oarepo_runtime-1.7.2 → oarepo_runtime-1.8.0}/oarepo_runtime/datastreams/writers/utils.py +0 -0
  50. {oarepo_runtime-1.7.2 → oarepo_runtime-1.8.0}/oarepo_runtime/datastreams/writers/validation_errors.py +0 -0
  51. {oarepo_runtime-1.7.2 → oarepo_runtime-1.8.0}/oarepo_runtime/datastreams/writers/yaml.py +0 -0
  52. {oarepo_runtime-1.7.2 → oarepo_runtime-1.8.0}/oarepo_runtime/ext.py +0 -0
  53. {oarepo_runtime-1.7.2 → oarepo_runtime-1.8.0}/oarepo_runtime/ext_config.py +0 -0
  54. {oarepo_runtime-1.7.2 → oarepo_runtime-1.8.0}/oarepo_runtime/i18n/__init__.py +0 -0
  55. {oarepo_runtime-1.7.2 → oarepo_runtime-1.8.0}/oarepo_runtime/info/__init__.py +0 -0
  56. {oarepo_runtime-1.7.2 → oarepo_runtime-1.8.0}/oarepo_runtime/info/check.py +0 -0
  57. {oarepo_runtime-1.7.2 → oarepo_runtime-1.8.0}/oarepo_runtime/info/permissions/__init__.py +0 -0
  58. {oarepo_runtime-1.7.2 → oarepo_runtime-1.8.0}/oarepo_runtime/info/permissions/debug.py +0 -0
  59. {oarepo_runtime-1.7.2 → oarepo_runtime-1.8.0}/oarepo_runtime/info/views.py +0 -0
  60. {oarepo_runtime-1.7.2 → oarepo_runtime-1.8.0}/oarepo_runtime/profile.py +0 -0
  61. {oarepo_runtime-1.7.2 → oarepo_runtime-1.8.0}/oarepo_runtime/proxies.py +0 -0
  62. {oarepo_runtime-1.7.2 → oarepo_runtime-1.8.0}/oarepo_runtime/records/__init__.py +0 -0
  63. {oarepo_runtime-1.7.2 → oarepo_runtime-1.8.0}/oarepo_runtime/records/drafts.py +0 -0
  64. {oarepo_runtime-1.7.2 → oarepo_runtime-1.8.0}/oarepo_runtime/records/dumpers/__init__.py +0 -0
  65. {oarepo_runtime-1.7.2 → oarepo_runtime-1.8.0}/oarepo_runtime/records/dumpers/edtf_interval.py +0 -0
  66. {oarepo_runtime-1.7.2 → oarepo_runtime-1.8.0}/oarepo_runtime/records/dumpers/multilingual_dumper.py +0 -0
  67. {oarepo_runtime-1.7.2 → oarepo_runtime-1.8.0}/oarepo_runtime/records/entity_resolvers/__init__.py +0 -0
  68. {oarepo_runtime-1.7.2 → oarepo_runtime-1.8.0}/oarepo_runtime/records/entity_resolvers/proxies.py +0 -0
  69. {oarepo_runtime-1.7.2 → oarepo_runtime-1.8.0}/oarepo_runtime/records/mappings/__init__.py +0 -0
  70. {oarepo_runtime-1.7.2 → oarepo_runtime-1.8.0}/oarepo_runtime/records/mappings/rdm_parent_mapping.json +0 -0
  71. {oarepo_runtime-1.7.2 → oarepo_runtime-1.8.0}/oarepo_runtime/records/owners/__init__.py +0 -0
  72. {oarepo_runtime-1.7.2 → oarepo_runtime-1.8.0}/oarepo_runtime/records/owners/registry.py +0 -0
  73. {oarepo_runtime-1.7.2 → oarepo_runtime-1.8.0}/oarepo_runtime/records/pid_providers.py +0 -0
  74. {oarepo_runtime-1.7.2 → oarepo_runtime-1.8.0}/oarepo_runtime/records/relations/__init__.py +0 -0
  75. {oarepo_runtime-1.7.2 → oarepo_runtime-1.8.0}/oarepo_runtime/records/relations/base.py +0 -0
  76. {oarepo_runtime-1.7.2 → oarepo_runtime-1.8.0}/oarepo_runtime/records/relations/internal.py +0 -0
  77. {oarepo_runtime-1.7.2 → oarepo_runtime-1.8.0}/oarepo_runtime/records/relations/lookup.py +0 -0
  78. {oarepo_runtime-1.7.2 → oarepo_runtime-1.8.0}/oarepo_runtime/records/relations/pid_relation.py +0 -0
  79. {oarepo_runtime-1.7.2 → oarepo_runtime-1.8.0}/oarepo_runtime/records/systemfields/featured_file.py +0 -0
  80. {oarepo_runtime-1.7.2 → oarepo_runtime-1.8.0}/oarepo_runtime/records/systemfields/has_draftcheck.py +0 -0
  81. {oarepo_runtime-1.7.2 → oarepo_runtime-1.8.0}/oarepo_runtime/records/systemfields/mapping.py +0 -0
  82. {oarepo_runtime-1.7.2 → oarepo_runtime-1.8.0}/oarepo_runtime/records/systemfields/owner.py +0 -0
  83. {oarepo_runtime-1.7.2 → oarepo_runtime-1.8.0}/oarepo_runtime/records/systemfields/record_status.py +0 -0
  84. {oarepo_runtime-1.7.2 → oarepo_runtime-1.8.0}/oarepo_runtime/records/systemfields/selectors.py +0 -0
  85. {oarepo_runtime-1.7.2 → oarepo_runtime-1.8.0}/oarepo_runtime/records/systemfields/synthetic.py +0 -0
  86. {oarepo_runtime-1.7.2 → oarepo_runtime-1.8.0}/oarepo_runtime/resources/__init__.py +0 -0
  87. {oarepo_runtime-1.7.2 → oarepo_runtime-1.8.0}/oarepo_runtime/resources/config.py +0 -0
  88. {oarepo_runtime-1.7.2 → oarepo_runtime-1.8.0}/oarepo_runtime/resources/file_resource.py +0 -0
  89. {oarepo_runtime-1.7.2 → oarepo_runtime-1.8.0}/oarepo_runtime/resources/json_serializer.py +0 -0
  90. {oarepo_runtime-1.7.2 → oarepo_runtime-1.8.0}/oarepo_runtime/resources/localized_ui_json_serializer.py +0 -0
  91. {oarepo_runtime-1.7.2 → oarepo_runtime-1.8.0}/oarepo_runtime/resources/resource.py +0 -0
  92. {oarepo_runtime-1.7.2 → oarepo_runtime-1.8.0}/oarepo_runtime/resources/responses.py +0 -0
  93. {oarepo_runtime-1.7.2 → oarepo_runtime-1.8.0}/oarepo_runtime/services/__init__.py +0 -0
  94. {oarepo_runtime-1.7.2 → oarepo_runtime-1.8.0}/oarepo_runtime/services/components.py +0 -0
  95. {oarepo_runtime-1.7.2 → oarepo_runtime-1.8.0}/oarepo_runtime/services/config/__init__.py +0 -0
  96. {oarepo_runtime-1.7.2 → oarepo_runtime-1.8.0}/oarepo_runtime/services/config/draft_link.py +0 -0
  97. {oarepo_runtime-1.7.2 → oarepo_runtime-1.8.0}/oarepo_runtime/services/config/link_conditions.py +0 -0
  98. {oarepo_runtime-1.7.2 → oarepo_runtime-1.8.0}/oarepo_runtime/services/config/permissions_presets.py +0 -0
  99. {oarepo_runtime-1.7.2 → oarepo_runtime-1.8.0}/oarepo_runtime/services/config/service.py +0 -0
  100. {oarepo_runtime-1.7.2 → oarepo_runtime-1.8.0}/oarepo_runtime/services/custom_fields/__init__.py +0 -0
  101. {oarepo_runtime-1.7.2 → oarepo_runtime-1.8.0}/oarepo_runtime/services/custom_fields/mappings.py +0 -0
  102. {oarepo_runtime-1.7.2 → oarepo_runtime-1.8.0}/oarepo_runtime/services/entity/__init__.py +0 -0
  103. {oarepo_runtime-1.7.2 → oarepo_runtime-1.8.0}/oarepo_runtime/services/entity/config.py +0 -0
  104. {oarepo_runtime-1.7.2 → oarepo_runtime-1.8.0}/oarepo_runtime/services/entity/schema.py +0 -0
  105. {oarepo_runtime-1.7.2 → oarepo_runtime-1.8.0}/oarepo_runtime/services/entity/service.py +0 -0
  106. {oarepo_runtime-1.7.2 → oarepo_runtime-1.8.0}/oarepo_runtime/services/expansions/__init__.py +0 -0
  107. {oarepo_runtime-1.7.2 → oarepo_runtime-1.8.0}/oarepo_runtime/services/expansions/expandable_fields.py +0 -0
  108. {oarepo_runtime-1.7.2 → oarepo_runtime-1.8.0}/oarepo_runtime/services/expansions/service.py +0 -0
  109. {oarepo_runtime-1.7.2 → oarepo_runtime-1.8.0}/oarepo_runtime/services/facets/__init__.py +0 -0
  110. {oarepo_runtime-1.7.2 → oarepo_runtime-1.8.0}/oarepo_runtime/services/facets/base.py +0 -0
  111. {oarepo_runtime-1.7.2 → oarepo_runtime-1.8.0}/oarepo_runtime/services/facets/date.py +0 -0
  112. {oarepo_runtime-1.7.2 → oarepo_runtime-1.8.0}/oarepo_runtime/services/facets/enum.py +0 -0
  113. {oarepo_runtime-1.7.2 → oarepo_runtime-1.8.0}/oarepo_runtime/services/facets/facet_groups_names.py +0 -0
  114. {oarepo_runtime-1.7.2 → oarepo_runtime-1.8.0}/oarepo_runtime/services/facets/max_facet.py +0 -0
  115. {oarepo_runtime-1.7.2 → oarepo_runtime-1.8.0}/oarepo_runtime/services/facets/multilingual_facet.py +0 -0
  116. {oarepo_runtime-1.7.2 → oarepo_runtime-1.8.0}/oarepo_runtime/services/facets/nested_facet.py +0 -0
  117. {oarepo_runtime-1.7.2 → oarepo_runtime-1.8.0}/oarepo_runtime/services/facets/params.py +0 -0
  118. {oarepo_runtime-1.7.2 → oarepo_runtime-1.8.0}/oarepo_runtime/services/facets/year_histogram.py +0 -0
  119. {oarepo_runtime-1.7.2 → oarepo_runtime-1.8.0}/oarepo_runtime/services/files/__init__.py +0 -0
  120. {oarepo_runtime-1.7.2 → oarepo_runtime-1.8.0}/oarepo_runtime/services/files/components.py +0 -0
  121. {oarepo_runtime-1.7.2 → oarepo_runtime-1.8.0}/oarepo_runtime/services/files/service.py +0 -0
  122. {oarepo_runtime-1.7.2 → oarepo_runtime-1.8.0}/oarepo_runtime/services/generators.py +0 -0
  123. {oarepo_runtime-1.7.2 → oarepo_runtime-1.8.0}/oarepo_runtime/services/permissions/__init__.py +0 -0
  124. {oarepo_runtime-1.7.2 → oarepo_runtime-1.8.0}/oarepo_runtime/services/permissions/generators.py +0 -0
  125. {oarepo_runtime-1.7.2 → oarepo_runtime-1.8.0}/oarepo_runtime/services/records/__init__.py +0 -0
  126. {oarepo_runtime-1.7.2 → oarepo_runtime-1.8.0}/oarepo_runtime/services/records/links.py +0 -0
  127. {oarepo_runtime-1.7.2 → oarepo_runtime-1.8.0}/oarepo_runtime/services/relations/__init__.py +0 -0
  128. {oarepo_runtime-1.7.2 → oarepo_runtime-1.8.0}/oarepo_runtime/services/relations/components.py +0 -0
  129. {oarepo_runtime-1.7.2 → oarepo_runtime-1.8.0}/oarepo_runtime/services/relations/errors.py +0 -0
  130. {oarepo_runtime-1.7.2 → oarepo_runtime-1.8.0}/oarepo_runtime/services/relations/mapping.py +0 -0
  131. {oarepo_runtime-1.7.2 → oarepo_runtime-1.8.0}/oarepo_runtime/services/results.py +0 -0
  132. {oarepo_runtime-1.7.2 → oarepo_runtime-1.8.0}/oarepo_runtime/services/schema/__init__.py +0 -0
  133. {oarepo_runtime-1.7.2 → oarepo_runtime-1.8.0}/oarepo_runtime/services/schema/cf.py +0 -0
  134. {oarepo_runtime-1.7.2 → oarepo_runtime-1.8.0}/oarepo_runtime/services/schema/i18n.py +0 -0
  135. {oarepo_runtime-1.7.2 → oarepo_runtime-1.8.0}/oarepo_runtime/services/schema/i18n_ui.py +0 -0
  136. {oarepo_runtime-1.7.2 → oarepo_runtime-1.8.0}/oarepo_runtime/services/schema/i18n_validation.py +0 -0
  137. {oarepo_runtime-1.7.2 → oarepo_runtime-1.8.0}/oarepo_runtime/services/schema/marshmallow.py +0 -0
  138. {oarepo_runtime-1.7.2 → oarepo_runtime-1.8.0}/oarepo_runtime/services/schema/marshmallow_to_json_schema.py +0 -0
  139. {oarepo_runtime-1.7.2 → oarepo_runtime-1.8.0}/oarepo_runtime/services/schema/oneofschema.py +0 -0
  140. {oarepo_runtime-1.7.2 → oarepo_runtime-1.8.0}/oarepo_runtime/services/schema/polymorphic.py +0 -0
  141. {oarepo_runtime-1.7.2 → oarepo_runtime-1.8.0}/oarepo_runtime/services/schema/rdm.py +0 -0
  142. {oarepo_runtime-1.7.2 → oarepo_runtime-1.8.0}/oarepo_runtime/services/schema/rdm_ui.py +0 -0
  143. {oarepo_runtime-1.7.2 → oarepo_runtime-1.8.0}/oarepo_runtime/services/schema/ui.py +0 -0
  144. {oarepo_runtime-1.7.2 → oarepo_runtime-1.8.0}/oarepo_runtime/services/schema/validation.py +0 -0
  145. {oarepo_runtime-1.7.2 → oarepo_runtime-1.8.0}/oarepo_runtime/services/search.py +0 -0
  146. {oarepo_runtime-1.7.2 → oarepo_runtime-1.8.0}/oarepo_runtime/services/service.py +0 -0
  147. {oarepo_runtime-1.7.2 → oarepo_runtime-1.8.0}/oarepo_runtime/tasks.py +0 -0
  148. {oarepo_runtime-1.7.2 → oarepo_runtime-1.8.0}/oarepo_runtime/translations/cs/LC_MESSAGES/messages.mo +0 -0
  149. {oarepo_runtime-1.7.2 → oarepo_runtime-1.8.0}/oarepo_runtime/translations/cs/LC_MESSAGES/messages.po +0 -0
  150. {oarepo_runtime-1.7.2 → oarepo_runtime-1.8.0}/oarepo_runtime/translations/default_translations.py +0 -0
  151. {oarepo_runtime-1.7.2 → oarepo_runtime-1.8.0}/oarepo_runtime/translations/en/LC_MESSAGES/messages.mo +0 -0
  152. {oarepo_runtime-1.7.2 → oarepo_runtime-1.8.0}/oarepo_runtime/translations/en/LC_MESSAGES/messages.po +0 -0
  153. {oarepo_runtime-1.7.2 → oarepo_runtime-1.8.0}/oarepo_runtime/translations/messages.pot +0 -0
  154. {oarepo_runtime-1.7.2 → oarepo_runtime-1.8.0}/oarepo_runtime/uow.py +0 -0
  155. {oarepo_runtime-1.7.2 → oarepo_runtime-1.8.0}/oarepo_runtime/utils/__init__.py +0 -0
  156. {oarepo_runtime-1.7.2 → oarepo_runtime-1.8.0}/oarepo_runtime/utils/functools.py +0 -0
  157. {oarepo_runtime-1.7.2 → oarepo_runtime-1.8.0}/oarepo_runtime/utils/index.py +0 -0
  158. {oarepo_runtime-1.7.2 → oarepo_runtime-1.8.0}/oarepo_runtime/utils/path.py +0 -0
  159. {oarepo_runtime-1.7.2 → oarepo_runtime-1.8.0}/oarepo_runtime.egg-info/SOURCES.txt +0 -0
  160. {oarepo_runtime-1.7.2 → oarepo_runtime-1.8.0}/oarepo_runtime.egg-info/dependency_links.txt +0 -0
  161. {oarepo_runtime-1.7.2 → oarepo_runtime-1.8.0}/oarepo_runtime.egg-info/entry_points.txt +0 -0
  162. {oarepo_runtime-1.7.2 → oarepo_runtime-1.8.0}/oarepo_runtime.egg-info/requires.txt +0 -0
  163. {oarepo_runtime-1.7.2 → oarepo_runtime-1.8.0}/oarepo_runtime.egg-info/top_level.txt +0 -0
  164. {oarepo_runtime-1.7.2 → oarepo_runtime-1.8.0}/pyproject.toml +0 -0
  165. {oarepo_runtime-1.7.2 → oarepo_runtime-1.8.0}/setup.py +0 -0
  166. {oarepo_runtime-1.7.2 → oarepo_runtime-1.8.0}/tests/marshmallow_to_json/__init__.py +0 -0
  167. {oarepo_runtime-1.7.2 → oarepo_runtime-1.8.0}/tests/marshmallow_to_json/test_datacite_ui_schema.py +0 -0
  168. {oarepo_runtime-1.7.2 → oarepo_runtime-1.8.0}/tests/marshmallow_to_json/test_simple_schema.py +0 -0
  169. {oarepo_runtime-1.7.2 → oarepo_runtime-1.8.0}/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.7.2
3
+ Version: 1.8.0
4
4
  Summary: A set of runtime extensions of Invenio repository
5
5
  Description-Content-Type: text/markdown
6
6
  License-File: LICENSE
@@ -1,12 +1,26 @@
1
- from .icu import ICUField, ICUSortField, ICUSuggestField
1
+ from .icu import (
2
+ FulltextIndexField,
3
+ ICUField,
4
+ ICUSearchField,
5
+ ICUSortField,
6
+ ICUSuggestField,
7
+ )
2
8
  from .mapping import MappingSystemFieldMixin, SystemFieldDumperExt
3
- from .selectors import FirstItemSelector, PathSelector, Selector, FilteredSelector, MultiSelector
9
+ from .selectors import (
10
+ FilteredSelector,
11
+ FirstItemSelector,
12
+ MultiSelector,
13
+ PathSelector,
14
+ Selector,
15
+ )
4
16
  from .synthetic import SyntheticSystemField
5
17
 
6
18
  __all__ = (
7
19
  "ICUField",
8
20
  "ICUSuggestField",
9
21
  "ICUSortField",
22
+ "ICUSearchField",
23
+ "FulltextIndexField",
10
24
  "MappingSystemFieldMixin",
11
25
  "SystemFieldDumperExt",
12
26
  "SyntheticSystemField",
@@ -37,11 +37,18 @@ class ICUField(MappingSystemFieldMixin, SystemField):
37
37
  ret = []
38
38
  for l in lookup_key(data, f"{self.source_field}"):
39
39
  if isinstance(l.value, str):
40
+ # take single value as being always the the language provided
40
41
  ret.append(l.value)
41
42
  elif isinstance(l.value, dict):
43
+ # expected to be {"cs": "", "en": ""}
42
44
  val = l.value.get(language)
43
45
  if val:
44
46
  ret.append(val)
47
+ elif "lang" in l.value:
48
+ # for [{"lang": "", "value": ""}, ...] we get each item separately
49
+ # that's why we do not iterate over l.value
50
+ if l.value["lang"] == language:
51
+ ret.append(l.value["value"])
45
52
  return ret
46
53
 
47
54
  def search_dump(self, data, record):
@@ -132,23 +139,24 @@ class ICUSuggestField(ICUField):
132
139
  }
133
140
 
134
141
 
135
- class ICUSearchField(ICUField):
136
- """
137
- A field that adds stemming-aware search field
138
- """
142
+ class ICUSearchAnalyzerMixin:
139
143
 
140
144
  default_stemming_analyzers = {
141
145
  "stemming_analyzer_cs": {
142
146
  "tokenizer": "standard",
143
- "filter": ["stemming_filter_cs"],
147
+ "filter": ["stemming_filter_cs", "lowercase"],
144
148
  },
145
149
  "stemming_analyzer_en": {
146
150
  "tokenizer": "standard",
147
- "filter": ["stemming_filter_en"],
151
+ "filter": ["stemming_filter_en", "lowercase"],
148
152
  },
149
153
  "ascii_folding_analyzer": {
150
154
  "tokenizer": "standard",
151
- "filter": ["ascii_folding_filter"],
155
+ "filter": ["ascii_folding_filter", "lowercase"],
156
+ },
157
+ "lowercase_analyzer": {
158
+ "tokenizer": "standard",
159
+ "filter": ["lowercase"],
152
160
  },
153
161
  }
154
162
 
@@ -166,6 +174,25 @@ class ICUSearchField(ICUField):
166
174
  "ascii_folding_filter": {"type": "asciifolding", "preserve_original": True},
167
175
  }
168
176
 
177
+ @property
178
+ def mapping_settings(self):
179
+ return {
180
+ "analysis": {
181
+ "analyzer": current_app.config.get(
182
+ "OAREPO_ICU_SEARCH_ANALYZERS", self.default_stemming_analyzers
183
+ ),
184
+ "filter": current_app.config.get(
185
+ "OAREPO_ICU_SEARCH_FILTERS", self.default_stemming_filters
186
+ ),
187
+ }
188
+ }
189
+
190
+
191
+ class ICUSearchField(ICUSearchAnalyzerMixin, ICUField):
192
+ """
193
+ A field that adds stemming-aware search field
194
+ """
195
+
169
196
  def __init__(self, source_field, key=None):
170
197
  super().__init__(source_field=source_field, key=key)
171
198
 
@@ -187,6 +214,11 @@ class ICUSearchField(ICUField):
187
214
  "analyzer": f"stemming_analyzer_{lang}",
188
215
  "boost": 0.5,
189
216
  },
217
+ "lowercase": {
218
+ "type": "text",
219
+ "boost": 0.8,
220
+ "analyzer": "lowercase_analyzer",
221
+ },
190
222
  "ascii_folded": {
191
223
  "type": "text",
192
224
  "analyzer": "ascii_folding_analyzer",
@@ -200,15 +232,59 @@ class ICUSearchField(ICUField):
200
232
  },
201
233
  }
202
234
 
235
+ def get_values(self, data, language):
236
+ return super().get_values(data, language=language)
237
+
238
+
239
+ class FulltextIndexField(ICUSearchAnalyzerMixin, ICUField):
240
+ """
241
+ A system field that makes the field searchable in OpenSearch,
242
+ regardless if it is indexed/analyzed, embedded in Nested or not.
243
+
244
+ It creates a top-level mapping field and copies
245
+ content of {source_field} into it. It also provides the correct mapping
246
+ for the field based on the current configuration of the application.
247
+
248
+ Unlike the ICU, this field is a single-language and the language should
249
+ be provided when initializing the field.
250
+ It defaults to the BABEL_DEFAULT_LOCALE if not provided.
251
+ """
252
+
253
+ def __init__(self, *, source_field, key=None, language=None):
254
+ super().__init__(source_field=source_field, key=key)
255
+ self.language = language
256
+
203
257
  @property
204
- def mapping_settings(self):
205
- return {
206
- "analysis": {
207
- "analyzer": current_app.config.get(
208
- "OAREPO_ICU_SEARCH_ANALYZERS", self.default_stemming_analyzers
209
- ),
210
- "filter": current_app.config.get(
211
- "OAREPO_ICU_SEARCH_FILTERS", self.default_stemming_filters
212
- ),
258
+ def mapping(self):
259
+ language = self.language or current_app.config.get("BABEL_DEFAULT_LOCALE", "en")
260
+ mapping_settings = self.languages.get(language, None)
261
+ if mapping_settings:
262
+ mapping_settings = mapping_settings.get("search")
263
+ if not mapping_settings:
264
+ mapping_settings = {
265
+ "type": "text",
266
+ "boost": 1,
267
+ "fields": {
268
+ "stemmed": {
269
+ "type": "text",
270
+ "analyzer": f"stemming_analyzer_{language}",
271
+ "boost": 0.5,
272
+ },
273
+ "ascii_folded": {
274
+ "type": "text",
275
+ "analyzer": "ascii_folding_analyzer",
276
+ "boost": 0.3,
277
+ },
278
+ },
213
279
  }
214
- }
280
+
281
+ return {self.attr_name: mapping_settings}
282
+
283
+ def search_dump(self, data, record):
284
+ """Dump custom field."""
285
+ data[self.attr_name] = self.get_values(data, language=self.language)
286
+
287
+ @classmethod
288
+ def search_load(cls, data, record_cls):
289
+ """Load custom field."""
290
+ data.pop(cls.attr_name, None)
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: oarepo-runtime
3
- Version: 1.7.2
3
+ Version: 1.8.0
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.7.2
3
+ version = 1.8.0
4
4
  description = A set of runtime extensions of Invenio repository
5
5
  authors = Alzbeta Pokorna
6
6
  readme = README.md
File without changes
File without changes
File without changes