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 CHANGED
@@ -1 +1 @@
1
- version = "0.4.11"
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
@@ -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("AssetName")
36
+ storage.delete_asset("asset_name")
37
37
 
38
38
  # Save an asset
39
- storage.set_bytes("AssetName", b"Hello, World!")
40
- storage.set_file("AssetName", "/path/to/file")
41
- storage.set_json("AssetName", {"key": "value"})
42
- storage.set_text("AssetName", "Hello, World!")
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("AssetName")
46
- file_path = storage.get_file("AssetName", "/path/to/save/file")
47
- json_data = storage.get_json("AssetName")
48
- text_data = storage.get_text("AssetName")
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(name="MySecret", value={"username": "admin", "password": "*****"})
33
+ vault.create_secret("my_secret", {"username": "admin", "password": "*****"})
34
34
 
35
35
  # Retrieve a secret by its name
36
- secret = vault.get_secret("MySecret")
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("MySecret")
41
+ secret = vault.get_secret("my_secret")
42
42
  secret.update({"username": "user"})
43
43
  vault.set_secret(secret)
44
44
  """
@@ -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)
@@ -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("ModelName", "WorkspaceName")
30
- workflow.start_by_name("ModelName", "WorkspaceName", "BusinessKey")
31
- workflow.start_by_name("ModelName", "WorkspaceName", "BusinessKey", {"initial": "data"})
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
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.1
2
2
  Name: automizor
3
- Version: 0.4.11
3
+ Version: 0.4.13
4
4
  Summary: Python Automizor framework
5
5
  Home-page: https://github.com/automizor/automizor-python
6
6
  Author: Christian Fischer
@@ -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,5 +1,5 @@
1
1
  Wheel-Version: 1.0
2
- Generator: setuptools (75.2.0)
2
+ Generator: setuptools (75.3.0)
3
3
  Root-Is-Purelib: true
4
4
  Tag: py3-none-any
5
5
 
@@ -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