Skip to content

Commit 55bfed8

Browse files
authored
Merge pull request #11 from antmendoza/type_hydration
fields hydration
2 parents 3588b61 + 6e45877 commit 55bfed8

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

63 files changed

+1253
-1257
lines changed

serverlessworkflow/sdk/action.py

Lines changed: 29 additions & 26 deletions
Original file line numberDiff line numberDiff line change
@@ -1,57 +1,60 @@
1-
from typing import Union
1+
from __future__ import annotations
2+
3+
import copy
24

35
from serverlessworkflow.sdk.action_data_filter import ActionDataFilter
46
from serverlessworkflow.sdk.event_ref import EventRef
57
from serverlessworkflow.sdk.function_ref import FunctionRef
8+
from serverlessworkflow.sdk.hydration import ComplexTypeOf, UnionTypeOf, SimpleTypeOf, HydratableParameter, \
9+
Fields
610
from serverlessworkflow.sdk.sleep import Sleep
711
from serverlessworkflow.sdk.sub_flow_ref import SubFlowRef
812

913

1014
class Action:
1115
id: str = None
1216
name: str = None
13-
functionRef: Union[str, FunctionRef] = None
17+
functionRef: (str | FunctionRef) = None
1418
eventRef: EventRef = None
15-
subFlowRef: Union[str, SubFlowRef] = None
19+
subFlowRef: (str | SubFlowRef) = None
1620
sleep: Sleep = None
1721
retryRef: str = None
1822
nonRetryableErrors: [str] = None
1923
retryableErrors: [str] = None
2024
actionDataFilter: ActionDataFilter = None
2125
condition: str = None
26+
jespin: str = None
2227

2328
def __init__(self,
2429
id: str = None,
2530
name: str = None,
26-
functionRef: Union[str, FunctionRef] = None,
31+
functionRef: (str | FunctionRef) = None,
2732
eventRef: EventRef = None,
28-
subFlowRef: Union[str, SubFlowRef] = None,
33+
subFlowRef: (str | SubFlowRef) = None,
2934
sleep: Sleep = None,
3035
retryRef: str = None,
3136
nonRetryableErrors: [str] = None,
3237
retryableErrors: [str] = None,
3338
actionDataFilter: ActionDataFilter = None,
3439
condition: str = None,
40+
eslavida: str = None,
3541
**kwargs):
3642

37-
# duplicated
38-
for local in list(locals()):
39-
if local in ["self", "kwargs"]:
40-
continue
41-
value = locals().get(local)
42-
if not value:
43-
continue
44-
if value == "true":
45-
value = True
46-
# duplicated
47-
48-
self.__setattr__(local.replace("_", ""), value)
49-
50-
# duplicated
51-
for k in kwargs.keys():
52-
value = kwargs[k]
53-
if value == "true":
54-
value = True
55-
56-
self.__setattr__(k.replace("_", ""), value)
57-
# duplicated
43+
Fields(locals(), kwargs, Action.f_hydration).set_to_object(self)
44+
45+
@staticmethod
46+
def f_hydration(p_key, p_value):
47+
48+
parameter = HydratableParameter(value=p_value)
49+
if p_key == 'functionRef':
50+
return parameter.hydrateAs(UnionTypeOf([SimpleTypeOf(str), ComplexTypeOf(FunctionRef)]))
51+
if p_key == 'eventRef':
52+
return parameter.hydrateAs(ComplexTypeOf(EventRef))
53+
if p_key == 'subFlowRef':
54+
return parameter.hydrateAs(UnionTypeOf([SimpleTypeOf(str), ComplexTypeOf(SubFlowRef)]))
55+
if p_key == 'sleep':
56+
return parameter.hydrateAs(ComplexTypeOf(Sleep))
57+
if p_key == 'actionDataFilter':
58+
return parameter.hydrateAs(ComplexTypeOf(ActionDataFilter))
59+
60+
return copy.deepcopy(p_value)
Lines changed: 4 additions & 22 deletions
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,6 @@
1+
from serverlessworkflow.sdk.hydration import Fields
2+
3+
14
class ActionDataFilter:
25
fromStateData: str = None
36
useResults: bool = None
@@ -10,25 +13,4 @@ def __init__(self,
1013
results: str = None,
1114
toStateData: str = None,
1215
**kwargs):
13-
14-
# duplicated
15-
for local in list(locals()):
16-
if local in ["self", "kwargs"]:
17-
continue
18-
value = locals().get(local)
19-
if not value:
20-
continue
21-
if value == "true":
22-
value = True
23-
# duplicated
24-
25-
self.__setattr__(local.replace("_", ""), value)
26-
27-
# duplicated
28-
for k in kwargs.keys():
29-
value = kwargs[k]
30-
if value == "true":
31-
value = True
32-
33-
self.__setattr__(k.replace("_", ""), value)
34-
# duplicated
16+
Fields(locals(), kwargs, Fields.default_hydration).set_to_object(self)

serverlessworkflow/sdk/auth_def.py

Lines changed: 23 additions & 33 deletions
Original file line numberDiff line numberDiff line change
@@ -1,46 +1,36 @@
1-
from enum import Enum
2-
from typing import Union
1+
from __future__ import annotations
2+
3+
import copy
34

45
from serverlessworkflow.sdk.basic_props_def import BasicPropsDef
56
from serverlessworkflow.sdk.bearer_props_def import BearerPropsDef
7+
from serverlessworkflow.sdk.hydration import Fields
68
from serverlessworkflow.sdk.oauth2props_def import Oauth2PropsDef
79

810

9-
class Scheme(Enum):
10-
BASIC = "basic"
11-
BEARER = "bearer"
12-
OAUTH2 = "oauth2"
13-
14-
1511
class AuthDef:
1612
name: str = None
17-
scheme: Scheme = None
18-
properties: Union[str, Union[BasicPropsDef, BearerPropsDef, Oauth2PropsDef]] = None
13+
scheme: str = None
14+
properties: (str | (BasicPropsDef | BearerPropsDef | Oauth2PropsDef)) = None
1915

2016
def __init__(self,
2117
name: str = None,
22-
scheme: Scheme = None,
23-
properties: Union[str, Union[BasicPropsDef, BearerPropsDef, Oauth2PropsDef]] = None,
18+
scheme: str = None,
19+
properties: (str | (BasicPropsDef | BearerPropsDef | Oauth2PropsDef)) = None,
2420
**kwargs):
21+
Fields(locals(), kwargs, Fields.f_hydration).set_to_object(self)
22+
23+
@staticmethod
24+
def f_hydration(p_key, p_value):
25+
26+
result = copy.deepcopy(p_value)
27+
28+
if p_key == 'properties':
29+
if p_value["username"] and p_value["password"]:
30+
return BasicPropsDef(p_value);
31+
if p_value["token"]:
32+
return BearerPropsDef(p_value);
33+
if p_value["grantType"]:
34+
return Oauth2PropsDef(p_value);
2535

26-
# duplicated
27-
for local in list(locals()):
28-
if local in ["self", "kwargs"]:
29-
continue
30-
value = locals().get(local)
31-
if not value:
32-
continue
33-
if value == "true":
34-
value = True
35-
# duplicated
36-
37-
self.__setattr__(local.replace("_", ""), value)
38-
39-
# duplicated
40-
for k in kwargs.keys():
41-
value = kwargs[k]
42-
if value == "true":
43-
value = True
44-
45-
self.__setattr__(k.replace("_", ""), value)
46-
# duplicated
36+
return result
Lines changed: 2 additions & 22 deletions
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,4 @@
1+
from serverlessworkflow.sdk.hydration import Fields
12
from serverlessworkflow.sdk.metadata import Metadata
23

34

@@ -11,25 +12,4 @@ def __init__(self,
1112
password: str = None,
1213
metadata: Metadata = None,
1314
**kwargs):
14-
15-
# duplicated
16-
for local in list(locals()):
17-
if local in ["self", "kwargs"]:
18-
continue
19-
value = locals().get(local)
20-
if not value:
21-
continue
22-
if value == "true":
23-
value = True
24-
# duplicated
25-
26-
self.__setattr__(local.replace("_", ""), value)
27-
28-
# duplicated
29-
for k in kwargs.keys():
30-
value = kwargs[k]
31-
if value == "true":
32-
value = True
33-
34-
self.__setattr__(k.replace("_", ""), value)
35-
# duplicated
15+
Fields(locals(), kwargs, Fields.default_hydration).set_to_object(self)
Lines changed: 2 additions & 22 deletions
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,4 @@
1+
from serverlessworkflow.sdk.hydration import Fields
12
from serverlessworkflow.sdk.metadata import Metadata
23

34

@@ -9,25 +10,4 @@ def __init__(self,
910
token: str = None,
1011
metadata: Metadata = None,
1112
**kwargs):
12-
13-
# duplicated
14-
for local in list(locals()):
15-
if local in ["self", "kwargs"]:
16-
continue
17-
value = locals().get(local)
18-
if not value:
19-
continue
20-
if value == "true":
21-
value = True
22-
# duplicated
23-
24-
self.__setattr__(local.replace("_", ""), value)
25-
26-
# duplicated
27-
for k in kwargs.keys():
28-
value = kwargs[k]
29-
if value == "true":
30-
value = True
31-
32-
self.__setattr__(k.replace("_", ""), value)
33-
# duplicated
13+
Fields(locals(), kwargs, Fields.default_hydration).set_to_object(self)

serverlessworkflow/sdk/branch.py

Lines changed: 14 additions & 21 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,8 @@
1+
import copy
2+
13
from serverlessworkflow.sdk.action import Action
24
from serverlessworkflow.sdk.branch_timeout import BranchTimeOut
5+
from serverlessworkflow.sdk.hydration import ArrayTypeOf, ComplexTypeOf, HydratableParameter, Fields
36

47

58
class Branch:
@@ -12,25 +15,15 @@ def __init__(self,
1215
timeouts: BranchTimeOut = None,
1316
actions: [Action] = None,
1417
**kwargs):
18+
Fields(locals(), kwargs, Branch.f_hydration).set_to_object(self)
19+
20+
@staticmethod
21+
def f_hydration(p_key, p_value):
22+
23+
if p_key == 'timeouts':
24+
return HydratableParameter(value=p_value).hydrateAs(ComplexTypeOf(BranchTimeOut))
25+
26+
if p_key == 'actions':
27+
return HydratableParameter(value=p_value).hydrateAs(ArrayTypeOf(Action))
1528

16-
# duplicated
17-
for local in list(locals()):
18-
if local in ["self", "kwargs"]:
19-
continue
20-
value = locals().get(local)
21-
if not value:
22-
continue
23-
if value == "true":
24-
value = True
25-
# duplicated
26-
27-
self.__setattr__(local.replace("_", ""), value)
28-
29-
# duplicated
30-
for k in kwargs.keys():
31-
value = kwargs[k]
32-
if value == "true":
33-
value = True
34-
35-
self.__setattr__(k.replace("_", ""), value)
36-
# duplicated
29+
return copy.deepcopy(p_value)
Lines changed: 9 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,12 @@
1+
from serverlessworkflow.sdk.hydration import Fields
2+
3+
14
class BranchTimeOut:
25
actionExecTimeOut: str = None # ActionExecTimeOut
36
branchExecTimeOut: str = None # BranchExecTimeOut
7+
8+
def __init__(self,
9+
actionExecTimeOut: str = None,
10+
branchExecTimeOut: str = None,
11+
**kwargs):
12+
Fields(locals(), kwargs, Fields.default_hydration).set_to_object(self)

0 commit comments

Comments
 (0)
pFad - Phonifier reborn

Pfad - The Proxy pFad of © 2024 Garber Painting. All rights reserved.

Note: This service is not intended for secure transactions such as banking, social media, email, or purchasing. Use at your own risk. We assume no liability whatsoever for broken pages.


Alternative Proxies:

Alternative Proxy

pFad Proxy

pFad v3 Proxy

pFad v4 Proxy