oarepo-runtime 1.4.5__tar.gz → 1.4.6__tar.gz

Sign up to get free protection for your applications and to get access to all the features.
Files changed (96) hide show
  1. {oarepo-runtime-1.4.5/oarepo_runtime.egg-info → oarepo-runtime-1.4.6}/PKG-INFO +1 -1
  2. {oarepo-runtime-1.4.5 → oarepo-runtime-1.4.6}/oarepo_runtime/cli/index.py +41 -20
  3. {oarepo-runtime-1.4.5 → oarepo-runtime-1.4.6}/oarepo_runtime/cli/validate.py +26 -2
  4. {oarepo-runtime-1.4.5 → oarepo-runtime-1.4.6/oarepo_runtime.egg-info}/PKG-INFO +1 -1
  5. {oarepo-runtime-1.4.5 → oarepo-runtime-1.4.6}/setup.cfg +1 -1
  6. {oarepo-runtime-1.4.5 → oarepo-runtime-1.4.6}/LICENSE +0 -0
  7. {oarepo-runtime-1.4.5 → oarepo-runtime-1.4.6}/MANIFEST.in +0 -0
  8. {oarepo-runtime-1.4.5 → oarepo-runtime-1.4.6}/README.md +0 -0
  9. {oarepo-runtime-1.4.5 → oarepo-runtime-1.4.6}/oarepo_runtime/__init__.py +0 -0
  10. {oarepo-runtime-1.4.5 → oarepo-runtime-1.4.6}/oarepo_runtime/cf/__init__.py +0 -0
  11. {oarepo-runtime-1.4.5 → oarepo-runtime-1.4.6}/oarepo_runtime/cf/cli.py +0 -0
  12. {oarepo-runtime-1.4.5 → oarepo-runtime-1.4.6}/oarepo_runtime/cf/mappings.py +0 -0
  13. {oarepo-runtime-1.4.5 → oarepo-runtime-1.4.6}/oarepo_runtime/cli/__init__.py +0 -0
  14. {oarepo-runtime-1.4.5 → oarepo-runtime-1.4.6}/oarepo_runtime/cli/assets.py +0 -0
  15. {oarepo-runtime-1.4.5 → oarepo-runtime-1.4.6}/oarepo_runtime/cli/base.py +0 -0
  16. {oarepo-runtime-1.4.5 → oarepo-runtime-1.4.6}/oarepo_runtime/cli/check.py +0 -0
  17. {oarepo-runtime-1.4.5 → oarepo-runtime-1.4.6}/oarepo_runtime/config/__init__.py +0 -0
  18. {oarepo-runtime-1.4.5 → oarepo-runtime-1.4.6}/oarepo_runtime/config/permissions_presets.py +0 -0
  19. {oarepo-runtime-1.4.5 → oarepo-runtime-1.4.6}/oarepo_runtime/config/service.py +0 -0
  20. {oarepo-runtime-1.4.5 → oarepo-runtime-1.4.6}/oarepo_runtime/datastreams/__init__.py +0 -0
  21. {oarepo-runtime-1.4.5 → oarepo-runtime-1.4.6}/oarepo_runtime/datastreams/batch.py +0 -0
  22. {oarepo-runtime-1.4.5 → oarepo-runtime-1.4.6}/oarepo_runtime/datastreams/catalogue.py +0 -0
  23. {oarepo-runtime-1.4.5 → oarepo-runtime-1.4.6}/oarepo_runtime/datastreams/cli.py +0 -0
  24. {oarepo-runtime-1.4.5 → oarepo-runtime-1.4.6}/oarepo_runtime/datastreams/config.py +0 -0
  25. {oarepo-runtime-1.4.5 → oarepo-runtime-1.4.6}/oarepo_runtime/datastreams/datastreams.py +0 -0
  26. {oarepo-runtime-1.4.5 → oarepo-runtime-1.4.6}/oarepo_runtime/datastreams/errors.py +0 -0
  27. {oarepo-runtime-1.4.5 → oarepo-runtime-1.4.6}/oarepo_runtime/datastreams/fixtures.py +0 -0
  28. {oarepo-runtime-1.4.5 → oarepo-runtime-1.4.6}/oarepo_runtime/datastreams/readers/__init__.py +0 -0
  29. {oarepo-runtime-1.4.5 → oarepo-runtime-1.4.6}/oarepo_runtime/datastreams/readers/attachments.py +0 -0
  30. {oarepo-runtime-1.4.5 → oarepo-runtime-1.4.6}/oarepo_runtime/datastreams/readers/excel.py +0 -0
  31. {oarepo-runtime-1.4.5 → oarepo-runtime-1.4.6}/oarepo_runtime/datastreams/readers/json.py +0 -0
  32. {oarepo-runtime-1.4.5 → oarepo-runtime-1.4.6}/oarepo_runtime/datastreams/readers/service.py +0 -0
  33. {oarepo-runtime-1.4.5 → oarepo-runtime-1.4.6}/oarepo_runtime/datastreams/readers/yaml.py +0 -0
  34. {oarepo-runtime-1.4.5 → oarepo-runtime-1.4.6}/oarepo_runtime/datastreams/transformers.py +0 -0
  35. {oarepo-runtime-1.4.5 → oarepo-runtime-1.4.6}/oarepo_runtime/datastreams/utils.py +0 -0
  36. {oarepo-runtime-1.4.5 → oarepo-runtime-1.4.6}/oarepo_runtime/datastreams/writers/__init__.py +0 -0
  37. {oarepo-runtime-1.4.5 → oarepo-runtime-1.4.6}/oarepo_runtime/datastreams/writers/attachment.py +0 -0
  38. {oarepo-runtime-1.4.5 → oarepo-runtime-1.4.6}/oarepo_runtime/datastreams/writers/service.py +0 -0
  39. {oarepo-runtime-1.4.5 → oarepo-runtime-1.4.6}/oarepo_runtime/datastreams/writers/validation_errors.py +0 -0
  40. {oarepo-runtime-1.4.5 → oarepo-runtime-1.4.6}/oarepo_runtime/datastreams/writers/yaml.py +0 -0
  41. {oarepo-runtime-1.4.5 → oarepo-runtime-1.4.6}/oarepo_runtime/drafts/__init__.py +0 -0
  42. {oarepo-runtime-1.4.5 → oarepo-runtime-1.4.6}/oarepo_runtime/drafts/systemfields/__init__.py +0 -0
  43. {oarepo-runtime-1.4.5 → oarepo-runtime-1.4.6}/oarepo_runtime/drafts/systemfields/has_draftcheck.py +0 -0
  44. {oarepo-runtime-1.4.5 → oarepo-runtime-1.4.6}/oarepo_runtime/expansions/__init__.py +0 -0
  45. {oarepo-runtime-1.4.5 → oarepo-runtime-1.4.6}/oarepo_runtime/expansions/expandable_fields.py +0 -0
  46. {oarepo-runtime-1.4.5 → oarepo-runtime-1.4.6}/oarepo_runtime/expansions/service.py +0 -0
  47. {oarepo-runtime-1.4.5 → oarepo-runtime-1.4.6}/oarepo_runtime/ext.py +0 -0
  48. {oarepo-runtime-1.4.5 → oarepo-runtime-1.4.6}/oarepo_runtime/ext_config.py +0 -0
  49. {oarepo-runtime-1.4.5 → oarepo-runtime-1.4.6}/oarepo_runtime/facets/__init__.py +0 -0
  50. {oarepo-runtime-1.4.5 → oarepo-runtime-1.4.6}/oarepo_runtime/facets/base.py +0 -0
  51. {oarepo-runtime-1.4.5 → oarepo-runtime-1.4.6}/oarepo_runtime/facets/date.py +0 -0
  52. {oarepo-runtime-1.4.5 → oarepo-runtime-1.4.6}/oarepo_runtime/facets/enum.py +0 -0
  53. {oarepo-runtime-1.4.5 → oarepo-runtime-1.4.6}/oarepo_runtime/facets/max_facet.py +0 -0
  54. {oarepo-runtime-1.4.5 → oarepo-runtime-1.4.6}/oarepo_runtime/facets/nested_facet.py +0 -0
  55. {oarepo-runtime-1.4.5 → oarepo-runtime-1.4.6}/oarepo_runtime/facets/params.py +0 -0
  56. {oarepo-runtime-1.4.5 → oarepo-runtime-1.4.6}/oarepo_runtime/i18n/__init__.py +0 -0
  57. {oarepo-runtime-1.4.5 → oarepo-runtime-1.4.6}/oarepo_runtime/i18n/default_translations.py +0 -0
  58. {oarepo-runtime-1.4.5 → oarepo-runtime-1.4.6}/oarepo_runtime/i18n/dumper.py +0 -0
  59. {oarepo-runtime-1.4.5 → oarepo-runtime-1.4.6}/oarepo_runtime/i18n/schema.py +0 -0
  60. {oarepo-runtime-1.4.5 → oarepo-runtime-1.4.6}/oarepo_runtime/i18n/ui_schema.py +0 -0
  61. {oarepo-runtime-1.4.5 → oarepo-runtime-1.4.6}/oarepo_runtime/i18n/validation.py +0 -0
  62. {oarepo-runtime-1.4.5 → oarepo-runtime-1.4.6}/oarepo_runtime/marshmallow.py +0 -0
  63. {oarepo-runtime-1.4.5 → oarepo-runtime-1.4.6}/oarepo_runtime/polymorphic.py +0 -0
  64. {oarepo-runtime-1.4.5 → oarepo-runtime-1.4.6}/oarepo_runtime/profile.py +0 -0
  65. {oarepo-runtime-1.4.5 → oarepo-runtime-1.4.6}/oarepo_runtime/relations/__init__.py +0 -0
  66. {oarepo-runtime-1.4.5 → oarepo-runtime-1.4.6}/oarepo_runtime/relations/base.py +0 -0
  67. {oarepo-runtime-1.4.5 → oarepo-runtime-1.4.6}/oarepo_runtime/relations/components.py +0 -0
  68. {oarepo-runtime-1.4.5 → oarepo-runtime-1.4.6}/oarepo_runtime/relations/errors.py +0 -0
  69. {oarepo-runtime-1.4.5 → oarepo-runtime-1.4.6}/oarepo_runtime/relations/internal.py +0 -0
  70. {oarepo-runtime-1.4.5 → oarepo-runtime-1.4.6}/oarepo_runtime/relations/lookup.py +0 -0
  71. {oarepo-runtime-1.4.5 → oarepo-runtime-1.4.6}/oarepo_runtime/relations/mapping.py +0 -0
  72. {oarepo-runtime-1.4.5 → oarepo-runtime-1.4.6}/oarepo_runtime/relations/pid_relation.py +0 -0
  73. {oarepo-runtime-1.4.5 → oarepo-runtime-1.4.6}/oarepo_runtime/relations/uow.py +0 -0
  74. {oarepo-runtime-1.4.5 → oarepo-runtime-1.4.6}/oarepo_runtime/resolvers/__init__.py +0 -0
  75. {oarepo-runtime-1.4.5 → oarepo-runtime-1.4.6}/oarepo_runtime/resolvers/proxies.py +0 -0
  76. {oarepo-runtime-1.4.5 → oarepo-runtime-1.4.6}/oarepo_runtime/tasks/__init__.py +0 -0
  77. {oarepo-runtime-1.4.5 → oarepo-runtime-1.4.6}/oarepo_runtime/tasks/datastreams.py +0 -0
  78. {oarepo-runtime-1.4.5 → oarepo-runtime-1.4.6}/oarepo_runtime/translations/cs/LC_MESSAGES/messages.mo +0 -0
  79. {oarepo-runtime-1.4.5 → oarepo-runtime-1.4.6}/oarepo_runtime/translations/cs/LC_MESSAGES/messages.po +0 -0
  80. {oarepo-runtime-1.4.5 → oarepo-runtime-1.4.6}/oarepo_runtime/translations/en/LC_MESSAGES/messages.po +0 -0
  81. {oarepo-runtime-1.4.5 → oarepo-runtime-1.4.6}/oarepo_runtime/translations/messages.pot +0 -0
  82. {oarepo-runtime-1.4.5 → oarepo-runtime-1.4.6}/oarepo_runtime/ui/__init__.py +0 -0
  83. {oarepo-runtime-1.4.5 → oarepo-runtime-1.4.6}/oarepo_runtime/ui/marshmallow.py +0 -0
  84. {oarepo-runtime-1.4.5 → oarepo-runtime-1.4.6}/oarepo_runtime/uow.py +0 -0
  85. {oarepo-runtime-1.4.5 → oarepo-runtime-1.4.6}/oarepo_runtime/utils/__init__.py +0 -0
  86. {oarepo-runtime-1.4.5 → oarepo-runtime-1.4.6}/oarepo_runtime/utils/path.py +0 -0
  87. {oarepo-runtime-1.4.5 → oarepo-runtime-1.4.6}/oarepo_runtime/validation/__init__.py +0 -0
  88. {oarepo-runtime-1.4.5 → oarepo-runtime-1.4.6}/oarepo_runtime/validation/dates.py +0 -0
  89. {oarepo-runtime-1.4.5 → oarepo-runtime-1.4.6}/oarepo_runtime.egg-info/SOURCES.txt +0 -0
  90. {oarepo-runtime-1.4.5 → oarepo-runtime-1.4.6}/oarepo_runtime.egg-info/dependency_links.txt +0 -0
  91. {oarepo-runtime-1.4.5 → oarepo-runtime-1.4.6}/oarepo_runtime.egg-info/entry_points.txt +0 -0
  92. {oarepo-runtime-1.4.5 → oarepo-runtime-1.4.6}/oarepo_runtime.egg-info/requires.txt +0 -0
  93. {oarepo-runtime-1.4.5 → oarepo-runtime-1.4.6}/oarepo_runtime.egg-info/top_level.txt +0 -0
  94. {oarepo-runtime-1.4.5 → oarepo-runtime-1.4.6}/pyproject.toml +0 -0
  95. {oarepo-runtime-1.4.5 → oarepo-runtime-1.4.6}/setup.py +0 -0
  96. {oarepo-runtime-1.4.5 → oarepo-runtime-1.4.6}/tests/pkg_data/__init__.py +0 -0
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.1
2
2
  Name: oarepo-runtime
3
- Version: 1.4.5
3
+ Version: 1.4.6
4
4
  Summary: A set of runtime extensions of Invenio repository
5
5
  Description-Content-Type: text/markdown
6
6
  License-File: LICENSE
@@ -1,3 +1,4 @@
1
+ import itertools
1
2
  import sys
2
3
 
3
4
  import click
@@ -85,6 +86,18 @@ def record_or_service(model):
85
86
  return record
86
87
 
87
88
 
89
+ def model_records_generator(model_class):
90
+ try:
91
+ for x in db.session.query(model_class.model_cls.id).filter(
92
+ model_class.model_cls.is_deleted.is_(False)
93
+ ):
94
+ rec_id = x[0]
95
+ yield model_class.get_record(rec_id)
96
+ except Exception as e:
97
+ if "Column expression or FROM clause expected" not in str(e):
98
+ raise
99
+
100
+
88
101
  @index.command()
89
102
  @with_appcontext
90
103
  @click.argument("model", required=False)
@@ -99,30 +112,38 @@ def reindex(model):
99
112
  service = current_service_registry.get(service_id)
100
113
  record_class = getattr(service.config, "record_cls", None)
101
114
 
102
- if not record_class or not hasattr(service, "indexer"):
103
- continue
115
+ id_generators = []
104
116
 
105
- try:
106
- id_generator = (
107
- x[0]
108
- for x in db.session.query(record_class.model_cls.id).filter(
109
- record_class.model_cls.is_deleted.is_(False)
117
+ if record_class and hasattr(service, "indexer"):
118
+ try:
119
+ id_generators.append(model_records_generator(record_class))
120
+ except Exception as e:
121
+ click.secho(
122
+ f"Could not get record ids for {service_id}, exception {e}",
123
+ file=sys.stderr,
124
+ )
125
+
126
+ draft_class = getattr(service.config, "draft_cls", None)
127
+
128
+ if draft_class and hasattr(service, "indexer"):
129
+ try:
130
+ id_generators.append(model_records_generator(draft_class))
131
+ except Exception as e:
132
+ click.secho(
133
+ f"Could not get draft record ids for {service_id}, exception {e}",
134
+ file=sys.stderr,
110
135
  )
111
- )
112
- except Exception as e:
113
- click.secho(
114
- f"Could not get record ids for {service_id}, exception {e}",
115
- file=sys.stderr,
116
- )
117
- continue
118
136
 
119
137
  click.secho(f"Indexing {service_id}", file=sys.stderr)
120
- ids = list(id_generator)
121
- for rec_id in ids:
122
- record = record_class.get_record(rec_id)
123
- service.indexer.index(record)
124
- service.indexer.refresh()
138
+ count = 0
139
+ for gen in id_generators:
140
+ for record in gen:
141
+ service.indexer.index(record)
142
+ count += 1
143
+ if count:
144
+ service.indexer.refresh()
145
+
125
146
  click.secho(
126
- f"Indexing {service_id} finished, indexed {len(ids)} records",
147
+ f"Indexing {service_id} finished, indexed {count} records",
127
148
  file=sys.stderr,
128
149
  )
@@ -22,6 +22,12 @@ class CheckOk(Exception):
22
22
  pass
23
23
 
24
24
 
25
+ def dump_data(d):
26
+ io = StringIO()
27
+ yaml.safe_dump(d, io, allow_unicode=True)
28
+ return io.getvalue()
29
+
30
+
25
31
  @oarepo.command(
26
32
  help="Validate a record. Takes one or two parameters - service name as "
27
33
  "the first one, file name or stdin with record data as the second"
@@ -51,12 +57,22 @@ def validate(service_name, record_file, verbose):
51
57
  if file_content.startswith("{"):
52
58
  data = json.loads(file_content)
53
59
  else:
54
- data = yaml.safe_load(StringIO(file_content))
60
+ data = list(yaml.safe_load_all(StringIO(file_content)))
55
61
 
56
62
  if not isinstance(data, list):
57
63
  data = [data]
58
64
  for idx, d in enumerate(data):
59
- loaded = schema().load(d)
65
+ try:
66
+ loaded = schema().load(d)
67
+ except Exception as e:
68
+ click.secho(
69
+ f"Marshmallow validation of record idx {idx + 1} failed",
70
+ fg="red",
71
+ )
72
+ click.secho(dump_data(d))
73
+ click.secho(e)
74
+ continue
75
+
60
76
  click.secho(
61
77
  f"Marshmallow validation of record idx {idx+1} has been successful",
62
78
  fg="green",
@@ -74,6 +90,14 @@ def validate(service_name, record_file, verbose):
74
90
  click.secho(
75
91
  f"Pre-commit hook of record idx {idx+1} has been successful", fg="green"
76
92
  )
93
+ except Exception as e:
94
+ click.secho(
95
+ f"Pre-commit validation of record idx {idx + 1} failed",
96
+ fg="red",
97
+ )
98
+ click.secho(dump_data(d))
99
+ click.secho(e)
100
+ continue
77
101
 
78
102
  if verbose:
79
103
  yaml.safe_dump(loaded, sys.stdout, allow_unicode=True)
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.1
2
2
  Name: oarepo-runtime
3
- Version: 1.4.5
3
+ Version: 1.4.6
4
4
  Summary: A set of runtime extensions of Invenio repository
5
5
  Description-Content-Type: text/markdown
6
6
  License-File: LICENSE
@@ -1,6 +1,6 @@
1
1
  [metadata]
2
2
  name = oarepo-runtime
3
- version = 1.4.5
3
+ version = 1.4.6
4
4
  description = A set of runtime extensions of Invenio repository
5
5
  authors = Alzbeta Pokorna
6
6
  readme = README.md
File without changes
File without changes
File without changes