oarepo-runtime 1.5.31__py3-none-any.whl → 1.5.33__py3-none-any.whl
Sign up to get free protection for your applications and to get access to all the features.
- oarepo_runtime/cli/index.py +36 -15
- oarepo_runtime/services/schema/ui.py +1 -0
- {oarepo_runtime-1.5.31.dist-info → oarepo_runtime-1.5.33.dist-info}/METADATA +1 -1
- {oarepo_runtime-1.5.31.dist-info → oarepo_runtime-1.5.33.dist-info}/RECORD +8 -8
- {oarepo_runtime-1.5.31.dist-info → oarepo_runtime-1.5.33.dist-info}/LICENSE +0 -0
- {oarepo_runtime-1.5.31.dist-info → oarepo_runtime-1.5.33.dist-info}/WHEEL +0 -0
- {oarepo_runtime-1.5.31.dist-info → oarepo_runtime-1.5.33.dist-info}/entry_points.txt +0 -0
- {oarepo_runtime-1.5.31.dist-info → oarepo_runtime-1.5.33.dist-info}/top_level.txt +0 -0
oarepo_runtime/cli/index.py
CHANGED
@@ -95,17 +95,6 @@ def record_or_service(model):
|
|
95
95
|
return record
|
96
96
|
|
97
97
|
|
98
|
-
def model_records_generator(model_class):
|
99
|
-
try:
|
100
|
-
for x in db.session.query(model_class.model_cls.id).filter(
|
101
|
-
model_class.model_cls.is_deleted.is_(False)
|
102
|
-
):
|
103
|
-
rec_id = x[0]
|
104
|
-
yield model_class.get_record(rec_id)
|
105
|
-
except Exception as e:
|
106
|
-
click.secho(f"Could not index {model_class}: {e}", fg="red", file=sys.stderr)
|
107
|
-
|
108
|
-
|
109
98
|
@index.command()
|
110
99
|
@with_appcontext
|
111
100
|
@click.argument("model", required=False)
|
@@ -119,14 +108,22 @@ def reindex(model, bulk_size, verbose):
|
|
119
108
|
for service_id in services:
|
120
109
|
click.secho(f"Preparing to index {service_id}", file=sys.stderr)
|
121
110
|
|
122
|
-
|
111
|
+
try:
|
112
|
+
service = current_service_registry.get(service_id)
|
113
|
+
except KeyError:
|
114
|
+
click.secho(f"Service {service_id} not in known services:", color="red")
|
115
|
+
for known_service_id, known_service in sorted(current_service_registry._services.items()):
|
116
|
+
click.secho(f" {known_service_id} -> {type(known_service).__module__}.{type(known_service).__name__}", color="red")
|
117
|
+
sys.exit(1)
|
123
118
|
record_class = getattr(service.config, "record_cls", None)
|
124
119
|
|
125
120
|
id_generators = []
|
126
121
|
|
122
|
+
record_generator = RECORD_GENERATORS.get(service_id, model_records_generator)
|
123
|
+
|
127
124
|
if record_class and hasattr(service, "indexer"):
|
128
125
|
try:
|
129
|
-
id_generators.append(
|
126
|
+
id_generators.append(record_generator(record_class))
|
130
127
|
except Exception as e:
|
131
128
|
click.secho(
|
132
129
|
f"Could not get record ids for {service_id}, exception {e}",
|
@@ -137,7 +134,7 @@ def reindex(model, bulk_size, verbose):
|
|
137
134
|
|
138
135
|
if draft_class and hasattr(service, "indexer"):
|
139
136
|
try:
|
140
|
-
id_generators.append(
|
137
|
+
id_generators.append(record_generator(draft_class))
|
141
138
|
except Exception as e:
|
142
139
|
click.secho(
|
143
140
|
f"Could not get draft record ids for {service_id}, exception {e}",
|
@@ -151,7 +148,6 @@ def reindex(model, bulk_size, verbose):
|
|
151
148
|
for bulk in generate_bulk_data(gen, service.indexer, bulk_size=bulk_size):
|
152
149
|
index_result = service.indexer.client.bulk(bulk)
|
153
150
|
count += len(bulk) // 2
|
154
|
-
|
155
151
|
for index_item_result in index_result["items"]:
|
156
152
|
result = index_item_result["index"]
|
157
153
|
if result["status"] != 200:
|
@@ -215,3 +211,28 @@ def dump_yaml(data):
|
|
215
211
|
io = StringIO()
|
216
212
|
yaml.dump(data, io, allow_unicode=True)
|
217
213
|
return io.getvalue()
|
214
|
+
|
215
|
+
|
216
|
+
def model_records_generator(model_class):
|
217
|
+
try:
|
218
|
+
for x in db.session.query(model_class.model_cls.id).filter(
|
219
|
+
model_class.model_cls.is_deleted.is_(False)
|
220
|
+
):
|
221
|
+
rec_id = x[0]
|
222
|
+
yield model_class.get_record(rec_id)
|
223
|
+
except Exception as e:
|
224
|
+
click.secho(f"Could not index {model_class}: {e}", fg="red", file=sys.stderr)
|
225
|
+
|
226
|
+
def users_record_generator(model_class):
|
227
|
+
from invenio_accounts.models import User
|
228
|
+
from invenio_users_resources.records.api import UserAggregate
|
229
|
+
try:
|
230
|
+
for x in db.session.query(User.id):
|
231
|
+
rec_id = x[0]
|
232
|
+
yield UserAggregate.get_record(rec_id)
|
233
|
+
except Exception as e:
|
234
|
+
click.secho(f"Could not index {model_class}: {e}", fg="red", file=sys.stderr)
|
235
|
+
|
236
|
+
RECORD_GENERATORS = {
|
237
|
+
'users': users_record_generator
|
238
|
+
}
|
@@ -124,6 +124,7 @@ if False: # NOSONAR
|
|
124
124
|
|
125
125
|
|
126
126
|
class InvenioUISchema(ma.Schema):
|
127
|
+
_schema = ma.fields.Str(attribute="$schema", data_key="$schema")
|
127
128
|
id = ma.fields.Str()
|
128
129
|
created = LocalizedDateTime(dump_only=True)
|
129
130
|
updated = LocalizedDateTime(dump_only=True)
|
@@ -11,7 +11,7 @@ oarepo_runtime/cli/cf.py,sha256=W0JEJK2JqKubQw8qtZJxohmADDRUBode4JZAqYLDGvc,339
|
|
11
11
|
oarepo_runtime/cli/check.py,sha256=AvC5VHAnwmtCd8R-Caj8v6nCAREKjObTdNtLJ24aJO8,4935
|
12
12
|
oarepo_runtime/cli/configuration.py,sha256=cLXoGDtjuA5uv9ZfYFcH0C4wcadj0qWC3P_E4Bf5-z0,1061
|
13
13
|
oarepo_runtime/cli/fixtures.py,sha256=teMbU-ocrSOmmCJvK-ICl6lMTAOWxJ5Tpkg6JQc0Y0s,5486
|
14
|
-
oarepo_runtime/cli/index.py,sha256=
|
14
|
+
oarepo_runtime/cli/index.py,sha256=6SaM3Ml6qCRakXbGz3afBAYM9hFRYrPIa6vw3pwqR_Q,8158
|
15
15
|
oarepo_runtime/cli/validate.py,sha256=HpSvHQCGHlrdgdpKix9cIlzlBoJEiT1vACZdMnOUGEY,2827
|
16
16
|
oarepo_runtime/datastreams/__init__.py,sha256=_i52Ek9J8DMARST0ejZAZPzUKm55xrrlKlCSO7dl6y4,1008
|
17
17
|
oarepo_runtime/datastreams/asynchronous.py,sha256=1I1mEaTxyrcHD7LK6O9z2QX37AgeejflxynGmLreLQ0,7396
|
@@ -102,7 +102,7 @@ oarepo_runtime/services/schema/i18n_validation.py,sha256=fyMTi2Rw-KiHv7c7HN61zGx
|
|
102
102
|
oarepo_runtime/services/schema/marshmallow.py,sha256=LmcSxvbZ9jIhkNHCqqxt1SA2UNijoDmIzqli1MkoTrE,1153
|
103
103
|
oarepo_runtime/services/schema/oneofschema.py,sha256=X_pXzrkYcLGGAtGN1qltrz45OzD_atrJHkHkp3L01xg,6660
|
104
104
|
oarepo_runtime/services/schema/polymorphic.py,sha256=f9yC7MGVynAFGM0fXIq0NbqGJxI65Xpi8GaM2ZM4c6Q,561
|
105
|
-
oarepo_runtime/services/schema/ui.py,sha256=
|
105
|
+
oarepo_runtime/services/schema/ui.py,sha256=qDR-nukJmeLwDZCdqcBg3CbseQ_A_BdxXyt_R4Qc_2c,3732
|
106
106
|
oarepo_runtime/services/schema/validation.py,sha256=fahqKGDdIYWux5ZeoljrEe8VD2fDZR9VpfvYmTYAmpw,1050
|
107
107
|
oarepo_runtime/translations/default_translations.py,sha256=060GBlA1ghWxfeumo6NqxCCZDb-6OezOuF6pr-_GEOQ,104
|
108
108
|
oarepo_runtime/translations/jinjax_messages.jinja,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
@@ -115,9 +115,9 @@ oarepo_runtime/utils/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hS
|
|
115
115
|
oarepo_runtime/utils/functools.py,sha256=gKS9YZtlIYcDvdNA9cmYO00yjiXBYV1jg8VpcRUyQyg,1324
|
116
116
|
oarepo_runtime/utils/path.py,sha256=V1NVyk3m12_YLbj7QHYvUpE1wScO78bYsX1LOLeXDkI,3108
|
117
117
|
tests/pkg_data/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
118
|
-
oarepo_runtime-1.5.
|
119
|
-
oarepo_runtime-1.5.
|
120
|
-
oarepo_runtime-1.5.
|
121
|
-
oarepo_runtime-1.5.
|
122
|
-
oarepo_runtime-1.5.
|
123
|
-
oarepo_runtime-1.5.
|
118
|
+
oarepo_runtime-1.5.33.dist-info/LICENSE,sha256=h2uWz0OaB3EN-J1ImdGJZzc7yvfQjvHVYdUhQ-H7ypY,1064
|
119
|
+
oarepo_runtime-1.5.33.dist-info/METADATA,sha256=8SWJONfiL0aijLAY7T3HCmdN4RegicsAM3feIB68qRU,4680
|
120
|
+
oarepo_runtime-1.5.33.dist-info/WHEEL,sha256=GJ7t_kWBFywbagK5eo9IoUwLW6oyOeTKmQ-9iHFVNxQ,92
|
121
|
+
oarepo_runtime-1.5.33.dist-info/entry_points.txt,sha256=QrlXAKuPDVBinaSh_v3yO9_Nb9ZNmJCJ0VFcCW-z0Jg,327
|
122
|
+
oarepo_runtime-1.5.33.dist-info/top_level.txt,sha256=bHhlkT1_RQC4IkfTQCqA3iN4KCB6cSFQlsXpQMSP-bE,21
|
123
|
+
oarepo_runtime-1.5.33.dist-info/RECORD,,
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|