hatchet-sdk 0.42.3__py3-none-any.whl → 0.42.5__py3-none-any.whl

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.

Potentially problematic release.


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

@@ -1,7 +1,9 @@
1
- from typing import Callable
1
+ from typing import Any, Callable
2
2
 
3
- from hatchet_sdk.context import Context
4
- from hatchet_sdk.contracts.workflows_pb2 import ConcurrencyLimitStrategy
3
+ from hatchet_sdk.context.context import Context
4
+ from hatchet_sdk.contracts.workflows_pb2 import ( # type: ignore[attr-defined]
5
+ ConcurrencyLimitStrategy,
6
+ )
5
7
 
6
8
 
7
9
  class ConcurrencyFunction:
@@ -18,19 +20,19 @@ class ConcurrencyFunction:
18
20
  self.limit_strategy = limit_strategy
19
21
  self.namespace = "default"
20
22
 
21
- def set_namespace(self, namespace: str):
23
+ def set_namespace(self, namespace: str) -> None:
22
24
  self.namespace = namespace
23
25
 
24
26
  def get_action_name(self) -> str:
25
27
  return self.namespace + ":" + self.name
26
28
 
27
- def __call__(self, *args, **kwargs):
29
+ def __call__(self, *args: Any, **kwargs: Any) -> str:
28
30
  return self.func(*args, **kwargs)
29
31
 
30
- def __str__(self):
32
+ def __str__(self) -> str:
31
33
  return f"{self.name}({self.max_runs})"
32
34
 
33
- def __repr__(self):
35
+ def __repr__(self) -> str:
34
36
  return f"{self.name}({self.max_runs})"
35
37
 
36
38
 
@@ -38,7 +40,7 @@ def concurrency(
38
40
  name: str = "",
39
41
  max_runs: int = 1,
40
42
  limit_strategy: ConcurrencyLimitStrategy = ConcurrencyLimitStrategy.GROUP_ROUND_ROBIN,
41
- ):
43
+ ) -> Callable[[Callable[[Context], str]], ConcurrencyFunction]:
42
44
  def inner(func: Callable[[Context], str]) -> ConcurrencyFunction:
43
45
  return ConcurrencyFunction(func, name, max_runs, limit_strategy)
44
46
 
hatchet_sdk/v2/hatchet.py CHANGED
@@ -1,36 +1,38 @@
1
- from typing import Callable, List, Optional, TypeVar
2
-
3
- from hatchet_sdk.context import Context
4
- from hatchet_sdk.contracts.workflows_pb2 import ConcurrencyLimitStrategy, StickyStrategy
1
+ from typing import Any, Callable, TypeVar, Union
2
+
3
+ from hatchet_sdk import Worker
4
+ from hatchet_sdk.context.context import Context
5
+ from hatchet_sdk.contracts.workflows_pb2 import ( # type: ignore[attr-defined]
6
+ ConcurrencyLimitStrategy,
7
+ StickyStrategy,
8
+ )
5
9
  from hatchet_sdk.hatchet import Hatchet as HatchetV1
6
10
  from hatchet_sdk.hatchet import workflow
7
11
  from hatchet_sdk.labels import DesiredWorkerLabel
8
12
  from hatchet_sdk.rate_limit import RateLimit
9
- from hatchet_sdk.v2.callable import HatchetCallable
13
+ from hatchet_sdk.v2.callable import DurableContext, HatchetCallable
10
14
  from hatchet_sdk.v2.concurrency import ConcurrencyFunction
11
15
  from hatchet_sdk.worker.worker import register_on_worker
12
16
 
13
- from ..worker import Worker
14
-
15
17
  T = TypeVar("T")
16
18
 
17
19
 
18
20
  def function(
19
21
  name: str = "",
20
22
  auto_register: bool = True,
21
- on_events: list | None = None,
22
- on_crons: list | None = None,
23
+ on_events: list[str] | None = None,
24
+ on_crons: list[str] | None = None,
23
25
  version: str = "",
24
26
  timeout: str = "60m",
25
27
  schedule_timeout: str = "5m",
26
28
  sticky: StickyStrategy = None,
27
29
  retries: int = 0,
28
- rate_limits: List[RateLimit] | None = None,
29
- desired_worker_labels: dict[str:DesiredWorkerLabel] = {},
30
+ rate_limits: list[RateLimit] | None = None,
31
+ desired_worker_labels: dict[str, DesiredWorkerLabel] = {},
30
32
  concurrency: ConcurrencyFunction | None = None,
31
- on_failure: Optional["HatchetCallable"] = None,
33
+ on_failure: Union["HatchetCallable[T]", None] = None,
32
34
  default_priority: int | None = None,
33
- ):
35
+ ) -> Callable[[Callable[[Context], str]], HatchetCallable[T]]:
34
36
  def inner(func: Callable[[Context], T]) -> HatchetCallable[T]:
35
37
  return HatchetCallable(
36
38
  func=func,
@@ -56,20 +58,20 @@ def function(
56
58
  def durable(
57
59
  name: str = "",
58
60
  auto_register: bool = True,
59
- on_events: list | None = None,
60
- on_crons: list | None = None,
61
+ on_events: list[str] | None = None,
62
+ on_crons: list[str] | None = None,
61
63
  version: str = "",
62
64
  timeout: str = "60m",
63
65
  schedule_timeout: str = "5m",
64
66
  sticky: StickyStrategy = None,
65
67
  retries: int = 0,
66
- rate_limits: List[RateLimit] | None = None,
67
- desired_worker_labels: dict[str:DesiredWorkerLabel] = {},
68
+ rate_limits: list[RateLimit] | None = None,
69
+ desired_worker_labels: dict[str, DesiredWorkerLabel] = {},
68
70
  concurrency: ConcurrencyFunction | None = None,
69
- on_failure: HatchetCallable | None = None,
71
+ on_failure: HatchetCallable[T] | None = None,
70
72
  default_priority: int | None = None,
71
- ):
72
- def inner(func: HatchetCallable) -> HatchetCallable:
73
+ ) -> Callable[[HatchetCallable[T]], HatchetCallable[T]]:
74
+ def inner(func: HatchetCallable[T]) -> HatchetCallable[T]:
73
75
  func.durable = True
74
76
 
75
77
  f = function(
@@ -102,7 +104,7 @@ def concurrency(
102
104
  name: str = "concurrency",
103
105
  max_runs: int = 1,
104
106
  limit_strategy: ConcurrencyLimitStrategy = ConcurrencyLimitStrategy.GROUP_ROUND_ROBIN,
105
- ):
107
+ ) -> Callable[[Callable[[Context], str]], ConcurrencyFunction]:
106
108
  def inner(func: Callable[[Context], str]) -> ConcurrencyFunction:
107
109
  return ConcurrencyFunction(func, name, max_runs, limit_strategy)
108
110
 
@@ -113,24 +115,24 @@ class Hatchet(HatchetV1):
113
115
  dag = staticmethod(workflow)
114
116
  concurrency = staticmethod(concurrency)
115
117
 
116
- functions: List[HatchetCallable] = []
118
+ functions: list[HatchetCallable[T]] = []
117
119
 
118
120
  def function(
119
121
  self,
120
122
  name: str = "",
121
123
  auto_register: bool = True,
122
- on_events: list | None = None,
123
- on_crons: list | None = None,
124
+ on_events: list[str] | None = None,
125
+ on_crons: list[str] | None = None,
124
126
  version: str = "",
125
127
  timeout: str = "60m",
126
128
  schedule_timeout: str = "5m",
127
129
  retries: int = 0,
128
- rate_limits: List[RateLimit] | None = None,
129
- desired_worker_labels: dict[str:DesiredWorkerLabel] = {},
130
+ rate_limits: list[RateLimit] | None = None,
131
+ desired_worker_labels: dict[str, DesiredWorkerLabel] = {},
130
132
  concurrency: ConcurrencyFunction | None = None,
131
- on_failure: Optional["HatchetCallable"] = None,
133
+ on_failure: Union["HatchetCallable[T]", None] = None,
132
134
  default_priority: int | None = None,
133
- ):
135
+ ) -> Callable[[Callable[[Context], Any]], Callable[[Context], Any]]:
134
136
  resp = function(
135
137
  name=name,
136
138
  auto_register=auto_register,
@@ -147,7 +149,7 @@ class Hatchet(HatchetV1):
147
149
  default_priority=default_priority,
148
150
  )
149
151
 
150
- def wrapper(func: Callable[[Context], T]) -> HatchetCallable[T]:
152
+ def wrapper(func: Callable[[Context], str]) -> HatchetCallable[T]:
151
153
  wrapped_resp = resp(func)
152
154
 
153
155
  if wrapped_resp.function_auto_register:
@@ -163,19 +165,19 @@ class Hatchet(HatchetV1):
163
165
  self,
164
166
  name: str = "",
165
167
  auto_register: bool = True,
166
- on_events: list | None = None,
167
- on_crons: list | None = None,
168
+ on_events: list[str] | None = None,
169
+ on_crons: list[str] | None = None,
168
170
  version: str = "",
169
171
  timeout: str = "60m",
170
172
  schedule_timeout: str = "5m",
171
173
  sticky: StickyStrategy = None,
172
174
  retries: int = 0,
173
- rate_limits: List[RateLimit] | None = None,
174
- desired_worker_labels: dict[str:DesiredWorkerLabel] = {},
175
+ rate_limits: list[RateLimit] | None = None,
176
+ desired_worker_labels: dict[str, DesiredWorkerLabel] = {},
175
177
  concurrency: ConcurrencyFunction | None = None,
176
- on_failure: Optional["HatchetCallable"] = None,
178
+ on_failure: Union["HatchetCallable[T]", None] = None,
177
179
  default_priority: int | None = None,
178
- ) -> Callable[[HatchetCallable], HatchetCallable]:
180
+ ) -> Callable[[Callable[[DurableContext], Any]], Callable[[DurableContext], Any]]:
179
181
  resp = durable(
180
182
  name=name,
181
183
  auto_register=auto_register,
@@ -193,7 +195,7 @@ class Hatchet(HatchetV1):
193
195
  default_priority=default_priority,
194
196
  )
195
197
 
196
- def wrapper(func: Callable[[Context], T]) -> HatchetCallable[T]:
198
+ def wrapper(func: HatchetCallable[T]) -> HatchetCallable[T]:
197
199
  wrapped_resp = resp(func)
198
200
 
199
201
  if wrapped_resp.function_auto_register:
@@ -21,7 +21,7 @@ from hatchet_sdk.clients.run_event_listener import new_listener
21
21
  from hatchet_sdk.clients.workflow_listener import PooledWorkflowRunListener
22
22
  from hatchet_sdk.context import Context # type: ignore[attr-defined]
23
23
  from hatchet_sdk.context.worker_context import WorkerContext
24
- from hatchet_sdk.contracts.dispatcher_pb2 import ( # type: ignore[attr-defined]
24
+ from hatchet_sdk.contracts.dispatcher_pb2 import (
25
25
  GROUP_KEY_EVENT_TYPE_COMPLETED,
26
26
  GROUP_KEY_EVENT_TYPE_FAILED,
27
27
  GROUP_KEY_EVENT_TYPE_STARTED,
@@ -12,14 +12,15 @@ from multiprocessing.process import BaseProcess
12
12
  from types import FrameType
13
13
  from typing import Any, Callable, TypeVar, get_type_hints
14
14
 
15
+ from pydantic import BaseModel
16
+
15
17
  from hatchet_sdk import Context
16
18
  from hatchet_sdk.client import Client, new_client_raw
17
- from hatchet_sdk.contracts.workflows_pb2 import ( # type: ignore[attr-defined]
18
- CreateWorkflowVersionOpts,
19
- )
19
+ from hatchet_sdk.contracts.workflows_pb2 import CreateWorkflowVersionOpts
20
20
  from hatchet_sdk.loader import ClientConfig
21
21
  from hatchet_sdk.logger import logger
22
22
  from hatchet_sdk.utils.types import WorkflowValidator
23
+ from hatchet_sdk.utils.typing import is_basemodel_subclass
23
24
  from hatchet_sdk.v2.callable import HatchetCallable
24
25
  from hatchet_sdk.v2.concurrency import ConcurrencyFunction
25
26
  from hatchet_sdk.worker.action_listener_process import worker_action_listener_process
@@ -41,6 +42,9 @@ class WorkerStartOptions:
41
42
  loop: asyncio.AbstractEventLoop | None = field(default=None)
42
43
 
43
44
 
45
+ TWorkflow = TypeVar("TWorkflow", bound=object)
46
+
47
+
44
48
  class Worker:
45
49
  def __init__(
46
50
  self,
@@ -62,7 +66,7 @@ class Worker:
62
66
 
63
67
  self.client: Client
64
68
 
65
- self.action_registry: dict[str, Callable[[Context], T]] = {}
69
+ self.action_registry: dict[str, Callable[[Context], Any]] = {}
66
70
  self.validator_registry: dict[str, WorkflowValidator] = {}
67
71
 
68
72
  self.killing: bool = False
@@ -84,9 +88,7 @@ class Worker:
84
88
 
85
89
  self._setup_signal_handlers()
86
90
 
87
- def register_function(
88
- self, action: str, func: HatchetCallable[Any] | ConcurrencyFunction
89
- ) -> None:
91
+ def register_function(self, action: str, func: Callable[[Context], Any]) -> None:
90
92
  self.action_registry[action] = func
91
93
 
92
94
  def register_workflow_from_opts(
@@ -99,7 +101,10 @@ class Worker:
99
101
  logger.error(e)
100
102
  sys.exit(1)
101
103
 
102
- def register_workflow(self, workflow: WorkflowInterface) -> None:
104
+ def register_workflow(self, workflow: TWorkflow) -> None:
105
+ ## Hack for typing
106
+ assert isinstance(workflow, WorkflowInterface)
107
+
103
108
  namespace = self.client.config.namespace
104
109
 
105
110
  try:
@@ -127,8 +132,10 @@ class Worker:
127
132
  for action_name, action_func in workflow.get_actions(namespace):
128
133
  self.action_registry[action_name] = create_action_function(action_func)
129
134
  return_type = get_type_hints(action_func).get("return")
135
+
130
136
  self.validator_registry[action_name] = WorkflowValidator(
131
- workflow_input=workflow.input_validator, step_output=return_type
137
+ workflow_input=workflow.input_validator,
138
+ step_output=return_type if is_basemodel_subclass(return_type) else None,
132
139
  )
133
140
 
134
141
  def status(self) -> WorkerStatus:
hatchet_sdk/workflow.py CHANGED
@@ -1,10 +1,20 @@
1
1
  import functools
2
- from typing import Any, Callable, Protocol, Type, TypeVar, Union, cast, get_type_hints
2
+ from typing import (
3
+ Any,
4
+ Callable,
5
+ Protocol,
6
+ Type,
7
+ TypeVar,
8
+ Union,
9
+ cast,
10
+ get_type_hints,
11
+ runtime_checkable,
12
+ )
3
13
 
4
14
  from pydantic import BaseModel
5
15
 
6
16
  from hatchet_sdk import ConcurrencyLimitStrategy
7
- from hatchet_sdk.contracts.workflows_pb2 import ( # type: ignore[attr-defined]
17
+ from hatchet_sdk.contracts.workflows_pb2 import (
8
18
  CreateWorkflowJobOpts,
9
19
  CreateWorkflowStepOpts,
10
20
  CreateWorkflowVersionOpts,
@@ -69,6 +79,7 @@ class ConcurrencyExpression:
69
79
  self.limit_strategy = limit_strategy
70
80
 
71
81
 
82
+ @runtime_checkable
72
83
  class WorkflowInterface(Protocol):
73
84
  def get_name(self, namespace: str) -> str: ...
74
85
 
@@ -76,13 +87,13 @@ class WorkflowInterface(Protocol):
76
87
 
77
88
  def get_create_opts(self, namespace: str) -> Any: ...
78
89
 
79
- on_events: list[str]
80
- on_crons: list[str]
90
+ on_events: list[str] | None
91
+ on_crons: list[str] | None
81
92
  name: str
82
93
  version: str
83
94
  timeout: str
84
95
  schedule_timeout: str
85
- sticky: Union[StickyStrategy.Value, None]
96
+ sticky: Union[StickyStrategy.Value, None] # type: ignore[name-defined]
86
97
  default_priority: int | None
87
98
  concurrency_expression: ConcurrencyExpression | None
88
99
  input_validator: Type[BaseModel] | None
@@ -120,6 +131,7 @@ class WorkflowMeta(type):
120
131
  @functools.cache
121
132
  def get_actions(self: TW, namespace: str) -> StepsType:
122
133
  serviceName = get_service_name(namespace)
134
+
123
135
  func_actions = [
124
136
  (serviceName + ":" + func_name, func) for func_name, func in steps
125
137
  ]
@@ -165,8 +177,8 @@ class WorkflowMeta(type):
165
177
  inputs="{}",
166
178
  parents=[x for x in func._step_parents],
167
179
  retries=func._step_retries,
168
- rate_limits=func._step_rate_limits,
169
- worker_labels=func._step_desired_worker_labels,
180
+ rate_limits=func._step_rate_limits, # type: ignore[arg-type]
181
+ worker_labels=func._step_desired_worker_labels, # type: ignore[arg-type]
170
182
  backoff_factor=func._step_backoff_factor,
171
183
  backoff_max_seconds=func._step_backoff_max_seconds,
172
184
  )
@@ -196,7 +208,7 @@ class WorkflowMeta(type):
196
208
  "Error: Both concurrencyActions and concurrency_expression are defined. Please use only one concurrency configuration method."
197
209
  )
198
210
 
199
- on_failure_job: list[CreateWorkflowJobOpts] | None = None
211
+ on_failure_job: CreateWorkflowJobOpts | None = None
200
212
 
201
213
  if len(onFailureSteps) > 0:
202
214
  func_name, func = onFailureSteps[0]
@@ -210,7 +222,7 @@ class WorkflowMeta(type):
210
222
  inputs="{}",
211
223
  parents=[],
212
224
  retries=func._on_failure_step_retries,
213
- rate_limits=func._on_failure_step_rate_limits,
225
+ rate_limits=func._on_failure_step_rate_limits, # type: ignore[arg-type]
214
226
  backoff_factor=func._on_failure_step_backoff_factor,
215
227
  backoff_max_seconds=func._on_failure_step_backoff_max_seconds,
216
228
  )
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.1
2
2
  Name: hatchet-sdk
3
- Version: 0.42.3
3
+ Version: 0.42.5
4
4
  Summary:
5
5
  Author: Alexander Belanger
6
6
  Author-email: alexander@hatchet.run
@@ -13,8 +13,8 @@ Requires-Dist: aiohttp (>=3.10.5,<4.0.0)
13
13
  Requires-Dist: aiohttp-retry (>=2.8.3,<3.0.0)
14
14
  Requires-Dist: aiostream (>=0.5.2,<0.6.0)
15
15
  Requires-Dist: cel-python (>=0.1.5,<0.2.0)
16
- Requires-Dist: grpcio (>=1.64.1,<2.0.0)
17
- Requires-Dist: grpcio-tools (>=1.60.0,<2.0.0)
16
+ Requires-Dist: grpcio (>=1.68.1,<2.0.0)
17
+ Requires-Dist: grpcio-tools (>=1.68.1,<2.0.0)
18
18
  Requires-Dist: loguru (>=0.7.2,<0.8.0)
19
19
  Requires-Dist: nest-asyncio (>=1.6.0,<2.0.0)
20
20
  Requires-Dist: opentelemetry-api (>=1.27.0,<2.0.0)
@@ -23,7 +23,7 @@ Requires-Dist: opentelemetry-exporter-otlp (>=1.27.0,<2.0.0)
23
23
  Requires-Dist: opentelemetry-exporter-otlp-proto-http (>=1.27.0,<2.0.0)
24
24
  Requires-Dist: opentelemetry-instrumentation (>=0.48b0,<0.49)
25
25
  Requires-Dist: opentelemetry-sdk (>=1.27.0,<2.0.0)
26
- Requires-Dist: protobuf (>=4.25.2,<5.0.0)
26
+ Requires-Dist: protobuf (>=5.29.1,<6.0.0)
27
27
  Requires-Dist: pydantic (>=2.6.3,<3.0.0)
28
28
  Requires-Dist: python-dateutil (>=2.9.0.post0,<3.0.0)
29
29
  Requires-Dist: python-dotenv (>=1.0.0,<2.0.0)
@@ -1,14 +1,14 @@
1
1
  hatchet_sdk/__init__.py,sha256=R5ogd_Dn_6gA_u9a5W2URNq6eDtN1i56cObBv1tOwyU,9408
2
2
  hatchet_sdk/client.py,sha256=ajjLd-gZptVuAx25gG_SdAW8xDA4V7HMIhgYuh9MkVY,3486
3
- hatchet_sdk/clients/admin.py,sha256=rN1T5U7lnrg1FEOUGCD6diqfIsge8SjwnCwn52j0STo,21458
3
+ hatchet_sdk/clients/admin.py,sha256=RGi-cXGTn54EmgiqbUsnb9a9gbA3WFr9Qo2VdBHdSzQ,21530
4
4
  hatchet_sdk/clients/dispatcher/action_listener.py,sha256=eOq5z29MhC7ynbOOegDRQr-RqDhpS3gfeLswIlZbuGg,15378
5
- hatchet_sdk/clients/dispatcher/dispatcher.py,sha256=IA_KFqjuxKmGVLuOQNV0SG_dFpX6PeOR8M6Kpl0fU20,6092
5
+ hatchet_sdk/clients/dispatcher/dispatcher.py,sha256=qTcfIXn9EpfUlafff8Wun_fWTvz-UxOa4i4m6ZVIAnM,6402
6
6
  hatchet_sdk/clients/event_ts.py,sha256=ACGvDdfhvK6ZLKdsPxy-PksLhjIU69P9cdH3AxX-X10,728
7
- hatchet_sdk/clients/events.py,sha256=vPK2UlI1bmrx24mAqGYJQ884yHviVmrGX5qNIBc5-a8,7466
7
+ hatchet_sdk/clients/events.py,sha256=8QOHv4ObSNXb6t5EnaXPwkwr1hN4D087iWn02TRtXb0,7505
8
8
  hatchet_sdk/clients/rest/__init__.py,sha256=AQBp3fX79IKrcjUmzLRGFaFKMYBnEbQD9DnwYOHU0jQ,14157
9
9
  hatchet_sdk/clients/rest/api/__init__.py,sha256=LaTEK7cYklb8R0iYj727C-jVk-MGHenADN8TJpoIASs,1067
10
10
  hatchet_sdk/clients/rest/api/api_token_api.py,sha256=C10FEIHHGBpwq-bIKkrBhvPlg6az4aHlREWEUlJHWl0,33577
11
- hatchet_sdk/clients/rest/api/default_api.py,sha256=8DqzQAHtB53KG9pXfPtzjx6w7MOXznJIq60x0IcEawo,69260
11
+ hatchet_sdk/clients/rest/api/default_api.py,sha256=YAMiuMO-Ye5AmbuA-5IODgBAoM_93B2EyGgnIjcvAP8,79629
12
12
  hatchet_sdk/clients/rest/api/event_api.py,sha256=YbvcNJTDY9aa69SdWsiXS4gbQ0x51LiAxUQmsPzwVXs,100154
13
13
  hatchet_sdk/clients/rest/api/github_api.py,sha256=1eKhvrqPPekfiu7WLh-ngcpOYMJwpRSwliEKoJ85Kjs,12107
14
14
  hatchet_sdk/clients/rest/api/healthcheck_api.py,sha256=WGsezrIxWK_geHLIERjUwlCtXE65SSmt_XTe7oc25VE,18779
@@ -190,46 +190,46 @@ hatchet_sdk/clients/run_event_listener.py,sha256=51WTg52_aISgYPOFPHJ21rb4IO6aEd7
190
190
  hatchet_sdk/clients/workflow_listener.py,sha256=Q_WJcGlZNHJGSpxzDac9wELjgxhP0vLaNTXRy_xnxc8,9466
191
191
  hatchet_sdk/connection.py,sha256=593aUGAj7Ouf00lcVwx_pmhdQ9NOC5ANT1Jrf8nwkHs,2165
192
192
  hatchet_sdk/context/__init__.py,sha256=Pl_seJ_SJpW34BBZp4KixuZ8GiRK9sJFfegf9u3m7zk,29
193
- hatchet_sdk/context/context.py,sha256=l0aewPZpncvVzH-L68U-TKH1bMHUuB-4rwXNZ1n69r0,13561
194
- hatchet_sdk/context/worker_context.py,sha256=1nwq75wnT2zu9Z1fel_TKw0eiMpXJIGAn6HbH1GRVNU,920
195
- hatchet_sdk/contracts/dispatcher_pb2.py,sha256=W9_Us2_HIdUV5idN2rPwzt4J06JfDeogxwDVvjerk_U,14320
193
+ hatchet_sdk/context/context.py,sha256=R2RsPgzBNYi1FJvg4MOowSY-V1Yf69qUmXe3MsAWkyo,13518
194
+ hatchet_sdk/context/worker_context.py,sha256=OVcEWvdT_Kpd0nlg61VAPUgIPSFzSLs0aSrXWj-1GX4,974
195
+ hatchet_sdk/contracts/dispatcher_pb2.py,sha256=-9YGf7pfuMyRpkjjcmFa6jlr-95gha4CJw9hG3seNFI,14573
196
196
  hatchet_sdk/contracts/dispatcher_pb2.pyi,sha256=2dvxvN4OETOc-OhLNWDntN7GvI4QUxbMiGLdK7FM1wE,18224
197
- hatchet_sdk/contracts/dispatcher_pb2_grpc.py,sha256=4uJkNig8nssJwS7P-lea1YqE4wl0cVWQaJpOndOdaDs,21453
198
- hatchet_sdk/contracts/events_pb2.py,sha256=w_DmfXMfxlAyHWcuv_hPt7ouABAMmOEjGKVOHjYJc-4,4073
197
+ hatchet_sdk/contracts/dispatcher_pb2_grpc.py,sha256=6qOOsSM9lUeRG1Hk1h6Yv8gPEGmpccRrhrRY4Y2mLJU,24459
198
+ hatchet_sdk/contracts/events_pb2.py,sha256=bf8_S6cDhFoN869ZcS-xCLNirsH_NoYvHCR1yXk2aNA,4308
199
199
  hatchet_sdk/contracts/events_pb2.pyi,sha256=eoHvNI5gY98ZfFleiynbtIz3SiW_X49ggMBOlOgAP74,4014
200
- hatchet_sdk/contracts/events_pb2_grpc.py,sha256=q5Vfu2KXS3JzP7XdHEpleAlYxgyBqIxq5WpRoz-XlH8,8327
201
- hatchet_sdk/contracts/workflows_pb2.py,sha256=oHpiARGasVy8MWkYQszalEEvN4wAvzVecDmOUmlO9hs,11694
202
- hatchet_sdk/contracts/workflows_pb2.pyi,sha256=vq3r4C60MW7qx9735q1kAyGENgfbHZtKeGP5c_8FvkY,15339
203
- hatchet_sdk/contracts/workflows_pb2_grpc.py,sha256=rOC2yF2VqxyGsxHnr1XbKFFh8-eLGic2SXgfS1gU3xM,8864
200
+ hatchet_sdk/contracts/events_pb2_grpc.py,sha256=7opRptwLBvJE3ymhufaD-MmeLvY8UcuINg4CcZhiH_4,9980
201
+ hatchet_sdk/contracts/workflows_pb2.py,sha256=TvegbF5Kw9oVBHuSHNmpQMiF4xzEM7ioH4dhKdDxnsY,11975
202
+ hatchet_sdk/contracts/workflows_pb2.pyi,sha256=2r5d4DWaR0kwY8jKSzcffTAMMlWrusRXCziE_03SFYc,15434
203
+ hatchet_sdk/contracts/workflows_pb2_grpc.py,sha256=AFu0wRpfyCyNVIYZLKian6s5qPnVDCwtuE91JMaMmUI,10522
204
204
  hatchet_sdk/features/cron.py,sha256=4lKMH0MqiN8cHJk2jhF0Ueqs6z5ozwJzlOeSeaWqvO0,10217
205
205
  hatchet_sdk/features/scheduled.py,sha256=YhEbNWl8dWOH61rXVjAyu8iG1BZqpSkD4kgaxkKIHgY,9504
206
- hatchet_sdk/hatchet.py,sha256=fnORkj00EYzNYCJZXTlI0i-w50LaOkH8LkDVuNygBaQ,9512
207
- hatchet_sdk/labels.py,sha256=OuOtOHeZAd1aYi3j_EhgzIGo1_1wDlYokV74xHSuf8Y,259
206
+ hatchet_sdk/hatchet.py,sha256=UpCDv3q-Mrbwi7tFHS2FonBwwXlbs5kRFfCfx4DJVeI,10027
207
+ hatchet_sdk/labels.py,sha256=Axfp1yUNowzE9mL8AQA1ADqwOaNmq3QP_45wb1Ed1aI,272
208
208
  hatchet_sdk/loader.py,sha256=dGs6Tt8wdEgHeCBesbbQsP6ZYiARBvoqwIdXIO1P5Os,7913
209
209
  hatchet_sdk/logger.py,sha256=5uOr52T4mImSQm1QvWT8HvZFK5WfPNh3Y1cBQZRFgUQ,333
210
210
  hatchet_sdk/metadata.py,sha256=M_Cb-CXRKitzVMQHeaHUtbY28ET__fAbyGX1YKaeN4I,80
211
211
  hatchet_sdk/rate_limit.py,sha256=IIzpe65i-518t9kQcZVEykDQ2VY8sOw2F7qlQ4wlAjw,4421
212
212
  hatchet_sdk/semver.py,sha256=PrgBL0TnyXl3p_OK1iSMk9Gpujfh5asQpJ4DHJLCW2k,998
213
213
  hatchet_sdk/token.py,sha256=Ap3jnbaPAL10F2G_D71wj7OpBcvrI3RuE0keqXx1lAE,698
214
- hatchet_sdk/utils/aio_utils.py,sha256=8woLr_rO3CgzpA_2igTcU133oCxNnQoWCt-PZAWrZ_Q,4072
214
+ hatchet_sdk/utils/aio_utils.py,sha256=D92Z1lc84u8f1mVE3XzOv9XtRKfCIvwfdfL-Bo5fJA8,4336
215
215
  hatchet_sdk/utils/backoff.py,sha256=6B5Rb5nLKw_TqqgpJMYjIBV1PTTtbOMRZCveisVhg_I,353
216
216
  hatchet_sdk/utils/serialization.py,sha256=P2Uq0yxg-Cea5Lmf6IOh2r7W17MNF1Hv2qxSny6BUk8,451
217
217
  hatchet_sdk/utils/tracing.py,sha256=UjTw2vMLg1p6GjOGwt634nYJaNZh8c70PBxOBVLiDQ4,2261
218
218
  hatchet_sdk/utils/types.py,sha256=qhx1OoeXh77AN6s4SMaGpB3zK3hPm7ocv-23JFa6_wE,191
219
- hatchet_sdk/utils/typing.py,sha256=qXhnoQJXjXwuzyZUQ2H3YQ6YW7vL9D_kvmh2kJM5Z9s,233
220
- hatchet_sdk/v2/callable.py,sha256=FbKj7Eo9SMGuv6SBZQNC6Z8hw1iMTLxbpaW4Dqs4Nn8,6875
221
- hatchet_sdk/v2/concurrency.py,sha256=aDr8vunzEJOoe2iGxip6M2fbGTde19kJu-UxCNkXQjM,1282
222
- hatchet_sdk/v2/hatchet.py,sha256=begVaMZmBllykNuyfAvqhL88m5ELBmx7RrJvsL4xdmY,6872
219
+ hatchet_sdk/utils/typing.py,sha256=ab1FdF8OAXjcFq9Ui7Bd6yi8ZX473rIqFAqXJnh5AEM,261
220
+ hatchet_sdk/v2/callable.py,sha256=DqBc3VS7WAk5qU9Ef1HnyAzdgxUq1hDzj-CwQYQrvcA,6948
221
+ hatchet_sdk/v2/concurrency.py,sha256=mRsbCj3G2kwkAJjHOg67y226mYdXVmd0uka3ypdRKUQ,1434
222
+ hatchet_sdk/v2/hatchet.py,sha256=mQZoloWuRCIEwDwXeTaJL2kBjgs9YLHy7UPWxBD5070,7282
223
223
  hatchet_sdk/worker/__init__.py,sha256=1Ze1seDuXx5yD1IfHmqGFgK5qrRazVW4ZcDVGl-Pddw,61
224
224
  hatchet_sdk/worker/action_listener_process.py,sha256=tmlzDgyHWxGl8fJWE9NKqjvhqpGi9SMmOh5dFyiVL-Q,9979
225
225
  hatchet_sdk/worker/runner/run_loop_manager.py,sha256=nV7fhNxJKCcrBm0ci118aszF_7AxenBkOTIe1UsBEt4,3490
226
- hatchet_sdk/worker/runner/runner.py,sha256=fOzfn9Eh6LWhxYl1dRF_EzKBq-EeTIDzeEuX8V0Wm1o,18547
226
+ hatchet_sdk/worker/runner/runner.py,sha256=uNHPViiQvtwvX4uJ9TqcbFPonJnhhoEM3WNOWEKyop0,18517
227
227
  hatchet_sdk/worker/runner/utils/capture_logs.py,sha256=s_BGxeykelVbusx6u31EPx3vv9c2BHkuBnYcaLW680E,2381
228
228
  hatchet_sdk/worker/runner/utils/error_with_traceback.py,sha256=Iih_s8JNqrinXETFJ3ZS88EhaTekfM6m5fqIP7QWoIM,181
229
- hatchet_sdk/worker/worker.py,sha256=fBqTuSnE4lfl-CMTg0FYuw1jE20_CJOwyu2QuzTGdpU,11335
230
- hatchet_sdk/workflow.py,sha256=qH7lEtR8lvwfP0lHPN2dXJjEh2xmHST19ADW7z82OgM,9209
229
+ hatchet_sdk/worker/worker.py,sha256=R4UEf_1e7qe1LrXS8-0fjfriwcSb3W_38RUR6pOxBCo,11547
230
+ hatchet_sdk/workflow.py,sha256=XRj5jcCQSvPQMXxBipf-ZlARua2E8Z9igRzGcQ5alkI,9375
231
231
  hatchet_sdk/workflow_run.py,sha256=BwK5cefvXXvyQ1Ednj_7LeejMwQJqWnvUC_FTBmJNxk,1805
232
- hatchet_sdk-0.42.3.dist-info/METADATA,sha256=l_KiiLXoE8-zlevPKjK8X7EY4MANc_IPbVT2qev1K9E,1514
233
- hatchet_sdk-0.42.3.dist-info/WHEEL,sha256=FMvqSimYX_P7y0a7UY-_Mc83r5zkBZsCYPm7Lr0Bsq4,88
234
- hatchet_sdk-0.42.3.dist-info/entry_points.txt,sha256=LTtQRABmSGYOxRI68cUVEz5dp9Qb57eqXGic9lU8RMo,1023
235
- hatchet_sdk-0.42.3.dist-info/RECORD,,
232
+ hatchet_sdk-0.42.5.dist-info/METADATA,sha256=BztALlvM5Evu2RNQwVaMfnWJR6WqsKwgxCE3HCb4oZg,1514
233
+ hatchet_sdk-0.42.5.dist-info/WHEEL,sha256=FMvqSimYX_P7y0a7UY-_Mc83r5zkBZsCYPm7Lr0Bsq4,88
234
+ hatchet_sdk-0.42.5.dist-info/entry_points.txt,sha256=LTtQRABmSGYOxRI68cUVEz5dp9Qb57eqXGic9lU8RMo,1023
235
+ hatchet_sdk-0.42.5.dist-info/RECORD,,