hatchet-sdk 0.42.3__tar.gz → 0.42.4__tar.gz
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.
- {hatchet_sdk-0.42.3 → hatchet_sdk-0.42.4}/PKG-INFO +1 -1
- {hatchet_sdk-0.42.3 → hatchet_sdk-0.42.4}/hatchet_sdk/clients/admin.py +6 -6
- {hatchet_sdk-0.42.3 → hatchet_sdk-0.42.4}/hatchet_sdk/clients/dispatcher/dispatcher.py +22 -15
- {hatchet_sdk-0.42.3 → hatchet_sdk-0.42.4}/hatchet_sdk/clients/events.py +3 -3
- {hatchet_sdk-0.42.3 → hatchet_sdk-0.42.4}/hatchet_sdk/clients/rest/models/workflow_list.py +4 -4
- {hatchet_sdk-0.42.3 → hatchet_sdk-0.42.4}/hatchet_sdk/clients/rest/models/workflow_run.py +10 -10
- {hatchet_sdk-0.42.3 → hatchet_sdk-0.42.4}/hatchet_sdk/context/context.py +9 -7
- {hatchet_sdk-0.42.3 → hatchet_sdk-0.42.4}/hatchet_sdk/context/worker_context.py +5 -5
- {hatchet_sdk-0.42.3 → hatchet_sdk-0.42.4}/hatchet_sdk/hatchet.py +64 -48
- {hatchet_sdk-0.42.3 → hatchet_sdk-0.42.4}/hatchet_sdk/labels.py +1 -1
- {hatchet_sdk-0.42.3 → hatchet_sdk-0.42.4}/hatchet_sdk/utils/aio_utils.py +13 -4
- {hatchet_sdk-0.42.3 → hatchet_sdk-0.42.4}/hatchet_sdk/utils/typing.py +4 -1
- {hatchet_sdk-0.42.3 → hatchet_sdk-0.42.4}/hatchet_sdk/v2/callable.py +23 -20
- {hatchet_sdk-0.42.3 → hatchet_sdk-0.42.4}/hatchet_sdk/v2/concurrency.py +10 -8
- {hatchet_sdk-0.42.3 → hatchet_sdk-0.42.4}/hatchet_sdk/v2/hatchet.py +38 -36
- {hatchet_sdk-0.42.3 → hatchet_sdk-0.42.4}/hatchet_sdk/worker/runner/runner.py +1 -1
- {hatchet_sdk-0.42.3 → hatchet_sdk-0.42.4}/hatchet_sdk/worker/worker.py +16 -9
- {hatchet_sdk-0.42.3 → hatchet_sdk-0.42.4}/hatchet_sdk/workflow.py +21 -9
- {hatchet_sdk-0.42.3 → hatchet_sdk-0.42.4}/pyproject.toml +8 -3
- {hatchet_sdk-0.42.3 → hatchet_sdk-0.42.4}/README.md +0 -0
- {hatchet_sdk-0.42.3 → hatchet_sdk-0.42.4}/hatchet_sdk/__init__.py +0 -0
- {hatchet_sdk-0.42.3 → hatchet_sdk-0.42.4}/hatchet_sdk/client.py +0 -0
- {hatchet_sdk-0.42.3 → hatchet_sdk-0.42.4}/hatchet_sdk/clients/dispatcher/action_listener.py +0 -0
- {hatchet_sdk-0.42.3 → hatchet_sdk-0.42.4}/hatchet_sdk/clients/event_ts.py +0 -0
- {hatchet_sdk-0.42.3 → hatchet_sdk-0.42.4}/hatchet_sdk/clients/rest/__init__.py +0 -0
- {hatchet_sdk-0.42.3 → hatchet_sdk-0.42.4}/hatchet_sdk/clients/rest/api/__init__.py +0 -0
- {hatchet_sdk-0.42.3 → hatchet_sdk-0.42.4}/hatchet_sdk/clients/rest/api/api_token_api.py +0 -0
- {hatchet_sdk-0.42.3 → hatchet_sdk-0.42.4}/hatchet_sdk/clients/rest/api/default_api.py +0 -0
- {hatchet_sdk-0.42.3 → hatchet_sdk-0.42.4}/hatchet_sdk/clients/rest/api/event_api.py +0 -0
- {hatchet_sdk-0.42.3 → hatchet_sdk-0.42.4}/hatchet_sdk/clients/rest/api/github_api.py +0 -0
- {hatchet_sdk-0.42.3 → hatchet_sdk-0.42.4}/hatchet_sdk/clients/rest/api/healthcheck_api.py +0 -0
- {hatchet_sdk-0.42.3 → hatchet_sdk-0.42.4}/hatchet_sdk/clients/rest/api/log_api.py +0 -0
- {hatchet_sdk-0.42.3 → hatchet_sdk-0.42.4}/hatchet_sdk/clients/rest/api/metadata_api.py +0 -0
- {hatchet_sdk-0.42.3 → hatchet_sdk-0.42.4}/hatchet_sdk/clients/rest/api/rate_limits_api.py +0 -0
- {hatchet_sdk-0.42.3 → hatchet_sdk-0.42.4}/hatchet_sdk/clients/rest/api/slack_api.py +0 -0
- {hatchet_sdk-0.42.3 → hatchet_sdk-0.42.4}/hatchet_sdk/clients/rest/api/sns_api.py +0 -0
- {hatchet_sdk-0.42.3 → hatchet_sdk-0.42.4}/hatchet_sdk/clients/rest/api/step_run_api.py +0 -0
- {hatchet_sdk-0.42.3 → hatchet_sdk-0.42.4}/hatchet_sdk/clients/rest/api/tenant_api.py +0 -0
- {hatchet_sdk-0.42.3 → hatchet_sdk-0.42.4}/hatchet_sdk/clients/rest/api/user_api.py +0 -0
- {hatchet_sdk-0.42.3 → hatchet_sdk-0.42.4}/hatchet_sdk/clients/rest/api/worker_api.py +0 -0
- {hatchet_sdk-0.42.3 → hatchet_sdk-0.42.4}/hatchet_sdk/clients/rest/api/workflow_api.py +0 -0
- {hatchet_sdk-0.42.3 → hatchet_sdk-0.42.4}/hatchet_sdk/clients/rest/api/workflow_run_api.py +0 -0
- {hatchet_sdk-0.42.3 → hatchet_sdk-0.42.4}/hatchet_sdk/clients/rest/api/workflow_runs_api.py +0 -0
- {hatchet_sdk-0.42.3 → hatchet_sdk-0.42.4}/hatchet_sdk/clients/rest/api_client.py +0 -0
- {hatchet_sdk-0.42.3 → hatchet_sdk-0.42.4}/hatchet_sdk/clients/rest/api_response.py +0 -0
- {hatchet_sdk-0.42.3 → hatchet_sdk-0.42.4}/hatchet_sdk/clients/rest/configuration.py +0 -0
- {hatchet_sdk-0.42.3 → hatchet_sdk-0.42.4}/hatchet_sdk/clients/rest/exceptions.py +0 -0
- {hatchet_sdk-0.42.3 → hatchet_sdk-0.42.4}/hatchet_sdk/clients/rest/models/__init__.py +0 -0
- {hatchet_sdk-0.42.3 → hatchet_sdk-0.42.4}/hatchet_sdk/clients/rest/models/accept_invite_request.py +0 -0
- {hatchet_sdk-0.42.3 → hatchet_sdk-0.42.4}/hatchet_sdk/clients/rest/models/api_error.py +0 -0
- {hatchet_sdk-0.42.3 → hatchet_sdk-0.42.4}/hatchet_sdk/clients/rest/models/api_errors.py +0 -0
- {hatchet_sdk-0.42.3 → hatchet_sdk-0.42.4}/hatchet_sdk/clients/rest/models/api_meta.py +0 -0
- {hatchet_sdk-0.42.3 → hatchet_sdk-0.42.4}/hatchet_sdk/clients/rest/models/api_meta_auth.py +0 -0
- {hatchet_sdk-0.42.3 → hatchet_sdk-0.42.4}/hatchet_sdk/clients/rest/models/api_meta_integration.py +0 -0
- {hatchet_sdk-0.42.3 → hatchet_sdk-0.42.4}/hatchet_sdk/clients/rest/models/api_meta_posthog.py +0 -0
- {hatchet_sdk-0.42.3 → hatchet_sdk-0.42.4}/hatchet_sdk/clients/rest/models/api_resource_meta.py +0 -0
- {hatchet_sdk-0.42.3 → hatchet_sdk-0.42.4}/hatchet_sdk/clients/rest/models/api_token.py +0 -0
- {hatchet_sdk-0.42.3 → hatchet_sdk-0.42.4}/hatchet_sdk/clients/rest/models/bulk_create_event_request.py +0 -0
- {hatchet_sdk-0.42.3 → hatchet_sdk-0.42.4}/hatchet_sdk/clients/rest/models/bulk_create_event_response.py +0 -0
- {hatchet_sdk-0.42.3 → hatchet_sdk-0.42.4}/hatchet_sdk/clients/rest/models/cancel_event_request.py +0 -0
- {hatchet_sdk-0.42.3 → hatchet_sdk-0.42.4}/hatchet_sdk/clients/rest/models/cancel_step_run_request.py +0 -0
- {hatchet_sdk-0.42.3 → hatchet_sdk-0.42.4}/hatchet_sdk/clients/rest/models/concurrency_limit_strategy.py +0 -0
- {hatchet_sdk-0.42.3 → hatchet_sdk-0.42.4}/hatchet_sdk/clients/rest/models/create_api_token_request.py +0 -0
- {hatchet_sdk-0.42.3 → hatchet_sdk-0.42.4}/hatchet_sdk/clients/rest/models/create_api_token_response.py +0 -0
- {hatchet_sdk-0.42.3 → hatchet_sdk-0.42.4}/hatchet_sdk/clients/rest/models/create_cron_workflow_trigger_request.py +0 -0
- {hatchet_sdk-0.42.3 → hatchet_sdk-0.42.4}/hatchet_sdk/clients/rest/models/create_event_request.py +0 -0
- {hatchet_sdk-0.42.3 → hatchet_sdk-0.42.4}/hatchet_sdk/clients/rest/models/create_pull_request_from_step_run.py +0 -0
- {hatchet_sdk-0.42.3 → hatchet_sdk-0.42.4}/hatchet_sdk/clients/rest/models/create_sns_integration_request.py +0 -0
- {hatchet_sdk-0.42.3 → hatchet_sdk-0.42.4}/hatchet_sdk/clients/rest/models/create_tenant_alert_email_group_request.py +0 -0
- {hatchet_sdk-0.42.3 → hatchet_sdk-0.42.4}/hatchet_sdk/clients/rest/models/create_tenant_invite_request.py +0 -0
- {hatchet_sdk-0.42.3 → hatchet_sdk-0.42.4}/hatchet_sdk/clients/rest/models/create_tenant_request.py +0 -0
- {hatchet_sdk-0.42.3 → hatchet_sdk-0.42.4}/hatchet_sdk/clients/rest/models/cron_workflows.py +0 -0
- {hatchet_sdk-0.42.3 → hatchet_sdk-0.42.4}/hatchet_sdk/clients/rest/models/cron_workflows_list.py +0 -0
- {hatchet_sdk-0.42.3 → hatchet_sdk-0.42.4}/hatchet_sdk/clients/rest/models/cron_workflows_method.py +0 -0
- {hatchet_sdk-0.42.3 → hatchet_sdk-0.42.4}/hatchet_sdk/clients/rest/models/cron_workflows_order_by_field.py +0 -0
- {hatchet_sdk-0.42.3 → hatchet_sdk-0.42.4}/hatchet_sdk/clients/rest/models/event.py +0 -0
- {hatchet_sdk-0.42.3 → hatchet_sdk-0.42.4}/hatchet_sdk/clients/rest/models/event_data.py +0 -0
- {hatchet_sdk-0.42.3 → hatchet_sdk-0.42.4}/hatchet_sdk/clients/rest/models/event_key_list.py +0 -0
- {hatchet_sdk-0.42.3 → hatchet_sdk-0.42.4}/hatchet_sdk/clients/rest/models/event_list.py +0 -0
- {hatchet_sdk-0.42.3 → hatchet_sdk-0.42.4}/hatchet_sdk/clients/rest/models/event_order_by_direction.py +0 -0
- {hatchet_sdk-0.42.3 → hatchet_sdk-0.42.4}/hatchet_sdk/clients/rest/models/event_order_by_field.py +0 -0
- {hatchet_sdk-0.42.3 → hatchet_sdk-0.42.4}/hatchet_sdk/clients/rest/models/event_update_cancel200_response.py +0 -0
- {hatchet_sdk-0.42.3 → hatchet_sdk-0.42.4}/hatchet_sdk/clients/rest/models/event_workflow_run_summary.py +0 -0
- {hatchet_sdk-0.42.3 → hatchet_sdk-0.42.4}/hatchet_sdk/clients/rest/models/events.py +0 -0
- {hatchet_sdk-0.42.3 → hatchet_sdk-0.42.4}/hatchet_sdk/clients/rest/models/get_step_run_diff_response.py +0 -0
- {hatchet_sdk-0.42.3 → hatchet_sdk-0.42.4}/hatchet_sdk/clients/rest/models/github_app_installation.py +0 -0
- {hatchet_sdk-0.42.3 → hatchet_sdk-0.42.4}/hatchet_sdk/clients/rest/models/github_branch.py +0 -0
- {hatchet_sdk-0.42.3 → hatchet_sdk-0.42.4}/hatchet_sdk/clients/rest/models/github_repo.py +0 -0
- {hatchet_sdk-0.42.3 → hatchet_sdk-0.42.4}/hatchet_sdk/clients/rest/models/job.py +0 -0
- {hatchet_sdk-0.42.3 → hatchet_sdk-0.42.4}/hatchet_sdk/clients/rest/models/job_run.py +0 -0
- {hatchet_sdk-0.42.3 → hatchet_sdk-0.42.4}/hatchet_sdk/clients/rest/models/job_run_status.py +0 -0
- {hatchet_sdk-0.42.3 → hatchet_sdk-0.42.4}/hatchet_sdk/clients/rest/models/link_github_repository_request.py +0 -0
- {hatchet_sdk-0.42.3 → hatchet_sdk-0.42.4}/hatchet_sdk/clients/rest/models/list_api_tokens_response.py +0 -0
- {hatchet_sdk-0.42.3 → hatchet_sdk-0.42.4}/hatchet_sdk/clients/rest/models/list_github_app_installations_response.py +0 -0
- {hatchet_sdk-0.42.3 → hatchet_sdk-0.42.4}/hatchet_sdk/clients/rest/models/list_pull_requests_response.py +0 -0
- {hatchet_sdk-0.42.3 → hatchet_sdk-0.42.4}/hatchet_sdk/clients/rest/models/list_slack_webhooks.py +0 -0
- {hatchet_sdk-0.42.3 → hatchet_sdk-0.42.4}/hatchet_sdk/clients/rest/models/list_sns_integrations.py +0 -0
- {hatchet_sdk-0.42.3 → hatchet_sdk-0.42.4}/hatchet_sdk/clients/rest/models/log_line.py +0 -0
- {hatchet_sdk-0.42.3 → hatchet_sdk-0.42.4}/hatchet_sdk/clients/rest/models/log_line_level.py +0 -0
- {hatchet_sdk-0.42.3 → hatchet_sdk-0.42.4}/hatchet_sdk/clients/rest/models/log_line_list.py +0 -0
- {hatchet_sdk-0.42.3 → hatchet_sdk-0.42.4}/hatchet_sdk/clients/rest/models/log_line_order_by_direction.py +0 -0
- {hatchet_sdk-0.42.3 → hatchet_sdk-0.42.4}/hatchet_sdk/clients/rest/models/log_line_order_by_field.py +0 -0
- {hatchet_sdk-0.42.3 → hatchet_sdk-0.42.4}/hatchet_sdk/clients/rest/models/pagination_response.py +0 -0
- {hatchet_sdk-0.42.3 → hatchet_sdk-0.42.4}/hatchet_sdk/clients/rest/models/pull_request.py +0 -0
- {hatchet_sdk-0.42.3 → hatchet_sdk-0.42.4}/hatchet_sdk/clients/rest/models/pull_request_state.py +0 -0
- {hatchet_sdk-0.42.3 → hatchet_sdk-0.42.4}/hatchet_sdk/clients/rest/models/queue_metrics.py +0 -0
- {hatchet_sdk-0.42.3 → hatchet_sdk-0.42.4}/hatchet_sdk/clients/rest/models/rate_limit.py +0 -0
- {hatchet_sdk-0.42.3 → hatchet_sdk-0.42.4}/hatchet_sdk/clients/rest/models/rate_limit_list.py +0 -0
- {hatchet_sdk-0.42.3 → hatchet_sdk-0.42.4}/hatchet_sdk/clients/rest/models/rate_limit_order_by_direction.py +0 -0
- {hatchet_sdk-0.42.3 → hatchet_sdk-0.42.4}/hatchet_sdk/clients/rest/models/rate_limit_order_by_field.py +0 -0
- {hatchet_sdk-0.42.3 → hatchet_sdk-0.42.4}/hatchet_sdk/clients/rest/models/recent_step_runs.py +0 -0
- {hatchet_sdk-0.42.3 → hatchet_sdk-0.42.4}/hatchet_sdk/clients/rest/models/reject_invite_request.py +0 -0
- {hatchet_sdk-0.42.3 → hatchet_sdk-0.42.4}/hatchet_sdk/clients/rest/models/replay_event_request.py +0 -0
- {hatchet_sdk-0.42.3 → hatchet_sdk-0.42.4}/hatchet_sdk/clients/rest/models/replay_workflow_runs_request.py +0 -0
- {hatchet_sdk-0.42.3 → hatchet_sdk-0.42.4}/hatchet_sdk/clients/rest/models/replay_workflow_runs_response.py +0 -0
- {hatchet_sdk-0.42.3 → hatchet_sdk-0.42.4}/hatchet_sdk/clients/rest/models/rerun_step_run_request.py +0 -0
- {hatchet_sdk-0.42.3 → hatchet_sdk-0.42.4}/hatchet_sdk/clients/rest/models/schedule_workflow_run_request.py +0 -0
- {hatchet_sdk-0.42.3 → hatchet_sdk-0.42.4}/hatchet_sdk/clients/rest/models/scheduled_run_status.py +0 -0
- {hatchet_sdk-0.42.3 → hatchet_sdk-0.42.4}/hatchet_sdk/clients/rest/models/scheduled_workflows.py +0 -0
- {hatchet_sdk-0.42.3 → hatchet_sdk-0.42.4}/hatchet_sdk/clients/rest/models/scheduled_workflows_list.py +0 -0
- {hatchet_sdk-0.42.3 → hatchet_sdk-0.42.4}/hatchet_sdk/clients/rest/models/scheduled_workflows_method.py +0 -0
- {hatchet_sdk-0.42.3 → hatchet_sdk-0.42.4}/hatchet_sdk/clients/rest/models/scheduled_workflows_order_by_field.py +0 -0
- {hatchet_sdk-0.42.3 → hatchet_sdk-0.42.4}/hatchet_sdk/clients/rest/models/semaphore_slots.py +0 -0
- {hatchet_sdk-0.42.3 → hatchet_sdk-0.42.4}/hatchet_sdk/clients/rest/models/slack_webhook.py +0 -0
- {hatchet_sdk-0.42.3 → hatchet_sdk-0.42.4}/hatchet_sdk/clients/rest/models/sns_integration.py +0 -0
- {hatchet_sdk-0.42.3 → hatchet_sdk-0.42.4}/hatchet_sdk/clients/rest/models/step.py +0 -0
- {hatchet_sdk-0.42.3 → hatchet_sdk-0.42.4}/hatchet_sdk/clients/rest/models/step_run.py +0 -0
- {hatchet_sdk-0.42.3 → hatchet_sdk-0.42.4}/hatchet_sdk/clients/rest/models/step_run_archive.py +0 -0
- {hatchet_sdk-0.42.3 → hatchet_sdk-0.42.4}/hatchet_sdk/clients/rest/models/step_run_archive_list.py +0 -0
- {hatchet_sdk-0.42.3 → hatchet_sdk-0.42.4}/hatchet_sdk/clients/rest/models/step_run_diff.py +0 -0
- {hatchet_sdk-0.42.3 → hatchet_sdk-0.42.4}/hatchet_sdk/clients/rest/models/step_run_event.py +0 -0
- {hatchet_sdk-0.42.3 → hatchet_sdk-0.42.4}/hatchet_sdk/clients/rest/models/step_run_event_list.py +0 -0
- {hatchet_sdk-0.42.3 → hatchet_sdk-0.42.4}/hatchet_sdk/clients/rest/models/step_run_event_reason.py +0 -0
- {hatchet_sdk-0.42.3 → hatchet_sdk-0.42.4}/hatchet_sdk/clients/rest/models/step_run_event_severity.py +0 -0
- {hatchet_sdk-0.42.3 → hatchet_sdk-0.42.4}/hatchet_sdk/clients/rest/models/step_run_status.py +0 -0
- {hatchet_sdk-0.42.3 → hatchet_sdk-0.42.4}/hatchet_sdk/clients/rest/models/tenant.py +0 -0
- {hatchet_sdk-0.42.3 → hatchet_sdk-0.42.4}/hatchet_sdk/clients/rest/models/tenant_alert_email_group.py +0 -0
- {hatchet_sdk-0.42.3 → hatchet_sdk-0.42.4}/hatchet_sdk/clients/rest/models/tenant_alert_email_group_list.py +0 -0
- {hatchet_sdk-0.42.3 → hatchet_sdk-0.42.4}/hatchet_sdk/clients/rest/models/tenant_alerting_settings.py +0 -0
- {hatchet_sdk-0.42.3 → hatchet_sdk-0.42.4}/hatchet_sdk/clients/rest/models/tenant_invite.py +0 -0
- {hatchet_sdk-0.42.3 → hatchet_sdk-0.42.4}/hatchet_sdk/clients/rest/models/tenant_invite_list.py +0 -0
- {hatchet_sdk-0.42.3 → hatchet_sdk-0.42.4}/hatchet_sdk/clients/rest/models/tenant_list.py +0 -0
- {hatchet_sdk-0.42.3 → hatchet_sdk-0.42.4}/hatchet_sdk/clients/rest/models/tenant_member.py +0 -0
- {hatchet_sdk-0.42.3 → hatchet_sdk-0.42.4}/hatchet_sdk/clients/rest/models/tenant_member_list.py +0 -0
- {hatchet_sdk-0.42.3 → hatchet_sdk-0.42.4}/hatchet_sdk/clients/rest/models/tenant_member_role.py +0 -0
- {hatchet_sdk-0.42.3 → hatchet_sdk-0.42.4}/hatchet_sdk/clients/rest/models/tenant_queue_metrics.py +0 -0
- {hatchet_sdk-0.42.3 → hatchet_sdk-0.42.4}/hatchet_sdk/clients/rest/models/tenant_resource.py +0 -0
- {hatchet_sdk-0.42.3 → hatchet_sdk-0.42.4}/hatchet_sdk/clients/rest/models/tenant_resource_limit.py +0 -0
- {hatchet_sdk-0.42.3 → hatchet_sdk-0.42.4}/hatchet_sdk/clients/rest/models/tenant_resource_policy.py +0 -0
- {hatchet_sdk-0.42.3 → hatchet_sdk-0.42.4}/hatchet_sdk/clients/rest/models/tenant_step_run_queue_metrics.py +0 -0
- {hatchet_sdk-0.42.3 → hatchet_sdk-0.42.4}/hatchet_sdk/clients/rest/models/trigger_workflow_run_request.py +0 -0
- {hatchet_sdk-0.42.3 → hatchet_sdk-0.42.4}/hatchet_sdk/clients/rest/models/update_tenant_alert_email_group_request.py +0 -0
- {hatchet_sdk-0.42.3 → hatchet_sdk-0.42.4}/hatchet_sdk/clients/rest/models/update_tenant_invite_request.py +0 -0
- {hatchet_sdk-0.42.3 → hatchet_sdk-0.42.4}/hatchet_sdk/clients/rest/models/update_tenant_request.py +0 -0
- {hatchet_sdk-0.42.3 → hatchet_sdk-0.42.4}/hatchet_sdk/clients/rest/models/update_worker_request.py +0 -0
- {hatchet_sdk-0.42.3 → hatchet_sdk-0.42.4}/hatchet_sdk/clients/rest/models/user.py +0 -0
- {hatchet_sdk-0.42.3 → hatchet_sdk-0.42.4}/hatchet_sdk/clients/rest/models/user_change_password_request.py +0 -0
- {hatchet_sdk-0.42.3 → hatchet_sdk-0.42.4}/hatchet_sdk/clients/rest/models/user_login_request.py +0 -0
- {hatchet_sdk-0.42.3 → hatchet_sdk-0.42.4}/hatchet_sdk/clients/rest/models/user_register_request.py +0 -0
- {hatchet_sdk-0.42.3 → hatchet_sdk-0.42.4}/hatchet_sdk/clients/rest/models/user_tenant_memberships_list.py +0 -0
- {hatchet_sdk-0.42.3 → hatchet_sdk-0.42.4}/hatchet_sdk/clients/rest/models/user_tenant_public.py +0 -0
- {hatchet_sdk-0.42.3 → hatchet_sdk-0.42.4}/hatchet_sdk/clients/rest/models/webhook_worker.py +0 -0
- {hatchet_sdk-0.42.3 → hatchet_sdk-0.42.4}/hatchet_sdk/clients/rest/models/webhook_worker_create_request.py +0 -0
- {hatchet_sdk-0.42.3 → hatchet_sdk-0.42.4}/hatchet_sdk/clients/rest/models/webhook_worker_create_response.py +0 -0
- {hatchet_sdk-0.42.3 → hatchet_sdk-0.42.4}/hatchet_sdk/clients/rest/models/webhook_worker_created.py +0 -0
- {hatchet_sdk-0.42.3 → hatchet_sdk-0.42.4}/hatchet_sdk/clients/rest/models/webhook_worker_list_response.py +0 -0
- {hatchet_sdk-0.42.3 → hatchet_sdk-0.42.4}/hatchet_sdk/clients/rest/models/webhook_worker_request.py +0 -0
- {hatchet_sdk-0.42.3 → hatchet_sdk-0.42.4}/hatchet_sdk/clients/rest/models/webhook_worker_request_list_response.py +0 -0
- {hatchet_sdk-0.42.3 → hatchet_sdk-0.42.4}/hatchet_sdk/clients/rest/models/webhook_worker_request_method.py +0 -0
- {hatchet_sdk-0.42.3 → hatchet_sdk-0.42.4}/hatchet_sdk/clients/rest/models/worker.py +0 -0
- {hatchet_sdk-0.42.3 → hatchet_sdk-0.42.4}/hatchet_sdk/clients/rest/models/worker_label.py +0 -0
- {hatchet_sdk-0.42.3 → hatchet_sdk-0.42.4}/hatchet_sdk/clients/rest/models/worker_list.py +0 -0
- {hatchet_sdk-0.42.3 → hatchet_sdk-0.42.4}/hatchet_sdk/clients/rest/models/worker_runtime_info.py +0 -0
- {hatchet_sdk-0.42.3 → hatchet_sdk-0.42.4}/hatchet_sdk/clients/rest/models/worker_runtime_sdks.py +0 -0
- {hatchet_sdk-0.42.3 → hatchet_sdk-0.42.4}/hatchet_sdk/clients/rest/models/worker_type.py +0 -0
- {hatchet_sdk-0.42.3 → hatchet_sdk-0.42.4}/hatchet_sdk/clients/rest/models/workflow.py +0 -0
- {hatchet_sdk-0.42.3 → hatchet_sdk-0.42.4}/hatchet_sdk/clients/rest/models/workflow_concurrency.py +0 -0
- {hatchet_sdk-0.42.3 → hatchet_sdk-0.42.4}/hatchet_sdk/clients/rest/models/workflow_deployment_config.py +0 -0
- {hatchet_sdk-0.42.3 → hatchet_sdk-0.42.4}/hatchet_sdk/clients/rest/models/workflow_kind.py +0 -0
- {hatchet_sdk-0.42.3 → hatchet_sdk-0.42.4}/hatchet_sdk/clients/rest/models/workflow_metrics.py +0 -0
- {hatchet_sdk-0.42.3 → hatchet_sdk-0.42.4}/hatchet_sdk/clients/rest/models/workflow_run_cancel200_response.py +0 -0
- {hatchet_sdk-0.42.3 → hatchet_sdk-0.42.4}/hatchet_sdk/clients/rest/models/workflow_run_list.py +0 -0
- {hatchet_sdk-0.42.3 → hatchet_sdk-0.42.4}/hatchet_sdk/clients/rest/models/workflow_run_order_by_direction.py +0 -0
- {hatchet_sdk-0.42.3 → hatchet_sdk-0.42.4}/hatchet_sdk/clients/rest/models/workflow_run_order_by_field.py +0 -0
- {hatchet_sdk-0.42.3 → hatchet_sdk-0.42.4}/hatchet_sdk/clients/rest/models/workflow_run_shape.py +0 -0
- {hatchet_sdk-0.42.3 → hatchet_sdk-0.42.4}/hatchet_sdk/clients/rest/models/workflow_run_status.py +0 -0
- {hatchet_sdk-0.42.3 → hatchet_sdk-0.42.4}/hatchet_sdk/clients/rest/models/workflow_run_triggered_by.py +0 -0
- {hatchet_sdk-0.42.3 → hatchet_sdk-0.42.4}/hatchet_sdk/clients/rest/models/workflow_runs_cancel_request.py +0 -0
- {hatchet_sdk-0.42.3 → hatchet_sdk-0.42.4}/hatchet_sdk/clients/rest/models/workflow_runs_metrics.py +0 -0
- {hatchet_sdk-0.42.3 → hatchet_sdk-0.42.4}/hatchet_sdk/clients/rest/models/workflow_runs_metrics_counts.py +0 -0
- {hatchet_sdk-0.42.3 → hatchet_sdk-0.42.4}/hatchet_sdk/clients/rest/models/workflow_tag.py +0 -0
- {hatchet_sdk-0.42.3 → hatchet_sdk-0.42.4}/hatchet_sdk/clients/rest/models/workflow_trigger_cron_ref.py +0 -0
- {hatchet_sdk-0.42.3 → hatchet_sdk-0.42.4}/hatchet_sdk/clients/rest/models/workflow_trigger_event_ref.py +0 -0
- {hatchet_sdk-0.42.3 → hatchet_sdk-0.42.4}/hatchet_sdk/clients/rest/models/workflow_triggers.py +0 -0
- {hatchet_sdk-0.42.3 → hatchet_sdk-0.42.4}/hatchet_sdk/clients/rest/models/workflow_update_request.py +0 -0
- {hatchet_sdk-0.42.3 → hatchet_sdk-0.42.4}/hatchet_sdk/clients/rest/models/workflow_version.py +0 -0
- {hatchet_sdk-0.42.3 → hatchet_sdk-0.42.4}/hatchet_sdk/clients/rest/models/workflow_version_concurrency.py +0 -0
- {hatchet_sdk-0.42.3 → hatchet_sdk-0.42.4}/hatchet_sdk/clients/rest/models/workflow_version_definition.py +0 -0
- {hatchet_sdk-0.42.3 → hatchet_sdk-0.42.4}/hatchet_sdk/clients/rest/models/workflow_version_meta.py +0 -0
- {hatchet_sdk-0.42.3 → hatchet_sdk-0.42.4}/hatchet_sdk/clients/rest/models/workflow_workers_count.py +0 -0
- {hatchet_sdk-0.42.3 → hatchet_sdk-0.42.4}/hatchet_sdk/clients/rest/rest.py +0 -0
- {hatchet_sdk-0.42.3 → hatchet_sdk-0.42.4}/hatchet_sdk/clients/rest/tenacity_utils.py +0 -0
- {hatchet_sdk-0.42.3 → hatchet_sdk-0.42.4}/hatchet_sdk/clients/rest_client.py +0 -0
- {hatchet_sdk-0.42.3 → hatchet_sdk-0.42.4}/hatchet_sdk/clients/run_event_listener.py +0 -0
- {hatchet_sdk-0.42.3 → hatchet_sdk-0.42.4}/hatchet_sdk/clients/workflow_listener.py +0 -0
- {hatchet_sdk-0.42.3 → hatchet_sdk-0.42.4}/hatchet_sdk/connection.py +0 -0
- {hatchet_sdk-0.42.3 → hatchet_sdk-0.42.4}/hatchet_sdk/context/__init__.py +0 -0
- {hatchet_sdk-0.42.3 → hatchet_sdk-0.42.4}/hatchet_sdk/contracts/dispatcher_pb2.py +0 -0
- {hatchet_sdk-0.42.3 → hatchet_sdk-0.42.4}/hatchet_sdk/contracts/dispatcher_pb2.pyi +0 -0
- {hatchet_sdk-0.42.3 → hatchet_sdk-0.42.4}/hatchet_sdk/contracts/dispatcher_pb2_grpc.py +0 -0
- {hatchet_sdk-0.42.3 → hatchet_sdk-0.42.4}/hatchet_sdk/contracts/events_pb2.py +0 -0
- {hatchet_sdk-0.42.3 → hatchet_sdk-0.42.4}/hatchet_sdk/contracts/events_pb2.pyi +0 -0
- {hatchet_sdk-0.42.3 → hatchet_sdk-0.42.4}/hatchet_sdk/contracts/events_pb2_grpc.py +0 -0
- {hatchet_sdk-0.42.3 → hatchet_sdk-0.42.4}/hatchet_sdk/contracts/workflows_pb2.py +0 -0
- {hatchet_sdk-0.42.3 → hatchet_sdk-0.42.4}/hatchet_sdk/contracts/workflows_pb2.pyi +0 -0
- {hatchet_sdk-0.42.3 → hatchet_sdk-0.42.4}/hatchet_sdk/contracts/workflows_pb2_grpc.py +0 -0
- {hatchet_sdk-0.42.3 → hatchet_sdk-0.42.4}/hatchet_sdk/features/cron.py +0 -0
- {hatchet_sdk-0.42.3 → hatchet_sdk-0.42.4}/hatchet_sdk/features/scheduled.py +0 -0
- {hatchet_sdk-0.42.3 → hatchet_sdk-0.42.4}/hatchet_sdk/loader.py +0 -0
- {hatchet_sdk-0.42.3 → hatchet_sdk-0.42.4}/hatchet_sdk/logger.py +0 -0
- {hatchet_sdk-0.42.3 → hatchet_sdk-0.42.4}/hatchet_sdk/metadata.py +0 -0
- {hatchet_sdk-0.42.3 → hatchet_sdk-0.42.4}/hatchet_sdk/rate_limit.py +0 -0
- {hatchet_sdk-0.42.3 → hatchet_sdk-0.42.4}/hatchet_sdk/semver.py +0 -0
- {hatchet_sdk-0.42.3 → hatchet_sdk-0.42.4}/hatchet_sdk/token.py +0 -0
- {hatchet_sdk-0.42.3 → hatchet_sdk-0.42.4}/hatchet_sdk/utils/backoff.py +0 -0
- {hatchet_sdk-0.42.3 → hatchet_sdk-0.42.4}/hatchet_sdk/utils/serialization.py +0 -0
- {hatchet_sdk-0.42.3 → hatchet_sdk-0.42.4}/hatchet_sdk/utils/tracing.py +0 -0
- {hatchet_sdk-0.42.3 → hatchet_sdk-0.42.4}/hatchet_sdk/utils/types.py +0 -0
- {hatchet_sdk-0.42.3 → hatchet_sdk-0.42.4}/hatchet_sdk/worker/__init__.py +0 -0
- {hatchet_sdk-0.42.3 → hatchet_sdk-0.42.4}/hatchet_sdk/worker/action_listener_process.py +0 -0
- {hatchet_sdk-0.42.3 → hatchet_sdk-0.42.4}/hatchet_sdk/worker/runner/run_loop_manager.py +0 -0
- {hatchet_sdk-0.42.3 → hatchet_sdk-0.42.4}/hatchet_sdk/worker/runner/utils/capture_logs.py +0 -0
- {hatchet_sdk-0.42.3 → hatchet_sdk-0.42.4}/hatchet_sdk/worker/runner/utils/error_with_traceback.py +0 -0
- {hatchet_sdk-0.42.3 → hatchet_sdk-0.42.4}/hatchet_sdk/workflow_run.py +0 -0
|
@@ -41,7 +41,7 @@ def new_admin(config: ClientConfig):
|
|
|
41
41
|
return AdminClient(config)
|
|
42
42
|
|
|
43
43
|
|
|
44
|
-
class ScheduleTriggerWorkflowOptions(TypedDict):
|
|
44
|
+
class ScheduleTriggerWorkflowOptions(TypedDict, total=False):
|
|
45
45
|
parent_id: Optional[str]
|
|
46
46
|
parent_step_run_id: Optional[str]
|
|
47
47
|
child_index: Optional[int]
|
|
@@ -49,25 +49,25 @@ class ScheduleTriggerWorkflowOptions(TypedDict):
|
|
|
49
49
|
namespace: Optional[str]
|
|
50
50
|
|
|
51
51
|
|
|
52
|
-
class ChildTriggerWorkflowOptions(TypedDict):
|
|
52
|
+
class ChildTriggerWorkflowOptions(TypedDict, total=False):
|
|
53
53
|
additional_metadata: Dict[str, str] | None = None
|
|
54
54
|
sticky: bool | None = None
|
|
55
55
|
|
|
56
56
|
|
|
57
|
-
class ChildWorkflowRunDict(TypedDict):
|
|
57
|
+
class ChildWorkflowRunDict(TypedDict, total=False):
|
|
58
58
|
workflow_name: str
|
|
59
59
|
input: Any
|
|
60
60
|
options: ChildTriggerWorkflowOptions
|
|
61
61
|
key: str | None = None
|
|
62
62
|
|
|
63
63
|
|
|
64
|
-
class TriggerWorkflowOptions(ScheduleTriggerWorkflowOptions,
|
|
64
|
+
class TriggerWorkflowOptions(ScheduleTriggerWorkflowOptions, total=False):
|
|
65
65
|
additional_metadata: Dict[str, str] | None = None
|
|
66
66
|
desired_worker_id: str | None = None
|
|
67
67
|
namespace: str | None = None
|
|
68
68
|
|
|
69
69
|
|
|
70
|
-
class WorkflowRunDict(TypedDict):
|
|
70
|
+
class WorkflowRunDict(TypedDict, total=False):
|
|
71
71
|
workflow_name: str
|
|
72
72
|
input: Any
|
|
73
73
|
options: TriggerWorkflowOptions | None
|
|
@@ -425,7 +425,7 @@ class AdminClient(AdminClientBase):
|
|
|
425
425
|
self,
|
|
426
426
|
key: str,
|
|
427
427
|
limit: int,
|
|
428
|
-
duration: RateLimitDuration = RateLimitDuration.SECOND,
|
|
428
|
+
duration: Union[RateLimitDuration.Value, str] = RateLimitDuration.SECOND,
|
|
429
429
|
):
|
|
430
430
|
try:
|
|
431
431
|
self.client.PutRateLimit(
|
|
@@ -1,3 +1,5 @@
|
|
|
1
|
+
from typing import Any, cast
|
|
2
|
+
|
|
1
3
|
from google.protobuf.timestamp_pb2 import Timestamp
|
|
2
4
|
|
|
3
5
|
from hatchet_sdk.clients.dispatcher.action_listener import (
|
|
@@ -31,7 +33,7 @@ from ...metadata import get_metadata
|
|
|
31
33
|
DEFAULT_REGISTER_TIMEOUT = 30
|
|
32
34
|
|
|
33
35
|
|
|
34
|
-
def new_dispatcher(config: ClientConfig):
|
|
36
|
+
def new_dispatcher(config: ClientConfig) -> "DispatcherClient":
|
|
35
37
|
return DispatcherClient(config=config)
|
|
36
38
|
|
|
37
39
|
|
|
@@ -40,10 +42,10 @@ class DispatcherClient:
|
|
|
40
42
|
|
|
41
43
|
def __init__(self, config: ClientConfig):
|
|
42
44
|
conn = new_conn(config)
|
|
43
|
-
self.client = DispatcherStub(conn)
|
|
45
|
+
self.client = DispatcherStub(conn) # type: ignore[no-untyped-call]
|
|
44
46
|
|
|
45
47
|
aio_conn = new_conn(config, True)
|
|
46
|
-
self.aio_client = DispatcherStub(aio_conn)
|
|
48
|
+
self.aio_client = DispatcherStub(aio_conn) # type: ignore[no-untyped-call]
|
|
47
49
|
self.token = config.token
|
|
48
50
|
self.config = config
|
|
49
51
|
|
|
@@ -67,7 +69,7 @@ class DispatcherClient:
|
|
|
67
69
|
|
|
68
70
|
async def send_step_action_event(
|
|
69
71
|
self, action: Action, event_type: StepActionEventType, payload: str
|
|
70
|
-
):
|
|
72
|
+
) -> Any:
|
|
71
73
|
try:
|
|
72
74
|
return await self._try_send_step_action_event(action, event_type, payload)
|
|
73
75
|
except Exception as e:
|
|
@@ -87,7 +89,7 @@ class DispatcherClient:
|
|
|
87
89
|
@tenacity_retry
|
|
88
90
|
async def _try_send_step_action_event(
|
|
89
91
|
self, action: Action, event_type: StepActionEventType, payload: str
|
|
90
|
-
):
|
|
92
|
+
) -> Any:
|
|
91
93
|
eventTimestamp = Timestamp()
|
|
92
94
|
eventTimestamp.GetCurrentTime()
|
|
93
95
|
|
|
@@ -103,6 +105,7 @@ class DispatcherClient:
|
|
|
103
105
|
eventPayload=payload,
|
|
104
106
|
)
|
|
105
107
|
|
|
108
|
+
## TODO: What does this return?
|
|
106
109
|
return await self.aio_client.SendStepActionEvent(
|
|
107
110
|
event,
|
|
108
111
|
metadata=get_metadata(self.token),
|
|
@@ -110,7 +113,7 @@ class DispatcherClient:
|
|
|
110
113
|
|
|
111
114
|
async def send_group_key_action_event(
|
|
112
115
|
self, action: Action, event_type: GroupKeyActionEventType, payload: str
|
|
113
|
-
):
|
|
116
|
+
) -> Any:
|
|
114
117
|
eventTimestamp = Timestamp()
|
|
115
118
|
eventTimestamp.GetCurrentTime()
|
|
116
119
|
|
|
@@ -124,19 +127,21 @@ class DispatcherClient:
|
|
|
124
127
|
eventPayload=payload,
|
|
125
128
|
)
|
|
126
129
|
|
|
130
|
+
## TODO: What does this return?
|
|
127
131
|
return await self.aio_client.SendGroupKeyActionEvent(
|
|
128
132
|
event,
|
|
129
133
|
metadata=get_metadata(self.token),
|
|
130
134
|
)
|
|
131
135
|
|
|
132
|
-
def put_overrides_data(self, data: OverridesData):
|
|
133
|
-
|
|
134
|
-
|
|
135
|
-
|
|
136
|
+
def put_overrides_data(self, data: OverridesData) -> ActionEventResponse:
|
|
137
|
+
return cast(
|
|
138
|
+
ActionEventResponse,
|
|
139
|
+
self.client.PutOverridesData(
|
|
140
|
+
data,
|
|
141
|
+
metadata=get_metadata(self.token),
|
|
142
|
+
),
|
|
136
143
|
)
|
|
137
144
|
|
|
138
|
-
return response
|
|
139
|
-
|
|
140
145
|
def release_slot(self, step_run_id: str) -> None:
|
|
141
146
|
self.client.ReleaseSlot(
|
|
142
147
|
ReleaseSlotRequest(stepRunId=step_run_id),
|
|
@@ -154,7 +159,9 @@ class DispatcherClient:
|
|
|
154
159
|
metadata=get_metadata(self.token),
|
|
155
160
|
)
|
|
156
161
|
|
|
157
|
-
def upsert_worker_labels(
|
|
162
|
+
def upsert_worker_labels(
|
|
163
|
+
self, worker_id: str | None, labels: dict[str, str | int]
|
|
164
|
+
) -> None:
|
|
158
165
|
worker_labels = {}
|
|
159
166
|
|
|
160
167
|
for key, value in labels.items():
|
|
@@ -171,9 +178,9 @@ class DispatcherClient:
|
|
|
171
178
|
|
|
172
179
|
async def async_upsert_worker_labels(
|
|
173
180
|
self,
|
|
174
|
-
worker_id: str,
|
|
181
|
+
worker_id: str | None,
|
|
175
182
|
labels: dict[str, str | int],
|
|
176
|
-
):
|
|
183
|
+
) -> None:
|
|
177
184
|
worker_labels = {}
|
|
178
185
|
|
|
179
186
|
for key, value in labels.items():
|
|
@@ -43,16 +43,16 @@ def proto_timestamp_now():
|
|
|
43
43
|
return timestamp_pb2.Timestamp(seconds=seconds, nanos=nanos)
|
|
44
44
|
|
|
45
45
|
|
|
46
|
-
class PushEventOptions(TypedDict):
|
|
46
|
+
class PushEventOptions(TypedDict, total=False):
|
|
47
47
|
additional_metadata: Dict[str, str] | None = None
|
|
48
48
|
namespace: str | None = None
|
|
49
49
|
|
|
50
50
|
|
|
51
|
-
class BulkPushEventOptions(TypedDict):
|
|
51
|
+
class BulkPushEventOptions(TypedDict, total=False):
|
|
52
52
|
namespace: str | None = None
|
|
53
53
|
|
|
54
54
|
|
|
55
|
-
class BulkPushEventWithMetadata(TypedDict):
|
|
55
|
+
class BulkPushEventWithMetadata(TypedDict, total=False):
|
|
56
56
|
key: str
|
|
57
57
|
payload: Any
|
|
58
58
|
additional_metadata: Optional[Dict[str, Any]] # Optional metadata
|
|
@@ -32,10 +32,10 @@ class WorkflowList(BaseModel):
|
|
|
32
32
|
WorkflowList
|
|
33
33
|
""" # noqa: E501
|
|
34
34
|
|
|
35
|
-
metadata:
|
|
36
|
-
rows:
|
|
37
|
-
pagination:
|
|
38
|
-
__properties: ClassVar[
|
|
35
|
+
metadata: APIResourceMeta | None = None
|
|
36
|
+
rows: list[Workflow] | None = None
|
|
37
|
+
pagination: PaginationResponse | None = None
|
|
38
|
+
__properties: ClassVar[list[str]] = ["metadata", "rows", "pagination"]
|
|
39
39
|
|
|
40
40
|
model_config = ConfigDict(
|
|
41
41
|
populate_by_name=True,
|
|
@@ -39,28 +39,28 @@ class WorkflowRun(BaseModel):
|
|
|
39
39
|
metadata: APIResourceMeta
|
|
40
40
|
tenant_id: StrictStr = Field(alias="tenantId")
|
|
41
41
|
workflow_version_id: StrictStr = Field(alias="workflowVersionId")
|
|
42
|
-
workflow_version:
|
|
42
|
+
workflow_version: WorkflowVersion | None = Field(
|
|
43
43
|
default=None, alias="workflowVersion"
|
|
44
44
|
)
|
|
45
45
|
status: WorkflowRunStatus
|
|
46
|
-
display_name:
|
|
47
|
-
job_runs:
|
|
46
|
+
display_name: StrictStr | None = Field(default=None, alias="displayName")
|
|
47
|
+
job_runs: list[JobRun] | None = Field(default=None, alias="jobRuns")
|
|
48
48
|
triggered_by: WorkflowRunTriggeredBy = Field(alias="triggeredBy")
|
|
49
|
-
input:
|
|
50
|
-
error:
|
|
51
|
-
started_at:
|
|
52
|
-
finished_at:
|
|
53
|
-
duration:
|
|
49
|
+
input: dict[str, Any] | None = None
|
|
50
|
+
error: StrictStr | None = None
|
|
51
|
+
started_at: datetime | None = Field(default=None, alias="startedAt")
|
|
52
|
+
finished_at: datetime | None = Field(default=None, alias="finishedAt")
|
|
53
|
+
duration: StrictInt | None = None
|
|
54
54
|
parent_id: Optional[
|
|
55
55
|
Annotated[str, Field(min_length=36, strict=True, max_length=36)]
|
|
56
56
|
] = Field(default=None, alias="parentId")
|
|
57
57
|
parent_step_run_id: Optional[
|
|
58
58
|
Annotated[str, Field(min_length=36, strict=True, max_length=36)]
|
|
59
59
|
] = Field(default=None, alias="parentStepRunId")
|
|
60
|
-
additional_metadata:
|
|
60
|
+
additional_metadata: dict[str, Any] | None = Field(
|
|
61
61
|
default=None, alias="additionalMetadata"
|
|
62
62
|
)
|
|
63
|
-
__properties: ClassVar[
|
|
63
|
+
__properties: ClassVar[list[str]] = [
|
|
64
64
|
"metadata",
|
|
65
65
|
"tenantId",
|
|
66
66
|
"workflowVersionId",
|
|
@@ -13,8 +13,8 @@ from hatchet_sdk.clients.rest_client import RestApi
|
|
|
13
13
|
from hatchet_sdk.clients.run_event_listener import RunEventListenerClient
|
|
14
14
|
from hatchet_sdk.clients.workflow_listener import PooledWorkflowRunListener
|
|
15
15
|
from hatchet_sdk.context.worker_context import WorkerContext
|
|
16
|
-
from hatchet_sdk.contracts.dispatcher_pb2 import OverridesData
|
|
17
|
-
from hatchet_sdk.contracts.workflows_pb2 import (
|
|
16
|
+
from hatchet_sdk.contracts.dispatcher_pb2 import OverridesData
|
|
17
|
+
from hatchet_sdk.contracts.workflows_pb2 import (
|
|
18
18
|
BulkTriggerWorkflowRequest,
|
|
19
19
|
TriggerWorkflowRequest,
|
|
20
20
|
)
|
|
@@ -69,7 +69,7 @@ class BaseContext:
|
|
|
69
69
|
meta = options["additional_metadata"]
|
|
70
70
|
|
|
71
71
|
## TODO: Pydantic here to simplify this
|
|
72
|
-
trigger_options: TriggerWorkflowOptions = {
|
|
72
|
+
trigger_options: TriggerWorkflowOptions = {
|
|
73
73
|
"parent_id": workflow_run_id,
|
|
74
74
|
"parent_step_run_id": step_run_id,
|
|
75
75
|
"child_key": key,
|
|
@@ -149,8 +149,7 @@ class ContextAioImpl(BaseContext):
|
|
|
149
149
|
key = child_workflow_run.get("key")
|
|
150
150
|
options = child_workflow_run.get("options", {})
|
|
151
151
|
|
|
152
|
-
|
|
153
|
-
trigger_options = self._prepare_workflow_options(key, options, worker_id) # type: ignore[arg-type]
|
|
152
|
+
trigger_options = self._prepare_workflow_options(key, options, worker_id)
|
|
154
153
|
|
|
155
154
|
bulk_trigger_workflow_runs.append(
|
|
156
155
|
WorkflowRunDict(
|
|
@@ -238,14 +237,17 @@ class Context(BaseContext):
|
|
|
238
237
|
self.input = self.data.get("input", {})
|
|
239
238
|
|
|
240
239
|
def step_output(self, step: str) -> dict[str, Any] | BaseModel:
|
|
241
|
-
|
|
240
|
+
workflow_validator = next(
|
|
241
|
+
(v for k, v in self.validator_registry.items() if k.split(":")[-1] == step),
|
|
242
|
+
None,
|
|
243
|
+
)
|
|
242
244
|
|
|
243
245
|
try:
|
|
244
246
|
parent_step_data = cast(dict[str, Any], self.data["parents"][step])
|
|
245
247
|
except KeyError:
|
|
246
248
|
raise ValueError(f"Step output for '{step}' not found")
|
|
247
249
|
|
|
248
|
-
if
|
|
250
|
+
if workflow_validator and (v := workflow_validator.step_output):
|
|
249
251
|
return v.model_validate(parent_step_data)
|
|
250
252
|
|
|
251
253
|
return parent_step_data
|
|
@@ -2,7 +2,7 @@ from hatchet_sdk.clients.dispatcher.dispatcher import DispatcherClient
|
|
|
2
2
|
|
|
3
3
|
|
|
4
4
|
class WorkerContext:
|
|
5
|
-
_worker_id: str = None
|
|
5
|
+
_worker_id: str | None = None
|
|
6
6
|
_registered_workflow_names: list[str] = []
|
|
7
7
|
_labels: dict[str, str | int] = {}
|
|
8
8
|
|
|
@@ -10,18 +10,18 @@ class WorkerContext:
|
|
|
10
10
|
self._labels = labels
|
|
11
11
|
self.client = client
|
|
12
12
|
|
|
13
|
-
def labels(self):
|
|
13
|
+
def labels(self) -> dict[str, str | int]:
|
|
14
14
|
return self._labels
|
|
15
15
|
|
|
16
|
-
def upsert_labels(self, labels: dict[str, str | int]):
|
|
16
|
+
def upsert_labels(self, labels: dict[str, str | int]) -> None:
|
|
17
17
|
self.client.upsert_worker_labels(self._worker_id, labels)
|
|
18
18
|
self._labels.update(labels)
|
|
19
19
|
|
|
20
|
-
async def async_upsert_labels(self, labels: dict[str, str | int]):
|
|
20
|
+
async def async_upsert_labels(self, labels: dict[str, str | int]) -> None:
|
|
21
21
|
await self.client.async_upsert_worker_labels(self._worker_id, labels)
|
|
22
22
|
self._labels.update(labels)
|
|
23
23
|
|
|
24
|
-
def id(self) -> str:
|
|
24
|
+
def id(self) -> str | None:
|
|
25
25
|
return self._worker_id
|
|
26
26
|
|
|
27
27
|
# def has_workflow(self, workflow_name: str):
|
|
@@ -1,15 +1,13 @@
|
|
|
1
1
|
import asyncio
|
|
2
2
|
import logging
|
|
3
|
-
from typing import Any, Callable, Optional, Type, TypeVar,
|
|
3
|
+
from typing import Any, Callable, Optional, Type, TypeVar, Union
|
|
4
4
|
|
|
5
5
|
from pydantic import BaseModel
|
|
6
6
|
from typing_extensions import deprecated
|
|
7
7
|
|
|
8
8
|
from hatchet_sdk.clients.rest_client import RestApi
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
## There are file-level type ignore lines in the corresponding .pyi files.
|
|
12
|
-
from hatchet_sdk.contracts.workflows_pb2 import ( # type: ignore[attr-defined]
|
|
9
|
+
from hatchet_sdk.context.context import Context
|
|
10
|
+
from hatchet_sdk.contracts.workflows_pb2 import (
|
|
13
11
|
ConcurrencyLimitStrategy,
|
|
14
12
|
CreateStepRateLimit,
|
|
15
13
|
DesiredWorkerLabels,
|
|
@@ -20,6 +18,7 @@ from hatchet_sdk.features.scheduled import ScheduledClient
|
|
|
20
18
|
from hatchet_sdk.labels import DesiredWorkerLabel
|
|
21
19
|
from hatchet_sdk.loader import ClientConfig, ConfigLoader
|
|
22
20
|
from hatchet_sdk.rate_limit import RateLimit
|
|
21
|
+
from hatchet_sdk.v2.callable import HatchetCallable
|
|
23
22
|
|
|
24
23
|
from .client import Client, new_client, new_client_raw
|
|
25
24
|
from .clients.admin import AdminClient
|
|
@@ -36,6 +35,7 @@ from .workflow import (
|
|
|
36
35
|
)
|
|
37
36
|
|
|
38
37
|
T = TypeVar("T", bound=BaseModel)
|
|
38
|
+
TWorkflow = TypeVar("TWorkflow", bound=object)
|
|
39
39
|
|
|
40
40
|
|
|
41
41
|
def workflow(
|
|
@@ -45,30 +45,35 @@ def workflow(
|
|
|
45
45
|
version: str = "",
|
|
46
46
|
timeout: str = "60m",
|
|
47
47
|
schedule_timeout: str = "5m",
|
|
48
|
-
sticky: StickyStrategy = None,
|
|
48
|
+
sticky: Union[StickyStrategy.Value, None] = None, # type: ignore[name-defined]
|
|
49
49
|
default_priority: int | None = None,
|
|
50
50
|
concurrency: ConcurrencyExpression | None = None,
|
|
51
51
|
input_validator: Type[T] | None = None,
|
|
52
|
-
) -> Callable[[Type[
|
|
52
|
+
) -> Callable[[Type[TWorkflow]], WorkflowMeta]:
|
|
53
53
|
on_events = on_events or []
|
|
54
54
|
on_crons = on_crons or []
|
|
55
55
|
|
|
56
|
-
def inner(cls: Type[
|
|
57
|
-
|
|
58
|
-
|
|
59
|
-
|
|
60
|
-
cls
|
|
61
|
-
cls
|
|
62
|
-
cls
|
|
63
|
-
cls
|
|
64
|
-
cls
|
|
65
|
-
cls
|
|
56
|
+
def inner(cls: Type[TWorkflow]) -> WorkflowMeta:
|
|
57
|
+
nonlocal name
|
|
58
|
+
name = name or str(cls.__name__)
|
|
59
|
+
|
|
60
|
+
setattr(cls, "on_events", on_events)
|
|
61
|
+
setattr(cls, "on_crons", on_crons)
|
|
62
|
+
setattr(cls, "name", name)
|
|
63
|
+
setattr(cls, "version", version)
|
|
64
|
+
setattr(cls, "timeout", timeout)
|
|
65
|
+
setattr(cls, "schedule_timeout", schedule_timeout)
|
|
66
|
+
setattr(cls, "sticky", sticky)
|
|
67
|
+
setattr(cls, "default_priority", default_priority)
|
|
68
|
+
setattr(cls, "concurrency_expression", concurrency)
|
|
69
|
+
|
|
66
70
|
# Define a new class with the same name and bases as the original, but
|
|
67
71
|
# with WorkflowMeta as its metaclass
|
|
68
72
|
|
|
69
73
|
## TODO: Figure out how to type this metaclass correctly
|
|
70
|
-
cls
|
|
71
|
-
|
|
74
|
+
setattr(cls, "input_validator", input_validator)
|
|
75
|
+
|
|
76
|
+
return WorkflowMeta(name, cls.__bases__, dict(cls.__dict__))
|
|
72
77
|
|
|
73
78
|
return inner
|
|
74
79
|
|
|
@@ -82,34 +87,39 @@ def step(
|
|
|
82
87
|
desired_worker_labels: dict[str, DesiredWorkerLabel] = {},
|
|
83
88
|
backoff_factor: float | None = None,
|
|
84
89
|
backoff_max_seconds: int | None = None,
|
|
85
|
-
) -> Callable[
|
|
90
|
+
) -> Callable[..., Any]:
|
|
86
91
|
parents = parents or []
|
|
87
92
|
|
|
88
|
-
def inner(func:
|
|
93
|
+
def inner(func: Callable[[Context], Any]) -> Callable[[Context], Any]:
|
|
89
94
|
limits = None
|
|
90
95
|
if rate_limits:
|
|
91
96
|
limits = [rate_limit._req for rate_limit in rate_limits or []]
|
|
92
97
|
|
|
93
|
-
func
|
|
94
|
-
func
|
|
95
|
-
func
|
|
96
|
-
func
|
|
97
|
-
func
|
|
98
|
-
func
|
|
99
|
-
func
|
|
100
|
-
|
|
101
|
-
func._step_desired_worker_labels = {}
|
|
98
|
+
setattr(func, "_step_name", name.lower() or str(func.__name__).lower())
|
|
99
|
+
setattr(func, "_step_parents", parents)
|
|
100
|
+
setattr(func, "_step_timeout", timeout)
|
|
101
|
+
setattr(func, "_step_retries", retries)
|
|
102
|
+
setattr(func, "_step_rate_limits", retries)
|
|
103
|
+
setattr(func, "_step_rate_limits", limits)
|
|
104
|
+
setattr(func, "_step_backoff_factor", backoff_factor)
|
|
105
|
+
setattr(func, "_step_backoff_max_seconds", backoff_max_seconds)
|
|
102
106
|
|
|
103
|
-
|
|
107
|
+
def create_label(d: DesiredWorkerLabel) -> DesiredWorkerLabels:
|
|
104
108
|
value = d["value"] if "value" in d else None
|
|
105
|
-
|
|
109
|
+
return DesiredWorkerLabels(
|
|
106
110
|
strValue=str(value) if not isinstance(value, int) else None,
|
|
107
111
|
intValue=value if isinstance(value, int) else None,
|
|
108
|
-
required=d["required"] if "required" in d else None,
|
|
112
|
+
required=d["required"] if "required" in d else None, # type: ignore[arg-type]
|
|
109
113
|
weight=d["weight"] if "weight" in d else None,
|
|
110
|
-
comparator=d["comparator"] if "comparator" in d else None,
|
|
114
|
+
comparator=d["comparator"] if "comparator" in d else None, # type: ignore[arg-type]
|
|
111
115
|
)
|
|
112
116
|
|
|
117
|
+
setattr(
|
|
118
|
+
func,
|
|
119
|
+
"_step_desired_worker_labels",
|
|
120
|
+
{key: create_label(d) for key, d in desired_worker_labels.items()},
|
|
121
|
+
)
|
|
122
|
+
|
|
113
123
|
return func
|
|
114
124
|
|
|
115
125
|
return inner
|
|
@@ -122,21 +132,23 @@ def on_failure_step(
|
|
|
122
132
|
rate_limits: list[RateLimit] | None = None,
|
|
123
133
|
backoff_factor: float | None = None,
|
|
124
134
|
backoff_max_seconds: int | None = None,
|
|
125
|
-
) -> Callable[
|
|
126
|
-
def inner(func:
|
|
135
|
+
) -> Callable[..., Any]:
|
|
136
|
+
def inner(func: Callable[[Context], Any]) -> Callable[[Context], Any]:
|
|
127
137
|
limits = None
|
|
128
138
|
if rate_limits:
|
|
129
139
|
limits = [
|
|
130
|
-
CreateStepRateLimit(key=rate_limit.static_key, units=rate_limit.units)
|
|
140
|
+
CreateStepRateLimit(key=rate_limit.static_key, units=rate_limit.units) # type: ignore[arg-type]
|
|
131
141
|
for rate_limit in rate_limits or []
|
|
132
142
|
]
|
|
133
143
|
|
|
134
|
-
|
|
135
|
-
|
|
136
|
-
|
|
137
|
-
func
|
|
138
|
-
func
|
|
139
|
-
func
|
|
144
|
+
setattr(
|
|
145
|
+
func, "_on_failure_step_name", name.lower() or str(func.__name__).lower()
|
|
146
|
+
)
|
|
147
|
+
setattr(func, "_on_failure_step_timeout", timeout)
|
|
148
|
+
setattr(func, "_on_failure_step_retries", retries)
|
|
149
|
+
setattr(func, "_on_failure_step_rate_limits", limits)
|
|
150
|
+
setattr(func, "_on_failure_step_backoff_factor", backoff_factor)
|
|
151
|
+
setattr(func, "_on_failure_step_backoff_max_seconds", backoff_max_seconds)
|
|
140
152
|
|
|
141
153
|
return func
|
|
142
154
|
|
|
@@ -147,11 +159,15 @@ def concurrency(
|
|
|
147
159
|
name: str = "",
|
|
148
160
|
max_runs: int = 1,
|
|
149
161
|
limit_strategy: ConcurrencyLimitStrategy = ConcurrencyLimitStrategy.CANCEL_IN_PROGRESS,
|
|
150
|
-
) -> Callable[
|
|
151
|
-
def inner(func:
|
|
152
|
-
|
|
153
|
-
|
|
154
|
-
|
|
162
|
+
) -> Callable[..., Any]:
|
|
163
|
+
def inner(func: Callable[[Context], Any]) -> Callable[[Context], Any]:
|
|
164
|
+
setattr(
|
|
165
|
+
func,
|
|
166
|
+
"_concurrency_fn_name",
|
|
167
|
+
name.lower() or str(func.__name__).lower(),
|
|
168
|
+
)
|
|
169
|
+
setattr(func, "_concurrency_max_runs", max_runs)
|
|
170
|
+
setattr(func, "_concurrency_limit_strategy", limit_strategy)
|
|
155
171
|
|
|
156
172
|
return func
|
|
157
173
|
|
|
@@ -1,10 +1,13 @@
|
|
|
1
1
|
import asyncio
|
|
2
2
|
import inspect
|
|
3
|
+
from concurrent.futures import Executor
|
|
3
4
|
from functools import partial, wraps
|
|
4
5
|
from threading import Thread
|
|
6
|
+
from typing import Any
|
|
5
7
|
|
|
6
8
|
|
|
7
|
-
|
|
9
|
+
## TODO: Stricter typing here
|
|
10
|
+
def sync_to_async(func: Any) -> Any:
|
|
8
11
|
"""
|
|
9
12
|
A decorator to run a synchronous function or coroutine in an asynchronous context with added
|
|
10
13
|
asyncio loop safety.
|
|
@@ -40,8 +43,14 @@ def sync_to_async(func):
|
|
|
40
43
|
asyncio.run(main())
|
|
41
44
|
"""
|
|
42
45
|
|
|
46
|
+
## TODO: Stricter typing here
|
|
43
47
|
@wraps(func)
|
|
44
|
-
async def run(
|
|
48
|
+
async def run(
|
|
49
|
+
*args: Any,
|
|
50
|
+
loop: asyncio.AbstractEventLoop | None = None,
|
|
51
|
+
executor: Executor | None = None,
|
|
52
|
+
**kwargs: Any
|
|
53
|
+
) -> Any:
|
|
45
54
|
"""
|
|
46
55
|
The asynchronous wrapper function that runs the given function in an executor.
|
|
47
56
|
|
|
@@ -59,7 +68,7 @@ def sync_to_async(func):
|
|
|
59
68
|
|
|
60
69
|
if inspect.iscoroutinefunction(func):
|
|
61
70
|
# Wrap the coroutine to run it in an executor
|
|
62
|
-
async def wrapper():
|
|
71
|
+
async def wrapper() -> Any:
|
|
63
72
|
return await func(*args, **kwargs)
|
|
64
73
|
|
|
65
74
|
pfunc = partial(asyncio.run, wrapper())
|
|
@@ -75,7 +84,7 @@ def sync_to_async(func):
|
|
|
75
84
|
class EventLoopThread:
|
|
76
85
|
"""A class that manages an asyncio event loop running in a separate thread."""
|
|
77
86
|
|
|
78
|
-
def __init__(self):
|
|
87
|
+
def __init__(self) -> None:
|
|
79
88
|
"""
|
|
80
89
|
Initializes the EventLoopThread by creating an event loop
|
|
81
90
|
and setting up a thread to run the loop.
|
|
@@ -1,8 +1,19 @@
|
|
|
1
1
|
import asyncio
|
|
2
|
-
from typing import
|
|
2
|
+
from typing import (
|
|
3
|
+
Any,
|
|
4
|
+
Callable,
|
|
5
|
+
Dict,
|
|
6
|
+
Generic,
|
|
7
|
+
List,
|
|
8
|
+
Optional,
|
|
9
|
+
TypedDict,
|
|
10
|
+
TypeVar,
|
|
11
|
+
Union,
|
|
12
|
+
)
|
|
3
13
|
|
|
4
|
-
from hatchet_sdk.
|
|
5
|
-
from hatchet_sdk.
|
|
14
|
+
from hatchet_sdk.clients.admin import ChildTriggerWorkflowOptions
|
|
15
|
+
from hatchet_sdk.context.context import Context
|
|
16
|
+
from hatchet_sdk.contracts.workflows_pb2 import ( # type: ignore[attr-defined]
|
|
6
17
|
CreateStepRateLimit,
|
|
7
18
|
CreateWorkflowJobOpts,
|
|
8
19
|
CreateWorkflowStepOpts,
|
|
@@ -28,8 +39,8 @@ class HatchetCallable(Generic[T]):
|
|
|
28
39
|
durable: bool = False,
|
|
29
40
|
name: str = "",
|
|
30
41
|
auto_register: bool = True,
|
|
31
|
-
on_events: list | None = None,
|
|
32
|
-
on_crons: list | None = None,
|
|
42
|
+
on_events: list[str] | None = None,
|
|
43
|
+
on_crons: list[str] | None = None,
|
|
33
44
|
version: str = "",
|
|
34
45
|
timeout: str = "60m",
|
|
35
46
|
schedule_timeout: str = "5m",
|
|
@@ -37,8 +48,8 @@ class HatchetCallable(Generic[T]):
|
|
|
37
48
|
retries: int = 0,
|
|
38
49
|
rate_limits: List[RateLimit] | None = None,
|
|
39
50
|
concurrency: ConcurrencyFunction | None = None,
|
|
40
|
-
on_failure:
|
|
41
|
-
desired_worker_labels: dict[str
|
|
51
|
+
on_failure: Union["HatchetCallable[T]", None] = None,
|
|
52
|
+
desired_worker_labels: dict[str, DesiredWorkerLabel] = {},
|
|
42
53
|
default_priority: int | None = None,
|
|
43
54
|
):
|
|
44
55
|
self.func = func
|
|
@@ -85,7 +96,7 @@ class HatchetCallable(Generic[T]):
|
|
|
85
96
|
def __call__(self, context: Context) -> T:
|
|
86
97
|
return self.func(context)
|
|
87
98
|
|
|
88
|
-
def with_namespace(self, namespace: str):
|
|
99
|
+
def with_namespace(self, namespace: str) -> None:
|
|
89
100
|
if namespace is not None and namespace != "":
|
|
90
101
|
self.function_namespace = namespace
|
|
91
102
|
self.function_name = namespace + self.function_name
|
|
@@ -161,21 +172,13 @@ class HatchetCallable(Generic[T]):
|
|
|
161
172
|
return self.function_namespace + ":" + self.function_name
|
|
162
173
|
|
|
163
174
|
|
|
164
|
-
T = TypeVar("T")
|
|
165
|
-
|
|
166
|
-
|
|
167
|
-
class TriggerOptions(TypedDict):
|
|
168
|
-
additional_metadata: Dict[str, str] | None = None
|
|
169
|
-
sticky: bool | None = None
|
|
170
|
-
|
|
171
|
-
|
|
172
175
|
class DurableContext(Context):
|
|
173
176
|
def run(
|
|
174
177
|
self,
|
|
175
|
-
function:
|
|
176
|
-
input: dict = {},
|
|
177
|
-
key: str = None,
|
|
178
|
-
options:
|
|
178
|
+
function: str | Callable[[Context], Any],
|
|
179
|
+
input: dict[Any, Any] = {},
|
|
180
|
+
key: str | None = None,
|
|
181
|
+
options: ChildTriggerWorkflowOptions | None = None,
|
|
179
182
|
) -> "RunRef[T]":
|
|
180
183
|
worker_id = self.worker.id()
|
|
181
184
|
|