oarepo-runtime 1.4.14__py3-none-any.whl → 1.4.15__py3-none-any.whl

Sign up to get free protection for your applications and to get access to all the features.
@@ -4,7 +4,7 @@ from flask import current_app
4
4
  from invenio_records.systemfields import DictField, SystemField
5
5
  from invenio_records_resources.services.custom_fields import BaseCF
6
6
 
7
- from oarepo_runtime.records import MappingSystemFieldMixin
7
+ from oarepo_runtime.records.systemfields.mapping import MappingSystemFieldMixin
8
8
 
9
9
 
10
10
  class CustomFieldsMixin(MappingSystemFieldMixin):
@@ -13,7 +13,7 @@ from invenio_search import current_search_client
13
13
  from invenio_search.engine import dsl, search
14
14
  from invenio_search.utils import build_alias_name
15
15
 
16
- from oarepo_runtime.records import MappingSystemFieldMixin
16
+ from oarepo_runtime.records.systemfields.mapping import MappingSystemFieldMixin
17
17
 
18
18
 
19
19
  class Mapping(InvenioMapping):
@@ -5,5 +5,8 @@ class LabelledValuesTermsFacet(TermsFacet):
5
5
  def __init__(self, *args, **kwargs):
6
6
  super().__init__(*args, **{"value_labels": self.value_labels, **kwargs})
7
7
 
8
+ def localized_value_labels(self, values, locale):
9
+ return {val: val for val in values}
10
+
8
11
  def value_labels(self, values):
9
12
  return {val: val for val in values}
@@ -3,7 +3,7 @@ import re
3
3
  from invenio_records_resources.services.records.facets.facets import LabelledFacetMixin
4
4
  from invenio_search.engine import dsl
5
5
 
6
- from oarepo_runtime.ui.marshmallow import (
6
+ from oarepo_runtime.services.schema.ui import (
7
7
  LocalizedDate,
8
8
  LocalizedDateTime,
9
9
  LocalizedEDTF,
@@ -15,24 +15,27 @@ from .base import LabelledValuesTermsFacet
15
15
 
16
16
 
17
17
  class DateFacet(LabelledValuesTermsFacet):
18
- def value_labels(self, values):
19
- return {val: LocalizedDate().format_value(val) for val in values}
18
+ def localized_value_labels(self, values, locale):
19
+ return {val: LocalizedDate(locale=locale).format_value(val) for val in values}
20
20
 
21
21
 
22
22
  class TimeFacet(LabelledValuesTermsFacet):
23
- def value_labels(self, values):
24
- return {val: LocalizedTime().format_value(val) for val in values}
23
+ def localized_value_labels(self, values, locale):
24
+ return {val: LocalizedTime(locale=locale).format_value(val) for val in values}
25
25
 
26
26
 
27
27
  class DateTimeFacet(LabelledValuesTermsFacet):
28
- def value_labels(self, values):
29
- return {val: LocalizedDateTime().format_value(val) for val in values}
28
+ def localized_value_labels(self, values, locale):
29
+ return {
30
+ val: LocalizedDateTime(locale=locale).format_value(val) for val in values
31
+ }
30
32
 
31
33
 
32
34
  class EDTFFacet(LabelledValuesTermsFacet):
33
- def value_labels(self, values):
35
+ def localized_value_labels(self, values, locale):
34
36
  return {
35
- val: LocalizedEDTF().format_value(convert_to_edtf(val)) for val in values
37
+ val: LocalizedEDTF(locale=locale).format_value(convert_to_edtf(val))
38
+ for val in values
36
39
  }
37
40
 
38
41
 
@@ -51,9 +54,9 @@ class EDTFIntervalFacet(LabelledFacetMixin, AutoDateHistogramFacet):
51
54
  # kwargs["interval"] = "year"
52
55
  super().__init__(*args, **kwargs)
53
56
 
54
- def value_labels(self, values):
57
+ def localized_value_labels(self, values, locale):
55
58
  return {
56
- val: LocalizedEDTFInterval().format_value(convert_to_edtf(val))
59
+ val: LocalizedEDTFInterval(locale=locale).format_value(convert_to_edtf(val))
57
60
  for val in values
58
61
  }
59
62
 
@@ -1,29 +1 @@
1
- import inspect
2
1
 
3
- from invenio_records.dumpers import SearchDumperExt
4
-
5
-
6
- class MappingSystemFieldMixin:
7
- @property
8
- def mapping(self):
9
- return {}
10
-
11
- @property
12
- def mapping_settings(self):
13
- return {}
14
-
15
-
16
- class SystemFieldDumperExt(SearchDumperExt):
17
- def dump(self, record, data):
18
- """Dump custom fields."""
19
- for cf in inspect.getmembers(
20
- record, lambda x: isinstance(x, MappingSystemFieldMixin)
21
- ):
22
- cf[1].search_dump(data)
23
-
24
- def load(self, data, record_cls):
25
- """Load custom fields."""
26
- for cf in inspect.getmembers(
27
- record_cls, lambda x: isinstance(x, MappingSystemFieldMixin)
28
- ):
29
- cf[1].search_load(data)
@@ -0,0 +1,10 @@
1
+ from .icu import ICUField, ICUSuggestField, ICUSortField
2
+ from .mapping import MappingSystemFieldMixin, SystemFieldDumperExt
3
+
4
+ __all__ = (
5
+ "ICUField",
6
+ "ICUSuggestField",
7
+ "ICUSortField",
8
+ "MappingSystemFieldMixin",
9
+ "SystemFieldDumperExt",
10
+ )
@@ -4,7 +4,7 @@ from typing import Dict
4
4
  from flask import current_app
5
5
  from invenio_records.systemfields import SystemField
6
6
 
7
- from oarepo_runtime.records import MappingSystemFieldMixin
7
+ from oarepo_runtime.records.systemfields.mapping import MappingSystemFieldMixin
8
8
  from oarepo_runtime.relations.lookup import lookup_key
9
9
 
10
10
 
@@ -0,0 +1,29 @@
1
+ import inspect
2
+
3
+ from invenio_records.dumpers import SearchDumperExt
4
+
5
+
6
+ class MappingSystemFieldMixin:
7
+ @property
8
+ def mapping(self):
9
+ return {}
10
+
11
+ @property
12
+ def mapping_settings(self):
13
+ return {}
14
+
15
+
16
+ class SystemFieldDumperExt(SearchDumperExt):
17
+ def dump(self, record, data):
18
+ """Dump custom fields."""
19
+ for cf in inspect.getmembers(
20
+ record, lambda x: isinstance(x, MappingSystemFieldMixin)
21
+ ):
22
+ cf[1].search_dump(data)
23
+
24
+ def load(self, data, record_cls):
25
+ """Load custom fields."""
26
+ for cf in inspect.getmembers(
27
+ record_cls, lambda x: isinstance(x, MappingSystemFieldMixin)
28
+ ):
29
+ cf[1].search_load(data)
@@ -0,0 +1,3 @@
1
+ from .localized_ui_json_serializer import LocalizedUIJSONSerializer
2
+
3
+ __all__ = ("LocalizedUIJSONSerializer",)
@@ -0,0 +1,3 @@
1
+ from .polymorphic import PolymorphicSchema
2
+
3
+ __all__ = ("PolymorphicSchema",)
@@ -0,0 +1,122 @@
1
+ import datetime
2
+ import re
3
+
4
+ import marshmallow as ma
5
+ from babel.dates import format_date
6
+ from babel_edtf import format_edtf
7
+ from flask import current_app
8
+ from flask_babelex import gettext
9
+ from marshmallow_utils.fields import (
10
+ BabelGettextDictField,
11
+ FormatDate,
12
+ FormatDatetime,
13
+ FormatEDTF,
14
+ FormatTime,
15
+ )
16
+ from marshmallow_utils.fields.babel import BabelFormatField
17
+
18
+
19
+ def current_default_locale():
20
+ """Get the Flask app's default locale."""
21
+ if current_app:
22
+ return current_app.config.get("BABEL_DEFAULT_LOCALE", "en")
23
+ # Use english by default if not specified
24
+ return "en"
25
+
26
+
27
+ class LocalizedMixin:
28
+ def __init__(self, *args, locale=None, **kwargs):
29
+ super().__init__(*args, locale=locale, **kwargs)
30
+
31
+ @property
32
+ def locale(self):
33
+ if self._locale:
34
+ return self._locale
35
+ if self.parent:
36
+ if "locale" in self.context:
37
+ return self.context["locale"]
38
+ return current_default_locale()
39
+
40
+
41
+ # localized date field
42
+ class LocalizedDate(LocalizedMixin, FormatDate):
43
+ pass
44
+
45
+
46
+ class FormatTimeString(FormatTime):
47
+ def parse(self, value, as_time=False, as_date=False, as_datetime=False):
48
+ if value and isinstance(value, str) and as_time == True:
49
+ match = re.match(
50
+ r"^(\d|0\d|1[0-2]):(\d|[0-5]\d|60)(:(\d|[0-5]\d|60))?$", value
51
+ )
52
+ if match:
53
+ value = datetime.time(
54
+ hour=int(match.group(1)),
55
+ minute=int(match.group(2)),
56
+ second=int(match.group(4)) if match.group(4) else 0,
57
+ )
58
+
59
+ return super().parse(value, as_time, as_date, as_datetime)
60
+
61
+
62
+ class MultilayerFormatEDTF(BabelFormatField):
63
+ def format_value(self, value):
64
+ try:
65
+ return format_date(
66
+ self.parse(value, as_date=True), format=self._format, locale=self.locale
67
+ )
68
+ except:
69
+ return format_edtf(value, format=self._format, locale=self.locale)
70
+
71
+ def parse(self, value, **kwargs):
72
+ # standard parsing is too lenient, for example returns "2000-01-01" for input "2000"
73
+ if re.match("^[0-9]+-[0-9]+-[0-9]+", value):
74
+ return super().parse(value, **kwargs)
75
+ raise ValueError("Not a valid date")
76
+
77
+
78
+ class LocalizedDateTime(LocalizedMixin, FormatDatetime):
79
+ pass
80
+
81
+
82
+ class LocalizedTime(LocalizedMixin, FormatTimeString):
83
+ pass
84
+
85
+
86
+ class LocalizedEDTF(LocalizedMixin, MultilayerFormatEDTF):
87
+ pass
88
+
89
+
90
+ class LocalizedEDTFInterval(LocalizedMixin, FormatEDTF):
91
+ pass
92
+
93
+
94
+ class PrefixedGettextField(BabelGettextDictField):
95
+ def __init__(self, *, value_prefix, locale, default_locale, **kwargs):
96
+ super().__init__(locale, default_locale, **kwargs)
97
+ self.value_prefix = value_prefix
98
+
99
+ def _serialize(self, value, attr, obj, **kwargs):
100
+ if value:
101
+ value = f"{self.value_prefix}{value}"
102
+ return gettext(value)
103
+
104
+
105
+ class LocalizedEnum(LocalizedMixin, PrefixedGettextField):
106
+ pass
107
+
108
+ def __init__(self, **kwargs):
109
+ super().__init__(default_locale=current_default_locale, **kwargs)
110
+
111
+
112
+ if False: # NOSONAR
113
+ # just for the makemessages to pick up the translations
114
+ translations = [_("True"), _("False")]
115
+
116
+
117
+ class InvenioUISchema(ma.Schema):
118
+ id = ma.fields.Str()
119
+ created = LocalizedDateTime(dump_only=True)
120
+ updated = LocalizedDateTime(dump_only=True)
121
+ links = ma.fields.Raw(dump_only=True)
122
+ revision_id = ma.fields.Integer(dump_only=True)
@@ -10,7 +10,7 @@ from invenio_records_resources.services.records import (
10
10
  )
11
11
  from invenio_records_resources.services.records.queryparser import SuggestQueryParser
12
12
 
13
- from oarepo_runtime.records.icu import ICUSuggestField
13
+ from oarepo_runtime.records.systemfields.icu import ICUSuggestField
14
14
 
15
15
  try:
16
16
  from invenio_i18n import get_locale
@@ -1,114 +1,9 @@
1
- import datetime
2
- import re
1
+ from oarepo_runtime.services.schema.ui import InvenioUISchema
2
+ import warnings
3
3
 
4
- import marshmallow as ma
5
- from babel.dates import format_date
6
- from babel_edtf import format_edtf
7
- from flask import current_app
8
- from flask_babelex import gettext
9
- from marshmallow_utils.fields import (
10
- BabelGettextDictField,
11
- FormatDate,
12
- FormatDatetime,
13
- FormatEDTF,
14
- FormatTime,
4
+ warnings.warn(
5
+ "Deprecated, please use oarepo_runtime.services.schema.ui.InvenioUISchema",
6
+ DeprecationWarning,
15
7
  )
16
- from marshmallow_utils.fields.babel import BabelFormatField
17
8
 
18
-
19
- def current_default_locale():
20
- """Get the Flask app's default locale."""
21
- if current_app:
22
- return current_app.config.get("BABEL_DEFAULT_LOCALE", "en")
23
- # Use english by default if not specified
24
- return "en"
25
-
26
-
27
- # localized date field
28
- class LocalizedDate(FormatDate):
29
- @property
30
- def locale(self):
31
- return self.context["locale"]
32
-
33
-
34
- class FormatTimeString(FormatTime):
35
- def parse(self, value, as_time=False, as_date=False, as_datetime=False):
36
- if value and isinstance(value, str) and as_time == True:
37
- match = re.match(
38
- r"^(\d|0\d|1[0-2]):(\d|[0-5]\d|60)(:(\d|[0-5]\d|60))?$", value
39
- )
40
- if match:
41
- value = datetime.time(
42
- hour=int(match.group(1)),
43
- minute=int(match.group(2)),
44
- second=int(match.group(4)) if match.group(4) else 0,
45
- )
46
-
47
- return super().parse(value, as_time, as_date, as_datetime)
48
-
49
-
50
- class MultilayerFormatEDTF(BabelFormatField):
51
- def format_value(self, value):
52
- try:
53
- return format_date(
54
- self.parse(value, as_date=True), format=self._format, locale=self.locale
55
- )
56
- except:
57
- return format_edtf(value, format=self._format, locale=self.locale)
58
-
59
-
60
- class LocalizedEDTF(MultilayerFormatEDTF):
61
- @property
62
- def locale(self):
63
- return self.context["locale"]
64
-
65
-
66
- class LocalizedTime(FormatTimeString):
67
- @property
68
- def locale(self):
69
- return self.context["locale"]
70
-
71
-
72
- class LocalizedDateTime(FormatDatetime):
73
- @property
74
- def locale(self):
75
- return self.context["locale"]
76
-
77
-
78
- class LocalizedEDTFInterval(FormatEDTF):
79
- @property
80
- def locale(self):
81
- return self.context["locale"]
82
-
83
-
84
- class PrefixedGettextField(BabelGettextDictField):
85
- def __init__(self, *, value_prefix, locale, default_locale, **kwargs):
86
- super().__init__(locale, default_locale, **kwargs)
87
- self.value_prefix = value_prefix
88
-
89
- def _serialize(self, value, attr, obj, **kwargs):
90
- if value:
91
- value = f"{self.value_prefix}{value}"
92
- return gettext(value)
93
-
94
-
95
- class LocalizedEnum(PrefixedGettextField):
96
- @property
97
- def locale(self):
98
- return self.context["locale"]
99
-
100
- def __init__(self, **kwargs):
101
- super().__init__(locale=None, default_locale=current_default_locale, **kwargs)
102
-
103
-
104
- if False: # NOSONAR
105
- # just for the makemessages to pick up the translations
106
- translations = [_("True"), _("False")]
107
-
108
-
109
- class InvenioUISchema(ma.Schema):
110
- id = ma.fields.Str()
111
- created = LocalizedDateTime(dump_only=True)
112
- updated = LocalizedDateTime(dump_only=True)
113
- links = ma.fields.Raw(dump_only=True)
114
- revision_id = ma.fields.Integer(dump_only=True)
9
+ __all__ = ("InvenioUISchema",)
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.1
2
2
  Name: oarepo-runtime
3
- Version: 1.4.14
3
+ Version: 1.4.15
4
4
  Summary: A set of runtime extensions of Invenio repository
5
5
  Description-Content-Type: text/markdown
6
6
  License-File: LICENSE
@@ -2,12 +2,11 @@ oarepo_runtime/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
2
2
  oarepo_runtime/ext.py,sha256=D6-vAzXawQ9tvUuuPeNevBJ_6FGtkJynQveBdGYIYXY,1569
3
3
  oarepo_runtime/ext_config.py,sha256=RVM9AbFK4sSNe6uCfEOKqr2RMaSWUh5cT3bRq5E5H4E,1820
4
4
  oarepo_runtime/marshmallow.py,sha256=BaRh9Z07h2DznYMyYxiTmSfe4EJaeXvTY8lKVyvVGa4,340
5
- oarepo_runtime/polymorphic.py,sha256=CkvXVUiXbrsLWFgoNnjjpUviQyzRMCmpsD3GWfV0WZA,494
6
5
  oarepo_runtime/profile.py,sha256=QzrQoZncjoN74ZZnpkEKakNk08KCzBU7m6y42RN8AMY,1637
7
6
  oarepo_runtime/uow.py,sha256=TqVYF1N24WTVIjf97mlb-EH-BtIZCVVLNS4bqZt4XLs,3201
8
- oarepo_runtime/cf/__init__.py,sha256=-YhE1JnHrX-qS_IT_1Lh5_OQ2OMbErQyZ3mPxLbiYqw,2241
7
+ oarepo_runtime/cf/__init__.py,sha256=HVqgIIoPqg-pJHkP1KY_Phe-9fSD0RsnF02H5OS9wCM,2262
9
8
  oarepo_runtime/cf/cli.py,sha256=dA3ou3n03GpswVvuhRn5ZIGKCl8xftHawdBtm0D5u_c,303
10
- oarepo_runtime/cf/mappings.py,sha256=nAoMzO3hugRC7SxTQKzFOV3fap3Tro8GPnP-gYVDcYA,4194
9
+ oarepo_runtime/cf/mappings.py,sha256=IY-uH1EWDomIes14TFDY223StIhY4k_hIfawWedlLug,4215
11
10
  oarepo_runtime/cli/__init__.py,sha256=-WGXmjHoSqiApR_LvYnZTimuL-frR7SynrsSklnjb3A,221
12
11
  oarepo_runtime/cli/assets.py,sha256=XLZTnsGb88O5N8R2D3AYpZqtnO4JrbybUtRLKnL1p3w,2430
13
12
  oarepo_runtime/cli/base.py,sha256=xZMsR2rati5Mz0DZzmnlhVI7E6ePCfnOiTayrxT9cWU,259
@@ -25,6 +24,7 @@ oarepo_runtime/datastreams/config.py,sha256=ALq7otBFMHjT3GV59KpkEV-8ZborWrYLXyB3
25
24
  oarepo_runtime/datastreams/datastreams.py,sha256=XW8jWFvV4vCL7fs7yVfKKYu1HEKaR-7HRmRPQiru_z4,8178
26
25
  oarepo_runtime/datastreams/errors.py,sha256=ZcwAsmczSTtHXljyDSrgqGhYD7td9rTLXZJvPjr72pA,1627
27
26
  oarepo_runtime/datastreams/fixtures.py,sha256=_pQLKUCoat2J0IjTeitIqEYIpiOGWtxxLMS4KiSU-Rs,7000
27
+ oarepo_runtime/datastreams/tasks.py,sha256=_EJZuHg2UoIJCrrOo0J7e8uCSoXIpJsRJnsb8sorWJc,10810
28
28
  oarepo_runtime/datastreams/transformers.py,sha256=4COh2cza_n2GKnTM2yJkj9-8KkPK2E1fcyRoUH4S2OY,1204
29
29
  oarepo_runtime/datastreams/utils.py,sha256=KGuY60SUkq1HnIGinL_RhmWiM51HVlccxTomCUiGB58,394
30
30
  oarepo_runtime/datastreams/readers/__init__.py,sha256=thzuY28bweX89J66VDb7jtjVx7IOJKTXGd72GGZQBkY,1089
@@ -45,8 +45,8 @@ oarepo_runtime/expansions/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJW
45
45
  oarepo_runtime/expansions/expandable_fields.py,sha256=7DWKFL6ml8J7zGI6wm9LO7Xd6R0LSylsuq4lyRumNHQ,745
46
46
  oarepo_runtime/expansions/service.py,sha256=HaEy76XOhDf__sQ91hi-8iH1hthM9q07pRhOmyZyVrs,144
47
47
  oarepo_runtime/facets/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
48
- oarepo_runtime/facets/base.py,sha256=McdE4OxIVqmYj-Eqig-TVVMnSevi-jnR0cV89Kg-Ygs,322
49
- oarepo_runtime/facets/date.py,sha256=R6F-aGGpqH4oTY2eYdDmF2THKbFxQB_NIYW56QN1Y1k,1962
48
+ oarepo_runtime/facets/base.py,sha256=-IEUUY0hZcAh_3SelceTjMSw_SaqMhgnLxzG62iq7tA,421
49
+ oarepo_runtime/facets/date.py,sha256=lB4It_Z_4Y419vf1eT0osGCGrDcDS7xEEi52fkmUjg0,2155
50
50
  oarepo_runtime/facets/enum.py,sha256=3LrShQIt9Vt5mkqUkc6FNxXCW5JEFdPwtGCTEmNB6i0,396
51
51
  oarepo_runtime/facets/max_facet.py,sha256=TZ4KMKKVJHzyU1KgNne4V7IMQPu1ALRpkz61Y0labrc,407
52
52
  oarepo_runtime/facets/nested_facet.py,sha256=kNOR_YXoMjA1REhG_DidLdFG6ZqM40kp85yvatFCd3g,962
@@ -57,8 +57,10 @@ oarepo_runtime/i18n/dumper.py,sha256=PbNFCLsiH4XV3E1v8xga_fzlcEImHy8OXn_UKh_8VBU
57
57
  oarepo_runtime/i18n/schema.py,sha256=wJLyE4Ew4mqEGoMpM6JOsyyqGCV_R4YgWQUm45AHVPU,1184
58
58
  oarepo_runtime/i18n/ui_schema.py,sha256=9r2j9zCG60yVEhcEFaz8TvmNGMAkzaOJFfKri3rtVck,1854
59
59
  oarepo_runtime/i18n/validation.py,sha256=fyMTi2Rw-KiHv7c7HN61zGxRVa9sAjAEEkAL5wUyKNo,236
60
- oarepo_runtime/records/__init__.py,sha256=jzKWn4jaVKZvysPZHtqWE_SWExh_4DBz7YSgflFyYoM,721
61
- oarepo_runtime/records/icu.py,sha256=h8RkqAO8d0LOqj27IVa-B-Bqs08na0lffqczJZHTgUU,4137
60
+ oarepo_runtime/records/__init__.py,sha256=AbpHGcgLb-kRsJGnwFEktk7uzpZOCcBY74-YBdrKVGs,1
61
+ oarepo_runtime/records/systemfields/__init__.py,sha256=bHZNROC7UdwQZYsf81PH445KCacNsoJ9rTT0l3jhFf4,257
62
+ oarepo_runtime/records/systemfields/icu.py,sha256=fZ6XZlfOFWe6-I3eIB5nMBc5NGmwHYeJzge3JOOusnU,4158
63
+ oarepo_runtime/records/systemfields/mapping.py,sha256=jzKWn4jaVKZvysPZHtqWE_SWExh_4DBz7YSgflFyYoM,721
62
64
  oarepo_runtime/relations/__init__.py,sha256=bDAgxl_LdKsqpGG3qluxAkQnn5u2ItJngnHQKkqzlkE,373
63
65
  oarepo_runtime/relations/base.py,sha256=I5XANA-fFbiH3xQ1s7x1NVJFaiSRKCc6-xyNy1LEfpw,8739
64
66
  oarepo_runtime/relations/components.py,sha256=J9rvzaAoRDbSVuA01hIOlXKQP-OE5VJI5w5xuMsFO70,602
@@ -70,27 +72,27 @@ oarepo_runtime/relations/pid_relation.py,sha256=xE_dcpa5j8QHLXaH1MifwuE-a6M-KcTe
70
72
  oarepo_runtime/relations/uow.py,sha256=KrN8B-wVbmb0kOErxb7bAhPmOR6-mMRgBr-ab-ir6hQ,151
71
73
  oarepo_runtime/resolvers/__init__.py,sha256=kTlvSiympib59YQV7wEKpIXGprPWRuvxLIwmeeQdUec,89
72
74
  oarepo_runtime/resolvers/proxies.py,sha256=egtT7uXL91KswWI7gqUIaz1vWIHezdsiI_M-xRKXWww,547
73
- oarepo_runtime/resources/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
75
+ oarepo_runtime/resources/__init__.py,sha256=kbVs55btqzxlM9ioRCmXxdoPOU06f8FRmIPnE3nTz0Y,110
74
76
  oarepo_runtime/resources/localized_ui_json_serializer.py,sha256=d6CmIy6YnWnW5JmVXgo1hIn9pWQ0Tpn8n2ljdggH7pc,1285
75
77
  oarepo_runtime/services/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
76
- oarepo_runtime/services/cf.py,sha256=-m9seIH5VYUdxDsJlPVXS0-8f7xkpN7YfW1q9E1GacI,475
77
- oarepo_runtime/services/icu.py,sha256=5uxCHEBIEBlKo8IO4y_GA6InYVPAq6sPmWXWeBOXLA8,4969
78
- oarepo_runtime/tasks/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
79
- oarepo_runtime/tasks/datastreams.py,sha256=_EJZuHg2UoIJCrrOo0J7e8uCSoXIpJsRJnsb8sorWJc,10810
78
+ oarepo_runtime/services/search.py,sha256=BH5KDwk12-F0SRe7aomU0dbOxMr6zAwfTwxkNR7e720,4982
79
+ oarepo_runtime/services/schema/__init__.py,sha256=XGfNjYk7ha5JhVERuqjl-yDaI1O9dDQItZJEdMzDe4w,77
80
+ oarepo_runtime/services/schema/cf.py,sha256=-m9seIH5VYUdxDsJlPVXS0-8f7xkpN7YfW1q9E1GacI,475
81
+ oarepo_runtime/services/schema/polymorphic.py,sha256=CkvXVUiXbrsLWFgoNnjjpUviQyzRMCmpsD3GWfV0WZA,494
82
+ oarepo_runtime/services/schema/ui.py,sha256=n2fCG-k39QG9s4DW2v6H4oLy-yHWpizp_A4oqpdh3qY,3506
83
+ oarepo_runtime/services/schema/validation.py,sha256=fahqKGDdIYWux5ZeoljrEe8VD2fDZR9VpfvYmTYAmpw,1050
80
84
  oarepo_runtime/translations/messages.pot,sha256=NfZakWEYMZE_6HvnKxO7B61UnHnWgtKSvSKMJQ6msK0,971
81
85
  oarepo_runtime/translations/cs/LC_MESSAGES/messages.mo,sha256=fsvCdqu3x4w8IUEdhsVO1JZZLRATSKu4gJcAZPi__aQ,651
82
86
  oarepo_runtime/translations/cs/LC_MESSAGES/messages.po,sha256=tc1AQdE81cJs7xyOcMv7w58_jJf6FEDyq4sSkWBXAKQ,1100
83
87
  oarepo_runtime/translations/en/LC_MESSAGES/messages.po,sha256=iMl_z-O2j81Yn5tqOzJdOl3qmGE0s3A3uOEPHZy2V3s,1019
84
88
  oarepo_runtime/ui/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
85
- oarepo_runtime/ui/marshmallow.py,sha256=lAVKware1J7UJGl8RpbuF8rczOI9SAn3rnrHDm33ptQ,3153
89
+ oarepo_runtime/ui/marshmallow.py,sha256=Z_yjcBnFpduf7PzA80zTUnSLYeVRfr5ewr974dUfhqE,232
86
90
  oarepo_runtime/utils/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
87
91
  oarepo_runtime/utils/path.py,sha256=V1NVyk3m12_YLbj7QHYvUpE1wScO78bYsX1LOLeXDkI,3108
88
- oarepo_runtime/validation/__init__.py,sha256=lU7DgZq8pGD5Pa-QqL9gvLsib3IYtM-Y56k-NwHrPG0,166
89
- oarepo_runtime/validation/dates.py,sha256=fahqKGDdIYWux5ZeoljrEe8VD2fDZR9VpfvYmTYAmpw,1050
90
92
  tests/pkg_data/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
91
- oarepo_runtime-1.4.14.dist-info/LICENSE,sha256=h2uWz0OaB3EN-J1ImdGJZzc7yvfQjvHVYdUhQ-H7ypY,1064
92
- oarepo_runtime-1.4.14.dist-info/METADATA,sha256=YNQM3XUkxRifP_RevQJLEIchdh_uo2jbTLPBAFf4UZ8,4288
93
- oarepo_runtime-1.4.14.dist-info/WHEEL,sha256=yQN5g4mg4AybRjkgi-9yy4iQEFibGQmlz78Pik5Or-A,92
94
- oarepo_runtime-1.4.14.dist-info/entry_points.txt,sha256=C32W4eT-8OypMCfwOO5WREioVKSneDfY51D78Uvdbp0,231
95
- oarepo_runtime-1.4.14.dist-info/top_level.txt,sha256=bHhlkT1_RQC4IkfTQCqA3iN4KCB6cSFQlsXpQMSP-bE,21
96
- oarepo_runtime-1.4.14.dist-info/RECORD,,
93
+ oarepo_runtime-1.4.15.dist-info/LICENSE,sha256=h2uWz0OaB3EN-J1ImdGJZzc7yvfQjvHVYdUhQ-H7ypY,1064
94
+ oarepo_runtime-1.4.15.dist-info/METADATA,sha256=zSjQZPzwP9Bdvz8F-DPkMn2RNPCfV3RrpS5sG5Pc24A,4288
95
+ oarepo_runtime-1.4.15.dist-info/WHEEL,sha256=yQN5g4mg4AybRjkgi-9yy4iQEFibGQmlz78Pik5Or-A,92
96
+ oarepo_runtime-1.4.15.dist-info/entry_points.txt,sha256=4NPw4O2VCsu8-RsssxQ6IMeme0dcPY4ZRWYrED9JrB4,231
97
+ oarepo_runtime-1.4.15.dist-info/top_level.txt,sha256=bHhlkT1_RQC4IkfTQCqA3iN4KCB6cSFQlsXpQMSP-bE,21
98
+ oarepo_runtime-1.4.15.dist-info/RECORD,,
@@ -5,4 +5,4 @@ oarepo_runtime = oarepo_runtime.ext:OARepoRuntime
5
5
  oarepo_runtime = oarepo_runtime.ext:OARepoRuntime
6
6
 
7
7
  [invenio_celery.tasks]
8
- oarepo_runtime_datastreams = oarepo_runtime.tasks.datastreams
8
+ oarepo_runtime_datastreams = oarepo_runtime.datastreams.tasks
File without changes
@@ -1,3 +0,0 @@
1
- from .dates import CachedMultilayerEDTFValidator, validate_date, validate_datetime
2
-
3
- __all__ = ["validate_date", "validate_datetime", "CachedMultilayerEDTFValidator"]
File without changes