prefect-client 2.14.9__py3-none-any.whl → 2.14.10__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.
- prefect/__init__.py +4 -1
- prefect/client/orchestration.py +1 -2
- prefect/deployments/runner.py +5 -1
- prefect/engine.py +176 -11
- prefect/events/clients.py +216 -5
- prefect/events/filters.py +214 -0
- prefect/exceptions.py +4 -0
- prefect/infrastructure/base.py +106 -1
- prefect/infrastructure/container.py +52 -0
- prefect/infrastructure/process.py +38 -0
- prefect/infrastructure/provisioners/__init__.py +2 -0
- prefect/infrastructure/provisioners/cloud_run.py +7 -1
- prefect/infrastructure/provisioners/container_instance.py +797 -0
- prefect/states.py +26 -3
- prefect/utilities/services.py +10 -0
- prefect/workers/__init__.py +1 -0
- prefect/workers/block.py +226 -0
- prefect/workers/utilities.py +2 -1
- {prefect_client-2.14.9.dist-info → prefect_client-2.14.10.dist-info}/METADATA +2 -1
- {prefect_client-2.14.9.dist-info → prefect_client-2.14.10.dist-info}/RECORD +23 -20
- {prefect_client-2.14.9.dist-info → prefect_client-2.14.10.dist-info}/LICENSE +0 -0
- {prefect_client-2.14.9.dist-info → prefect_client-2.14.10.dist-info}/WHEEL +0 -0
- {prefect_client-2.14.9.dist-info → prefect_client-2.14.10.dist-info}/top_level.txt +0 -0
prefect/states.py
CHANGED
@@ -568,10 +568,10 @@ def Pending(cls: Type[State] = State, **kwargs) -> State:
|
|
568
568
|
|
569
569
|
def Paused(
|
570
570
|
cls: Type[State] = State,
|
571
|
-
timeout_seconds: int = None,
|
572
|
-
pause_expiration_time: datetime.datetime = None,
|
571
|
+
timeout_seconds: Optional[int] = None,
|
572
|
+
pause_expiration_time: Optional[datetime.datetime] = None,
|
573
573
|
reschedule: bool = False,
|
574
|
-
pause_key: str = None,
|
574
|
+
pause_key: Optional[str] = None,
|
575
575
|
**kwargs,
|
576
576
|
) -> State:
|
577
577
|
"""Convenience function for creating `Paused` states.
|
@@ -602,6 +602,29 @@ def Paused(
|
|
602
602
|
return cls(type=StateType.PAUSED, state_details=state_details, **kwargs)
|
603
603
|
|
604
604
|
|
605
|
+
def Suspended(
|
606
|
+
cls: Type[State] = State,
|
607
|
+
timeout_seconds: Optional[int] = None,
|
608
|
+
pause_expiration_time: Optional[datetime.datetime] = None,
|
609
|
+
pause_key: Optional[str] = None,
|
610
|
+
**kwargs,
|
611
|
+
):
|
612
|
+
"""Convenience function for creating `Suspended` states.
|
613
|
+
|
614
|
+
Returns:
|
615
|
+
State: a Suspended state
|
616
|
+
"""
|
617
|
+
return Paused(
|
618
|
+
cls=cls,
|
619
|
+
name="Suspended",
|
620
|
+
reschedule=True,
|
621
|
+
timeout_seconds=timeout_seconds,
|
622
|
+
pause_expiration_time=pause_expiration_time,
|
623
|
+
pause_key=pause_key,
|
624
|
+
**kwargs,
|
625
|
+
)
|
626
|
+
|
627
|
+
|
605
628
|
def AwaitingRetry(
|
606
629
|
cls: Type[State] = State, scheduled_time: datetime.datetime = None, **kwargs
|
607
630
|
) -> State:
|
prefect/utilities/services.py
CHANGED
@@ -7,9 +7,12 @@ from typing import Callable, Coroutine, Deque, Tuple
|
|
7
7
|
import anyio
|
8
8
|
import httpx
|
9
9
|
|
10
|
+
from prefect.logging.loggers import get_logger
|
10
11
|
from prefect.utilities.collections import distinct
|
11
12
|
from prefect.utilities.math import clamped_poisson_interval
|
12
13
|
|
14
|
+
logger = get_logger("utilities.services.critical_service_loop")
|
15
|
+
|
13
16
|
|
14
17
|
async def critical_service_loop(
|
15
18
|
workload: Callable[..., Coroutine],
|
@@ -50,6 +53,7 @@ async def critical_service_loop(
|
|
50
53
|
|
51
54
|
while True:
|
52
55
|
try:
|
56
|
+
logger.debug(f"Starting run of {workload!r}")
|
53
57
|
await workload()
|
54
58
|
|
55
59
|
# Reset the backoff count on success; we may want to consider resetting
|
@@ -69,6 +73,9 @@ async def critical_service_loop(
|
|
69
73
|
# exception clause below)
|
70
74
|
track_record.append(False)
|
71
75
|
failures.append((exc, sys.exc_info()[-1]))
|
76
|
+
logger.debug(
|
77
|
+
f"Run of {workload!r} failed with TransportError", exc_info=exc
|
78
|
+
)
|
72
79
|
except httpx.HTTPStatusError as exc:
|
73
80
|
if exc.response.status_code >= 500:
|
74
81
|
# 5XX codes indicate a potential outage of the Prefect API which is
|
@@ -76,6 +83,9 @@ async def critical_service_loop(
|
|
76
83
|
# it is prolonged.
|
77
84
|
track_record.append(False)
|
78
85
|
failures.append((exc, sys.exc_info()[-1]))
|
86
|
+
logger.debug(
|
87
|
+
f"Run of {workload!r} failed with HTTPStatusError", exc_info=exc
|
88
|
+
)
|
79
89
|
else:
|
80
90
|
raise
|
81
91
|
|
prefect/workers/__init__.py
CHANGED
prefect/workers/block.py
ADDED
@@ -0,0 +1,226 @@
|
|
1
|
+
import shlex
|
2
|
+
from typing import TYPE_CHECKING, Any, Dict, List, Optional
|
3
|
+
|
4
|
+
import anyio
|
5
|
+
import anyio.abc
|
6
|
+
|
7
|
+
from prefect._internal.pydantic import HAS_PYDANTIC_V2
|
8
|
+
from prefect.blocks.core import Block
|
9
|
+
from prefect.client.schemas.objects import BlockDocument
|
10
|
+
from prefect.infrastructure.base import Infrastructure
|
11
|
+
from prefect.utilities.collections import get_from_dict
|
12
|
+
from prefect.workers.base import BaseWorker, BaseWorkerResult
|
13
|
+
|
14
|
+
if HAS_PYDANTIC_V2:
|
15
|
+
from pydantic.v1 import BaseModel, Field, PrivateAttr, validator
|
16
|
+
else:
|
17
|
+
from pydantic import BaseModel, Field, PrivateAttr, validator
|
18
|
+
|
19
|
+
from prefect.client.orchestration import PrefectClient
|
20
|
+
from prefect.client.utilities import inject_client
|
21
|
+
from prefect.events.related import object_as_related_resource, tags_as_related_resources
|
22
|
+
from prefect.events.schemas import RelatedResource
|
23
|
+
from prefect.utilities.templating import (
|
24
|
+
apply_values,
|
25
|
+
)
|
26
|
+
|
27
|
+
if TYPE_CHECKING:
|
28
|
+
from prefect.client.schemas.objects import Flow, FlowRun
|
29
|
+
from prefect.client.schemas.responses import (
|
30
|
+
DeploymentResponse,
|
31
|
+
)
|
32
|
+
|
33
|
+
|
34
|
+
class BlockWorkerJobConfiguration(BaseModel):
|
35
|
+
block: Block = Field(
|
36
|
+
default=..., description="The infrastructure block to use for job creation."
|
37
|
+
)
|
38
|
+
|
39
|
+
@validator("block")
|
40
|
+
def _validate_block_is_infrastructure(cls, v):
|
41
|
+
print("v: ", v)
|
42
|
+
if not isinstance(v, Infrastructure):
|
43
|
+
raise TypeError("Provided block is not a valid infrastructure block.")
|
44
|
+
|
45
|
+
return v
|
46
|
+
|
47
|
+
_related_objects: Dict[str, Any] = PrivateAttr(default_factory=dict)
|
48
|
+
|
49
|
+
@property
|
50
|
+
def is_using_a_runner(self):
|
51
|
+
return (
|
52
|
+
self.block.command is not None
|
53
|
+
and "prefect flow-run execute" in shlex.join(self.block.command)
|
54
|
+
)
|
55
|
+
|
56
|
+
@staticmethod
|
57
|
+
def _get_base_config_defaults(variables: dict) -> dict:
|
58
|
+
"""Get default values from base config for all variables that have them."""
|
59
|
+
defaults = dict()
|
60
|
+
for variable_name, attrs in variables.items():
|
61
|
+
if "default" in attrs:
|
62
|
+
defaults[variable_name] = attrs["default"]
|
63
|
+
|
64
|
+
return defaults
|
65
|
+
|
66
|
+
@classmethod
|
67
|
+
@inject_client
|
68
|
+
async def from_template_and_values(
|
69
|
+
cls, base_job_template: dict, values: dict, client: "PrefectClient" = None
|
70
|
+
):
|
71
|
+
"""Creates a valid worker configuration object from the provided base
|
72
|
+
configuration and overrides.
|
73
|
+
|
74
|
+
Important: this method expects that the base_job_template was already
|
75
|
+
validated server-side.
|
76
|
+
"""
|
77
|
+
job_config: Dict[str, Any] = base_job_template["job_configuration"]
|
78
|
+
variables_schema = base_job_template["variables"]
|
79
|
+
variables = cls._get_base_config_defaults(
|
80
|
+
variables_schema.get("properties", {})
|
81
|
+
)
|
82
|
+
variables.update(values)
|
83
|
+
|
84
|
+
populated_configuration = apply_values(template=job_config, values=variables)
|
85
|
+
|
86
|
+
block_document_id = get_from_dict(
|
87
|
+
populated_configuration, "block.$ref.block_document_id"
|
88
|
+
)
|
89
|
+
if not block_document_id:
|
90
|
+
raise ValueError(
|
91
|
+
"Base job template is invalid for this worker type because it does not"
|
92
|
+
" contain a block_document_id after variable resolution."
|
93
|
+
)
|
94
|
+
|
95
|
+
block_document = await client.read_block_document(
|
96
|
+
block_document_id=block_document_id
|
97
|
+
)
|
98
|
+
infrastructure_block = Block._from_block_document(block_document)
|
99
|
+
|
100
|
+
populated_configuration["block"] = infrastructure_block
|
101
|
+
|
102
|
+
return cls(**populated_configuration)
|
103
|
+
|
104
|
+
@classmethod
|
105
|
+
def json_template(cls) -> dict:
|
106
|
+
"""Returns a dict with job configuration as keys and the corresponding templates as values
|
107
|
+
|
108
|
+
Defaults to using the job configuration parameter name as the template variable name.
|
109
|
+
|
110
|
+
e.g.
|
111
|
+
{
|
112
|
+
key1: '{{ key1 }}', # default variable template
|
113
|
+
key2: '{{ template2 }}', # `template2` specifically provide as template
|
114
|
+
}
|
115
|
+
"""
|
116
|
+
configuration = {}
|
117
|
+
properties = cls.schema()["properties"]
|
118
|
+
for k, v in properties.items():
|
119
|
+
if v.get("template"):
|
120
|
+
template = v["template"]
|
121
|
+
else:
|
122
|
+
template = "{{ " + k + " }}"
|
123
|
+
configuration[k] = template
|
124
|
+
|
125
|
+
return configuration
|
126
|
+
|
127
|
+
def _related_resources(self) -> List[RelatedResource]:
|
128
|
+
tags = set()
|
129
|
+
related = []
|
130
|
+
|
131
|
+
for kind, obj in self._related_objects.items():
|
132
|
+
if obj is None:
|
133
|
+
continue
|
134
|
+
if hasattr(obj, "tags"):
|
135
|
+
tags.update(obj.tags)
|
136
|
+
related.append(object_as_related_resource(kind=kind, role=kind, object=obj))
|
137
|
+
|
138
|
+
return related + tags_as_related_resources(tags)
|
139
|
+
|
140
|
+
def prepare_for_flow_run(
|
141
|
+
self,
|
142
|
+
flow_run: "FlowRun",
|
143
|
+
deployment: Optional["DeploymentResponse"] = None,
|
144
|
+
flow: Optional["Flow"] = None,
|
145
|
+
):
|
146
|
+
self.block = self.block.prepare_for_flow_run(
|
147
|
+
flow_run=flow_run, deployment=deployment, flow=flow
|
148
|
+
)
|
149
|
+
|
150
|
+
|
151
|
+
class BlockWorkerResult(BaseWorkerResult):
|
152
|
+
"""Result of a block worker job"""
|
153
|
+
|
154
|
+
|
155
|
+
class BlockWorker(BaseWorker):
|
156
|
+
type = "block"
|
157
|
+
job_configuration = BlockWorkerJobConfiguration
|
158
|
+
|
159
|
+
_description = "Execute flow runs using an infrastructure block as the job creator."
|
160
|
+
_display_name = "Block"
|
161
|
+
|
162
|
+
async def run(
|
163
|
+
self,
|
164
|
+
flow_run: "FlowRun",
|
165
|
+
configuration: BlockWorkerJobConfiguration,
|
166
|
+
task_status: Optional[anyio.abc.TaskStatus] = None,
|
167
|
+
):
|
168
|
+
block = configuration.block
|
169
|
+
|
170
|
+
# logic for applying infra overrides taken from src/prefect/agent.py
|
171
|
+
deployment = await self._client.read_deployment(flow_run.deployment_id)
|
172
|
+
flow = await self._client.read_flow(deployment.flow_id)
|
173
|
+
infra_document = await self._client.read_block_document(
|
174
|
+
configuration.block._block_document_id
|
175
|
+
)
|
176
|
+
|
177
|
+
# this piece of logic applies any overrides that may have been set on the
|
178
|
+
# deployment; overrides are defined as dot.delimited paths on possibly nested
|
179
|
+
# attributes of the infrastructure block
|
180
|
+
doc_dict = infra_document.dict()
|
181
|
+
infra_dict = doc_dict.get("data", {})
|
182
|
+
for override, value in (deployment.infra_overrides or {}).items():
|
183
|
+
nested_fields = override.split(".")
|
184
|
+
if nested_fields == ["command"]:
|
185
|
+
value = shlex.split(value)
|
186
|
+
data = infra_dict
|
187
|
+
for field in nested_fields[:-1]:
|
188
|
+
data = data[field]
|
189
|
+
|
190
|
+
# once we reach the end, set the value
|
191
|
+
data[nested_fields[-1]] = value
|
192
|
+
|
193
|
+
# reconstruct the infra block
|
194
|
+
doc_dict["data"] = infra_dict
|
195
|
+
infra_document = BlockDocument(**doc_dict)
|
196
|
+
block = Block._from_block_document(infra_document)
|
197
|
+
|
198
|
+
block = block.prepare_for_flow_run(
|
199
|
+
flow_run=flow_run, deployment=deployment, flow=flow
|
200
|
+
)
|
201
|
+
|
202
|
+
result = await block.run(
|
203
|
+
task_status=task_status,
|
204
|
+
)
|
205
|
+
return BlockWorkerResult(
|
206
|
+
identifier=result.identifier, status_code=result.status_code
|
207
|
+
)
|
208
|
+
|
209
|
+
async def kill_infrastructure(
|
210
|
+
self,
|
211
|
+
infrastructure_pid: str,
|
212
|
+
configuration: BlockWorkerJobConfiguration,
|
213
|
+
grace_seconds: int = 30,
|
214
|
+
):
|
215
|
+
block = configuration.block
|
216
|
+
if not hasattr(block, "kill"):
|
217
|
+
self._logger.error(
|
218
|
+
f"Flow run infrastructure block {block.type!r} "
|
219
|
+
"does not support killing created infrastructure. "
|
220
|
+
"Cancellation cannot be guaranteed."
|
221
|
+
)
|
222
|
+
return
|
223
|
+
|
224
|
+
await block.kill(
|
225
|
+
infrastructure_pid=infrastructure_pid, grace_seconds=grace_seconds
|
226
|
+
)
|
prefect/workers/utilities.py
CHANGED
@@ -1,3 +1,4 @@
|
|
1
|
+
from copy import deepcopy
|
1
2
|
from logging import getLogger
|
2
3
|
from typing import Any, Dict, List, Optional
|
3
4
|
|
@@ -35,7 +36,7 @@ async def get_default_base_job_template_for_infrastructure_type(
|
|
35
36
|
# from the local type registry first.
|
36
37
|
worker_cls = BaseWorker.get_worker_class_from_type(infra_type)
|
37
38
|
if worker_cls is not None:
|
38
|
-
return worker_cls.get_default_base_job_template()
|
39
|
+
return deepcopy(worker_cls.get_default_base_job_template())
|
39
40
|
|
40
41
|
# If the worker type is not found in the local type registry, attempt to
|
41
42
|
# get the default base job template from the collections registry.
|
@@ -1,6 +1,6 @@
|
|
1
1
|
Metadata-Version: 2.1
|
2
2
|
Name: prefect-client
|
3
|
-
Version: 2.14.
|
3
|
+
Version: 2.14.10
|
4
4
|
Summary: Workflow orchestration and management.
|
5
5
|
Home-page: https://www.prefect.io
|
6
6
|
Author: Prefect Technologies, Inc.
|
@@ -25,6 +25,7 @@ Requires-Python: >=3.8
|
|
25
25
|
Description-Content-Type: text/markdown
|
26
26
|
Requires-Dist: anyio <4.0.0,>=3.7.1
|
27
27
|
Requires-Dist: asgi-lifespan <3.0,>=1.0
|
28
|
+
Requires-Dist: cachetools <6.0,>=5.3
|
28
29
|
Requires-Dist: cloudpickle <4.0,>=2.0
|
29
30
|
Requires-Dist: coolname <3.0.0,>=1.0.4
|
30
31
|
Requires-Dist: croniter <3.0.0,>=1.0.12
|
@@ -1,10 +1,10 @@
|
|
1
1
|
prefect/.prefectignore,sha256=awSprvKT0vI8a64mEOLrMxhxqcO-b0ERQeYpA2rNKVQ,390
|
2
|
-
prefect/__init__.py,sha256=
|
2
|
+
prefect/__init__.py,sha256=eomMSkMZMHSV8oRTV0HX3XwoKm0sdm_UmbEqX7rqhnU,5143
|
3
3
|
prefect/_version.py,sha256=fQguBh1dzT7Baahj504O5RrsLlSyg3Zrx42OpgdPnFc,22378
|
4
4
|
prefect/agent.py,sha256=b557LEcKxcBrgAGOlEDlOPclAkucDj1RhzywBSYxYpI,27487
|
5
5
|
prefect/context.py,sha256=61IwPuOCIpYIHtgjz7ADe_-s2Zy8QD6RezWwAKl3Ytk,17774
|
6
|
-
prefect/engine.py,sha256=
|
7
|
-
prefect/exceptions.py,sha256=
|
6
|
+
prefect/engine.py,sha256=q8ZjmMiCcXvHry-EwBdmqsaHxpwyDvhU0m3T093I9Fc,99531
|
7
|
+
prefect/exceptions.py,sha256=AtYh--XOUJujutX9r355eDjln27fUBFQXG0slOPWPcY,10840
|
8
8
|
prefect/filesystems.py,sha256=X0M8_jddar7j1JtdEZgyDTX_8EVNJUYYs-Dat48GUhE,34101
|
9
9
|
prefect/flows.py,sha256=MnysBebAxWZZkznQsPBrJuDD5o69Ih7wMC4TaJgxN4A,62648
|
10
10
|
prefect/futures.py,sha256=uqNlykBSRrXQO1pQ6mZWLMqwkFCLhvMLrEFR4eHs--I,12589
|
@@ -15,7 +15,7 @@ prefect/py.typed,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
15
15
|
prefect/results.py,sha256=uFVy2MBpr5b8eeZ6H8KVd2m7aKCqI6wM0J8nuMMQdfk,20189
|
16
16
|
prefect/serializers.py,sha256=sSbe40Ipj-d6VuzBae5k2ao9lkMUZpIXcLtD7f2a7cE,10852
|
17
17
|
prefect/settings.py,sha256=41dZcrKBZMaq7Xi9G9mzKtlmeiAtZx30ky4w3xUgee4,64005
|
18
|
-
prefect/states.py,sha256
|
18
|
+
prefect/states.py,sha256=-Ud4AUom3Qu-HQ4hOLvfVZuuF-b_ibaqtzmL7V949Ac,20839
|
19
19
|
prefect/task_runners.py,sha256=HXUg5UqhZRN2QNBqMdGE1lKhwFhT8TaRN75ScgLbnw8,11012
|
20
20
|
prefect/tasks.py,sha256=_iCyePhTcdq8jW6gkB_TiIrCJjd9A2Mqhq0LfO5sV4Q,44730
|
21
21
|
prefect/variables.py,sha256=57h-cJ15ZXWrdQiOnoEQmUVlAe59hmIaa57ZcGNBzao,914
|
@@ -103,7 +103,7 @@ prefect/client/base.py,sha256=19VMAsq6Wvp1ZUwAb2OAT4pMQ0CFWsHBwqY3kZfPR2w,12209
|
|
103
103
|
prefect/client/cloud.py,sha256=vlGivNaOIS0YNc0OnVKEx2L88SRU8pal8GYMoPHXyrU,3955
|
104
104
|
prefect/client/collections.py,sha256=I9EgbTg4Fn57gn8vwP_WdDmgnATbx9gfkm2jjhCORjw,1037
|
105
105
|
prefect/client/constants.py,sha256=Z_GG8KF70vbbXxpJuqW5pLnwzujTVeHbcYYRikNmGH0,29
|
106
|
-
prefect/client/orchestration.py,sha256=
|
106
|
+
prefect/client/orchestration.py,sha256=FyUZJnbPpe2wtn_CWik_flOXH-zdjij_h43CPThvQHE,95794
|
107
107
|
prefect/client/utilities.py,sha256=ejALWrVYuqW-A2zKJkAuRXDkhZ5e8fsiEkn-wI1tzF0,1998
|
108
108
|
prefect/client/schemas/__init__.py,sha256=KlyqFV-hMulMkNstBn_0ijoHoIwJZaBj6B1r07UmgvE,607
|
109
109
|
prefect/client/schemas/actions.py,sha256=2Chfqg1yoRweIQW6WvhTFHW0WQ2HDkInDQdPzp-Iot8,24017
|
@@ -121,7 +121,7 @@ prefect/concurrency/sync.py,sha256=AChhkA6hykgnnPmIeOp87jauLL0p_lrSwMwUoeuYprI,2
|
|
121
121
|
prefect/deployments/__init__.py,sha256=gPxKvTDTQTR9e8eAxxGkbvhjsY_zYHJ3VgROGQmZOVI,404
|
122
122
|
prefect/deployments/base.py,sha256=J7eAfoRs-RjVI157BB4p7lClT1YmkrIuipZPKyg6EJk,20286
|
123
123
|
prefect/deployments/deployments.py,sha256=xVJ4CyfloaTApn8J2t-0G98BGCpKjaXivP_jYmte_0M,35215
|
124
|
-
prefect/deployments/runner.py,sha256=
|
124
|
+
prefect/deployments/runner.py,sha256=tr1nPByLgBqR42CUDITBWluA6vyARf4gfERKfiQd5uY,36047
|
125
125
|
prefect/deployments/steps/__init__.py,sha256=3pZWONAZzenDszqNQT3bmTFilnvjB6xMolMz9tr5pLw,229
|
126
126
|
prefect/deployments/steps/core.py,sha256=Mg2F5GBJyO-jBAAP7PGtIu1sZgNsvmw5Jn5Qj-bUlgk,6617
|
127
127
|
prefect/deployments/steps/pull.py,sha256=VXyMXedH9JNPFQ0Cs54qlTgL1EJ8Y6IbvxPKjAduqpA,7602
|
@@ -130,19 +130,21 @@ prefect/deprecated/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuF
|
|
130
130
|
prefect/deprecated/data_documents.py,sha256=mGxhPHy7nm8xqLnnoo5oUxcm2MjcZxwEE6boD2EwJgg,9642
|
131
131
|
prefect/events/__init__.py,sha256=2tQCrDogstn-w65lKyf9ahu_wbWhPaaDK_oxH2v1558,173
|
132
132
|
prefect/events/actions.py,sha256=6ybRk3Weyeby250ME0qKlFRMvOD7iE6iCAU5tnblT14,966
|
133
|
-
prefect/events/clients.py,sha256=
|
133
|
+
prefect/events/clients.py,sha256=AfJeV-FCObvydutrSFD8JLrMVwtDJsL3WN0nbopzA3s,13688
|
134
|
+
prefect/events/filters.py,sha256=vSWHGDCCsi_znQs3gZomCxh-Q498ukn_QHJ7H8q16do,6922
|
134
135
|
prefect/events/instrument.py,sha256=uNiD7AnkfuiwTsCMgNyJURmY9H2tXNfLCb3EC5FL0Qw,3805
|
135
136
|
prefect/events/related.py,sha256=N0o19kTlos1V4L4AgO79Z_k06ZW9bfjSH8Xa9h7lugg,6746
|
136
137
|
prefect/events/schemas.py,sha256=kNDcN62-G_jz2u9zrzGI5yV6CvAM-_IzpQjAAbFIdSU,11641
|
137
138
|
prefect/events/utilities.py,sha256=JApOECe-09SU8QabSnyykdl8fzsXE28RVSCBcFDseH4,2374
|
138
139
|
prefect/events/worker.py,sha256=4Uw-_fiLa449gD2QsEOhubQwxpEyQn8PUo9N_zsJY1M,2684
|
139
140
|
prefect/infrastructure/__init__.py,sha256=Fm1Rhc4I7ZfJePpUAl1F4iNEtcDugoT650WXXt6xoCM,770
|
140
|
-
prefect/infrastructure/base.py,sha256=
|
141
|
-
prefect/infrastructure/container.py,sha256=
|
141
|
+
prefect/infrastructure/base.py,sha256=BvgY2HY1u_JEeb6u2HhnN7k86aicfOTheD-urU7bcTI,10196
|
142
|
+
prefect/infrastructure/container.py,sha256=_CbrVW2ZYmkrc-jLNNuZyblmmX8uNVYUKHeTZWH0jcg,30914
|
142
143
|
prefect/infrastructure/kubernetes.py,sha256=0i1ZNmnkTzqDcpaHWrfyUqbAeeGo3j39i5t273Oai1Q,34078
|
143
|
-
prefect/infrastructure/process.py,sha256=
|
144
|
-
prefect/infrastructure/provisioners/__init__.py,sha256=
|
145
|
-
prefect/infrastructure/provisioners/cloud_run.py,sha256=
|
144
|
+
prefect/infrastructure/process.py,sha256=xkWEMxUWnyaAD37eqdbcgL7tzmum_ctFz802RHhGfag,11283
|
145
|
+
prefect/infrastructure/provisioners/__init__.py,sha256=omykbyfYUsPQRdPGEbF3H0zSer4C4GyrGogg3spHdJM,1501
|
146
|
+
prefect/infrastructure/provisioners/cloud_run.py,sha256=GhhSiLPVLJ1Ozghdd0YtxKEdgdFV_0Lunvhw-VxB8fE,10597
|
147
|
+
prefect/infrastructure/provisioners/container_instance.py,sha256=bH9Hm4H66MMbxo5iqUc8CBhP8Rw5mWRrehqDZ3LxY0w,30693
|
146
148
|
prefect/infrastructure/provisioners/ecs.py,sha256=yUazQ9zxa7ryWyzGS5bqESl4k1KHvxV5AS94L1pMac4,31897
|
147
149
|
prefect/logging/__init__.py,sha256=EnbHzgJE_-e4VM3jG5s7MCABYvZ7UGjntC6NfSdTqLg,112
|
148
150
|
prefect/logging/configuration.py,sha256=Qy0r7_j7b8_klsBEn2_f-eSrTQ_EzaBrFwGnwdtgcK8,3436
|
@@ -188,18 +190,19 @@ prefect/utilities/names.py,sha256=x-stHcF7_tebJPvB1dz-5FvdXJXNBTg2kFZXSnIBBmk,16
|
|
188
190
|
prefect/utilities/processutils.py,sha256=hGMqWne0jKUN0-PtU3f9xOpIfIFm65VwdXLNzbWkO9U,14327
|
189
191
|
prefect/utilities/pydantic.py,sha256=rgkzzUgiCMVjr8DMyHNmfYzy_6eGS8Z0OuNW1ssZ22g,9226
|
190
192
|
prefect/utilities/render_swagger.py,sha256=h2UrORVN3f7gM4zurtMnySjQXZIOWbji3uMinpbkl8U,3717
|
191
|
-
prefect/utilities/services.py,sha256=
|
193
|
+
prefect/utilities/services.py,sha256=TCjBJX6huz1nUzmiXI0IZNNfBuxM5-xV9PLbPZNosOw,6438
|
192
194
|
prefect/utilities/slugify.py,sha256=57Vb14t13F3zm1P65KAu8nVeAz0iJCd1Qc5eMG-R5y8,169
|
193
195
|
prefect/utilities/templating.py,sha256=cTDT0IkeXdZC-NJZ7z5PJKEWXQfKg5_a471_99i4fho,11262
|
194
196
|
prefect/utilities/text.py,sha256=eXGIsCcZ7h_6hy8T5GDQjL8GiKyktoOqavYub0QjgO4,445
|
195
197
|
prefect/utilities/visualization.py,sha256=iGkYtroroYY9Rsiw1ok1bLv9FwsNyjtiK-0vBPL-ZWI,6491
|
196
|
-
prefect/workers/__init__.py,sha256=
|
198
|
+
prefect/workers/__init__.py,sha256=6el2Q856CuRPa5Hdrbm9QyAWB_ovcT2bImSFsoWI46k,66
|
197
199
|
prefect/workers/base.py,sha256=YmWJXJiiXH1fQKL9KX873jn9h1XEQJWTAEimNNnsSE4,44488
|
200
|
+
prefect/workers/block.py,sha256=lvKlaWdA-DCCXDX23HHK9M5urEq4x2wmpKtU9ft3a7k,7767
|
198
201
|
prefect/workers/process.py,sha256=MLmS3qtuY14QJulL40sLBSSN2ZMHwh5LMcFXZNvrsdc,10368
|
199
202
|
prefect/workers/server.py,sha256=WVZJxR8nTMzK0ov0BD0xw5OyQpT26AxlXbsGQ1OrxeQ,1551
|
200
|
-
prefect/workers/utilities.py,sha256=
|
201
|
-
prefect_client-2.14.
|
202
|
-
prefect_client-2.14.
|
203
|
-
prefect_client-2.14.
|
204
|
-
prefect_client-2.14.
|
205
|
-
prefect_client-2.14.
|
203
|
+
prefect/workers/utilities.py,sha256=OXMqMINSgYzW8r8Cyurs5Lp_tJwLTF8ojWfv7BHTEOI,2484
|
204
|
+
prefect_client-2.14.10.dist-info/LICENSE,sha256=MCxsn8osAkzfxKC4CC_dLcUkU8DZLkyihZ8mGs3Ah3Q,11357
|
205
|
+
prefect_client-2.14.10.dist-info/METADATA,sha256=WxIZUHId-ZfcBl0eKGymVCVzbooxsUT4X9zrBTS_v8E,7181
|
206
|
+
prefect_client-2.14.10.dist-info/WHEEL,sha256=oiQVh_5PnQM0E3gPdiz09WCNmwiHDMaGer_elqB3coM,92
|
207
|
+
prefect_client-2.14.10.dist-info/top_level.txt,sha256=MJZYJgFdbRc2woQCeB4vM6T33tr01TmkEhRcns6H_H4,8
|
208
|
+
prefect_client-2.14.10.dist-info/RECORD,,
|
File without changes
|
File without changes
|
File without changes
|