hatchet-sdk 1.18.1__py3-none-any.whl → 1.19.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 (225) hide show
  1. {hatchet_sdk-1.18.1.dist-info → hatchet_sdk-1.19.0.dist-info}/METADATA +2 -3
  2. {hatchet_sdk-1.18.1.dist-info → hatchet_sdk-1.19.0.dist-info}/RECORD +4 -225
  3. hatchet_sdk/v0/__init__.py +0 -251
  4. hatchet_sdk/v0/client.py +0 -119
  5. hatchet_sdk/v0/clients/admin.py +0 -541
  6. hatchet_sdk/v0/clients/dispatcher/action_listener.py +0 -422
  7. hatchet_sdk/v0/clients/dispatcher/dispatcher.py +0 -204
  8. hatchet_sdk/v0/clients/event_ts.py +0 -28
  9. hatchet_sdk/v0/clients/events.py +0 -182
  10. hatchet_sdk/v0/clients/rest/__init__.py +0 -307
  11. hatchet_sdk/v0/clients/rest/api/__init__.py +0 -19
  12. hatchet_sdk/v0/clients/rest/api/api_token_api.py +0 -858
  13. hatchet_sdk/v0/clients/rest/api/default_api.py +0 -2259
  14. hatchet_sdk/v0/clients/rest/api/event_api.py +0 -2548
  15. hatchet_sdk/v0/clients/rest/api/github_api.py +0 -331
  16. hatchet_sdk/v0/clients/rest/api/healthcheck_api.py +0 -483
  17. hatchet_sdk/v0/clients/rest/api/log_api.py +0 -449
  18. hatchet_sdk/v0/clients/rest/api/metadata_api.py +0 -728
  19. hatchet_sdk/v0/clients/rest/api/rate_limits_api.py +0 -423
  20. hatchet_sdk/v0/clients/rest/api/slack_api.py +0 -577
  21. hatchet_sdk/v0/clients/rest/api/sns_api.py +0 -872
  22. hatchet_sdk/v0/clients/rest/api/step_run_api.py +0 -2202
  23. hatchet_sdk/v0/clients/rest/api/tenant_api.py +0 -4430
  24. hatchet_sdk/v0/clients/rest/api/user_api.py +0 -2888
  25. hatchet_sdk/v0/clients/rest/api/worker_api.py +0 -858
  26. hatchet_sdk/v0/clients/rest/api/workflow_api.py +0 -6312
  27. hatchet_sdk/v0/clients/rest/api/workflow_run_api.py +0 -1932
  28. hatchet_sdk/v0/clients/rest/api/workflow_runs_api.py +0 -610
  29. hatchet_sdk/v0/clients/rest/api_client.py +0 -759
  30. hatchet_sdk/v0/clients/rest/api_response.py +0 -22
  31. hatchet_sdk/v0/clients/rest/configuration.py +0 -611
  32. hatchet_sdk/v0/clients/rest/exceptions.py +0 -200
  33. hatchet_sdk/v0/clients/rest/models/__init__.py +0 -274
  34. hatchet_sdk/v0/clients/rest/models/accept_invite_request.py +0 -83
  35. hatchet_sdk/v0/clients/rest/models/api_error.py +0 -102
  36. hatchet_sdk/v0/clients/rest/models/api_errors.py +0 -100
  37. hatchet_sdk/v0/clients/rest/models/api_meta.py +0 -144
  38. hatchet_sdk/v0/clients/rest/models/api_meta_auth.py +0 -85
  39. hatchet_sdk/v0/clients/rest/models/api_meta_integration.py +0 -88
  40. hatchet_sdk/v0/clients/rest/models/api_meta_posthog.py +0 -90
  41. hatchet_sdk/v0/clients/rest/models/api_resource_meta.py +0 -98
  42. hatchet_sdk/v0/clients/rest/models/api_token.py +0 -105
  43. hatchet_sdk/v0/clients/rest/models/bulk_create_event_request.py +0 -100
  44. hatchet_sdk/v0/clients/rest/models/bulk_create_event_response.py +0 -110
  45. hatchet_sdk/v0/clients/rest/models/cancel_event_request.py +0 -85
  46. hatchet_sdk/v0/clients/rest/models/cancel_step_run_request.py +0 -83
  47. hatchet_sdk/v0/clients/rest/models/concurrency_limit_strategy.py +0 -39
  48. hatchet_sdk/v0/clients/rest/models/create_api_token_request.py +0 -92
  49. hatchet_sdk/v0/clients/rest/models/create_api_token_response.py +0 -83
  50. hatchet_sdk/v0/clients/rest/models/create_cron_workflow_trigger_request.py +0 -98
  51. hatchet_sdk/v0/clients/rest/models/create_event_request.py +0 -95
  52. hatchet_sdk/v0/clients/rest/models/create_pull_request_from_step_run.py +0 -83
  53. hatchet_sdk/v0/clients/rest/models/create_sns_integration_request.py +0 -85
  54. hatchet_sdk/v0/clients/rest/models/create_tenant_alert_email_group_request.py +0 -83
  55. hatchet_sdk/v0/clients/rest/models/create_tenant_invite_request.py +0 -86
  56. hatchet_sdk/v0/clients/rest/models/create_tenant_request.py +0 -84
  57. hatchet_sdk/v0/clients/rest/models/cron_workflows.py +0 -131
  58. hatchet_sdk/v0/clients/rest/models/cron_workflows_list.py +0 -110
  59. hatchet_sdk/v0/clients/rest/models/cron_workflows_method.py +0 -37
  60. hatchet_sdk/v0/clients/rest/models/cron_workflows_order_by_field.py +0 -37
  61. hatchet_sdk/v0/clients/rest/models/event.py +0 -143
  62. hatchet_sdk/v0/clients/rest/models/event_data.py +0 -83
  63. hatchet_sdk/v0/clients/rest/models/event_key_list.py +0 -98
  64. hatchet_sdk/v0/clients/rest/models/event_list.py +0 -110
  65. hatchet_sdk/v0/clients/rest/models/event_order_by_direction.py +0 -37
  66. hatchet_sdk/v0/clients/rest/models/event_order_by_field.py +0 -36
  67. hatchet_sdk/v0/clients/rest/models/event_update_cancel200_response.py +0 -85
  68. hatchet_sdk/v0/clients/rest/models/event_workflow_run_summary.py +0 -116
  69. hatchet_sdk/v0/clients/rest/models/events.py +0 -110
  70. hatchet_sdk/v0/clients/rest/models/get_step_run_diff_response.py +0 -100
  71. hatchet_sdk/v0/clients/rest/models/github_app_installation.py +0 -107
  72. hatchet_sdk/v0/clients/rest/models/github_branch.py +0 -86
  73. hatchet_sdk/v0/clients/rest/models/github_repo.py +0 -86
  74. hatchet_sdk/v0/clients/rest/models/info_get_version200_response.py +0 -83
  75. hatchet_sdk/v0/clients/rest/models/job.py +0 -132
  76. hatchet_sdk/v0/clients/rest/models/job_run.py +0 -176
  77. hatchet_sdk/v0/clients/rest/models/job_run_status.py +0 -41
  78. hatchet_sdk/v0/clients/rest/models/link_github_repository_request.py +0 -106
  79. hatchet_sdk/v0/clients/rest/models/list_api_tokens_response.py +0 -110
  80. hatchet_sdk/v0/clients/rest/models/list_github_app_installations_response.py +0 -112
  81. hatchet_sdk/v0/clients/rest/models/list_pull_requests_response.py +0 -100
  82. hatchet_sdk/v0/clients/rest/models/list_slack_webhooks.py +0 -110
  83. hatchet_sdk/v0/clients/rest/models/list_sns_integrations.py +0 -110
  84. hatchet_sdk/v0/clients/rest/models/log_line.py +0 -94
  85. hatchet_sdk/v0/clients/rest/models/log_line_level.py +0 -39
  86. hatchet_sdk/v0/clients/rest/models/log_line_list.py +0 -110
  87. hatchet_sdk/v0/clients/rest/models/log_line_order_by_direction.py +0 -37
  88. hatchet_sdk/v0/clients/rest/models/log_line_order_by_field.py +0 -36
  89. hatchet_sdk/v0/clients/rest/models/pagination_response.py +0 -95
  90. hatchet_sdk/v0/clients/rest/models/pull_request.py +0 -112
  91. hatchet_sdk/v0/clients/rest/models/pull_request_state.py +0 -37
  92. hatchet_sdk/v0/clients/rest/models/queue_metrics.py +0 -97
  93. hatchet_sdk/v0/clients/rest/models/rate_limit.py +0 -117
  94. hatchet_sdk/v0/clients/rest/models/rate_limit_list.py +0 -110
  95. hatchet_sdk/v0/clients/rest/models/rate_limit_order_by_direction.py +0 -37
  96. hatchet_sdk/v0/clients/rest/models/rate_limit_order_by_field.py +0 -38
  97. hatchet_sdk/v0/clients/rest/models/recent_step_runs.py +0 -118
  98. hatchet_sdk/v0/clients/rest/models/reject_invite_request.py +0 -83
  99. hatchet_sdk/v0/clients/rest/models/replay_event_request.py +0 -85
  100. hatchet_sdk/v0/clients/rest/models/replay_workflow_runs_request.py +0 -85
  101. hatchet_sdk/v0/clients/rest/models/replay_workflow_runs_response.py +0 -100
  102. hatchet_sdk/v0/clients/rest/models/rerun_step_run_request.py +0 -83
  103. hatchet_sdk/v0/clients/rest/models/schedule_workflow_run_request.py +0 -92
  104. hatchet_sdk/v0/clients/rest/models/scheduled_run_status.py +0 -42
  105. hatchet_sdk/v0/clients/rest/models/scheduled_workflows.py +0 -149
  106. hatchet_sdk/v0/clients/rest/models/scheduled_workflows_list.py +0 -110
  107. hatchet_sdk/v0/clients/rest/models/scheduled_workflows_method.py +0 -37
  108. hatchet_sdk/v0/clients/rest/models/scheduled_workflows_order_by_field.py +0 -37
  109. hatchet_sdk/v0/clients/rest/models/semaphore_slots.py +0 -113
  110. hatchet_sdk/v0/clients/rest/models/slack_webhook.py +0 -127
  111. hatchet_sdk/v0/clients/rest/models/sns_integration.py +0 -114
  112. hatchet_sdk/v0/clients/rest/models/step.py +0 -123
  113. hatchet_sdk/v0/clients/rest/models/step_run.py +0 -202
  114. hatchet_sdk/v0/clients/rest/models/step_run_archive.py +0 -142
  115. hatchet_sdk/v0/clients/rest/models/step_run_archive_list.py +0 -110
  116. hatchet_sdk/v0/clients/rest/models/step_run_diff.py +0 -91
  117. hatchet_sdk/v0/clients/rest/models/step_run_event.py +0 -122
  118. hatchet_sdk/v0/clients/rest/models/step_run_event_list.py +0 -110
  119. hatchet_sdk/v0/clients/rest/models/step_run_event_reason.py +0 -52
  120. hatchet_sdk/v0/clients/rest/models/step_run_event_severity.py +0 -38
  121. hatchet_sdk/v0/clients/rest/models/step_run_status.py +0 -44
  122. hatchet_sdk/v0/clients/rest/models/tenant.py +0 -118
  123. hatchet_sdk/v0/clients/rest/models/tenant_alert_email_group.py +0 -98
  124. hatchet_sdk/v0/clients/rest/models/tenant_alert_email_group_list.py +0 -112
  125. hatchet_sdk/v0/clients/rest/models/tenant_alerting_settings.py +0 -143
  126. hatchet_sdk/v0/clients/rest/models/tenant_invite.py +0 -120
  127. hatchet_sdk/v0/clients/rest/models/tenant_invite_list.py +0 -110
  128. hatchet_sdk/v0/clients/rest/models/tenant_list.py +0 -110
  129. hatchet_sdk/v0/clients/rest/models/tenant_member.py +0 -123
  130. hatchet_sdk/v0/clients/rest/models/tenant_member_list.py +0 -110
  131. hatchet_sdk/v0/clients/rest/models/tenant_member_role.py +0 -38
  132. hatchet_sdk/v0/clients/rest/models/tenant_queue_metrics.py +0 -116
  133. hatchet_sdk/v0/clients/rest/models/tenant_resource.py +0 -40
  134. hatchet_sdk/v0/clients/rest/models/tenant_resource_limit.py +0 -135
  135. hatchet_sdk/v0/clients/rest/models/tenant_resource_policy.py +0 -102
  136. hatchet_sdk/v0/clients/rest/models/tenant_step_run_queue_metrics.py +0 -83
  137. hatchet_sdk/v0/clients/rest/models/trigger_workflow_run_request.py +0 -91
  138. hatchet_sdk/v0/clients/rest/models/update_tenant_alert_email_group_request.py +0 -83
  139. hatchet_sdk/v0/clients/rest/models/update_tenant_invite_request.py +0 -85
  140. hatchet_sdk/v0/clients/rest/models/update_tenant_request.py +0 -137
  141. hatchet_sdk/v0/clients/rest/models/update_worker_request.py +0 -87
  142. hatchet_sdk/v0/clients/rest/models/user.py +0 -126
  143. hatchet_sdk/v0/clients/rest/models/user_change_password_request.py +0 -88
  144. hatchet_sdk/v0/clients/rest/models/user_login_request.py +0 -86
  145. hatchet_sdk/v0/clients/rest/models/user_register_request.py +0 -91
  146. hatchet_sdk/v0/clients/rest/models/user_tenant_memberships_list.py +0 -110
  147. hatchet_sdk/v0/clients/rest/models/user_tenant_public.py +0 -86
  148. hatchet_sdk/v0/clients/rest/models/webhook_worker.py +0 -100
  149. hatchet_sdk/v0/clients/rest/models/webhook_worker_create_request.py +0 -94
  150. hatchet_sdk/v0/clients/rest/models/webhook_worker_create_response.py +0 -98
  151. hatchet_sdk/v0/clients/rest/models/webhook_worker_created.py +0 -102
  152. hatchet_sdk/v0/clients/rest/models/webhook_worker_list_response.py +0 -110
  153. hatchet_sdk/v0/clients/rest/models/webhook_worker_request.py +0 -102
  154. hatchet_sdk/v0/clients/rest/models/webhook_worker_request_list_response.py +0 -104
  155. hatchet_sdk/v0/clients/rest/models/webhook_worker_request_method.py +0 -38
  156. hatchet_sdk/v0/clients/rest/models/worker.py +0 -239
  157. hatchet_sdk/v0/clients/rest/models/worker_label.py +0 -102
  158. hatchet_sdk/v0/clients/rest/models/worker_list.py +0 -110
  159. hatchet_sdk/v0/clients/rest/models/worker_runtime_info.py +0 -103
  160. hatchet_sdk/v0/clients/rest/models/worker_runtime_sdks.py +0 -38
  161. hatchet_sdk/v0/clients/rest/models/worker_type.py +0 -38
  162. hatchet_sdk/v0/clients/rest/models/workflow.py +0 -165
  163. hatchet_sdk/v0/clients/rest/models/workflow_concurrency.py +0 -107
  164. hatchet_sdk/v0/clients/rest/models/workflow_deployment_config.py +0 -136
  165. hatchet_sdk/v0/clients/rest/models/workflow_kind.py +0 -38
  166. hatchet_sdk/v0/clients/rest/models/workflow_list.py +0 -120
  167. hatchet_sdk/v0/clients/rest/models/workflow_metrics.py +0 -97
  168. hatchet_sdk/v0/clients/rest/models/workflow_run.py +0 -188
  169. hatchet_sdk/v0/clients/rest/models/workflow_run_cancel200_response.py +0 -85
  170. hatchet_sdk/v0/clients/rest/models/workflow_run_list.py +0 -110
  171. hatchet_sdk/v0/clients/rest/models/workflow_run_order_by_direction.py +0 -37
  172. hatchet_sdk/v0/clients/rest/models/workflow_run_order_by_field.py +0 -39
  173. hatchet_sdk/v0/clients/rest/models/workflow_run_shape.py +0 -186
  174. hatchet_sdk/v0/clients/rest/models/workflow_run_status.py +0 -42
  175. hatchet_sdk/v0/clients/rest/models/workflow_run_triggered_by.py +0 -112
  176. hatchet_sdk/v0/clients/rest/models/workflow_runs_cancel_request.py +0 -85
  177. hatchet_sdk/v0/clients/rest/models/workflow_runs_metrics.py +0 -94
  178. hatchet_sdk/v0/clients/rest/models/workflow_runs_metrics_counts.py +0 -104
  179. hatchet_sdk/v0/clients/rest/models/workflow_tag.py +0 -84
  180. hatchet_sdk/v0/clients/rest/models/workflow_trigger_cron_ref.py +0 -86
  181. hatchet_sdk/v0/clients/rest/models/workflow_trigger_event_ref.py +0 -86
  182. hatchet_sdk/v0/clients/rest/models/workflow_triggers.py +0 -141
  183. hatchet_sdk/v0/clients/rest/models/workflow_update_request.py +0 -85
  184. hatchet_sdk/v0/clients/rest/models/workflow_version.py +0 -170
  185. hatchet_sdk/v0/clients/rest/models/workflow_version_concurrency.py +0 -114
  186. hatchet_sdk/v0/clients/rest/models/workflow_version_definition.py +0 -85
  187. hatchet_sdk/v0/clients/rest/models/workflow_version_meta.py +0 -123
  188. hatchet_sdk/v0/clients/rest/models/workflow_workers_count.py +0 -95
  189. hatchet_sdk/v0/clients/rest/rest.py +0 -187
  190. hatchet_sdk/v0/clients/rest/tenacity_utils.py +0 -39
  191. hatchet_sdk/v0/clients/rest_client.py +0 -622
  192. hatchet_sdk/v0/clients/run_event_listener.py +0 -260
  193. hatchet_sdk/v0/clients/workflow_listener.py +0 -277
  194. hatchet_sdk/v0/connection.py +0 -63
  195. hatchet_sdk/v0/context/__init__.py +0 -1
  196. hatchet_sdk/v0/context/context.py +0 -446
  197. hatchet_sdk/v0/context/worker_context.py +0 -28
  198. hatchet_sdk/v0/features/cron.py +0 -286
  199. hatchet_sdk/v0/features/scheduled.py +0 -248
  200. hatchet_sdk/v0/hatchet.py +0 -310
  201. hatchet_sdk/v0/labels.py +0 -10
  202. hatchet_sdk/v0/loader.py +0 -244
  203. hatchet_sdk/v0/metadata.py +0 -2
  204. hatchet_sdk/v0/opentelemetry/instrumentor.py +0 -393
  205. hatchet_sdk/v0/rate_limit.py +0 -126
  206. hatchet_sdk/v0/semver.py +0 -30
  207. hatchet_sdk/v0/token.py +0 -27
  208. hatchet_sdk/v0/utils/aio_utils.py +0 -137
  209. hatchet_sdk/v0/utils/backoff.py +0 -9
  210. hatchet_sdk/v0/utils/types.py +0 -8
  211. hatchet_sdk/v0/utils/typing.py +0 -12
  212. hatchet_sdk/v0/v2/callable.py +0 -202
  213. hatchet_sdk/v0/v2/concurrency.py +0 -47
  214. hatchet_sdk/v0/v2/hatchet.py +0 -224
  215. hatchet_sdk/v0/worker/__init__.py +0 -1
  216. hatchet_sdk/v0/worker/action_listener_process.py +0 -294
  217. hatchet_sdk/v0/worker/runner/run_loop_manager.py +0 -112
  218. hatchet_sdk/v0/worker/runner/runner.py +0 -460
  219. hatchet_sdk/v0/worker/runner/utils/capture_logs.py +0 -81
  220. hatchet_sdk/v0/worker/runner/utils/error_with_traceback.py +0 -6
  221. hatchet_sdk/v0/worker/worker.py +0 -391
  222. hatchet_sdk/v0/workflow.py +0 -261
  223. hatchet_sdk/v0/workflow_run.py +0 -59
  224. {hatchet_sdk-1.18.1.dist-info → hatchet_sdk-1.19.0.dist-info}/WHEEL +0 -0
  225. {hatchet_sdk-1.18.1.dist-info → hatchet_sdk-1.19.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_)