hatchet-sdk 1.18.1__py3-none-any.whl → 1.20.0__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.

Potentially problematic release.


This version of hatchet-sdk might be problematic. Click here for more details.

Files changed (234) hide show
  1. hatchet_sdk/clients/dispatcher/action_listener.py +0 -1
  2. hatchet_sdk/clients/dispatcher/dispatcher.py +0 -30
  3. hatchet_sdk/hatchet.py +0 -20
  4. hatchet_sdk/opentelemetry/instrumentor.py +1 -27
  5. hatchet_sdk/runnables/action.py +2 -5
  6. hatchet_sdk/runnables/task.py +0 -1
  7. hatchet_sdk/utils/opentelemetry.py +0 -1
  8. hatchet_sdk/worker/action_listener_process.py +0 -29
  9. hatchet_sdk/worker/runner/runner.py +1 -105
  10. {hatchet_sdk-1.18.1.dist-info → hatchet_sdk-1.20.0.dist-info}/METADATA +2 -3
  11. {hatchet_sdk-1.18.1.dist-info → hatchet_sdk-1.20.0.dist-info}/RECORD +13 -234
  12. hatchet_sdk/v0/__init__.py +0 -251
  13. hatchet_sdk/v0/client.py +0 -119
  14. hatchet_sdk/v0/clients/admin.py +0 -541
  15. hatchet_sdk/v0/clients/dispatcher/action_listener.py +0 -422
  16. hatchet_sdk/v0/clients/dispatcher/dispatcher.py +0 -204
  17. hatchet_sdk/v0/clients/event_ts.py +0 -28
  18. hatchet_sdk/v0/clients/events.py +0 -182
  19. hatchet_sdk/v0/clients/rest/__init__.py +0 -307
  20. hatchet_sdk/v0/clients/rest/api/__init__.py +0 -19
  21. hatchet_sdk/v0/clients/rest/api/api_token_api.py +0 -858
  22. hatchet_sdk/v0/clients/rest/api/default_api.py +0 -2259
  23. hatchet_sdk/v0/clients/rest/api/event_api.py +0 -2548
  24. hatchet_sdk/v0/clients/rest/api/github_api.py +0 -331
  25. hatchet_sdk/v0/clients/rest/api/healthcheck_api.py +0 -483
  26. hatchet_sdk/v0/clients/rest/api/log_api.py +0 -449
  27. hatchet_sdk/v0/clients/rest/api/metadata_api.py +0 -728
  28. hatchet_sdk/v0/clients/rest/api/rate_limits_api.py +0 -423
  29. hatchet_sdk/v0/clients/rest/api/slack_api.py +0 -577
  30. hatchet_sdk/v0/clients/rest/api/sns_api.py +0 -872
  31. hatchet_sdk/v0/clients/rest/api/step_run_api.py +0 -2202
  32. hatchet_sdk/v0/clients/rest/api/tenant_api.py +0 -4430
  33. hatchet_sdk/v0/clients/rest/api/user_api.py +0 -2888
  34. hatchet_sdk/v0/clients/rest/api/worker_api.py +0 -858
  35. hatchet_sdk/v0/clients/rest/api/workflow_api.py +0 -6312
  36. hatchet_sdk/v0/clients/rest/api/workflow_run_api.py +0 -1932
  37. hatchet_sdk/v0/clients/rest/api/workflow_runs_api.py +0 -610
  38. hatchet_sdk/v0/clients/rest/api_client.py +0 -759
  39. hatchet_sdk/v0/clients/rest/api_response.py +0 -22
  40. hatchet_sdk/v0/clients/rest/configuration.py +0 -611
  41. hatchet_sdk/v0/clients/rest/exceptions.py +0 -200
  42. hatchet_sdk/v0/clients/rest/models/__init__.py +0 -274
  43. hatchet_sdk/v0/clients/rest/models/accept_invite_request.py +0 -83
  44. hatchet_sdk/v0/clients/rest/models/api_error.py +0 -102
  45. hatchet_sdk/v0/clients/rest/models/api_errors.py +0 -100
  46. hatchet_sdk/v0/clients/rest/models/api_meta.py +0 -144
  47. hatchet_sdk/v0/clients/rest/models/api_meta_auth.py +0 -85
  48. hatchet_sdk/v0/clients/rest/models/api_meta_integration.py +0 -88
  49. hatchet_sdk/v0/clients/rest/models/api_meta_posthog.py +0 -90
  50. hatchet_sdk/v0/clients/rest/models/api_resource_meta.py +0 -98
  51. hatchet_sdk/v0/clients/rest/models/api_token.py +0 -105
  52. hatchet_sdk/v0/clients/rest/models/bulk_create_event_request.py +0 -100
  53. hatchet_sdk/v0/clients/rest/models/bulk_create_event_response.py +0 -110
  54. hatchet_sdk/v0/clients/rest/models/cancel_event_request.py +0 -85
  55. hatchet_sdk/v0/clients/rest/models/cancel_step_run_request.py +0 -83
  56. hatchet_sdk/v0/clients/rest/models/concurrency_limit_strategy.py +0 -39
  57. hatchet_sdk/v0/clients/rest/models/create_api_token_request.py +0 -92
  58. hatchet_sdk/v0/clients/rest/models/create_api_token_response.py +0 -83
  59. hatchet_sdk/v0/clients/rest/models/create_cron_workflow_trigger_request.py +0 -98
  60. hatchet_sdk/v0/clients/rest/models/create_event_request.py +0 -95
  61. hatchet_sdk/v0/clients/rest/models/create_pull_request_from_step_run.py +0 -83
  62. hatchet_sdk/v0/clients/rest/models/create_sns_integration_request.py +0 -85
  63. hatchet_sdk/v0/clients/rest/models/create_tenant_alert_email_group_request.py +0 -83
  64. hatchet_sdk/v0/clients/rest/models/create_tenant_invite_request.py +0 -86
  65. hatchet_sdk/v0/clients/rest/models/create_tenant_request.py +0 -84
  66. hatchet_sdk/v0/clients/rest/models/cron_workflows.py +0 -131
  67. hatchet_sdk/v0/clients/rest/models/cron_workflows_list.py +0 -110
  68. hatchet_sdk/v0/clients/rest/models/cron_workflows_method.py +0 -37
  69. hatchet_sdk/v0/clients/rest/models/cron_workflows_order_by_field.py +0 -37
  70. hatchet_sdk/v0/clients/rest/models/event.py +0 -143
  71. hatchet_sdk/v0/clients/rest/models/event_data.py +0 -83
  72. hatchet_sdk/v0/clients/rest/models/event_key_list.py +0 -98
  73. hatchet_sdk/v0/clients/rest/models/event_list.py +0 -110
  74. hatchet_sdk/v0/clients/rest/models/event_order_by_direction.py +0 -37
  75. hatchet_sdk/v0/clients/rest/models/event_order_by_field.py +0 -36
  76. hatchet_sdk/v0/clients/rest/models/event_update_cancel200_response.py +0 -85
  77. hatchet_sdk/v0/clients/rest/models/event_workflow_run_summary.py +0 -116
  78. hatchet_sdk/v0/clients/rest/models/events.py +0 -110
  79. hatchet_sdk/v0/clients/rest/models/get_step_run_diff_response.py +0 -100
  80. hatchet_sdk/v0/clients/rest/models/github_app_installation.py +0 -107
  81. hatchet_sdk/v0/clients/rest/models/github_branch.py +0 -86
  82. hatchet_sdk/v0/clients/rest/models/github_repo.py +0 -86
  83. hatchet_sdk/v0/clients/rest/models/info_get_version200_response.py +0 -83
  84. hatchet_sdk/v0/clients/rest/models/job.py +0 -132
  85. hatchet_sdk/v0/clients/rest/models/job_run.py +0 -176
  86. hatchet_sdk/v0/clients/rest/models/job_run_status.py +0 -41
  87. hatchet_sdk/v0/clients/rest/models/link_github_repository_request.py +0 -106
  88. hatchet_sdk/v0/clients/rest/models/list_api_tokens_response.py +0 -110
  89. hatchet_sdk/v0/clients/rest/models/list_github_app_installations_response.py +0 -112
  90. hatchet_sdk/v0/clients/rest/models/list_pull_requests_response.py +0 -100
  91. hatchet_sdk/v0/clients/rest/models/list_slack_webhooks.py +0 -110
  92. hatchet_sdk/v0/clients/rest/models/list_sns_integrations.py +0 -110
  93. hatchet_sdk/v0/clients/rest/models/log_line.py +0 -94
  94. hatchet_sdk/v0/clients/rest/models/log_line_level.py +0 -39
  95. hatchet_sdk/v0/clients/rest/models/log_line_list.py +0 -110
  96. hatchet_sdk/v0/clients/rest/models/log_line_order_by_direction.py +0 -37
  97. hatchet_sdk/v0/clients/rest/models/log_line_order_by_field.py +0 -36
  98. hatchet_sdk/v0/clients/rest/models/pagination_response.py +0 -95
  99. hatchet_sdk/v0/clients/rest/models/pull_request.py +0 -112
  100. hatchet_sdk/v0/clients/rest/models/pull_request_state.py +0 -37
  101. hatchet_sdk/v0/clients/rest/models/queue_metrics.py +0 -97
  102. hatchet_sdk/v0/clients/rest/models/rate_limit.py +0 -117
  103. hatchet_sdk/v0/clients/rest/models/rate_limit_list.py +0 -110
  104. hatchet_sdk/v0/clients/rest/models/rate_limit_order_by_direction.py +0 -37
  105. hatchet_sdk/v0/clients/rest/models/rate_limit_order_by_field.py +0 -38
  106. hatchet_sdk/v0/clients/rest/models/recent_step_runs.py +0 -118
  107. hatchet_sdk/v0/clients/rest/models/reject_invite_request.py +0 -83
  108. hatchet_sdk/v0/clients/rest/models/replay_event_request.py +0 -85
  109. hatchet_sdk/v0/clients/rest/models/replay_workflow_runs_request.py +0 -85
  110. hatchet_sdk/v0/clients/rest/models/replay_workflow_runs_response.py +0 -100
  111. hatchet_sdk/v0/clients/rest/models/rerun_step_run_request.py +0 -83
  112. hatchet_sdk/v0/clients/rest/models/schedule_workflow_run_request.py +0 -92
  113. hatchet_sdk/v0/clients/rest/models/scheduled_run_status.py +0 -42
  114. hatchet_sdk/v0/clients/rest/models/scheduled_workflows.py +0 -149
  115. hatchet_sdk/v0/clients/rest/models/scheduled_workflows_list.py +0 -110
  116. hatchet_sdk/v0/clients/rest/models/scheduled_workflows_method.py +0 -37
  117. hatchet_sdk/v0/clients/rest/models/scheduled_workflows_order_by_field.py +0 -37
  118. hatchet_sdk/v0/clients/rest/models/semaphore_slots.py +0 -113
  119. hatchet_sdk/v0/clients/rest/models/slack_webhook.py +0 -127
  120. hatchet_sdk/v0/clients/rest/models/sns_integration.py +0 -114
  121. hatchet_sdk/v0/clients/rest/models/step.py +0 -123
  122. hatchet_sdk/v0/clients/rest/models/step_run.py +0 -202
  123. hatchet_sdk/v0/clients/rest/models/step_run_archive.py +0 -142
  124. hatchet_sdk/v0/clients/rest/models/step_run_archive_list.py +0 -110
  125. hatchet_sdk/v0/clients/rest/models/step_run_diff.py +0 -91
  126. hatchet_sdk/v0/clients/rest/models/step_run_event.py +0 -122
  127. hatchet_sdk/v0/clients/rest/models/step_run_event_list.py +0 -110
  128. hatchet_sdk/v0/clients/rest/models/step_run_event_reason.py +0 -52
  129. hatchet_sdk/v0/clients/rest/models/step_run_event_severity.py +0 -38
  130. hatchet_sdk/v0/clients/rest/models/step_run_status.py +0 -44
  131. hatchet_sdk/v0/clients/rest/models/tenant.py +0 -118
  132. hatchet_sdk/v0/clients/rest/models/tenant_alert_email_group.py +0 -98
  133. hatchet_sdk/v0/clients/rest/models/tenant_alert_email_group_list.py +0 -112
  134. hatchet_sdk/v0/clients/rest/models/tenant_alerting_settings.py +0 -143
  135. hatchet_sdk/v0/clients/rest/models/tenant_invite.py +0 -120
  136. hatchet_sdk/v0/clients/rest/models/tenant_invite_list.py +0 -110
  137. hatchet_sdk/v0/clients/rest/models/tenant_list.py +0 -110
  138. hatchet_sdk/v0/clients/rest/models/tenant_member.py +0 -123
  139. hatchet_sdk/v0/clients/rest/models/tenant_member_list.py +0 -110
  140. hatchet_sdk/v0/clients/rest/models/tenant_member_role.py +0 -38
  141. hatchet_sdk/v0/clients/rest/models/tenant_queue_metrics.py +0 -116
  142. hatchet_sdk/v0/clients/rest/models/tenant_resource.py +0 -40
  143. hatchet_sdk/v0/clients/rest/models/tenant_resource_limit.py +0 -135
  144. hatchet_sdk/v0/clients/rest/models/tenant_resource_policy.py +0 -102
  145. hatchet_sdk/v0/clients/rest/models/tenant_step_run_queue_metrics.py +0 -83
  146. hatchet_sdk/v0/clients/rest/models/trigger_workflow_run_request.py +0 -91
  147. hatchet_sdk/v0/clients/rest/models/update_tenant_alert_email_group_request.py +0 -83
  148. hatchet_sdk/v0/clients/rest/models/update_tenant_invite_request.py +0 -85
  149. hatchet_sdk/v0/clients/rest/models/update_tenant_request.py +0 -137
  150. hatchet_sdk/v0/clients/rest/models/update_worker_request.py +0 -87
  151. hatchet_sdk/v0/clients/rest/models/user.py +0 -126
  152. hatchet_sdk/v0/clients/rest/models/user_change_password_request.py +0 -88
  153. hatchet_sdk/v0/clients/rest/models/user_login_request.py +0 -86
  154. hatchet_sdk/v0/clients/rest/models/user_register_request.py +0 -91
  155. hatchet_sdk/v0/clients/rest/models/user_tenant_memberships_list.py +0 -110
  156. hatchet_sdk/v0/clients/rest/models/user_tenant_public.py +0 -86
  157. hatchet_sdk/v0/clients/rest/models/webhook_worker.py +0 -100
  158. hatchet_sdk/v0/clients/rest/models/webhook_worker_create_request.py +0 -94
  159. hatchet_sdk/v0/clients/rest/models/webhook_worker_create_response.py +0 -98
  160. hatchet_sdk/v0/clients/rest/models/webhook_worker_created.py +0 -102
  161. hatchet_sdk/v0/clients/rest/models/webhook_worker_list_response.py +0 -110
  162. hatchet_sdk/v0/clients/rest/models/webhook_worker_request.py +0 -102
  163. hatchet_sdk/v0/clients/rest/models/webhook_worker_request_list_response.py +0 -104
  164. hatchet_sdk/v0/clients/rest/models/webhook_worker_request_method.py +0 -38
  165. hatchet_sdk/v0/clients/rest/models/worker.py +0 -239
  166. hatchet_sdk/v0/clients/rest/models/worker_label.py +0 -102
  167. hatchet_sdk/v0/clients/rest/models/worker_list.py +0 -110
  168. hatchet_sdk/v0/clients/rest/models/worker_runtime_info.py +0 -103
  169. hatchet_sdk/v0/clients/rest/models/worker_runtime_sdks.py +0 -38
  170. hatchet_sdk/v0/clients/rest/models/worker_type.py +0 -38
  171. hatchet_sdk/v0/clients/rest/models/workflow.py +0 -165
  172. hatchet_sdk/v0/clients/rest/models/workflow_concurrency.py +0 -107
  173. hatchet_sdk/v0/clients/rest/models/workflow_deployment_config.py +0 -136
  174. hatchet_sdk/v0/clients/rest/models/workflow_kind.py +0 -38
  175. hatchet_sdk/v0/clients/rest/models/workflow_list.py +0 -120
  176. hatchet_sdk/v0/clients/rest/models/workflow_metrics.py +0 -97
  177. hatchet_sdk/v0/clients/rest/models/workflow_run.py +0 -188
  178. hatchet_sdk/v0/clients/rest/models/workflow_run_cancel200_response.py +0 -85
  179. hatchet_sdk/v0/clients/rest/models/workflow_run_list.py +0 -110
  180. hatchet_sdk/v0/clients/rest/models/workflow_run_order_by_direction.py +0 -37
  181. hatchet_sdk/v0/clients/rest/models/workflow_run_order_by_field.py +0 -39
  182. hatchet_sdk/v0/clients/rest/models/workflow_run_shape.py +0 -186
  183. hatchet_sdk/v0/clients/rest/models/workflow_run_status.py +0 -42
  184. hatchet_sdk/v0/clients/rest/models/workflow_run_triggered_by.py +0 -112
  185. hatchet_sdk/v0/clients/rest/models/workflow_runs_cancel_request.py +0 -85
  186. hatchet_sdk/v0/clients/rest/models/workflow_runs_metrics.py +0 -94
  187. hatchet_sdk/v0/clients/rest/models/workflow_runs_metrics_counts.py +0 -104
  188. hatchet_sdk/v0/clients/rest/models/workflow_tag.py +0 -84
  189. hatchet_sdk/v0/clients/rest/models/workflow_trigger_cron_ref.py +0 -86
  190. hatchet_sdk/v0/clients/rest/models/workflow_trigger_event_ref.py +0 -86
  191. hatchet_sdk/v0/clients/rest/models/workflow_triggers.py +0 -141
  192. hatchet_sdk/v0/clients/rest/models/workflow_update_request.py +0 -85
  193. hatchet_sdk/v0/clients/rest/models/workflow_version.py +0 -170
  194. hatchet_sdk/v0/clients/rest/models/workflow_version_concurrency.py +0 -114
  195. hatchet_sdk/v0/clients/rest/models/workflow_version_definition.py +0 -85
  196. hatchet_sdk/v0/clients/rest/models/workflow_version_meta.py +0 -123
  197. hatchet_sdk/v0/clients/rest/models/workflow_workers_count.py +0 -95
  198. hatchet_sdk/v0/clients/rest/rest.py +0 -187
  199. hatchet_sdk/v0/clients/rest/tenacity_utils.py +0 -39
  200. hatchet_sdk/v0/clients/rest_client.py +0 -622
  201. hatchet_sdk/v0/clients/run_event_listener.py +0 -260
  202. hatchet_sdk/v0/clients/workflow_listener.py +0 -277
  203. hatchet_sdk/v0/connection.py +0 -63
  204. hatchet_sdk/v0/context/__init__.py +0 -1
  205. hatchet_sdk/v0/context/context.py +0 -446
  206. hatchet_sdk/v0/context/worker_context.py +0 -28
  207. hatchet_sdk/v0/features/cron.py +0 -286
  208. hatchet_sdk/v0/features/scheduled.py +0 -248
  209. hatchet_sdk/v0/hatchet.py +0 -310
  210. hatchet_sdk/v0/labels.py +0 -10
  211. hatchet_sdk/v0/loader.py +0 -244
  212. hatchet_sdk/v0/metadata.py +0 -2
  213. hatchet_sdk/v0/opentelemetry/instrumentor.py +0 -393
  214. hatchet_sdk/v0/rate_limit.py +0 -126
  215. hatchet_sdk/v0/semver.py +0 -30
  216. hatchet_sdk/v0/token.py +0 -27
  217. hatchet_sdk/v0/utils/aio_utils.py +0 -137
  218. hatchet_sdk/v0/utils/backoff.py +0 -9
  219. hatchet_sdk/v0/utils/types.py +0 -8
  220. hatchet_sdk/v0/utils/typing.py +0 -12
  221. hatchet_sdk/v0/v2/callable.py +0 -202
  222. hatchet_sdk/v0/v2/concurrency.py +0 -47
  223. hatchet_sdk/v0/v2/hatchet.py +0 -224
  224. hatchet_sdk/v0/worker/__init__.py +0 -1
  225. hatchet_sdk/v0/worker/action_listener_process.py +0 -294
  226. hatchet_sdk/v0/worker/runner/run_loop_manager.py +0 -112
  227. hatchet_sdk/v0/worker/runner/runner.py +0 -460
  228. hatchet_sdk/v0/worker/runner/utils/capture_logs.py +0 -81
  229. hatchet_sdk/v0/worker/runner/utils/error_with_traceback.py +0 -6
  230. hatchet_sdk/v0/worker/worker.py +0 -391
  231. hatchet_sdk/v0/workflow.py +0 -261
  232. hatchet_sdk/v0/workflow_run.py +0 -59
  233. {hatchet_sdk-1.18.1.dist-info → hatchet_sdk-1.20.0.dist-info}/WHEEL +0 -0
  234. {hatchet_sdk-1.18.1.dist-info → hatchet_sdk-1.20.0.dist-info}/entry_points.txt +0 -0
@@ -1,286 +0,0 @@
1
- from typing import Union
2
-
3
- from pydantic import BaseModel, field_validator
4
-
5
- from hatchet_sdk.v0.client import Client
6
- from hatchet_sdk.v0.clients.rest.models.cron_workflows import CronWorkflows
7
- from hatchet_sdk.v0.clients.rest.models.cron_workflows_list import CronWorkflowsList
8
- from hatchet_sdk.v0.clients.rest.models.cron_workflows_order_by_field import (
9
- CronWorkflowsOrderByField,
10
- )
11
- from hatchet_sdk.v0.clients.rest.models.workflow_run_order_by_direction import (
12
- WorkflowRunOrderByDirection,
13
- )
14
-
15
-
16
- class CreateCronTriggerInput(BaseModel):
17
- """
18
- Schema for creating a workflow run triggered by a cron.
19
-
20
- Attributes:
21
- expression (str): The cron expression defining the schedule.
22
- input (dict): The input data for the cron workflow.
23
- additional_metadata (dict[str, str]): Additional metadata associated with the cron trigger.
24
- """
25
-
26
- expression: str = None
27
- input: dict = {}
28
- additional_metadata: dict[str, str] = {}
29
-
30
- @field_validator("expression")
31
- def validate_cron_expression(cls, v):
32
- """
33
- Validates the cron expression to ensure it adheres to the expected format.
34
-
35
- Args:
36
- v (str): The cron expression to validate.
37
-
38
- Raises:
39
- ValueError: If the expression is invalid.
40
-
41
- Returns:
42
- str: The validated cron expression.
43
- """
44
- if not v:
45
- raise ValueError("Cron expression is required")
46
-
47
- parts = v.split()
48
- if len(parts) != 5:
49
- raise ValueError(
50
- "Cron expression must have 5 parts: minute hour day month weekday"
51
- )
52
-
53
- for part in parts:
54
- if not (
55
- part == "*"
56
- or part.replace("*/", "").replace("-", "").replace(",", "").isdigit()
57
- ):
58
- raise ValueError(f"Invalid cron expression part: {part}")
59
-
60
- return v
61
-
62
-
63
- class CronClient:
64
- """
65
- Client for managing workflow cron triggers synchronously.
66
-
67
- Attributes:
68
- _client (Client): The underlying client used to interact with the REST API.
69
- aio (CronClientAsync): Asynchronous counterpart of CronClient.
70
- """
71
-
72
- _client: Client
73
-
74
- def __init__(self, _client: Client):
75
- """
76
- Initializes the CronClient with a given Client instance.
77
-
78
- Args:
79
- _client (Client): The client instance to be used for REST interactions.
80
- """
81
- self._client = _client
82
- self.aio = CronClientAsync(_client)
83
-
84
- def create(
85
- self,
86
- workflow_name: str,
87
- cron_name: str,
88
- expression: str,
89
- input: dict,
90
- additional_metadata: dict[str, str],
91
- ) -> CronWorkflows:
92
- """
93
- Creates a new workflow cron trigger.
94
-
95
- Args:
96
- workflow_name (str): The name of the workflow to trigger.
97
- cron_name (str): The name of the cron trigger.
98
- expression (str): The cron expression defining the schedule.
99
- input (dict): The input data for the cron workflow.
100
- additional_metadata (dict[str, str]): Additional metadata associated with the cron trigger.
101
-
102
- Returns:
103
- CronWorkflows: The created cron workflow instance.
104
- """
105
- validated_input = CreateCronTriggerInput(
106
- expression=expression, input=input, additional_metadata=additional_metadata
107
- )
108
-
109
- return self._client.rest.cron_create(
110
- workflow_name,
111
- cron_name,
112
- validated_input.expression,
113
- validated_input.input,
114
- validated_input.additional_metadata,
115
- )
116
-
117
- def delete(self, cron_trigger: Union[str, CronWorkflows]) -> None:
118
- """
119
- Deletes a workflow cron trigger.
120
-
121
- Args:
122
- cron_trigger (Union[str, CronWorkflows]): The cron trigger ID or CronWorkflows instance to delete.
123
- """
124
- id_ = cron_trigger
125
- if isinstance(cron_trigger, CronWorkflows):
126
- id_ = cron_trigger.metadata.id
127
- self._client.rest.cron_delete(id_)
128
-
129
- def list(
130
- self,
131
- offset: int | None = None,
132
- limit: int | None = None,
133
- workflow_id: str | None = None,
134
- additional_metadata: list[str] | None = None,
135
- order_by_field: CronWorkflowsOrderByField | None = None,
136
- order_by_direction: WorkflowRunOrderByDirection | None = None,
137
- ) -> CronWorkflowsList:
138
- """
139
- Retrieves a list of all workflow cron triggers matching the criteria.
140
-
141
- Args:
142
- offset (int | None): The offset to start the list from.
143
- limit (int | None): The maximum number of items to return.
144
- workflow_id (str | None): The ID of the workflow to filter by.
145
- additional_metadata (list[str] | None): Filter by additional metadata keys (e.g. ["key1:value1", "key2:value2"]).
146
- order_by_field (CronWorkflowsOrderByField | None): The field to order the list by.
147
- order_by_direction (WorkflowRunOrderByDirection | None): The direction to order the list by.
148
-
149
- Returns:
150
- CronWorkflowsList: A list of cron workflows.
151
- """
152
- return self._client.rest.cron_list(
153
- offset=offset,
154
- limit=limit,
155
- workflow_id=workflow_id,
156
- additional_metadata=additional_metadata,
157
- order_by_field=order_by_field,
158
- order_by_direction=order_by_direction,
159
- )
160
-
161
- def get(self, cron_trigger: Union[str, CronWorkflows]) -> CronWorkflows:
162
- """
163
- Retrieves a specific workflow cron trigger by ID.
164
-
165
- Args:
166
- cron_trigger (Union[str, CronWorkflows]): The cron trigger ID or CronWorkflows instance to retrieve.
167
-
168
- Returns:
169
- CronWorkflows: The requested cron workflow instance.
170
- """
171
- id_ = cron_trigger
172
- if isinstance(cron_trigger, CronWorkflows):
173
- id_ = cron_trigger.metadata.id
174
- return self._client.rest.cron_get(id_)
175
-
176
-
177
- class CronClientAsync:
178
- """
179
- Asynchronous client for managing workflow cron triggers.
180
-
181
- Attributes:
182
- _client (Client): The underlying client used to interact with the REST API asynchronously.
183
- """
184
-
185
- _client: Client
186
-
187
- def __init__(self, _client: Client):
188
- """
189
- Initializes the CronClientAsync with a given Client instance.
190
-
191
- Args:
192
- _client (Client): The client instance to be used for asynchronous REST interactions.
193
- """
194
- self._client = _client
195
-
196
- async def create(
197
- self,
198
- workflow_name: str,
199
- cron_name: str,
200
- expression: str,
201
- input: dict,
202
- additional_metadata: dict[str, str],
203
- ) -> CronWorkflows:
204
- """
205
- Asynchronously creates a new workflow cron trigger.
206
-
207
- Args:
208
- workflow_name (str): The name of the workflow to trigger.
209
- cron_name (str): The name of the cron trigger.
210
- expression (str): The cron expression defining the schedule.
211
- input (dict): The input data for the cron workflow.
212
- additional_metadata (dict[str, str]): Additional metadata associated with the cron trigger.
213
-
214
- Returns:
215
- CronWorkflows: The created cron workflow instance.
216
- """
217
- validated_input = CreateCronTriggerInput(
218
- expression=expression, input=input, additional_metadata=additional_metadata
219
- )
220
-
221
- return await self._client.rest.aio.cron_create(
222
- workflow_name=workflow_name,
223
- cron_name=cron_name,
224
- expression=validated_input.expression,
225
- input=validated_input.input,
226
- additional_metadata=validated_input.additional_metadata,
227
- )
228
-
229
- async def delete(self, cron_trigger: Union[str, CronWorkflows]) -> None:
230
- """
231
- Asynchronously deletes a workflow cron trigger.
232
-
233
- Args:
234
- cron_trigger (Union[str, CronWorkflows]): The cron trigger ID or CronWorkflows instance to delete.
235
- """
236
- id_ = cron_trigger
237
- if isinstance(cron_trigger, CronWorkflows):
238
- id_ = cron_trigger.metadata.id
239
- await self._client.rest.aio.cron_delete(id_)
240
-
241
- async def list(
242
- self,
243
- offset: int | None = None,
244
- limit: int | None = None,
245
- workflow_id: str | None = None,
246
- additional_metadata: list[str] | None = None,
247
- order_by_field: CronWorkflowsOrderByField | None = None,
248
- order_by_direction: WorkflowRunOrderByDirection | None = None,
249
- ) -> CronWorkflowsList:
250
- """
251
- Asynchronously retrieves a list of all workflow cron triggers matching the criteria.
252
-
253
- Args:
254
- offset (int | None): The offset to start the list from.
255
- limit (int | None): The maximum number of items to return.
256
- workflow_id (str | None): The ID of the workflow to filter by.
257
- additional_metadata (list[str] | None): Filter by additional metadata keys (e.g. ["key1:value1", "key2:value2"]).
258
- order_by_field (CronWorkflowsOrderByField | None): The field to order the list by.
259
- order_by_direction (WorkflowRunOrderByDirection | None): The direction to order the list by.
260
-
261
- Returns:
262
- CronWorkflowsList: A list of cron workflows.
263
- """
264
- return await self._client.rest.aio.cron_list(
265
- offset=offset,
266
- limit=limit,
267
- workflow_id=workflow_id,
268
- additional_metadata=additional_metadata,
269
- order_by_field=order_by_field,
270
- order_by_direction=order_by_direction,
271
- )
272
-
273
- async def get(self, cron_trigger: Union[str, CronWorkflows]) -> CronWorkflows:
274
- """
275
- Asynchronously retrieves a specific workflow cron trigger by ID.
276
-
277
- Args:
278
- cron_trigger (Union[str, CronWorkflows]): The cron trigger ID or CronWorkflows instance to retrieve.
279
-
280
- Returns:
281
- CronWorkflows: The requested cron workflow instance.
282
- """
283
- id_ = cron_trigger
284
- if isinstance(cron_trigger, CronWorkflows):
285
- id_ = cron_trigger.metadata.id
286
- return await self._client.rest.aio.cron_get(id_)
@@ -1,248 +0,0 @@
1
- import datetime
2
- from typing import Any, Coroutine, Dict, List, Optional, Union
3
-
4
- from pydantic import BaseModel
5
-
6
- from hatchet_sdk.v0.client import Client
7
- from hatchet_sdk.v0.clients.rest.models.cron_workflows import CronWorkflows
8
- from hatchet_sdk.v0.clients.rest.models.cron_workflows_order_by_field import (
9
- CronWorkflowsOrderByField,
10
- )
11
- from hatchet_sdk.v0.clients.rest.models.scheduled_workflows import ScheduledWorkflows
12
- from hatchet_sdk.v0.clients.rest.models.scheduled_workflows_list import (
13
- ScheduledWorkflowsList,
14
- )
15
- from hatchet_sdk.v0.clients.rest.models.workflow_run_order_by_direction import (
16
- WorkflowRunOrderByDirection,
17
- )
18
-
19
-
20
- class CreateScheduledTriggerInput(BaseModel):
21
- """
22
- Schema for creating a scheduled workflow run.
23
-
24
- Attributes:
25
- input (Dict[str, Any]): The input data for the scheduled workflow.
26
- additional_metadata (Dict[str, str]): Additional metadata associated with the future run (e.g. ["key1:value1", "key2:value2"]).
27
- trigger_at (Optional[datetime.datetime]): The datetime when the run should be triggered.
28
- """
29
-
30
- input: Dict[str, Any] = {}
31
- additional_metadata: Dict[str, str] = {}
32
- trigger_at: Optional[datetime.datetime] = None
33
-
34
-
35
- class ScheduledClient:
36
- """
37
- Client for managing scheduled workflows synchronously.
38
-
39
- Attributes:
40
- _client (Client): The underlying client used to interact with the REST API.
41
- aio (ScheduledClientAsync): Asynchronous counterpart of ScheduledClient.
42
- """
43
-
44
- _client: Client
45
-
46
- def __init__(self, _client: Client) -> None:
47
- """
48
- Initializes the ScheduledClient with a given Client instance.
49
-
50
- Args:
51
- _client (Client): The client instance to be used for REST interactions.
52
- """
53
- self._client = _client
54
- self.aio: "ScheduledClientAsync" = ScheduledClientAsync(_client)
55
-
56
- def create(
57
- self,
58
- workflow_name: str,
59
- trigger_at: datetime.datetime,
60
- input: Dict[str, Any],
61
- additional_metadata: Dict[str, str],
62
- ) -> ScheduledWorkflows:
63
- """
64
- Creates a new scheduled workflow run asynchronously.
65
-
66
- Args:
67
- workflow_name (str): The name of the scheduled workflow.
68
- trigger_at (datetime.datetime): The datetime when the run should be triggered.
69
- input (Dict[str, Any]): The input data for the scheduled workflow.
70
- additional_metadata (Dict[str, str]): Additional metadata associated with the future run as a key-value pair.
71
-
72
- Returns:
73
- ScheduledWorkflows: The created scheduled workflow instance.
74
- """
75
-
76
- validated_input = CreateScheduledTriggerInput(
77
- trigger_at=trigger_at, input=input, additional_metadata=additional_metadata
78
- )
79
-
80
- return self._client.rest.schedule_create(
81
- workflow_name,
82
- validated_input.trigger_at,
83
- validated_input.input,
84
- validated_input.additional_metadata,
85
- )
86
-
87
- def delete(self, scheduled: Union[str, ScheduledWorkflows]) -> None:
88
- """
89
- Deletes a scheduled workflow run.
90
-
91
- Args:
92
- scheduled (Union[str, ScheduledWorkflows]): The scheduled workflow trigger ID or ScheduledWorkflows instance to delete.
93
- """
94
- id_ = scheduled
95
- if isinstance(scheduled, ScheduledWorkflows):
96
- id_ = scheduled.metadata.id
97
- self._client.rest.schedule_delete(id_)
98
-
99
- def list(
100
- self,
101
- offset: Optional[int] = None,
102
- limit: Optional[int] = None,
103
- workflow_id: Optional[str] = None,
104
- additional_metadata: Optional[List[str]] = None,
105
- order_by_field: Optional[CronWorkflowsOrderByField] = None,
106
- order_by_direction: Optional[WorkflowRunOrderByDirection] = None,
107
- ) -> ScheduledWorkflowsList:
108
- """
109
- Retrieves a list of scheduled workflows based on provided filters.
110
-
111
- Args:
112
- offset (Optional[int]): The starting point for the list.
113
- limit (Optional[int]): The maximum number of items to return.
114
- workflow_id (Optional[str]): Filter by specific workflow ID.
115
- additional_metadata (Optional[List[str]]): Filter by additional metadata keys (e.g. ["key1:value1", "key2:value2"]).
116
- order_by_field (Optional[CronWorkflowsOrderByField]): Field to order the results by.
117
- order_by_direction (Optional[WorkflowRunOrderByDirection]): Direction to order the results.
118
-
119
- Returns:
120
- List[ScheduledWorkflows]: A list of scheduled workflows matching the criteria.
121
- """
122
- return self._client.rest.schedule_list(
123
- offset=offset,
124
- limit=limit,
125
- workflow_id=workflow_id,
126
- additional_metadata=additional_metadata,
127
- order_by_field=order_by_field,
128
- order_by_direction=order_by_direction,
129
- )
130
-
131
- def get(self, scheduled: Union[str, ScheduledWorkflows]) -> ScheduledWorkflows:
132
- """
133
- Retrieves a specific scheduled workflow by scheduled run trigger ID.
134
-
135
- Args:
136
- scheduled (Union[str, ScheduledWorkflows]): The scheduled workflow trigger ID or ScheduledWorkflows instance to retrieve.
137
-
138
- Returns:
139
- ScheduledWorkflows: The requested scheduled workflow instance.
140
- """
141
- id_ = scheduled
142
- if isinstance(scheduled, ScheduledWorkflows):
143
- id_ = scheduled.metadata.id
144
- return self._client.rest.schedule_get(id_)
145
-
146
-
147
- class ScheduledClientAsync:
148
- """
149
- Asynchronous client for managing scheduled workflows.
150
-
151
- Attributes:
152
- _client (Client): The underlying client used to interact with the REST API asynchronously.
153
- """
154
-
155
- _client: Client
156
-
157
- def __init__(self, _client: Client) -> None:
158
- """
159
- Initializes the ScheduledClientAsync with a given Client instance.
160
-
161
- Args:
162
- _client (Client): The client instance to be used for asynchronous REST interactions.
163
- """
164
- self._client = _client
165
-
166
- async def create(
167
- self,
168
- workflow_name: str,
169
- trigger_at: datetime.datetime,
170
- input: Dict[str, Any],
171
- additional_metadata: Dict[str, str],
172
- ) -> ScheduledWorkflows:
173
- """
174
- Creates a new scheduled workflow run asynchronously.
175
-
176
- Args:
177
- workflow_name (str): The name of the scheduled workflow.
178
- trigger_at (datetime.datetime): The datetime when the run should be triggered.
179
- input (Dict[str, Any]): The input data for the scheduled workflow.
180
- additional_metadata (Dict[str, str]): Additional metadata associated with the future run.
181
-
182
- Returns:
183
- ScheduledWorkflows: The created scheduled workflow instance.
184
- """
185
- return await self._client.rest.aio.schedule_create(
186
- workflow_name, trigger_at, input, additional_metadata
187
- )
188
-
189
- async def delete(self, scheduled: Union[str, ScheduledWorkflows]) -> None:
190
- """
191
- Deletes a scheduled workflow asynchronously.
192
-
193
- Args:
194
- scheduled (Union[str, ScheduledWorkflows]): The scheduled workflow trigger ID or ScheduledWorkflows instance to delete.
195
- """
196
- id_ = scheduled
197
- if isinstance(scheduled, ScheduledWorkflows):
198
- id_ = scheduled.metadata.id
199
- await self._client.rest.aio.schedule_delete(id_)
200
-
201
- async def list(
202
- self,
203
- offset: Optional[int] = None,
204
- limit: Optional[int] = None,
205
- workflow_id: Optional[str] = None,
206
- additional_metadata: Optional[List[str]] = None,
207
- order_by_field: Optional[CronWorkflowsOrderByField] = None,
208
- order_by_direction: Optional[WorkflowRunOrderByDirection] = None,
209
- ) -> ScheduledWorkflowsList:
210
- """
211
- Retrieves a list of scheduled workflows based on provided filters asynchronously.
212
-
213
- Args:
214
- offset (Optional[int]): The starting point for the list.
215
- limit (Optional[int]): The maximum number of items to return.
216
- workflow_id (Optional[str]): Filter by specific workflow ID.
217
- additional_metadata (Optional[List[str]]): Filter by additional metadata keys (e.g. ["key1:value1", "key2:value2"]).
218
- order_by_field (Optional[CronWorkflowsOrderByField]): Field to order the results by.
219
- order_by_direction (Optional[WorkflowRunOrderByDirection]): Direction to order the results.
220
-
221
- Returns:
222
- ScheduledWorkflowsList: A list of scheduled workflows matching the criteria.
223
- """
224
- return await self._client.rest.aio.schedule_list(
225
- offset=offset,
226
- limit=limit,
227
- workflow_id=workflow_id,
228
- additional_metadata=additional_metadata,
229
- order_by_field=order_by_field,
230
- order_by_direction=order_by_direction,
231
- )
232
-
233
- async def get(
234
- self, scheduled: Union[str, ScheduledWorkflows]
235
- ) -> ScheduledWorkflows:
236
- """
237
- Retrieves a specific scheduled workflow by scheduled run trigger ID asynchronously.
238
-
239
- Args:
240
- scheduled (Union[str, ScheduledWorkflows]): The scheduled workflow trigger ID or ScheduledWorkflows instance to retrieve.
241
-
242
- Returns:
243
- ScheduledWorkflows: The requested scheduled workflow instance.
244
- """
245
- id_ = scheduled
246
- if isinstance(scheduled, ScheduledWorkflows):
247
- id_ = scheduled.metadata.id
248
- return await self._client.rest.aio.schedule_get(id_)