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.
- oarepo_runtime/cf/__init__.py +1 -1
- oarepo_runtime/cf/mappings.py +1 -1
- oarepo_runtime/facets/base.py +3 -0
- oarepo_runtime/facets/date.py +14 -11
- oarepo_runtime/records/__init__.py +0 -28
- oarepo_runtime/records/systemfields/__init__.py +10 -0
- oarepo_runtime/records/{icu.py → systemfields/icu.py} +1 -1
- oarepo_runtime/records/systemfields/mapping.py +29 -0
- oarepo_runtime/resources/__init__.py +3 -0
- oarepo_runtime/services/schema/__init__.py +3 -0
- oarepo_runtime/services/schema/ui.py +122 -0
- oarepo_runtime/services/{icu.py → search.py} +1 -1
- oarepo_runtime/ui/marshmallow.py +6 -111
- {oarepo_runtime-1.4.14.dist-info → oarepo_runtime-1.4.15.dist-info}/METADATA +1 -1
- {oarepo_runtime-1.4.14.dist-info → oarepo_runtime-1.4.15.dist-info}/RECORD +23 -21
- {oarepo_runtime-1.4.14.dist-info → oarepo_runtime-1.4.15.dist-info}/entry_points.txt +1 -1
- oarepo_runtime/tasks/__init__.py +0 -0
- oarepo_runtime/validation/__init__.py +0 -3
- /oarepo_runtime/{tasks/datastreams.py → datastreams/tasks.py} +0 -0
- /oarepo_runtime/services/{cf.py → schema/cf.py} +0 -0
- /oarepo_runtime/{polymorphic.py → services/schema/polymorphic.py} +0 -0
- /oarepo_runtime/{validation/dates.py → services/schema/validation.py} +0 -0
- {oarepo_runtime-1.4.14.dist-info → oarepo_runtime-1.4.15.dist-info}/LICENSE +0 -0
- {oarepo_runtime-1.4.14.dist-info → oarepo_runtime-1.4.15.dist-info}/WHEEL +0 -0
- {oarepo_runtime-1.4.14.dist-info → oarepo_runtime-1.4.15.dist-info}/top_level.txt +0 -0
oarepo_runtime/cf/__init__.py
CHANGED
@@ -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):
|
oarepo_runtime/cf/mappings.py
CHANGED
@@ -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):
|
oarepo_runtime/facets/base.py
CHANGED
@@ -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}
|
oarepo_runtime/facets/date.py
CHANGED
@@ -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
|
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
|
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
|
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
|
29
|
-
return {
|
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
|
35
|
+
def localized_value_labels(self, values, locale):
|
34
36
|
return {
|
35
|
-
val: LocalizedEDTF().format_value(convert_to_edtf(val))
|
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
|
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)
|
@@ -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,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
|
oarepo_runtime/ui/marshmallow.py
CHANGED
@@ -1,114 +1,9 @@
|
|
1
|
-
import
|
2
|
-
import
|
1
|
+
from oarepo_runtime.services.schema.ui import InvenioUISchema
|
2
|
+
import warnings
|
3
3
|
|
4
|
-
|
5
|
-
|
6
|
-
|
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",)
|
@@ -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
|
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=
|
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
|
49
|
-
oarepo_runtime/facets/date.py,sha256=
|
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=
|
61
|
-
oarepo_runtime/records/
|
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=
|
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/
|
77
|
-
oarepo_runtime/services/
|
78
|
-
oarepo_runtime/
|
79
|
-
oarepo_runtime/
|
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=
|
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.
|
92
|
-
oarepo_runtime-1.4.
|
93
|
-
oarepo_runtime-1.4.
|
94
|
-
oarepo_runtime-1.4.
|
95
|
-
oarepo_runtime-1.4.
|
96
|
-
oarepo_runtime-1.4.
|
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,,
|
oarepo_runtime/tasks/__init__.py
DELETED
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|