oarepo-runtime 1.10.3__py3-none-any.whl → 2.0.0.dev3__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.
Files changed (171) hide show
  1. oarepo_runtime/__init__.py +24 -0
  2. oarepo_runtime/api.py +111 -0
  3. oarepo_runtime/cli/__init__.py +10 -21
  4. oarepo_runtime/cli/search.py +34 -0
  5. oarepo_runtime/config.py +86 -13
  6. oarepo_runtime/ext.py +64 -82
  7. oarepo_runtime/proxies.py +21 -5
  8. oarepo_runtime/records/__init__.py +11 -50
  9. oarepo_runtime/records/drafts.py +24 -18
  10. oarepo_runtime/records/mapping.py +84 -0
  11. oarepo_runtime/records/pid_providers.py +43 -7
  12. oarepo_runtime/records/systemfields/__init__.py +15 -33
  13. oarepo_runtime/records/systemfields/mapping.py +41 -24
  14. oarepo_runtime/records/systemfields/publication_status.py +59 -0
  15. oarepo_runtime/services/__init__.py +12 -0
  16. oarepo_runtime/services/config/__init__.py +15 -21
  17. oarepo_runtime/services/config/link_conditions.py +69 -75
  18. oarepo_runtime/services/config/permissions.py +62 -0
  19. oarepo_runtime/services/records/__init__.py +14 -1
  20. oarepo_runtime/services/records/links.py +21 -11
  21. oarepo_runtime/services/records/mapping.py +42 -0
  22. oarepo_runtime/services/results.py +98 -109
  23. oarepo_runtime/services/schema/__init__.py +12 -44
  24. oarepo_runtime/services/schema/i18n.py +47 -22
  25. oarepo_runtime/services/schema/i18n_ui.py +61 -24
  26. {oarepo_runtime-1.10.3.dist-info → oarepo_runtime-2.0.0.dev3.dist-info}/METADATA +9 -21
  27. oarepo_runtime-2.0.0.dev3.dist-info/RECORD +30 -0
  28. {oarepo_runtime-1.10.3.dist-info → oarepo_runtime-2.0.0.dev3.dist-info}/WHEEL +1 -2
  29. oarepo_runtime-2.0.0.dev3.dist-info/entry_points.txt +5 -0
  30. oarepo_runtime/cli/assets.py +0 -145
  31. oarepo_runtime/cli/base.py +0 -25
  32. oarepo_runtime/cli/cf.py +0 -15
  33. oarepo_runtime/cli/check.py +0 -167
  34. oarepo_runtime/cli/configuration.py +0 -51
  35. oarepo_runtime/cli/fixtures.py +0 -167
  36. oarepo_runtime/cli/index.py +0 -272
  37. oarepo_runtime/cli/permissions/__init__.py +0 -6
  38. oarepo_runtime/cli/permissions/base.py +0 -26
  39. oarepo_runtime/cli/permissions/evaluate.py +0 -63
  40. oarepo_runtime/cli/permissions/list.py +0 -239
  41. oarepo_runtime/cli/permissions/search.py +0 -121
  42. oarepo_runtime/cli/validate.py +0 -150
  43. oarepo_runtime/datastreams/__init__.py +0 -38
  44. oarepo_runtime/datastreams/asynchronous.py +0 -247
  45. oarepo_runtime/datastreams/catalogue.py +0 -150
  46. oarepo_runtime/datastreams/datastreams.py +0 -152
  47. oarepo_runtime/datastreams/errors.py +0 -54
  48. oarepo_runtime/datastreams/ext.py +0 -41
  49. oarepo_runtime/datastreams/fixtures.py +0 -265
  50. oarepo_runtime/datastreams/json.py +0 -4
  51. oarepo_runtime/datastreams/readers/__init__.py +0 -39
  52. oarepo_runtime/datastreams/readers/attachments.py +0 -51
  53. oarepo_runtime/datastreams/readers/excel.py +0 -123
  54. oarepo_runtime/datastreams/readers/json.py +0 -27
  55. oarepo_runtime/datastreams/readers/service.py +0 -54
  56. oarepo_runtime/datastreams/readers/yaml.py +0 -14
  57. oarepo_runtime/datastreams/semi_asynchronous.py +0 -91
  58. oarepo_runtime/datastreams/synchronous.py +0 -70
  59. oarepo_runtime/datastreams/transformers.py +0 -18
  60. oarepo_runtime/datastreams/types.py +0 -323
  61. oarepo_runtime/datastreams/utils.py +0 -131
  62. oarepo_runtime/datastreams/writers/__init__.py +0 -21
  63. oarepo_runtime/datastreams/writers/attachments_file.py +0 -92
  64. oarepo_runtime/datastreams/writers/attachments_service.py +0 -118
  65. oarepo_runtime/datastreams/writers/publish.py +0 -70
  66. oarepo_runtime/datastreams/writers/service.py +0 -175
  67. oarepo_runtime/datastreams/writers/utils.py +0 -30
  68. oarepo_runtime/datastreams/writers/validation_errors.py +0 -20
  69. oarepo_runtime/datastreams/writers/yaml.py +0 -56
  70. oarepo_runtime/ext_config.py +0 -67
  71. oarepo_runtime/i18n/__init__.py +0 -3
  72. oarepo_runtime/info/__init__.py +0 -0
  73. oarepo_runtime/info/check.py +0 -95
  74. oarepo_runtime/info/permissions/__init__.py +0 -0
  75. oarepo_runtime/info/permissions/debug.py +0 -191
  76. oarepo_runtime/info/views.py +0 -586
  77. oarepo_runtime/profile.py +0 -60
  78. oarepo_runtime/records/dumpers/__init__.py +0 -8
  79. oarepo_runtime/records/dumpers/edtf_interval.py +0 -38
  80. oarepo_runtime/records/dumpers/multilingual_dumper.py +0 -34
  81. oarepo_runtime/records/entity_resolvers/__init__.py +0 -13
  82. oarepo_runtime/records/entity_resolvers/proxies.py +0 -57
  83. oarepo_runtime/records/mappings/__init__.py +0 -0
  84. oarepo_runtime/records/mappings/rdm_parent_mapping.json +0 -483
  85. oarepo_runtime/records/owners/__init__.py +0 -3
  86. oarepo_runtime/records/owners/registry.py +0 -22
  87. oarepo_runtime/records/relations/__init__.py +0 -22
  88. oarepo_runtime/records/relations/base.py +0 -296
  89. oarepo_runtime/records/relations/internal.py +0 -46
  90. oarepo_runtime/records/relations/lookup.py +0 -28
  91. oarepo_runtime/records/relations/pid_relation.py +0 -102
  92. oarepo_runtime/records/systemfields/featured_file.py +0 -45
  93. oarepo_runtime/records/systemfields/has_draftcheck.py +0 -47
  94. oarepo_runtime/records/systemfields/icu.py +0 -371
  95. oarepo_runtime/records/systemfields/owner.py +0 -115
  96. oarepo_runtime/records/systemfields/record_status.py +0 -35
  97. oarepo_runtime/records/systemfields/selectors.py +0 -98
  98. oarepo_runtime/records/systemfields/synthetic.py +0 -130
  99. oarepo_runtime/resources/__init__.py +0 -4
  100. oarepo_runtime/resources/config.py +0 -12
  101. oarepo_runtime/resources/file_resource.py +0 -15
  102. oarepo_runtime/resources/json_serializer.py +0 -27
  103. oarepo_runtime/resources/localized_ui_json_serializer.py +0 -54
  104. oarepo_runtime/resources/resource.py +0 -53
  105. oarepo_runtime/resources/responses.py +0 -20
  106. oarepo_runtime/services/components.py +0 -429
  107. oarepo_runtime/services/config/draft_link.py +0 -23
  108. oarepo_runtime/services/config/permissions_presets.py +0 -174
  109. oarepo_runtime/services/config/service.py +0 -117
  110. oarepo_runtime/services/custom_fields/__init__.py +0 -80
  111. oarepo_runtime/services/custom_fields/mappings.py +0 -188
  112. oarepo_runtime/services/entity/__init__.py +0 -0
  113. oarepo_runtime/services/entity/config.py +0 -14
  114. oarepo_runtime/services/entity/schema.py +0 -9
  115. oarepo_runtime/services/entity/service.py +0 -48
  116. oarepo_runtime/services/expansions/__init__.py +0 -0
  117. oarepo_runtime/services/expansions/expandable_fields.py +0 -21
  118. oarepo_runtime/services/expansions/service.py +0 -4
  119. oarepo_runtime/services/facets/__init__.py +0 -33
  120. oarepo_runtime/services/facets/base.py +0 -12
  121. oarepo_runtime/services/facets/date.py +0 -72
  122. oarepo_runtime/services/facets/enum.py +0 -11
  123. oarepo_runtime/services/facets/facet_groups_names.py +0 -17
  124. oarepo_runtime/services/facets/max_facet.py +0 -13
  125. oarepo_runtime/services/facets/multilingual_facet.py +0 -33
  126. oarepo_runtime/services/facets/nested_facet.py +0 -32
  127. oarepo_runtime/services/facets/params.py +0 -192
  128. oarepo_runtime/services/facets/year_histogram.py +0 -200
  129. oarepo_runtime/services/files/__init__.py +0 -8
  130. oarepo_runtime/services/files/components.py +0 -62
  131. oarepo_runtime/services/files/service.py +0 -16
  132. oarepo_runtime/services/generators.py +0 -10
  133. oarepo_runtime/services/permissions/__init__.py +0 -3
  134. oarepo_runtime/services/permissions/generators.py +0 -103
  135. oarepo_runtime/services/relations/__init__.py +0 -0
  136. oarepo_runtime/services/relations/components.py +0 -15
  137. oarepo_runtime/services/relations/errors.py +0 -18
  138. oarepo_runtime/services/relations/mapping.py +0 -38
  139. oarepo_runtime/services/schema/cf.py +0 -13
  140. oarepo_runtime/services/schema/i18n_validation.py +0 -7
  141. oarepo_runtime/services/schema/marshmallow.py +0 -44
  142. oarepo_runtime/services/schema/marshmallow_to_json_schema.py +0 -72
  143. oarepo_runtime/services/schema/oneofschema.py +0 -192
  144. oarepo_runtime/services/schema/polymorphic.py +0 -21
  145. oarepo_runtime/services/schema/rdm.py +0 -146
  146. oarepo_runtime/services/schema/rdm_ui.py +0 -156
  147. oarepo_runtime/services/schema/ui.py +0 -251
  148. oarepo_runtime/services/schema/validation.py +0 -70
  149. oarepo_runtime/services/search.py +0 -282
  150. oarepo_runtime/services/service.py +0 -61
  151. oarepo_runtime/tasks.py +0 -6
  152. oarepo_runtime/translations/cs/LC_MESSAGES/messages.mo +0 -0
  153. oarepo_runtime/translations/cs/LC_MESSAGES/messages.po +0 -95
  154. oarepo_runtime/translations/default_translations.py +0 -6
  155. oarepo_runtime/translations/en/LC_MESSAGES/messages.mo +0 -0
  156. oarepo_runtime/translations/en/LC_MESSAGES/messages.po +0 -97
  157. oarepo_runtime/translations/messages.pot +0 -100
  158. oarepo_runtime/uow.py +0 -146
  159. oarepo_runtime/utils/__init__.py +0 -0
  160. oarepo_runtime/utils/functools.py +0 -37
  161. oarepo_runtime/utils/identity_utils.py +0 -35
  162. oarepo_runtime/utils/index.py +0 -11
  163. oarepo_runtime/utils/path.py +0 -97
  164. oarepo_runtime-1.10.3.dist-info/RECORD +0 -163
  165. oarepo_runtime-1.10.3.dist-info/entry_points.txt +0 -16
  166. oarepo_runtime-1.10.3.dist-info/top_level.txt +0 -2
  167. tests/marshmallow_to_json/__init__.py +0 -0
  168. tests/marshmallow_to_json/test_datacite_ui_schema.py +0 -1410
  169. tests/marshmallow_to_json/test_simple_schema.py +0 -52
  170. tests/pkg_data/__init__.py +0 -0
  171. {oarepo_runtime-1.10.3.dist-info → oarepo_runtime-2.0.0.dev3.dist-info}/licenses/LICENSE +0 -0
@@ -1,282 +0,0 @@
1
- import dataclasses
2
- import inspect
3
- from typing import List
4
-
5
- from invenio_rdm_records.services.config import (
6
- RDMSearchDraftsOptions as BaseRDMSearchDraftsOptions,
7
- )
8
- from invenio_rdm_records.services.config import RDMSearchOptions as BaseRDMSearchOptions
9
- from invenio_records_resources.proxies import current_service_registry
10
- from invenio_records_resources.services.records import (
11
- SearchOptions as InvenioSearchOptions,
12
- )
13
- from invenio_drafts_resources.services.records.config import SearchDraftsOptions as InvenioSearchDraftsOptions
14
- from invenio_records_resources.services.records.params import (
15
- FacetsParam,
16
- PaginationParam,
17
- QueryStrParam,
18
- SortParam,
19
- )
20
- from invenio_records_resources.services.records.queryparser import SuggestQueryParser
21
- from invenio_search.engine import dsl
22
- from invenio_drafts_resources.services.records.search_params import AllVersionsParam
23
- # TODO: integrate this to invenio_records_resources.services.records and remove SearchOptions class
24
- from oarepo_runtime.i18n import lazy_gettext as _
25
- from oarepo_runtime.records.systemfields.icu import ICUSuggestField
26
- from oarepo_runtime.utils.functools import class_property
27
-
28
- from .facets.params import GroupedFacetsParam, OARepoAllVersionsParam, OARepoPublishedRecordsParam
29
- from invenio_drafts_resources.services.records.search_params import AllVersionsParam
30
- from invenio_rdm_records.services.search_params import PublishedRecordsParam
31
- from functools import partial
32
- try:
33
- from invenio_i18n import get_locale
34
- except ImportError:
35
- from invenio_i18n.babel import get_locale
36
-
37
-
38
- class FuzzySuggestQueryParser(SuggestQueryParser):
39
- def __init__(self, identity=None, extra_params=None, **kwargs):
40
- """Constructor."""
41
- super().__init__(identity=identity, extra_params=extra_params)
42
- self.fields = self.extra_params.get("fields", [])
43
- self.extra_params.setdefault("type", "bool_prefix")
44
-
45
- def parse(self, query_str):
46
- """Parse the query."""
47
- # default behavior
48
- multi_match_with_bool_prefix = dsl.Q(
49
- "multi_match", query=query_str, **self.extra_params
50
- )
51
- # fuzziness does not seem to work with bool_prefix multimatch query, so we turn this into
52
- # should multi match query with two clauses
53
- multi_match_fuzzy = dsl.Q(
54
- "multi_match", query=query_str, fields=self.fields, fuzziness="AUTO"
55
- )
56
- return dsl.Q("bool", should=[multi_match_with_bool_prefix, multi_match_fuzzy])
57
-
58
-
59
- class SearchOptionsMixin:
60
- @class_property
61
- def params_interpreters_cls(cls):
62
- """Replaces FacetsParam with GroupedFacetsParam."""
63
- params_replace_map = {FacetsParam: GroupedFacetsParam, AllVersionsParam:
64
- OARepoAllVersionsParam.factory(["versions.is_latest", "versions.is_latest_draft"]),
65
- PublishedRecordsParam: OARepoPublishedRecordsParam}
66
-
67
- param_interpreters = [*super(SearchOptionsMixin, cls).params_interpreters_cls]
68
- # replace FacetsParam with GroupedFacetsParam
69
- for idx, interpreter in enumerate(param_interpreters):
70
- if interpreter in params_replace_map:
71
- param_interpreters[idx] = params_replace_map[interpreter]
72
- elif isinstance(interpreter, partial):
73
- fn = interpreter.func
74
- if fn in params_replace_map:
75
- param_interpreters[idx] = params_replace_map[fn]
76
- return param_interpreters
77
-
78
- sort_options = {
79
- "title": dict(
80
- title=_("By Title"),
81
- fields=["metadata.title"], # ES defaults to desc on `_score` field
82
- ),
83
- "bestmatch": dict(
84
- title=_("Best match"),
85
- fields=["_score"], # ES defaults to desc on `_score` field
86
- ),
87
- "newest": dict(
88
- title=_("Newest"),
89
- fields=["-created"],
90
- ),
91
- "oldest": dict(
92
- title=_("Oldest"),
93
- fields=["created"],
94
- ),
95
- }
96
-
97
-
98
- class SearchOptionsDraftMixin(SearchOptionsMixin):
99
- sort_options = {
100
- "bestmatch": dict(
101
- title=_("Best match"),
102
- fields=["_score"], # search defaults to desc on `_score` field
103
- ),
104
- "updated-desc": dict(
105
- title=_("Recently updated"),
106
- fields=["-updated"],
107
- ),
108
- "updated-asc": dict(
109
- title=_("Least recently updated"),
110
- fields=["updated"],
111
- ),
112
- "newest": dict(
113
- title=_("Newest"),
114
- fields=["-created"],
115
- ),
116
- "oldest": dict(
117
- title=_("Oldest"),
118
- fields=["created"],
119
- ),
120
- "version": dict(
121
- title=_("Version"),
122
- fields=["-versions.index"],
123
- ),
124
- }
125
-
126
-
127
-
128
- class SearchOptions(SearchOptionsMixin, InvenioSearchOptions):
129
- # TODO: should be changed
130
- params_interpreters_cls = [
131
- QueryStrParam,
132
- PaginationParam,
133
- SortParam,
134
- GroupedFacetsParam,
135
- ]
136
-
137
- class SearchDraftsOptions(SearchOptionsMixin, InvenioSearchDraftsOptions):
138
- # TODO: should be changed
139
- params_interpreters_cls = [
140
- QueryStrParam,
141
- PaginationParam,
142
- SortParam,
143
- GroupedFacetsParam,
144
- AllVersionsParam.factory("versions.is_latest_draft")
145
- ]
146
-
147
-
148
- class RDMSearchOptions(SearchOptionsMixin, BaseRDMSearchOptions):
149
- pass
150
-
151
-
152
- class RDMSearchDraftsOptions(SearchOptionsDraftMixin, BaseRDMSearchDraftsOptions):
153
- pass
154
-
155
-
156
- @dataclasses.dataclass
157
- class SuggestField:
158
- field: str
159
- boost: int
160
- use_ngrams: bool = True
161
- boost_exact: float = 5
162
- boost_2gram: float = 1
163
- boost_3gram: float = 1
164
- boost_prefix: float = 1
165
-
166
-
167
- class ICUSuggestParser:
168
- def __init__(
169
- self,
170
- record_cls_or_service_name,
171
- extra_fields: List[SuggestField] = None,
172
- default_fields: List[SuggestField] = None,
173
- ):
174
- self.record_cls_or_service_name = record_cls_or_service_name
175
- self.extra_fields = extra_fields or []
176
- self.default_fields = default_fields or []
177
-
178
- @property
179
- def record_cls(self):
180
- if not isinstance(self.record_cls_or_service_name, str):
181
- return self.record_cls_or_service_name
182
- return current_service_registry.get(
183
- self.record_cls_or_service_name
184
- ).config.record_cls
185
-
186
- def __get__(self, instance, owner):
187
- search_as_you_type_fields: List[SuggestField] = []
188
- locale = get_locale()
189
- if locale:
190
- language = locale.language
191
-
192
- for fld_name, fld in inspect.getmembers(
193
- self.record_cls, lambda x: isinstance(x, ICUSuggestField)
194
- ):
195
- search_as_you_type_fields.append(
196
- SuggestField(f"{fld_name}.{language}.original", 2)
197
- )
198
- search_as_you_type_fields.append(
199
- SuggestField(f"{fld_name}.{language}.no_accent", 1)
200
- )
201
-
202
- if not search_as_you_type_fields:
203
- search_as_you_type_fields.extend(self.default_fields)
204
-
205
- search_as_you_type_fields.extend(self.extra_fields)
206
-
207
- fields = []
208
- for fld in search_as_you_type_fields:
209
- fields.append(f"{fld.field}^{fld.boost * fld.boost_exact}")
210
- if fld.use_ngrams:
211
- fields.append(f"{fld.field}._2gram^{fld.boost * fld.boost_2gram}")
212
- fields.append(f"{fld.field}._3gram^{fld.boost * fld.boost_3gram}")
213
- fields.append(
214
- f"{fld.field}._index_prefix^{fld.boost * fld.boost_prefix}"
215
- )
216
-
217
- return FuzzySuggestQueryParser.factory(fields=fields)
218
-
219
-
220
- @dataclasses.dataclass
221
- class SortField:
222
- option_name: str = "title"
223
- icu_sort_field: str = "sort"
224
- title: str = _("By Title")
225
-
226
-
227
- class ICUSortOptions:
228
- def __init__(self, record_cls_or_service_name, fields: List[SortField] = None):
229
- self.record_cls_or_service_name = record_cls_or_service_name
230
- self.fields = fields or [SortField()]
231
-
232
- @property
233
- def record_cls(self):
234
- if not isinstance(self.record_cls_or_service_name, str):
235
- return self.record_cls_or_service_name
236
- return current_service_registry.get(
237
- self.record_cls_or_service_name
238
- ).config.record_cls
239
-
240
- def __get__(self, instance, owner):
241
- if not inspect.isclass(owner):
242
- owner = type(owner)
243
- super_options = {}
244
- for mro in list(owner.mro())[1:]:
245
- if hasattr(mro, "sort_options"):
246
- super_options = mro.sort_options
247
- break
248
-
249
- ret = {
250
- **super_options,
251
- **getattr(owner, "extra_sort_options", {}),
252
- }
253
-
254
- # transform the sort options by the current language
255
- locale = get_locale()
256
- if not locale:
257
- return ret
258
-
259
- language = locale.language
260
-
261
- for sort_field in self.fields:
262
- icu_field = getattr(self.record_cls, sort_field.icu_sort_field)
263
- ret[sort_field.option_name] = {
264
- "title": sort_field.title,
265
- "fields": [f"{icu_field.key}.{language}"],
266
- }
267
- return ret
268
-
269
-
270
- class I18nSearchOptions(SearchOptions):
271
- extra_sort_options = {}
272
- record_cls = None
273
-
274
-
275
- class I18nRDMSearchOptions(RDMSearchOptions):
276
- extra_sort_options = {}
277
- record_cls = None
278
-
279
-
280
- class I18nRDMDraftsSearchOptions(RDMSearchDraftsOptions):
281
- extra_sort_options = {}
282
- record_cls = None
@@ -1,61 +0,0 @@
1
- """An extension to invenio RDM service that includes a search across all records
2
- (published, draft and deleted).
3
- without any filtering. Permission `can_read_all_records` and `search_all_records`
4
- were added and must be used to filter the results so that no information is leaked.
5
- """
6
-
7
- from invenio_rdm_records.services import RDMRecordService
8
- from invenio_records_resources.services import LinksTemplate
9
-
10
-
11
- class SearchAllRecordsService(RDMRecordService):
12
- def search_all_records(
13
- self,
14
- identity,
15
- params=None,
16
- search_preference=None,
17
- expand=False,
18
- extra_filter=None,
19
- **kwargs,
20
- ):
21
- """Search for drafts records matching the querystring."""
22
- self.require_permission(
23
- identity,
24
- "search_all_records",
25
- params=params,
26
- extra_filter=extra_filter,
27
- **kwargs,
28
- )
29
- # Prepare and execute the search
30
- params = params or {}
31
-
32
- search_opts = (
33
- getattr(self.config, "search_all", None) or self.config.search
34
- )
35
-
36
- search_result = self._search(
37
- "search_all",
38
- identity,
39
- params,
40
- search_preference,
41
- record_cls=self.draft_cls,
42
- search_opts=search_opts,
43
- extra_filter=extra_filter,
44
- permission_action="read_all_records",
45
- **kwargs,
46
- ).execute()
47
-
48
- return self.result_list(
49
- self,
50
- identity,
51
- search_result,
52
- params,
53
- links_tpl=LinksTemplate(
54
- getattr(self.config, "links_search_drafts")
55
- or self.config.links_search_drafts,
56
- context={"args": params},
57
- ),
58
- links_item_tpl=self.links_item_tpl,
59
- expandable_fields=self.expandable_fields,
60
- expand=expand,
61
- )
oarepo_runtime/tasks.py DELETED
@@ -1,6 +0,0 @@
1
- from celery import shared_task
2
-
3
- # TODO priority if something big is in queue already
4
- @shared_task(name='ping')
5
- def ping():
6
- return 'pong'
@@ -1,95 +0,0 @@
1
- # Czech translations for PROJECT.
2
- # Copyright (C) 2023 ORGANIZATION
3
- # This file is distributed under the same license as the PROJECT project.
4
- # FIRST AUTHOR <EMAIL@ADDRESS>, 2023.
5
- #
6
- msgid ""
7
- msgstr ""
8
- "Project-Id-Version: PROJECT VERSION\n"
9
- "Report-Msgid-Bugs-To: EMAIL@ADDRESS\n"
10
- "POT-Creation-Date: 2023-05-11 12:49+0200\n"
11
- "PO-Revision-Date: 2023-05-11 12:50+0200\n"
12
- "Last-Translator: \n"
13
- "Language-Team: cs <LL@li.org>\n"
14
- "Language: cs\n"
15
- "MIME-Version: 1.0\n"
16
- "Content-Type: text/plain; charset=utf-8\n"
17
- "Content-Transfer-Encoding: 8bit\n"
18
- "Plural-Forms: nplurals=3; plural=((n==1) ? 0 : (n>=2 && n<=4) ? 1 : 2);\n"
19
- "Generated-By: Babel 2.12.1\n"
20
- "X-Generator: Poedit 3.2.2\n"
21
-
22
- #: oarepo_runtime/i18n/default_translations.py:3
23
- msgid "Newest"
24
- msgstr "Nejnovější"
25
-
26
- #: oarepo_runtime/i18n/default_translations.py:4
27
- msgid "Oldest"
28
- msgstr "Nejstarší"
29
-
30
- #: oarepo_runtime/i18n/default_translations.py:5
31
- msgid "Best match"
32
- msgstr "Nejlepší shoda"
33
-
34
- #: oarepo_runtime/i18n/default_translations.py:6
35
- msgid "Contact"
36
- msgstr "Kontakt"
37
-
38
- #: oarepo_runtime/ui/marshmallow.py:81
39
- msgid "True"
40
- msgstr "Ano"
41
-
42
- #: oarepo_runtime/services/search.py:39 oarepo_runtime/services/search.py:127
43
- msgid "By Title"
44
- msgstr "Dle názvu"
45
-
46
- #: oarepo_runtime/services/schema/ui.py:114
47
- msgid "False"
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'"
54
-
55
- #: /Users/m/w/cesnet/oarepo-runtime/oarepo_runtime/services/schema/ui.py:152
56
- msgid "access.status.open"
57
- msgstr "otevřený přístup"
58
-
59
- #: /Users/m/w/cesnet/oarepo-runtime/oarepo_runtime/services/schema/ui.py:153
60
- msgid "access.status.embargoed"
61
- msgstr "odložené zpřístupnění"
62
-
63
- #: /Users/m/w/cesnet/oarepo-runtime/oarepo_runtime/services/schema/ui.py:154
64
- msgid "access.status.restricted"
65
- msgstr "omezený přístup"
66
-
67
- #: /Users/m/w/cesnet/oarepo-runtime/oarepo_runtime/services/schema/ui.py:155
68
- msgid "access.status.metadata-only"
69
- msgstr "pouze metadata"
70
-
71
- #: /Users/m/w/cesnet/oarepo-runtime/oarepo_runtime/services/search.py:105
72
- msgid "Recently updated"
73
- msgstr ""
74
-
75
- #: /Users/m/w/cesnet/oarepo-runtime/oarepo_runtime/services/search.py:109
76
- msgid "Least recently updated"
77
- msgstr ""
78
-
79
- #: /Users/m/w/cesnet/oarepo-runtime/oarepo_runtime/services/search.py:121
80
- msgid "Version"
81
- msgstr ""
82
-
83
- #: /Users/m/w/cesnet/oarepo-runtime/oarepo_runtime/services/schema/i18n.py:28
84
- msgid "Both language and text must be provided."
85
- msgstr "Musí být vyplněn jazyk i hodnota."
86
-
87
- #: /Users/m/w/cesnet/oarepo-runtime/oarepo_runtime/services/schema/rdm.py:103
88
- #: /Users/m/w/cesnet/oarepo-runtime/oarepo_runtime/services/schema/rdm.py:127
89
- msgid ""
90
- "It is necessary to choose organization from the controlled vocabulary. To "
91
- "add organization, please go to https://nusl.techlib.cz/cs/migrace-"
92
- "nusl/navrh-novych-hesel/"
93
- msgstr ""
94
- "Organizaci je nutné vybrat ze slovníku. Pro doplnění nové, vyplňte formulář "
95
- "na https://nusl.techlib.cz/cs/migrace-nusl/navrh-novych-hesel/"
@@ -1,6 +0,0 @@
1
- from oarepo_runtime.i18n import lazy_gettext as _
2
-
3
- _("Newest")
4
- _("Oldest")
5
- _("Best match")
6
- _("Contact")
@@ -1,97 +0,0 @@
1
- # English translations for PROJECT.
2
- # Copyright (C) 2023 ORGANIZATION
3
- # This file is distributed under the same license as the PROJECT project.
4
- # FIRST AUTHOR <EMAIL@ADDRESS>, 2023.
5
- #
6
- msgid ""
7
- msgstr ""
8
- "Project-Id-Version: PROJECT VERSION\n"
9
- "Report-Msgid-Bugs-To: EMAIL@ADDRESS\n"
10
- "POT-Creation-Date: 2023-05-11 12:49+0200\n"
11
- "PO-Revision-Date: 2023-05-11 12:27+0200\n"
12
- "Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
13
- "Language-Team: en <LL@li.org>\n"
14
- "Language: en\n"
15
- "MIME-Version: 1.0\n"
16
- "Content-Type: text/plain; charset=utf-8\n"
17
- "Content-Transfer-Encoding: 8bit\n"
18
- "Plural-Forms: nplurals=2; plural=(n != 1);\n"
19
- "Generated-By: Babel 2.12.1\n"
20
-
21
- #: oarepo_runtime/i18n/default_translations.py:3
22
- msgid "Newest"
23
- msgstr ""
24
-
25
- #: oarepo_runtime/i18n/default_translations.py:4
26
- msgid "Oldest"
27
- msgstr ""
28
-
29
- #: oarepo_runtime/i18n/default_translations.py:5
30
- msgid "Best match"
31
- msgstr ""
32
-
33
- #: oarepo_runtime/i18n/default_translations.py:6
34
- msgid "Contact"
35
- msgstr ""
36
-
37
- #: oarepo_runtime/ui/marshmallow.py:81
38
- msgid "True"
39
- msgstr ""
40
-
41
- #: oarepo_runtime/services/search.py:39 oarepo_runtime/services/search.py:127
42
- msgid "By Title"
43
- msgstr ""
44
-
45
- #: oarepo_runtime/services/schema/ui.py:114
46
- msgid "False"
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 ""
53
-
54
- #: /Users/m/w/cesnet/oarepo-runtime/oarepo_runtime/services/schema/ui.py:152
55
- msgid "access.status.open"
56
- msgstr "open access"
57
-
58
- #: /Users/m/w/cesnet/oarepo-runtime/oarepo_runtime/services/schema/ui.py:153
59
- msgid "access.status.embargoed"
60
- msgstr "embargoed access"
61
-
62
- #: /Users/m/w/cesnet/oarepo-runtime/oarepo_runtime/services/schema/ui.py:154
63
- msgid "access.status.restricted"
64
- msgstr "restricted access"
65
-
66
- #: /Users/m/w/cesnet/oarepo-runtime/oarepo_runtime/services/schema/ui.py:155
67
- msgid "access.status.metadata-only"
68
- msgstr "metadata only access"
69
-
70
- #: /Users/m/w/cesnet/oarepo-runtime/oarepo_runtime/services/search.py:105
71
- msgid "Recently updated"
72
- msgstr ""
73
-
74
- #: /Users/m/w/cesnet/oarepo-runtime/oarepo_runtime/services/search.py:109
75
- msgid "Least recently updated"
76
- msgstr ""
77
-
78
- #: /Users/m/w/cesnet/oarepo-runtime/oarepo_runtime/services/search.py:121
79
- msgid "Version"
80
- msgstr ""
81
-
82
- #: /Users/m/w/cesnet/oarepo-runtime/oarepo_runtime/services/schema/i18n.py:30
83
- #, python-brace-format
84
- msgid "Both '{lang_name}' and '{value_name}' fields must be provided."
85
- msgstr ""
86
-
87
- #: /Users/m/w/cesnet/oarepo-runtime/oarepo_runtime/services/schema/i18n.py:28
88
- msgid "Both language and text must be provided."
89
- msgstr ""
90
-
91
- #: /Users/m/w/cesnet/oarepo-runtime/oarepo_runtime/services/schema/rdm.py:103
92
- #: /Users/m/w/cesnet/oarepo-runtime/oarepo_runtime/services/schema/rdm.py:127
93
- msgid ""
94
- "It is necessary to choose organization from the controlled vocabulary. To "
95
- "add organization, please go to https://nusl.techlib.cz/cs/migrace-"
96
- "nusl/navrh-novych-hesel/"
97
- msgstr ""
@@ -1,100 +0,0 @@
1
- # Translations template for PROJECT.
2
- # Copyright (C) 2025 ORGANIZATION
3
- # This file is distributed under the same license as the PROJECT project.
4
- # FIRST AUTHOR <EMAIL@ADDRESS>, 2025.
5
- #
6
- #, fuzzy
7
- msgid ""
8
- msgstr ""
9
- "Project-Id-Version: PROJECT VERSION\n"
10
- "Report-Msgid-Bugs-To: EMAIL@ADDRESS\n"
11
- "POT-Creation-Date: 2025-08-05 11:53+0200\n"
12
- "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
13
- "Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
14
- "Language-Team: LANGUAGE <LL@li.org>\n"
15
- "MIME-Version: 1.0\n"
16
- "Content-Type: text/plain; charset=utf-8\n"
17
- "Content-Transfer-Encoding: 8bit\n"
18
- "Generated-By: Babel 2.17.0\n"
19
-
20
- #: /Users/m/w/cesnet/oarepo-runtime/oarepo_runtime/services/search.py:80
21
- #: /Users/m/w/cesnet/oarepo-runtime/oarepo_runtime/services/search.py:224
22
- msgid "By Title"
23
- msgstr ""
24
-
25
- #: /Users/m/w/cesnet/oarepo-runtime/oarepo_runtime/services/search.py:84
26
- #: /Users/m/w/cesnet/oarepo-runtime/oarepo_runtime/services/search.py:101
27
- #: /Users/m/w/cesnet/oarepo-runtime/oarepo_runtime/translations/default_translations.py:5
28
- msgid "Best match"
29
- msgstr ""
30
-
31
- #: /Users/m/w/cesnet/oarepo-runtime/oarepo_runtime/services/search.py:88
32
- #: /Users/m/w/cesnet/oarepo-runtime/oarepo_runtime/services/search.py:113
33
- #: /Users/m/w/cesnet/oarepo-runtime/oarepo_runtime/translations/default_translations.py:3
34
- msgid "Newest"
35
- msgstr ""
36
-
37
- #: /Users/m/w/cesnet/oarepo-runtime/oarepo_runtime/services/search.py:92
38
- #: /Users/m/w/cesnet/oarepo-runtime/oarepo_runtime/services/search.py:117
39
- #: /Users/m/w/cesnet/oarepo-runtime/oarepo_runtime/translations/default_translations.py:4
40
- msgid "Oldest"
41
- msgstr ""
42
-
43
- #: /Users/m/w/cesnet/oarepo-runtime/oarepo_runtime/services/search.py:105
44
- msgid "Recently updated"
45
- msgstr ""
46
-
47
- #: /Users/m/w/cesnet/oarepo-runtime/oarepo_runtime/services/search.py:109
48
- msgid "Least recently updated"
49
- msgstr ""
50
-
51
- #: /Users/m/w/cesnet/oarepo-runtime/oarepo_runtime/services/search.py:121
52
- msgid "Version"
53
- msgstr ""
54
-
55
- #: /Users/m/w/cesnet/oarepo-runtime/oarepo_runtime/services/schema/i18n.py:28
56
- #: /Users/m/w/cesnet/oarepo-runtime/oarepo_runtime/services/schema/i18n.py:29
57
- msgid "Both language and text must be provided."
58
- msgstr ""
59
-
60
- #: /Users/m/w/cesnet/oarepo-runtime/oarepo_runtime/services/schema/rdm.py:103
61
- #: /Users/m/w/cesnet/oarepo-runtime/oarepo_runtime/services/schema/rdm.py:127
62
- msgid ""
63
- "It is necessary to choose organization from the controlled vocabulary. To"
64
- " add organization, please go to https://nusl.techlib.cz/cs/migrace-nusl"
65
- "/navrh-novych-hesel/"
66
- msgstr ""
67
-
68
- #: /Users/m/w/cesnet/oarepo-runtime/oarepo_runtime/services/schema/ui.py:155
69
- msgid "True"
70
- msgstr ""
71
-
72
- #: /Users/m/w/cesnet/oarepo-runtime/oarepo_runtime/services/schema/ui.py:155
73
- msgid "False"
74
- msgstr ""
75
-
76
- #: /Users/m/w/cesnet/oarepo-runtime/oarepo_runtime/services/schema/ui.py:175
77
- msgid "access.status.open"
78
- msgstr ""
79
-
80
- #: /Users/m/w/cesnet/oarepo-runtime/oarepo_runtime/services/schema/ui.py:176
81
- msgid "access.status.embargoed"
82
- msgstr ""
83
-
84
- #: /Users/m/w/cesnet/oarepo-runtime/oarepo_runtime/services/schema/ui.py:177
85
- msgid "access.status.restricted"
86
- msgstr ""
87
-
88
- #: /Users/m/w/cesnet/oarepo-runtime/oarepo_runtime/services/schema/ui.py:178
89
- msgid "access.status.metadata-only"
90
- msgstr ""
91
-
92
- #: /Users/m/w/cesnet/oarepo-runtime/oarepo_runtime/services/schema/validation.py:35
93
- #, python-format
94
- msgid "Invalid value %(identifier)s of identifier type %(type)s"
95
- msgstr ""
96
-
97
- #: /Users/m/w/cesnet/oarepo-runtime/oarepo_runtime/translations/default_translations.py:6
98
- msgid "Contact"
99
- msgstr ""
100
-