prefect-client 3.0.1__py3-none-any.whl → 3.0.2__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 (40) hide show
  1. prefect/_internal/compatibility/deprecated.py +1 -1
  2. prefect/blocks/notifications.py +21 -0
  3. prefect/blocks/webhook.py +8 -0
  4. prefect/client/orchestration.py +39 -20
  5. prefect/client/schemas/actions.py +2 -2
  6. prefect/client/schemas/objects.py +24 -6
  7. prefect/client/types/flexible_schedule_list.py +1 -1
  8. prefect/concurrency/asyncio.py +45 -6
  9. prefect/concurrency/services.py +1 -1
  10. prefect/concurrency/sync.py +21 -27
  11. prefect/concurrency/v1/asyncio.py +3 -0
  12. prefect/concurrency/v1/sync.py +4 -5
  13. prefect/context.py +5 -1
  14. prefect/deployments/runner.py +1 -0
  15. prefect/events/actions.py +6 -0
  16. prefect/flow_engine.py +12 -4
  17. prefect/locking/filesystem.py +243 -0
  18. prefect/logging/handlers.py +0 -2
  19. prefect/logging/loggers.py +0 -18
  20. prefect/logging/logging.yml +1 -0
  21. prefect/main.py +19 -5
  22. prefect/records/base.py +12 -0
  23. prefect/records/filesystem.py +6 -2
  24. prefect/records/memory.py +6 -0
  25. prefect/records/result_store.py +6 -0
  26. prefect/results.py +169 -25
  27. prefect/runner/runner.py +74 -5
  28. prefect/settings.py +1 -1
  29. prefect/states.py +34 -17
  30. prefect/task_engine.py +31 -37
  31. prefect/transactions.py +105 -50
  32. prefect/utilities/engine.py +16 -8
  33. prefect/utilities/importtools.py +1 -0
  34. prefect/utilities/urls.py +70 -12
  35. prefect/workers/base.py +14 -6
  36. {prefect_client-3.0.1.dist-info → prefect_client-3.0.2.dist-info}/METADATA +1 -1
  37. {prefect_client-3.0.1.dist-info → prefect_client-3.0.2.dist-info}/RECORD +40 -39
  38. {prefect_client-3.0.1.dist-info → prefect_client-3.0.2.dist-info}/LICENSE +0 -0
  39. {prefect_client-3.0.1.dist-info → prefect_client-3.0.2.dist-info}/WHEEL +0 -0
  40. {prefect_client-3.0.1.dist-info → prefect_client-3.0.2.dist-info}/top_level.txt +0 -0
@@ -398,6 +398,7 @@ def safe_load_namespace(
398
398
  # Save original sys.path and modify it
399
399
  original_sys_path = sys.path.copy()
400
400
  sys.path.insert(0, parent_dir)
401
+ sys.path.insert(0, file_dir)
401
402
 
402
403
  # Create a temporary module for import context
403
404
  temp_module = ModuleType(package_name)
prefect/utilities/urls.py CHANGED
@@ -1,17 +1,22 @@
1
1
  import inspect
2
+ import ipaddress
3
+ import socket
2
4
  import urllib.parse
3
- from typing import Any, Literal, Optional, Union
5
+ from typing import TYPE_CHECKING, Any, Literal, Optional, Union
6
+ from urllib.parse import urlparse
4
7
  from uuid import UUID
5
8
 
6
9
  from pydantic import BaseModel
7
10
 
8
11
  from prefect import settings
9
- from prefect.blocks.core import Block
10
- from prefect.events.schemas.automations import Automation
11
- from prefect.events.schemas.events import ReceivedEvent, Resource
12
- from prefect.futures import PrefectFuture
13
12
  from prefect.logging.loggers import get_logger
14
- from prefect.variables import Variable
13
+
14
+ if TYPE_CHECKING:
15
+ from prefect.blocks.core import Block
16
+ from prefect.events.schemas.automations import Automation
17
+ from prefect.events.schemas.events import ReceivedEvent, Resource
18
+ from prefect.futures import PrefectFuture
19
+ from prefect.variables import Variable
15
20
 
16
21
  logger = get_logger("utilities.urls")
17
22
 
@@ -58,6 +63,54 @@ URLType = Literal["ui", "api"]
58
63
  RUN_TYPES = {"flow-run", "task-run"}
59
64
 
60
65
 
66
+ def validate_restricted_url(url: str):
67
+ """
68
+ Validate that the provided URL is safe for outbound requests. This prevents
69
+ attacks like SSRF (Server Side Request Forgery), where an attacker can make
70
+ requests to internal services (like the GCP metadata service, localhost addresses,
71
+ or in-cluster Kubernetes services)
72
+
73
+ Args:
74
+ url: The URL to validate.
75
+
76
+ Raises:
77
+ ValueError: If the URL is a restricted URL.
78
+ """
79
+
80
+ try:
81
+ parsed_url = urlparse(url)
82
+ except ValueError:
83
+ raise ValueError(f"{url!r} is not a valid URL.")
84
+
85
+ if parsed_url.scheme not in ("http", "https"):
86
+ raise ValueError(
87
+ f"{url!r} is not a valid URL. Only HTTP and HTTPS URLs are allowed."
88
+ )
89
+
90
+ hostname = parsed_url.hostname or ""
91
+
92
+ # Remove IPv6 brackets if present
93
+ if hostname.startswith("[") and hostname.endswith("]"):
94
+ hostname = hostname[1:-1]
95
+
96
+ if not hostname:
97
+ raise ValueError(f"{url!r} is not a valid URL.")
98
+
99
+ try:
100
+ ip_address = socket.gethostbyname(hostname)
101
+ ip = ipaddress.ip_address(ip_address)
102
+ except socket.gaierror:
103
+ try:
104
+ ip = ipaddress.ip_address(hostname)
105
+ except ValueError:
106
+ raise ValueError(f"{url!r} is not a valid URL. It could not be resolved.")
107
+
108
+ if ip.is_private:
109
+ raise ValueError(
110
+ f"{url!r} is not a valid URL. It resolves to the private address {ip}."
111
+ )
112
+
113
+
61
114
  def convert_class_to_name(obj: Any) -> str:
62
115
  """
63
116
  Convert CamelCase class name to dash-separated lowercase name
@@ -69,12 +122,12 @@ def convert_class_to_name(obj: Any) -> str:
69
122
 
70
123
  def url_for(
71
124
  obj: Union[
72
- PrefectFuture,
73
- Block,
74
- Variable,
75
- Automation,
76
- Resource,
77
- ReceivedEvent,
125
+ "PrefectFuture",
126
+ "Block",
127
+ "Variable",
128
+ "Automation",
129
+ "Resource",
130
+ "ReceivedEvent",
78
131
  BaseModel,
79
132
  str,
80
133
  ],
@@ -105,6 +158,11 @@ def url_for(
105
158
  url_for(obj=my_flow_run)
106
159
  url_for("flow-run", obj_id="123e4567-e89b-12d3-a456-426614174000")
107
160
  """
161
+ from prefect.blocks.core import Block
162
+ from prefect.events.schemas.automations import Automation
163
+ from prefect.events.schemas.events import ReceivedEvent, Resource
164
+ from prefect.futures import PrefectFuture
165
+
108
166
  if isinstance(obj, PrefectFuture):
109
167
  name = "task-run"
110
168
  elif isinstance(obj, Block):
prefect/workers/base.py CHANGED
@@ -146,6 +146,12 @@ class BaseJobConfiguration(BaseModel):
146
146
  )
147
147
  variables.update(values)
148
148
 
149
+ # deep merge `env`
150
+ if isinstance(job_config.get("env"), dict) and (
151
+ hardcoded_env := variables.get("env")
152
+ ):
153
+ job_config["env"] = hardcoded_env | job_config.get("env")
154
+
149
155
  populated_configuration = apply_values(template=job_config, values=variables)
150
156
  populated_configuration = await resolve_block_document_references(
151
157
  template=populated_configuration, client=client
@@ -865,17 +871,19 @@ class BaseWorker(abc.ABC):
865
871
  deployment = await self._client.read_deployment(flow_run.deployment_id)
866
872
  if deployment and deployment.concurrency_limit:
867
873
  limit_name = f"deployment:{deployment.id}"
868
- concurrency_limit = deployment.concurrency_limit
869
874
  concurrency_ctx = concurrency
875
+
876
+ # ensure that the global concurrency limit is available
877
+ # and up-to-date before attempting to acquire a slot
878
+ await self._client.upsert_global_concurrency_limit_by_name(
879
+ limit_name, deployment.concurrency_limit
880
+ )
870
881
  else:
871
- limit_name = None
872
- concurrency_limit = None
882
+ limit_name = ""
873
883
  concurrency_ctx = asyncnullcontext
874
884
 
875
885
  try:
876
- async with concurrency_ctx(
877
- limit_name, occupy=concurrency_limit, max_retries=0
878
- ):
886
+ async with concurrency_ctx(limit_name, max_retries=0, strict=True):
879
887
  configuration = await self._get_configuration(flow_run, deployment)
880
888
  submitted_event = self._emit_flow_run_submitted_event(configuration)
881
889
  result = await self.run(
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.1
2
2
  Name: prefect-client
3
- Version: 3.0.1
3
+ Version: 3.0.2
4
4
  Summary: Workflow orchestration and management.
5
5
  Home-page: https://www.prefect.io
6
6
  Author: Prefect Technologies, Inc.
@@ -5,28 +5,28 @@ prefect/agent.py,sha256=BOVVY5z-vUIQ2u8LwMTXDaNys2fjOZSS5YGDwJmTQjI,230
5
5
  prefect/artifacts.py,sha256=dsxFWmdg2r9zbHM3KgKOR5YbJ29_dXUYF9kipJpbxkE,13009
6
6
  prefect/automations.py,sha256=NlQ62GPJzy-gnWQqX7c6CQJKw7p60WLGDAFcy82vtg4,5613
7
7
  prefect/cache_policies.py,sha256=779dI23HIPmrtImx9X6eVEH5jc9M7wE9T2isivNo8uM,6570
8
- prefect/context.py,sha256=WEzLE5WNSbQX0E3CyHFqDxZLsw3G5epwPCYXZuA1j8c,21695
8
+ prefect/context.py,sha256=nim_XAgq9Vr63ceuUhKgokjB94UHGSFzc7lFXdjr40g,21948
9
9
  prefect/engine.py,sha256=BpmDbe6miZcTl1vRkxfCPYcWSXADLigGPCagFwucMz0,1976
10
10
  prefect/exceptions.py,sha256=ondjUe0fIXXjhoFnqg8twqgLoPMR02HuQv5Az-kSG50,11348
11
11
  prefect/filesystems.py,sha256=7tqufyXIfEnMs2VE-hov3tJfBiELMhU9Dn9snmDh4B8,17304
12
- prefect/flow_engine.py,sha256=h0Wj2827ckJjrUD6hpJwIJR9C7jrZxvPcd3-niXA7H0,29791
12
+ prefect/flow_engine.py,sha256=Z6xOO1ONAGwVNcvyvEIkJv_LB0VE5iBptV4ZWgTFqbc,30000
13
13
  prefect/flow_runs.py,sha256=EaXRIQTOnwnA0fO7_EjwafFRmS57K_CRy0Xsz3JDIhc,16070
14
14
  prefect/flows.py,sha256=cWzNAzY8Z3Du_XY4LbNFg29kP26uR4OP7eFi1lGVeGw,88735
15
15
  prefect/futures.py,sha256=1Uq-Q3ommCHSku_lsASuP1s3yFuYoL980fGcHdCFg30,16298
16
- prefect/main.py,sha256=fC63TRxZH8WNeME83R9DCDrGW0If0RhSupaq-uNdghU,2061
16
+ prefect/main.py,sha256=IdtnJR5-IwP8EZsfhMFKj92ylMhNyau9X_eMcTP2ZjM,2336
17
17
  prefect/plugins.py,sha256=7AICJzHIu8iAeF9vl9wAYm28pR_k7dkdnm3OyJRfCv4,2229
18
18
  prefect/profiles.toml,sha256=kTvqDNMzjH3fsm5OEI-NKY4dMmipor5EvQXRB6rPEjY,522
19
19
  prefect/py.typed,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
20
- prefect/results.py,sha256=XZ3GVliB7iTO5gq0odw5LvJPI2fz_vuWmyknh8DwYcM,39558
20
+ prefect/results.py,sha256=jzhIBgDWv38arLvdVGFdZqE4laRC70VIvKyaqiUOEik,44463
21
21
  prefect/serializers.py,sha256=Lo41EM0_qGzcfB_63390Izeo3DdK6cY6VZfxa9hpSGQ,8712
22
- prefect/settings.py,sha256=FBBnacVvf9-vjIIPjvOkaFOzPerZirEpP3GJQjpG_iM,72526
23
- prefect/states.py,sha256=qevVs9k0iGIwRxze4NUkzykWaCG949OjIDIfe7zr1zQ,24079
24
- prefect/task_engine.py,sha256=TRFAIxX900nC51bEQaLFVZS15BmGQOdj6sEPc1eXr1U,57249
22
+ prefect/settings.py,sha256=dPlzt7sqF0kmxZTDiONjH90j4YO_5D3uWMJnwopvnGE,72527
23
+ prefect/states.py,sha256=2lysq6X5AvqPfE3eD3D0HYt-KpFA2OUgA0c4ZQ22A_U,24906
24
+ prefect/task_engine.py,sha256=_AeXff2cohUblfAF_itWkoBmCR9XiLPW5nPk6SrV2nc,57208
25
25
  prefect/task_runners.py,sha256=W1n0yMwbDIqnvffFVJADo9MGEbLaYkzWk52rqgnkMY4,15019
26
26
  prefect/task_runs.py,sha256=jkaQOkRKOHS8fgHUijteriFpjMSKv4zldn1D8tZHkUI,8777
27
27
  prefect/task_worker.py,sha256=a8Uw78Ms4p3ikt_la50lENmPLIa-jjbuvunvjVXvRKQ,16785
28
28
  prefect/tasks.py,sha256=35eOv7VfhziiC3hL9FxB3spYtG6tpxZBLzk5KP_8Ux8,68371
29
- prefect/transactions.py,sha256=-aItZavzYDvyh8njYQFM-j-5b7wPjmRjHud_U-pL6d4,14552
29
+ prefect/transactions.py,sha256=Dp3x5fr4n7QCO96x0FA84D-A3_xN5CP3vzxnQU5_cfo,16303
30
30
  prefect/variables.py,sha256=023cfSj_ydwvz6lyChRKnjHFfkdoYZKK_zdTtuSxrYo,4665
31
31
  prefect/_internal/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
32
32
  prefect/_internal/_logging.py,sha256=HvNHY-8P469o5u4LYEDBTem69XZEt1QUeUaLToijpak,810
@@ -34,7 +34,7 @@ prefect/_internal/integrations.py,sha256=U4cZMDbnilzZSKaMxvzZcSL27a1tzRMjDoTfr2u
34
34
  prefect/_internal/pytz.py,sha256=WWl9x16rKFWequGmcOGs_ljpCDPf2LDHMyZp_4D8e6c,13748
35
35
  prefect/_internal/retries.py,sha256=8uuagUX32w5YANLHqjM_1hHmVe9b1HxcwuPMXb1G2Qk,2317
36
36
  prefect/_internal/compatibility/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
37
- prefect/_internal/compatibility/deprecated.py,sha256=nqevphK00rakKgCfkbqBQ4NCktdb4338uuROjFcq6xA,7517
37
+ prefect/_internal/compatibility/deprecated.py,sha256=PVME2C3Oe4_8tKIGufx1W4EpGkz5IQY8gFohPVOjNcM,7533
38
38
  prefect/_internal/compatibility/experimental.py,sha256=nrIeeAe1vZ0yMb1cPw5AroVR6_msx-bzTeBLzY4au6o,5634
39
39
  prefect/_internal/compatibility/migration.py,sha256=oifIj6mKwVUfrUO13ODLKOCwLON4YqaTXzhBFh8AK6E,6797
40
40
  prefect/_internal/concurrency/__init__.py,sha256=YlTwU9ryjPNwbJa45adLJY00t_DGCh1QrdtY9WdVFfw,2140
@@ -63,44 +63,44 @@ prefect/blocks/__init__.py,sha256=BUfh6gIwA6HEjRyVCAiv0he3M1zfM-oY-JrlBfeWeY8,18
63
63
  prefect/blocks/abstract.py,sha256=YLzCaf3yXv6wFCF5ZqCIHJNwH7fME1rLxC-SijARHzk,16319
64
64
  prefect/blocks/core.py,sha256=sfP-ECLhKHPGysO66Kmd6SMKLC7tRiaFOzCQt8WXxIo,52724
65
65
  prefect/blocks/fields.py,sha256=1m507VVmkpOnMF_7N-qboRjtw4_ceIuDneX3jZ3Jm54,63
66
- prefect/blocks/notifications.py,sha256=Pkq7umC9wVaNajJZbqViGbOv08WrYUBgVruU0lAG-cY,29129
66
+ prefect/blocks/notifications.py,sha256=NEQqFobAOYWmvqbs6wPGHklrHPocJQSEsJow_CczwqE,29794
67
67
  prefect/blocks/redis.py,sha256=GUKYyx2QLtyNvgf5FT_dJxbgQcOzWCja3I23J1-AXhM,5629
68
68
  prefect/blocks/system.py,sha256=OacB-LLXaNiLY49bPx7aAjmvdEdBxNoaOdzsCUcDr2c,4563
69
- prefect/blocks/webhook.py,sha256=zLVGLPqiOE8x9IxbVFd3p96Cf1RygjSeRBelH8Kg6Zo,1860
69
+ prefect/blocks/webhook.py,sha256=f4rPcrRE-898fN-A6nN92tSwS7UpNIMXGF3XNqsockY,2180
70
70
  prefect/client/__init__.py,sha256=fFtCXsGIsBCsAMFKlUPgRVUoIeqq_CsGtFE1knhbHlU,593
71
71
  prefect/client/base.py,sha256=2K8UiWzorZNNM4c8c-OiGeZ5i5ViUfZ_Q31oPobbOO0,24956
72
72
  prefect/client/cloud.py,sha256=SOqPXvXmFxAatubTyRQQe9i3DkAf4-mZZIpSO3Oy-hA,5819
73
73
  prefect/client/collections.py,sha256=u-96saqu0RALAazRI0YaZCJahnuafMppY21KN6ggx80,1059
74
74
  prefect/client/constants.py,sha256=Z_GG8KF70vbbXxpJuqW5pLnwzujTVeHbcYYRikNmGH0,29
75
- prefect/client/orchestration.py,sha256=Dld7z3wVBx0IIgAF26WJKbT-UdTbq2DQkdrbl_BMUkc,148681
75
+ prefect/client/orchestration.py,sha256=EPDwR5kSbTVvB3sIe7N563XEM5HbwMDh1rUKtqLlKcU,149228
76
76
  prefect/client/subscriptions.py,sha256=J9uK9NGHO4VX4Y3NGgBJ4pIG_0cf-dJWPhF3f3PGYL4,3388
77
77
  prefect/client/utilities.py,sha256=89fmza0cRMOayxgXRdO51TKb11TczJ0ByOZmcZVrt44,3286
78
78
  prefect/client/schemas/__init__.py,sha256=KlyqFV-hMulMkNstBn_0ijoHoIwJZaBj6B1r07UmgvE,607
79
- prefect/client/schemas/actions.py,sha256=LJrioOmj34drliWEMF65_6xZgtv9UxyJgB5ksi1aXhU,28484
79
+ prefect/client/schemas/actions.py,sha256=K_RvBsBY_x3HaYRnR2aT5cmKHnX6xsLFRdBHHHTsEIg,28530
80
80
  prefect/client/schemas/filters.py,sha256=Pu0wB58_dsNwTeItpQdYII2mwGe0VlLV3ULsuI2PyCg,35648
81
- prefect/client/schemas/objects.py,sha256=k_aQh3eehyG9jkG5p9bv1SXjru7dJ507RPqhUWdpTUg,54385
81
+ prefect/client/schemas/objects.py,sha256=VOcbN7nXLcj8iU9xXEDtPvTI3D07FAsdn5Ic1hWBJMs,55001
82
82
  prefect/client/schemas/responses.py,sha256=J61c8ZqrxfOjKkdf6MLLrRBScsS0tql6Q2SPVr04Ids,14767
83
83
  prefect/client/schemas/schedules.py,sha256=8rpqjOYtknu2-1n5_WD4cOplgu93P3mCyX86B22LfL4,13070
84
84
  prefect/client/schemas/sorting.py,sha256=L-2Mx-igZPtsUoRUguTcG3nIEstMEMPD97NwPM2Ox5s,2579
85
85
  prefect/client/types/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
86
- prefect/client/types/flexible_schedule_list.py,sha256=F1VFAXGLM89dJRBLnVsxwAMGLmrRF2i81FirEMpbB5s,368
86
+ prefect/client/types/flexible_schedule_list.py,sha256=WjIiy-yZuA_k1iCMCrmZBW24JNNHYPDRkg3TOhlJGhw,370
87
87
  prefect/concurrency/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
88
- prefect/concurrency/asyncio.py,sha256=BLq_FDp0uyaPug6l8UBjnZe6oT_JsFIdzyW5zHqLeK0,6283
88
+ prefect/concurrency/asyncio.py,sha256=34evG-u6sZn9X78jUCSOAOE3TvNHJ2Fum4XLkSHixnU,7738
89
89
  prefect/concurrency/context.py,sha256=hXt_QDXvj6hidP63k7AnoOUNI1-ZKd6EIrTuopQyzHU,942
90
90
  prefect/concurrency/events.py,sha256=EjZwUbbtP-N-u8rk8nbyMIi-BnkshoLkHRYh913jUWU,1810
91
- prefect/concurrency/services.py,sha256=NlLlnQqmZpOU0hTRSpdDhxzr9f5f9TSiveEm-vbCDPI,3832
92
- prefect/concurrency/sync.py,sha256=NyjI8AYQpJAWWAvb2PBl92lSMZeOSK7Qk_YfSmAiIic,4408
91
+ prefect/concurrency/services.py,sha256=IecXILseqgLQWIrIsfXxoJj-o5MK5UC7jd_IjYinxi0,3831
92
+ prefect/concurrency/sync.py,sha256=nOAFmjptabztKtkJ_uAWgzTrb21vrkTwPulFkiIo8u4,4337
93
93
  prefect/concurrency/v1/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
94
- prefect/concurrency/v1/asyncio.py,sha256=HFbbt5SYLDov1_-btn4oPI-Z92yY7SdwkHtrbYAqOsI,4792
94
+ prefect/concurrency/v1/asyncio.py,sha256=ROro7lFAbyr2oWUAXYUzN-IpTkKM-DHOWvcfpr7-8AA,4883
95
95
  prefect/concurrency/v1/context.py,sha256=T3dDOqGx9PUSmDuiqKNEYBGiBJDXeyYoOFxZ3P8IPfw,1040
96
96
  prefect/concurrency/v1/events.py,sha256=PhW3iV5z-ez97LBHnte4joHMVPYaZJNRJkNXsZlb0LM,1873
97
97
  prefect/concurrency/v1/services.py,sha256=5IwRepJ4IMC0y-PmqXiDr5rR4wl3BuHbP6Tg6C3rrQg,4426
98
- prefect/concurrency/v1/sync.py,sha256=02QYCXjO42laUTQYP8j2Kr9_ul5VsC1eC5btMM2vP8U,2465
98
+ prefect/concurrency/v1/sync.py,sha256=qKE0YzNbrmYooTwP7pz4m1BUz61THCUIF45_PE5IyYg,2375
99
99
  prefect/deployments/__init__.py,sha256=_wb7NxDKhq11z9MjYsPckmT3o6MRhGLRgCV9TmvYtew,1002
100
100
  prefect/deployments/base.py,sha256=rEMb-AXUuO66a7Qwq0KFUI1L0Xrl_-8z7cgAKaysfwg,16136
101
101
  prefect/deployments/deployments.py,sha256=EvC9qBdvJRc8CHJqRjFTqtzx75SE8bpZOl5C-2eULyA,109
102
102
  prefect/deployments/flow_runs.py,sha256=tH6lpEkgHhQ5Ipr0bhVAjN6AeOoDwY7UKrkbJihJ6D0,6567
103
- prefect/deployments/runner.py,sha256=60knIERoKtILXj-fGdPxu238j5nQFshw97N8ONVDoSU,40026
103
+ prefect/deployments/runner.py,sha256=vsBeY1w7tWMu0pzTXQzRBBgGVvX6FezPgV7kvtnqwlo,40123
104
104
  prefect/deployments/schedules.py,sha256=KCYA6dOmLAoElHZuoWqdJn4Yno4TtOZtXfPOpTLb1cE,2046
105
105
  prefect/deployments/steps/__init__.py,sha256=Dlz9VqMRyG1Gal8dj8vfGpPr0LyQhZdvcciozkK8WoY,206
106
106
  prefect/deployments/steps/core.py,sha256=5vFf6BSpu992kkaYsvcPpsz-nZxFmayMIDmY9h0Hb8M,6846
@@ -109,7 +109,7 @@ prefect/deployments/steps/utility.py,sha256=s5mMBmHVCS1ZRBRUCunwPueU_7Dii_GK6CqC
109
109
  prefect/docker/__init__.py,sha256=jumlacz2HY9l1ee0L9_kE0PFi9NO3l3pWINm9T5N9hs,524
110
110
  prefect/docker/docker_image.py,sha256=Y84_ooCYA9NGl6FElJul9-FaW3teT-eia2SiNtZ1LG8,2999
111
111
  prefect/events/__init__.py,sha256=GtKl2bE--pJduTxelH2xy7SadlLJmmis8WR1EYixhuA,2094
112
- prefect/events/actions.py,sha256=4kBV2NwFlC6oXVeMp9Qb2HMNqv1IZ7FcOqeXz1zlRf0,8983
112
+ prefect/events/actions.py,sha256=A7jS8bo4zWGnrt3QfSoQs0uYC1xfKXio3IfU0XtTb5s,9129
113
113
  prefect/events/clients.py,sha256=ym5LM1M69Ar3yKhMrASyqbSYnGsrln6UQgqO-ITDYyY,22136
114
114
  prefect/events/filters.py,sha256=IJ1TF-TCC7Wk2nJsbYW-HyAANToDQ6z1MdD63qE-lfw,8186
115
115
  prefect/events/related.py,sha256=TQPYIPJI_vZlZgZgq3YpsGCmFleiZCMDtn_jMrYBJRg,6537
@@ -133,23 +133,24 @@ prefect/input/__init__.py,sha256=Ue2h-YhYP71nEtsVJaslqMwO6C0ckjhjTYwwEgp-E3g,701
133
133
  prefect/input/actions.py,sha256=IGdWjVcesnRjLmPCzB4ZM7FkRWXDKCku6yhE-7p0vKk,3777
134
134
  prefect/input/run_input.py,sha256=2wG-0L3N0spwh61Z3xI0PM8AAjHEIQZcDN703Er_gLo,18728
135
135
  prefect/locking/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
136
+ prefect/locking/filesystem.py,sha256=F7Oc58FKlj7X4IDkYovQf6LPRPLiXhawSs907_Y57B0,7996
136
137
  prefect/locking/memory.py,sha256=Y1fsMSUAk3jUILzRivbxlrE9Xv8OcVbaylVf-aiEGNc,7495
137
138
  prefect/locking/protocol.py,sha256=o5-48SxvEDAdVwW8RIn7rCN32CmvIsaVHTztESUXuHU,4232
138
139
  prefect/logging/__init__.py,sha256=zx9f5_dWrR4DbcTOFBpNGOPoCZ1QcPFudr7zxb2XRpA,148
139
140
  prefect/logging/configuration.py,sha256=bYqFJm0QgLz92Dub1Lbl3JONjjm0lTK149pNAGbxPdM,3467
140
141
  prefect/logging/filters.py,sha256=9keHLN4-cpnsWcii1qU0RITNi9-m7pOhkJ_t0MtCM4k,1117
141
142
  prefect/logging/formatters.py,sha256=3nBWgawvD48slT0zgkKeus1gIyf0OjmDKdLwMEe5mPU,3923
142
- prefect/logging/handlers.py,sha256=1tdajMbJk0UY7ix0fhdbkmY5FFYTqkPHkmePEbRV8dQ,10562
143
+ prefect/logging/handlers.py,sha256=w532IhEH6890X3jlfwX3iYIxwJIM0WXDIHTT0K5e-U8,10453
143
144
  prefect/logging/highlighters.py,sha256=BpSXOy0n3lFVvlKWa7jC-HetAiClFi9jnQtEq5-rgok,1681
144
- prefect/logging/loggers.py,sha256=xmJ4GIuSXyFV4yMMDK-VokMFGbfcX64PLPyzdM_aV9c,11544
145
- prefect/logging/logging.yml,sha256=UkEewf0c3_dURI2uCU4RrxkhI5Devoa1s93fl7hilcg,3160
145
+ prefect/logging/loggers.py,sha256=9fN5iTXQwBAHwKfE9iBo-90f2SyGs9Z3OKmkLPG91VY,10995
146
+ prefect/logging/logging.yml,sha256=ALNY_E1i3E7tkagCB3Qg35IvuRBHt-t9QqVJvsSq5xA,3185
146
147
  prefect/records/__init__.py,sha256=rJJhaJBa0AWu63fJhtB-yHBi64qL6p4svo7F0qvm2sc,30
147
- prefect/records/base.py,sha256=4XqjGAmh6LUMHQ0SHaurhpmsFObhH49ucrG4nL2qpy0,7624
148
- prefect/records/filesystem.py,sha256=Gl4ei5wHp-X4e5PKuH81oj4KAvlcg_iIUbjWxUVOfMA,7155
149
- prefect/records/memory.py,sha256=yiPefmgYHHGtJ1JHsMyFRys7Gn9L9iaFeZ1Pyg-4HiM,6242
150
- prefect/records/result_store.py,sha256=rv8uF0WCsXpkItn2iQ69_SHv3dy_hwcdY_cH7R-8wvU,2244
148
+ prefect/records/base.py,sha256=Ne-7pRGNfmk0a_Vm3t5zRrj26KgGr_L2_XfLID0XzIY,8035
149
+ prefect/records/filesystem.py,sha256=X-h7r5deiHH5IaaDk4ugOCmR5ZKnJeU2cLgp0AkMt0E,7316
150
+ prefect/records/memory.py,sha256=YdzQvEfb-CX0sKxAZK5TaNxVvAlyYlZse9qdoer6Xbk,6447
151
+ prefect/records/result_store.py,sha256=3ZUFNHCCv_qBQhmIFdvlK_GMnPZcFacaI9dVdDKWdwA,2431
151
152
  prefect/runner/__init__.py,sha256=7U-vAOXFkzMfRz1q8Uv6Otsvc0OrPYLLP44srwkJ_8s,89
152
- prefect/runner/runner.py,sha256=tcLmvrxVmNK3s5r5GEeDrn7VNKvkpmgMZeGl6Dz6Dxg,47403
153
+ prefect/runner/runner.py,sha256=SPCbcJP3JJMenwBRMRJ4OBPCGNmuK_UAEOuODuAAeic,50146
153
154
  prefect/runner/server.py,sha256=2o5vhrL7Zbn-HBStWhCjqqViex5Ye9GiQ1EW9RSEzdo,10500
154
155
  prefect/runner/storage.py,sha256=OsBa4nWdFxOTiAMNLFpexBdi5K3iuxidQx4YWZwditE,24734
155
156
  prefect/runner/submit.py,sha256=RuyDr-ved9wjYYarXiehY5oJVFf_HE3XKKACNWpxpPc,8131
@@ -171,10 +172,10 @@ prefect/utilities/compat.py,sha256=mNQZDnzyKaOqy-OV-DnmH_dc7CNF5nQgW_EsA4xMr7g,9
171
172
  prefect/utilities/context.py,sha256=BThuUW94-IYgFYTeMIM9KMo8ShT3oiI7w5ajZHzU1j0,1377
172
173
  prefect/utilities/dispatch.py,sha256=EthEmyRwv-4W8z2BJclrsOQHJ_pJoZYL0t2cyYPEa-E,6098
173
174
  prefect/utilities/dockerutils.py,sha256=kRozGQ7JO6Uxl-ljWtDryzxhf96rHL78aHYDh255Em4,20324
174
- prefect/utilities/engine.py,sha256=50A0MITbScR6Xc3LPHMBO5uXn8yOdQoMUm5c5cgNH4A,31557
175
+ prefect/utilities/engine.py,sha256=dRjO7PhqacdhIBBOcAXPCPSG4EozbWrPsMXVkGX-Zgk,31879
175
176
  prefect/utilities/filesystem.py,sha256=frAyy6qOeYa7c-jVbEUGZQEe6J1yF8I_SvUepPd59gI,4415
176
177
  prefect/utilities/hashing.py,sha256=EOwZLmoIZImuSTxAvVqInabxJ-4RpEfYeg9e2EDQF8o,1752
177
- prefect/utilities/importtools.py,sha256=Wo4Tj9hSf7gghP83MxW3w9FK3jkaGKPEobDYjabPqT0,19389
178
+ prefect/utilities/importtools.py,sha256=aO-xhf2h2KzsLGvSKwRAZLB4ITeW9rsV0Ys-gwq3i7o,19426
178
179
  prefect/utilities/math.py,sha256=wLwcKVidpNeWQi1TUIWWLHGjlz9UgboX9FUGhx_CQzo,2821
179
180
  prefect/utilities/names.py,sha256=x-stHcF7_tebJPvB1dz-5FvdXJXNBTg2kFZXSnIBBmk,1657
180
181
  prefect/utilities/processutils.py,sha256=yo_GO48pZzgn4A0IK5irTAoqyUCYvWKDSqHXCrtP8c4,14547
@@ -185,20 +186,20 @@ prefect/utilities/slugify.py,sha256=57Vb14t13F3zm1P65KAu8nVeAz0iJCd1Qc5eMG-R5y8,
185
186
  prefect/utilities/templating.py,sha256=nAiOGMMHGbIDFkGYy-g-dzcbY311WfycdgAhsM3cLpY,13298
186
187
  prefect/utilities/text.py,sha256=eXGIsCcZ7h_6hy8T5GDQjL8GiKyktoOqavYub0QjgO4,445
187
188
  prefect/utilities/timeout.py,sha256=BRDIOWnqcw3B7X9tIk83Y3n9nQrJzZgduDQ63z-ns8w,1286
188
- prefect/utilities/urls.py,sha256=GuiV3mk-XfzXx139ySyNQNbNaolA3T-hUZvW3T_PhXU,6396
189
+ prefect/utilities/urls.py,sha256=tKB7Bmbhbe3lBpiAIp7Idb_TWDmmDZI6nNTnDkwDKKI,8207
189
190
  prefect/utilities/visualization.py,sha256=Lum4IvLQ0nHsdLt6GGzS3Wwo-828u1rmOKc5mmWu994,6502
190
191
  prefect/utilities/schema_tools/__init__.py,sha256=KsFsTEHQqgp89TkDpjggkgBBywoHQPxbx-m6YQhiNEI,322
191
192
  prefect/utilities/schema_tools/hydration.py,sha256=k12qVCdLLrK-mNo1hPCdhxM5f_N14Nj0vJdtiWYWffk,8858
192
193
  prefect/utilities/schema_tools/validation.py,sha256=2GCjxwApTFwzey40ul9OkcAXrU3r-kWK__9ucMo0qbk,9744
193
194
  prefect/workers/__init__.py,sha256=8dP8SLZbWYyC_l9DRTQSE3dEbDgns5DZDhxkp_NfsbQ,35
194
- prefect/workers/base.py,sha256=nJrjzm4b-3XZlNZi82omDzkDM2LngNOsP5QBnwq30qI,45789
195
+ prefect/workers/base.py,sha256=DWIbfOrjYgFOHUmkswTNk3Ih3Hl_t7o2jZ2-EvKjZy8,46139
195
196
  prefect/workers/block.py,sha256=BOVVY5z-vUIQ2u8LwMTXDaNys2fjOZSS5YGDwJmTQjI,230
196
197
  prefect/workers/cloud.py,sha256=BOVVY5z-vUIQ2u8LwMTXDaNys2fjOZSS5YGDwJmTQjI,230
197
198
  prefect/workers/process.py,sha256=tcJ3fbiraLCfpVGpv8dOHwMSfVzeD_kyguUOvPuIz6I,19796
198
199
  prefect/workers/server.py,sha256=lgh2FfSuaNU7b6HPxSFm8JtKvAvHsZGkiOo4y4tW1Cw,2022
199
200
  prefect/workers/utilities.py,sha256=VfPfAlGtTuDj0-Kb8WlMgAuOfgXCdrGAnKMapPSBrwc,2483
200
- prefect_client-3.0.1.dist-info/LICENSE,sha256=MCxsn8osAkzfxKC4CC_dLcUkU8DZLkyihZ8mGs3Ah3Q,11357
201
- prefect_client-3.0.1.dist-info/METADATA,sha256=UfnFgwZCMB6IK9fuHcyG-lpbmA7vbSvm5RI8bE8O2n0,7332
202
- prefect_client-3.0.1.dist-info/WHEEL,sha256=eOLhNAGa2EW3wWl_TU484h7q1UNgy0JXjjoqKoxAAQc,92
203
- prefect_client-3.0.1.dist-info/top_level.txt,sha256=MJZYJgFdbRc2woQCeB4vM6T33tr01TmkEhRcns6H_H4,8
204
- prefect_client-3.0.1.dist-info/RECORD,,
201
+ prefect_client-3.0.2.dist-info/LICENSE,sha256=MCxsn8osAkzfxKC4CC_dLcUkU8DZLkyihZ8mGs3Ah3Q,11357
202
+ prefect_client-3.0.2.dist-info/METADATA,sha256=zLFH-1v5yn_-48sgKItsPN-4OYAUBp1MeW7iGW_qFGQ,7332
203
+ prefect_client-3.0.2.dist-info/WHEEL,sha256=eOLhNAGa2EW3wWl_TU484h7q1UNgy0JXjjoqKoxAAQc,92
204
+ prefect_client-3.0.2.dist-info/top_level.txt,sha256=MJZYJgFdbRc2woQCeB4vM6T33tr01TmkEhRcns6H_H4,8
205
+ prefect_client-3.0.2.dist-info/RECORD,,