zenml-nightly 0.82.1.dev20250521__py3-none-any.whl → 0.82.1.dev20250522__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.
Files changed (42) hide show
  1. zenml/VERSION +1 -1
  2. zenml/config/build_configuration.py +7 -0
  3. zenml/zen_server/routers/actions_endpoints.py +6 -6
  4. zenml/zen_server/routers/artifact_endpoint.py +6 -6
  5. zenml/zen_server/routers/artifact_version_endpoints.py +11 -11
  6. zenml/zen_server/routers/auth_endpoints.py +4 -3
  7. zenml/zen_server/routers/code_repositories_endpoints.py +6 -6
  8. zenml/zen_server/routers/devices_endpoints.py +6 -6
  9. zenml/zen_server/routers/event_source_endpoints.py +6 -6
  10. zenml/zen_server/routers/flavors_endpoints.py +7 -7
  11. zenml/zen_server/routers/logs_endpoints.py +2 -2
  12. zenml/zen_server/routers/model_versions_endpoints.py +13 -13
  13. zenml/zen_server/routers/models_endpoints.py +6 -6
  14. zenml/zen_server/routers/pipeline_builds_endpoints.py +5 -5
  15. zenml/zen_server/routers/pipeline_deployments_endpoints.py +6 -6
  16. zenml/zen_server/routers/pipelines_endpoints.py +7 -7
  17. zenml/zen_server/routers/plugin_endpoints.py +3 -3
  18. zenml/zen_server/routers/projects_endpoints.py +7 -7
  19. zenml/zen_server/routers/run_metadata_endpoints.py +2 -2
  20. zenml/zen_server/routers/run_templates_endpoints.py +7 -7
  21. zenml/zen_server/routers/runs_endpoints.py +11 -11
  22. zenml/zen_server/routers/schedule_endpoints.py +6 -6
  23. zenml/zen_server/routers/secrets_endpoints.py +8 -8
  24. zenml/zen_server/routers/server_endpoints.py +13 -9
  25. zenml/zen_server/routers/service_accounts_endpoints.py +12 -12
  26. zenml/zen_server/routers/service_connectors_endpoints.py +13 -13
  27. zenml/zen_server/routers/service_endpoints.py +6 -6
  28. zenml/zen_server/routers/stack_components_endpoints.py +7 -7
  29. zenml/zen_server/routers/stack_deployment_endpoints.py +4 -4
  30. zenml/zen_server/routers/stacks_endpoints.py +6 -6
  31. zenml/zen_server/routers/steps_endpoints.py +8 -8
  32. zenml/zen_server/routers/tag_resource_endpoints.py +5 -5
  33. zenml/zen_server/routers/tags_endpoints.py +6 -6
  34. zenml/zen_server/routers/triggers_endpoints.py +9 -9
  35. zenml/zen_server/routers/users_endpoints.py +12 -12
  36. zenml/zen_server/routers/webhook_endpoints.py +2 -2
  37. zenml/zen_server/utils.py +37 -7
  38. {zenml_nightly-0.82.1.dev20250521.dist-info → zenml_nightly-0.82.1.dev20250522.dist-info}/METADATA +1 -1
  39. {zenml_nightly-0.82.1.dev20250521.dist-info → zenml_nightly-0.82.1.dev20250522.dist-info}/RECORD +42 -42
  40. {zenml_nightly-0.82.1.dev20250521.dist-info → zenml_nightly-0.82.1.dev20250522.dist-info}/LICENSE +0 -0
  41. {zenml_nightly-0.82.1.dev20250521.dist-info → zenml_nightly-0.82.1.dev20250522.dist-info}/WHEEL +0 -0
  42. {zenml_nightly-0.82.1.dev20250521.dist-info → zenml_nightly-0.82.1.dev20250522.dist-info}/entry_points.txt +0 -0
@@ -56,7 +56,7 @@ from zenml.zen_server.rbac.utils import (
56
56
  verify_permission_for_model,
57
57
  )
58
58
  from zenml.zen_server.utils import (
59
- handle_exceptions,
59
+ async_fastapi_endpoint_wrapper,
60
60
  make_dependable,
61
61
  server_config,
62
62
  verify_admin_status_if_no_rbac,
@@ -95,7 +95,7 @@ current_user_router = APIRouter(
95
95
  "",
96
96
  responses={401: error_response, 404: error_response, 422: error_response},
97
97
  )
98
- @handle_exceptions
98
+ @async_fastapi_endpoint_wrapper
99
99
  def list_users(
100
100
  user_filter_model: UserFilter = Depends(make_dependable(UserFilter)),
101
101
  hydrate: bool = False,
@@ -144,7 +144,7 @@ if server_config().auth_scheme != AuthScheme.EXTERNAL:
144
144
  422: error_response,
145
145
  },
146
146
  )
147
- @handle_exceptions
147
+ @async_fastapi_endpoint_wrapper
148
148
  def create_user(
149
149
  user: UserRequest,
150
150
  auth_context: AuthContext = Security(authorize),
@@ -193,7 +193,7 @@ if server_config().auth_scheme != AuthScheme.EXTERNAL:
193
193
  "/{user_name_or_id}",
194
194
  responses={401: error_response, 404: error_response, 422: error_response},
195
195
  )
196
- @handle_exceptions
196
+ @async_fastapi_endpoint_wrapper
197
197
  def get_user(
198
198
  user_name_or_id: Union[str, UUID],
199
199
  hydrate: bool = True,
@@ -237,7 +237,7 @@ if server_config().auth_scheme != AuthScheme.EXTERNAL:
237
237
  422: error_response,
238
238
  },
239
239
  )
240
- @handle_exceptions
240
+ @async_fastapi_endpoint_wrapper
241
241
  def activate_user(
242
242
  user_name_or_id: Union[str, UUID],
243
243
  user_update: UserUpdate,
@@ -297,7 +297,7 @@ if server_config().auth_scheme != AuthScheme.EXTERNAL:
297
297
  422: error_response,
298
298
  },
299
299
  )
300
- @handle_exceptions
300
+ @async_fastapi_endpoint_wrapper
301
301
  def deactivate_user(
302
302
  user_name_or_id: Union[str, UUID],
303
303
  auth_context: AuthContext = Security(authorize),
@@ -345,7 +345,7 @@ if server_config().auth_scheme != AuthScheme.EXTERNAL:
345
345
  422: error_response,
346
346
  },
347
347
  )
348
- @handle_exceptions
348
+ @async_fastapi_endpoint_wrapper
349
349
  def delete_user(
350
350
  user_name_or_id: Union[str, UUID],
351
351
  auth_context: AuthContext = Security(authorize),
@@ -387,7 +387,7 @@ if server_config().auth_scheme != AuthScheme.EXTERNAL:
387
387
  422: error_response,
388
388
  },
389
389
  )
390
- @handle_exceptions
390
+ @async_fastapi_endpoint_wrapper
391
391
  def email_opt_in_response(
392
392
  user_name_or_id: Union[str, UUID],
393
393
  user_response: UserUpdate,
@@ -439,7 +439,7 @@ if server_config().auth_scheme != AuthScheme.EXTERNAL:
439
439
  422: error_response,
440
440
  },
441
441
  )
442
- @handle_exceptions
442
+ @async_fastapi_endpoint_wrapper
443
443
  def update_user(
444
444
  user_name_or_id: Union[str, UUID],
445
445
  user_update: UserUpdate,
@@ -599,7 +599,7 @@ def update_user(
599
599
  "/current-user",
600
600
  responses={401: error_response, 404: error_response, 422: error_response},
601
601
  )
602
- @handle_exceptions
602
+ @async_fastapi_endpoint_wrapper
603
603
  def get_current_user(
604
604
  auth_context: AuthContext = Security(authorize),
605
605
  ) -> UserResponse:
@@ -626,7 +626,7 @@ if server_config().auth_scheme != AuthScheme.EXTERNAL:
626
626
  422: error_response,
627
627
  },
628
628
  )
629
- @handle_exceptions
629
+ @async_fastapi_endpoint_wrapper
630
630
  def update_myself(
631
631
  user: UserUpdate,
632
632
  request: Request,
@@ -705,7 +705,7 @@ if server_config().rbac_enabled:
705
705
  422: error_response,
706
706
  },
707
707
  )
708
- @handle_exceptions
708
+ @async_fastapi_endpoint_wrapper
709
709
  def update_user_resource_membership(
710
710
  resource_type: str,
711
711
  resource_id: UUID,
@@ -26,7 +26,7 @@ from zenml.event_sources.webhooks.base_webhook_event_source import (
26
26
  from zenml.exceptions import AuthorizationException, WebhookInactiveError
27
27
  from zenml.logger import get_logger
28
28
  from zenml.zen_server.utils import (
29
- handle_exceptions,
29
+ async_fastapi_endpoint_wrapper,
30
30
  plugin_flavor_registry,
31
31
  zen_store,
32
32
  )
@@ -55,7 +55,7 @@ async def get_body(request: Request) -> bytes:
55
55
  "/{event_source_id}",
56
56
  response_model=Dict[str, str],
57
57
  )
58
- @handle_exceptions
58
+ @async_fastapi_endpoint_wrapper
59
59
  def webhook(
60
60
  event_source_id: UUID,
61
61
  request: Request,
zenml/zen_server/utils.py CHANGED
@@ -19,6 +19,7 @@ from functools import wraps
19
19
  from typing import (
20
20
  TYPE_CHECKING,
21
21
  Any,
22
+ Awaitable,
22
23
  Callable,
23
24
  Dict,
24
25
  List,
@@ -27,11 +28,11 @@ from typing import (
27
28
  Type,
28
29
  TypeVar,
29
30
  Union,
30
- cast,
31
31
  )
32
32
  from uuid import UUID
33
33
 
34
34
  from pydantic import BaseModel, ValidationError
35
+ from typing_extensions import ParamSpec
35
36
 
36
37
  from zenml import __version__ as zenml_version
37
38
  from zenml.config.global_config import GlobalConfiguration
@@ -64,6 +65,11 @@ if TYPE_CHECKING:
64
65
  BoundedThreadPoolExecutor,
65
66
  )
66
67
 
68
+
69
+ P = ParamSpec("P")
70
+ R = TypeVar("R")
71
+
72
+
67
73
  logger = get_logger(__name__)
68
74
 
69
75
  _zen_store: Optional["SqlZenStore"] = None
@@ -298,11 +304,16 @@ def server_config() -> ServerConfiguration:
298
304
  return _server_config
299
305
 
300
306
 
301
- F = TypeVar("F", bound=Callable[..., Any])
302
-
307
+ def async_fastapi_endpoint_wrapper(
308
+ func: Callable[P, R],
309
+ ) -> Callable[P, Awaitable[Any]]:
310
+ """Decorator for FastAPI endpoints.
303
311
 
304
- def handle_exceptions(func: F) -> F:
305
- """Decorator to handle exceptions in the API.
312
+ This decorator for FastAPI endpoints does the following:
313
+ - Sets the auth_context context variable if the endpoint is authenticated.
314
+ - Converts exceptions to HTTPExceptions with the correct status code.
315
+ - Converts the sync endpoint function to an coroutine and runs the original
316
+ function in a worker threadpool. See below for more details.
306
317
 
307
318
  Args:
308
319
  func: Function to decorate.
@@ -312,7 +323,7 @@ def handle_exceptions(func: F) -> F:
312
323
  """
313
324
 
314
325
  @wraps(func)
315
- def decorated(*args: Any, **kwargs: Any) -> Any:
326
+ def decorated(*args: P.args, **kwargs: P.kwargs) -> Any:
316
327
  # These imports can't happen at module level as this module is also
317
328
  # used by the CLI when installed without the `server` extra
318
329
  from fastapi import HTTPException
@@ -345,7 +356,26 @@ def handle_exceptions(func: F) -> F:
345
356
  http_exception = http_exception_from_error(error)
346
357
  raise http_exception
347
358
 
348
- return cast(F, decorated)
359
+ # When having a sync FastAPI endpoint, it runs the endpoint function in
360
+ # a worker threadpool. If all threads are busy, it will queue the task.
361
+ # The problem is that after the endpoint code returns, FastAPI will queue
362
+ # another task in the same threadpool to serialize the response. If there
363
+ # are many tasks already in the queue, this means that the response
364
+ # serialization will wait for a long time instead of returning the response
365
+ # immediately. By making our endpoints async and then immediately
366
+ # dispatching them to the threadpool ourselves (which is essentially what
367
+ # FastAPI does when having a sync endpoint), we can avoid this problem.
368
+ # The serialization logic will now run on the event loop and not wait for
369
+ # a worker thread to become available.
370
+ # See: `fastapi.routing.serialize_response(...)` and
371
+ # https://github.com/fastapi/fastapi/pull/888 for more information.
372
+ @wraps(decorated)
373
+ async def async_decorated(*args: P.args, **kwargs: P.kwargs) -> Any:
374
+ from starlette.concurrency import run_in_threadpool
375
+
376
+ return await run_in_threadpool(decorated, *args, **kwargs)
377
+
378
+ return async_decorated
349
379
 
350
380
 
351
381
  # Code from https://github.com/tiangolo/fastapi/issues/1474#issuecomment-1160633178
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.3
2
2
  Name: zenml-nightly
3
- Version: 0.82.1.dev20250521
3
+ Version: 0.82.1.dev20250522
4
4
  Summary: ZenML: Write production-ready ML code.
5
5
  License: Apache-2.0
6
6
  Keywords: machine learning,production,pipeline,mlops,devops
@@ -1,5 +1,5 @@
1
1
  zenml/README.md,sha256=827dekbOWAs1BpW7VF1a4d7EbwPbjwccX-2zdXBENZo,1777
2
- zenml/VERSION,sha256=FX-9_pQVSQnGY2Fhoo6Eck1dVTnyq1TCpchQLE2aZAI,19
2
+ zenml/VERSION,sha256=V62XyuhhLfntir6O3u5XhATyUFx8svXLb1DDa10S8UM,19
3
3
  zenml/__init__.py,sha256=CKEyepFK-7akXYiMrNVh92Nb01Cjs23w4_YyI6sgdc8,2242
4
4
  zenml/actions/__init__.py,sha256=mrt6wPo73iKRxK754_NqsGyJ3buW7RnVeIGXr1xEw8Y,681
5
5
  zenml/actions/base_action.py,sha256=UcaHev6BTuLDwuswnyaPjdA8AgUqB5xPZ-lRtuvf2FU,25553
@@ -64,7 +64,7 @@ zenml/code_repositories/git/local_git_repository_context.py,sha256=hfX7zVDQ27Le0
64
64
  zenml/code_repositories/local_repository_context.py,sha256=1VyiYkJBDVg0iGusgRQDToGRPJuu9lx7jTBDpplukDg,2816
65
65
  zenml/config/__init__.py,sha256=DZEic7euSbwI9Yb3FMRQhTgfhqz-C6OdAiYmOb0-opI,1519
66
66
  zenml/config/base_settings.py,sha256=itoLqc1cOwEYhgSGdZmSKSaBevQkvYH7NQh7PUamazc,1700
67
- zenml/config/build_configuration.py,sha256=me2jXT91Ndbrq6OFFTz2zbKimUWp6APQiE_goYONLgM,6417
67
+ zenml/config/build_configuration.py,sha256=jGGNwP0Cb7a80JXArNxDgxzxl9ytSZRtv-WW7_psLbM,6870
68
68
  zenml/config/compiler.py,sha256=bK3LCDkrFc9SapJYH-vuQZ_o8scHNs-FdC5DblIUU4U,23024
69
69
  zenml/config/constants.py,sha256=QvSgMwXWxtspcJ45CrFDP1ZY3w6gS3bIhXLOtIDAbZA,713
70
70
  zenml/config/docker_settings.py,sha256=B3pYlnyQDiwSEHO6y965Jx6BMrVqKARjp7v23uBziLc,17068
@@ -1027,46 +1027,46 @@ zenml/zen_server/rbac/rbac_sql_zen_store.py,sha256=ZBjAbCUlhMsp8GZiIkULl2ztJ8K2W
1027
1027
  zenml/zen_server/rbac/utils.py,sha256=09r1dSZ04hcag21rg6Ug2fMCdYfNjSBnx_W8C336GzE,24254
1028
1028
  zenml/zen_server/rbac/zenml_cloud_rbac.py,sha256=L1Tio4IcNNxNWnVpAqBWYgdVfrqR20ddvdhWAo1i3f4,6055
1029
1029
  zenml/zen_server/routers/__init__.py,sha256=ViyAhWL-ogHxE9wBvB_iMcur5H1NRVrzXkpogVY7FBA,641
1030
- zenml/zen_server/routers/actions_endpoints.py,sha256=MFausi27i5QBB5s4vbjQQTVqFiRlk5jF5lRM6vsRM2o,9422
1031
- zenml/zen_server/routers/artifact_endpoint.py,sha256=huFufMN-hHzBUKqYmn1WeWVaJic1ypvqSpTWFxklUDQ,4976
1032
- zenml/zen_server/routers/artifact_version_endpoints.py,sha256=zda_iINad3VnKcyGgCW2ZveblEzZa5YjwrCAsuEN13s,11254
1033
- zenml/zen_server/routers/auth_endpoints.py,sha256=LKYtYbuuJljL6VdPNTeunfb7puS8iWwM0QTGVYJdBmY,22315
1034
- zenml/zen_server/routers/code_repositories_endpoints.py,sha256=_D1896lrEgYD516y69iiFrPn5b62MxlrTcmDt1AyqBA,6476
1035
- zenml/zen_server/routers/devices_endpoints.py,sha256=GluKziLikUn_IoflcBwV5wB8ui71STjDsg2Mjgn43MU,10551
1036
- zenml/zen_server/routers/event_source_endpoints.py,sha256=x7XL70ybrrWbkq_pM7xv67zHLMi6SN0GpXqKSxO_ORQ,10164
1037
- zenml/zen_server/routers/flavors_endpoints.py,sha256=Nq24PcvDyRLRAsdy0u3WGdXqLiHK6iE_uN29VLw-_U0,5273
1038
- zenml/zen_server/routers/logs_endpoints.py,sha256=qq7vLfJzmjIZ9C4DSw_IPjqHi5LdPbE0xHN8tDPa2uA,1879
1039
- zenml/zen_server/routers/model_versions_endpoints.py,sha256=VhmBUuMFef8bXvDIRncPD5hLa851lmIvmASI_lw2F5o,15483
1040
- zenml/zen_server/routers/models_endpoints.py,sha256=Bh_f7wvw1ZNwmZ51LRiiz3ftatkp_J5t622bJinmOaY,5680
1041
- zenml/zen_server/routers/pipeline_builds_endpoints.py,sha256=PQRSrDcyor6laZyOl74BODcdg0JSdFr-hbNvEJkJIG0,5333
1042
- zenml/zen_server/routers/pipeline_deployments_endpoints.py,sha256=f45O7dQqZnFWA7C62N5VGAtBsqpt38cRYsGgTaBS3Dw,9534
1043
- zenml/zen_server/routers/pipelines_endpoints.py,sha256=R6OM-0Tc6ZNPzQmLs5MWTJIE4FaksHt6xuDqCBtmr1U,7782
1044
- zenml/zen_server/routers/plugin_endpoints.py,sha256=vgIdA0kdYsf8PeF_pqDaqEYnIi2mlYALAv4uB9Nn7S0,3239
1045
- zenml/zen_server/routers/projects_endpoints.py,sha256=iIgCg_0_iR5OddgULvsP4xxMOOmEGmtCuSKYZVRE9f4,8464
1046
- zenml/zen_server/routers/run_metadata_endpoints.py,sha256=UTWQvweZTGuZnLrqhbIRYQ-z_TfOPY3Kn9p4YwU0tqw,3662
1047
- zenml/zen_server/routers/run_templates_endpoints.py,sha256=AdBvwbXefo9nKU2erkNZNFjZ3b8LitPuWR22rgWF3JM,8469
1048
- zenml/zen_server/routers/runs_endpoints.py,sha256=YoTqWm-Mx97q8ZMYXgIY8gr2ICJpRlk6DxxHKN1utFU,12631
1049
- zenml/zen_server/routers/schedule_endpoints.py,sha256=UXt6TIEX0PYhLoBgU-n5kIvWckX1BY_P5uUA_lK9J9A,5782
1050
- zenml/zen_server/routers/secrets_endpoints.py,sha256=diYTC-jl6Hxd_BHVaNsPf2ZcWUwC99naWHsM1xRjR-g,9198
1051
- zenml/zen_server/routers/server_endpoints.py,sha256=4KHL11w0pPEjs1ZE1SYNb80eojhou3Q5AabnpaWmYS0,8006
1052
- zenml/zen_server/routers/service_accounts_endpoints.py,sha256=egShMu776yf0jmoMLmdEnC29HQ7glHV8-MwWflcOcak,11930
1053
- zenml/zen_server/routers/service_connectors_endpoints.py,sha256=e3iarrmjalEhL1ErXc9ZemqksPsEJ01o6xlZPgL2AKQ,17401
1054
- zenml/zen_server/routers/service_endpoints.py,sha256=VmcmTXXkW2K6-_WC-Te8679Dr5uY0nsbIQUapUvrUfc,5488
1055
- zenml/zen_server/routers/stack_components_endpoints.py,sha256=8g8CA88uxOnWDMN4tZgZpSzkyThfDEhJiyJB16bjb9A,8143
1056
- zenml/zen_server/routers/stack_deployment_endpoints.py,sha256=dzSGkX8bnQAhdS5cfjN6dyklCporIo6cun0B4evEnII,5329
1057
- zenml/zen_server/routers/stacks_endpoints.py,sha256=iF9SANF2JCdl4YCrL0PpIG8LzoGO8C5-A1UnOZyBXwc,7449
1058
- zenml/zen_server/routers/steps_endpoints.py,sha256=By-9_VKrJeSo6UUqrggDhGKtrnhxiElORK_T-Ngn-OM,8135
1059
- zenml/zen_server/routers/tag_resource_endpoints.py,sha256=AdmbujrwKK6arnSx2VHpJWbZXnlviGlay7LCov4x9Fc,3203
1060
- zenml/zen_server/routers/tags_endpoints.py,sha256=lRjnMaJOdTnooMHoQYIViKfgu32cMq7rI3Lyeaxq4QI,4467
1061
- zenml/zen_server/routers/triggers_endpoints.py,sha256=5fb0EITa3bs--AtKQRQZ5QswHu4pb37OrG5y0OlnGXE,9983
1062
- zenml/zen_server/routers/users_endpoints.py,sha256=2SfqHutGp0OqwYVytx3WeIwF51nZ3f874uCiCc_m_7g,24531
1063
- zenml/zen_server/routers/webhook_endpoints.py,sha256=KOJsuykv_TMjL3oEItpC4OWWP75p-OEvVjRSUBd5Mro,3983
1030
+ zenml/zen_server/routers/actions_endpoints.py,sha256=-zzeTawwTrkWOnp8ltrGS_tUnWnyiXMFNaBRXI3zddk,9500
1031
+ zenml/zen_server/routers/artifact_endpoint.py,sha256=d-5yPQO4N9O2W97j0f_5fghNThnNe0izT9WpZLaJyuA,5054
1032
+ zenml/zen_server/routers/artifact_version_endpoints.py,sha256=1M1DpSFEDBDUVAd69eXf6Y-2vCiq8_MN5gi5nu0f3Iw,11397
1033
+ zenml/zen_server/routers/auth_endpoints.py,sha256=QInOg3IPn2ErzccmOLw8xJQd-jtyVR2VFZ9D-virM0U,22386
1034
+ zenml/zen_server/routers/code_repositories_endpoints.py,sha256=BEjnbUbH2CM7q-VfrKES-d3ngSipnvfTuvAsd88yRCo,6554
1035
+ zenml/zen_server/routers/devices_endpoints.py,sha256=ehOVJZwXYtZZh6VeXcUlhOgPq0yoZk2-mumKEeOn6Do,10629
1036
+ zenml/zen_server/routers/event_source_endpoints.py,sha256=-H5li0QTviGA2vFD6yW1N580KCuB9JFvosiXIdB0N_4,10242
1037
+ zenml/zen_server/routers/flavors_endpoints.py,sha256=S3RqxH68ytKlB8nLJooFpjb2RGNJa2xfPSz9zuYkS3Q,5364
1038
+ zenml/zen_server/routers/logs_endpoints.py,sha256=55nWKudfsE86xGKUf-XcG35EWldb8TSMEyEM1IRcr5Q,1905
1039
+ zenml/zen_server/routers/model_versions_endpoints.py,sha256=4gKbJC_vSYY6JZfJfmqDB0zwUM40vMGmLhrzznbTpko,15652
1040
+ zenml/zen_server/routers/models_endpoints.py,sha256=fF7q3znX5KaQiMtFK32yq4CeMASf7lt_ygl2QeNDzVo,5758
1041
+ zenml/zen_server/routers/pipeline_builds_endpoints.py,sha256=oYMIiGRGmWgF467YcvupGJvmkUHiygsYjl1lxk0D7RE,5398
1042
+ zenml/zen_server/routers/pipeline_deployments_endpoints.py,sha256=tY48uFvzlU2tJRG-QRHAe7HB6iYTB5881SMdaPQvVDI,9612
1043
+ zenml/zen_server/routers/pipelines_endpoints.py,sha256=Nnh5jPLF3hV-muRPQMt_8j9dBmjOloT6a4o29PBTQj0,7873
1044
+ zenml/zen_server/routers/plugin_endpoints.py,sha256=vyKKQIiLSzC5WkZoQdzS7sU-qYFSGn-fwCt917RxX_M,3278
1045
+ zenml/zen_server/routers/projects_endpoints.py,sha256=uL7oK8_0-H2nhjvPYHfYPvJOU4id7-n81MwjiSzHToE,8555
1046
+ zenml/zen_server/routers/run_metadata_endpoints.py,sha256=hUatO7c6LUBHpMDZYgDqiUbVUSBpt6-ZxaSC9eAaF9I,3688
1047
+ zenml/zen_server/routers/run_templates_endpoints.py,sha256=7MZjreJikAcwGfUmSbw4dunZISSKlf1iy33oYsXYXRI,8560
1048
+ zenml/zen_server/routers/runs_endpoints.py,sha256=CTLrVvYdcnbVgv04WpiJGervAI7nGiFn8MCpTdqDvJk,12774
1049
+ zenml/zen_server/routers/schedule_endpoints.py,sha256=m8TVhncapdtQqPm5EEm7CAeGr_i_0Tqa61EA8p1bIl4,5860
1050
+ zenml/zen_server/routers/secrets_endpoints.py,sha256=VgepInQHZXt-d8IAinftHs1n9il6hTD1qca6w5Pnnsk,9302
1051
+ zenml/zen_server/routers/server_endpoints.py,sha256=Aci-7TB5VZylmasEYc2tVpG7Npgtp6Dj56nrmy7mMmc,8133
1052
+ zenml/zen_server/routers/service_accounts_endpoints.py,sha256=q-vFzzYYorqaOPUnESQU06h2I-BaZvIyPxCAhQ4gLPw,12086
1053
+ zenml/zen_server/routers/service_connectors_endpoints.py,sha256=CkwhnNI49_64lqG7aWHtyE41iqKlY-lumiOrWU7aDU0,17570
1054
+ zenml/zen_server/routers/service_endpoints.py,sha256=37CY-22h4hTscEkBByKJqdHcOWsP2lTGAiY2WgBPB0w,5566
1055
+ zenml/zen_server/routers/stack_components_endpoints.py,sha256=-3YE_8jZuAsQFwJxrZkDZnCwlSFh5dm_0_8vJ04a2xM,8234
1056
+ zenml/zen_server/routers/stack_deployment_endpoints.py,sha256=r7N4UaDAwj9ACYfdyUofRHpNPRrzWl-vmGoSErN9oYI,5381
1057
+ zenml/zen_server/routers/stacks_endpoints.py,sha256=ci-WZ774Q2T3-XN6cZARJ95wmRUW2-W1mh7gKlbNE54,7527
1058
+ zenml/zen_server/routers/steps_endpoints.py,sha256=KZpVsEsycLMmiEGnwT2EkmQvaTIIyL4QOUJBXMu7NSo,8239
1059
+ zenml/zen_server/routers/tag_resource_endpoints.py,sha256=54HBt31whSj7wjzhw9Xzb6aJLBDVPd5iyg5fJ2Ej5qU,3268
1060
+ zenml/zen_server/routers/tags_endpoints.py,sha256=H0aXms8iAkcxo9lsBwpDrVhJnY5n2cqBd3Iz1OI8r_k,4545
1061
+ zenml/zen_server/routers/triggers_endpoints.py,sha256=Z9ry01MMpCZ2wcjcvJjnEu1eDhkcGACKuBL_F9m8smI,10100
1062
+ zenml/zen_server/routers/users_endpoints.py,sha256=-0wjKK0LYOUY7gmmbTRU1AHIej99dRvy3TI0bsGk9hQ,24687
1063
+ zenml/zen_server/routers/webhook_endpoints.py,sha256=4Ca6k_qyE5lZpflEqV0P4mcuXnhlW9N-YemZIwchRJg,4009
1064
1064
  zenml/zen_server/secure_headers.py,sha256=glh6QujnjyeoH1_FK-tAS-105G-qKS_34AqSzqJ6TRc,4182
1065
1065
  zenml/zen_server/template_execution/__init__.py,sha256=79knXLKfegsvVSVSWecpqrepq6iAavTUA4hKuiDk-WE,613
1066
1066
  zenml/zen_server/template_execution/runner_entrypoint_configuration.py,sha256=Y8aYJhqqs8Kv8I1q-dM1WemS5VBIfyoaaYH_YkzC7iY,1541
1067
1067
  zenml/zen_server/template_execution/utils.py,sha256=CiN7d8jCUTV5oKuoNF9Z_eDkitZrhL6V_Tz4CjU7em8,19410
1068
1068
  zenml/zen_server/template_execution/workload_manager_interface.py,sha256=CL9c7z8ajuZE01DaHmdCDCZmsroDcTarvN-nE8jv6qQ,2590
1069
- zenml/zen_server/utils.py,sha256=yOwPI0DxzDIxF7Ppnty_DuGMWYJ_ubHUNWfbTQ1_q9Q,18461
1069
+ zenml/zen_server/utils.py,sha256=NU1IrwT8GoYNt_s43nzmr9ZeUjkPW7iEB2NmJq5NvP8,20074
1070
1070
  zenml/zen_server/zen_server_api.py,sha256=1_YHOUmBulXuHWCxDLYtDCMxGze159UmU3f05643PSg,18182
1071
1071
  zenml/zen_stores/__init__.py,sha256=6LTgH6XwDeDxKqVJ1JTfGhmS8II1NLopPloINGmdyI0,691
1072
1072
  zenml/zen_stores/base_zen_store.py,sha256=AplsW2NR-G9_CU54XvNTQJo4W0KJ5TJV22cjKW4n2BY,16124
@@ -1319,8 +1319,8 @@ zenml/zen_stores/secrets_stores/sql_secrets_store.py,sha256=LPFW757WCJLP1S8vrvjs
1319
1319
  zenml/zen_stores/sql_zen_store.py,sha256=oUB9u3tMVmRrSxslC1oEN5kHQa8i7g4bNEpJKgsYmqY,441911
1320
1320
  zenml/zen_stores/template_utils.py,sha256=GbJ7LgGVYHSCKPEA8RNTxPoVTWqpC77F_lGzjJ4O1Fw,9220
1321
1321
  zenml/zen_stores/zen_store_interface.py,sha256=fF_uL_FplnvGvM5o3jOQ8i1zHXhuhKLL2n4nvIKSR7E,92090
1322
- zenml_nightly-0.82.1.dev20250521.dist-info/LICENSE,sha256=wbnfEnXnafPbqwANHkV6LUsPKOtdpsd-SNw37rogLtc,11359
1323
- zenml_nightly-0.82.1.dev20250521.dist-info/METADATA,sha256=0YoGPYbCHpQHx_aj7HeAvDvkV3GGQIWqJOn5UFaitPs,24317
1324
- zenml_nightly-0.82.1.dev20250521.dist-info/WHEEL,sha256=b4K_helf-jlQoXBBETfwnf4B04YC67LOev0jo4fX5m8,88
1325
- zenml_nightly-0.82.1.dev20250521.dist-info/entry_points.txt,sha256=QK3ETQE0YswAM2mWypNMOv8TLtr7EjnqAFq1br_jEFE,43
1326
- zenml_nightly-0.82.1.dev20250521.dist-info/RECORD,,
1322
+ zenml_nightly-0.82.1.dev20250522.dist-info/LICENSE,sha256=wbnfEnXnafPbqwANHkV6LUsPKOtdpsd-SNw37rogLtc,11359
1323
+ zenml_nightly-0.82.1.dev20250522.dist-info/METADATA,sha256=ie1RvBnJCcu9pLlEoRM3C4vp9wyEFwJzpONvj5P70YQ,24317
1324
+ zenml_nightly-0.82.1.dev20250522.dist-info/WHEEL,sha256=b4K_helf-jlQoXBBETfwnf4B04YC67LOev0jo4fX5m8,88
1325
+ zenml_nightly-0.82.1.dev20250522.dist-info/entry_points.txt,sha256=QK3ETQE0YswAM2mWypNMOv8TLtr7EjnqAFq1br_jEFE,43
1326
+ zenml_nightly-0.82.1.dev20250522.dist-info/RECORD,,