oarepo-runtime 1.5.110__py3-none-any.whl → 1.5.111__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.
@@ -0,0 +1,49 @@
1
+ from invenio_access.permissions import system_identity
2
+ from invenio_records_resources.proxies import current_service_registry
3
+
4
+ from oarepo_runtime.datastreams.types import StreamBatch, StreamEntry
5
+ from oarepo_runtime.datastreams.writers import BaseWriter
6
+ from oarepo_runtime.datastreams.writers.utils import record_invenio_exceptions
7
+
8
+
9
+ class PublishWriter(BaseWriter):
10
+ def __init__(
11
+ self, *, service, request_name="publish_draft", identity=None, **kwargs
12
+ ):
13
+ if isinstance(service, str):
14
+ service = current_service_registry.get(service)
15
+
16
+ self._service = service
17
+ self._identity = identity or system_identity
18
+ self._request_name = request_name
19
+
20
+ def write(self, batch: StreamBatch) -> StreamBatch:
21
+ for entry in batch.ok_entries:
22
+ if entry.deleted:
23
+ continue
24
+
25
+ with record_invenio_exceptions(entry):
26
+ self._write_entry(entry)
27
+
28
+ def _write_entry(self, entry: StreamEntry):
29
+ from invenio_requests.proxies import (
30
+ current_requests_service as current_invenio_requests_service,
31
+ )
32
+ from oarepo_requests.proxies import current_oarepo_requests_service
33
+
34
+ draft = self._service.read_draft(self._identity, entry.id)
35
+ request = current_oarepo_requests_service.create(
36
+ identity=self._identity,
37
+ data=None,
38
+ request_type=self._request_name,
39
+ topic=draft._record,
40
+ )
41
+
42
+ submit_result = current_invenio_requests_service.execute_action(
43
+ self._identity, request.id, "submit"
44
+ )
45
+ accept_result = current_invenio_requests_service.execute_action(
46
+ self._identity, request.id, "accept"
47
+ )
48
+
49
+ self._service.read(self._identity, draft["id"])
@@ -9,6 +9,7 @@ from oarepo_runtime.datastreams.writers.attachments_file import AttachmentsFileW
9
9
  from oarepo_runtime.datastreams.writers.attachments_service import (
10
10
  AttachmentsServiceWriter,
11
11
  )
12
+ from oarepo_runtime.datastreams.writers.publish import PublishWriter
12
13
  from oarepo_runtime.datastreams.writers.service import ServiceWriter
13
14
  from oarepo_runtime.datastreams.writers.yaml import YamlWriter
14
15
  from oarepo_runtime.records.entity_resolvers import UserResolver
@@ -50,6 +51,7 @@ DATASTREAMS_WRITERS = {
50
51
  "attachments_service": AttachmentsServiceWriter,
51
52
  "yaml": YamlWriter,
52
53
  "attachments_file": AttachmentsFileWriter,
54
+ "publish": PublishWriter,
53
55
  }
54
56
 
55
57
  DATASTREAMS_TRANSFORMERS = {}
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.2
2
2
  Name: oarepo-runtime
3
- Version: 1.5.110
3
+ Version: 1.5.111
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
  oarepo_runtime/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
2
2
  oarepo_runtime/ext.py,sha256=6w6bpTpNjjj3txgVu0nfpmPa9CnDS6Zl6U2DCNs9Usc,2565
3
- oarepo_runtime/ext_config.py,sha256=NiXqgag3QJABf06r5NiDYjd9AvoYoRY9UWiplo8Vcg4,2056
3
+ oarepo_runtime/ext_config.py,sha256=ERpi6uJqDE6OpqebB_vuusmoB3xaAziuKeGVxVI5Q-w,2155
4
4
  oarepo_runtime/profile.py,sha256=QzrQoZncjoN74ZZnpkEKakNk08KCzBU7m6y42RN8AMY,1637
5
5
  oarepo_runtime/proxies.py,sha256=NN_WNj1xuKc-OveoZmzvTFlUonNjSmLIGsv_JUcHGls,285
6
6
  oarepo_runtime/tasks.py,sha256=AciXN1fUq6tzfzNSICh1S6XoHGWiuH76bUqXyzTsOPU,140
@@ -41,6 +41,7 @@ oarepo_runtime/datastreams/readers/yaml.py,sha256=U4nyJQ8ocM_ohp-eUN1RjVoNzYV9z7
41
41
  oarepo_runtime/datastreams/writers/__init__.py,sha256=PWufWNrixFhXv5wSv3_pzmrimroqVB2DVgTxVtY5FCg,526
42
42
  oarepo_runtime/datastreams/writers/attachments_file.py,sha256=kV_IPAWawJ9PX-IfoncmLQXpdTbzRMsJie8uKX1vNp0,3161
43
43
  oarepo_runtime/datastreams/writers/attachments_service.py,sha256=g_tbjUA3YnTE5gP21zlG2kIxneZsn0q95EVjlxB8s1M,4152
44
+ oarepo_runtime/datastreams/writers/publish.py,sha256=rU1HgIR2OO1CyA_QBe1MGHiZmcfKthrLYYlw6Laj9Gk,1795
44
45
  oarepo_runtime/datastreams/writers/service.py,sha256=PvCxYASDxOqT6iyL6cjw0aH41LaC1vwob4W3vnE9XmA,3920
45
46
  oarepo_runtime/datastreams/writers/utils.py,sha256=Lk_ZLNeXTLuFEn04lw1-6bJ7duG6kwA8X4wf9c_GiL4,1067
46
47
  oarepo_runtime/datastreams/writers/validation_errors.py,sha256=wOCXdniR6so_4ExpdFYYgBRyENp7_6kVFZM2L-Hy3G8,661
@@ -146,9 +147,9 @@ tests/marshmallow_to_json/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJW
146
147
  tests/marshmallow_to_json/test_datacite_ui_schema.py,sha256=82iLj8nW45lZOUewpWbLX3mpSkpa9lxo-vK-Qtv_1bU,48552
147
148
  tests/marshmallow_to_json/test_simple_schema.py,sha256=izZN9p0v6kovtSZ6AdxBYmK_c6ZOti2_z_wPT_zXIr0,1500
148
149
  tests/pkg_data/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
149
- oarepo_runtime-1.5.110.dist-info/LICENSE,sha256=h2uWz0OaB3EN-J1ImdGJZzc7yvfQjvHVYdUhQ-H7ypY,1064
150
- oarepo_runtime-1.5.110.dist-info/METADATA,sha256=_cnrjQse_wazsslxvPFW21ep9YEP3BwZcDHXnZjyBUk,4721
151
- oarepo_runtime-1.5.110.dist-info/WHEEL,sha256=In9FTNxeP60KnTkGw7wk6mJPYd_dQSjEZmXdBdMCI-8,91
152
- oarepo_runtime-1.5.110.dist-info/entry_points.txt,sha256=k7O5LZUOGsVeSpB7ulU0txBUNp1CVQG7Q7TJIVTPbzU,491
153
- oarepo_runtime-1.5.110.dist-info/top_level.txt,sha256=bHhlkT1_RQC4IkfTQCqA3iN4KCB6cSFQlsXpQMSP-bE,21
154
- oarepo_runtime-1.5.110.dist-info/RECORD,,
150
+ oarepo_runtime-1.5.111.dist-info/LICENSE,sha256=h2uWz0OaB3EN-J1ImdGJZzc7yvfQjvHVYdUhQ-H7ypY,1064
151
+ oarepo_runtime-1.5.111.dist-info/METADATA,sha256=siwU9jj_7KHqtqhGWSUur7Z0LEKf3_h4PXd-3xr0J58,4721
152
+ oarepo_runtime-1.5.111.dist-info/WHEEL,sha256=In9FTNxeP60KnTkGw7wk6mJPYd_dQSjEZmXdBdMCI-8,91
153
+ oarepo_runtime-1.5.111.dist-info/entry_points.txt,sha256=k7O5LZUOGsVeSpB7ulU0txBUNp1CVQG7Q7TJIVTPbzU,491
154
+ oarepo_runtime-1.5.111.dist-info/top_level.txt,sha256=bHhlkT1_RQC4IkfTQCqA3iN4KCB6cSFQlsXpQMSP-bE,21
155
+ oarepo_runtime-1.5.111.dist-info/RECORD,,