oarepo-runtime 1.5.72__py3-none-any.whl → 1.5.75__py3-none-any.whl

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.
@@ -7,6 +7,7 @@ from flask.cli import with_appcontext
7
7
  from invenio_db import db
8
8
  from invenio_records_resources.proxies import current_service_registry
9
9
  from invenio_search.proxies import current_search
10
+ import traceback
10
11
  from werkzeug.utils import ImportStringError, import_string
11
12
 
12
13
  try:
@@ -102,9 +103,10 @@ def record_or_service(model):
102
103
  @click.option("--verbose/--no-verbose", default=False)
103
104
  def reindex(model, bulk_size, verbose):
104
105
  if not model:
105
- services = current_service_registry._services.keys()
106
+ services = list(current_service_registry._services.keys())
106
107
  else:
107
108
  services = [model]
109
+ services = sort_services(services)
108
110
  for service_id in services:
109
111
  click.secho(f"Preparing to index {service_id}", file=sys.stderr)
110
112
 
@@ -200,14 +202,17 @@ def generate_bulk_data(record_generator, record_indexer, bulk_size):
200
202
  data = []
201
203
  n = 0
202
204
  for record in tqdm(record_generator):
203
- index = record_indexer.record_to_index(record)
204
- body = record_indexer._prepare_record(record, index)
205
- index = record_indexer._prepare_index(index)
206
- data.append({"index": {"_index": index, "_id": body["uuid"]}})
207
- data.append(body)
208
- if len(data) >= bulk_size:
209
- yield data
210
- data = []
205
+ try:
206
+ index = record_indexer.record_to_index(record)
207
+ body = record_indexer._prepare_record(record, index)
208
+ index = record_indexer._prepare_index(index)
209
+ data.append({"index": {"_index": index, "_id": body["uuid"]}})
210
+ data.append(body)
211
+ if len(data) >= bulk_size:
212
+ yield data
213
+ data = []
214
+ except:
215
+ traceback.print_exc()
211
216
  if data:
212
217
  yield data
213
218
 
@@ -240,5 +245,19 @@ def users_record_generator(model_class):
240
245
  except Exception as e:
241
246
  click.secho(f"Could not index {model_class}: {e}", fg="red", file=sys.stderr)
242
247
 
248
+ priorities = [
249
+ 'vocabular',
250
+ 'users',
251
+ 'groups'
252
+ ]
253
+
254
+ def sort_services(services):
255
+ def idx(x):
256
+ for idx, p in enumerate(priorities):
257
+ if p in x:
258
+ return idx, x
259
+ return len(priorities), x
260
+ services.sort(key=idx)
261
+ return services
243
262
 
244
263
  RECORD_GENERATORS = {"users": users_record_generator}
@@ -15,12 +15,16 @@ def get_record_service_for_record(record):
15
15
  if not record:
16
16
  return None
17
17
  if "OAREPO_PRIMARY_RECORD_SERVICE" in current_app.config:
18
- service_id = current_app.config["OAREPO_PRIMARY_RECORD_SERVICE"][type(record)]
19
- return current_service_registry.get(service_id)
18
+ return get_record_service_for_record_class(type(record))
20
19
  else:
21
20
  return get_record_service_for_record_deprecated(record)
22
21
 
23
22
 
23
+ def get_record_service_for_record_class(record_cls):
24
+ service_id = current_app.config["OAREPO_PRIMARY_RECORD_SERVICE"][record_cls]
25
+ return current_service_registry.get(service_id)
26
+
27
+
24
28
  @deprecated(
25
29
  version="1.5.43", reason="Please recompile model to remove this deprecation warning"
26
30
  )
@@ -0,0 +1,3 @@
1
+ from .links import pagination_links_html
2
+
3
+ __all__ = ("pagination_links_html",)
@@ -0,0 +1,21 @@
1
+ from invenio_records_resources.services.base.links import Link
2
+
3
+ def pagination_links_html(tpl: str)->dict[str, Link]:
4
+ """Create pagination links (prev/selv/next) from the same template."""
5
+ return {
6
+ "prev_html": Link(
7
+ tpl,
8
+ when=lambda pagination, ctx: pagination.has_prev,
9
+ vars=lambda pagination, vars: vars["args"].update(
10
+ {"page": pagination.prev_page.page}
11
+ ),
12
+ ),
13
+ "self_html": Link(tpl),
14
+ "next_html": Link(
15
+ tpl,
16
+ when=lambda pagination, ctx: pagination.has_next,
17
+ vars=lambda pagination, vars: vars["args"].update(
18
+ {"page": pagination.next_page.page}
19
+ ),
20
+ ),
21
+ }
@@ -1,3 +1,4 @@
1
+ from invenio_records_resources.errors import _iter_errors_dict
1
2
  from invenio_records_resources.services.records.results import (
2
3
  RecordItem as BaseRecordItem,
3
4
  )
@@ -30,6 +31,44 @@ class RecordItem(BaseRecordItem):
30
31
  )
31
32
  return _data
32
33
 
34
+ @property
35
+ def errors(self):
36
+ return postprocess_errors(self._errors)
37
+
38
+ def to_dict(self):
39
+ """Get a dictionary for the record."""
40
+ res = self.data
41
+ if self._errors:
42
+ res["errors"] = self.errors
43
+ return res
44
+
45
+
46
+ def postprocess_error_messages(field_path: str, messages: any):
47
+ """Postprocess error messages, looking for those that were not correctly processed by marshmallow/invenio.
48
+
49
+ """
50
+ if not isinstance(messages, list):
51
+ yield {"field": field_path, "messages": messages}
52
+ else:
53
+ str_messages = [ msg for msg in messages if isinstance(msg, str) ]
54
+ non_str_messages = [ msg for msg in messages if not isinstance(msg, str) ]
55
+
56
+ if str_messages:
57
+ yield {"field": field_path, "messages": str_messages}
58
+ else:
59
+ for non_str_msg in non_str_messages:
60
+ yield from _iter_errors_dict(non_str_msg, field_path)
61
+
62
+
63
+ def postprocess_errors(errors: list[dict]):
64
+ """Postprocess errors."""
65
+ converted_errors = []
66
+ for error in errors:
67
+ if error.get("messages"):
68
+ converted_errors.extend(postprocess_error_messages(error["field"], error["messages"]))
69
+ else:
70
+ converted_errors.append(error)
71
+ return converted_errors
33
72
 
34
73
  class RecordList(BaseRecordList):
35
74
  components = []
@@ -6,14 +6,24 @@ from idutils import normalize_pid
6
6
  from marshmallow.exceptions import ValidationError
7
7
  from marshmallow_utils.fields.edtfdatestring import EDTFValidator
8
8
 
9
+ from invenio_i18n import gettext as _
10
+
9
11
 
10
12
  def validate_identifier(value):
11
13
  try:
12
- value["identifier"] = normalize_pid(
14
+ original_identifier = (value["identifier"] or '').strip()
15
+ normalized_identifier = normalize_pid(
13
16
  value["identifier"], value["scheme"].lower()
14
17
  )
18
+ if original_identifier and not normalized_identifier:
19
+ # the normalize_pid library has problems with isbn - does not raise an exception
20
+ # but returns an empty string
21
+ raise ValueError()
22
+ value["identifier"] = normalized_identifier
15
23
  except:
16
- raise ValidationError(f"Invalid {value['scheme']} value {value['identifier']}")
24
+ raise ValidationError({
25
+ "identifier": _("Invalid value %(identifier)s of identifier type %(type)s") % {"identifier": value['identifier'], "type": value['scheme']}
26
+ })
17
27
  return value
18
28
 
19
29
 
@@ -46,3 +46,8 @@ msgstr "Dle názvu"
46
46
  #: oarepo_runtime/services/schema/ui.py:114
47
47
  msgid "False"
48
48
  msgstr "Ne"
49
+
50
+ #: /Users/m/w/cesnet/oarepo-runtime/oarepo_runtime/services/schema/validation.py:19
51
+ #, python-format
52
+ msgid "Invalid value %(identifier)s of identifier type %(type)s"
53
+ msgstr "%(type)s: Neplatná hodnota '%(identifier)s'"
@@ -45,3 +45,8 @@ msgstr ""
45
45
  #: oarepo_runtime/services/schema/ui.py:114
46
46
  msgid "False"
47
47
  msgstr ""
48
+
49
+ #: /Users/m/w/cesnet/oarepo-runtime/oarepo_runtime/services/schema/validation.py:19
50
+ #, python-format
51
+ msgid "Invalid value %(identifier)s of identifier type %(type)s"
52
+ msgstr ""
@@ -1,50 +1,56 @@
1
1
  # Translations template for PROJECT.
2
- # Copyright (C) 2023 ORGANIZATION
2
+ # Copyright (C) 2024 ORGANIZATION
3
3
  # This file is distributed under the same license as the PROJECT project.
4
- # FIRST AUTHOR <EMAIL@ADDRESS>, 2023.
4
+ # FIRST AUTHOR <EMAIL@ADDRESS>, 2024.
5
5
  #
6
6
  #, fuzzy
7
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: 2023-11-21 14:39+0100\n"
11
+ "POT-Creation-Date: 2024-11-28 10:16+0100\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"
15
15
  "MIME-Version: 1.0\n"
16
16
  "Content-Type: text/plain; charset=utf-8\n"
17
17
  "Content-Transfer-Encoding: 8bit\n"
18
- "Generated-By: Babel 2.13.1\n"
18
+ "Generated-By: Babel 2.15.0\n"
19
19
 
20
- #: oarepo_runtime/services/search.py:39 oarepo_runtime/services/search.py:127
20
+ #: /Users/m/w/cesnet/oarepo-runtime/oarepo_runtime/services/search.py:60
21
+ #: /Users/m/w/cesnet/oarepo-runtime/oarepo_runtime/services/search.py:146
21
22
  msgid "By Title"
22
23
  msgstr ""
23
24
 
24
- #: oarepo_runtime/services/search.py:43
25
- #: oarepo_runtime/translations/default_translations.py:5
25
+ #: /Users/m/w/cesnet/oarepo-runtime/oarepo_runtime/services/search.py:64
26
+ #: /Users/m/w/cesnet/oarepo-runtime/oarepo_runtime/translations/default_translations.py:5
26
27
  msgid "Best match"
27
28
  msgstr ""
28
29
 
29
- #: oarepo_runtime/services/search.py:47
30
- #: oarepo_runtime/translations/default_translations.py:3
30
+ #: /Users/m/w/cesnet/oarepo-runtime/oarepo_runtime/services/search.py:68
31
+ #: /Users/m/w/cesnet/oarepo-runtime/oarepo_runtime/translations/default_translations.py:3
31
32
  msgid "Newest"
32
33
  msgstr ""
33
34
 
34
- #: oarepo_runtime/services/search.py:51
35
- #: oarepo_runtime/translations/default_translations.py:4
35
+ #: /Users/m/w/cesnet/oarepo-runtime/oarepo_runtime/services/search.py:72
36
+ #: /Users/m/w/cesnet/oarepo-runtime/oarepo_runtime/translations/default_translations.py:4
36
37
  msgid "Oldest"
37
38
  msgstr ""
38
39
 
39
- #: oarepo_runtime/services/schema/ui.py:114
40
+ #: /Users/m/w/cesnet/oarepo-runtime/oarepo_runtime/services/schema/ui.py:123
40
41
  msgid "True"
41
42
  msgstr ""
42
43
 
43
- #: oarepo_runtime/services/schema/ui.py:114
44
+ #: /Users/m/w/cesnet/oarepo-runtime/oarepo_runtime/services/schema/ui.py:123
44
45
  msgid "False"
45
46
  msgstr ""
46
47
 
47
- #: oarepo_runtime/translations/default_translations.py:6
48
+ #: /Users/m/w/cesnet/oarepo-runtime/oarepo_runtime/services/schema/validation.py:19
49
+ #, python-format
50
+ msgid "Invalid value %(identifier)s of identifier type %(type)s"
51
+ msgstr ""
52
+
53
+ #: /Users/m/w/cesnet/oarepo-runtime/oarepo_runtime/translations/default_translations.py:6
48
54
  msgid "Contact"
49
55
  msgstr ""
50
56
 
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.1
2
2
  Name: oarepo-runtime
3
- Version: 1.5.72
3
+ Version: 1.5.75
4
4
  Summary: A set of runtime extensions of Invenio repository
5
5
  Description-Content-Type: text/markdown
6
6
  License-File: LICENSE
@@ -12,7 +12,7 @@ oarepo_runtime/cli/cf.py,sha256=W0JEJK2JqKubQw8qtZJxohmADDRUBode4JZAqYLDGvc,339
12
12
  oarepo_runtime/cli/check.py,sha256=sCe2PeokSHvNOXHFZ8YHF8NMhsu5nYjyuZuvXHJ6X18,5092
13
13
  oarepo_runtime/cli/configuration.py,sha256=_iMmESs2dd1Oif95gxgpnkSxc13ymwr82_sTJfxlhrM,1091
14
14
  oarepo_runtime/cli/fixtures.py,sha256=l6zHpz1adjotrbFy_wcN2TOL8x20i-1jbQmaoEEo-UU,5419
15
- oarepo_runtime/cli/index.py,sha256=2dZvXtrph527YIgFTCQ8dIVsza-bZou9HBBzYRWAPTY,8243
15
+ oarepo_runtime/cli/index.py,sha256=KH5PArp0fCNbgJI1zSz0pb69U9eyCdnJuy0aMIgf2tg,8685
16
16
  oarepo_runtime/cli/validate.py,sha256=HpSvHQCGHlrdgdpKix9cIlzlBoJEiT1vACZdMnOUGEY,2827
17
17
  oarepo_runtime/datastreams/__init__.py,sha256=_i52Ek9J8DMARST0ejZAZPzUKm55xrrlKlCSO7dl6y4,1008
18
18
  oarepo_runtime/datastreams/asynchronous.py,sha256=JwT-Hx6P7KwV0vSJlxX6kLSIX5vtsekVsA2p_hZpJ_U,7402
@@ -26,7 +26,7 @@ oarepo_runtime/datastreams/semi_asynchronous.py,sha256=kNc6BBnV6oFoY9kHgf5l8fd1w
26
26
  oarepo_runtime/datastreams/synchronous.py,sha256=t5lfnMkLqy3jK5zMl-nIuA0HlMPiHGjwCqZ8XQP-3GM,2595
27
27
  oarepo_runtime/datastreams/transformers.py,sha256=q5KzHPl2kJg7HP1BtKJ7F_UMqg_7L1ZGDX0O7s8D6UI,521
28
28
  oarepo_runtime/datastreams/types.py,sha256=KZjblc3T_UFFW7LrMDmiR8lqVf86V484LAHj6yg05EI,9908
29
- oarepo_runtime/datastreams/utils.py,sha256=GYpVdwMks0GRdz8DBpErdiV_2aJ-3V1uAkOHyz67bZw,4001
29
+ oarepo_runtime/datastreams/utils.py,sha256=WvYwvCnmS0vrcQ-Fbptu-GvBTMx_8UVhUqs_-BN-p-E,4111
30
30
  oarepo_runtime/datastreams/readers/__init__.py,sha256=P1n3llZQ3AFHnSPbeT1VaCJcEtRFz9AbHfjkZv5LG7s,1103
31
31
  oarepo_runtime/datastreams/readers/attachments.py,sha256=A7EC1TqyTHG-go5DIaRotlBSOm6o9hGqAKyVVAceCRU,1956
32
32
  oarepo_runtime/datastreams/readers/excel.py,sha256=CM8lr8mejN7NgoK5TJb1oXpjq0HxklQKMsuj3uqjTjA,3653
@@ -73,7 +73,7 @@ oarepo_runtime/resources/localized_ui_json_serializer.py,sha256=3V9cJaG_e1PMXKVX
73
73
  oarepo_runtime/services/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
74
74
  oarepo_runtime/services/components.py,sha256=k--zu1RinwoKzg5qHp4H-Ddp9AFyjMJ97fydQ0DvI-A,4238
75
75
  oarepo_runtime/services/generators.py,sha256=j87HitHA_w2awsz0C5IAAJ0qjg9JMtvdO3dvh6FQyfg,250
76
- oarepo_runtime/services/results.py,sha256=_Din6CxQH7E5TP0TVZjIXJb2vyJRL_o_97jkUQo-GOc,4062
76
+ oarepo_runtime/services/results.py,sha256=HVBEPAMFwwCJDqBhaP3t3ekH1CpNDtE6ovVNKgWxuw8,5409
77
77
  oarepo_runtime/services/search.py,sha256=9xGTN5Yg6eTdptQ9qjO_umbacf9ooMuHYGXWYfla4-M,6227
78
78
  oarepo_runtime/services/config/__init__.py,sha256=dtlD84pJ6xI77UF22IPrCOt7tHD3g5DAEDApUdjDVFE,406
79
79
  oarepo_runtime/services/config/permissions_presets.py,sha256=zApeA-2DYAlD--SzVz3vq_OFjq48Ko0pe08e4o2vxr4,6114
@@ -101,6 +101,8 @@ oarepo_runtime/services/files/components.py,sha256=x6Wd-vvkqTqB1phj2a6h42DNQksN8
101
101
  oarepo_runtime/services/files/service.py,sha256=8DH0Pefr9kilM2JnOb-UYsnqerE8Z1Mu4p6DOJ4j_ZU,608
102
102
  oarepo_runtime/services/permissions/__init__.py,sha256=Cgin2Zr1fpaYr-aZcUotdmv0hsrPTUJVQt8ouvU8tuU,95
103
103
  oarepo_runtime/services/permissions/generators.py,sha256=YEOBCCvU-RG0BSWMtg76sv8qLcMbXxNu3rRJPDLtvvQ,1371
104
+ oarepo_runtime/services/records/__init__.py,sha256=hIoa2fx1AkDr6c-MgY561U2oN9LFeUCtfbVnetpBUOg,78
105
+ oarepo_runtime/services/records/links.py,sha256=gVe-_hGkLtX7pd6sS6jTbRIhBby2FTn9PXyYPy3yxzs,737
104
106
  oarepo_runtime/services/relations/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
105
107
  oarepo_runtime/services/relations/components.py,sha256=3g0VdnGUM-2yYt50fPi-OADReBGJb4h05vmYHfh-QFs,592
106
108
  oarepo_runtime/services/relations/errors.py,sha256=VtlOKq9MEUeJ4IsiZhY7lWoshrusA_RL4SOHe2titno,552
@@ -116,14 +118,13 @@ oarepo_runtime/services/schema/oneofschema.py,sha256=GnWH4Or_G5M0NgSmCoqMI6PBrJg
116
118
  oarepo_runtime/services/schema/polymorphic.py,sha256=bAbUoTIeDBiJPYPhpLEKKZekEdkHlpqkmNxk1hN3PDw,564
117
119
  oarepo_runtime/services/schema/rdm.py,sha256=XQ5p72Q_WVRTQkFeJvDiave8F5YSXU05IduTuYFO4gA,574
118
120
  oarepo_runtime/services/schema/ui.py,sha256=xQgW-zLyZoHldGw47uVtXQj-5LexVNKTholyq4MiBZo,3777
119
- oarepo_runtime/services/schema/validation.py,sha256=uIDJ0Phh62tDE0Mme-7Z3R_2TZY7k0MwjB3hrn5be_g,1356
121
+ oarepo_runtime/services/schema/validation.py,sha256=g2lpFwgQygWdLgq5bRvLAjVqXVOJpfVJ7umDp5xEGRU,1849
120
122
  oarepo_runtime/translations/default_translations.py,sha256=060GBlA1ghWxfeumo6NqxCCZDb-6OezOuF6pr-_GEOQ,104
121
- oarepo_runtime/translations/jinjax_messages.jinja,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
122
- oarepo_runtime/translations/messages.pot,sha256=QvwHdrmqwaYpZIsnVTEmsk7MnG8J2Sy32_8aGFyfz_o,1303
123
- oarepo_runtime/translations/cs/LC_MESSAGES/messages.mo,sha256=DtC7lBIWsacoe_chzIVlPYBCNutlXpO5O8bz3NFT4LU,683
124
- oarepo_runtime/translations/cs/LC_MESSAGES/messages.po,sha256=vGZQo5NlTtj_qsJuDwJqI1kAkcyOM4m7UNWiVpgkmxo,1287
125
- oarepo_runtime/translations/en/LC_MESSAGES/messages.mo,sha256=FKAl1wlg2NhtQ1-9U2dkUwcotR959j5GuUKJygCYpwI,445
126
- oarepo_runtime/translations/en/LC_MESSAGES/messages.po,sha256=rZ2PGvkcJbmuwrWeFX5edk0zJIzZnL83M9HSAceDP_U,1193
123
+ oarepo_runtime/translations/messages.pot,sha256=jyC7mRH5P9uwVVqz9ycvn-T8gcohr62x__O0sC6g2w4,1846
124
+ oarepo_runtime/translations/cs/LC_MESSAGES/messages.mo,sha256=cSTRnVoi8DxfrXD-ImHYUmxdnNQMnxIn2yFRTObwRzI,801
125
+ oarepo_runtime/translations/cs/LC_MESSAGES/messages.po,sha256=bzO7bZlnifHU0E7khXePmP12lGmzYXudjAWVDb87KrE,1508
126
+ oarepo_runtime/translations/en/LC_MESSAGES/messages.mo,sha256=b4cLKr5VojJPSuCeQ9T1lJKYMM_o80IgiNNL-iQUL8E,445
127
+ oarepo_runtime/translations/en/LC_MESSAGES/messages.po,sha256=akMJzNcvoZmF9j06Cd_oyQX-tMOfYjG1yRAP7tNDhGA,1370
127
128
  oarepo_runtime/utils/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
128
129
  oarepo_runtime/utils/functools.py,sha256=gKS9YZtlIYcDvdNA9cmYO00yjiXBYV1jg8VpcRUyQyg,1324
129
130
  oarepo_runtime/utils/path.py,sha256=V1NVyk3m12_YLbj7QHYvUpE1wScO78bYsX1LOLeXDkI,3108
@@ -131,9 +132,9 @@ tests/marshmallow_to_json/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJW
131
132
  tests/marshmallow_to_json/test_datacite_ui_schema.py,sha256=82iLj8nW45lZOUewpWbLX3mpSkpa9lxo-vK-Qtv_1bU,48552
132
133
  tests/marshmallow_to_json/test_simple_schema.py,sha256=izZN9p0v6kovtSZ6AdxBYmK_c6ZOti2_z_wPT_zXIr0,1500
133
134
  tests/pkg_data/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
134
- oarepo_runtime-1.5.72.dist-info/LICENSE,sha256=h2uWz0OaB3EN-J1ImdGJZzc7yvfQjvHVYdUhQ-H7ypY,1064
135
- oarepo_runtime-1.5.72.dist-info/METADATA,sha256=NmVgzl6SJu489vMIebbEad-M3jpzpxTER2qZZEHQ6M4,4720
136
- oarepo_runtime-1.5.72.dist-info/WHEEL,sha256=R0nc6qTxuoLk7ShA2_Y-UWkN8ZdfDBG2B6Eqpz2WXbs,91
137
- oarepo_runtime-1.5.72.dist-info/entry_points.txt,sha256=0cschM0RHc6UJ1uudhu4EP0hrVStPGpgMO-XEDGRtY4,430
138
- oarepo_runtime-1.5.72.dist-info/top_level.txt,sha256=bHhlkT1_RQC4IkfTQCqA3iN4KCB6cSFQlsXpQMSP-bE,21
139
- oarepo_runtime-1.5.72.dist-info/RECORD,,
135
+ oarepo_runtime-1.5.75.dist-info/LICENSE,sha256=h2uWz0OaB3EN-J1ImdGJZzc7yvfQjvHVYdUhQ-H7ypY,1064
136
+ oarepo_runtime-1.5.75.dist-info/METADATA,sha256=hd71O2EzxcURIGg7qgV2G41KUG1ZBaoazG-lox_VHMw,4720
137
+ oarepo_runtime-1.5.75.dist-info/WHEEL,sha256=R0nc6qTxuoLk7ShA2_Y-UWkN8ZdfDBG2B6Eqpz2WXbs,91
138
+ oarepo_runtime-1.5.75.dist-info/entry_points.txt,sha256=k7O5LZUOGsVeSpB7ulU0txBUNp1CVQG7Q7TJIVTPbzU,491
139
+ oarepo_runtime-1.5.75.dist-info/top_level.txt,sha256=bHhlkT1_RQC4IkfTQCqA3iN4KCB6cSFQlsXpQMSP-bE,21
140
+ oarepo_runtime-1.5.75.dist-info/RECORD,,
@@ -11,3 +11,6 @@ oarepo_runtime_info = oarepo_runtime.info.views:create_wellknown_blueprint
11
11
  [invenio_celery.tasks]
12
12
  oarepo_runtime_check = oarepo_runtime.tasks
13
13
  oarepo_runtime_datastreams = oarepo_runtime.datastreams
14
+
15
+ [invenio_i18n.translations]
16
+ oarepo_runtime = oarepo_runtime
File without changes