deltafi 2.0rc1722537245217__tar.gz → 2.0rc1723496726010__tar.gz

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.

Potentially problematic release.


This version of deltafi might be problematic. Click here for more details.

Files changed (23) hide show
  1. {deltafi-2.0rc1722537245217 → deltafi-2.0rc1723496726010}/PKG-INFO +1 -1
  2. {deltafi-2.0rc1722537245217 → deltafi-2.0rc1723496726010}/deltafi/action.py +21 -13
  3. {deltafi-2.0rc1722537245217 → deltafi-2.0rc1723496726010}/deltafi/plugin.py +2 -1
  4. {deltafi-2.0rc1722537245217 → deltafi-2.0rc1723496726010}/pyproject.toml +1 -1
  5. {deltafi-2.0rc1722537245217 → deltafi-2.0rc1723496726010}/README.md +0 -0
  6. {deltafi-2.0rc1722537245217 → deltafi-2.0rc1723496726010}/deltafi/__init__.py +0 -0
  7. {deltafi-2.0rc1722537245217 → deltafi-2.0rc1723496726010}/deltafi/actioneventqueue.py +0 -0
  8. {deltafi-2.0rc1722537245217 → deltafi-2.0rc1723496726010}/deltafi/actiontype.py +0 -0
  9. {deltafi-2.0rc1722537245217 → deltafi-2.0rc1723496726010}/deltafi/domain.py +0 -0
  10. {deltafi-2.0rc1722537245217 → deltafi-2.0rc1723496726010}/deltafi/exception.py +0 -0
  11. {deltafi-2.0rc1722537245217 → deltafi-2.0rc1723496726010}/deltafi/genericmodel.py +0 -0
  12. {deltafi-2.0rc1722537245217 → deltafi-2.0rc1723496726010}/deltafi/input.py +0 -0
  13. {deltafi-2.0rc1722537245217 → deltafi-2.0rc1723496726010}/deltafi/logger.py +0 -0
  14. {deltafi-2.0rc1722537245217 → deltafi-2.0rc1723496726010}/deltafi/metric.py +0 -0
  15. {deltafi-2.0rc1722537245217 → deltafi-2.0rc1723496726010}/deltafi/result.py +0 -0
  16. {deltafi-2.0rc1722537245217 → deltafi-2.0rc1723496726010}/deltafi/storage.py +0 -0
  17. {deltafi-2.0rc1722537245217 → deltafi-2.0rc1723496726010}/deltafi/test_kit/__init__.py +0 -0
  18. {deltafi-2.0rc1722537245217 → deltafi-2.0rc1723496726010}/deltafi/test_kit/assertions.py +0 -0
  19. {deltafi-2.0rc1722537245217 → deltafi-2.0rc1723496726010}/deltafi/test_kit/compare_helpers.py +0 -0
  20. {deltafi-2.0rc1722537245217 → deltafi-2.0rc1723496726010}/deltafi/test_kit/constants.py +0 -0
  21. {deltafi-2.0rc1722537245217 → deltafi-2.0rc1723496726010}/deltafi/test_kit/egress.py +0 -0
  22. {deltafi-2.0rc1722537245217 → deltafi-2.0rc1723496726010}/deltafi/test_kit/framework.py +0 -0
  23. {deltafi-2.0rc1722537245217 → deltafi-2.0rc1723496726010}/deltafi/test_kit/transform.py +0 -0
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.1
2
2
  Name: deltafi
3
- Version: 2.0rc1722537245217
3
+ Version: 2.0rc1723496726010
4
4
  Summary: SDK for DeltaFi plugins and actions
5
5
  License: Apache License, Version 2.0
6
6
  Keywords: deltafi
@@ -27,6 +27,16 @@ from deltafi.result import *
27
27
  from pydantic import BaseModel
28
28
 
29
29
 
30
+ class Join(ABC):
31
+ def join(self, transform_inputs: List[TransformInput]):
32
+ all_content = []
33
+ all_metadata = {}
34
+ for transform_input in transform_inputs:
35
+ all_content += transform_input.content
36
+ all_metadata.update(transform_input.metadata)
37
+ return TransformInput(content=all_content, metadata=all_metadata)
38
+
39
+
30
40
  class Action(ABC):
31
41
  def __init__(self, action_type: ActionType, description: str, valid_result_types: tuple):
32
42
  self.action_type = action_type
@@ -38,7 +48,7 @@ class Action(ABC):
38
48
  def build_input(self, context: Context, delta_file_message: DeltaFileMessage):
39
49
  pass
40
50
 
41
- def join(self, action_inputs: List[Any]):
51
+ def execute_join_action(self, event):
42
52
  raise RuntimeError(f"Join is not supported for {self.__class__.__name__}")
43
53
 
44
54
  @abstractmethod
@@ -49,11 +59,7 @@ class Action(ABC):
49
59
  if event.delta_file_messages is None or not len(event.delta_file_messages):
50
60
  raise RuntimeError(f"Received event with no delta file messages for did {event.context.did}")
51
61
  if event.context.join is not None:
52
- result = self.execute(
53
- event.context,
54
- self.join([self.build_input(event.context, delta_file_message)
55
- for delta_file_message in event.delta_file_messages]),
56
- self.param_class().model_validate(event.params))
62
+ result = self.execute_join_action(event)
57
63
  else:
58
64
  result = self.execute(
59
65
  event.context,
@@ -123,13 +129,15 @@ class TransformAction(Action, ABC):
123
129
  def build_input(self, context: Context, delta_file_message: DeltaFileMessage):
124
130
  return TransformInput(content=delta_file_message.content_list, metadata=delta_file_message.metadata)
125
131
 
126
- def join(self, transform_inputs: List[TransformInput]):
127
- all_content = []
128
- all_metadata = {}
129
- for transform_input in transform_inputs:
130
- all_content += transform_input.content
131
- all_metadata.update(transform_input.metadata)
132
- return TransformInput(content=all_content, metadata=all_metadata)
132
+ def execute_join_action(self, event):
133
+ if (isinstance(self, Join)):
134
+ return self.execute(
135
+ event.context,
136
+ self.join([self.build_input(event.context, delta_file_message)
137
+ for delta_file_message in event.delta_file_messages]),
138
+ self.param_class().model_validate(event.params))
139
+ else:
140
+ super().execute_join_action(event)
133
141
 
134
142
  @abstractmethod
135
143
  def transform(self, context: Context, params: BaseModel, transform_input: TransformInput):
@@ -38,7 +38,7 @@ from deltafi.exception import ExpectedContentException, MissingMetadataException
38
38
  from deltafi.logger import get_logger
39
39
  from deltafi.result import ErrorResult
40
40
  from deltafi.storage import ContentService
41
- from deltafi.action import Action
41
+ from deltafi.action import Action, Join
42
42
 
43
43
 
44
44
  def _coordinates():
@@ -164,6 +164,7 @@ class Plugin(object):
164
164
  'name': self.action_name(action),
165
165
  'description': action.description,
166
166
  'type': action.action_type.name,
167
+ 'supportsJoin': isinstance(action, Join),
167
168
  'schema': action.param_class().model_json_schema()
168
169
  }
169
170
 
@@ -1,6 +1,6 @@
1
1
  [tool.poetry]
2
2
  name = "deltafi"
3
- version = "2.0rc1722537245217"
3
+ version = "2.0rc1723496726010"
4
4
  description = "SDK for DeltaFi plugins and actions"
5
5
  authors = ["DeltaFi <deltafi@systolic.com>"]
6
6
  license = "Apache License, Version 2.0"