oarepo-runtime 1.5.111__tar.gz → 1.5.113__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 (162) hide show
  1. {oarepo_runtime-1.5.111/oarepo_runtime.egg-info → oarepo_runtime-1.5.113}/PKG-INFO +1 -1
  2. {oarepo_runtime-1.5.111 → oarepo_runtime-1.5.113}/oarepo_runtime/records/relations/__init__.py +4 -1
  3. {oarepo_runtime-1.5.111 → oarepo_runtime-1.5.113}/oarepo_runtime/records/relations/base.py +26 -0
  4. {oarepo_runtime-1.5.111 → oarepo_runtime-1.5.113}/oarepo_runtime/records/relations/pid_relation.py +18 -2
  5. {oarepo_runtime-1.5.111 → oarepo_runtime-1.5.113}/oarepo_runtime/services/schema/rdm_ui.py +11 -1
  6. {oarepo_runtime-1.5.111 → oarepo_runtime-1.5.113/oarepo_runtime.egg-info}/PKG-INFO +1 -1
  7. {oarepo_runtime-1.5.111 → oarepo_runtime-1.5.113}/setup.cfg +1 -1
  8. {oarepo_runtime-1.5.111 → oarepo_runtime-1.5.113}/LICENSE +0 -0
  9. {oarepo_runtime-1.5.111 → oarepo_runtime-1.5.113}/MANIFEST.in +0 -0
  10. {oarepo_runtime-1.5.111 → oarepo_runtime-1.5.113}/README.md +0 -0
  11. {oarepo_runtime-1.5.111 → oarepo_runtime-1.5.113}/oarepo_runtime/__init__.py +0 -0
  12. {oarepo_runtime-1.5.111 → oarepo_runtime-1.5.113}/oarepo_runtime/cli/__init__.py +0 -0
  13. {oarepo_runtime-1.5.111 → oarepo_runtime-1.5.113}/oarepo_runtime/cli/assets.py +0 -0
  14. {oarepo_runtime-1.5.111 → oarepo_runtime-1.5.113}/oarepo_runtime/cli/base.py +0 -0
  15. {oarepo_runtime-1.5.111 → oarepo_runtime-1.5.113}/oarepo_runtime/cli/cf.py +0 -0
  16. {oarepo_runtime-1.5.111 → oarepo_runtime-1.5.113}/oarepo_runtime/cli/check.py +0 -0
  17. {oarepo_runtime-1.5.111 → oarepo_runtime-1.5.113}/oarepo_runtime/cli/configuration.py +0 -0
  18. {oarepo_runtime-1.5.111 → oarepo_runtime-1.5.113}/oarepo_runtime/cli/fixtures.py +0 -0
  19. {oarepo_runtime-1.5.111 → oarepo_runtime-1.5.113}/oarepo_runtime/cli/index.py +0 -0
  20. {oarepo_runtime-1.5.111 → oarepo_runtime-1.5.113}/oarepo_runtime/cli/permissions/__init__.py +0 -0
  21. {oarepo_runtime-1.5.111 → oarepo_runtime-1.5.113}/oarepo_runtime/cli/permissions/base.py +0 -0
  22. {oarepo_runtime-1.5.111 → oarepo_runtime-1.5.113}/oarepo_runtime/cli/permissions/evaluate.py +0 -0
  23. {oarepo_runtime-1.5.111 → oarepo_runtime-1.5.113}/oarepo_runtime/cli/permissions/list.py +0 -0
  24. {oarepo_runtime-1.5.111 → oarepo_runtime-1.5.113}/oarepo_runtime/cli/permissions/search.py +0 -0
  25. {oarepo_runtime-1.5.111 → oarepo_runtime-1.5.113}/oarepo_runtime/cli/validate.py +0 -0
  26. {oarepo_runtime-1.5.111 → oarepo_runtime-1.5.113}/oarepo_runtime/datastreams/__init__.py +0 -0
  27. {oarepo_runtime-1.5.111 → oarepo_runtime-1.5.113}/oarepo_runtime/datastreams/asynchronous.py +0 -0
  28. {oarepo_runtime-1.5.111 → oarepo_runtime-1.5.113}/oarepo_runtime/datastreams/catalogue.py +0 -0
  29. {oarepo_runtime-1.5.111 → oarepo_runtime-1.5.113}/oarepo_runtime/datastreams/datastreams.py +0 -0
  30. {oarepo_runtime-1.5.111 → oarepo_runtime-1.5.113}/oarepo_runtime/datastreams/errors.py +0 -0
  31. {oarepo_runtime-1.5.111 → oarepo_runtime-1.5.113}/oarepo_runtime/datastreams/ext.py +0 -0
  32. {oarepo_runtime-1.5.111 → oarepo_runtime-1.5.113}/oarepo_runtime/datastreams/fixtures.py +0 -0
  33. {oarepo_runtime-1.5.111 → oarepo_runtime-1.5.113}/oarepo_runtime/datastreams/json.py +0 -0
  34. {oarepo_runtime-1.5.111 → oarepo_runtime-1.5.113}/oarepo_runtime/datastreams/readers/__init__.py +0 -0
  35. {oarepo_runtime-1.5.111 → oarepo_runtime-1.5.113}/oarepo_runtime/datastreams/readers/attachments.py +0 -0
  36. {oarepo_runtime-1.5.111 → oarepo_runtime-1.5.113}/oarepo_runtime/datastreams/readers/excel.py +0 -0
  37. {oarepo_runtime-1.5.111 → oarepo_runtime-1.5.113}/oarepo_runtime/datastreams/readers/json.py +0 -0
  38. {oarepo_runtime-1.5.111 → oarepo_runtime-1.5.113}/oarepo_runtime/datastreams/readers/service.py +0 -0
  39. {oarepo_runtime-1.5.111 → oarepo_runtime-1.5.113}/oarepo_runtime/datastreams/readers/yaml.py +0 -0
  40. {oarepo_runtime-1.5.111 → oarepo_runtime-1.5.113}/oarepo_runtime/datastreams/semi_asynchronous.py +0 -0
  41. {oarepo_runtime-1.5.111 → oarepo_runtime-1.5.113}/oarepo_runtime/datastreams/synchronous.py +0 -0
  42. {oarepo_runtime-1.5.111 → oarepo_runtime-1.5.113}/oarepo_runtime/datastreams/transformers.py +0 -0
  43. {oarepo_runtime-1.5.111 → oarepo_runtime-1.5.113}/oarepo_runtime/datastreams/types.py +0 -0
  44. {oarepo_runtime-1.5.111 → oarepo_runtime-1.5.113}/oarepo_runtime/datastreams/utils.py +0 -0
  45. {oarepo_runtime-1.5.111 → oarepo_runtime-1.5.113}/oarepo_runtime/datastreams/writers/__init__.py +0 -0
  46. {oarepo_runtime-1.5.111 → oarepo_runtime-1.5.113}/oarepo_runtime/datastreams/writers/attachments_file.py +0 -0
  47. {oarepo_runtime-1.5.111 → oarepo_runtime-1.5.113}/oarepo_runtime/datastreams/writers/attachments_service.py +0 -0
  48. {oarepo_runtime-1.5.111 → oarepo_runtime-1.5.113}/oarepo_runtime/datastreams/writers/publish.py +0 -0
  49. {oarepo_runtime-1.5.111 → oarepo_runtime-1.5.113}/oarepo_runtime/datastreams/writers/service.py +0 -0
  50. {oarepo_runtime-1.5.111 → oarepo_runtime-1.5.113}/oarepo_runtime/datastreams/writers/utils.py +0 -0
  51. {oarepo_runtime-1.5.111 → oarepo_runtime-1.5.113}/oarepo_runtime/datastreams/writers/validation_errors.py +0 -0
  52. {oarepo_runtime-1.5.111 → oarepo_runtime-1.5.113}/oarepo_runtime/datastreams/writers/yaml.py +0 -0
  53. {oarepo_runtime-1.5.111 → oarepo_runtime-1.5.113}/oarepo_runtime/ext.py +0 -0
  54. {oarepo_runtime-1.5.111 → oarepo_runtime-1.5.113}/oarepo_runtime/ext_config.py +0 -0
  55. {oarepo_runtime-1.5.111 → oarepo_runtime-1.5.113}/oarepo_runtime/i18n/__init__.py +0 -0
  56. {oarepo_runtime-1.5.111 → oarepo_runtime-1.5.113}/oarepo_runtime/info/__init__.py +0 -0
  57. {oarepo_runtime-1.5.111 → oarepo_runtime-1.5.113}/oarepo_runtime/info/check.py +0 -0
  58. {oarepo_runtime-1.5.111 → oarepo_runtime-1.5.113}/oarepo_runtime/info/permissions/__init__.py +0 -0
  59. {oarepo_runtime-1.5.111 → oarepo_runtime-1.5.113}/oarepo_runtime/info/permissions/debug.py +0 -0
  60. {oarepo_runtime-1.5.111 → oarepo_runtime-1.5.113}/oarepo_runtime/info/views.py +0 -0
  61. {oarepo_runtime-1.5.111 → oarepo_runtime-1.5.113}/oarepo_runtime/profile.py +0 -0
  62. {oarepo_runtime-1.5.111 → oarepo_runtime-1.5.113}/oarepo_runtime/proxies.py +0 -0
  63. {oarepo_runtime-1.5.111 → oarepo_runtime-1.5.113}/oarepo_runtime/records/__init__.py +0 -0
  64. {oarepo_runtime-1.5.111 → oarepo_runtime-1.5.113}/oarepo_runtime/records/dumpers/__init__.py +0 -0
  65. {oarepo_runtime-1.5.111 → oarepo_runtime-1.5.113}/oarepo_runtime/records/dumpers/edtf_interval.py +0 -0
  66. {oarepo_runtime-1.5.111 → oarepo_runtime-1.5.113}/oarepo_runtime/records/dumpers/multilingual_dumper.py +0 -0
  67. {oarepo_runtime-1.5.111 → oarepo_runtime-1.5.113}/oarepo_runtime/records/entity_resolvers/__init__.py +0 -0
  68. {oarepo_runtime-1.5.111 → oarepo_runtime-1.5.113}/oarepo_runtime/records/entity_resolvers/proxies.py +0 -0
  69. {oarepo_runtime-1.5.111 → oarepo_runtime-1.5.113}/oarepo_runtime/records/mappings/__init__.py +0 -0
  70. {oarepo_runtime-1.5.111 → oarepo_runtime-1.5.113}/oarepo_runtime/records/mappings/rdm_parent_mapping.json +0 -0
  71. {oarepo_runtime-1.5.111 → oarepo_runtime-1.5.113}/oarepo_runtime/records/owners/__init__.py +0 -0
  72. {oarepo_runtime-1.5.111 → oarepo_runtime-1.5.113}/oarepo_runtime/records/owners/registry.py +0 -0
  73. {oarepo_runtime-1.5.111 → oarepo_runtime-1.5.113}/oarepo_runtime/records/relations/internal.py +0 -0
  74. {oarepo_runtime-1.5.111 → oarepo_runtime-1.5.113}/oarepo_runtime/records/relations/lookup.py +0 -0
  75. {oarepo_runtime-1.5.111 → oarepo_runtime-1.5.113}/oarepo_runtime/records/systemfields/__init__.py +0 -0
  76. {oarepo_runtime-1.5.111 → oarepo_runtime-1.5.113}/oarepo_runtime/records/systemfields/featured_file.py +0 -0
  77. {oarepo_runtime-1.5.111 → oarepo_runtime-1.5.113}/oarepo_runtime/records/systemfields/has_draftcheck.py +0 -0
  78. {oarepo_runtime-1.5.111 → oarepo_runtime-1.5.113}/oarepo_runtime/records/systemfields/icu.py +0 -0
  79. {oarepo_runtime-1.5.111 → oarepo_runtime-1.5.113}/oarepo_runtime/records/systemfields/mapping.py +0 -0
  80. {oarepo_runtime-1.5.111 → oarepo_runtime-1.5.113}/oarepo_runtime/records/systemfields/owner.py +0 -0
  81. {oarepo_runtime-1.5.111 → oarepo_runtime-1.5.113}/oarepo_runtime/records/systemfields/record_status.py +0 -0
  82. {oarepo_runtime-1.5.111 → oarepo_runtime-1.5.113}/oarepo_runtime/records/systemfields/selectors.py +0 -0
  83. {oarepo_runtime-1.5.111 → oarepo_runtime-1.5.113}/oarepo_runtime/records/systemfields/synthetic.py +0 -0
  84. {oarepo_runtime-1.5.111 → oarepo_runtime-1.5.113}/oarepo_runtime/resources/__init__.py +0 -0
  85. {oarepo_runtime-1.5.111 → oarepo_runtime-1.5.113}/oarepo_runtime/resources/config.py +0 -0
  86. {oarepo_runtime-1.5.111 → oarepo_runtime-1.5.113}/oarepo_runtime/resources/file_resource.py +0 -0
  87. {oarepo_runtime-1.5.111 → oarepo_runtime-1.5.113}/oarepo_runtime/resources/json_serializer.py +0 -0
  88. {oarepo_runtime-1.5.111 → oarepo_runtime-1.5.113}/oarepo_runtime/resources/localized_ui_json_serializer.py +0 -0
  89. {oarepo_runtime-1.5.111 → oarepo_runtime-1.5.113}/oarepo_runtime/resources/resource.py +0 -0
  90. {oarepo_runtime-1.5.111 → oarepo_runtime-1.5.113}/oarepo_runtime/services/__init__.py +0 -0
  91. {oarepo_runtime-1.5.111 → oarepo_runtime-1.5.113}/oarepo_runtime/services/components.py +0 -0
  92. {oarepo_runtime-1.5.111 → oarepo_runtime-1.5.113}/oarepo_runtime/services/config/__init__.py +0 -0
  93. {oarepo_runtime-1.5.111 → oarepo_runtime-1.5.113}/oarepo_runtime/services/config/link_conditions.py +0 -0
  94. {oarepo_runtime-1.5.111 → oarepo_runtime-1.5.113}/oarepo_runtime/services/config/permissions_presets.py +0 -0
  95. {oarepo_runtime-1.5.111 → oarepo_runtime-1.5.113}/oarepo_runtime/services/config/service.py +0 -0
  96. {oarepo_runtime-1.5.111 → oarepo_runtime-1.5.113}/oarepo_runtime/services/custom_fields/__init__.py +0 -0
  97. {oarepo_runtime-1.5.111 → oarepo_runtime-1.5.113}/oarepo_runtime/services/custom_fields/mappings.py +0 -0
  98. {oarepo_runtime-1.5.111 → oarepo_runtime-1.5.113}/oarepo_runtime/services/entity/__init__.py +0 -0
  99. {oarepo_runtime-1.5.111 → oarepo_runtime-1.5.113}/oarepo_runtime/services/entity/config.py +0 -0
  100. {oarepo_runtime-1.5.111 → oarepo_runtime-1.5.113}/oarepo_runtime/services/entity/schema.py +0 -0
  101. {oarepo_runtime-1.5.111 → oarepo_runtime-1.5.113}/oarepo_runtime/services/entity/service.py +0 -0
  102. {oarepo_runtime-1.5.111 → oarepo_runtime-1.5.113}/oarepo_runtime/services/expansions/__init__.py +0 -0
  103. {oarepo_runtime-1.5.111 → oarepo_runtime-1.5.113}/oarepo_runtime/services/expansions/expandable_fields.py +0 -0
  104. {oarepo_runtime-1.5.111 → oarepo_runtime-1.5.113}/oarepo_runtime/services/expansions/service.py +0 -0
  105. {oarepo_runtime-1.5.111 → oarepo_runtime-1.5.113}/oarepo_runtime/services/facets/__init__.py +0 -0
  106. {oarepo_runtime-1.5.111 → oarepo_runtime-1.5.113}/oarepo_runtime/services/facets/base.py +0 -0
  107. {oarepo_runtime-1.5.111 → oarepo_runtime-1.5.113}/oarepo_runtime/services/facets/date.py +0 -0
  108. {oarepo_runtime-1.5.111 → oarepo_runtime-1.5.113}/oarepo_runtime/services/facets/enum.py +0 -0
  109. {oarepo_runtime-1.5.111 → oarepo_runtime-1.5.113}/oarepo_runtime/services/facets/facet_groups_names.py +0 -0
  110. {oarepo_runtime-1.5.111 → oarepo_runtime-1.5.113}/oarepo_runtime/services/facets/max_facet.py +0 -0
  111. {oarepo_runtime-1.5.111 → oarepo_runtime-1.5.113}/oarepo_runtime/services/facets/nested_facet.py +0 -0
  112. {oarepo_runtime-1.5.111 → oarepo_runtime-1.5.113}/oarepo_runtime/services/facets/params.py +0 -0
  113. {oarepo_runtime-1.5.111 → oarepo_runtime-1.5.113}/oarepo_runtime/services/facets/year_histogram.py +0 -0
  114. {oarepo_runtime-1.5.111 → oarepo_runtime-1.5.113}/oarepo_runtime/services/files/__init__.py +0 -0
  115. {oarepo_runtime-1.5.111 → oarepo_runtime-1.5.113}/oarepo_runtime/services/files/components.py +0 -0
  116. {oarepo_runtime-1.5.111 → oarepo_runtime-1.5.113}/oarepo_runtime/services/files/service.py +0 -0
  117. {oarepo_runtime-1.5.111 → oarepo_runtime-1.5.113}/oarepo_runtime/services/generators.py +0 -0
  118. {oarepo_runtime-1.5.111 → oarepo_runtime-1.5.113}/oarepo_runtime/services/permissions/__init__.py +0 -0
  119. {oarepo_runtime-1.5.111 → oarepo_runtime-1.5.113}/oarepo_runtime/services/permissions/generators.py +0 -0
  120. {oarepo_runtime-1.5.111 → oarepo_runtime-1.5.113}/oarepo_runtime/services/records/__init__.py +0 -0
  121. {oarepo_runtime-1.5.111 → oarepo_runtime-1.5.113}/oarepo_runtime/services/records/links.py +0 -0
  122. {oarepo_runtime-1.5.111 → oarepo_runtime-1.5.113}/oarepo_runtime/services/relations/__init__.py +0 -0
  123. {oarepo_runtime-1.5.111 → oarepo_runtime-1.5.113}/oarepo_runtime/services/relations/components.py +0 -0
  124. {oarepo_runtime-1.5.111 → oarepo_runtime-1.5.113}/oarepo_runtime/services/relations/errors.py +0 -0
  125. {oarepo_runtime-1.5.111 → oarepo_runtime-1.5.113}/oarepo_runtime/services/relations/mapping.py +0 -0
  126. {oarepo_runtime-1.5.111 → oarepo_runtime-1.5.113}/oarepo_runtime/services/results.py +0 -0
  127. {oarepo_runtime-1.5.111 → oarepo_runtime-1.5.113}/oarepo_runtime/services/schema/__init__.py +0 -0
  128. {oarepo_runtime-1.5.111 → oarepo_runtime-1.5.113}/oarepo_runtime/services/schema/cf.py +0 -0
  129. {oarepo_runtime-1.5.111 → oarepo_runtime-1.5.113}/oarepo_runtime/services/schema/i18n.py +0 -0
  130. {oarepo_runtime-1.5.111 → oarepo_runtime-1.5.113}/oarepo_runtime/services/schema/i18n_ui.py +0 -0
  131. {oarepo_runtime-1.5.111 → oarepo_runtime-1.5.113}/oarepo_runtime/services/schema/i18n_validation.py +0 -0
  132. {oarepo_runtime-1.5.111 → oarepo_runtime-1.5.113}/oarepo_runtime/services/schema/marshmallow.py +0 -0
  133. {oarepo_runtime-1.5.111 → oarepo_runtime-1.5.113}/oarepo_runtime/services/schema/marshmallow_to_json_schema.py +0 -0
  134. {oarepo_runtime-1.5.111 → oarepo_runtime-1.5.113}/oarepo_runtime/services/schema/oneofschema.py +0 -0
  135. {oarepo_runtime-1.5.111 → oarepo_runtime-1.5.113}/oarepo_runtime/services/schema/polymorphic.py +0 -0
  136. {oarepo_runtime-1.5.111 → oarepo_runtime-1.5.113}/oarepo_runtime/services/schema/rdm.py +0 -0
  137. {oarepo_runtime-1.5.111 → oarepo_runtime-1.5.113}/oarepo_runtime/services/schema/ui.py +0 -0
  138. {oarepo_runtime-1.5.111 → oarepo_runtime-1.5.113}/oarepo_runtime/services/schema/validation.py +0 -0
  139. {oarepo_runtime-1.5.111 → oarepo_runtime-1.5.113}/oarepo_runtime/services/search.py +0 -0
  140. {oarepo_runtime-1.5.111 → oarepo_runtime-1.5.113}/oarepo_runtime/services/service.py +0 -0
  141. {oarepo_runtime-1.5.111 → oarepo_runtime-1.5.113}/oarepo_runtime/tasks.py +0 -0
  142. {oarepo_runtime-1.5.111 → oarepo_runtime-1.5.113}/oarepo_runtime/translations/cs/LC_MESSAGES/messages.mo +0 -0
  143. {oarepo_runtime-1.5.111 → oarepo_runtime-1.5.113}/oarepo_runtime/translations/cs/LC_MESSAGES/messages.po +0 -0
  144. {oarepo_runtime-1.5.111 → oarepo_runtime-1.5.113}/oarepo_runtime/translations/default_translations.py +0 -0
  145. {oarepo_runtime-1.5.111 → oarepo_runtime-1.5.113}/oarepo_runtime/translations/en/LC_MESSAGES/messages.mo +0 -0
  146. {oarepo_runtime-1.5.111 → oarepo_runtime-1.5.113}/oarepo_runtime/translations/en/LC_MESSAGES/messages.po +0 -0
  147. {oarepo_runtime-1.5.111 → oarepo_runtime-1.5.113}/oarepo_runtime/translations/messages.pot +0 -0
  148. {oarepo_runtime-1.5.111 → oarepo_runtime-1.5.113}/oarepo_runtime/uow.py +0 -0
  149. {oarepo_runtime-1.5.111 → oarepo_runtime-1.5.113}/oarepo_runtime/utils/__init__.py +0 -0
  150. {oarepo_runtime-1.5.111 → oarepo_runtime-1.5.113}/oarepo_runtime/utils/functools.py +0 -0
  151. {oarepo_runtime-1.5.111 → oarepo_runtime-1.5.113}/oarepo_runtime/utils/path.py +0 -0
  152. {oarepo_runtime-1.5.111 → oarepo_runtime-1.5.113}/oarepo_runtime.egg-info/SOURCES.txt +0 -0
  153. {oarepo_runtime-1.5.111 → oarepo_runtime-1.5.113}/oarepo_runtime.egg-info/dependency_links.txt +0 -0
  154. {oarepo_runtime-1.5.111 → oarepo_runtime-1.5.113}/oarepo_runtime.egg-info/entry_points.txt +0 -0
  155. {oarepo_runtime-1.5.111 → oarepo_runtime-1.5.113}/oarepo_runtime.egg-info/requires.txt +0 -0
  156. {oarepo_runtime-1.5.111 → oarepo_runtime-1.5.113}/oarepo_runtime.egg-info/top_level.txt +0 -0
  157. {oarepo_runtime-1.5.111 → oarepo_runtime-1.5.113}/pyproject.toml +0 -0
  158. {oarepo_runtime-1.5.111 → oarepo_runtime-1.5.113}/setup.py +0 -0
  159. {oarepo_runtime-1.5.111 → oarepo_runtime-1.5.113}/tests/marshmallow_to_json/__init__.py +0 -0
  160. {oarepo_runtime-1.5.111 → oarepo_runtime-1.5.113}/tests/marshmallow_to_json/test_datacite_ui_schema.py +0 -0
  161. {oarepo_runtime-1.5.111 → oarepo_runtime-1.5.113}/tests/marshmallow_to_json/test_simple_schema.py +0 -0
  162. {oarepo_runtime-1.5.111 → oarepo_runtime-1.5.113}/tests/pkg_data/__init__.py +0 -0
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.2
2
2
  Name: oarepo-runtime
3
- Version: 1.5.111
3
+ Version: 1.5.113
4
4
  Summary: A set of runtime extensions of Invenio repository
5
5
  Description-Content-Type: text/markdown
6
6
  License-File: LICENSE
@@ -4,9 +4,10 @@ from .base import (
4
4
  Relation,
5
5
  RelationResult,
6
6
  RelationsField,
7
+ UnstrictRelationResult
7
8
  )
8
9
  from .internal import InternalRelation
9
- from .pid_relation import PIDRelation
10
+ from .pid_relation import PIDRelation, UnstrictPIDRelation
10
11
 
11
12
  __all__ = (
12
13
  "Relation",
@@ -16,4 +17,6 @@ __all__ = (
16
17
  "RelationsField",
17
18
  "InternalRelation",
18
19
  "PIDRelation",
20
+ "UnstrictPIDRelation",
21
+ "UnstrictRelationResult"
19
22
  )
@@ -173,6 +173,32 @@ class RelationResult:
173
173
 
174
174
  def resolve(self, id_):
175
175
  raise NotImplementedError("Please implement this method in your subclass")
176
+ class UnstrictRelationResult(RelationResult):
177
+
178
+ def _resolve_lookup_result(self, relation):
179
+ if not isinstance(relation.value, dict):
180
+ raise InvalidRelationValue(
181
+ f"Value at path {relation.path} must be dict, found {relation.value}"
182
+ )
183
+ relation_id = self._lookup_id(relation)
184
+ resolved_object = self.resolve(relation_id, relation.value)
185
+ if not resolved_object:
186
+ raise InvalidRelationValue(f"Could not resolve relation id {relation_id}.")
187
+ return resolved_object
188
+
189
+ def _dereference_one(self, relation: LookupResult):
190
+ """Dereference a single object into a dict."""
191
+ if not self._needs_update_relation_value(relation):
192
+ return
193
+
194
+ data = relation.value
195
+ obj = self._resolve_lookup_result(relation)
196
+ if type(obj) is not dict:
197
+ self._get_dereferenced_value(data, obj, relation)
198
+
199
+ return data
200
+
201
+
176
202
 
177
203
 
178
204
  class Relation:
@@ -1,12 +1,13 @@
1
1
  from invenio_db import db
2
2
 
3
3
  from oarepo_runtime.services.relations.errors import InvalidRelationError
4
+ from sqlalchemy.exc import NoResultFound
4
5
 
5
- from .base import Relation, RelationResult
6
+ from .base import Relation, RelationResult, UnstrictRelationResult
6
7
  from .lookup import LookupResult
7
8
 
8
9
  class PIDRelationResult(RelationResult):
9
- def resolve(self, id_):
10
+ def resolve(self, id_, data = None):
10
11
  """Resolve the value using the record class."""
11
12
  # TODO: handle permissions here !!!!!!
12
13
  try:
@@ -65,6 +66,15 @@ class PIDRelationResult(RelationResult):
65
66
  def _add_version_info(self, data, relation: LookupResult, resolved_object):
66
67
  data["@v"] = f"{resolved_object.id}::{resolved_object.revision_id}"
67
68
 
69
+ class UnstrictPIDRelationResult(PIDRelationResult, UnstrictRelationResult):
70
+
71
+ def resolve(self, id_, data):
72
+ try:
73
+ return super().resolve(id_, data)
74
+ except InvalidRelationError as e:
75
+ if isinstance(e.__cause__, NoResultFound):
76
+ return data
77
+ raise
68
78
 
69
79
  class PIDRelation(Relation):
70
80
  result_cls = PIDRelationResult
@@ -73,6 +83,12 @@ class PIDRelation(Relation):
73
83
  super().__init__(key=key, **kwargs)
74
84
  self.pid_field = pid_field
75
85
 
86
+ class UnstrictPIDRelation(Relation):
87
+ result_cls = UnstrictPIDRelationResult
88
+
89
+ def __init__(self, key=None, pid_field=None, **kwargs):
90
+ super().__init__(key=key, **kwargs)
91
+ self.pid_field = pid_field
76
92
 
77
93
  class MetadataRelationResult(PIDRelationResult):
78
94
  def _dereference_one(self, relation: LookupResult):
@@ -1,7 +1,7 @@
1
1
  import marshmallow as ma
2
2
  from oarepo_runtime.services.schema.marshmallow import DictOnlySchema
3
3
  from oarepo_vocabularies.services.ui_schema import VocabularyI18nStrUIField
4
-
4
+ from idutils import to_url
5
5
 
6
6
  class RDMIdentifierWithSchemaUISchema(ma.Schema):
7
7
  scheme = ma.fields.String(
@@ -9,6 +9,16 @@ class RDMIdentifierWithSchemaUISchema(ma.Schema):
9
9
  )
10
10
  identifier = ma.fields.String(required=True)
11
11
 
12
+ @ma.post_dump
13
+ def add_url(self, value, **kwargs):
14
+ if "identifier" in value and "scheme" in value:
15
+ url = to_url(
16
+ value["identifier"], value["scheme"].lower(), url_scheme="https"
17
+ )
18
+ if url:
19
+ value["url"] = url
20
+ return value
21
+
12
22
 
13
23
  class RDMAwardIdentifierUISchema(ma.Schema):
14
24
  identifier = ma.fields.String()
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.2
2
2
  Name: oarepo-runtime
3
- Version: 1.5.111
3
+ Version: 1.5.113
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.5.111
3
+ version = 1.5.113
4
4
  description = A set of runtime extensions of Invenio repository
5
5
  authors = Alzbeta Pokorna
6
6
  readme = README.md