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