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.

Files changed (234) hide show
  1. {hatchet_sdk-0.42.3 → hatchet_sdk-0.42.4}/PKG-INFO +1 -1
  2. {hatchet_sdk-0.42.3 → hatchet_sdk-0.42.4}/hatchet_sdk/clients/admin.py +6 -6
  3. {hatchet_sdk-0.42.3 → hatchet_sdk-0.42.4}/hatchet_sdk/clients/dispatcher/dispatcher.py +22 -15
  4. {hatchet_sdk-0.42.3 → hatchet_sdk-0.42.4}/hatchet_sdk/clients/events.py +3 -3
  5. {hatchet_sdk-0.42.3 → hatchet_sdk-0.42.4}/hatchet_sdk/clients/rest/models/workflow_list.py +4 -4
  6. {hatchet_sdk-0.42.3 → hatchet_sdk-0.42.4}/hatchet_sdk/clients/rest/models/workflow_run.py +10 -10
  7. {hatchet_sdk-0.42.3 → hatchet_sdk-0.42.4}/hatchet_sdk/context/context.py +9 -7
  8. {hatchet_sdk-0.42.3 → hatchet_sdk-0.42.4}/hatchet_sdk/context/worker_context.py +5 -5
  9. {hatchet_sdk-0.42.3 → hatchet_sdk-0.42.4}/hatchet_sdk/hatchet.py +64 -48
  10. {hatchet_sdk-0.42.3 → hatchet_sdk-0.42.4}/hatchet_sdk/labels.py +1 -1
  11. {hatchet_sdk-0.42.3 → hatchet_sdk-0.42.4}/hatchet_sdk/utils/aio_utils.py +13 -4
  12. {hatchet_sdk-0.42.3 → hatchet_sdk-0.42.4}/hatchet_sdk/utils/typing.py +4 -1
  13. {hatchet_sdk-0.42.3 → hatchet_sdk-0.42.4}/hatchet_sdk/v2/callable.py +23 -20
  14. {hatchet_sdk-0.42.3 → hatchet_sdk-0.42.4}/hatchet_sdk/v2/concurrency.py +10 -8
  15. {hatchet_sdk-0.42.3 → hatchet_sdk-0.42.4}/hatchet_sdk/v2/hatchet.py +38 -36
  16. {hatchet_sdk-0.42.3 → hatchet_sdk-0.42.4}/hatchet_sdk/worker/runner/runner.py +1 -1
  17. {hatchet_sdk-0.42.3 → hatchet_sdk-0.42.4}/hatchet_sdk/worker/worker.py +16 -9
  18. {hatchet_sdk-0.42.3 → hatchet_sdk-0.42.4}/hatchet_sdk/workflow.py +21 -9
  19. {hatchet_sdk-0.42.3 → hatchet_sdk-0.42.4}/pyproject.toml +8 -3
  20. {hatchet_sdk-0.42.3 → hatchet_sdk-0.42.4}/README.md +0 -0
  21. {hatchet_sdk-0.42.3 → hatchet_sdk-0.42.4}/hatchet_sdk/__init__.py +0 -0
  22. {hatchet_sdk-0.42.3 → hatchet_sdk-0.42.4}/hatchet_sdk/client.py +0 -0
  23. {hatchet_sdk-0.42.3 → hatchet_sdk-0.42.4}/hatchet_sdk/clients/dispatcher/action_listener.py +0 -0
  24. {hatchet_sdk-0.42.3 → hatchet_sdk-0.42.4}/hatchet_sdk/clients/event_ts.py +0 -0
  25. {hatchet_sdk-0.42.3 → hatchet_sdk-0.42.4}/hatchet_sdk/clients/rest/__init__.py +0 -0
  26. {hatchet_sdk-0.42.3 → hatchet_sdk-0.42.4}/hatchet_sdk/clients/rest/api/__init__.py +0 -0
  27. {hatchet_sdk-0.42.3 → hatchet_sdk-0.42.4}/hatchet_sdk/clients/rest/api/api_token_api.py +0 -0
  28. {hatchet_sdk-0.42.3 → hatchet_sdk-0.42.4}/hatchet_sdk/clients/rest/api/default_api.py +0 -0
  29. {hatchet_sdk-0.42.3 → hatchet_sdk-0.42.4}/hatchet_sdk/clients/rest/api/event_api.py +0 -0
  30. {hatchet_sdk-0.42.3 → hatchet_sdk-0.42.4}/hatchet_sdk/clients/rest/api/github_api.py +0 -0
  31. {hatchet_sdk-0.42.3 → hatchet_sdk-0.42.4}/hatchet_sdk/clients/rest/api/healthcheck_api.py +0 -0
  32. {hatchet_sdk-0.42.3 → hatchet_sdk-0.42.4}/hatchet_sdk/clients/rest/api/log_api.py +0 -0
  33. {hatchet_sdk-0.42.3 → hatchet_sdk-0.42.4}/hatchet_sdk/clients/rest/api/metadata_api.py +0 -0
  34. {hatchet_sdk-0.42.3 → hatchet_sdk-0.42.4}/hatchet_sdk/clients/rest/api/rate_limits_api.py +0 -0
  35. {hatchet_sdk-0.42.3 → hatchet_sdk-0.42.4}/hatchet_sdk/clients/rest/api/slack_api.py +0 -0
  36. {hatchet_sdk-0.42.3 → hatchet_sdk-0.42.4}/hatchet_sdk/clients/rest/api/sns_api.py +0 -0
  37. {hatchet_sdk-0.42.3 → hatchet_sdk-0.42.4}/hatchet_sdk/clients/rest/api/step_run_api.py +0 -0
  38. {hatchet_sdk-0.42.3 → hatchet_sdk-0.42.4}/hatchet_sdk/clients/rest/api/tenant_api.py +0 -0
  39. {hatchet_sdk-0.42.3 → hatchet_sdk-0.42.4}/hatchet_sdk/clients/rest/api/user_api.py +0 -0
  40. {hatchet_sdk-0.42.3 → hatchet_sdk-0.42.4}/hatchet_sdk/clients/rest/api/worker_api.py +0 -0
  41. {hatchet_sdk-0.42.3 → hatchet_sdk-0.42.4}/hatchet_sdk/clients/rest/api/workflow_api.py +0 -0
  42. {hatchet_sdk-0.42.3 → hatchet_sdk-0.42.4}/hatchet_sdk/clients/rest/api/workflow_run_api.py +0 -0
  43. {hatchet_sdk-0.42.3 → hatchet_sdk-0.42.4}/hatchet_sdk/clients/rest/api/workflow_runs_api.py +0 -0
  44. {hatchet_sdk-0.42.3 → hatchet_sdk-0.42.4}/hatchet_sdk/clients/rest/api_client.py +0 -0
  45. {hatchet_sdk-0.42.3 → hatchet_sdk-0.42.4}/hatchet_sdk/clients/rest/api_response.py +0 -0
  46. {hatchet_sdk-0.42.3 → hatchet_sdk-0.42.4}/hatchet_sdk/clients/rest/configuration.py +0 -0
  47. {hatchet_sdk-0.42.3 → hatchet_sdk-0.42.4}/hatchet_sdk/clients/rest/exceptions.py +0 -0
  48. {hatchet_sdk-0.42.3 → hatchet_sdk-0.42.4}/hatchet_sdk/clients/rest/models/__init__.py +0 -0
  49. {hatchet_sdk-0.42.3 → hatchet_sdk-0.42.4}/hatchet_sdk/clients/rest/models/accept_invite_request.py +0 -0
  50. {hatchet_sdk-0.42.3 → hatchet_sdk-0.42.4}/hatchet_sdk/clients/rest/models/api_error.py +0 -0
  51. {hatchet_sdk-0.42.3 → hatchet_sdk-0.42.4}/hatchet_sdk/clients/rest/models/api_errors.py +0 -0
  52. {hatchet_sdk-0.42.3 → hatchet_sdk-0.42.4}/hatchet_sdk/clients/rest/models/api_meta.py +0 -0
  53. {hatchet_sdk-0.42.3 → hatchet_sdk-0.42.4}/hatchet_sdk/clients/rest/models/api_meta_auth.py +0 -0
  54. {hatchet_sdk-0.42.3 → hatchet_sdk-0.42.4}/hatchet_sdk/clients/rest/models/api_meta_integration.py +0 -0
  55. {hatchet_sdk-0.42.3 → hatchet_sdk-0.42.4}/hatchet_sdk/clients/rest/models/api_meta_posthog.py +0 -0
  56. {hatchet_sdk-0.42.3 → hatchet_sdk-0.42.4}/hatchet_sdk/clients/rest/models/api_resource_meta.py +0 -0
  57. {hatchet_sdk-0.42.3 → hatchet_sdk-0.42.4}/hatchet_sdk/clients/rest/models/api_token.py +0 -0
  58. {hatchet_sdk-0.42.3 → hatchet_sdk-0.42.4}/hatchet_sdk/clients/rest/models/bulk_create_event_request.py +0 -0
  59. {hatchet_sdk-0.42.3 → hatchet_sdk-0.42.4}/hatchet_sdk/clients/rest/models/bulk_create_event_response.py +0 -0
  60. {hatchet_sdk-0.42.3 → hatchet_sdk-0.42.4}/hatchet_sdk/clients/rest/models/cancel_event_request.py +0 -0
  61. {hatchet_sdk-0.42.3 → hatchet_sdk-0.42.4}/hatchet_sdk/clients/rest/models/cancel_step_run_request.py +0 -0
  62. {hatchet_sdk-0.42.3 → hatchet_sdk-0.42.4}/hatchet_sdk/clients/rest/models/concurrency_limit_strategy.py +0 -0
  63. {hatchet_sdk-0.42.3 → hatchet_sdk-0.42.4}/hatchet_sdk/clients/rest/models/create_api_token_request.py +0 -0
  64. {hatchet_sdk-0.42.3 → hatchet_sdk-0.42.4}/hatchet_sdk/clients/rest/models/create_api_token_response.py +0 -0
  65. {hatchet_sdk-0.42.3 → hatchet_sdk-0.42.4}/hatchet_sdk/clients/rest/models/create_cron_workflow_trigger_request.py +0 -0
  66. {hatchet_sdk-0.42.3 → hatchet_sdk-0.42.4}/hatchet_sdk/clients/rest/models/create_event_request.py +0 -0
  67. {hatchet_sdk-0.42.3 → hatchet_sdk-0.42.4}/hatchet_sdk/clients/rest/models/create_pull_request_from_step_run.py +0 -0
  68. {hatchet_sdk-0.42.3 → hatchet_sdk-0.42.4}/hatchet_sdk/clients/rest/models/create_sns_integration_request.py +0 -0
  69. {hatchet_sdk-0.42.3 → hatchet_sdk-0.42.4}/hatchet_sdk/clients/rest/models/create_tenant_alert_email_group_request.py +0 -0
  70. {hatchet_sdk-0.42.3 → hatchet_sdk-0.42.4}/hatchet_sdk/clients/rest/models/create_tenant_invite_request.py +0 -0
  71. {hatchet_sdk-0.42.3 → hatchet_sdk-0.42.4}/hatchet_sdk/clients/rest/models/create_tenant_request.py +0 -0
  72. {hatchet_sdk-0.42.3 → hatchet_sdk-0.42.4}/hatchet_sdk/clients/rest/models/cron_workflows.py +0 -0
  73. {hatchet_sdk-0.42.3 → hatchet_sdk-0.42.4}/hatchet_sdk/clients/rest/models/cron_workflows_list.py +0 -0
  74. {hatchet_sdk-0.42.3 → hatchet_sdk-0.42.4}/hatchet_sdk/clients/rest/models/cron_workflows_method.py +0 -0
  75. {hatchet_sdk-0.42.3 → hatchet_sdk-0.42.4}/hatchet_sdk/clients/rest/models/cron_workflows_order_by_field.py +0 -0
  76. {hatchet_sdk-0.42.3 → hatchet_sdk-0.42.4}/hatchet_sdk/clients/rest/models/event.py +0 -0
  77. {hatchet_sdk-0.42.3 → hatchet_sdk-0.42.4}/hatchet_sdk/clients/rest/models/event_data.py +0 -0
  78. {hatchet_sdk-0.42.3 → hatchet_sdk-0.42.4}/hatchet_sdk/clients/rest/models/event_key_list.py +0 -0
  79. {hatchet_sdk-0.42.3 → hatchet_sdk-0.42.4}/hatchet_sdk/clients/rest/models/event_list.py +0 -0
  80. {hatchet_sdk-0.42.3 → hatchet_sdk-0.42.4}/hatchet_sdk/clients/rest/models/event_order_by_direction.py +0 -0
  81. {hatchet_sdk-0.42.3 → hatchet_sdk-0.42.4}/hatchet_sdk/clients/rest/models/event_order_by_field.py +0 -0
  82. {hatchet_sdk-0.42.3 → hatchet_sdk-0.42.4}/hatchet_sdk/clients/rest/models/event_update_cancel200_response.py +0 -0
  83. {hatchet_sdk-0.42.3 → hatchet_sdk-0.42.4}/hatchet_sdk/clients/rest/models/event_workflow_run_summary.py +0 -0
  84. {hatchet_sdk-0.42.3 → hatchet_sdk-0.42.4}/hatchet_sdk/clients/rest/models/events.py +0 -0
  85. {hatchet_sdk-0.42.3 → hatchet_sdk-0.42.4}/hatchet_sdk/clients/rest/models/get_step_run_diff_response.py +0 -0
  86. {hatchet_sdk-0.42.3 → hatchet_sdk-0.42.4}/hatchet_sdk/clients/rest/models/github_app_installation.py +0 -0
  87. {hatchet_sdk-0.42.3 → hatchet_sdk-0.42.4}/hatchet_sdk/clients/rest/models/github_branch.py +0 -0
  88. {hatchet_sdk-0.42.3 → hatchet_sdk-0.42.4}/hatchet_sdk/clients/rest/models/github_repo.py +0 -0
  89. {hatchet_sdk-0.42.3 → hatchet_sdk-0.42.4}/hatchet_sdk/clients/rest/models/job.py +0 -0
  90. {hatchet_sdk-0.42.3 → hatchet_sdk-0.42.4}/hatchet_sdk/clients/rest/models/job_run.py +0 -0
  91. {hatchet_sdk-0.42.3 → hatchet_sdk-0.42.4}/hatchet_sdk/clients/rest/models/job_run_status.py +0 -0
  92. {hatchet_sdk-0.42.3 → hatchet_sdk-0.42.4}/hatchet_sdk/clients/rest/models/link_github_repository_request.py +0 -0
  93. {hatchet_sdk-0.42.3 → hatchet_sdk-0.42.4}/hatchet_sdk/clients/rest/models/list_api_tokens_response.py +0 -0
  94. {hatchet_sdk-0.42.3 → hatchet_sdk-0.42.4}/hatchet_sdk/clients/rest/models/list_github_app_installations_response.py +0 -0
  95. {hatchet_sdk-0.42.3 → hatchet_sdk-0.42.4}/hatchet_sdk/clients/rest/models/list_pull_requests_response.py +0 -0
  96. {hatchet_sdk-0.42.3 → hatchet_sdk-0.42.4}/hatchet_sdk/clients/rest/models/list_slack_webhooks.py +0 -0
  97. {hatchet_sdk-0.42.3 → hatchet_sdk-0.42.4}/hatchet_sdk/clients/rest/models/list_sns_integrations.py +0 -0
  98. {hatchet_sdk-0.42.3 → hatchet_sdk-0.42.4}/hatchet_sdk/clients/rest/models/log_line.py +0 -0
  99. {hatchet_sdk-0.42.3 → hatchet_sdk-0.42.4}/hatchet_sdk/clients/rest/models/log_line_level.py +0 -0
  100. {hatchet_sdk-0.42.3 → hatchet_sdk-0.42.4}/hatchet_sdk/clients/rest/models/log_line_list.py +0 -0
  101. {hatchet_sdk-0.42.3 → hatchet_sdk-0.42.4}/hatchet_sdk/clients/rest/models/log_line_order_by_direction.py +0 -0
  102. {hatchet_sdk-0.42.3 → hatchet_sdk-0.42.4}/hatchet_sdk/clients/rest/models/log_line_order_by_field.py +0 -0
  103. {hatchet_sdk-0.42.3 → hatchet_sdk-0.42.4}/hatchet_sdk/clients/rest/models/pagination_response.py +0 -0
  104. {hatchet_sdk-0.42.3 → hatchet_sdk-0.42.4}/hatchet_sdk/clients/rest/models/pull_request.py +0 -0
  105. {hatchet_sdk-0.42.3 → hatchet_sdk-0.42.4}/hatchet_sdk/clients/rest/models/pull_request_state.py +0 -0
  106. {hatchet_sdk-0.42.3 → hatchet_sdk-0.42.4}/hatchet_sdk/clients/rest/models/queue_metrics.py +0 -0
  107. {hatchet_sdk-0.42.3 → hatchet_sdk-0.42.4}/hatchet_sdk/clients/rest/models/rate_limit.py +0 -0
  108. {hatchet_sdk-0.42.3 → hatchet_sdk-0.42.4}/hatchet_sdk/clients/rest/models/rate_limit_list.py +0 -0
  109. {hatchet_sdk-0.42.3 → hatchet_sdk-0.42.4}/hatchet_sdk/clients/rest/models/rate_limit_order_by_direction.py +0 -0
  110. {hatchet_sdk-0.42.3 → hatchet_sdk-0.42.4}/hatchet_sdk/clients/rest/models/rate_limit_order_by_field.py +0 -0
  111. {hatchet_sdk-0.42.3 → hatchet_sdk-0.42.4}/hatchet_sdk/clients/rest/models/recent_step_runs.py +0 -0
  112. {hatchet_sdk-0.42.3 → hatchet_sdk-0.42.4}/hatchet_sdk/clients/rest/models/reject_invite_request.py +0 -0
  113. {hatchet_sdk-0.42.3 → hatchet_sdk-0.42.4}/hatchet_sdk/clients/rest/models/replay_event_request.py +0 -0
  114. {hatchet_sdk-0.42.3 → hatchet_sdk-0.42.4}/hatchet_sdk/clients/rest/models/replay_workflow_runs_request.py +0 -0
  115. {hatchet_sdk-0.42.3 → hatchet_sdk-0.42.4}/hatchet_sdk/clients/rest/models/replay_workflow_runs_response.py +0 -0
  116. {hatchet_sdk-0.42.3 → hatchet_sdk-0.42.4}/hatchet_sdk/clients/rest/models/rerun_step_run_request.py +0 -0
  117. {hatchet_sdk-0.42.3 → hatchet_sdk-0.42.4}/hatchet_sdk/clients/rest/models/schedule_workflow_run_request.py +0 -0
  118. {hatchet_sdk-0.42.3 → hatchet_sdk-0.42.4}/hatchet_sdk/clients/rest/models/scheduled_run_status.py +0 -0
  119. {hatchet_sdk-0.42.3 → hatchet_sdk-0.42.4}/hatchet_sdk/clients/rest/models/scheduled_workflows.py +0 -0
  120. {hatchet_sdk-0.42.3 → hatchet_sdk-0.42.4}/hatchet_sdk/clients/rest/models/scheduled_workflows_list.py +0 -0
  121. {hatchet_sdk-0.42.3 → hatchet_sdk-0.42.4}/hatchet_sdk/clients/rest/models/scheduled_workflows_method.py +0 -0
  122. {hatchet_sdk-0.42.3 → hatchet_sdk-0.42.4}/hatchet_sdk/clients/rest/models/scheduled_workflows_order_by_field.py +0 -0
  123. {hatchet_sdk-0.42.3 → hatchet_sdk-0.42.4}/hatchet_sdk/clients/rest/models/semaphore_slots.py +0 -0
  124. {hatchet_sdk-0.42.3 → hatchet_sdk-0.42.4}/hatchet_sdk/clients/rest/models/slack_webhook.py +0 -0
  125. {hatchet_sdk-0.42.3 → hatchet_sdk-0.42.4}/hatchet_sdk/clients/rest/models/sns_integration.py +0 -0
  126. {hatchet_sdk-0.42.3 → hatchet_sdk-0.42.4}/hatchet_sdk/clients/rest/models/step.py +0 -0
  127. {hatchet_sdk-0.42.3 → hatchet_sdk-0.42.4}/hatchet_sdk/clients/rest/models/step_run.py +0 -0
  128. {hatchet_sdk-0.42.3 → hatchet_sdk-0.42.4}/hatchet_sdk/clients/rest/models/step_run_archive.py +0 -0
  129. {hatchet_sdk-0.42.3 → hatchet_sdk-0.42.4}/hatchet_sdk/clients/rest/models/step_run_archive_list.py +0 -0
  130. {hatchet_sdk-0.42.3 → hatchet_sdk-0.42.4}/hatchet_sdk/clients/rest/models/step_run_diff.py +0 -0
  131. {hatchet_sdk-0.42.3 → hatchet_sdk-0.42.4}/hatchet_sdk/clients/rest/models/step_run_event.py +0 -0
  132. {hatchet_sdk-0.42.3 → hatchet_sdk-0.42.4}/hatchet_sdk/clients/rest/models/step_run_event_list.py +0 -0
  133. {hatchet_sdk-0.42.3 → hatchet_sdk-0.42.4}/hatchet_sdk/clients/rest/models/step_run_event_reason.py +0 -0
  134. {hatchet_sdk-0.42.3 → hatchet_sdk-0.42.4}/hatchet_sdk/clients/rest/models/step_run_event_severity.py +0 -0
  135. {hatchet_sdk-0.42.3 → hatchet_sdk-0.42.4}/hatchet_sdk/clients/rest/models/step_run_status.py +0 -0
  136. {hatchet_sdk-0.42.3 → hatchet_sdk-0.42.4}/hatchet_sdk/clients/rest/models/tenant.py +0 -0
  137. {hatchet_sdk-0.42.3 → hatchet_sdk-0.42.4}/hatchet_sdk/clients/rest/models/tenant_alert_email_group.py +0 -0
  138. {hatchet_sdk-0.42.3 → hatchet_sdk-0.42.4}/hatchet_sdk/clients/rest/models/tenant_alert_email_group_list.py +0 -0
  139. {hatchet_sdk-0.42.3 → hatchet_sdk-0.42.4}/hatchet_sdk/clients/rest/models/tenant_alerting_settings.py +0 -0
  140. {hatchet_sdk-0.42.3 → hatchet_sdk-0.42.4}/hatchet_sdk/clients/rest/models/tenant_invite.py +0 -0
  141. {hatchet_sdk-0.42.3 → hatchet_sdk-0.42.4}/hatchet_sdk/clients/rest/models/tenant_invite_list.py +0 -0
  142. {hatchet_sdk-0.42.3 → hatchet_sdk-0.42.4}/hatchet_sdk/clients/rest/models/tenant_list.py +0 -0
  143. {hatchet_sdk-0.42.3 → hatchet_sdk-0.42.4}/hatchet_sdk/clients/rest/models/tenant_member.py +0 -0
  144. {hatchet_sdk-0.42.3 → hatchet_sdk-0.42.4}/hatchet_sdk/clients/rest/models/tenant_member_list.py +0 -0
  145. {hatchet_sdk-0.42.3 → hatchet_sdk-0.42.4}/hatchet_sdk/clients/rest/models/tenant_member_role.py +0 -0
  146. {hatchet_sdk-0.42.3 → hatchet_sdk-0.42.4}/hatchet_sdk/clients/rest/models/tenant_queue_metrics.py +0 -0
  147. {hatchet_sdk-0.42.3 → hatchet_sdk-0.42.4}/hatchet_sdk/clients/rest/models/tenant_resource.py +0 -0
  148. {hatchet_sdk-0.42.3 → hatchet_sdk-0.42.4}/hatchet_sdk/clients/rest/models/tenant_resource_limit.py +0 -0
  149. {hatchet_sdk-0.42.3 → hatchet_sdk-0.42.4}/hatchet_sdk/clients/rest/models/tenant_resource_policy.py +0 -0
  150. {hatchet_sdk-0.42.3 → hatchet_sdk-0.42.4}/hatchet_sdk/clients/rest/models/tenant_step_run_queue_metrics.py +0 -0
  151. {hatchet_sdk-0.42.3 → hatchet_sdk-0.42.4}/hatchet_sdk/clients/rest/models/trigger_workflow_run_request.py +0 -0
  152. {hatchet_sdk-0.42.3 → hatchet_sdk-0.42.4}/hatchet_sdk/clients/rest/models/update_tenant_alert_email_group_request.py +0 -0
  153. {hatchet_sdk-0.42.3 → hatchet_sdk-0.42.4}/hatchet_sdk/clients/rest/models/update_tenant_invite_request.py +0 -0
  154. {hatchet_sdk-0.42.3 → hatchet_sdk-0.42.4}/hatchet_sdk/clients/rest/models/update_tenant_request.py +0 -0
  155. {hatchet_sdk-0.42.3 → hatchet_sdk-0.42.4}/hatchet_sdk/clients/rest/models/update_worker_request.py +0 -0
  156. {hatchet_sdk-0.42.3 → hatchet_sdk-0.42.4}/hatchet_sdk/clients/rest/models/user.py +0 -0
  157. {hatchet_sdk-0.42.3 → hatchet_sdk-0.42.4}/hatchet_sdk/clients/rest/models/user_change_password_request.py +0 -0
  158. {hatchet_sdk-0.42.3 → hatchet_sdk-0.42.4}/hatchet_sdk/clients/rest/models/user_login_request.py +0 -0
  159. {hatchet_sdk-0.42.3 → hatchet_sdk-0.42.4}/hatchet_sdk/clients/rest/models/user_register_request.py +0 -0
  160. {hatchet_sdk-0.42.3 → hatchet_sdk-0.42.4}/hatchet_sdk/clients/rest/models/user_tenant_memberships_list.py +0 -0
  161. {hatchet_sdk-0.42.3 → hatchet_sdk-0.42.4}/hatchet_sdk/clients/rest/models/user_tenant_public.py +0 -0
  162. {hatchet_sdk-0.42.3 → hatchet_sdk-0.42.4}/hatchet_sdk/clients/rest/models/webhook_worker.py +0 -0
  163. {hatchet_sdk-0.42.3 → hatchet_sdk-0.42.4}/hatchet_sdk/clients/rest/models/webhook_worker_create_request.py +0 -0
  164. {hatchet_sdk-0.42.3 → hatchet_sdk-0.42.4}/hatchet_sdk/clients/rest/models/webhook_worker_create_response.py +0 -0
  165. {hatchet_sdk-0.42.3 → hatchet_sdk-0.42.4}/hatchet_sdk/clients/rest/models/webhook_worker_created.py +0 -0
  166. {hatchet_sdk-0.42.3 → hatchet_sdk-0.42.4}/hatchet_sdk/clients/rest/models/webhook_worker_list_response.py +0 -0
  167. {hatchet_sdk-0.42.3 → hatchet_sdk-0.42.4}/hatchet_sdk/clients/rest/models/webhook_worker_request.py +0 -0
  168. {hatchet_sdk-0.42.3 → hatchet_sdk-0.42.4}/hatchet_sdk/clients/rest/models/webhook_worker_request_list_response.py +0 -0
  169. {hatchet_sdk-0.42.3 → hatchet_sdk-0.42.4}/hatchet_sdk/clients/rest/models/webhook_worker_request_method.py +0 -0
  170. {hatchet_sdk-0.42.3 → hatchet_sdk-0.42.4}/hatchet_sdk/clients/rest/models/worker.py +0 -0
  171. {hatchet_sdk-0.42.3 → hatchet_sdk-0.42.4}/hatchet_sdk/clients/rest/models/worker_label.py +0 -0
  172. {hatchet_sdk-0.42.3 → hatchet_sdk-0.42.4}/hatchet_sdk/clients/rest/models/worker_list.py +0 -0
  173. {hatchet_sdk-0.42.3 → hatchet_sdk-0.42.4}/hatchet_sdk/clients/rest/models/worker_runtime_info.py +0 -0
  174. {hatchet_sdk-0.42.3 → hatchet_sdk-0.42.4}/hatchet_sdk/clients/rest/models/worker_runtime_sdks.py +0 -0
  175. {hatchet_sdk-0.42.3 → hatchet_sdk-0.42.4}/hatchet_sdk/clients/rest/models/worker_type.py +0 -0
  176. {hatchet_sdk-0.42.3 → hatchet_sdk-0.42.4}/hatchet_sdk/clients/rest/models/workflow.py +0 -0
  177. {hatchet_sdk-0.42.3 → hatchet_sdk-0.42.4}/hatchet_sdk/clients/rest/models/workflow_concurrency.py +0 -0
  178. {hatchet_sdk-0.42.3 → hatchet_sdk-0.42.4}/hatchet_sdk/clients/rest/models/workflow_deployment_config.py +0 -0
  179. {hatchet_sdk-0.42.3 → hatchet_sdk-0.42.4}/hatchet_sdk/clients/rest/models/workflow_kind.py +0 -0
  180. {hatchet_sdk-0.42.3 → hatchet_sdk-0.42.4}/hatchet_sdk/clients/rest/models/workflow_metrics.py +0 -0
  181. {hatchet_sdk-0.42.3 → hatchet_sdk-0.42.4}/hatchet_sdk/clients/rest/models/workflow_run_cancel200_response.py +0 -0
  182. {hatchet_sdk-0.42.3 → hatchet_sdk-0.42.4}/hatchet_sdk/clients/rest/models/workflow_run_list.py +0 -0
  183. {hatchet_sdk-0.42.3 → hatchet_sdk-0.42.4}/hatchet_sdk/clients/rest/models/workflow_run_order_by_direction.py +0 -0
  184. {hatchet_sdk-0.42.3 → hatchet_sdk-0.42.4}/hatchet_sdk/clients/rest/models/workflow_run_order_by_field.py +0 -0
  185. {hatchet_sdk-0.42.3 → hatchet_sdk-0.42.4}/hatchet_sdk/clients/rest/models/workflow_run_shape.py +0 -0
  186. {hatchet_sdk-0.42.3 → hatchet_sdk-0.42.4}/hatchet_sdk/clients/rest/models/workflow_run_status.py +0 -0
  187. {hatchet_sdk-0.42.3 → hatchet_sdk-0.42.4}/hatchet_sdk/clients/rest/models/workflow_run_triggered_by.py +0 -0
  188. {hatchet_sdk-0.42.3 → hatchet_sdk-0.42.4}/hatchet_sdk/clients/rest/models/workflow_runs_cancel_request.py +0 -0
  189. {hatchet_sdk-0.42.3 → hatchet_sdk-0.42.4}/hatchet_sdk/clients/rest/models/workflow_runs_metrics.py +0 -0
  190. {hatchet_sdk-0.42.3 → hatchet_sdk-0.42.4}/hatchet_sdk/clients/rest/models/workflow_runs_metrics_counts.py +0 -0
  191. {hatchet_sdk-0.42.3 → hatchet_sdk-0.42.4}/hatchet_sdk/clients/rest/models/workflow_tag.py +0 -0
  192. {hatchet_sdk-0.42.3 → hatchet_sdk-0.42.4}/hatchet_sdk/clients/rest/models/workflow_trigger_cron_ref.py +0 -0
  193. {hatchet_sdk-0.42.3 → hatchet_sdk-0.42.4}/hatchet_sdk/clients/rest/models/workflow_trigger_event_ref.py +0 -0
  194. {hatchet_sdk-0.42.3 → hatchet_sdk-0.42.4}/hatchet_sdk/clients/rest/models/workflow_triggers.py +0 -0
  195. {hatchet_sdk-0.42.3 → hatchet_sdk-0.42.4}/hatchet_sdk/clients/rest/models/workflow_update_request.py +0 -0
  196. {hatchet_sdk-0.42.3 → hatchet_sdk-0.42.4}/hatchet_sdk/clients/rest/models/workflow_version.py +0 -0
  197. {hatchet_sdk-0.42.3 → hatchet_sdk-0.42.4}/hatchet_sdk/clients/rest/models/workflow_version_concurrency.py +0 -0
  198. {hatchet_sdk-0.42.3 → hatchet_sdk-0.42.4}/hatchet_sdk/clients/rest/models/workflow_version_definition.py +0 -0
  199. {hatchet_sdk-0.42.3 → hatchet_sdk-0.42.4}/hatchet_sdk/clients/rest/models/workflow_version_meta.py +0 -0
  200. {hatchet_sdk-0.42.3 → hatchet_sdk-0.42.4}/hatchet_sdk/clients/rest/models/workflow_workers_count.py +0 -0
  201. {hatchet_sdk-0.42.3 → hatchet_sdk-0.42.4}/hatchet_sdk/clients/rest/rest.py +0 -0
  202. {hatchet_sdk-0.42.3 → hatchet_sdk-0.42.4}/hatchet_sdk/clients/rest/tenacity_utils.py +0 -0
  203. {hatchet_sdk-0.42.3 → hatchet_sdk-0.42.4}/hatchet_sdk/clients/rest_client.py +0 -0
  204. {hatchet_sdk-0.42.3 → hatchet_sdk-0.42.4}/hatchet_sdk/clients/run_event_listener.py +0 -0
  205. {hatchet_sdk-0.42.3 → hatchet_sdk-0.42.4}/hatchet_sdk/clients/workflow_listener.py +0 -0
  206. {hatchet_sdk-0.42.3 → hatchet_sdk-0.42.4}/hatchet_sdk/connection.py +0 -0
  207. {hatchet_sdk-0.42.3 → hatchet_sdk-0.42.4}/hatchet_sdk/context/__init__.py +0 -0
  208. {hatchet_sdk-0.42.3 → hatchet_sdk-0.42.4}/hatchet_sdk/contracts/dispatcher_pb2.py +0 -0
  209. {hatchet_sdk-0.42.3 → hatchet_sdk-0.42.4}/hatchet_sdk/contracts/dispatcher_pb2.pyi +0 -0
  210. {hatchet_sdk-0.42.3 → hatchet_sdk-0.42.4}/hatchet_sdk/contracts/dispatcher_pb2_grpc.py +0 -0
  211. {hatchet_sdk-0.42.3 → hatchet_sdk-0.42.4}/hatchet_sdk/contracts/events_pb2.py +0 -0
  212. {hatchet_sdk-0.42.3 → hatchet_sdk-0.42.4}/hatchet_sdk/contracts/events_pb2.pyi +0 -0
  213. {hatchet_sdk-0.42.3 → hatchet_sdk-0.42.4}/hatchet_sdk/contracts/events_pb2_grpc.py +0 -0
  214. {hatchet_sdk-0.42.3 → hatchet_sdk-0.42.4}/hatchet_sdk/contracts/workflows_pb2.py +0 -0
  215. {hatchet_sdk-0.42.3 → hatchet_sdk-0.42.4}/hatchet_sdk/contracts/workflows_pb2.pyi +0 -0
  216. {hatchet_sdk-0.42.3 → hatchet_sdk-0.42.4}/hatchet_sdk/contracts/workflows_pb2_grpc.py +0 -0
  217. {hatchet_sdk-0.42.3 → hatchet_sdk-0.42.4}/hatchet_sdk/features/cron.py +0 -0
  218. {hatchet_sdk-0.42.3 → hatchet_sdk-0.42.4}/hatchet_sdk/features/scheduled.py +0 -0
  219. {hatchet_sdk-0.42.3 → hatchet_sdk-0.42.4}/hatchet_sdk/loader.py +0 -0
  220. {hatchet_sdk-0.42.3 → hatchet_sdk-0.42.4}/hatchet_sdk/logger.py +0 -0
  221. {hatchet_sdk-0.42.3 → hatchet_sdk-0.42.4}/hatchet_sdk/metadata.py +0 -0
  222. {hatchet_sdk-0.42.3 → hatchet_sdk-0.42.4}/hatchet_sdk/rate_limit.py +0 -0
  223. {hatchet_sdk-0.42.3 → hatchet_sdk-0.42.4}/hatchet_sdk/semver.py +0 -0
  224. {hatchet_sdk-0.42.3 → hatchet_sdk-0.42.4}/hatchet_sdk/token.py +0 -0
  225. {hatchet_sdk-0.42.3 → hatchet_sdk-0.42.4}/hatchet_sdk/utils/backoff.py +0 -0
  226. {hatchet_sdk-0.42.3 → hatchet_sdk-0.42.4}/hatchet_sdk/utils/serialization.py +0 -0
  227. {hatchet_sdk-0.42.3 → hatchet_sdk-0.42.4}/hatchet_sdk/utils/tracing.py +0 -0
  228. {hatchet_sdk-0.42.3 → hatchet_sdk-0.42.4}/hatchet_sdk/utils/types.py +0 -0
  229. {hatchet_sdk-0.42.3 → hatchet_sdk-0.42.4}/hatchet_sdk/worker/__init__.py +0 -0
  230. {hatchet_sdk-0.42.3 → hatchet_sdk-0.42.4}/hatchet_sdk/worker/action_listener_process.py +0 -0
  231. {hatchet_sdk-0.42.3 → hatchet_sdk-0.42.4}/hatchet_sdk/worker/runner/run_loop_manager.py +0 -0
  232. {hatchet_sdk-0.42.3 → hatchet_sdk-0.42.4}/hatchet_sdk/worker/runner/utils/capture_logs.py +0 -0
  233. {hatchet_sdk-0.42.3 → hatchet_sdk-0.42.4}/hatchet_sdk/worker/runner/utils/error_with_traceback.py +0 -0
  234. {hatchet_sdk-0.42.3 → hatchet_sdk-0.42.4}/hatchet_sdk/workflow_run.py +0 -0
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.1
2
2
  Name: hatchet-sdk
3
- Version: 0.42.3
3
+ Version: 0.42.4
4
4
  Summary:
5
5
  Author: Alexander Belanger
6
6
  Author-email: alexander@hatchet.run
@@ -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, TypedDict):
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
- response: ActionEventResponse = self.client.PutOverridesData(
134
- data,
135
- metadata=get_metadata(self.token),
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(self, worker_id: str, labels: dict[str, str | int]):
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: Optional[APIResourceMeta] = None
36
- rows: Optional[List[Workflow]] = None
37
- pagination: Optional[PaginationResponse] = None
38
- __properties: ClassVar[List[str]] = ["metadata", "rows", "pagination"]
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: Optional[WorkflowVersion] = Field(
42
+ workflow_version: WorkflowVersion | None = Field(
43
43
  default=None, alias="workflowVersion"
44
44
  )
45
45
  status: WorkflowRunStatus
46
- display_name: Optional[StrictStr] = Field(default=None, alias="displayName")
47
- job_runs: Optional[List[JobRun]] = Field(default=None, alias="jobRuns")
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: Optional[Dict[str, Any]] = None
50
- error: Optional[StrictStr] = None
51
- started_at: Optional[datetime] = Field(default=None, alias="startedAt")
52
- finished_at: Optional[datetime] = Field(default=None, alias="finishedAt")
53
- duration: Optional[StrictInt] = None
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: Optional[Dict[str, Any]] = Field(
60
+ additional_metadata: dict[str, Any] | None = Field(
61
61
  default=None, alias="additionalMetadata"
62
62
  )
63
- __properties: ClassVar[List[str]] = [
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 # type: ignore
17
- from hatchet_sdk.contracts.workflows_pb2 import ( # type: ignore[attr-defined]
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 = { # type: ignore[typeddict-item]
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
- ## TODO: figure out why this is failing
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
- validators = self.validator_registry.get(step)
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 validators and (v := validators.step_output):
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, cast, get_type_hints
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
- ## TODO: These type stubs need to be updated to mass MyPy, and then we can remove this ignore
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[WorkflowInterface]], WorkflowMeta]:
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[WorkflowInterface]) -> WorkflowMeta:
57
- cls.on_events = on_events
58
- cls.on_crons = on_crons
59
- cls.name = name or str(cls.__name__)
60
- cls.version = version
61
- cls.timeout = timeout
62
- cls.schedule_timeout = schedule_timeout
63
- cls.sticky = sticky
64
- cls.default_priority = default_priority
65
- cls.concurrency_expression = concurrency
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.input_validator = input_validator
71
- return WorkflowMeta(cls.name, cls.__bases__, dict(cls.__dict__))
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[[WorkflowStepProtocol], WorkflowStepProtocol]:
90
+ ) -> Callable[..., Any]:
86
91
  parents = parents or []
87
92
 
88
- def inner(func: WorkflowStepProtocol) -> WorkflowStepProtocol:
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._step_name = name.lower() or str(func.__name__).lower()
94
- func._step_parents = parents
95
- func._step_timeout = timeout
96
- func._step_retries = retries
97
- func._step_rate_limits = limits
98
- func._step_backoff_factor = backoff_factor
99
- func._step_backoff_max_seconds = backoff_max_seconds
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
- for key, d in desired_worker_labels.items():
107
+ def create_label(d: DesiredWorkerLabel) -> DesiredWorkerLabels:
104
108
  value = d["value"] if "value" in d else None
105
- func._step_desired_worker_labels[key] = DesiredWorkerLabels(
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[[WorkflowStepProtocol], WorkflowStepProtocol]:
126
- def inner(func: WorkflowStepProtocol) -> WorkflowStepProtocol:
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
- func._on_failure_step_name = name.lower() or str(func.__name__).lower()
135
- func._on_failure_step_timeout = timeout
136
- func._on_failure_step_retries = retries
137
- func._on_failure_step_rate_limits = limits
138
- func._on_failure_step_backoff_factor = backoff_factor
139
- func._on_failure_step_backoff_max_seconds = backoff_max_seconds
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[[WorkflowStepProtocol], WorkflowStepProtocol]:
151
- def inner(func: WorkflowStepProtocol) -> WorkflowStepProtocol:
152
- func._concurrency_fn_name = name.lower() or str(func.__name__).lower()
153
- func._concurrency_max_runs = max_runs
154
- func._concurrency_limit_strategy = limit_strategy
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,7 +1,7 @@
1
1
  from typing import TypedDict
2
2
 
3
3
 
4
- class DesiredWorkerLabel(TypedDict):
4
+ class DesiredWorkerLabel(TypedDict, total=False):
5
5
  value: str | int
6
6
  required: bool | None = None
7
7
  weight: int | None = None
@@ -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
- def sync_to_async(func):
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(*args, loop=None, executor=None, **kwargs):
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.
@@ -6,4 +6,7 @@ T = TypeVar("T", bound=BaseModel)
6
6
 
7
7
 
8
8
  def is_basemodel_subclass(model: Any) -> bool:
9
- return isinstance(model, type) and issubclass(model, BaseModel)
9
+ try:
10
+ return issubclass(model, BaseModel)
11
+ except TypeError:
12
+ return False
@@ -1,8 +1,19 @@
1
1
  import asyncio
2
- from typing import Callable, Dict, Generic, List, Optional, TypedDict, TypeVar, Union
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.context import Context
5
- from hatchet_sdk.contracts.workflows_pb2 import (
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: Optional["HatchetCallable"] = None,
41
- desired_worker_labels: dict[str:DesiredWorkerLabel] = {},
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: Union[str, HatchetCallable[T]],
176
- input: dict = {},
177
- key: str = None,
178
- options: TriggerOptions = None,
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