deltafi 2.0rc1730159244116__py3-none-any.whl → 2.0rc1731040010625__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.
deltafi/domain.py CHANGED
@@ -20,6 +20,7 @@ import copy
20
20
  from datetime import datetime, timedelta, timezone
21
21
  from logging import Logger
22
22
  from typing import Dict, List, NamedTuple
23
+ from uuid import uuid4
23
24
 
24
25
  from deltafi.storage import ContentService, Segment
25
26
 
@@ -119,6 +120,9 @@ class Context(NamedTuple):
119
120
  saved_content=[],
120
121
  logger=logger)
121
122
 
123
+ def child_context(self):
124
+ return self._replace(did=str(uuid4()))
125
+
122
126
 
123
127
  class Content:
124
128
  """
deltafi/plugin.py CHANGED
@@ -25,6 +25,7 @@ import sys
25
25
  import threading
26
26
  import time
27
27
  import traceback
28
+ import yaml
28
29
  from datetime import datetime, timezone, timedelta
29
30
  from importlib import metadata
30
31
  from os.path import isdir, isfile, join
@@ -182,6 +183,18 @@ class Plugin(object):
182
183
  'docsMarkdown': self._load_action_docs(action)
183
184
  }
184
185
 
186
+ def _integration_tests(self):
187
+ tests_path = str(Path(os.path.dirname(os.path.abspath(sys.argv[0]))) / 'integration')
188
+
189
+ test_files = []
190
+ if isdir(tests_path):
191
+ test_files = [f for f in os.listdir(tests_path) if isfile(join(tests_path, f))]
192
+ else:
193
+ self.logger.warning(f"tests directory ({tests_path}) does not exist. No tests will be installed.")
194
+
195
+ tests = [json.load(open(join(tests_path, f))) for f in test_files]
196
+ return tests
197
+
185
198
  def registration_json(self):
186
199
  flows_path = str(Path(os.path.dirname(os.path.abspath(sys.argv[0]))) / 'flows')
187
200
 
@@ -208,7 +221,8 @@ class Plugin(object):
208
221
  'dependencies': [],
209
222
  'actions': actions,
210
223
  'variables': variables,
211
- 'flowPlans': flows
224
+ 'flowPlans': flows,
225
+ 'integrationTests': self._integration_tests()
212
226
  }
213
227
 
214
228
  def _register(self):
deltafi/result.py CHANGED
@@ -239,6 +239,7 @@ class TransformResult(Result):
239
239
 
240
240
  def json(self):
241
241
  return {
242
+ 'did': self.context.did,
242
243
  'content': [content.json() for content in self.content],
243
244
  'annotations': self.annotations,
244
245
  'metadata': self.metadata,
@@ -249,38 +250,38 @@ class TransformResult(Result):
249
250
  return [self.json()]
250
251
 
251
252
 
252
- class NamedTransformResult(NamedTuple):
253
- result: TransformResult
254
- name: str
253
+ class ChildTransformResult(TransformResult):
254
+ delta_file_name: str
255
255
 
256
- def get_segment_names(self):
257
- return self.result.get_segment_names()
256
+ def __init__(self, context: Context, delta_file_name: str = None):
257
+ super().__init__(context.child_context())
258
+ self.delta_file_name = delta_file_name
258
259
 
259
260
  def json(self):
260
- j = self.result.json()
261
- if self.name is not None:
262
- j['name'] = self.name
261
+ j = super().json()
262
+ if self.delta_file_name is not None:
263
+ j['name'] = self.delta_file_name
263
264
  return j
264
265
 
265
266
 
266
267
  class TransformResults(Result):
267
268
  def __init__(self, context: Context):
268
269
  super().__init__('transform', 'TRANSFORM', context)
269
- self.named_results = []
270
+ self.child_results = []
270
271
 
271
- def add_result(self, result: TransformResult, name: str = None):
272
- self.named_results.append(NamedTransformResult(result, name))
272
+ def add_result(self, result: ChildTransformResult):
273
+ self.child_results.append(result)
273
274
  return self
274
275
 
275
276
  def get_segment_names(self):
276
277
  segment_names = {}
277
- for named_result in self.named_results:
278
- segment_names.update(named_result.get_segment_names())
278
+ for child_result in self.child_results:
279
+ segment_names.update(child_result.get_segment_names())
279
280
  return segment_names
280
281
 
281
282
  def response(self):
282
283
  transform_events = []
283
- for named_result in self.named_results:
284
- json_dict = named_result.json()
284
+ for child_result in self.child_results:
285
+ json_dict = child_result.json()
285
286
  transform_events.append(json_dict)
286
287
  return transform_events
@@ -74,12 +74,12 @@ class TransformActionTest(ActionTest):
74
74
  self.assert_transform_results(test_case, result)
75
75
 
76
76
  def assert_transform_results(self, test_case: TransformTestCase, result: TransformResults):
77
- assert_equal_len(test_case.results, result.named_results)
78
- for index, named_result in enumerate(result.named_results):
79
- self.compare_one_transform_result(test_case, named_result.result, index)
77
+ assert_equal_len(test_case.results, result.child_results)
78
+ for index, child_result in enumerate(result.child_results):
79
+ self.compare_one_transform_result(test_case, child_result, index)
80
80
  expected = test_case.results[index]
81
81
  if 'name' in expected:
82
- assert_equal_with_label(expected["name"], named_result.name, f"name[{index}]")
82
+ assert_equal_with_label(expected["name"], child_result.delta_file_name, f"name[{index}]")
83
83
 
84
84
  def assert_transform_result(self, test_case: TransformTestCase, result: TransformResult):
85
85
  # Check metrics
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.1
2
2
  Name: deltafi
3
- Version: 2.0rc1730159244116
3
+ Version: 2.0rc1731040010625
4
4
  Summary: SDK for DeltaFi plugins and actions
5
5
  License: Apache License, Version 2.0
6
6
  Keywords: deltafi
@@ -19,13 +19,14 @@ Classifier: Programming Language :: Python :: 3.11
19
19
  Classifier: Programming Language :: Python :: 3.12
20
20
  Classifier: Programming Language :: Python :: 3.13
21
21
  Classifier: Topic :: Software Development
22
+ Requires-Dist: PyYAML (==6.0.2)
22
23
  Requires-Dist: deepdiff (==6.7.1)
23
24
  Requires-Dist: json-logging (==1.3.0)
24
- Requires-Dist: minio (==7.2.7)
25
- Requires-Dist: pydantic (==2.8.2)
26
- Requires-Dist: redis (==5.0.7)
25
+ Requires-Dist: minio (==7.2.10)
26
+ Requires-Dist: pydantic (==2.9.2)
27
+ Requires-Dist: redis (==5.2.0)
27
28
  Requires-Dist: requests (==2.32.3)
28
- Requires-Dist: urllib3 (==2.2.2)
29
+ Requires-Dist: urllib3 (==2.2.3)
29
30
  Project-URL: Bug Reports, https://chat.deltafi.org/deltafi/channels/bug-reports
30
31
  Project-URL: Documentation, https://docs.deltafi.org/#/
31
32
  Project-URL: Source Code, https://gitlab.com/deltafi/deltafi
@@ -2,14 +2,14 @@ deltafi/__init__.py,sha256=sSGWjpvzcCzgLywoEg55z_0satt0g_LPTwNIWtylgF4,709
2
2
  deltafi/action.py,sha256=kuDY7-qcJsiRTB3ZigiYg-XOcNeahnDU3NGSZBy10vM,5753
3
3
  deltafi/actioneventqueue.py,sha256=_05aDeqVpUbGWG3jFf0AalOsVfAvOTn0oBxjpQIQxIs,2847
4
4
  deltafi/actiontype.py,sha256=CpVI0wk9C-eu44e0jYvqBzE6yIX_zfRrW5RCf4ohu4Y,913
5
- deltafi/domain.py,sha256=YIfkxnjIuDXRlEm0MvrKh0CY5KczTZqZiTmnhc7wkOo,12082
5
+ deltafi/domain.py,sha256=wCWqCjWbQ02thAMHYXTuUMHY58QZyyTRkYNZFd3kPPo,12182
6
6
  deltafi/exception.py,sha256=LNNFqc_lA89I-RvnVsbTQ2vnWQ9WZXdQqLwiXwNgc_w,943
7
7
  deltafi/genericmodel.py,sha256=WU8zfqEO_n84CZ0KpH9FhgTsL9jyU0EXSuhL0IdLWFw,1152
8
8
  deltafi/input.py,sha256=ydAhuw68N9qMeacc9YE4U79zRqxWiinZNkm1AxoFBEk,1656
9
9
  deltafi/logger.py,sha256=mKfJTnuupf3sto6hV-SIXajtcP-xTSSdJ2Ufd-lJPTo,2140
10
10
  deltafi/metric.py,sha256=79Gb2C1qYXeQYshgFPu2BcMT5oEb0LhmNfwyulSqsIc,972
11
- deltafi/plugin.py,sha256=FzzUEahdpWzGCULf7qhkfBsxZg4YgHGthq2wg0d2Ajc,14952
12
- deltafi/result.py,sha256=Xv156aM-PgYNB1Y6L-0Wl22YMj46srt88aAXtgc0U74,8957
11
+ deltafi/plugin.py,sha256=7e4wblHAG41UCOZ1RcWjkw-0RJF4_dAksx5b4XCNIU4,15521
12
+ deltafi/result.py,sha256=2mefttQAdvYhsw6IjvouY4L5W1n3s6tP7oJUhLtyyVk,9047
13
13
  deltafi/storage.py,sha256=vCE29Yzk5s7ub4O1PdaxXBKPBQy4OHs7j46z3O5MezE,2979
14
14
  deltafi/test_kit/__init__.py,sha256=sSGWjpvzcCzgLywoEg55z_0satt0g_LPTwNIWtylgF4,709
15
15
  deltafi/test_kit/assertions.py,sha256=MdUXENLn0aDvknMtsnSAb-DwvpzXlMkaYQ6-RRkWG8s,1378
@@ -17,7 +17,7 @@ deltafi/test_kit/compare_helpers.py,sha256=qRINvCQqBUaalT1DG2oz2egSkUjiSOfqKF5U7
17
17
  deltafi/test_kit/constants.py,sha256=Suygx9CEob2Skw4UyzzMCibQ8hRhGHC_d_Xab8AJMFE,833
18
18
  deltafi/test_kit/egress.py,sha256=53SBeJJmphDl-jZdqkC1dKYWZ4ATWlzY02TUt0Sj1zs,1899
19
19
  deltafi/test_kit/framework.py,sha256=g7NRl_KxUFio8aZ1xo1gEBKqL9qquYx9qAyFpPLHsmM,15150
20
- deltafi/test_kit/transform.py,sha256=bnV6kcOkuShi_9uCtzkWcgz-wMejnI9Q2_MbyVm_A7U,4085
21
- deltafi-2.0rc1730159244116.dist-info/METADATA,sha256=lAnrDTockN0RxsLsAZjbkMCicQ85-vZRfAnV9jFBpuA,1497
22
- deltafi-2.0rc1730159244116.dist-info/WHEEL,sha256=Nq82e9rUAnEjt98J6MlVmMCZb-t9cYE2Ir1kpBmnWfs,88
23
- deltafi-2.0rc1730159244116.dist-info/RECORD,,
20
+ deltafi/test_kit/transform.py,sha256=Qj9LIyZ8RYj0tCeq7agrDlEkkgtBR86TNinV9oncTnM,4089
21
+ deltafi-2.0rc1731040010625.dist-info/METADATA,sha256=515J328ll7iZ6v_RfUpNTeOCPkK242WEYZjzekh63FE,1530
22
+ deltafi-2.0rc1731040010625.dist-info/WHEEL,sha256=Nq82e9rUAnEjt98J6MlVmMCZb-t9cYE2Ir1kpBmnWfs,88
23
+ deltafi-2.0rc1731040010625.dist-info/RECORD,,