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

Sign up to get free protection for your applications and to get access to all the features.
@@ -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