prefect-client 3.2.1__py3-none-any.whl → 3.2.3__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 +15 -8
- prefect/_build_info.py +5 -0
- prefect/_internal/schemas/bases.py +4 -7
- prefect/_internal/schemas/validators.py +5 -6
- prefect/_result_records.py +6 -1
- prefect/client/orchestration/__init__.py +18 -6
- prefect/client/schemas/schedules.py +2 -2
- prefect/concurrency/asyncio.py +4 -3
- prefect/concurrency/sync.py +3 -3
- prefect/concurrency/v1/asyncio.py +3 -3
- prefect/concurrency/v1/sync.py +3 -3
- prefect/deployments/flow_runs.py +2 -2
- prefect/docker/docker_image.py +2 -3
- prefect/engine.py +1 -1
- prefect/events/clients.py +4 -3
- prefect/events/related.py +3 -5
- prefect/flows.py +11 -5
- prefect/locking/filesystem.py +8 -8
- prefect/logging/handlers.py +7 -11
- prefect/main.py +0 -2
- prefect/runtime/flow_run.py +10 -17
- prefect/server/api/__init__.py +34 -0
- prefect/server/api/admin.py +85 -0
- prefect/server/api/artifacts.py +224 -0
- prefect/server/api/automations.py +239 -0
- prefect/server/api/block_capabilities.py +25 -0
- prefect/server/api/block_documents.py +164 -0
- prefect/server/api/block_schemas.py +153 -0
- prefect/server/api/block_types.py +211 -0
- prefect/server/api/clients.py +246 -0
- prefect/server/api/collections.py +75 -0
- prefect/server/api/concurrency_limits.py +286 -0
- prefect/server/api/concurrency_limits_v2.py +269 -0
- prefect/server/api/csrf_token.py +38 -0
- prefect/server/api/dependencies.py +196 -0
- prefect/server/api/deployments.py +941 -0
- prefect/server/api/events.py +300 -0
- prefect/server/api/flow_run_notification_policies.py +120 -0
- prefect/server/api/flow_run_states.py +52 -0
- prefect/server/api/flow_runs.py +867 -0
- prefect/server/api/flows.py +210 -0
- prefect/server/api/logs.py +43 -0
- prefect/server/api/middleware.py +73 -0
- prefect/server/api/root.py +35 -0
- prefect/server/api/run_history.py +170 -0
- prefect/server/api/saved_searches.py +99 -0
- prefect/server/api/server.py +891 -0
- prefect/server/api/task_run_states.py +52 -0
- prefect/server/api/task_runs.py +342 -0
- prefect/server/api/task_workers.py +31 -0
- prefect/server/api/templates.py +35 -0
- prefect/server/api/ui/__init__.py +3 -0
- prefect/server/api/ui/flow_runs.py +128 -0
- prefect/server/api/ui/flows.py +173 -0
- prefect/server/api/ui/schemas.py +63 -0
- prefect/server/api/ui/task_runs.py +175 -0
- prefect/server/api/validation.py +382 -0
- prefect/server/api/variables.py +181 -0
- prefect/server/api/work_queues.py +230 -0
- prefect/server/api/workers.py +656 -0
- prefect/settings/sources.py +18 -5
- prefect/states.py +3 -3
- prefect/task_engine.py +3 -3
- prefect/types/_datetime.py +82 -3
- prefect/utilities/dockerutils.py +2 -2
- prefect/workers/base.py +5 -5
- {prefect_client-3.2.1.dist-info → prefect_client-3.2.3.dist-info}/METADATA +10 -15
- {prefect_client-3.2.1.dist-info → prefect_client-3.2.3.dist-info}/RECORD +70 -32
- {prefect_client-3.2.1.dist-info → prefect_client-3.2.3.dist-info}/WHEEL +1 -2
- prefect/_version.py +0 -21
- prefect_client-3.2.1.dist-info/top_level.txt +0 -1
- {prefect_client-3.2.1.dist-info → prefect_client-3.2.3.dist-info/licenses}/LICENSE +0 -0
prefect/settings/sources.py
CHANGED
@@ -6,6 +6,7 @@ from typing import Any, Dict, List, Mapping, Optional, Sequence, Tuple, Type
|
|
6
6
|
|
7
7
|
import dotenv
|
8
8
|
import toml
|
9
|
+
from cachetools import TTLCache
|
9
10
|
from pydantic import AliasChoices
|
10
11
|
from pydantic.fields import FieldInfo
|
11
12
|
from pydantic_settings import (
|
@@ -23,6 +24,19 @@ from pydantic_settings.sources import (
|
|
23
24
|
from prefect.settings.constants import DEFAULT_PREFECT_HOME, DEFAULT_PROFILES_PATH
|
24
25
|
from prefect.utilities.collections import get_from_dict
|
25
26
|
|
27
|
+
_file_cache: TTLCache[str, dict[str, Any]] = TTLCache(maxsize=100, ttl=60)
|
28
|
+
|
29
|
+
|
30
|
+
def _read_toml_file(path: Path) -> dict[str, Any]:
|
31
|
+
"""use ttl cache to cache toml files"""
|
32
|
+
modified_time = path.stat().st_mtime
|
33
|
+
cache_key = f"toml_file:{path}:{modified_time}"
|
34
|
+
if value := _file_cache.get(cache_key):
|
35
|
+
return value
|
36
|
+
data = toml.load(path) # type: ignore
|
37
|
+
_file_cache[cache_key] = data
|
38
|
+
return data
|
39
|
+
|
26
40
|
|
27
41
|
class EnvFilterSettingsSource(EnvSettingsSource):
|
28
42
|
"""
|
@@ -120,12 +134,11 @@ class ProfileSettingsTomlLoader(PydanticBaseSettingsSource):
|
|
120
134
|
|
121
135
|
def _load_profile_settings(self) -> Dict[str, Any]:
|
122
136
|
"""Helper method to load the profile settings from the profiles.toml file"""
|
123
|
-
|
124
137
|
if not self.profiles_path.exists():
|
125
138
|
return self._get_default_profile()
|
126
139
|
|
127
140
|
try:
|
128
|
-
all_profile_data =
|
141
|
+
all_profile_data = _read_toml_file(self.profiles_path)
|
129
142
|
except toml.TomlDecodeError:
|
130
143
|
warnings.warn(
|
131
144
|
f"Failed to load profiles from {self.profiles_path}. Please ensure the file is valid TOML."
|
@@ -152,7 +165,7 @@ class ProfileSettingsTomlLoader(PydanticBaseSettingsSource):
|
|
152
165
|
|
153
166
|
def _get_default_profile(self) -> Dict[str, Any]:
|
154
167
|
"""Helper method to get the default profile"""
|
155
|
-
default_profile_data =
|
168
|
+
default_profile_data = _read_toml_file(DEFAULT_PROFILES_PATH)
|
156
169
|
default_profile = default_profile_data.get("active", "ephemeral")
|
157
170
|
assert isinstance(default_profile, str)
|
158
171
|
return default_profile_data.get("profiles", {}).get(default_profile, {})
|
@@ -217,7 +230,7 @@ class TomlConfigSettingsSourceBase(PydanticBaseSettingsSource, ConfigFileSourceM
|
|
217
230
|
self.toml_data: dict[str, Any] = {}
|
218
231
|
|
219
232
|
def _read_file(self, path: Path) -> dict[str, Any]:
|
220
|
-
return
|
233
|
+
return _read_toml_file(path)
|
221
234
|
|
222
235
|
def get_field_value(
|
223
236
|
self, field: FieldInfo, field_name: str
|
@@ -332,7 +345,7 @@ def _get_profiles_path_from_toml(path: str, keys: List[str]) -> Optional[str]:
|
|
332
345
|
"""Helper to get the profiles path from a toml file."""
|
333
346
|
|
334
347
|
try:
|
335
|
-
toml_data =
|
348
|
+
toml_data = _read_toml_file(Path(path))
|
336
349
|
except FileNotFoundError:
|
337
350
|
return None
|
338
351
|
|
prefect/states.py
CHANGED
@@ -28,7 +28,7 @@ from prefect.exceptions import (
|
|
28
28
|
UnfinishedRun,
|
29
29
|
)
|
30
30
|
from prefect.logging.loggers import get_logger, get_run_logger
|
31
|
-
from prefect.types._datetime import DateTime,
|
31
|
+
from prefect.types._datetime import DateTime, Duration, now
|
32
32
|
from prefect.utilities.annotations import BaseAnnotation
|
33
33
|
from prefect.utilities.asyncutils import in_async_main_thread, sync_compatible
|
34
34
|
from prefect.utilities.collections import ensure_iterable
|
@@ -660,7 +660,7 @@ def Scheduled(
|
|
660
660
|
"""
|
661
661
|
state_details = StateDetails.model_validate(kwargs.pop("state_details", {}))
|
662
662
|
if scheduled_time is None:
|
663
|
-
scheduled_time =
|
663
|
+
scheduled_time = now()
|
664
664
|
elif state_details.scheduled_time:
|
665
665
|
raise ValueError("An extra scheduled_time was provided in state_details")
|
666
666
|
state_details.scheduled_time = scheduled_time
|
@@ -761,7 +761,7 @@ def Paused(
|
|
761
761
|
state_details.pause_timeout = (
|
762
762
|
DateTime.instance(pause_expiration_time)
|
763
763
|
if pause_expiration_time
|
764
|
-
else
|
764
|
+
else now() + Duration(seconds=timeout_seconds or 0)
|
765
765
|
)
|
766
766
|
|
767
767
|
state_details.pause_reschedule = reschedule
|
prefect/task_engine.py
CHANGED
@@ -79,7 +79,7 @@ from prefect.states import (
|
|
79
79
|
)
|
80
80
|
from prefect.telemetry.run_telemetry import RunTelemetry
|
81
81
|
from prefect.transactions import IsolationLevel, Transaction, transaction
|
82
|
-
from prefect.types._datetime import DateTime,
|
82
|
+
from prefect.types._datetime import DateTime, Duration
|
83
83
|
from prefect.utilities._engine import get_hook_name
|
84
84
|
from prefect.utilities.annotations import NotSet
|
85
85
|
from prefect.utilities.asyncutils import run_coro_as_sync
|
@@ -437,7 +437,7 @@ class SyncTaskRunEngine(BaseTaskRunEngine[P, R]):
|
|
437
437
|
if last_state.timestamp == new_state.timestamp:
|
438
438
|
# Ensure that the state timestamp is unique, or at least not equal to the last state.
|
439
439
|
# This might occur especially on Windows where the timestamp resolution is limited.
|
440
|
-
new_state.timestamp +=
|
440
|
+
new_state.timestamp += Duration(microseconds=1)
|
441
441
|
|
442
442
|
# Ensure that the state_details are populated with the current run IDs
|
443
443
|
new_state.state_details.task_run_id = self.task_run.id
|
@@ -970,7 +970,7 @@ class AsyncTaskRunEngine(BaseTaskRunEngine[P, R]):
|
|
970
970
|
if last_state.timestamp == new_state.timestamp:
|
971
971
|
# Ensure that the state timestamp is unique, or at least not equal to the last state.
|
972
972
|
# This might occur especially on Windows where the timestamp resolution is limited.
|
973
|
-
new_state.timestamp +=
|
973
|
+
new_state.timestamp += Duration(microseconds=1)
|
974
974
|
|
975
975
|
# Ensure that the state_details are populated with the current run IDs
|
976
976
|
new_state.state_details.task_run_id = self.task_run.id
|
prefect/types/_datetime.py
CHANGED
@@ -1,5 +1,6 @@
|
|
1
1
|
from __future__ import annotations
|
2
2
|
|
3
|
+
import datetime
|
3
4
|
from typing import Any
|
4
5
|
|
5
6
|
import pendulum
|
@@ -9,12 +10,21 @@ from pendulum.datetime import DateTime as PendulumDateTime
|
|
9
10
|
from pendulum.duration import Duration as PendulumDuration
|
10
11
|
from pendulum.time import Time as PendulumTime
|
11
12
|
from pendulum.tz.timezone import FixedTimezone, Timezone
|
12
|
-
from pydantic_extra_types.pendulum_dt import
|
13
|
-
|
13
|
+
from pydantic_extra_types.pendulum_dt import (
|
14
|
+
Date as PydanticDate,
|
15
|
+
)
|
16
|
+
from pydantic_extra_types.pendulum_dt import (
|
17
|
+
DateTime as PydanticDateTime,
|
18
|
+
)
|
19
|
+
from pydantic_extra_types.pendulum_dt import (
|
20
|
+
Duration as PydanticDuration,
|
21
|
+
)
|
14
22
|
from typing_extensions import TypeAlias
|
15
23
|
|
16
24
|
DateTime: TypeAlias = PydanticDateTime
|
17
25
|
Date: TypeAlias = PydanticDate
|
26
|
+
Duration: TypeAlias = PydanticDuration
|
27
|
+
UTC: pendulum.tz.Timezone = pendulum.tz.UTC
|
18
28
|
|
19
29
|
|
20
30
|
def parse_datetime(
|
@@ -37,10 +47,79 @@ def local_timezone() -> Timezone | FixedTimezone:
|
|
37
47
|
return pendulum.tz.local_timezone()
|
38
48
|
|
39
49
|
|
50
|
+
def get_timezones() -> tuple[str, ...]:
|
51
|
+
return pendulum.tz.timezones()
|
52
|
+
|
53
|
+
|
54
|
+
def create_datetime_instance(v: datetime.datetime) -> DateTime:
|
55
|
+
return DateTime.instance(v)
|
56
|
+
|
57
|
+
|
40
58
|
def from_format(
|
41
59
|
value: str,
|
42
60
|
fmt: str,
|
43
|
-
tz: str | Timezone =
|
61
|
+
tz: str | Timezone = UTC,
|
44
62
|
locale: str | None = None,
|
45
63
|
) -> DateTime:
|
46
64
|
return DateTime.instance(pendulum.from_format(value, fmt, tz, locale))
|
65
|
+
|
66
|
+
|
67
|
+
def from_timestamp(ts: float, tz: str | pendulum.tz.Timezone = UTC) -> DateTime:
|
68
|
+
return DateTime.instance(pendulum.from_timestamp(ts, tz))
|
69
|
+
|
70
|
+
|
71
|
+
def human_friendly_diff(dt: DateTime | datetime.datetime) -> str:
|
72
|
+
if isinstance(dt, DateTime):
|
73
|
+
return dt.diff_for_humans()
|
74
|
+
else:
|
75
|
+
return DateTime.instance(dt).diff_for_humans()
|
76
|
+
|
77
|
+
|
78
|
+
def now(tz: str | Timezone = UTC) -> DateTime:
|
79
|
+
return DateTime.now(tz)
|
80
|
+
|
81
|
+
|
82
|
+
def add_years(dt: DateTime, years: int) -> DateTime:
|
83
|
+
return dt.add(years=years)
|
84
|
+
|
85
|
+
|
86
|
+
def end_of_period(dt: DateTime, period: str) -> DateTime:
|
87
|
+
"""
|
88
|
+
Returns the end of the specified unit of time.
|
89
|
+
|
90
|
+
Args:
|
91
|
+
dt: The datetime to get the end of.
|
92
|
+
period: The period to get the end of.
|
93
|
+
Valid values: 'second', 'minute', 'hour', 'day',
|
94
|
+
'week', 'month', 'quarter', 'year'
|
95
|
+
|
96
|
+
Returns:
|
97
|
+
DateTime: A new DateTime representing the end of the specified unit.
|
98
|
+
|
99
|
+
Raises:
|
100
|
+
ValueError: If an invalid unit is specified.
|
101
|
+
"""
|
102
|
+
return dt.end_of(period)
|
103
|
+
|
104
|
+
|
105
|
+
def start_of_period(dt: DateTime, period: str) -> DateTime:
|
106
|
+
"""
|
107
|
+
Returns the start of the specified unit of time.
|
108
|
+
|
109
|
+
Args:
|
110
|
+
dt: The datetime to get the start of.
|
111
|
+
period: The period to get the start of.
|
112
|
+
Valid values: 'second', 'minute', 'hour', 'day',
|
113
|
+
'week', 'month', 'quarter', 'year'
|
114
|
+
|
115
|
+
Returns:
|
116
|
+
DateTime: A new DateTime representing the start of the specified unit.
|
117
|
+
|
118
|
+
Raises:
|
119
|
+
ValueError: If an invalid unit is specified.
|
120
|
+
"""
|
121
|
+
return dt.start_of(period)
|
122
|
+
|
123
|
+
|
124
|
+
def earliest_possible_datetime() -> DateTime:
|
125
|
+
return DateTime.instance(datetime.datetime.min)
|
prefect/utilities/dockerutils.py
CHANGED
@@ -11,11 +11,11 @@ from types import TracebackType
|
|
11
11
|
from typing import TYPE_CHECKING, Any, Optional, TextIO, Union, cast
|
12
12
|
from urllib.parse import urlsplit
|
13
13
|
|
14
|
-
import pendulum
|
15
14
|
from packaging.version import Version
|
16
15
|
from typing_extensions import Self
|
17
16
|
|
18
17
|
import prefect
|
18
|
+
from prefect.types._datetime import now
|
19
19
|
from prefect.utilities.importtools import lazy_import
|
20
20
|
from prefect.utilities.slugify import slugify
|
21
21
|
|
@@ -428,7 +428,7 @@ def push_image(
|
|
428
428
|
"""
|
429
429
|
|
430
430
|
if not tag:
|
431
|
-
tag = slugify(
|
431
|
+
tag = slugify(now("UTC").isoformat())
|
432
432
|
|
433
433
|
_, registry, _, _, _ = urlsplit(registry_url)
|
434
434
|
repository = f"{registry}/{name}"
|
prefect/workers/base.py
CHANGED
@@ -22,7 +22,6 @@ from uuid import UUID, uuid4
|
|
22
22
|
import anyio
|
23
23
|
import anyio.abc
|
24
24
|
import httpx
|
25
|
-
import pendulum
|
26
25
|
from importlib_metadata import distributions
|
27
26
|
from pydantic import BaseModel, Field, PrivateAttr, field_validator
|
28
27
|
from pydantic.json_schema import GenerateJsonSchema
|
@@ -66,6 +65,7 @@ from prefect.states import (
|
|
66
65
|
exception_to_failed_state,
|
67
66
|
)
|
68
67
|
from prefect.types import KeyValueLabels
|
68
|
+
from prefect.types._datetime import DateTime
|
69
69
|
from prefect.utilities.dispatch import get_registry_for_type, register_base_type
|
70
70
|
from prefect.utilities.engine import propose_state
|
71
71
|
from prefect.utilities.services import critical_service_loop
|
@@ -458,7 +458,7 @@ class BaseWorker(abc.ABC, Generic[C, V, R]):
|
|
458
458
|
self._exit_stack: AsyncExitStack = AsyncExitStack()
|
459
459
|
self._runs_task_group: Optional[anyio.abc.TaskGroup] = None
|
460
460
|
self._client: Optional[PrefectClient] = None
|
461
|
-
self._last_polled_time:
|
461
|
+
self._last_polled_time: DateTime = DateTime.now("utc")
|
462
462
|
self._limit = limit
|
463
463
|
self._limiter: Optional[anyio.CapacityLimiter] = None
|
464
464
|
self._submitting_flow_run_ids = set()
|
@@ -691,7 +691,7 @@ class BaseWorker(abc.ABC, Generic[C, V, R]):
|
|
691
691
|
threshold_seconds = query_interval_seconds * 30
|
692
692
|
|
693
693
|
seconds_since_last_poll = (
|
694
|
-
|
694
|
+
DateTime.now("utc") - self._last_polled_time
|
695
695
|
).in_seconds()
|
696
696
|
|
697
697
|
is_still_polling = seconds_since_last_poll <= threshold_seconds
|
@@ -707,7 +707,7 @@ class BaseWorker(abc.ABC, Generic[C, V, R]):
|
|
707
707
|
async def get_and_submit_flow_runs(self) -> list["FlowRun"]:
|
708
708
|
runs_response = await self._get_scheduled_flow_runs()
|
709
709
|
|
710
|
-
self._last_polled_time =
|
710
|
+
self._last_polled_time = DateTime.now("utc")
|
711
711
|
|
712
712
|
return await self._submit_scheduled_flow_runs(flow_run_response=runs_response)
|
713
713
|
|
@@ -856,7 +856,7 @@ class BaseWorker(abc.ABC, Generic[C, V, R]):
|
|
856
856
|
"""
|
857
857
|
Retrieve scheduled flow runs from the work pool's queues.
|
858
858
|
"""
|
859
|
-
scheduled_before =
|
859
|
+
scheduled_before = DateTime.now("utc").add(seconds=int(self._prefetch_seconds))
|
860
860
|
self._logger.debug(
|
861
861
|
f"Querying for flow runs scheduled before {scheduled_before}"
|
862
862
|
)
|
@@ -1,20 +1,18 @@
|
|
1
|
-
Metadata-Version: 2.
|
1
|
+
Metadata-Version: 2.4
|
2
2
|
Name: prefect-client
|
3
|
-
Version: 3.2.
|
3
|
+
Version: 3.2.3
|
4
4
|
Summary: Workflow orchestration and management.
|
5
|
-
Home-page: https://www.prefect.io
|
6
|
-
Author: Prefect Technologies, Inc.
|
7
|
-
Author-email: help@prefect.io
|
8
|
-
License: UNKNOWN
|
9
5
|
Project-URL: Changelog, https://github.com/PrefectHQ/prefect/releases
|
10
6
|
Project-URL: Documentation, https://docs.prefect.io
|
11
7
|
Project-URL: Source, https://github.com/PrefectHQ/prefect
|
12
8
|
Project-URL: Tracker, https://github.com/PrefectHQ/prefect/issues
|
13
|
-
|
14
|
-
|
9
|
+
Author-email: "Prefect Technologies, Inc." <help@prefect.io>
|
10
|
+
License: Apache-2.0
|
11
|
+
License-File: LICENSE
|
15
12
|
Classifier: Intended Audience :: Developers
|
16
13
|
Classifier: Intended Audience :: System Administrators
|
17
14
|
Classifier: License :: OSI Approved :: Apache Software License
|
15
|
+
Classifier: Natural Language :: English
|
18
16
|
Classifier: Programming Language :: Python :: 3 :: Only
|
19
17
|
Classifier: Programming Language :: Python :: 3.9
|
20
18
|
Classifier: Programming Language :: Python :: 3.10
|
@@ -22,8 +20,6 @@ Classifier: Programming Language :: Python :: 3.11
|
|
22
20
|
Classifier: Programming Language :: Python :: 3.12
|
23
21
|
Classifier: Topic :: Software Development :: Libraries
|
24
22
|
Requires-Python: >=3.9
|
25
|
-
Description-Content-Type: text/markdown
|
26
|
-
License-File: LICENSE
|
27
23
|
Requires-Dist: anyio<5.0.0,>=4.4.0
|
28
24
|
Requires-Dist: asgi-lifespan<3.0,>=1.0
|
29
25
|
Requires-Dist: cachetools<6.0,>=5.3
|
@@ -37,6 +33,7 @@ Requires-Dist: graphviz>=0.20.1
|
|
37
33
|
Requires-Dist: griffe<2.0.0,>=0.49.0
|
38
34
|
Requires-Dist: httpcore<2.0.0,>=1.0.5
|
39
35
|
Requires-Dist: httpx[http2]!=0.23.2,>=0.23
|
36
|
+
Requires-Dist: importlib-metadata>=4.4; python_version < '3.10'
|
40
37
|
Requires-Dist: jsonpatch<2.0,>=1.32
|
41
38
|
Requires-Dist: jsonschema<5.0.0,>=4.0.0
|
42
39
|
Requires-Dist: opentelemetry-api<2.0.0,>=1.27.0
|
@@ -55,16 +52,16 @@ Requires-Dist: python-socks[asyncio]<3.0,>=2.5.3
|
|
55
52
|
Requires-Dist: pyyaml<7.0.0,>=5.4.1
|
56
53
|
Requires-Dist: rfc3339-validator<0.2.0,>=0.1.4
|
57
54
|
Requires-Dist: rich<14.0,>=11.0
|
58
|
-
Requires-Dist: ruamel
|
55
|
+
Requires-Dist: ruamel-yaml>=0.17.0
|
59
56
|
Requires-Dist: sniffio<2.0.0,>=1.3.0
|
60
57
|
Requires-Dist: toml>=0.10.0
|
61
58
|
Requires-Dist: typing-extensions<5.0.0,>=4.5.0
|
62
59
|
Requires-Dist: ujson<6.0.0,>=5.8.0
|
63
60
|
Requires-Dist: uvicorn!=0.29.0,>=0.14.0
|
64
61
|
Requires-Dist: websockets<14.0,>=10.4
|
65
|
-
Requires-Dist: importlib-metadata>=4.4; python_version < "3.10"
|
66
62
|
Provides-Extra: notifications
|
67
|
-
Requires-Dist: apprise<2.0.0,>=1.1.0; extra ==
|
63
|
+
Requires-Dist: apprise<2.0.0,>=1.1.0; extra == 'notifications'
|
64
|
+
Description-Content-Type: text/markdown
|
68
65
|
|
69
66
|
<p align="center"><img src="https://github.com/PrefectHQ/prefect/assets/3407835/c654cbc6-63e8-4ada-a92a-efd2f8f24b85" width=1000></p>
|
70
67
|
|
@@ -175,5 +172,3 @@ All community forums, including code contributions, issue discussions, and Slack
|
|
175
172
|
See our [documentation on contributing to Prefect](https://docs.prefect.io/contributing/overview/).
|
176
173
|
|
177
174
|
Thanks for being part of the mission to build a new kind of workflow system and, of course, **happy engineering!**
|
178
|
-
|
179
|
-
|
@@ -1,28 +1,28 @@
|
|
1
1
|
prefect/.prefectignore,sha256=awSprvKT0vI8a64mEOLrMxhxqcO-b0ERQeYpA2rNKVQ,390
|
2
|
-
prefect/__init__.py,sha256=
|
2
|
+
prefect/__init__.py,sha256=iCdcC5ZmeewikCdnPEP6YBAjPNV5dvfxpYCTpw30Hkw,3685
|
3
3
|
prefect/__main__.py,sha256=WFjw3kaYJY6pOTA7WDOgqjsz8zUEUZHCcj3P5wyVa-g,66
|
4
|
-
prefect/
|
5
|
-
prefect/
|
4
|
+
prefect/_build_info.py,sha256=A3X48-y7Q5a8gDhNZR8rrp8pdTGFajV15-K2ej5tY08,180
|
5
|
+
prefect/_result_records.py,sha256=S6QmsODkehGVSzbMm6ig022PYbI6gNKz671p_8kBYx4,7789
|
6
6
|
prefect/agent.py,sha256=dPvG1jDGD5HSH7aM2utwtk6RaJ9qg13XjkA0lAIgQmY,287
|
7
7
|
prefect/artifacts.py,sha256=dMBUOAWnUamzjb5HSqwB5-GR2Qb-Gxee26XG5NDCUuw,22720
|
8
8
|
prefect/automations.py,sha256=ZzPxn2tINdlXTQo805V4rIlbXuNWxd7cdb3gTJxZIeY,12567
|
9
9
|
prefect/cache_policies.py,sha256=cF_6eqg34x7XgaCIw6S8Vr-Eq0wIr4Y6t3FOuXaPBrY,11912
|
10
10
|
prefect/context.py,sha256=iJe4pkFqX6lz8ax1Mde_YqVmBVWmzeBe0ca2_nT6KPQ,23673
|
11
|
-
prefect/engine.py,sha256=
|
11
|
+
prefect/engine.py,sha256=4ZGTKFZA_t7K0XUSJqbJ6Ec20SFVFHasBTM--47fTyA,2610
|
12
12
|
prefect/exceptions.py,sha256=-nih8qqdxRm6CX-4yrqwePVh8Mcpvla_V6N_KbdJsIU,11593
|
13
13
|
prefect/filesystems.py,sha256=v5YqGB4uXf9Ew2VuB9VCSkawvYMMVvEtZf7w1VmAmr8,18036
|
14
14
|
prefect/flow_engine.py,sha256=mW95w_fBpEPejYFXuMyjfnhm7J1jMSv_VtAYGD0VlCo,60226
|
15
15
|
prefect/flow_runs.py,sha256=MzjfRFgQwOqUSC3Iuu6E0hWkWdn089Urk6BY3qjEwEE,16113
|
16
|
-
prefect/flows.py,sha256=
|
16
|
+
prefect/flows.py,sha256=cp9TF3pSg73jhkL3SkzaUGbdU9hbsieKz95Wgfk-VA4,108408
|
17
17
|
prefect/futures.py,sha256=NYWGeC8uRGe1WWB1MxkUshdvAdYibhc32HdFjffdiW0,17217
|
18
|
-
prefect/main.py,sha256=
|
18
|
+
prefect/main.py,sha256=hFeTTrr01qWKcRwZVEHVipyHEybS0VLTscFV6zG6GtY,2306
|
19
19
|
prefect/plugins.py,sha256=FPRLR2mWVBMuOnlzeiTD9krlHONZH2rtYLD753JQDNQ,2516
|
20
20
|
prefect/py.typed,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
21
21
|
prefect/results.py,sha256=gAcYivq5CN8oL5CWu8cJe2560i0M8I5GL-8RcBTJ6VI,36385
|
22
22
|
prefect/schedules.py,sha256=9ufG4jhIA_R7vS9uXqnnZEgB7Ts922KMhNacWcveVgA,7291
|
23
23
|
prefect/serializers.py,sha256=QI0oEal_BO4HQaWSjr6ReSwT55Hn4sbSOXxGgQI1-y0,9249
|
24
|
-
prefect/states.py,sha256=
|
25
|
-
prefect/task_engine.py,sha256=
|
24
|
+
prefect/states.py,sha256=tTZrN-IZKvmFcN8FR_4L-X-ZrmXi6z-cPXl6KdOy-XI,26920
|
25
|
+
prefect/task_engine.py,sha256=BF7dZPgIMgq2XeNe6GHHyqPTrCfJN2ZDfETOvedvbw8,60683
|
26
26
|
prefect/task_runners.py,sha256=Ce_ngocfq_X-NA5zhPj13IdVmzZ5h6gXlmfxYWs2AXA,15828
|
27
27
|
prefect/task_runs.py,sha256=7LIzfo3fondCyEUpU05sYFN5IfpZigBDXrhG5yc-8t0,9039
|
28
28
|
prefect/task_worker.py,sha256=FkAp6PhRwBcAW2YigJORiN7A-PAwzWa1nM-osZD4Syw,17793
|
@@ -61,10 +61,10 @@ prefect/_internal/pydantic/v2_validated_func.py,sha256=Ld8OtPFF7Ci-gHHmKhSMizBxz
|
|
61
61
|
prefect/_internal/pydantic/annotations/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
62
62
|
prefect/_internal/pydantic/annotations/pendulum.py,sha256=KTh6w32-S9MXHywwNod9aA7v-VN7a3AWiSZh4vDRkx0,2683
|
63
63
|
prefect/_internal/schemas/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
64
|
-
prefect/_internal/schemas/bases.py,sha256=
|
64
|
+
prefect/_internal/schemas/bases.py,sha256=UpGMovMZe8z2VxqeqIjFLwWYPNLa7rdeeGamRwZH2qw,4286
|
65
65
|
prefect/_internal/schemas/fields.py,sha256=m4LrFNz8rA9uBhMk9VyQT6FIXmV_EVAW92hdXeSvHbY,837
|
66
66
|
prefect/_internal/schemas/serializers.py,sha256=G_RGHfObjisUiRvd29p-zc6W4bwt5rE1OdR6TXNrRhQ,825
|
67
|
-
prefect/_internal/schemas/validators.py,sha256=
|
67
|
+
prefect/_internal/schemas/validators.py,sha256=i-MdHhmP1S8UQG4dZuHIwbqiM_O95g_Ghn0BcehDaaU,19511
|
68
68
|
prefect/blocks/__init__.py,sha256=D0hB72qMfgqnBB2EMZRxUxlX9yLfkab5zDChOwJZmkY,220
|
69
69
|
prefect/blocks/abstract.py,sha256=mpOAWopSR_RrzdxeurBTXVSKisP8ne-k8LYos-tp7go,17021
|
70
70
|
prefect/blocks/core.py,sha256=CgxU59KUWiHLWUdTxOSDOfHkfFAyjLXc7eibmFc_xCo,62186
|
@@ -80,7 +80,7 @@ prefect/client/collections.py,sha256=t9XkVU_onQMZ871L21F1oZnAiPSQeeVfd_MuDEBS3iM
|
|
80
80
|
prefect/client/constants.py,sha256=Z_GG8KF70vbbXxpJuqW5pLnwzujTVeHbcYYRikNmGH0,29
|
81
81
|
prefect/client/subscriptions.py,sha256=TZ7Omv8yeQQIkE6EmWYM78e8p7UdvdTDzcQe91dCU4U,3838
|
82
82
|
prefect/client/utilities.py,sha256=UEJD6nwYg2mD8-GSmru-E2ofXaBlmSFZ2-8T_5rIK6c,3472
|
83
|
-
prefect/client/orchestration/__init__.py,sha256=
|
83
|
+
prefect/client/orchestration/__init__.py,sha256=uKWE1XNiwrOswgZ1JptffksRlji9PDrLcy8T9ZfNw1g,59596
|
84
84
|
prefect/client/orchestration/base.py,sha256=HM6ryHBZSzuHoCFQM9u5qR5k1dN9Bbr_ah6z1UPNbZQ,1542
|
85
85
|
prefect/client/orchestration/routes.py,sha256=JFG1OWUBfrxPKW8Q7XWItlhOrSZ67IOySSoFZ6mxzm0,4364
|
86
86
|
prefect/client/orchestration/_artifacts/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
@@ -112,28 +112,28 @@ prefect/client/schemas/actions.py,sha256=yzP6oC0_h6LV78s47ltX1bqxu6bju0Eav5VgB-V
|
|
112
112
|
prefect/client/schemas/filters.py,sha256=zaiDkalrIpKjd38V4aP1GHlqD24KTPCZiKtPyX69ZWE,36607
|
113
113
|
prefect/client/schemas/objects.py,sha256=ZHLu4ycTYee7Y1LqM2MZgYszQClnpMuMTXIrYewu4zQ,57034
|
114
114
|
prefect/client/schemas/responses.py,sha256=iTXTiUhdRL7PxNyJXMZ4ngT7C8SepT_z7g_pnUnVlzo,15629
|
115
|
-
prefect/client/schemas/schedules.py,sha256=
|
115
|
+
prefect/client/schemas/schedules.py,sha256=4a1lGun448em33zrc0ZUOAew3jB8yqJ7Cxoni3HKR3I,14721
|
116
116
|
prefect/client/schemas/sorting.py,sha256=L-2Mx-igZPtsUoRUguTcG3nIEstMEMPD97NwPM2Ox5s,2579
|
117
117
|
prefect/client/types/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
118
118
|
prefect/client/types/flexible_schedule_list.py,sha256=eNom7QiRxMnyTD1q30bR7kQh3-2sLhxIKe5ST9o6GI4,425
|
119
119
|
prefect/concurrency/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
120
120
|
prefect/concurrency/_asyncio.py,sha256=XfiKES0DOEfjHdjQ43NNWH6kdTt6a2Oj_PzxQ8sZ8IY,3004
|
121
121
|
prefect/concurrency/_events.py,sha256=KWHDldCWE3b5AH9eZ7kfmajvp36lRFCjCXIEx77jtKk,1825
|
122
|
-
prefect/concurrency/asyncio.py,sha256=
|
122
|
+
prefect/concurrency/asyncio.py,sha256=UJ8tXNFU32_CD4B6coxSEImSWdmjA4mwlyr_6gDPTh0,4687
|
123
123
|
prefect/concurrency/context.py,sha256=8ZXs3G7NOF5Q2NqydK-K3zfjmYNnmfer-25hH6r6MgA,1009
|
124
124
|
prefect/concurrency/services.py,sha256=9db7VgASPLpDB8apEcmr4te75eyaXnycry8N4OhNAB8,2415
|
125
|
-
prefect/concurrency/sync.py,sha256
|
125
|
+
prefect/concurrency/sync.py,sha256=-r5_OF0PprYoJHiRe0VHFUefUMk1OzRSr18ZxA-GcnM,4934
|
126
126
|
prefect/concurrency/v1/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
127
127
|
prefect/concurrency/v1/_asyncio.py,sha256=UTFjkOPevvbazzpf-O6sSixwM0gs_GzK5zwH4EG4FJ8,2152
|
128
128
|
prefect/concurrency/v1/_events.py,sha256=eoNmtlt__EqhgImWyxfq_MxwTRqNznJU9-3sKwThc98,1863
|
129
|
-
prefect/concurrency/v1/asyncio.py,sha256=
|
129
|
+
prefect/concurrency/v1/asyncio.py,sha256=Jbir8gwf7OOBmDh6VblzUV-TUBsTkDL78EvnLPHLAKc,3174
|
130
130
|
prefect/concurrency/v1/context.py,sha256=BhK63TYp9BQYRCgTI1onUPXmgBoYaP7o27U695lH7qk,1107
|
131
131
|
prefect/concurrency/v1/services.py,sha256=ppVCllzb2qeKc-xntobFu45dEh3J-ZTtLDPuHr1djxo,2958
|
132
|
-
prefect/concurrency/v1/sync.py,sha256=
|
132
|
+
prefect/concurrency/v1/sync.py,sha256=N_CHNkbV_eNQvDsJoJaehQo8H68MFlX6B1ObDZuYlTM,2112
|
133
133
|
prefect/deployments/__init__.py,sha256=_wb7NxDKhq11z9MjYsPckmT3o6MRhGLRgCV9TmvYtew,1002
|
134
134
|
prefect/deployments/base.py,sha256=KEc07W35yyzGJcV6GIZry8bKcNfvQk6JjJ99KKB6XpQ,11729
|
135
135
|
prefect/deployments/deployments.py,sha256=K3Rgnpjxo_T8I8LMwlq24OKqZiZBTE8-YnPg-YGUStM,171
|
136
|
-
prefect/deployments/flow_runs.py,sha256=
|
136
|
+
prefect/deployments/flow_runs.py,sha256=VunxRsw4DyqVJHNjooDAPGJaGvSGucLX83SaxHO8ugU,7227
|
137
137
|
prefect/deployments/runner.py,sha256=lgLvp759BhDJtuF8LeNZFqJZT8dxJxF6SH9Jq_NYFl0,53835
|
138
138
|
prefect/deployments/schedules.py,sha256=2eL1-w8qXtwKVkgfUK7cuamwpKK3X6tN1QYTDa_gWxU,2190
|
139
139
|
prefect/deployments/steps/__init__.py,sha256=Dlz9VqMRyG1Gal8dj8vfGpPr0LyQhZdvcciozkK8WoY,206
|
@@ -141,12 +141,12 @@ prefect/deployments/steps/core.py,sha256=ulSgBFSx1lhBt1fP-UxebrernkumBDlympR6IPf
|
|
141
141
|
prefect/deployments/steps/pull.py,sha256=MDN8nHklgU6MXNMsMRDLDVbIqod87ccPJdt-21dshvU,9767
|
142
142
|
prefect/deployments/steps/utility.py,sha256=Ap_p44Rwz9Lxd6pt8hDW8phF3gwI3YjbsSpWHALDyoM,8157
|
143
143
|
prefect/docker/__init__.py,sha256=z6wdc6UFfiBG2jb9Jk64uCWVM04JKVWeVyDWwuuon8M,527
|
144
|
-
prefect/docker/docker_image.py,sha256=
|
144
|
+
prefect/docker/docker_image.py,sha256=cdvUEokGJXZDugfCekfmrhhpzrxTEW-FvWa2kDs5tVM,3092
|
145
145
|
prefect/events/__init__.py,sha256=GtKl2bE--pJduTxelH2xy7SadlLJmmis8WR1EYixhuA,2094
|
146
146
|
prefect/events/actions.py,sha256=A7jS8bo4zWGnrt3QfSoQs0uYC1xfKXio3IfU0XtTb5s,9129
|
147
|
-
prefect/events/clients.py,sha256=
|
147
|
+
prefect/events/clients.py,sha256=91_bT-JIkXcBmakuSYpfAftFNoy-iFVUNrftbcGOUPY,26879
|
148
148
|
prefect/events/filters.py,sha256=h9L6pukS9tD7Y8rGC3dt04KJINu0oJoti-flGLQTQQQ,8086
|
149
|
-
prefect/events/related.py,sha256=
|
149
|
+
prefect/events/related.py,sha256=Uh6-MoVENvP9dYYhjstb7eHesQUoDp-2PTMSP0nhPDI,6545
|
150
150
|
prefect/events/utilities.py,sha256=4Bz-xiTOzi_EeDyIL9BzI7eMbRbBIIyayNvfO_BFyTw,2632
|
151
151
|
prefect/events/worker.py,sha256=HjbibR0_J1W1nnNMZDFTXAbB0cl_cFGaFI87DvNGcnI,4557
|
152
152
|
prefect/events/cli/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
@@ -168,14 +168,14 @@ prefect/input/__init__.py,sha256=Ue2h-YhYP71nEtsVJaslqMwO6C0ckjhjTYwwEgp-E3g,701
|
|
168
168
|
prefect/input/actions.py,sha256=BDx26b6ZYCTr0kbWBp73Or7UXnLIv1lnm0jow6Simxw,3871
|
169
169
|
prefect/input/run_input.py,sha256=GoM4LR3oqAFLf2sPCR1yITY9tNSZT8kAd4gaC-v-a-c,22703
|
170
170
|
prefect/locking/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
171
|
-
prefect/locking/filesystem.py,sha256=
|
171
|
+
prefect/locking/filesystem.py,sha256=O67Miiz466fQUu3UmHer9dkWpVL1f8GEX8Lv2lDj0Y8,8113
|
172
172
|
prefect/locking/memory.py,sha256=mFUgV750ywEL7aVQuxFjg9gxbjVU4esBQn7bGQYzeMY,7548
|
173
173
|
prefect/locking/protocol.py,sha256=RsfvlaHTTEJ0YvYWSqFGoZuT2w4FPPxyQlHqjoyNGuE,4240
|
174
174
|
prefect/logging/__init__.py,sha256=zx9f5_dWrR4DbcTOFBpNGOPoCZ1QcPFudr7zxb2XRpA,148
|
175
175
|
prefect/logging/configuration.py,sha256=QIvmktuAZPteVnh8nd9jUb7vwGGkcUbBLyiti6XmbYM,3242
|
176
176
|
prefect/logging/filters.py,sha256=NnRYubh9dMmWcCAjuW32cIVQ37rLxdn8ci26wTtQMyU,1136
|
177
177
|
prefect/logging/formatters.py,sha256=BkPykVyOFKdnhDj_1vhhOoWiHiiBeRnWXPcaRIWK3aI,4125
|
178
|
-
prefect/logging/handlers.py,sha256=
|
178
|
+
prefect/logging/handlers.py,sha256=pIeS6gvuVnuh3lZ-kIC4ijRMSbVPkHo-rYeLMj5P8NA,12240
|
179
179
|
prefect/logging/highlighters.py,sha256=BCf_LNhFInIfGPqwuu8YVrGa4wVxNc4YXo2pYgftpg4,1811
|
180
180
|
prefect/logging/loggers.py,sha256=xkmHXsiuoPZZXcrrEgMA-ZQu0E-gW3tNVd4BIxWjnpM,12704
|
181
181
|
prefect/logging/logging.yml,sha256=tT7gTyC4NmngFSqFkCdHaw7R0GPNPDDsTCGZQByiJAQ,3169
|
@@ -187,10 +187,49 @@ prefect/runner/submit.py,sha256=3Ey6H4XrhYhCII4AobpvzZf21vAunWlMu40zAjMC0gc,8353
|
|
187
187
|
prefect/runner/utils.py,sha256=MLtoouDD6bh-JAIz0W3fMofKXEt0VfGsg6d8jf45OA0,3280
|
188
188
|
prefect/runtime/__init__.py,sha256=JswiTlYRup2zXOYu8AqJ7czKtgcw9Kxo0tTbS6aWCqY,407
|
189
189
|
prefect/runtime/deployment.py,sha256=0A_cUVpYiFk3ciJw2ixy95dk9xBJcjisyF69pakSCcQ,5091
|
190
|
-
prefect/runtime/flow_run.py,sha256=
|
190
|
+
prefect/runtime/flow_run.py,sha256=hBa6h99G9K5iHdDUvHoJ2Yg9h5cZVEe_OEEJ2VuJHwk,10557
|
191
191
|
prefect/runtime/task_run.py,sha256=zYBSs7QrAu7c2IjKomRzPXKyIXrjqclMTMrco-dwyOw,4212
|
192
|
+
prefect/server/api/__init__.py,sha256=W6s6QR91ogg7pssnFdV0bptpXtP1gbjqjnhySK1hFJM,616
|
193
|
+
prefect/server/api/admin.py,sha256=nINYSrux7XPAV4MMDQUts3X2dddrc3mJtd3iPl5N-jI,2644
|
194
|
+
prefect/server/api/artifacts.py,sha256=p3aMPokKEsm-q7_DXyWgxLck8PmG0dB6wDZN13x4wHM,7181
|
195
|
+
prefect/server/api/automations.py,sha256=05wcjN_B_2GApO2nE-68_P7AC1jDltvcKBLXRcmg210,8110
|
196
|
+
prefect/server/api/block_capabilities.py,sha256=rHp5DBMlfpMFD0j7MitgFF8seI3du0l5ZZJAnZ4fCzE,699
|
197
|
+
prefect/server/api/block_documents.py,sha256=L24UtiBugu3WbeR9UIcLTjcG5pNaQy3HMd71UhxmnAA,5763
|
198
|
+
prefect/server/api/block_schemas.py,sha256=Ti_zokXuCnnM3yswmKR-wC51aTso0ITPh1wrIKi208M,5380
|
199
|
+
prefect/server/api/block_types.py,sha256=nUpHtv9qqsuy7EFOyx6GbAmW45_-9fjMKm3SMcEbMvU,8252
|
200
|
+
prefect/server/api/clients.py,sha256=7Xr10JPj3FykLJ3v6Id251LgW6W-6xaWyqSU_RWcolA,8867
|
201
|
+
prefect/server/api/collections.py,sha256=RI7cjdM8RYFyAk2rgb35vqh06PWGXAamTvwThl83joY,2454
|
202
|
+
prefect/server/api/concurrency_limits.py,sha256=Zc1PPTK5g4iRWXLE348ygpWaJQH5gKaECLQR-p_u5a4,10576
|
203
|
+
prefect/server/api/concurrency_limits_v2.py,sha256=TcF_MjacYlA54uf0EGVZp3LVzdDTW-Ol-HgbTvj3Yt0,9947
|
204
|
+
prefect/server/api/csrf_token.py,sha256=BwysSjQAhre7O0OY_LF3ZcIiO53FdMQroNT11Q6OcOM,1344
|
205
|
+
prefect/server/api/dependencies.py,sha256=VujfcIGn41TGJxUunFHVabY5hE-6nY6uSHyhNFj8PdI,6634
|
206
|
+
prefect/server/api/deployments.py,sha256=UP-MXgkcmLPz48yg-MnRRGgiF_9dLt4KT4XSApuWZNM,37640
|
207
|
+
prefect/server/api/events.py,sha256=Z5nYS6w1avcQMoFtcB502WANMYixLLjsevSDksI22a4,9814
|
208
|
+
prefect/server/api/flow_run_notification_policies.py,sha256=bMwBuqUDyQTO5GxU2v4inmb9FZ27iLMYhUNy8qvMVcM,4693
|
209
|
+
prefect/server/api/flow_run_states.py,sha256=3whjUoYp9dOEtwiNE0d72vsrlFMU6Ck1ZtQlCzM_n08,1556
|
210
|
+
prefect/server/api/flow_runs.py,sha256=tezz_lkHxj13fn4lQMz_Aazf29gPnebxwN59WvwNb8o,32543
|
211
|
+
prefect/server/api/flows.py,sha256=oOrfmDPM2lvQ2EP2GbEuxSZ5SmYsqc2nHYJo4QL7bBo,6939
|
212
|
+
prefect/server/api/logs.py,sha256=Cigu-xilkCxAv7lPistoun5lzvf3Ohyf0uNTnj1chXA,1486
|
213
|
+
prefect/server/api/middleware.py,sha256=WkyuyeJIfo9Q0GAIVU5gO6yIGNVwoHwuBah5AB5oUyw,2733
|
214
|
+
prefect/server/api/root.py,sha256=CeumFYIM_BDvPicJH9ry5PO_02PZTLeMqbLMGGTh90o,942
|
215
|
+
prefect/server/api/run_history.py,sha256=FHepAgo1AYFeuh7rrAVzo_o3hu8Uc8-4DeH5aD5VGgw,5995
|
216
|
+
prefect/server/api/saved_searches.py,sha256=UjoqLLe245QVIs6q5Vk4vdODCOoYzciEEjhi7B8sYCE,3233
|
217
|
+
prefect/server/api/server.py,sha256=mAAZ_l0tfcpdnNDvP7-uP8w3f5HkjitpKZlyFBhLrYA,31835
|
218
|
+
prefect/server/api/task_run_states.py,sha256=qlMUR4cH943EVgAkHHwTyHznb613VNa4WErEHdwcU60,1568
|
219
|
+
prefect/server/api/task_runs.py,sha256=_rZXe2ZJDnOr3kf2MfBPMUI3N_6lbcVkJxvl-A1IKDQ,12160
|
220
|
+
prefect/server/api/task_workers.py,sha256=TLvw0DckIqAeIaS3jky9zEF3nT2FII2F7oEE5Kf_13U,950
|
221
|
+
prefect/server/api/templates.py,sha256=92bLFfcahZUp5PVNTZPjl8uJSDj4ZYRTVdmTzZXkERg,1027
|
222
|
+
prefect/server/api/validation.py,sha256=HxSNyH8yb_tI-kOfjXESRjJp6WQK6hYWBJsaBxUvY34,14490
|
223
|
+
prefect/server/api/variables.py,sha256=h7weLT5WeZPBu1NLgK35-rP9cch-Y-EwLknn1xyxrP4,6069
|
224
|
+
prefect/server/api/work_queues.py,sha256=a-Ld2Rr03RH3HH0qE94x7XqZKz2V3HWcf5XqMpX6qVE,7445
|
225
|
+
prefect/server/api/workers.py,sha256=7FF4nbsBfUwjjjg2_7uH3itfDHeg0spgXo-ZH8ZrZ3k,22358
|
192
226
|
prefect/server/api/collections_data/views/aggregate-worker-metadata.json,sha256=gqrwGyylzBEzlFSPOJcMuUwdoK_zojpU0SZaBDgK5FE,79748
|
193
227
|
prefect/server/api/static/prefect-logo-mark-gradient.png,sha256=ylRjJkI_JHCw8VbQasNnXQHwZW-sH-IQiUGSD3aWP1E,73430
|
228
|
+
prefect/server/api/ui/__init__.py,sha256=TCXO4ZUZCqCbm2QoNvWNTErkzWiX2nSACuO-0Tiomvg,93
|
229
|
+
prefect/server/api/ui/flow_runs.py,sha256=ALmUFY4WrJggN1ha0z-tqXeddG2GptswbPnB7iYixUM,4172
|
230
|
+
prefect/server/api/ui/flows.py,sha256=-g1xKHGBwh59CiILvrK3qlSE9g4boupCh4fl8UvF-iw,5647
|
231
|
+
prefect/server/api/ui/schemas.py,sha256=moKeBqG9qdCo6yHoxeDnmvHrGoLCerHc4GMEQwzqleU,2050
|
232
|
+
prefect/server/api/ui/task_runs.py,sha256=9zKN96k9GD5uUzKWNq_l-JA8ui4OqRhjyN7B3V8IHXs,6667
|
194
233
|
prefect/settings/__init__.py,sha256=3jDLzExmq9HsRWo1kTSE16BO_3B3JlVsk5pR0s4PWEQ,2136
|
195
234
|
prefect/settings/base.py,sha256=IWCFoDLKecoSlEtscwVlBwbC6KgzBHHwYODhLlOdWX8,8821
|
196
235
|
prefect/settings/constants.py,sha256=5NjVLG1Km9J9I-a6wrq-qmi_dTkPdwEk3IrY9bSxWvw,281
|
@@ -198,7 +237,7 @@ prefect/settings/context.py,sha256=yKxnaDJHX8e2jmAVtw1RF9o7X4V3AOcz61sVeQyPX2c,2
|
|
198
237
|
prefect/settings/legacy.py,sha256=KG00GwaURl1zbwfCKAjwNRdJjB2UdTyo80gYF7U60jk,5693
|
199
238
|
prefect/settings/profiles.py,sha256=Z8vOgHx2SR_l35SsFLnrFi2qfRY2_Psn0epx5zZD8WI,12392
|
200
239
|
prefect/settings/profiles.toml,sha256=kTvqDNMzjH3fsm5OEI-NKY4dMmipor5EvQXRB6rPEjY,522
|
201
|
-
prefect/settings/sources.py,sha256
|
240
|
+
prefect/settings/sources.py,sha256=x-yJT9aENh32wGVxe9WZg6KLLCZOZOMV0h5dDHuR6FA,13545
|
202
241
|
prefect/settings/models/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
203
242
|
prefect/settings/models/api.py,sha256=XOxZDtNKeXgOMtvlr6QBJ1_UsvsXad3m0ECgZ0vAfaA,1796
|
204
243
|
prefect/settings/models/cli.py,sha256=U-KwO1mfwj-hsyrR0KfS4eHg1-M1rr6VllqOt-VzoBM,1045
|
@@ -234,7 +273,7 @@ prefect/telemetry/processors.py,sha256=jw6j6LviOVxw3IBJe7cSjsxFk0zzY43jUmy6C9pcf
|
|
234
273
|
prefect/telemetry/run_telemetry.py,sha256=NcMVqOc_wQVGPlGpE8cfrz-lyCbkG1EOKpcbjsqMnGA,8264
|
235
274
|
prefect/telemetry/services.py,sha256=DxgNNDTeWNtHBtioX8cjua4IrCbTiJJdYecx-gugg-w,2358
|
236
275
|
prefect/types/__init__.py,sha256=yBjKxiQmSC7jXoo0UNmM3KZil1NBFS-BWGPfwSEaoJo,4621
|
237
|
-
prefect/types/_datetime.py,sha256=
|
276
|
+
prefect/types/_datetime.py,sha256=eOsg5gkm4bATLWvK4lmLqHByxQdER6gfTFyafzj-DLk,3343
|
238
277
|
prefect/types/entrypoint.py,sha256=2FF03-wLPgtnqR_bKJDB2BsXXINPdu8ptY9ZYEZnXg8,328
|
239
278
|
prefect/utilities/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
240
279
|
prefect/utilities/_deprecated.py,sha256=b3pqRSoFANdVJAc8TJkygBcP-VjZtLJUxVIWC7kwspI,1303
|
@@ -247,7 +286,7 @@ prefect/utilities/collections.py,sha256=yMZyRD9j6m3Fd3wm4-HR2r3o7B02AC_MDQZUWsX3
|
|
247
286
|
prefect/utilities/compat.py,sha256=nnPA3lf2f4Y-l645tYFFNmj5NDPaYvjqa9pbGKZ3WKE,582
|
248
287
|
prefect/utilities/context.py,sha256=23SDMgdt07SjmB1qShiykHfGgiv55NBzdbMXM3fE9CI,1447
|
249
288
|
prefect/utilities/dispatch.py,sha256=u6GSGSO3_6vVoIqHVc849lsKkC-I1wUl6TX134GwRBo,6310
|
250
|
-
prefect/utilities/dockerutils.py,sha256=
|
289
|
+
prefect/utilities/dockerutils.py,sha256=pQ5rJTDX6xXBzr_wFcCmcPo88YPjRp54YHf39iOnkPY,20878
|
251
290
|
prefect/utilities/engine.py,sha256=wbQpwuAnLrk6yfgOWkip00tljweRn-OODE2NaQBtLAY,28971
|
252
291
|
prefect/utilities/filesystem.py,sha256=Pwesv71PGFhf3lPa1iFyMqZZprBjy9nEKCVxTkf_hXw,5710
|
253
292
|
prefect/utilities/generics.py,sha256=o77e8a5iwmrisOf42wLp2WI9YvSw2xDW4vFdpdEwr3I,543
|
@@ -269,14 +308,13 @@ prefect/utilities/schema_tools/__init__.py,sha256=At3rMHd2g_Em2P3_dFQlFgqR_EpBwr
|
|
269
308
|
prefect/utilities/schema_tools/hydration.py,sha256=NkRhWkNfxxFmVGhNDfmxdK_xeKaEhs3a42q83Sg9cT4,9436
|
270
309
|
prefect/utilities/schema_tools/validation.py,sha256=Wix26IVR-ZJ32-6MX2pHhrwm3reB-Q4iB6_phn85OKE,10743
|
271
310
|
prefect/workers/__init__.py,sha256=EaM1F0RZ-XIJaGeTKLsXDnfOPHzVWk5bk0_c4BVS44M,64
|
272
|
-
prefect/workers/base.py,sha256=
|
311
|
+
prefect/workers/base.py,sha256=_kJlVnuia2jCGklRGUxur2SSi9uFFqkMouiWlJIJrsI,49942
|
273
312
|
prefect/workers/block.py,sha256=dPvG1jDGD5HSH7aM2utwtk6RaJ9qg13XjkA0lAIgQmY,287
|
274
313
|
prefect/workers/cloud.py,sha256=dPvG1jDGD5HSH7aM2utwtk6RaJ9qg13XjkA0lAIgQmY,287
|
275
314
|
prefect/workers/process.py,sha256=6VWon_LK7fQNLlQTjTBFeU4KFUa4faqP4EUuTvrbtbg,20176
|
276
315
|
prefect/workers/server.py,sha256=SEuyScZ5nGm2OotdtbHjpvqJlTRVWCh29ND7FeL_fZA,1974
|
277
316
|
prefect/workers/utilities.py,sha256=VfPfAlGtTuDj0-Kb8WlMgAuOfgXCdrGAnKMapPSBrwc,2483
|
278
|
-
prefect_client-3.2.
|
279
|
-
prefect_client-3.2.
|
280
|
-
prefect_client-3.2.
|
281
|
-
prefect_client-3.2.
|
282
|
-
prefect_client-3.2.1.dist-info/RECORD,,
|
317
|
+
prefect_client-3.2.3.dist-info/METADATA,sha256=mpkYH4FFqZEUC5V4HbdYseq0_dI2YSzgtr94VwNuqK8,7231
|
318
|
+
prefect_client-3.2.3.dist-info/WHEEL,sha256=qtCwoSJWgHk21S1Kb4ihdzI2rlJ1ZKaIurTj_ngOhyQ,87
|
319
|
+
prefect_client-3.2.3.dist-info/licenses/LICENSE,sha256=MCxsn8osAkzfxKC4CC_dLcUkU8DZLkyihZ8mGs3Ah3Q,11357
|
320
|
+
prefect_client-3.2.3.dist-info/RECORD,,
|
prefect/_version.py
DELETED
@@ -1,21 +0,0 @@
|
|
1
|
-
|
2
|
-
# This file was generated by 'versioneer.py' (0.29) from
|
3
|
-
# revision-control system data, or from the parent directory name of an
|
4
|
-
# unpacked source archive. Distribution tarballs contain a pre-generated copy
|
5
|
-
# of this file.
|
6
|
-
|
7
|
-
import json
|
8
|
-
|
9
|
-
version_json = '''
|
10
|
-
{
|
11
|
-
"date": "2025-02-10T15:20:53-0600",
|
12
|
-
"dirty": true,
|
13
|
-
"error": null,
|
14
|
-
"full-revisionid": "f8b15dfbe4dc668f9048f5199efdd90dc8626859",
|
15
|
-
"version": "3.2.1"
|
16
|
-
}
|
17
|
-
''' # END VERSION_JSON
|
18
|
-
|
19
|
-
|
20
|
-
def get_versions():
|
21
|
-
return json.loads(version_json)
|
@@ -1 +0,0 @@
|
|
1
|
-
prefect
|
File without changes
|