automizor 0.4.11__py3-none-any.whl → 0.4.13__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.
- automizor/__init__.py +1 -1
- automizor/action/__init__.py +38 -0
- automizor/action/_action.py +91 -0
- automizor/storage/_storage.py +9 -9
- automizor/vault/_vault.py +3 -3
- automizor/workflow/__init__.py +1 -1
- automizor/workflow/_workflow.py +3 -3
- {automizor-0.4.11.dist-info → automizor-0.4.13.dist-info}/METADATA +1 -1
- automizor-0.4.13.dist-info/RECORD +24 -0
- {automizor-0.4.11.dist-info → automizor-0.4.13.dist-info}/WHEEL +1 -1
- automizor-0.4.11.dist-info/RECORD +0 -22
- /automizor/{utils/__init__.py → utils.py} +0 -0
- {automizor-0.4.11.dist-info → automizor-0.4.13.dist-info}/LICENSE +0 -0
- {automizor-0.4.11.dist-info → automizor-0.4.13.dist-info}/top_level.txt +0 -0
automizor/__init__.py
CHANGED
@@ -1 +1 @@
|
|
1
|
-
version = "0.4.
|
1
|
+
version = "0.4.13"
|
@@ -0,0 +1,38 @@
|
|
1
|
+
import json
|
2
|
+
from typing import Optional
|
3
|
+
|
4
|
+
from automizor.utils import JSON
|
5
|
+
|
6
|
+
from ._action import Action
|
7
|
+
|
8
|
+
|
9
|
+
def configure(api_token: str):
|
10
|
+
"""
|
11
|
+
Configures the Action instance with the provided API token.
|
12
|
+
"""
|
13
|
+
Action.configure(api_token)
|
14
|
+
|
15
|
+
|
16
|
+
def run(
|
17
|
+
name: str,
|
18
|
+
workspace: str,
|
19
|
+
data: Optional[JSON] = None,
|
20
|
+
) -> JSON:
|
21
|
+
"""
|
22
|
+
Runs an action using the specified action and workspace name.
|
23
|
+
|
24
|
+
Parameters:
|
25
|
+
name: The name of the action.
|
26
|
+
workspace: The workspace name to which the action belongs.
|
27
|
+
data: Optional action payload data.
|
28
|
+
"""
|
29
|
+
payload = json.dumps(data or {}).encode("utf-8")
|
30
|
+
|
31
|
+
action = Action.get_instance()
|
32
|
+
return action.run(name, workspace, payload)
|
33
|
+
|
34
|
+
|
35
|
+
__all__ = [
|
36
|
+
"configure",
|
37
|
+
"run",
|
38
|
+
]
|
@@ -0,0 +1,91 @@
|
|
1
|
+
from typing import Optional
|
2
|
+
|
3
|
+
import requests
|
4
|
+
|
5
|
+
from automizor.exceptions import AutomizorError
|
6
|
+
from automizor.utils import JSON, get_api_config, get_headers
|
7
|
+
|
8
|
+
|
9
|
+
class Action:
|
10
|
+
"""
|
11
|
+
The `Action` class is designed to interact with the `Automizor Platform` to run
|
12
|
+
action based on specified action name and for a workspaces.
|
13
|
+
|
14
|
+
This class uses environment variables for configuration, particularly to retrieve the
|
15
|
+
API host and API token, which are essential for authenticating requests to the
|
16
|
+
`Automizor Action API`. These variables are typically configured by the `Automizor Agent`.
|
17
|
+
|
18
|
+
Required environment variable:
|
19
|
+
- ``AUTOMIZOR_AGENT_TOKEN``: The token used for authenticating API requests.
|
20
|
+
|
21
|
+
Example usage:
|
22
|
+
|
23
|
+
.. code-block:: python
|
24
|
+
|
25
|
+
from automizor import action
|
26
|
+
|
27
|
+
# Run an action by name
|
28
|
+
action.run("action_name", "workspace_name")
|
29
|
+
action.run("action_name", "workspace_name", {"name": "John Doe"})
|
30
|
+
"""
|
31
|
+
|
32
|
+
_instance = None
|
33
|
+
|
34
|
+
def __init__(self, api_token: Optional[str] = None):
|
35
|
+
self.url, self.token = get_api_config(api_token)
|
36
|
+
self.headers = get_headers(self.token)
|
37
|
+
|
38
|
+
@classmethod
|
39
|
+
def configure(cls, api_token: Optional[str] = None):
|
40
|
+
cls._instance = cls(api_token)
|
41
|
+
|
42
|
+
@classmethod
|
43
|
+
def get_instance(cls):
|
44
|
+
if cls._instance is None:
|
45
|
+
cls.configure()
|
46
|
+
return cls._instance
|
47
|
+
|
48
|
+
def run(
|
49
|
+
self,
|
50
|
+
name: str,
|
51
|
+
workspace: str,
|
52
|
+
payload: Optional[bytes],
|
53
|
+
) -> JSON:
|
54
|
+
"""
|
55
|
+
Runs an action using the specified action and workspace name.
|
56
|
+
|
57
|
+
Parameters:
|
58
|
+
name: The name of the action.
|
59
|
+
workspace: The workspace name to which the action belongs.
|
60
|
+
payload: Optional json payload in bytes.
|
61
|
+
"""
|
62
|
+
return self._execute_action(name, workspace, payload)
|
63
|
+
|
64
|
+
def _execute_action(
|
65
|
+
self,
|
66
|
+
name: str,
|
67
|
+
workspace: str,
|
68
|
+
payload: Optional[bytes],
|
69
|
+
) -> JSON:
|
70
|
+
"""
|
71
|
+
Executes an action by action and workspace name.
|
72
|
+
|
73
|
+
Parameters:
|
74
|
+
name: The name of the action.
|
75
|
+
workspace: The workspace name to which the action belongs.
|
76
|
+
payload: Optional json payload in bytes.
|
77
|
+
|
78
|
+
Raises:
|
79
|
+
AutomizorError: If there is an error executing the action.
|
80
|
+
"""
|
81
|
+
url = f"https://{self.url}/api/v2/action/{name}/execute?workspace={workspace}"
|
82
|
+
try:
|
83
|
+
response = requests.put(url, headers=self.headers, data=payload, timeout=10)
|
84
|
+
response.raise_for_status()
|
85
|
+
return response.json()
|
86
|
+
except requests.HTTPError as exc:
|
87
|
+
raise AutomizorError.from_response(
|
88
|
+
exc.response, "Failed to execute action"
|
89
|
+
) from exc
|
90
|
+
except Exception as exc:
|
91
|
+
raise AutomizorError(f"Failed to execute action: {exc}") from exc
|
automizor/storage/_storage.py
CHANGED
@@ -33,19 +33,19 @@ class Storage:
|
|
33
33
|
asset_names = storage.list_assets()
|
34
34
|
|
35
35
|
# To delete an asset
|
36
|
-
storage.delete_asset("
|
36
|
+
storage.delete_asset("asset_name")
|
37
37
|
|
38
38
|
# Save an asset
|
39
|
-
storage.set_bytes("
|
40
|
-
storage.set_file("
|
41
|
-
storage.set_json("
|
42
|
-
storage.set_text("
|
39
|
+
storage.set_bytes("asset_name", b"Hello, World!")
|
40
|
+
storage.set_file("asset_name", "/path/to/file")
|
41
|
+
storage.set_json("asset_name", {"key": "value"})
|
42
|
+
storage.set_text("asset_name", "Hello, World!")
|
43
43
|
|
44
44
|
# Get an asset
|
45
|
-
bytes_data = storage.get_bytes("
|
46
|
-
file_path = storage.get_file("
|
47
|
-
json_data = storage.get_json("
|
48
|
-
text_data = storage.get_text("
|
45
|
+
bytes_data = storage.get_bytes("asset_name")
|
46
|
+
file_path = storage.get_file("asset_name", "/path/to/save/file")
|
47
|
+
json_data = storage.get_json("asset_name")
|
48
|
+
text_data = storage.get_text("asset_name")
|
49
49
|
"""
|
50
50
|
|
51
51
|
_instance = None
|
automizor/vault/_vault.py
CHANGED
@@ -30,15 +30,15 @@ class Vault:
|
|
30
30
|
from automizor import vault
|
31
31
|
|
32
32
|
# Create a new secret
|
33
|
-
vault.create_secret(
|
33
|
+
vault.create_secret("my_secret", {"username": "admin", "password": "*****"})
|
34
34
|
|
35
35
|
# Retrieve a secret by its name
|
36
|
-
secret = vault.get_secret("
|
36
|
+
secret = vault.get_secret("my_secret")
|
37
37
|
print(secret.get("username")) # Output: "admin"
|
38
38
|
print(secret.get("password")) # Output: "*****"
|
39
39
|
|
40
40
|
# Update a existing secret
|
41
|
-
secret = vault.get_secret("
|
41
|
+
secret = vault.get_secret("my_secret")
|
42
42
|
secret.update({"username": "user"})
|
43
43
|
vault.set_secret(secret)
|
44
44
|
"""
|
automizor/workflow/__init__.py
CHANGED
@@ -28,7 +28,7 @@ def start_by_name(
|
|
28
28
|
business_key: An optional business identifier.
|
29
29
|
data: Optional initial instance data.
|
30
30
|
"""
|
31
|
-
payload = json.dumps(data).encode("utf-8")
|
31
|
+
payload = json.dumps(data or {}).encode("utf-8")
|
32
32
|
|
33
33
|
workflow = Workflow.get_instance()
|
34
34
|
workflow.start_by_name(process_model, workspace, business_key, payload)
|
automizor/workflow/_workflow.py
CHANGED
@@ -26,9 +26,9 @@ class Workflow:
|
|
26
26
|
from automizor import workflow
|
27
27
|
|
28
28
|
# Start a workflow instance by name
|
29
|
-
workflow.start_by_name("
|
30
|
-
workflow.start_by_name("
|
31
|
-
workflow.start_by_name("
|
29
|
+
workflow.start_by_name("model_name", "workspace_name")
|
30
|
+
workflow.start_by_name("model_name", "workspace_name", "BusinessKey")
|
31
|
+
workflow.start_by_name("model_name", "workspace_name", "BusinessKey", {"initial": "data"})
|
32
32
|
"""
|
33
33
|
|
34
34
|
_instance = None
|
@@ -0,0 +1,24 @@
|
|
1
|
+
automizor/__init__.py,sha256=WRkFcZ9CwsiCl4SzZtaRPZi39RXgDOUfpS45qNm-KHo,19
|
2
|
+
automizor/exceptions.py,sha256=P5imySIOtG3ZIk2kh41Yod4RnlgTj7Vf0P3M-RuxQJs,1382
|
3
|
+
automizor/utils.py,sha256=UDYuSERa3IrS_1NreBTNBYf6j25ga2AiwRdq0c3kfvM,965
|
4
|
+
automizor/action/__init__.py,sha256=nZinP2WYc8Da3rxE10Ul0V31GbEFXRgCYXtBOQ-0LwQ,767
|
5
|
+
automizor/action/_action.py,sha256=Izouw7POKb-FatejTtHQ4EV16hwBu-7uGkzlqNi82VM,2897
|
6
|
+
automizor/datastore/__init__.py,sha256=_rAdRfKnTa4SuSLl9GkAYziBPPLsy6yGfS0HprgokOk,2418
|
7
|
+
automizor/datastore/_container.py,sha256=rHRkSWaRgy2rk6Qy-7ADFKvuET_COZ2i9VD7gvRDnlM,745
|
8
|
+
automizor/datastore/_datastore.py,sha256=Tv0vRjIyeUfVy3V8pcZVN1dX7q7v8JbJ9L3SCIxX8aM,3396
|
9
|
+
automizor/job/__init__.py,sha256=pDqSfR4lAyJNCi-fpG6byUPidHz8sntBs0bB2lJFVAY,1118
|
10
|
+
automizor/job/_job.py,sha256=XJX9Q7GeOErb7U9Wb01Wv1twIlBqNnJePb0Epc8NdTs,5440
|
11
|
+
automizor/log/__init__.py,sha256=gEr2SuwN1FgX1NMnbphjg8_gfSic9L15H3WC868A-TQ,2104
|
12
|
+
automizor/log/_log.py,sha256=P9jAFXVANs5bAGH6-S0pzuSbRKEcX8VlQ_3uu690awE,2948
|
13
|
+
automizor/storage/__init__.py,sha256=vCez0LucHQeRZDfX5xZulxf06i3ezVyFl4vL3-EYXXU,4160
|
14
|
+
automizor/storage/_storage.py,sha256=x5gPxGkzQe21wDDnCLtmVWU0g9JeklPu9iIYVlPDRnk,11381
|
15
|
+
automizor/vault/__init__.py,sha256=21Ag2zQk7x27Bh0yt_kSO2MkgT3eafbdlKe0NuQEqr8,1796
|
16
|
+
automizor/vault/_container.py,sha256=-2y7kASigoIVAebuQBk-0R_sI4gfmvjsMLuMg_tR1xA,1945
|
17
|
+
automizor/vault/_vault.py,sha256=pXS1Qcltjh48n9R0NX4q7PSpXT_XFjifRy9Hu4aQnUQ,5104
|
18
|
+
automizor/workflow/__init__.py,sha256=J1K_ogAvbeREPbAmVxsAI1SOVHi_5DXnO9JuEKOMdt8,958
|
19
|
+
automizor/workflow/_workflow.py,sha256=XhcDNBmORdqErj25sO1yb2koKObAFXVkgXrV7xx3EtI,3567
|
20
|
+
automizor-0.4.13.dist-info/LICENSE,sha256=z8d0m5b2O9McPEK1xHG_dWgUBT6EfBDz6wA0F7xSPTA,11358
|
21
|
+
automizor-0.4.13.dist-info/METADATA,sha256=uNxV7jylzE0xrRauW-vEdpmt7Yzn2zfesnXGXoqhpAs,669
|
22
|
+
automizor-0.4.13.dist-info/WHEEL,sha256=P9jw-gEje8ByB7_hXoICnHtVCrEwMQh-630tKvQWehc,91
|
23
|
+
automizor-0.4.13.dist-info/top_level.txt,sha256=gScDy4I3tP6BMYAsTAlBXrxVh3E00zV0UioxwXJOI3Y,10
|
24
|
+
automizor-0.4.13.dist-info/RECORD,,
|
@@ -1,22 +0,0 @@
|
|
1
|
-
automizor/__init__.py,sha256=BgTmI_pMMS3dXctT_oRAuEr_Pn2I3qHQCFooYZOzQ1Q,19
|
2
|
-
automizor/exceptions.py,sha256=P5imySIOtG3ZIk2kh41Yod4RnlgTj7Vf0P3M-RuxQJs,1382
|
3
|
-
automizor/datastore/__init__.py,sha256=_rAdRfKnTa4SuSLl9GkAYziBPPLsy6yGfS0HprgokOk,2418
|
4
|
-
automizor/datastore/_container.py,sha256=rHRkSWaRgy2rk6Qy-7ADFKvuET_COZ2i9VD7gvRDnlM,745
|
5
|
-
automizor/datastore/_datastore.py,sha256=Tv0vRjIyeUfVy3V8pcZVN1dX7q7v8JbJ9L3SCIxX8aM,3396
|
6
|
-
automizor/job/__init__.py,sha256=pDqSfR4lAyJNCi-fpG6byUPidHz8sntBs0bB2lJFVAY,1118
|
7
|
-
automizor/job/_job.py,sha256=XJX9Q7GeOErb7U9Wb01Wv1twIlBqNnJePb0Epc8NdTs,5440
|
8
|
-
automizor/log/__init__.py,sha256=gEr2SuwN1FgX1NMnbphjg8_gfSic9L15H3WC868A-TQ,2104
|
9
|
-
automizor/log/_log.py,sha256=P9jAFXVANs5bAGH6-S0pzuSbRKEcX8VlQ_3uu690awE,2948
|
10
|
-
automizor/storage/__init__.py,sha256=vCez0LucHQeRZDfX5xZulxf06i3ezVyFl4vL3-EYXXU,4160
|
11
|
-
automizor/storage/_storage.py,sha256=VPIahpIjCBU7pT-2qvleWcYOMWoffR_x3XUk6nGzUmI,11372
|
12
|
-
automizor/utils/__init__.py,sha256=UDYuSERa3IrS_1NreBTNBYf6j25ga2AiwRdq0c3kfvM,965
|
13
|
-
automizor/vault/__init__.py,sha256=21Ag2zQk7x27Bh0yt_kSO2MkgT3eafbdlKe0NuQEqr8,1796
|
14
|
-
automizor/vault/_container.py,sha256=-2y7kASigoIVAebuQBk-0R_sI4gfmvjsMLuMg_tR1xA,1945
|
15
|
-
automizor/vault/_vault.py,sha256=n_ZgzSOdG0nTFnO8J3D69fgmcsRPRwmSDd5fvn2ZkUI,5112
|
16
|
-
automizor/workflow/__init__.py,sha256=rfaqZojz35cEPN4WnqlvG_G9xzMDUDZIfwib17AQLQw,952
|
17
|
-
automizor/workflow/_workflow.py,sha256=l4kb-eMdBpewa0inmseQMREorImjY829dDLA3DzCC7c,3561
|
18
|
-
automizor-0.4.11.dist-info/LICENSE,sha256=z8d0m5b2O9McPEK1xHG_dWgUBT6EfBDz6wA0F7xSPTA,11358
|
19
|
-
automizor-0.4.11.dist-info/METADATA,sha256=WKjbnfWNrOW_QZ_mrVdD0baRkmhZM9uTB0MnGBPwYcQ,669
|
20
|
-
automizor-0.4.11.dist-info/WHEEL,sha256=OVMc5UfuAQiSplgO0_WdW7vXVGAt9Hdd6qtN4HotdyA,91
|
21
|
-
automizor-0.4.11.dist-info/top_level.txt,sha256=gScDy4I3tP6BMYAsTAlBXrxVh3E00zV0UioxwXJOI3Y,10
|
22
|
-
automizor-0.4.11.dist-info/RECORD,,
|
File without changes
|
File without changes
|
File without changes
|