prefect-client 3.2.15.dev8__tar.gz → 3.2.16.dev1__tar.gz
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_client-3.2.15.dev8 → prefect_client-3.2.16.dev1}/PKG-INFO +6 -3
- {prefect_client-3.2.15.dev8 → prefect_client-3.2.16.dev1}/pyproject.toml +5 -2
- prefect_client-3.2.16.dev1/src/prefect/_build_info.py +5 -0
- {prefect_client-3.2.15.dev8 → prefect_client-3.2.16.dev1}/src/prefect/_internal/compatibility/deprecated.py +28 -23
- {prefect_client-3.2.15.dev8 → prefect_client-3.2.16.dev1}/src/prefect/_internal/pydantic/v2_schema.py +0 -14
- {prefect_client-3.2.15.dev8 → prefect_client-3.2.16.dev1}/src/prefect/_internal/schemas/bases.py +6 -3
- {prefect_client-3.2.15.dev8 → prefect_client-3.2.16.dev1}/src/prefect/_internal/schemas/validators.py +9 -2
- {prefect_client-3.2.15.dev8 → prefect_client-3.2.16.dev1}/src/prefect/blocks/system.py +7 -6
- {prefect_client-3.2.15.dev8 → prefect_client-3.2.16.dev1}/src/prefect/cache_policies.py +31 -2
- {prefect_client-3.2.15.dev8 → prefect_client-3.2.16.dev1}/src/prefect/client/cloud.py +0 -1
- {prefect_client-3.2.15.dev8 → prefect_client-3.2.16.dev1}/src/prefect/client/orchestration/__init__.py +0 -1
- {prefect_client-3.2.15.dev8 → prefect_client-3.2.16.dev1}/src/prefect/client/orchestration/_concurrency_limits/client.py +0 -4
- {prefect_client-3.2.15.dev8 → prefect_client-3.2.16.dev1}/src/prefect/client/schemas/objects.py +54 -25
- {prefect_client-3.2.15.dev8 → prefect_client-3.2.16.dev1}/src/prefect/client/schemas/schedules.py +6 -5
- {prefect_client-3.2.15.dev8 → prefect_client-3.2.16.dev1}/src/prefect/concurrency/_asyncio.py +1 -12
- {prefect_client-3.2.15.dev8 → prefect_client-3.2.16.dev1}/src/prefect/concurrency/asyncio.py +0 -4
- {prefect_client-3.2.15.dev8 → prefect_client-3.2.16.dev1}/src/prefect/concurrency/services.py +1 -3
- {prefect_client-3.2.15.dev8 → prefect_client-3.2.16.dev1}/src/prefect/concurrency/sync.py +1 -6
- {prefect_client-3.2.15.dev8 → prefect_client-3.2.16.dev1}/src/prefect/context.py +4 -1
- {prefect_client-3.2.15.dev8 → prefect_client-3.2.16.dev1}/src/prefect/events/clients.py +3 -3
- {prefect_client-3.2.15.dev8 → prefect_client-3.2.16.dev1}/src/prefect/events/filters.py +7 -2
- {prefect_client-3.2.15.dev8 → prefect_client-3.2.16.dev1}/src/prefect/events/related.py +5 -3
- {prefect_client-3.2.15.dev8 → prefect_client-3.2.16.dev1}/src/prefect/events/schemas/events.py +4 -4
- {prefect_client-3.2.15.dev8 → prefect_client-3.2.16.dev1}/src/prefect/events/utilities.py +4 -3
- {prefect_client-3.2.15.dev8 → prefect_client-3.2.16.dev1}/src/prefect/exceptions.py +1 -1
- {prefect_client-3.2.15.dev8 → prefect_client-3.2.16.dev1}/src/prefect/flow_engine.py +2 -11
- {prefect_client-3.2.15.dev8 → prefect_client-3.2.16.dev1}/src/prefect/futures.py +3 -12
- {prefect_client-3.2.15.dev8 → prefect_client-3.2.16.dev1}/src/prefect/locking/filesystem.py +3 -2
- {prefect_client-3.2.15.dev8 → prefect_client-3.2.16.dev1}/src/prefect/logging/formatters.py +1 -1
- {prefect_client-3.2.15.dev8 → prefect_client-3.2.16.dev1}/src/prefect/logging/handlers.py +2 -2
- {prefect_client-3.2.15.dev8 → prefect_client-3.2.16.dev1}/src/prefect/main.py +5 -5
- {prefect_client-3.2.15.dev8 → prefect_client-3.2.16.dev1}/src/prefect/results.py +2 -1
- {prefect_client-3.2.15.dev8 → prefect_client-3.2.16.dev1}/src/prefect/runner/runner.py +5 -3
- {prefect_client-3.2.15.dev8 → prefect_client-3.2.16.dev1}/src/prefect/runner/server.py +2 -2
- {prefect_client-3.2.15.dev8 → prefect_client-3.2.16.dev1}/src/prefect/runtime/flow_run.py +11 -6
- {prefect_client-3.2.15.dev8 → prefect_client-3.2.16.dev1}/src/prefect/server/api/concurrency_limits_v2.py +12 -8
- {prefect_client-3.2.15.dev8 → prefect_client-3.2.16.dev1}/src/prefect/server/api/deployments.py +4 -2
- {prefect_client-3.2.15.dev8 → prefect_client-3.2.16.dev1}/src/prefect/server/api/ui/flows.py +7 -2
- {prefect_client-3.2.15.dev8 → prefect_client-3.2.16.dev1}/src/prefect/server/api/ui/task_runs.py +3 -3
- {prefect_client-3.2.15.dev8 → prefect_client-3.2.16.dev1}/src/prefect/states.py +10 -35
- {prefect_client-3.2.15.dev8 → prefect_client-3.2.16.dev1}/src/prefect/task_engine.py +16 -9
- {prefect_client-3.2.15.dev8 → prefect_client-3.2.16.dev1}/src/prefect/task_worker.py +6 -3
- {prefect_client-3.2.15.dev8 → prefect_client-3.2.16.dev1}/src/prefect/tasks.py +5 -0
- {prefect_client-3.2.15.dev8 → prefect_client-3.2.16.dev1}/src/prefect/telemetry/bootstrap.py +3 -1
- {prefect_client-3.2.15.dev8 → prefect_client-3.2.16.dev1}/src/prefect/telemetry/instrumentation.py +13 -4
- {prefect_client-3.2.15.dev8 → prefect_client-3.2.16.dev1}/src/prefect/telemetry/logging.py +3 -1
- prefect_client-3.2.16.dev1/src/prefect/types/_datetime.py +238 -0
- {prefect_client-3.2.15.dev8 → prefect_client-3.2.16.dev1}/src/prefect/utilities/collections.py +6 -12
- {prefect_client-3.2.15.dev8 → prefect_client-3.2.16.dev1}/src/prefect/utilities/dockerutils.py +14 -5
- {prefect_client-3.2.15.dev8 → prefect_client-3.2.16.dev1}/src/prefect/utilities/engine.py +3 -8
- {prefect_client-3.2.15.dev8 → prefect_client-3.2.16.dev1}/src/prefect/workers/base.py +15 -10
- {prefect_client-3.2.15.dev8 → prefect_client-3.2.16.dev1}/src/prefect/workers/server.py +0 -1
- prefect_client-3.2.15.dev8/src/prefect/_build_info.py +0 -5
- prefect_client-3.2.15.dev8/src/prefect/_internal/pydantic/annotations/pendulum.py +0 -78
- prefect_client-3.2.15.dev8/src/prefect/types/_datetime.py +0 -125
- prefect_client-3.2.15.dev8/src/prefect/utilities/__init__.py +0 -0
- {prefect_client-3.2.15.dev8 → prefect_client-3.2.16.dev1}/.gitignore +0 -0
- {prefect_client-3.2.15.dev8 → prefect_client-3.2.16.dev1}/LICENSE +0 -0
- {prefect_client-3.2.15.dev8 → prefect_client-3.2.16.dev1}/README.md +0 -0
- {prefect_client-3.2.15.dev8 → prefect_client-3.2.16.dev1}/src/prefect/.prefectignore +0 -0
- {prefect_client-3.2.15.dev8 → prefect_client-3.2.16.dev1}/src/prefect/__init__.py +0 -0
- {prefect_client-3.2.15.dev8 → prefect_client-3.2.16.dev1}/src/prefect/__main__.py +0 -0
- {prefect_client-3.2.15.dev8 → prefect_client-3.2.16.dev1}/src/prefect/_experimental/__init__.py +0 -0
- {prefect_client-3.2.15.dev8 → prefect_client-3.2.16.dev1}/src/prefect/_experimental/bundles.py +0 -0
- {prefect_client-3.2.15.dev8 → prefect_client-3.2.16.dev1}/src/prefect/_experimental/lineage.py +0 -0
- {prefect_client-3.2.15.dev8 → prefect_client-3.2.16.dev1}/src/prefect/_experimental/sla/__init__.py +0 -0
- {prefect_client-3.2.15.dev8 → prefect_client-3.2.16.dev1}/src/prefect/_experimental/sla/client.py +0 -0
- {prefect_client-3.2.15.dev8 → prefect_client-3.2.16.dev1}/src/prefect/_experimental/sla/objects.py +0 -0
- {prefect_client-3.2.15.dev8 → prefect_client-3.2.16.dev1}/src/prefect/_internal/__init__.py +0 -0
- {prefect_client-3.2.15.dev8 → prefect_client-3.2.16.dev1}/src/prefect/_internal/_logging.py +0 -0
- {prefect_client-3.2.15.dev8 → prefect_client-3.2.16.dev1}/src/prefect/_internal/compatibility/__init__.py +0 -0
- {prefect_client-3.2.15.dev8 → prefect_client-3.2.16.dev1}/src/prefect/_internal/compatibility/async_dispatch.py +0 -0
- {prefect_client-3.2.15.dev8 → prefect_client-3.2.16.dev1}/src/prefect/_internal/compatibility/migration.py +0 -0
- {prefect_client-3.2.15.dev8 → prefect_client-3.2.16.dev1}/src/prefect/_internal/concurrency/__init__.py +0 -0
- {prefect_client-3.2.15.dev8 → prefect_client-3.2.16.dev1}/src/prefect/_internal/concurrency/api.py +0 -0
- {prefect_client-3.2.15.dev8 → prefect_client-3.2.16.dev1}/src/prefect/_internal/concurrency/calls.py +0 -0
- {prefect_client-3.2.15.dev8 → prefect_client-3.2.16.dev1}/src/prefect/_internal/concurrency/cancellation.py +0 -0
- {prefect_client-3.2.15.dev8 → prefect_client-3.2.16.dev1}/src/prefect/_internal/concurrency/event_loop.py +0 -0
- {prefect_client-3.2.15.dev8 → prefect_client-3.2.16.dev1}/src/prefect/_internal/concurrency/inspection.py +0 -0
- {prefect_client-3.2.15.dev8 → prefect_client-3.2.16.dev1}/src/prefect/_internal/concurrency/primitives.py +0 -0
- {prefect_client-3.2.15.dev8 → prefect_client-3.2.16.dev1}/src/prefect/_internal/concurrency/services.py +0 -0
- {prefect_client-3.2.15.dev8 → prefect_client-3.2.16.dev1}/src/prefect/_internal/concurrency/threads.py +0 -0
- {prefect_client-3.2.15.dev8 → prefect_client-3.2.16.dev1}/src/prefect/_internal/concurrency/waiters.py +0 -0
- {prefect_client-3.2.15.dev8 → prefect_client-3.2.16.dev1}/src/prefect/_internal/integrations.py +0 -0
- {prefect_client-3.2.15.dev8 → prefect_client-3.2.16.dev1}/src/prefect/_internal/pydantic/__init__.py +0 -0
- {prefect_client-3.2.15.dev8 → prefect_client-3.2.16.dev1}/src/prefect/_internal/pydantic/schemas.py +0 -0
- {prefect_client-3.2.15.dev8 → prefect_client-3.2.16.dev1}/src/prefect/_internal/pydantic/v1_schema.py +0 -0
- {prefect_client-3.2.15.dev8 → prefect_client-3.2.16.dev1}/src/prefect/_internal/pydantic/v2_validated_func.py +0 -0
- {prefect_client-3.2.15.dev8 → prefect_client-3.2.16.dev1}/src/prefect/_internal/pytz.py +0 -0
- {prefect_client-3.2.15.dev8 → prefect_client-3.2.16.dev1}/src/prefect/_internal/retries.py +0 -0
- {prefect_client-3.2.15.dev8/src/prefect/_internal/pydantic/annotations → prefect_client-3.2.16.dev1/src/prefect/_internal/schemas}/__init__.py +0 -0
- {prefect_client-3.2.15.dev8 → prefect_client-3.2.16.dev1}/src/prefect/_internal/schemas/fields.py +0 -0
- {prefect_client-3.2.15.dev8 → prefect_client-3.2.16.dev1}/src/prefect/_internal/schemas/serializers.py +0 -0
- {prefect_client-3.2.15.dev8 → prefect_client-3.2.16.dev1}/src/prefect/_result_records.py +0 -0
- {prefect_client-3.2.15.dev8 → prefect_client-3.2.16.dev1}/src/prefect/_vendor/croniter/__init__.py +0 -0
- {prefect_client-3.2.15.dev8 → prefect_client-3.2.16.dev1}/src/prefect/_vendor/croniter/croniter.py +0 -0
- {prefect_client-3.2.15.dev8 → prefect_client-3.2.16.dev1}/src/prefect/_waiters.py +0 -0
- {prefect_client-3.2.15.dev8 → prefect_client-3.2.16.dev1}/src/prefect/agent.py +0 -0
- {prefect_client-3.2.15.dev8 → prefect_client-3.2.16.dev1}/src/prefect/artifacts.py +0 -0
- {prefect_client-3.2.15.dev8 → prefect_client-3.2.16.dev1}/src/prefect/automations.py +0 -0
- {prefect_client-3.2.15.dev8 → prefect_client-3.2.16.dev1}/src/prefect/blocks/__init__.py +0 -0
- {prefect_client-3.2.15.dev8 → prefect_client-3.2.16.dev1}/src/prefect/blocks/abstract.py +0 -0
- {prefect_client-3.2.15.dev8 → prefect_client-3.2.16.dev1}/src/prefect/blocks/core.py +0 -0
- {prefect_client-3.2.15.dev8 → prefect_client-3.2.16.dev1}/src/prefect/blocks/fields.py +0 -0
- {prefect_client-3.2.15.dev8 → prefect_client-3.2.16.dev1}/src/prefect/blocks/notifications.py +0 -0
- {prefect_client-3.2.15.dev8 → prefect_client-3.2.16.dev1}/src/prefect/blocks/redis.py +0 -0
- {prefect_client-3.2.15.dev8 → prefect_client-3.2.16.dev1}/src/prefect/blocks/webhook.py +0 -0
- {prefect_client-3.2.15.dev8 → prefect_client-3.2.16.dev1}/src/prefect/client/__init__.py +0 -0
- {prefect_client-3.2.15.dev8 → prefect_client-3.2.16.dev1}/src/prefect/client/base.py +0 -0
- {prefect_client-3.2.15.dev8 → prefect_client-3.2.16.dev1}/src/prefect/client/collections.py +0 -0
- {prefect_client-3.2.15.dev8 → prefect_client-3.2.16.dev1}/src/prefect/client/constants.py +0 -0
- {prefect_client-3.2.15.dev8/src/prefect/_internal/schemas → prefect_client-3.2.16.dev1/src/prefect/client/orchestration/_artifacts}/__init__.py +0 -0
- {prefect_client-3.2.15.dev8 → prefect_client-3.2.16.dev1}/src/prefect/client/orchestration/_artifacts/client.py +0 -0
- {prefect_client-3.2.15.dev8/src/prefect/client/orchestration/_artifacts → prefect_client-3.2.16.dev1/src/prefect/client/orchestration/_automations}/__init__.py +0 -0
- {prefect_client-3.2.15.dev8 → prefect_client-3.2.16.dev1}/src/prefect/client/orchestration/_automations/client.py +0 -0
- {prefect_client-3.2.15.dev8/src/prefect/client/orchestration/_automations → prefect_client-3.2.16.dev1/src/prefect/client/orchestration/_blocks_documents}/__init__.py +0 -0
- {prefect_client-3.2.15.dev8 → prefect_client-3.2.16.dev1}/src/prefect/client/orchestration/_blocks_documents/client.py +0 -0
- {prefect_client-3.2.15.dev8/src/prefect/client/orchestration/_blocks_documents → prefect_client-3.2.16.dev1/src/prefect/client/orchestration/_blocks_schemas}/__init__.py +0 -0
- {prefect_client-3.2.15.dev8 → prefect_client-3.2.16.dev1}/src/prefect/client/orchestration/_blocks_schemas/client.py +0 -0
- {prefect_client-3.2.15.dev8/src/prefect/client/orchestration/_blocks_schemas → prefect_client-3.2.16.dev1/src/prefect/client/orchestration/_blocks_types}/__init__.py +0 -0
- {prefect_client-3.2.15.dev8 → prefect_client-3.2.16.dev1}/src/prefect/client/orchestration/_blocks_types/client.py +0 -0
- {prefect_client-3.2.15.dev8/src/prefect/client/orchestration/_blocks_types → prefect_client-3.2.16.dev1/src/prefect/client/orchestration/_concurrency_limits}/__init__.py +0 -0
- {prefect_client-3.2.15.dev8/src/prefect/client/orchestration/_concurrency_limits → prefect_client-3.2.16.dev1/src/prefect/client/orchestration/_deployments}/__init__.py +0 -0
- {prefect_client-3.2.15.dev8 → prefect_client-3.2.16.dev1}/src/prefect/client/orchestration/_deployments/client.py +0 -0
- {prefect_client-3.2.15.dev8/src/prefect/client/orchestration/_deployments → prefect_client-3.2.16.dev1/src/prefect/client/orchestration/_flow_runs}/__init__.py +0 -0
- {prefect_client-3.2.15.dev8 → prefect_client-3.2.16.dev1}/src/prefect/client/orchestration/_flow_runs/client.py +0 -0
- {prefect_client-3.2.15.dev8/src/prefect/client/orchestration/_flow_runs → prefect_client-3.2.16.dev1/src/prefect/client/orchestration/_flows}/__init__.py +0 -0
- {prefect_client-3.2.15.dev8 → prefect_client-3.2.16.dev1}/src/prefect/client/orchestration/_flows/client.py +0 -0
- {prefect_client-3.2.15.dev8/src/prefect/client/orchestration/_flows → prefect_client-3.2.16.dev1/src/prefect/client/orchestration/_logs}/__init__.py +0 -0
- {prefect_client-3.2.15.dev8 → prefect_client-3.2.16.dev1}/src/prefect/client/orchestration/_logs/client.py +0 -0
- {prefect_client-3.2.15.dev8/src/prefect/client/orchestration/_logs → prefect_client-3.2.16.dev1/src/prefect/client/orchestration/_variables}/__init__.py +0 -0
- {prefect_client-3.2.15.dev8 → prefect_client-3.2.16.dev1}/src/prefect/client/orchestration/_variables/client.py +0 -0
- {prefect_client-3.2.15.dev8/src/prefect/client/orchestration/_variables → prefect_client-3.2.16.dev1/src/prefect/client/orchestration/_work_pools}/__init__.py +0 -0
- {prefect_client-3.2.15.dev8 → prefect_client-3.2.16.dev1}/src/prefect/client/orchestration/_work_pools/client.py +0 -0
- {prefect_client-3.2.15.dev8 → prefect_client-3.2.16.dev1}/src/prefect/client/orchestration/base.py +0 -0
- {prefect_client-3.2.15.dev8 → prefect_client-3.2.16.dev1}/src/prefect/client/orchestration/routes.py +0 -0
- {prefect_client-3.2.15.dev8 → prefect_client-3.2.16.dev1}/src/prefect/client/schemas/__init__.py +0 -0
- {prefect_client-3.2.15.dev8 → prefect_client-3.2.16.dev1}/src/prefect/client/schemas/actions.py +0 -0
- {prefect_client-3.2.15.dev8 → prefect_client-3.2.16.dev1}/src/prefect/client/schemas/filters.py +0 -0
- {prefect_client-3.2.15.dev8 → prefect_client-3.2.16.dev1}/src/prefect/client/schemas/responses.py +0 -0
- {prefect_client-3.2.15.dev8 → prefect_client-3.2.16.dev1}/src/prefect/client/schemas/sorting.py +0 -0
- {prefect_client-3.2.15.dev8 → prefect_client-3.2.16.dev1}/src/prefect/client/subscriptions.py +0 -0
- {prefect_client-3.2.15.dev8/src/prefect/client/orchestration/_work_pools → prefect_client-3.2.16.dev1/src/prefect/client/types}/__init__.py +0 -0
- {prefect_client-3.2.15.dev8 → prefect_client-3.2.16.dev1}/src/prefect/client/types/flexible_schedule_list.py +0 -0
- {prefect_client-3.2.15.dev8 → prefect_client-3.2.16.dev1}/src/prefect/client/utilities.py +0 -0
- {prefect_client-3.2.15.dev8/src/prefect/client/types → prefect_client-3.2.16.dev1/src/prefect/concurrency}/__init__.py +0 -0
- {prefect_client-3.2.15.dev8 → prefect_client-3.2.16.dev1}/src/prefect/concurrency/_events.py +0 -0
- {prefect_client-3.2.15.dev8 → prefect_client-3.2.16.dev1}/src/prefect/concurrency/context.py +0 -0
- {prefect_client-3.2.15.dev8/src/prefect/concurrency → prefect_client-3.2.16.dev1/src/prefect/concurrency/v1}/__init__.py +0 -0
- {prefect_client-3.2.15.dev8 → prefect_client-3.2.16.dev1}/src/prefect/concurrency/v1/_asyncio.py +0 -0
- {prefect_client-3.2.15.dev8 → prefect_client-3.2.16.dev1}/src/prefect/concurrency/v1/_events.py +0 -0
- {prefect_client-3.2.15.dev8 → prefect_client-3.2.16.dev1}/src/prefect/concurrency/v1/asyncio.py +0 -0
- {prefect_client-3.2.15.dev8 → prefect_client-3.2.16.dev1}/src/prefect/concurrency/v1/context.py +0 -0
- {prefect_client-3.2.15.dev8 → prefect_client-3.2.16.dev1}/src/prefect/concurrency/v1/services.py +0 -0
- {prefect_client-3.2.15.dev8 → prefect_client-3.2.16.dev1}/src/prefect/concurrency/v1/sync.py +0 -0
- {prefect_client-3.2.15.dev8 → prefect_client-3.2.16.dev1}/src/prefect/deployments/__init__.py +0 -0
- {prefect_client-3.2.15.dev8 → prefect_client-3.2.16.dev1}/src/prefect/deployments/base.py +0 -0
- {prefect_client-3.2.15.dev8 → prefect_client-3.2.16.dev1}/src/prefect/deployments/deployments.py +0 -0
- {prefect_client-3.2.15.dev8 → prefect_client-3.2.16.dev1}/src/prefect/deployments/flow_runs.py +0 -0
- {prefect_client-3.2.15.dev8 → prefect_client-3.2.16.dev1}/src/prefect/deployments/runner.py +0 -0
- {prefect_client-3.2.15.dev8 → prefect_client-3.2.16.dev1}/src/prefect/deployments/schedules.py +0 -0
- {prefect_client-3.2.15.dev8 → prefect_client-3.2.16.dev1}/src/prefect/deployments/steps/__init__.py +0 -0
- {prefect_client-3.2.15.dev8 → prefect_client-3.2.16.dev1}/src/prefect/deployments/steps/core.py +0 -0
- {prefect_client-3.2.15.dev8 → prefect_client-3.2.16.dev1}/src/prefect/deployments/steps/pull.py +0 -0
- {prefect_client-3.2.15.dev8 → prefect_client-3.2.16.dev1}/src/prefect/deployments/steps/utility.py +0 -0
- {prefect_client-3.2.15.dev8 → prefect_client-3.2.16.dev1}/src/prefect/docker/__init__.py +0 -0
- {prefect_client-3.2.15.dev8 → prefect_client-3.2.16.dev1}/src/prefect/docker/docker_image.py +0 -0
- {prefect_client-3.2.15.dev8 → prefect_client-3.2.16.dev1}/src/prefect/engine.py +0 -0
- {prefect_client-3.2.15.dev8 → prefect_client-3.2.16.dev1}/src/prefect/events/__init__.py +0 -0
- {prefect_client-3.2.15.dev8 → prefect_client-3.2.16.dev1}/src/prefect/events/actions.py +0 -0
- {prefect_client-3.2.15.dev8/src/prefect/concurrency/v1 → prefect_client-3.2.16.dev1/src/prefect/events/cli}/__init__.py +0 -0
- {prefect_client-3.2.15.dev8 → prefect_client-3.2.16.dev1}/src/prefect/events/cli/automations.py +0 -0
- {prefect_client-3.2.15.dev8/src/prefect/events/cli → prefect_client-3.2.16.dev1/src/prefect/events/schemas}/__init__.py +0 -0
- {prefect_client-3.2.15.dev8 → prefect_client-3.2.16.dev1}/src/prefect/events/schemas/automations.py +0 -0
- {prefect_client-3.2.15.dev8 → prefect_client-3.2.16.dev1}/src/prefect/events/schemas/deployment_triggers.py +0 -0
- {prefect_client-3.2.15.dev8 → prefect_client-3.2.16.dev1}/src/prefect/events/schemas/labelling.py +0 -0
- {prefect_client-3.2.15.dev8 → prefect_client-3.2.16.dev1}/src/prefect/events/worker.py +0 -0
- {prefect_client-3.2.15.dev8 → prefect_client-3.2.16.dev1}/src/prefect/filesystems.py +0 -0
- {prefect_client-3.2.15.dev8 → prefect_client-3.2.16.dev1}/src/prefect/flow_runs.py +0 -0
- {prefect_client-3.2.15.dev8 → prefect_client-3.2.16.dev1}/src/prefect/flows.py +0 -0
- {prefect_client-3.2.15.dev8 → prefect_client-3.2.16.dev1}/src/prefect/infrastructure/__init__.py +0 -0
- {prefect_client-3.2.15.dev8 → prefect_client-3.2.16.dev1}/src/prefect/infrastructure/base.py +0 -0
- {prefect_client-3.2.15.dev8 → prefect_client-3.2.16.dev1}/src/prefect/infrastructure/provisioners/__init__.py +0 -0
- {prefect_client-3.2.15.dev8 → prefect_client-3.2.16.dev1}/src/prefect/infrastructure/provisioners/cloud_run.py +0 -0
- {prefect_client-3.2.15.dev8 → prefect_client-3.2.16.dev1}/src/prefect/infrastructure/provisioners/coiled.py +0 -0
- {prefect_client-3.2.15.dev8 → prefect_client-3.2.16.dev1}/src/prefect/infrastructure/provisioners/container_instance.py +0 -0
- {prefect_client-3.2.15.dev8 → prefect_client-3.2.16.dev1}/src/prefect/infrastructure/provisioners/ecs.py +0 -0
- {prefect_client-3.2.15.dev8 → prefect_client-3.2.16.dev1}/src/prefect/infrastructure/provisioners/modal.py +0 -0
- {prefect_client-3.2.15.dev8 → prefect_client-3.2.16.dev1}/src/prefect/input/__init__.py +0 -0
- {prefect_client-3.2.15.dev8 → prefect_client-3.2.16.dev1}/src/prefect/input/actions.py +0 -0
- {prefect_client-3.2.15.dev8 → prefect_client-3.2.16.dev1}/src/prefect/input/run_input.py +0 -0
- {prefect_client-3.2.15.dev8/src/prefect/events/schemas → prefect_client-3.2.16.dev1/src/prefect/locking}/__init__.py +0 -0
- {prefect_client-3.2.15.dev8 → prefect_client-3.2.16.dev1}/src/prefect/locking/memory.py +0 -0
- {prefect_client-3.2.15.dev8 → prefect_client-3.2.16.dev1}/src/prefect/locking/protocol.py +0 -0
- {prefect_client-3.2.15.dev8 → prefect_client-3.2.16.dev1}/src/prefect/logging/__init__.py +0 -0
- {prefect_client-3.2.15.dev8 → prefect_client-3.2.16.dev1}/src/prefect/logging/configuration.py +0 -0
- {prefect_client-3.2.15.dev8 → prefect_client-3.2.16.dev1}/src/prefect/logging/filters.py +0 -0
- {prefect_client-3.2.15.dev8 → prefect_client-3.2.16.dev1}/src/prefect/logging/highlighters.py +0 -0
- {prefect_client-3.2.15.dev8 → prefect_client-3.2.16.dev1}/src/prefect/logging/loggers.py +0 -0
- {prefect_client-3.2.15.dev8 → prefect_client-3.2.16.dev1}/src/prefect/logging/logging.yml +0 -0
- {prefect_client-3.2.15.dev8 → prefect_client-3.2.16.dev1}/src/prefect/plugins.py +0 -0
- {prefect_client-3.2.15.dev8 → prefect_client-3.2.16.dev1}/src/prefect/py.typed +0 -0
- {prefect_client-3.2.15.dev8 → prefect_client-3.2.16.dev1}/src/prefect/runner/__init__.py +0 -0
- {prefect_client-3.2.15.dev8 → prefect_client-3.2.16.dev1}/src/prefect/runner/storage.py +0 -0
- {prefect_client-3.2.15.dev8 → prefect_client-3.2.16.dev1}/src/prefect/runner/submit.py +0 -0
- {prefect_client-3.2.15.dev8 → prefect_client-3.2.16.dev1}/src/prefect/runner/utils.py +0 -0
- {prefect_client-3.2.15.dev8 → prefect_client-3.2.16.dev1}/src/prefect/runtime/__init__.py +0 -0
- {prefect_client-3.2.15.dev8 → prefect_client-3.2.16.dev1}/src/prefect/runtime/deployment.py +0 -0
- {prefect_client-3.2.15.dev8 → prefect_client-3.2.16.dev1}/src/prefect/runtime/task_run.py +0 -0
- {prefect_client-3.2.15.dev8 → prefect_client-3.2.16.dev1}/src/prefect/schedules.py +0 -0
- {prefect_client-3.2.15.dev8 → prefect_client-3.2.16.dev1}/src/prefect/serializers.py +0 -0
- {prefect_client-3.2.15.dev8 → prefect_client-3.2.16.dev1}/src/prefect/server/api/__init__.py +0 -0
- {prefect_client-3.2.15.dev8 → prefect_client-3.2.16.dev1}/src/prefect/server/api/admin.py +0 -0
- {prefect_client-3.2.15.dev8 → prefect_client-3.2.16.dev1}/src/prefect/server/api/artifacts.py +0 -0
- {prefect_client-3.2.15.dev8 → prefect_client-3.2.16.dev1}/src/prefect/server/api/automations.py +0 -0
- {prefect_client-3.2.15.dev8 → prefect_client-3.2.16.dev1}/src/prefect/server/api/block_capabilities.py +0 -0
- {prefect_client-3.2.15.dev8 → prefect_client-3.2.16.dev1}/src/prefect/server/api/block_documents.py +0 -0
- {prefect_client-3.2.15.dev8 → prefect_client-3.2.16.dev1}/src/prefect/server/api/block_schemas.py +0 -0
- {prefect_client-3.2.15.dev8 → prefect_client-3.2.16.dev1}/src/prefect/server/api/block_types.py +0 -0
- {prefect_client-3.2.15.dev8 → prefect_client-3.2.16.dev1}/src/prefect/server/api/clients.py +0 -0
- {prefect_client-3.2.15.dev8 → prefect_client-3.2.16.dev1}/src/prefect/server/api/collections.py +0 -0
- {prefect_client-3.2.15.dev8 → prefect_client-3.2.16.dev1}/src/prefect/server/api/collections_data/views/aggregate-worker-metadata.json +0 -0
- {prefect_client-3.2.15.dev8 → prefect_client-3.2.16.dev1}/src/prefect/server/api/concurrency_limits.py +0 -0
- {prefect_client-3.2.15.dev8 → prefect_client-3.2.16.dev1}/src/prefect/server/api/csrf_token.py +0 -0
- {prefect_client-3.2.15.dev8 → prefect_client-3.2.16.dev1}/src/prefect/server/api/dependencies.py +0 -0
- {prefect_client-3.2.15.dev8 → prefect_client-3.2.16.dev1}/src/prefect/server/api/events.py +0 -0
- {prefect_client-3.2.15.dev8 → prefect_client-3.2.16.dev1}/src/prefect/server/api/flow_run_notification_policies.py +0 -0
- {prefect_client-3.2.15.dev8 → prefect_client-3.2.16.dev1}/src/prefect/server/api/flow_run_states.py +0 -0
- {prefect_client-3.2.15.dev8 → prefect_client-3.2.16.dev1}/src/prefect/server/api/flow_runs.py +0 -0
- {prefect_client-3.2.15.dev8 → prefect_client-3.2.16.dev1}/src/prefect/server/api/flows.py +0 -0
- {prefect_client-3.2.15.dev8 → prefect_client-3.2.16.dev1}/src/prefect/server/api/logs.py +0 -0
- {prefect_client-3.2.15.dev8 → prefect_client-3.2.16.dev1}/src/prefect/server/api/middleware.py +0 -0
- {prefect_client-3.2.15.dev8 → prefect_client-3.2.16.dev1}/src/prefect/server/api/root.py +0 -0
- {prefect_client-3.2.15.dev8 → prefect_client-3.2.16.dev1}/src/prefect/server/api/run_history.py +0 -0
- {prefect_client-3.2.15.dev8 → prefect_client-3.2.16.dev1}/src/prefect/server/api/saved_searches.py +0 -0
- {prefect_client-3.2.15.dev8 → prefect_client-3.2.16.dev1}/src/prefect/server/api/server.py +0 -0
- {prefect_client-3.2.15.dev8 → prefect_client-3.2.16.dev1}/src/prefect/server/api/static/prefect-logo-mark-gradient.png +0 -0
- {prefect_client-3.2.15.dev8 → prefect_client-3.2.16.dev1}/src/prefect/server/api/task_run_states.py +0 -0
- {prefect_client-3.2.15.dev8 → prefect_client-3.2.16.dev1}/src/prefect/server/api/task_runs.py +0 -0
- {prefect_client-3.2.15.dev8 → prefect_client-3.2.16.dev1}/src/prefect/server/api/task_workers.py +0 -0
- {prefect_client-3.2.15.dev8 → prefect_client-3.2.16.dev1}/src/prefect/server/api/templates.py +0 -0
- {prefect_client-3.2.15.dev8 → prefect_client-3.2.16.dev1}/src/prefect/server/api/ui/__init__.py +0 -0
- {prefect_client-3.2.15.dev8 → prefect_client-3.2.16.dev1}/src/prefect/server/api/ui/flow_runs.py +0 -0
- {prefect_client-3.2.15.dev8 → prefect_client-3.2.16.dev1}/src/prefect/server/api/ui/schemas.py +0 -0
- {prefect_client-3.2.15.dev8 → prefect_client-3.2.16.dev1}/src/prefect/server/api/validation.py +0 -0
- {prefect_client-3.2.15.dev8 → prefect_client-3.2.16.dev1}/src/prefect/server/api/variables.py +0 -0
- {prefect_client-3.2.15.dev8 → prefect_client-3.2.16.dev1}/src/prefect/server/api/work_queues.py +0 -0
- {prefect_client-3.2.15.dev8 → prefect_client-3.2.16.dev1}/src/prefect/server/api/workers.py +0 -0
- {prefect_client-3.2.15.dev8 → prefect_client-3.2.16.dev1}/src/prefect/settings/__init__.py +0 -0
- {prefect_client-3.2.15.dev8 → prefect_client-3.2.16.dev1}/src/prefect/settings/base.py +0 -0
- {prefect_client-3.2.15.dev8 → prefect_client-3.2.16.dev1}/src/prefect/settings/constants.py +0 -0
- {prefect_client-3.2.15.dev8 → prefect_client-3.2.16.dev1}/src/prefect/settings/context.py +0 -0
- {prefect_client-3.2.15.dev8 → prefect_client-3.2.16.dev1}/src/prefect/settings/legacy.py +0 -0
- {prefect_client-3.2.15.dev8/src/prefect/locking → prefect_client-3.2.16.dev1/src/prefect/settings/models}/__init__.py +0 -0
- {prefect_client-3.2.15.dev8 → prefect_client-3.2.16.dev1}/src/prefect/settings/models/api.py +0 -0
- {prefect_client-3.2.15.dev8 → prefect_client-3.2.16.dev1}/src/prefect/settings/models/cli.py +0 -0
- {prefect_client-3.2.15.dev8 → prefect_client-3.2.16.dev1}/src/prefect/settings/models/client.py +0 -0
- {prefect_client-3.2.15.dev8 → prefect_client-3.2.16.dev1}/src/prefect/settings/models/cloud.py +0 -0
- {prefect_client-3.2.15.dev8 → prefect_client-3.2.16.dev1}/src/prefect/settings/models/deployments.py +0 -0
- {prefect_client-3.2.15.dev8 → prefect_client-3.2.16.dev1}/src/prefect/settings/models/experiments.py +0 -0
- {prefect_client-3.2.15.dev8 → prefect_client-3.2.16.dev1}/src/prefect/settings/models/flows.py +0 -0
- {prefect_client-3.2.15.dev8 → prefect_client-3.2.16.dev1}/src/prefect/settings/models/internal.py +0 -0
- {prefect_client-3.2.15.dev8 → prefect_client-3.2.16.dev1}/src/prefect/settings/models/logging.py +0 -0
- {prefect_client-3.2.15.dev8 → prefect_client-3.2.16.dev1}/src/prefect/settings/models/results.py +0 -0
- {prefect_client-3.2.15.dev8 → prefect_client-3.2.16.dev1}/src/prefect/settings/models/root.py +0 -0
- {prefect_client-3.2.15.dev8 → prefect_client-3.2.16.dev1}/src/prefect/settings/models/runner.py +0 -0
- {prefect_client-3.2.15.dev8 → prefect_client-3.2.16.dev1}/src/prefect/settings/models/server/__init__.py +0 -0
- {prefect_client-3.2.15.dev8 → prefect_client-3.2.16.dev1}/src/prefect/settings/models/server/api.py +0 -0
- {prefect_client-3.2.15.dev8 → prefect_client-3.2.16.dev1}/src/prefect/settings/models/server/database.py +0 -0
- {prefect_client-3.2.15.dev8 → prefect_client-3.2.16.dev1}/src/prefect/settings/models/server/deployments.py +0 -0
- {prefect_client-3.2.15.dev8 → prefect_client-3.2.16.dev1}/src/prefect/settings/models/server/ephemeral.py +0 -0
- {prefect_client-3.2.15.dev8 → prefect_client-3.2.16.dev1}/src/prefect/settings/models/server/events.py +0 -0
- {prefect_client-3.2.15.dev8 → prefect_client-3.2.16.dev1}/src/prefect/settings/models/server/flow_run_graph.py +0 -0
- {prefect_client-3.2.15.dev8 → prefect_client-3.2.16.dev1}/src/prefect/settings/models/server/root.py +0 -0
- {prefect_client-3.2.15.dev8 → prefect_client-3.2.16.dev1}/src/prefect/settings/models/server/services.py +0 -0
- {prefect_client-3.2.15.dev8 → prefect_client-3.2.16.dev1}/src/prefect/settings/models/server/tasks.py +0 -0
- {prefect_client-3.2.15.dev8 → prefect_client-3.2.16.dev1}/src/prefect/settings/models/server/ui.py +0 -0
- {prefect_client-3.2.15.dev8 → prefect_client-3.2.16.dev1}/src/prefect/settings/models/tasks.py +0 -0
- {prefect_client-3.2.15.dev8 → prefect_client-3.2.16.dev1}/src/prefect/settings/models/testing.py +0 -0
- {prefect_client-3.2.15.dev8 → prefect_client-3.2.16.dev1}/src/prefect/settings/models/worker.py +0 -0
- {prefect_client-3.2.15.dev8 → prefect_client-3.2.16.dev1}/src/prefect/settings/profiles.py +0 -0
- {prefect_client-3.2.15.dev8 → prefect_client-3.2.16.dev1}/src/prefect/settings/profiles.toml +0 -0
- {prefect_client-3.2.15.dev8 → prefect_client-3.2.16.dev1}/src/prefect/settings/sources.py +0 -0
- {prefect_client-3.2.15.dev8 → prefect_client-3.2.16.dev1}/src/prefect/task_runners.py +0 -0
- {prefect_client-3.2.15.dev8 → prefect_client-3.2.16.dev1}/src/prefect/task_runs.py +0 -0
- {prefect_client-3.2.15.dev8 → prefect_client-3.2.16.dev1}/src/prefect/telemetry/__init__.py +0 -0
- {prefect_client-3.2.15.dev8 → prefect_client-3.2.16.dev1}/src/prefect/telemetry/processors.py +0 -0
- {prefect_client-3.2.15.dev8 → prefect_client-3.2.16.dev1}/src/prefect/telemetry/run_telemetry.py +0 -0
- {prefect_client-3.2.15.dev8 → prefect_client-3.2.16.dev1}/src/prefect/telemetry/services.py +0 -0
- {prefect_client-3.2.15.dev8 → prefect_client-3.2.16.dev1}/src/prefect/transactions.py +0 -0
- {prefect_client-3.2.15.dev8 → prefect_client-3.2.16.dev1}/src/prefect/types/__init__.py +0 -0
- {prefect_client-3.2.15.dev8 → prefect_client-3.2.16.dev1}/src/prefect/types/entrypoint.py +0 -0
- {prefect_client-3.2.15.dev8/src/prefect/settings/models → prefect_client-3.2.16.dev1/src/prefect/utilities}/__init__.py +0 -0
- {prefect_client-3.2.15.dev8 → prefect_client-3.2.16.dev1}/src/prefect/utilities/_deprecated.py +0 -0
- {prefect_client-3.2.15.dev8 → prefect_client-3.2.16.dev1}/src/prefect/utilities/_engine.py +0 -0
- {prefect_client-3.2.15.dev8 → prefect_client-3.2.16.dev1}/src/prefect/utilities/_git.py +0 -0
- {prefect_client-3.2.15.dev8 → prefect_client-3.2.16.dev1}/src/prefect/utilities/annotations.py +0 -0
- {prefect_client-3.2.15.dev8 → prefect_client-3.2.16.dev1}/src/prefect/utilities/asyncutils.py +0 -0
- {prefect_client-3.2.15.dev8 → prefect_client-3.2.16.dev1}/src/prefect/utilities/callables.py +0 -0
- {prefect_client-3.2.15.dev8 → prefect_client-3.2.16.dev1}/src/prefect/utilities/compat.py +0 -0
- {prefect_client-3.2.15.dev8 → prefect_client-3.2.16.dev1}/src/prefect/utilities/context.py +0 -0
- {prefect_client-3.2.15.dev8 → prefect_client-3.2.16.dev1}/src/prefect/utilities/dispatch.py +0 -0
- {prefect_client-3.2.15.dev8 → prefect_client-3.2.16.dev1}/src/prefect/utilities/filesystem.py +0 -0
- {prefect_client-3.2.15.dev8 → prefect_client-3.2.16.dev1}/src/prefect/utilities/generics.py +0 -0
- {prefect_client-3.2.15.dev8 → prefect_client-3.2.16.dev1}/src/prefect/utilities/hashing.py +0 -0
- {prefect_client-3.2.15.dev8 → prefect_client-3.2.16.dev1}/src/prefect/utilities/importtools.py +0 -0
- {prefect_client-3.2.15.dev8 → prefect_client-3.2.16.dev1}/src/prefect/utilities/math.py +0 -0
- {prefect_client-3.2.15.dev8 → prefect_client-3.2.16.dev1}/src/prefect/utilities/names.py +0 -0
- {prefect_client-3.2.15.dev8 → prefect_client-3.2.16.dev1}/src/prefect/utilities/processutils.py +0 -0
- {prefect_client-3.2.15.dev8 → prefect_client-3.2.16.dev1}/src/prefect/utilities/pydantic.py +0 -0
- {prefect_client-3.2.15.dev8 → prefect_client-3.2.16.dev1}/src/prefect/utilities/render_swagger.py +0 -0
- {prefect_client-3.2.15.dev8 → prefect_client-3.2.16.dev1}/src/prefect/utilities/schema_tools/__init__.py +0 -0
- {prefect_client-3.2.15.dev8 → prefect_client-3.2.16.dev1}/src/prefect/utilities/schema_tools/hydration.py +0 -0
- {prefect_client-3.2.15.dev8 → prefect_client-3.2.16.dev1}/src/prefect/utilities/schema_tools/validation.py +0 -0
- {prefect_client-3.2.15.dev8 → prefect_client-3.2.16.dev1}/src/prefect/utilities/services.py +0 -0
- {prefect_client-3.2.15.dev8 → prefect_client-3.2.16.dev1}/src/prefect/utilities/slugify.py +0 -0
- {prefect_client-3.2.15.dev8 → prefect_client-3.2.16.dev1}/src/prefect/utilities/templating.py +0 -0
- {prefect_client-3.2.15.dev8 → prefect_client-3.2.16.dev1}/src/prefect/utilities/text.py +0 -0
- {prefect_client-3.2.15.dev8 → prefect_client-3.2.16.dev1}/src/prefect/utilities/timeout.py +0 -0
- {prefect_client-3.2.15.dev8 → prefect_client-3.2.16.dev1}/src/prefect/utilities/urls.py +0 -0
- {prefect_client-3.2.15.dev8 → prefect_client-3.2.16.dev1}/src/prefect/utilities/visualization.py +0 -0
- {prefect_client-3.2.15.dev8 → prefect_client-3.2.16.dev1}/src/prefect/variables.py +0 -0
- {prefect_client-3.2.15.dev8 → prefect_client-3.2.16.dev1}/src/prefect/workers/__init__.py +0 -0
- {prefect_client-3.2.15.dev8 → prefect_client-3.2.16.dev1}/src/prefect/workers/block.py +0 -0
- {prefect_client-3.2.15.dev8 → prefect_client-3.2.16.dev1}/src/prefect/workers/cloud.py +0 -0
- {prefect_client-3.2.15.dev8 → prefect_client-3.2.16.dev1}/src/prefect/workers/process.py +0 -0
- {prefect_client-3.2.15.dev8 → prefect_client-3.2.16.dev1}/src/prefect/workers/utilities.py +0 -0
@@ -1,6 +1,6 @@
|
|
1
1
|
Metadata-Version: 2.4
|
2
2
|
Name: prefect-client
|
3
|
-
Version: 3.2.
|
3
|
+
Version: 3.2.16.dev1
|
4
4
|
Summary: Workflow orchestration and management.
|
5
5
|
Project-URL: Changelog, https://github.com/PrefectHQ/prefect/releases
|
6
6
|
Project-URL: Documentation, https://docs.prefect.io
|
@@ -18,8 +18,9 @@ Classifier: Programming Language :: Python :: 3.9
|
|
18
18
|
Classifier: Programming Language :: Python :: 3.10
|
19
19
|
Classifier: Programming Language :: Python :: 3.11
|
20
20
|
Classifier: Programming Language :: Python :: 3.12
|
21
|
+
Classifier: Programming Language :: Python :: 3.13
|
21
22
|
Classifier: Topic :: Software Development :: Libraries
|
22
|
-
Requires-Python:
|
23
|
+
Requires-Python: <3.14,>=3.9
|
23
24
|
Requires-Dist: anyio<5.0.0,>=4.4.0
|
24
25
|
Requires-Dist: asgi-lifespan<3.0,>=1.0
|
25
26
|
Requires-Dist: cachetools<6.0,>=5.3
|
@@ -32,6 +33,7 @@ Requires-Dist: graphviz>=0.20.1
|
|
32
33
|
Requires-Dist: griffe<2.0.0,>=0.49.0
|
33
34
|
Requires-Dist: httpcore<2.0.0,>=1.0.5
|
34
35
|
Requires-Dist: httpx[http2]!=0.23.2,>=0.23
|
36
|
+
Requires-Dist: humanize<5.0.0,>=4.9.0
|
35
37
|
Requires-Dist: importlib-metadata>=4.4; python_version < '3.10'
|
36
38
|
Requires-Dist: jsonpatch<2.0,>=1.32
|
37
39
|
Requires-Dist: jsonschema<5.0.0,>=4.0.0
|
@@ -39,7 +41,7 @@ Requires-Dist: opentelemetry-api<2.0.0,>=1.27.0
|
|
39
41
|
Requires-Dist: orjson<4.0,>=3.7
|
40
42
|
Requires-Dist: packaging<24.3,>=21.3
|
41
43
|
Requires-Dist: pathspec>=0.8.0
|
42
|
-
Requires-Dist: pendulum<4,>=3.0.0
|
44
|
+
Requires-Dist: pendulum<4,>=3.0.0; python_version < '3.13'
|
43
45
|
Requires-Dist: prometheus-client>=0.20.0
|
44
46
|
Requires-Dist: pydantic!=2.10.0,<3.0.0,>=2.9
|
45
47
|
Requires-Dist: pydantic-core<3.0.0,>=2.12.0
|
@@ -59,6 +61,7 @@ Requires-Dist: typing-extensions<5.0.0,>=4.10.0
|
|
59
61
|
Requires-Dist: ujson<6.0.0,>=5.8.0
|
60
62
|
Requires-Dist: uvicorn!=0.29.0,>=0.14.0
|
61
63
|
Requires-Dist: websockets<16.0,>=13.0
|
64
|
+
Requires-Dist: whenever<0.8.0,>=0.7.3; python_version >= '3.13'
|
62
65
|
Provides-Extra: notifications
|
63
66
|
Requires-Dist: apprise<2.0.0,>=1.1.0; extra == 'notifications'
|
64
67
|
Description-Content-Type: text/markdown
|
@@ -7,7 +7,7 @@ name = "prefect-client"
|
|
7
7
|
dynamic = ["version"]
|
8
8
|
description = "Workflow orchestration and management."
|
9
9
|
readme = "README.md"
|
10
|
-
requires-python = ">=3.9"
|
10
|
+
requires-python = ">=3.9,<3.14"
|
11
11
|
license = { text = "Apache-2.0" }
|
12
12
|
authors = [{ name = "Prefect Technologies, Inc.", email = "help@prefect.io" }]
|
13
13
|
classifiers = [
|
@@ -20,6 +20,7 @@ classifiers = [
|
|
20
20
|
"Programming Language :: Python :: 3.10",
|
21
21
|
"Programming Language :: Python :: 3.11",
|
22
22
|
"Programming Language :: Python :: 3.12",
|
23
|
+
"Programming Language :: Python :: 3.13",
|
23
24
|
"Topic :: Software Development :: Libraries",
|
24
25
|
]
|
25
26
|
dependencies = [
|
@@ -36,6 +37,7 @@ dependencies = [
|
|
36
37
|
"griffe>=0.49.0,<2.0.0",
|
37
38
|
"httpcore>=1.0.5,<2.0.0",
|
38
39
|
"httpx[http2]>=0.23,!=0.23.2",
|
40
|
+
"humanize>=4.9.0,<5.0.0",
|
39
41
|
"importlib_metadata>=4.4;python_version<'3.10'",
|
40
42
|
"jsonpatch>=1.32,<2.0",
|
41
43
|
"jsonschema>=4.0.0,<5.0.0",
|
@@ -43,7 +45,7 @@ dependencies = [
|
|
43
45
|
"orjson>=3.7,<4.0",
|
44
46
|
"packaging>=21.3,<24.3",
|
45
47
|
"pathspec>=0.8.0",
|
46
|
-
"pendulum>=3.0.0,<4",
|
48
|
+
"pendulum>=3.0.0,<4; python_version<'3.13'",
|
47
49
|
"prometheus-client>=0.20.0",
|
48
50
|
"pydantic>=2.9,<3.0.0,!=2.10.0",
|
49
51
|
"pydantic_core>=2.12.0,<3.0.0",
|
@@ -63,6 +65,7 @@ dependencies = [
|
|
63
65
|
"ujson>=5.8.0,<6.0.0",
|
64
66
|
"uvicorn>=0.14.0,!=0.29.0",
|
65
67
|
"websockets>=13.0,<16.0",
|
68
|
+
"whenever>=0.7.3,<0.8.0; python_version>='3.13'",
|
66
69
|
]
|
67
70
|
[project.urls]
|
68
71
|
Changelog = "https://github.com/PrefectHQ/prefect/releases"
|
@@ -10,6 +10,7 @@ will be calculated 6 months later. Start and end dates are always in the format
|
|
10
10
|
e.g. Jan 2023.
|
11
11
|
"""
|
12
12
|
|
13
|
+
import datetime
|
13
14
|
import functools
|
14
15
|
import sys
|
15
16
|
import warnings
|
@@ -18,7 +19,7 @@ from typing import TYPE_CHECKING, Any, Callable, Optional, Union
|
|
18
19
|
from pydantic import BaseModel
|
19
20
|
from typing_extensions import ParamSpec, TypeAlias, TypeVar
|
20
21
|
|
21
|
-
from prefect.types._datetime import
|
22
|
+
from prefect.types._datetime import now
|
22
23
|
from prefect.utilities.callables import get_call_parameters
|
23
24
|
from prefect.utilities.importtools import (
|
24
25
|
AliasedModuleDefinition,
|
@@ -40,7 +41,7 @@ DEPRECATED_MOVED_WARNING = (
|
|
40
41
|
"{name} has moved to {new_location}. It will not be available at the old import "
|
41
42
|
"path after {end_date}. {help}"
|
42
43
|
)
|
43
|
-
|
44
|
+
HUMAN_DATEFMT = "%b %Y" # e.g. Feb 2023
|
44
45
|
DEPRECATED_MODULE_ALIASES: list[AliasedModuleDefinition] = []
|
45
46
|
|
46
47
|
|
@@ -52,40 +53,42 @@ class PrefectDeprecationWarning(DeprecationWarning):
|
|
52
53
|
|
53
54
|
def generate_deprecation_message(
|
54
55
|
name: str,
|
55
|
-
start_date: Optional[
|
56
|
-
end_date: Optional[
|
56
|
+
start_date: Optional[datetime.datetime] = None,
|
57
|
+
end_date: Optional[datetime.datetime] = None,
|
57
58
|
help: str = "",
|
58
59
|
when: str = "",
|
59
60
|
) -> str:
|
60
|
-
if not
|
61
|
+
if start_date is not None and not isinstance(start_date, datetime.datetime):
|
62
|
+
raise ValueError("Must provide start_date as a datetime")
|
63
|
+
|
64
|
+
if end_date is not None and not isinstance(end_date, datetime.datetime):
|
65
|
+
raise ValueError("Must provide end_date as a datetime")
|
66
|
+
|
67
|
+
if start_date is None and end_date is None:
|
61
68
|
raise ValueError(
|
62
69
|
"A start date is required if an end date is not provided. Suggested start"
|
63
|
-
f" date is {
|
70
|
+
f" date is {now('UTC').strftime(HUMAN_DATEFMT)}"
|
64
71
|
)
|
65
72
|
|
66
|
-
if
|
73
|
+
if end_date is None:
|
67
74
|
if TYPE_CHECKING:
|
68
75
|
assert start_date is not None
|
69
|
-
|
70
|
-
|
71
|
-
end_date = parsed_end_date.format(DEPRECATED_DATEFMT)
|
72
|
-
else:
|
73
|
-
# Validate format
|
74
|
-
from_format(end_date, DEPRECATED_DATEFMT)
|
76
|
+
|
77
|
+
end_date = start_date + datetime.timedelta(days=182.625)
|
75
78
|
|
76
79
|
if when:
|
77
80
|
when = " when " + when
|
78
81
|
|
79
82
|
message = DEPRECATED_WARNING.format(
|
80
|
-
name=name, when=when, end_date=end_date, help=help
|
83
|
+
name=name, when=when, end_date=end_date.strftime(HUMAN_DATEFMT), help=help
|
81
84
|
)
|
82
85
|
return message.rstrip()
|
83
86
|
|
84
87
|
|
85
88
|
def deprecated_callable(
|
86
89
|
*,
|
87
|
-
start_date: Optional[
|
88
|
-
end_date: Optional[
|
90
|
+
start_date: Optional[datetime.datetime] = None,
|
91
|
+
end_date: Optional[datetime.datetime] = None,
|
89
92
|
stacklevel: int = 2,
|
90
93
|
help: str = "",
|
91
94
|
) -> Callable[[Callable[P, R]], Callable[P, R]]:
|
@@ -109,8 +112,8 @@ def deprecated_callable(
|
|
109
112
|
|
110
113
|
def deprecated_class(
|
111
114
|
*,
|
112
|
-
start_date: Optional[
|
113
|
-
end_date: Optional[
|
115
|
+
start_date: Optional[datetime.datetime] = None,
|
116
|
+
end_date: Optional[datetime.datetime] = None,
|
114
117
|
stacklevel: int = 2,
|
115
118
|
help: str = "",
|
116
119
|
) -> Callable[[type[T]], type[T]]:
|
@@ -138,8 +141,8 @@ def deprecated_class(
|
|
138
141
|
def deprecated_parameter(
|
139
142
|
name: str,
|
140
143
|
*,
|
141
|
-
start_date: Optional[
|
142
|
-
end_date: Optional[
|
144
|
+
start_date: Optional[datetime.datetime] = None,
|
145
|
+
end_date: Optional[datetime.datetime] = None,
|
143
146
|
stacklevel: int = 2,
|
144
147
|
help: str = "",
|
145
148
|
when: Optional[Callable[[Any], bool]] = None,
|
@@ -194,8 +197,8 @@ JsonDict: TypeAlias = dict[str, JsonValue]
|
|
194
197
|
def deprecated_field(
|
195
198
|
name: str,
|
196
199
|
*,
|
197
|
-
start_date: Optional[
|
198
|
-
end_date: Optional[
|
200
|
+
start_date: Optional[datetime.datetime] = None,
|
201
|
+
end_date: Optional[datetime.datetime] = None,
|
199
202
|
when_message: str = "",
|
200
203
|
help: str = "",
|
201
204
|
when: Optional[Callable[[Any], bool]] = None,
|
@@ -276,7 +279,9 @@ def inject_renamed_module_alias_finder():
|
|
276
279
|
sys.meta_path.insert(0, AliasedModuleFinder(DEPRECATED_MODULE_ALIASES))
|
277
280
|
|
278
281
|
|
279
|
-
def register_renamed_module(
|
282
|
+
def register_renamed_module(
|
283
|
+
old_name: str, new_name: str, start_date: datetime.datetime
|
284
|
+
):
|
280
285
|
"""
|
281
286
|
Register a renamed module.
|
282
287
|
|
@@ -2,17 +2,11 @@ import inspect
|
|
2
2
|
import typing
|
3
3
|
import typing as t
|
4
4
|
|
5
|
-
import pendulum
|
6
5
|
import pydantic
|
7
6
|
from pydantic import BaseModel as V2BaseModel
|
8
7
|
from pydantic import ConfigDict, PydanticUndefinedAnnotation, create_model
|
9
8
|
from pydantic.type_adapter import TypeAdapter
|
10
9
|
|
11
|
-
from prefect._internal.pydantic.annotations.pendulum import (
|
12
|
-
PydanticPendulumDateTimeType,
|
13
|
-
PydanticPendulumDateType,
|
14
|
-
PydanticPendulumDurationType,
|
15
|
-
)
|
16
10
|
from prefect._internal.pydantic.schemas import GenerateEmptySchemaForUserClasses
|
17
11
|
|
18
12
|
|
@@ -74,14 +68,6 @@ def process_v2_params(
|
|
74
68
|
|
75
69
|
type_ = t.Any if param.annotation is inspect.Parameter.empty else param.annotation
|
76
70
|
|
77
|
-
# Replace pendulum type annotations with our own so that they are pydantic compatible
|
78
|
-
if type_ == pendulum.DateTime:
|
79
|
-
type_ = PydanticPendulumDateTimeType
|
80
|
-
if type_ == pendulum.Date:
|
81
|
-
type_ = PydanticPendulumDateType
|
82
|
-
if type_ == pendulum.Duration:
|
83
|
-
type_ = PydanticPendulumDurationType
|
84
|
-
|
85
71
|
field = pydantic.Field(
|
86
72
|
default=... if param.default is param.empty else param.default,
|
87
73
|
title=param.name,
|
{prefect_client-3.2.15.dev8 → prefect_client-3.2.16.dev1}/src/prefect/_internal/schemas/bases.py
RENAMED
@@ -10,7 +10,10 @@ from pydantic import BaseModel, ConfigDict, Field
|
|
10
10
|
from rich.repr import RichReprResult
|
11
11
|
from typing_extensions import Self
|
12
12
|
|
13
|
-
from prefect.types._datetime import
|
13
|
+
from prefect.types._datetime import (
|
14
|
+
DateTime,
|
15
|
+
human_friendly_diff,
|
16
|
+
)
|
14
17
|
from prefect.utilities.generics import validate_list
|
15
18
|
|
16
19
|
T = TypeVar("T")
|
@@ -72,9 +75,9 @@ class PrefectBaseModel(BaseModel):
|
|
72
75
|
and name == "timestamp"
|
73
76
|
and value
|
74
77
|
):
|
75
|
-
value =
|
78
|
+
value = value.isoformat()
|
76
79
|
elif isinstance(field.annotation, datetime.datetime) and value:
|
77
|
-
value =
|
80
|
+
value = human_friendly_diff(value)
|
78
81
|
|
79
82
|
yield name, value, field.get_default()
|
80
83
|
|
@@ -8,6 +8,7 @@ This will be subject to consolidation and refactoring over the next few months.
|
|
8
8
|
|
9
9
|
from __future__ import annotations
|
10
10
|
|
11
|
+
import datetime
|
11
12
|
import os
|
12
13
|
import re
|
13
14
|
import urllib.parse
|
@@ -17,6 +18,7 @@ from copy import copy
|
|
17
18
|
from pathlib import Path
|
18
19
|
from typing import TYPE_CHECKING, Any, Optional, TypeVar, Union, overload
|
19
20
|
from uuid import UUID
|
21
|
+
from zoneinfo import ZoneInfo
|
20
22
|
|
21
23
|
import jsonschema
|
22
24
|
|
@@ -282,8 +284,13 @@ def default_timezone(
|
|
282
284
|
|
283
285
|
# anchor schedules
|
284
286
|
elif "anchor_date" in values:
|
285
|
-
anchor_date:
|
286
|
-
|
287
|
+
anchor_date: datetime.datetime = values["anchor_date"]
|
288
|
+
if isinstance(anchor_date.tzinfo, ZoneInfo):
|
289
|
+
tz = anchor_date.tzinfo.key
|
290
|
+
elif hasattr(anchor_date.tzinfo, "name"):
|
291
|
+
tz = anchor_date.tzinfo.name
|
292
|
+
else:
|
293
|
+
tz = "UTC"
|
287
294
|
# sometimes anchor dates have "timezones" that are UTC offsets
|
288
295
|
# like "-04:00". This happens when parsing ISO8601 strings.
|
289
296
|
# In this case we, the correct inferred localization is "UTC".
|
@@ -1,6 +1,7 @@
|
|
1
1
|
from __future__ import annotations
|
2
2
|
|
3
3
|
import json
|
4
|
+
from datetime import datetime
|
4
5
|
from typing import Annotated, Any, Generic, TypeVar, Union
|
5
6
|
|
6
7
|
from pydantic import (
|
@@ -26,8 +27,8 @@ T = TypeVar("T", bound=_SecretValueType)
|
|
26
27
|
|
27
28
|
|
28
29
|
@deprecated_class(
|
29
|
-
start_date=
|
30
|
-
end_date=
|
30
|
+
start_date=datetime(2024, 6, 1),
|
31
|
+
end_date=datetime(2025, 6, 1),
|
31
32
|
help="Use Variables to store json data instead.",
|
32
33
|
)
|
33
34
|
class JSON(Block):
|
@@ -55,8 +56,8 @@ class JSON(Block):
|
|
55
56
|
|
56
57
|
|
57
58
|
@deprecated_class(
|
58
|
-
start_date=
|
59
|
-
end_date=
|
59
|
+
start_date=datetime(2024, 6, 1),
|
60
|
+
end_date=datetime(2025, 6, 1),
|
60
61
|
help="Use Variables to store string data instead.",
|
61
62
|
)
|
62
63
|
class String(Block):
|
@@ -84,8 +85,8 @@ class String(Block):
|
|
84
85
|
|
85
86
|
|
86
87
|
@deprecated_class(
|
87
|
-
start_date=
|
88
|
-
end_date=
|
88
|
+
start_date=datetime(2024, 6, 1),
|
89
|
+
end_date=datetime(2025, 6, 1),
|
89
90
|
help="Use Variables to store datetime data instead.",
|
90
91
|
)
|
91
92
|
class DateTime(Block):
|
@@ -2,7 +2,15 @@ import inspect
|
|
2
2
|
from copy import deepcopy
|
3
3
|
from dataclasses import dataclass, field
|
4
4
|
from pathlib import Path
|
5
|
-
from typing import
|
5
|
+
from typing import (
|
6
|
+
TYPE_CHECKING,
|
7
|
+
Any,
|
8
|
+
Callable,
|
9
|
+
Dict,
|
10
|
+
Literal,
|
11
|
+
Optional,
|
12
|
+
Union,
|
13
|
+
)
|
6
14
|
|
7
15
|
from typing_extensions import Self
|
8
16
|
|
@@ -15,6 +23,24 @@ if TYPE_CHECKING:
|
|
15
23
|
from prefect.locking.protocol import LockManager
|
16
24
|
from prefect.transactions import IsolationLevel
|
17
25
|
|
26
|
+
STABLE_TRANSFORMS: dict[type, Callable[[Any], Any]] = {}
|
27
|
+
|
28
|
+
|
29
|
+
def _register_stable_transforms() -> None:
|
30
|
+
"""
|
31
|
+
Some inputs do not reliably produce deterministic byte strings when serialized via
|
32
|
+
`cloudpickle`. This utility registers stabilizing transformations of such types
|
33
|
+
so that cache keys that utilize them are deterministic across invocations.
|
34
|
+
"""
|
35
|
+
try:
|
36
|
+
import pandas as pd
|
37
|
+
|
38
|
+
STABLE_TRANSFORMS[pd.DataFrame] = lambda df: [
|
39
|
+
df[col] for col in sorted(df.columns)
|
40
|
+
]
|
41
|
+
except (ImportError, ModuleNotFoundError):
|
42
|
+
pass
|
43
|
+
|
18
44
|
|
19
45
|
@dataclass
|
20
46
|
class CachePolicy:
|
@@ -341,7 +367,8 @@ class Inputs(CachePolicy):
|
|
341
367
|
|
342
368
|
for key, val in inputs.items():
|
343
369
|
if key not in exclude:
|
344
|
-
|
370
|
+
transformer = STABLE_TRANSFORMS.get(type(val)) # type: ignore[reportUnknownMemberType]
|
371
|
+
hashed_inputs[key] = transformer(val) if transformer else val
|
345
372
|
|
346
373
|
try:
|
347
374
|
return hash_objects(hashed_inputs, raise_on_failure=True)
|
@@ -362,6 +389,8 @@ class Inputs(CachePolicy):
|
|
362
389
|
return Inputs(exclude=self.exclude + [other])
|
363
390
|
|
364
391
|
|
392
|
+
_register_stable_transforms()
|
393
|
+
|
365
394
|
INPUTS = Inputs()
|
366
395
|
NONE = _None()
|
367
396
|
NO_CACHE = _None()
|
@@ -82,7 +82,6 @@ from prefect.client.orchestration._blocks_types.client import (
|
|
82
82
|
import prefect
|
83
83
|
import prefect.exceptions
|
84
84
|
from prefect.logging.loggers import get_run_logger
|
85
|
-
import prefect.settings
|
86
85
|
import prefect.states
|
87
86
|
from prefect.client.constants import SERVER_API_VERSION
|
88
87
|
from prefect.client.schemas import FlowRun, OrchestrationResult, TaskRun
|
@@ -244,7 +244,6 @@ class ConcurrencyLimitClient(BaseClient):
|
|
244
244
|
names: list[str],
|
245
245
|
slots: int,
|
246
246
|
mode: str,
|
247
|
-
create_if_missing: bool | None = None,
|
248
247
|
) -> "Response":
|
249
248
|
return self.request(
|
250
249
|
"POST",
|
@@ -253,7 +252,6 @@ class ConcurrencyLimitClient(BaseClient):
|
|
253
252
|
"names": names,
|
254
253
|
"slots": slots,
|
255
254
|
"mode": mode,
|
256
|
-
"create_if_missing": create_if_missing if create_if_missing else False,
|
257
255
|
},
|
258
256
|
)
|
259
257
|
|
@@ -614,7 +612,6 @@ class ConcurrencyLimitAsyncClient(BaseAsyncClient):
|
|
614
612
|
names: list[str],
|
615
613
|
slots: int,
|
616
614
|
mode: str,
|
617
|
-
create_if_missing: bool | None = None,
|
618
615
|
) -> "Response":
|
619
616
|
return await self.request(
|
620
617
|
"POST",
|
@@ -623,7 +620,6 @@ class ConcurrencyLimitAsyncClient(BaseAsyncClient):
|
|
623
620
|
"names": names,
|
624
621
|
"slots": slots,
|
625
622
|
"mode": mode,
|
626
|
-
"create_if_missing": create_if_missing if create_if_missing else False,
|
627
623
|
},
|
628
624
|
)
|
629
625
|
|
{prefect_client-3.2.15.dev8 → prefect_client-3.2.16.dev1}/src/prefect/client/schemas/objects.py
RENAMED
@@ -32,7 +32,7 @@ from pydantic import (
|
|
32
32
|
)
|
33
33
|
from typing_extensions import Literal, Self, TypeVar
|
34
34
|
|
35
|
-
from prefect._internal.compatibility import
|
35
|
+
from prefect._internal.compatibility.async_dispatch import async_dispatch
|
36
36
|
from prefect._internal.compatibility.migration import getattr_migration
|
37
37
|
from prefect._internal.schemas.bases import ObjectBaseModel, PrefectBaseModel
|
38
38
|
from prefect._internal.schemas.fields import CreatedBy, UpdatedBy
|
@@ -60,7 +60,8 @@ from prefect.types import (
|
|
60
60
|
PositiveInteger,
|
61
61
|
StrictVariableValue,
|
62
62
|
)
|
63
|
-
from prefect.types._datetime import DateTime
|
63
|
+
from prefect.types._datetime import DateTime, now
|
64
|
+
from prefect.utilities.asyncutils import run_coro_as_sync
|
64
65
|
from prefect.utilities.collections import AutoEnum, listrepr, visit_collection
|
65
66
|
from prefect.utilities.names import generate_slug
|
66
67
|
from prefect.utilities.pydantic import handle_secret_render
|
@@ -200,7 +201,7 @@ class State(ObjectBaseModel, Generic[R]):
|
|
200
201
|
|
201
202
|
type: StateType
|
202
203
|
name: Optional[str] = Field(default=None)
|
203
|
-
timestamp:
|
204
|
+
timestamp: datetime.datetime = Field(default_factory=lambda: now("UTC"))
|
204
205
|
message: Optional[str] = Field(default=None, examples=["Run started"])
|
205
206
|
state_details: StateDetails = Field(default_factory=StateDetails)
|
206
207
|
data: Annotated[
|
@@ -211,11 +212,47 @@ class State(ObjectBaseModel, Generic[R]):
|
|
211
212
|
Discriminator(data_discriminator),
|
212
213
|
] = Field(default=None)
|
213
214
|
|
215
|
+
@overload
|
216
|
+
async def aresult(
|
217
|
+
self: "State[R]",
|
218
|
+
raise_on_failure: Literal[True] = ...,
|
219
|
+
retry_result_failure: bool = ...,
|
220
|
+
) -> R: ...
|
221
|
+
|
222
|
+
@overload
|
223
|
+
async def aresult(
|
224
|
+
self: "State[R]",
|
225
|
+
raise_on_failure: Literal[False] = False,
|
226
|
+
retry_result_failure: bool = ...,
|
227
|
+
) -> Union[R, Exception]: ...
|
228
|
+
|
229
|
+
@overload
|
230
|
+
async def aresult(
|
231
|
+
self: "State[R]",
|
232
|
+
raise_on_failure: bool = ...,
|
233
|
+
retry_result_failure: bool = ...,
|
234
|
+
) -> Union[R, Exception]: ...
|
235
|
+
|
236
|
+
async def aresult(
|
237
|
+
self,
|
238
|
+
raise_on_failure: bool = True,
|
239
|
+
retry_result_failure: bool = True,
|
240
|
+
) -> Union[R, Exception]:
|
241
|
+
"""
|
242
|
+
Retrieve the result attached to this state.
|
243
|
+
"""
|
244
|
+
from prefect.states import get_state_result
|
245
|
+
|
246
|
+
return await get_state_result(
|
247
|
+
self,
|
248
|
+
raise_on_failure=raise_on_failure,
|
249
|
+
retry_result_failure=retry_result_failure,
|
250
|
+
)
|
251
|
+
|
214
252
|
@overload
|
215
253
|
def result(
|
216
254
|
self: "State[R]",
|
217
255
|
raise_on_failure: Literal[True] = ...,
|
218
|
-
fetch: bool = ...,
|
219
256
|
retry_result_failure: bool = ...,
|
220
257
|
) -> R: ...
|
221
258
|
|
@@ -223,7 +260,6 @@ class State(ObjectBaseModel, Generic[R]):
|
|
223
260
|
def result(
|
224
261
|
self: "State[R]",
|
225
262
|
raise_on_failure: Literal[False] = False,
|
226
|
-
fetch: bool = ...,
|
227
263
|
retry_result_failure: bool = ...,
|
228
264
|
) -> Union[R, Exception]: ...
|
229
265
|
|
@@ -231,21 +267,13 @@ class State(ObjectBaseModel, Generic[R]):
|
|
231
267
|
def result(
|
232
268
|
self: "State[R]",
|
233
269
|
raise_on_failure: bool = ...,
|
234
|
-
fetch: bool = ...,
|
235
270
|
retry_result_failure: bool = ...,
|
236
271
|
) -> Union[R, Exception]: ...
|
237
272
|
|
238
|
-
@
|
239
|
-
"fetch",
|
240
|
-
when=lambda fetch: fetch is not True,
|
241
|
-
start_date="Oct 2024",
|
242
|
-
end_date="Jan 2025",
|
243
|
-
help="Please ensure you are awaiting the call to `result()` when calling in an async context.",
|
244
|
-
)
|
273
|
+
@async_dispatch(aresult)
|
245
274
|
def result(
|
246
275
|
self,
|
247
276
|
raise_on_failure: bool = True,
|
248
|
-
fetch: bool = True,
|
249
277
|
retry_result_failure: bool = True,
|
250
278
|
) -> Union[R, Exception]:
|
251
279
|
"""
|
@@ -317,11 +345,12 @@ class State(ObjectBaseModel, Generic[R]):
|
|
317
345
|
"""
|
318
346
|
from prefect.states import get_state_result
|
319
347
|
|
320
|
-
return
|
321
|
-
|
322
|
-
|
323
|
-
|
324
|
-
|
348
|
+
return run_coro_as_sync(
|
349
|
+
get_state_result(
|
350
|
+
self,
|
351
|
+
raise_on_failure=raise_on_failure,
|
352
|
+
retry_result_failure=retry_result_failure,
|
353
|
+
)
|
325
354
|
)
|
326
355
|
|
327
356
|
@model_validator(mode="after")
|
@@ -338,7 +367,7 @@ class State(ObjectBaseModel, Generic[R]):
|
|
338
367
|
def default_scheduled_start_time(self) -> Self:
|
339
368
|
if self.type == StateType.SCHEDULED:
|
340
369
|
if not self.state_details.scheduled_time:
|
341
|
-
self.state_details.scheduled_time =
|
370
|
+
self.state_details.scheduled_time = now("UTC") # pyright: ignore[reportAttributeAccessIssue] DateTime is split into two types depending on Python version
|
342
371
|
return self
|
343
372
|
|
344
373
|
@model_validator(mode="after")
|
@@ -397,9 +426,9 @@ class State(ObjectBaseModel, Generic[R]):
|
|
397
426
|
return self.model_copy(
|
398
427
|
update={
|
399
428
|
"id": uuid4(),
|
400
|
-
"created":
|
401
|
-
"updated":
|
402
|
-
"timestamp":
|
429
|
+
"created": now("UTC"),
|
430
|
+
"updated": now("UTC"),
|
431
|
+
"timestamp": now("UTC"),
|
403
432
|
},
|
404
433
|
**kwargs,
|
405
434
|
)
|
@@ -1346,7 +1375,7 @@ class WorkQueueHealthPolicy(PrefectBaseModel):
|
|
1346
1375
|
)
|
1347
1376
|
|
1348
1377
|
def evaluate_health_status(
|
1349
|
-
self, late_runs_count: int, last_polled:
|
1378
|
+
self, late_runs_count: int, last_polled: datetime.datetime | None = None
|
1350
1379
|
) -> bool:
|
1351
1380
|
"""
|
1352
1381
|
Given empirical information about the state of the work queue, evaluate its health status.
|
@@ -1368,7 +1397,7 @@ class WorkQueueHealthPolicy(PrefectBaseModel):
|
|
1368
1397
|
if self.maximum_seconds_since_last_polled is not None:
|
1369
1398
|
if (
|
1370
1399
|
last_polled is None
|
1371
|
-
or
|
1400
|
+
or (now("UTC") - last_polled).total_seconds()
|
1372
1401
|
> self.maximum_seconds_since_last_polled
|
1373
1402
|
):
|
1374
1403
|
healthy = False
|
{prefect_client-3.2.15.dev8 → prefect_client-3.2.16.dev1}/src/prefect/client/schemas/schedules.py
RENAMED
@@ -4,6 +4,7 @@ Schedule schemas
|
|
4
4
|
|
5
5
|
import datetime
|
6
6
|
from typing import TYPE_CHECKING, Annotated, Any, ClassVar, Optional, Union
|
7
|
+
from zoneinfo import ZoneInfo
|
7
8
|
|
8
9
|
import dateutil
|
9
10
|
import dateutil.rrule
|
@@ -18,7 +19,7 @@ from prefect._internal.schemas.validators import (
|
|
18
19
|
validate_cron_string,
|
19
20
|
validate_rrule_string,
|
20
21
|
)
|
21
|
-
from prefect.types._datetime import Date, DateTime
|
22
|
+
from prefect.types._datetime import Date, DateTime, now
|
22
23
|
|
23
24
|
MAX_ITERATIONS = 1000
|
24
25
|
# approx. 1 years worth of RDATEs + buffer
|
@@ -74,8 +75,8 @@ class IntervalSchedule(PrefectBaseModel):
|
|
74
75
|
model_config: ClassVar[ConfigDict] = ConfigDict(extra="forbid")
|
75
76
|
|
76
77
|
interval: datetime.timedelta = Field(gt=datetime.timedelta(0))
|
77
|
-
anchor_date: Annotated[DateTime, AfterValidator(default_anchor_date)] = Field(
|
78
|
-
default_factory=lambda:
|
78
|
+
anchor_date: Annotated[DateTime, AfterValidator(default_anchor_date)] = Field( # pyright: ignore[reportAssignmentType] DateTime is split into two types depending on Python version
|
79
|
+
default_factory=lambda: now("UTC"),
|
79
80
|
examples=["2020-01-01T00:00:00Z"],
|
80
81
|
)
|
81
82
|
timezone: Optional[str] = Field(default=None, examples=["America/New_York"])
|
@@ -209,7 +210,7 @@ class RRuleSchedule(PrefectBaseModel):
|
|
209
210
|
return RRuleSchedule(rrule=str(rrule), timezone=timezone)
|
210
211
|
rrules = _rrule(rrule)
|
211
212
|
dtstarts = [dts for rr in rrules if (dts := _rrule_dt(rr)) is not None]
|
212
|
-
unique_dstarts = set(
|
213
|
+
unique_dstarts = set(d.astimezone(ZoneInfo("UTC")) for d in dtstarts)
|
213
214
|
unique_timezones = set(d.tzinfo for d in dtstarts if d.tzinfo is not None)
|
214
215
|
|
215
216
|
if len(unique_timezones) > 1:
|
@@ -370,7 +371,7 @@ def construct_schedule(
|
|
370
371
|
if isinstance(interval, (int, float)):
|
371
372
|
interval = datetime.timedelta(seconds=interval)
|
372
373
|
if not anchor_date:
|
373
|
-
anchor_date =
|
374
|
+
anchor_date = now()
|
374
375
|
schedule = IntervalSchedule(
|
375
376
|
interval=interval, anchor_date=anchor_date, timezone=timezone
|
376
377
|
)
|