oarepo-runtime 1.5.20__tar.gz → 1.5.22__tar.gz

Sign up to get free protection for your applications and to get access to all the features.
Files changed (129) hide show
  1. {oarepo-runtime-1.5.20/oarepo_runtime.egg-info → oarepo-runtime-1.5.22}/PKG-INFO +1 -1
  2. {oarepo-runtime-1.5.20 → oarepo-runtime-1.5.22}/oarepo_runtime/info/views.py +29 -9
  3. {oarepo-runtime-1.5.20 → oarepo-runtime-1.5.22}/oarepo_runtime/records/systemfields/has_draftcheck.py +4 -0
  4. {oarepo-runtime-1.5.20 → oarepo-runtime-1.5.22/oarepo_runtime.egg-info}/PKG-INFO +1 -1
  5. {oarepo-runtime-1.5.20 → oarepo-runtime-1.5.22}/setup.cfg +1 -1
  6. {oarepo-runtime-1.5.20 → oarepo-runtime-1.5.22}/LICENSE +0 -0
  7. {oarepo-runtime-1.5.20 → oarepo-runtime-1.5.22}/MANIFEST.in +0 -0
  8. {oarepo-runtime-1.5.20 → oarepo-runtime-1.5.22}/README.md +0 -0
  9. {oarepo-runtime-1.5.20 → oarepo-runtime-1.5.22}/oarepo_runtime/__init__.py +0 -0
  10. {oarepo-runtime-1.5.20 → oarepo-runtime-1.5.22}/oarepo_runtime/cli/__init__.py +0 -0
  11. {oarepo-runtime-1.5.20 → oarepo-runtime-1.5.22}/oarepo_runtime/cli/assets.py +0 -0
  12. {oarepo-runtime-1.5.20 → oarepo-runtime-1.5.22}/oarepo_runtime/cli/base.py +0 -0
  13. {oarepo-runtime-1.5.20 → oarepo-runtime-1.5.22}/oarepo_runtime/cli/cf.py +0 -0
  14. {oarepo-runtime-1.5.20 → oarepo-runtime-1.5.22}/oarepo_runtime/cli/check.py +0 -0
  15. {oarepo-runtime-1.5.20 → oarepo-runtime-1.5.22}/oarepo_runtime/cli/configuration.py +0 -0
  16. {oarepo-runtime-1.5.20 → oarepo-runtime-1.5.22}/oarepo_runtime/cli/fixtures.py +0 -0
  17. {oarepo-runtime-1.5.20 → oarepo-runtime-1.5.22}/oarepo_runtime/cli/index.py +0 -0
  18. {oarepo-runtime-1.5.20 → oarepo-runtime-1.5.22}/oarepo_runtime/cli/validate.py +0 -0
  19. {oarepo-runtime-1.5.20 → oarepo-runtime-1.5.22}/oarepo_runtime/datastreams/__init__.py +0 -0
  20. {oarepo-runtime-1.5.20 → oarepo-runtime-1.5.22}/oarepo_runtime/datastreams/asynchronous.py +0 -0
  21. {oarepo-runtime-1.5.20 → oarepo-runtime-1.5.22}/oarepo_runtime/datastreams/catalogue.py +0 -0
  22. {oarepo-runtime-1.5.20 → oarepo-runtime-1.5.22}/oarepo_runtime/datastreams/datastreams.py +0 -0
  23. {oarepo-runtime-1.5.20 → oarepo-runtime-1.5.22}/oarepo_runtime/datastreams/errors.py +0 -0
  24. {oarepo-runtime-1.5.20 → oarepo-runtime-1.5.22}/oarepo_runtime/datastreams/ext.py +0 -0
  25. {oarepo-runtime-1.5.20 → oarepo-runtime-1.5.22}/oarepo_runtime/datastreams/fixtures.py +0 -0
  26. {oarepo-runtime-1.5.20 → oarepo-runtime-1.5.22}/oarepo_runtime/datastreams/json.py +0 -0
  27. {oarepo-runtime-1.5.20 → oarepo-runtime-1.5.22}/oarepo_runtime/datastreams/readers/__init__.py +0 -0
  28. {oarepo-runtime-1.5.20 → oarepo-runtime-1.5.22}/oarepo_runtime/datastreams/readers/attachments.py +0 -0
  29. {oarepo-runtime-1.5.20 → oarepo-runtime-1.5.22}/oarepo_runtime/datastreams/readers/excel.py +0 -0
  30. {oarepo-runtime-1.5.20 → oarepo-runtime-1.5.22}/oarepo_runtime/datastreams/readers/json.py +0 -0
  31. {oarepo-runtime-1.5.20 → oarepo-runtime-1.5.22}/oarepo_runtime/datastreams/readers/service.py +0 -0
  32. {oarepo-runtime-1.5.20 → oarepo-runtime-1.5.22}/oarepo_runtime/datastreams/readers/yaml.py +0 -0
  33. {oarepo-runtime-1.5.20 → oarepo-runtime-1.5.22}/oarepo_runtime/datastreams/semi_asynchronous.py +0 -0
  34. {oarepo-runtime-1.5.20 → oarepo-runtime-1.5.22}/oarepo_runtime/datastreams/synchronous.py +0 -0
  35. {oarepo-runtime-1.5.20 → oarepo-runtime-1.5.22}/oarepo_runtime/datastreams/transformers.py +0 -0
  36. {oarepo-runtime-1.5.20 → oarepo-runtime-1.5.22}/oarepo_runtime/datastreams/types.py +0 -0
  37. {oarepo-runtime-1.5.20 → oarepo-runtime-1.5.22}/oarepo_runtime/datastreams/utils.py +0 -0
  38. {oarepo-runtime-1.5.20 → oarepo-runtime-1.5.22}/oarepo_runtime/datastreams/writers/__init__.py +0 -0
  39. {oarepo-runtime-1.5.20 → oarepo-runtime-1.5.22}/oarepo_runtime/datastreams/writers/attachments_file.py +0 -0
  40. {oarepo-runtime-1.5.20 → oarepo-runtime-1.5.22}/oarepo_runtime/datastreams/writers/attachments_service.py +0 -0
  41. {oarepo-runtime-1.5.20 → oarepo-runtime-1.5.22}/oarepo_runtime/datastreams/writers/service.py +0 -0
  42. {oarepo-runtime-1.5.20 → oarepo-runtime-1.5.22}/oarepo_runtime/datastreams/writers/utils.py +0 -0
  43. {oarepo-runtime-1.5.20 → oarepo-runtime-1.5.22}/oarepo_runtime/datastreams/writers/validation_errors.py +0 -0
  44. {oarepo-runtime-1.5.20 → oarepo-runtime-1.5.22}/oarepo_runtime/datastreams/writers/yaml.py +0 -0
  45. {oarepo-runtime-1.5.20 → oarepo-runtime-1.5.22}/oarepo_runtime/ext.py +0 -0
  46. {oarepo-runtime-1.5.20 → oarepo-runtime-1.5.22}/oarepo_runtime/ext_config.py +0 -0
  47. {oarepo-runtime-1.5.20 → oarepo-runtime-1.5.22}/oarepo_runtime/i18n/__init__.py +0 -0
  48. {oarepo-runtime-1.5.20 → oarepo-runtime-1.5.22}/oarepo_runtime/info/__init__.py +0 -0
  49. {oarepo-runtime-1.5.20 → oarepo-runtime-1.5.22}/oarepo_runtime/profile.py +0 -0
  50. {oarepo-runtime-1.5.20 → oarepo-runtime-1.5.22}/oarepo_runtime/proxies.py +0 -0
  51. {oarepo-runtime-1.5.20 → oarepo-runtime-1.5.22}/oarepo_runtime/records/__init__.py +0 -0
  52. {oarepo-runtime-1.5.20 → oarepo-runtime-1.5.22}/oarepo_runtime/records/dumpers/__init__.py +0 -0
  53. {oarepo-runtime-1.5.20 → oarepo-runtime-1.5.22}/oarepo_runtime/records/dumpers/edtf_interval.py +0 -0
  54. {oarepo-runtime-1.5.20 → oarepo-runtime-1.5.22}/oarepo_runtime/records/dumpers/multilingual_dumper.py +0 -0
  55. {oarepo-runtime-1.5.20 → oarepo-runtime-1.5.22}/oarepo_runtime/records/entity_resolvers/__init__.py +0 -0
  56. {oarepo-runtime-1.5.20 → oarepo-runtime-1.5.22}/oarepo_runtime/records/entity_resolvers/proxies.py +0 -0
  57. {oarepo-runtime-1.5.20 → oarepo-runtime-1.5.22}/oarepo_runtime/records/owners/__init__.py +0 -0
  58. {oarepo-runtime-1.5.20 → oarepo-runtime-1.5.22}/oarepo_runtime/records/owners/registry.py +0 -0
  59. {oarepo-runtime-1.5.20 → oarepo-runtime-1.5.22}/oarepo_runtime/records/relations/__init__.py +0 -0
  60. {oarepo-runtime-1.5.20 → oarepo-runtime-1.5.22}/oarepo_runtime/records/relations/base.py +0 -0
  61. {oarepo-runtime-1.5.20 → oarepo-runtime-1.5.22}/oarepo_runtime/records/relations/internal.py +0 -0
  62. {oarepo-runtime-1.5.20 → oarepo-runtime-1.5.22}/oarepo_runtime/records/relations/lookup.py +0 -0
  63. {oarepo-runtime-1.5.20 → oarepo-runtime-1.5.22}/oarepo_runtime/records/relations/pid_relation.py +0 -0
  64. {oarepo-runtime-1.5.20 → oarepo-runtime-1.5.22}/oarepo_runtime/records/systemfields/__init__.py +0 -0
  65. {oarepo-runtime-1.5.20 → oarepo-runtime-1.5.22}/oarepo_runtime/records/systemfields/featured_file.py +0 -0
  66. {oarepo-runtime-1.5.20 → oarepo-runtime-1.5.22}/oarepo_runtime/records/systemfields/icu.py +0 -0
  67. {oarepo-runtime-1.5.20 → oarepo-runtime-1.5.22}/oarepo_runtime/records/systemfields/mapping.py +0 -0
  68. {oarepo-runtime-1.5.20 → oarepo-runtime-1.5.22}/oarepo_runtime/records/systemfields/owner.py +0 -0
  69. {oarepo-runtime-1.5.20 → oarepo-runtime-1.5.22}/oarepo_runtime/records/systemfields/record_status.py +0 -0
  70. {oarepo-runtime-1.5.20 → oarepo-runtime-1.5.22}/oarepo_runtime/records/systemfields/selectors.py +0 -0
  71. {oarepo-runtime-1.5.20 → oarepo-runtime-1.5.22}/oarepo_runtime/records/systemfields/synthetic.py +0 -0
  72. {oarepo-runtime-1.5.20 → oarepo-runtime-1.5.22}/oarepo_runtime/resources/__init__.py +0 -0
  73. {oarepo-runtime-1.5.20 → oarepo-runtime-1.5.22}/oarepo_runtime/resources/file_resource.py +0 -0
  74. {oarepo-runtime-1.5.20 → oarepo-runtime-1.5.22}/oarepo_runtime/resources/localized_ui_json_serializer.py +0 -0
  75. {oarepo-runtime-1.5.20 → oarepo-runtime-1.5.22}/oarepo_runtime/services/__init__.py +0 -0
  76. {oarepo-runtime-1.5.20 → oarepo-runtime-1.5.22}/oarepo_runtime/services/components.py +0 -0
  77. {oarepo-runtime-1.5.20 → oarepo-runtime-1.5.22}/oarepo_runtime/services/config/__init__.py +0 -0
  78. {oarepo-runtime-1.5.20 → oarepo-runtime-1.5.22}/oarepo_runtime/services/config/permissions_presets.py +0 -0
  79. {oarepo-runtime-1.5.20 → oarepo-runtime-1.5.22}/oarepo_runtime/services/config/service.py +0 -0
  80. {oarepo-runtime-1.5.20 → oarepo-runtime-1.5.22}/oarepo_runtime/services/custom_fields/__init__.py +0 -0
  81. {oarepo-runtime-1.5.20 → oarepo-runtime-1.5.22}/oarepo_runtime/services/custom_fields/mappings.py +0 -0
  82. {oarepo-runtime-1.5.20 → oarepo-runtime-1.5.22}/oarepo_runtime/services/expansions/__init__.py +0 -0
  83. {oarepo-runtime-1.5.20 → oarepo-runtime-1.5.22}/oarepo_runtime/services/expansions/expandable_fields.py +0 -0
  84. {oarepo-runtime-1.5.20 → oarepo-runtime-1.5.22}/oarepo_runtime/services/expansions/service.py +0 -0
  85. {oarepo-runtime-1.5.20 → oarepo-runtime-1.5.22}/oarepo_runtime/services/facets/__init__.py +0 -0
  86. {oarepo-runtime-1.5.20 → oarepo-runtime-1.5.22}/oarepo_runtime/services/facets/base.py +0 -0
  87. {oarepo-runtime-1.5.20 → oarepo-runtime-1.5.22}/oarepo_runtime/services/facets/date.py +0 -0
  88. {oarepo-runtime-1.5.20 → oarepo-runtime-1.5.22}/oarepo_runtime/services/facets/enum.py +0 -0
  89. {oarepo-runtime-1.5.20 → oarepo-runtime-1.5.22}/oarepo_runtime/services/facets/facet_groups_names.py +0 -0
  90. {oarepo-runtime-1.5.20 → oarepo-runtime-1.5.22}/oarepo_runtime/services/facets/max_facet.py +0 -0
  91. {oarepo-runtime-1.5.20 → oarepo-runtime-1.5.22}/oarepo_runtime/services/facets/nested_facet.py +0 -0
  92. {oarepo-runtime-1.5.20 → oarepo-runtime-1.5.22}/oarepo_runtime/services/facets/params.py +0 -0
  93. {oarepo-runtime-1.5.20 → oarepo-runtime-1.5.22}/oarepo_runtime/services/files/__init__.py +0 -0
  94. {oarepo-runtime-1.5.20 → oarepo-runtime-1.5.22}/oarepo_runtime/services/files/service.py +0 -0
  95. {oarepo-runtime-1.5.20 → oarepo-runtime-1.5.22}/oarepo_runtime/services/generators.py +0 -0
  96. {oarepo-runtime-1.5.20 → oarepo-runtime-1.5.22}/oarepo_runtime/services/relations/__init__.py +0 -0
  97. {oarepo-runtime-1.5.20 → oarepo-runtime-1.5.22}/oarepo_runtime/services/relations/components.py +0 -0
  98. {oarepo-runtime-1.5.20 → oarepo-runtime-1.5.22}/oarepo_runtime/services/relations/errors.py +0 -0
  99. {oarepo-runtime-1.5.20 → oarepo-runtime-1.5.22}/oarepo_runtime/services/relations/mapping.py +0 -0
  100. {oarepo-runtime-1.5.20 → oarepo-runtime-1.5.22}/oarepo_runtime/services/results.py +0 -0
  101. {oarepo-runtime-1.5.20 → oarepo-runtime-1.5.22}/oarepo_runtime/services/schema/__init__.py +0 -0
  102. {oarepo-runtime-1.5.20 → oarepo-runtime-1.5.22}/oarepo_runtime/services/schema/cf.py +0 -0
  103. {oarepo-runtime-1.5.20 → oarepo-runtime-1.5.22}/oarepo_runtime/services/schema/i18n.py +0 -0
  104. {oarepo-runtime-1.5.20 → oarepo-runtime-1.5.22}/oarepo_runtime/services/schema/i18n_ui.py +0 -0
  105. {oarepo-runtime-1.5.20 → oarepo-runtime-1.5.22}/oarepo_runtime/services/schema/i18n_validation.py +0 -0
  106. {oarepo-runtime-1.5.20 → oarepo-runtime-1.5.22}/oarepo_runtime/services/schema/marshmallow.py +0 -0
  107. {oarepo-runtime-1.5.20 → oarepo-runtime-1.5.22}/oarepo_runtime/services/schema/polymorphic.py +0 -0
  108. {oarepo-runtime-1.5.20 → oarepo-runtime-1.5.22}/oarepo_runtime/services/schema/ui.py +0 -0
  109. {oarepo-runtime-1.5.20 → oarepo-runtime-1.5.22}/oarepo_runtime/services/schema/validation.py +0 -0
  110. {oarepo-runtime-1.5.20 → oarepo-runtime-1.5.22}/oarepo_runtime/services/search.py +0 -0
  111. {oarepo-runtime-1.5.20 → oarepo-runtime-1.5.22}/oarepo_runtime/translations/cs/LC_MESSAGES/messages.mo +0 -0
  112. {oarepo-runtime-1.5.20 → oarepo-runtime-1.5.22}/oarepo_runtime/translations/cs/LC_MESSAGES/messages.po +0 -0
  113. {oarepo-runtime-1.5.20 → oarepo-runtime-1.5.22}/oarepo_runtime/translations/default_translations.py +0 -0
  114. {oarepo-runtime-1.5.20 → oarepo-runtime-1.5.22}/oarepo_runtime/translations/en/LC_MESSAGES/messages.mo +0 -0
  115. {oarepo-runtime-1.5.20 → oarepo-runtime-1.5.22}/oarepo_runtime/translations/en/LC_MESSAGES/messages.po +0 -0
  116. {oarepo-runtime-1.5.20 → oarepo-runtime-1.5.22}/oarepo_runtime/translations/jinjax_messages.jinja +0 -0
  117. {oarepo-runtime-1.5.20 → oarepo-runtime-1.5.22}/oarepo_runtime/translations/messages.pot +0 -0
  118. {oarepo-runtime-1.5.20 → oarepo-runtime-1.5.22}/oarepo_runtime/uow.py +0 -0
  119. {oarepo-runtime-1.5.20 → oarepo-runtime-1.5.22}/oarepo_runtime/utils/__init__.py +0 -0
  120. {oarepo-runtime-1.5.20 → oarepo-runtime-1.5.22}/oarepo_runtime/utils/functools.py +0 -0
  121. {oarepo-runtime-1.5.20 → oarepo-runtime-1.5.22}/oarepo_runtime/utils/path.py +0 -0
  122. {oarepo-runtime-1.5.20 → oarepo-runtime-1.5.22}/oarepo_runtime.egg-info/SOURCES.txt +0 -0
  123. {oarepo-runtime-1.5.20 → oarepo-runtime-1.5.22}/oarepo_runtime.egg-info/dependency_links.txt +0 -0
  124. {oarepo-runtime-1.5.20 → oarepo-runtime-1.5.22}/oarepo_runtime.egg-info/entry_points.txt +0 -0
  125. {oarepo-runtime-1.5.20 → oarepo-runtime-1.5.22}/oarepo_runtime.egg-info/requires.txt +0 -0
  126. {oarepo-runtime-1.5.20 → oarepo-runtime-1.5.22}/oarepo_runtime.egg-info/top_level.txt +0 -0
  127. {oarepo-runtime-1.5.20 → oarepo-runtime-1.5.22}/pyproject.toml +0 -0
  128. {oarepo-runtime-1.5.20 → oarepo-runtime-1.5.22}/setup.py +0 -0
  129. {oarepo-runtime-1.5.20 → oarepo-runtime-1.5.22}/tests/pkg_data/__init__.py +0 -0
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.1
2
2
  Name: oarepo-runtime
3
- Version: 1.5.20
3
+ Version: 1.5.22
4
4
  Summary: A set of runtime extensions of Invenio repository
5
5
  Description-Content-Type: text/markdown
6
6
  License-File: LICENSE
@@ -8,6 +8,8 @@ import importlib_metadata
8
8
  import importlib_resources
9
9
  import marshmallow as ma
10
10
  from flask import current_app, request, url_for
11
+ from flask.ctx import RequestContext
12
+ from flask.globals import _cv_request
11
13
  from flask_resources import (
12
14
  Resource,
13
15
  ResourceConfig,
@@ -91,12 +93,13 @@ class InfoResource(Resource):
91
93
  model_data = json.loads(
92
94
  importlib_resources.files(package_name).joinpath(file_name).read_text()
93
95
  )
94
- model_data = model_data["model"]
95
- if model_data["type"] != "model":
96
+ model_data = model_data.get("model", {})
97
+ if model_data.get("type") != "model":
96
98
  continue
97
99
 
98
100
  service = self._get_service(model_data)
99
- if not service:
101
+ service_class = self._get_service_class(model_data)
102
+ if not service or type(service) != service_class:
100
103
  continue
101
104
 
102
105
  model_features = self._get_model_features(model_data)
@@ -271,6 +274,11 @@ class InfoResource(Resource):
271
274
  return service
272
275
 
273
276
 
277
+ def _get_service_class(self, model_data):
278
+ service_id = model_data["service"]["class"]
279
+ return obj_or_import_string(service_id)
280
+
281
+
274
282
  def create_wellknown_blueprint(app):
275
283
  """Create blueprint."""
276
284
  config_class = obj_or_import_string(
@@ -292,11 +300,23 @@ def get_package_version(package_name):
292
300
 
293
301
  def api_url_for(endpoint, _external=True, **values):
294
302
  """API url_for."""
303
+ try:
304
+ api_app = current_app.wsgi_app.mounts['/api']
305
+ except:
306
+ api_app = current_app
307
+
295
308
  site_api_url = current_app.config["SITE_API_URL"]
296
309
  site_url = current_app.config["SITE_UI_URL"]
297
- base_url = url_for(endpoint, **values, _external=_external)
298
- if base_url.startswith(site_api_url):
299
- return base_url
300
- if base_url.startswith(site_url):
301
- return base_url.replace(site_url, site_api_url)
302
- raise ValueError(f"URL {base_url} does not start with {site_url} or {site_api_url}")
310
+ current_request_context = _cv_request.get()
311
+ try:
312
+ new_context = RequestContext(app=api_app,
313
+ environ=request.environ)
314
+ _cv_request.set(new_context)
315
+ base_url = api_app.url_for(endpoint, **values, _external=_external)
316
+ if base_url.startswith(site_api_url):
317
+ return base_url
318
+ if base_url.startswith(site_url):
319
+ return base_url.replace(site_url, site_api_url)
320
+ raise ValueError(f"URL {base_url} does not start with {site_url} or {site_api_url}")
321
+ finally:
322
+ _cv_request.set(current_request_context)
@@ -1,3 +1,5 @@
1
+ from inspect import isfunction
2
+
1
3
  from invenio_records.dictutils import dict_set
2
4
  from invenio_records.systemfields import SystemField
3
5
  from sqlalchemy.orm.exc import NoResultFound
@@ -34,6 +36,8 @@ class HasDraftCheckField(CustomFieldsMixin, SystemField):
34
36
  return False
35
37
 
36
38
  try:
39
+ if isfunction(self.draft_cls):
40
+ self.draft_cls = self.draft_cls()
37
41
  self.draft_cls.get_record(record.id)
38
42
  return True
39
43
  except NoResultFound:
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.1
2
2
  Name: oarepo-runtime
3
- Version: 1.5.20
3
+ Version: 1.5.22
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.20
3
+ version = 1.5.22
4
4
  description = A set of runtime extensions of Invenio repository
5
5
  authors = Alzbeta Pokorna
6
6
  readme = README.md
File without changes