prefect-client 3.9.1.dev2__tar.gz → 3.9.1.dev3__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.9.1.dev2 → prefect_client-3.9.1.dev3}/PKG-INFO +4 -4
- {prefect_client-3.9.1.dev2 → prefect_client-3.9.1.dev3}/pyproject.toml +3 -3
- {prefect_client-3.9.1.dev2 → prefect_client-3.9.1.dev3}/src/prefect/AGENTS.md +1 -1
- prefect_client-3.9.1.dev3/src/prefect/_build_info.py +5 -0
- {prefect_client-3.9.1.dev2 → prefect_client-3.9.1.dev3}/src/prefect/blocks/notifications.py +2 -4
- {prefect_client-3.9.1.dev2 → prefect_client-3.9.1.dev3}/src/prefect/flow_engine.py +20 -2
- {prefect_client-3.9.1.dev2 → prefect_client-3.9.1.dev3}/src/prefect/server/api/__init__.py +2 -0
- prefect_client-3.9.1.dev3/src/prefect/server/api/observed_states.py +32 -0
- {prefect_client-3.9.1.dev2 → prefect_client-3.9.1.dev3}/src/prefect/server/api/server.py +1 -0
- {prefect_client-3.9.1.dev2 → prefect_client-3.9.1.dev3}/src/prefect/types/_datetime.py +16 -3
- {prefect_client-3.9.1.dev2 → prefect_client-3.9.1.dev3}/src/prefect/utilities/collections.py +30 -8
- prefect_client-3.9.1.dev2/src/prefect/_build_info.py +0 -5
- {prefect_client-3.9.1.dev2 → prefect_client-3.9.1.dev3}/.gitignore +0 -0
- {prefect_client-3.9.1.dev2 → prefect_client-3.9.1.dev3}/LICENSE +0 -0
- {prefect_client-3.9.1.dev2 → prefect_client-3.9.1.dev3}/README.md +0 -0
- {prefect_client-3.9.1.dev2 → prefect_client-3.9.1.dev3}/hatch_build.py +0 -0
- {prefect_client-3.9.1.dev2 → prefect_client-3.9.1.dev3}/src/prefect/.prefectignore +0 -0
- {prefect_client-3.9.1.dev2 → prefect_client-3.9.1.dev3}/src/prefect/__init__.py +0 -0
- {prefect_client-3.9.1.dev2 → prefect_client-3.9.1.dev3}/src/prefect/__main__.py +0 -0
- {prefect_client-3.9.1.dev2 → prefect_client-3.9.1.dev3}/src/prefect/_experimental/__init__.py +0 -0
- {prefect_client-3.9.1.dev2 → prefect_client-3.9.1.dev3}/src/prefect/_experimental/_launchers.py +0 -0
- {prefect_client-3.9.1.dev2 → prefect_client-3.9.1.dev3}/src/prefect/_experimental/bundles/__init__.py +0 -0
- {prefect_client-3.9.1.dev2 → prefect_client-3.9.1.dev3}/src/prefect/_experimental/bundles/execute.py +0 -0
- {prefect_client-3.9.1.dev2 → prefect_client-3.9.1.dev3}/src/prefect/_experimental/plugins/__init__.py +0 -0
- {prefect_client-3.9.1.dev2 → prefect_client-3.9.1.dev3}/src/prefect/_experimental/plugins/apply.py +0 -0
- {prefect_client-3.9.1.dev2 → prefect_client-3.9.1.dev3}/src/prefect/_experimental/plugins/diagnostics.py +0 -0
- {prefect_client-3.9.1.dev2 → prefect_client-3.9.1.dev3}/src/prefect/_experimental/plugins/manager.py +0 -0
- {prefect_client-3.9.1.dev2 → prefect_client-3.9.1.dev3}/src/prefect/_experimental/plugins/spec.py +0 -0
- {prefect_client-3.9.1.dev2 → prefect_client-3.9.1.dev3}/src/prefect/_experimental/sla/__init__.py +0 -0
- {prefect_client-3.9.1.dev2 → prefect_client-3.9.1.dev3}/src/prefect/_experimental/sla/client.py +0 -0
- {prefect_client-3.9.1.dev2 → prefect_client-3.9.1.dev3}/src/prefect/_experimental/sla/objects.py +0 -0
- {prefect_client-3.9.1.dev2 → prefect_client-3.9.1.dev3}/src/prefect/_flow_run_suspension.py +0 -0
- {prefect_client-3.9.1.dev2 → prefect_client-3.9.1.dev3}/src/prefect/_internal/__init__.py +0 -0
- {prefect_client-3.9.1.dev2 → prefect_client-3.9.1.dev3}/src/prefect/_internal/_logging.py +0 -0
- {prefect_client-3.9.1.dev2 → prefect_client-3.9.1.dev3}/src/prefect/_internal/_observation_delivery.py +0 -0
- {prefect_client-3.9.1.dev2 → prefect_client-3.9.1.dev3}/src/prefect/_internal/analytics/__init__.py +0 -0
- {prefect_client-3.9.1.dev2 → prefect_client-3.9.1.dev3}/src/prefect/_internal/analytics/ci_detection.py +0 -0
- {prefect_client-3.9.1.dev2 → prefect_client-3.9.1.dev3}/src/prefect/_internal/analytics/client.py +0 -0
- {prefect_client-3.9.1.dev2 → prefect_client-3.9.1.dev3}/src/prefect/_internal/analytics/device_id.py +0 -0
- {prefect_client-3.9.1.dev2 → prefect_client-3.9.1.dev3}/src/prefect/_internal/analytics/emit.py +0 -0
- {prefect_client-3.9.1.dev2 → prefect_client-3.9.1.dev3}/src/prefect/_internal/analytics/enabled.py +0 -0
- {prefect_client-3.9.1.dev2 → prefect_client-3.9.1.dev3}/src/prefect/_internal/analytics/events.py +0 -0
- {prefect_client-3.9.1.dev2 → prefect_client-3.9.1.dev3}/src/prefect/_internal/analytics/milestones.py +0 -0
- {prefect_client-3.9.1.dev2 → prefect_client-3.9.1.dev3}/src/prefect/_internal/analytics/notice.py +0 -0
- {prefect_client-3.9.1.dev2 → prefect_client-3.9.1.dev3}/src/prefect/_internal/analytics/service.py +0 -0
- {prefect_client-3.9.1.dev2 → prefect_client-3.9.1.dev3}/src/prefect/_internal/ast_utils.py +0 -0
- {prefect_client-3.9.1.dev2 → prefect_client-3.9.1.dev3}/src/prefect/_internal/attempt_control.py +0 -0
- {prefect_client-3.9.1.dev2 → prefect_client-3.9.1.dev3}/src/prefect/_internal/buildx.py +0 -0
- {prefect_client-3.9.1.dev2 → prefect_client-3.9.1.dev3}/src/prefect/_internal/compatibility/__init__.py +0 -0
- {prefect_client-3.9.1.dev2 → prefect_client-3.9.1.dev3}/src/prefect/_internal/compatibility/async_dispatch.py +0 -0
- {prefect_client-3.9.1.dev2 → prefect_client-3.9.1.dev3}/src/prefect/_internal/compatibility/backports.py +0 -0
- {prefect_client-3.9.1.dev2 → prefect_client-3.9.1.dev3}/src/prefect/_internal/compatibility/blocks.py +0 -0
- {prefect_client-3.9.1.dev2 → prefect_client-3.9.1.dev3}/src/prefect/_internal/compatibility/deprecated.py +0 -0
- {prefect_client-3.9.1.dev2 → prefect_client-3.9.1.dev3}/src/prefect/_internal/compatibility/deprecated_paths.py +0 -0
- {prefect_client-3.9.1.dev2 → prefect_client-3.9.1.dev3}/src/prefect/_internal/compatibility/migration.py +0 -0
- {prefect_client-3.9.1.dev2 → prefect_client-3.9.1.dev3}/src/prefect/_internal/compatibility/starlette.py +0 -0
- {prefect_client-3.9.1.dev2 → prefect_client-3.9.1.dev3}/src/prefect/_internal/concurrency/__init__.py +0 -0
- {prefect_client-3.9.1.dev2 → prefect_client-3.9.1.dev3}/src/prefect/_internal/concurrency/api.py +0 -0
- {prefect_client-3.9.1.dev2 → prefect_client-3.9.1.dev3}/src/prefect/_internal/concurrency/calls.py +0 -0
- {prefect_client-3.9.1.dev2 → prefect_client-3.9.1.dev3}/src/prefect/_internal/concurrency/cancellation.py +0 -0
- {prefect_client-3.9.1.dev2 → prefect_client-3.9.1.dev3}/src/prefect/_internal/concurrency/event_loop.py +0 -0
- {prefect_client-3.9.1.dev2 → prefect_client-3.9.1.dev3}/src/prefect/_internal/concurrency/inspection.py +0 -0
- {prefect_client-3.9.1.dev2 → prefect_client-3.9.1.dev3}/src/prefect/_internal/concurrency/primitives.py +0 -0
- {prefect_client-3.9.1.dev2 → prefect_client-3.9.1.dev3}/src/prefect/_internal/concurrency/services.py +0 -0
- {prefect_client-3.9.1.dev2 → prefect_client-3.9.1.dev3}/src/prefect/_internal/concurrency/threads.py +0 -0
- {prefect_client-3.9.1.dev2 → prefect_client-3.9.1.dev3}/src/prefect/_internal/concurrency/waiters.py +0 -0
- {prefect_client-3.9.1.dev2 → prefect_client-3.9.1.dev3}/src/prefect/_internal/control_listener.py +0 -0
- {prefect_client-3.9.1.dev2 → prefect_client-3.9.1.dev3}/src/prefect/_internal/deprecated.py +0 -0
- {prefect_client-3.9.1.dev2 → prefect_client-3.9.1.dev3}/src/prefect/_internal/engine.py +0 -0
- {prefect_client-3.9.1.dev2 → prefect_client-3.9.1.dev3}/src/prefect/_internal/git.py +0 -0
- {prefect_client-3.9.1.dev2 → prefect_client-3.9.1.dev3}/src/prefect/_internal/infrastructure_exit_codes.py +0 -0
- {prefect_client-3.9.1.dev2 → prefect_client-3.9.1.dev3}/src/prefect/_internal/installation.py +0 -0
- {prefect_client-3.9.1.dev2 → prefect_client-3.9.1.dev3}/src/prefect/_internal/integrations.py +0 -0
- {prefect_client-3.9.1.dev2 → prefect_client-3.9.1.dev3}/src/prefect/_internal/launchers.py +0 -0
- {prefect_client-3.9.1.dev2 → prefect_client-3.9.1.dev3}/src/prefect/_internal/lazy.py +0 -0
- {prefect_client-3.9.1.dev2 → prefect_client-3.9.1.dev3}/src/prefect/_internal/metrics.py +0 -0
- {prefect_client-3.9.1.dev2 → prefect_client-3.9.1.dev3}/src/prefect/_internal/observability.py +0 -0
- {prefect_client-3.9.1.dev2 → prefect_client-3.9.1.dev3}/src/prefect/_internal/observers.py +0 -0
- {prefect_client-3.9.1.dev2 → prefect_client-3.9.1.dev3}/src/prefect/_internal/plugins/__init__.py +0 -0
- {prefect_client-3.9.1.dev2 → prefect_client-3.9.1.dev3}/src/prefect/_internal/plugins/apply.py +0 -0
- {prefect_client-3.9.1.dev2 → prefect_client-3.9.1.dev3}/src/prefect/_internal/plugins/collections.py +0 -0
- {prefect_client-3.9.1.dev2 → prefect_client-3.9.1.dev3}/src/prefect/_internal/plugins/diagnostics.py +0 -0
- {prefect_client-3.9.1.dev2 → prefect_client-3.9.1.dev3}/src/prefect/_internal/plugins/manager.py +0 -0
- {prefect_client-3.9.1.dev2 → prefect_client-3.9.1.dev3}/src/prefect/_internal/plugins/spec.py +0 -0
- {prefect_client-3.9.1.dev2 → prefect_client-3.9.1.dev3}/src/prefect/_internal/plugins/startup.py +0 -0
- {prefect_client-3.9.1.dev2 → prefect_client-3.9.1.dev3}/src/prefect/_internal/pydantic/__init__.py +0 -0
- {prefect_client-3.9.1.dev2 → prefect_client-3.9.1.dev3}/src/prefect/_internal/pydantic/schemas.py +0 -0
- {prefect_client-3.9.1.dev2 → prefect_client-3.9.1.dev3}/src/prefect/_internal/pydantic/v1_schema.py +0 -0
- {prefect_client-3.9.1.dev2 → prefect_client-3.9.1.dev3}/src/prefect/_internal/pydantic/v2_schema.py +0 -0
- {prefect_client-3.9.1.dev2 → prefect_client-3.9.1.dev3}/src/prefect/_internal/pydantic/validated_func.py +0 -0
- {prefect_client-3.9.1.dev2 → prefect_client-3.9.1.dev3}/src/prefect/_internal/pytz.py +0 -0
- {prefect_client-3.9.1.dev2 → prefect_client-3.9.1.dev3}/src/prefect/_internal/result_records.py +0 -0
- {prefect_client-3.9.1.dev2 → prefect_client-3.9.1.dev3}/src/prefect/_internal/retries.py +0 -0
- {prefect_client-3.9.1.dev2 → prefect_client-3.9.1.dev3}/src/prefect/_internal/schema.py +0 -0
- {prefect_client-3.9.1.dev2 → prefect_client-3.9.1.dev3}/src/prefect/_internal/schemas/__init__.py +0 -0
- {prefect_client-3.9.1.dev2 → prefect_client-3.9.1.dev3}/src/prefect/_internal/schemas/_registry.py +0 -0
- {prefect_client-3.9.1.dev2 → prefect_client-3.9.1.dev3}/src/prefect/_internal/schemas/bases.py +0 -0
- {prefect_client-3.9.1.dev2 → prefect_client-3.9.1.dev3}/src/prefect/_internal/schemas/fields.py +0 -0
- {prefect_client-3.9.1.dev2 → prefect_client-3.9.1.dev3}/src/prefect/_internal/schemas/serializers.py +0 -0
- {prefect_client-3.9.1.dev2 → prefect_client-3.9.1.dev3}/src/prefect/_internal/schemas/validators.py +0 -0
- {prefect_client-3.9.1.dev2 → prefect_client-3.9.1.dev3}/src/prefect/_internal/send_entrypoint_logs.py +0 -0
- {prefect_client-3.9.1.dev2 → prefect_client-3.9.1.dev3}/src/prefect/_internal/server_maintenance.py +0 -0
- {prefect_client-3.9.1.dev2 → prefect_client-3.9.1.dev3}/src/prefect/_internal/states.py +0 -0
- {prefect_client-3.9.1.dev2 → prefect_client-3.9.1.dev3}/src/prefect/_internal/testing.py +0 -0
- {prefect_client-3.9.1.dev2 → prefect_client-3.9.1.dev3}/src/prefect/_internal/urls.py +0 -0
- {prefect_client-3.9.1.dev2 → prefect_client-3.9.1.dev3}/src/prefect/_internal/uuid7.py +0 -0
- {prefect_client-3.9.1.dev2 → prefect_client-3.9.1.dev3}/src/prefect/_internal/version_checking.py +0 -0
- {prefect_client-3.9.1.dev2 → prefect_client-3.9.1.dev3}/src/prefect/_internal/versioning.py +0 -0
- {prefect_client-3.9.1.dev2 → prefect_client-3.9.1.dev3}/src/prefect/_internal/waiters.py +0 -0
- {prefect_client-3.9.1.dev2 → prefect_client-3.9.1.dev3}/src/prefect/_internal/websockets.py +0 -0
- {prefect_client-3.9.1.dev2 → prefect_client-3.9.1.dev3}/src/prefect/_sdk/__init__.py +0 -0
- {prefect_client-3.9.1.dev2 → prefect_client-3.9.1.dev3}/src/prefect/_sdk/fetcher.py +0 -0
- {prefect_client-3.9.1.dev2 → prefect_client-3.9.1.dev3}/src/prefect/_sdk/generator.py +0 -0
- {prefect_client-3.9.1.dev2 → prefect_client-3.9.1.dev3}/src/prefect/_sdk/models.py +0 -0
- {prefect_client-3.9.1.dev2 → prefect_client-3.9.1.dev3}/src/prefect/_sdk/naming.py +0 -0
- {prefect_client-3.9.1.dev2 → prefect_client-3.9.1.dev3}/src/prefect/_sdk/renderer.py +0 -0
- {prefect_client-3.9.1.dev2 → prefect_client-3.9.1.dev3}/src/prefect/_sdk/schema_converter.py +0 -0
- {prefect_client-3.9.1.dev2 → prefect_client-3.9.1.dev3}/src/prefect/_sdk/templates/__init__.py +0 -0
- {prefect_client-3.9.1.dev2 → prefect_client-3.9.1.dev3}/src/prefect/_sdk/templates/sdk.py.jinja +0 -0
- {prefect_client-3.9.1.dev2 → prefect_client-3.9.1.dev3}/src/prefect/_sdk/types.py +0 -0
- {prefect_client-3.9.1.dev2 → prefect_client-3.9.1.dev3}/src/prefect/_sdk/unions.py +0 -0
- {prefect_client-3.9.1.dev2 → prefect_client-3.9.1.dev3}/src/prefect/_vendor/croniter/__init__.py +0 -0
- {prefect_client-3.9.1.dev2 → prefect_client-3.9.1.dev3}/src/prefect/_vendor/croniter/croniter.py +0 -0
- {prefect_client-3.9.1.dev2 → prefect_client-3.9.1.dev3}/src/prefect/agent.py +0 -0
- {prefect_client-3.9.1.dev2 → prefect_client-3.9.1.dev3}/src/prefect/analytics/__init__.py +0 -0
- {prefect_client-3.9.1.dev2 → prefect_client-3.9.1.dev3}/src/prefect/artifacts.py +0 -0
- {prefect_client-3.9.1.dev2 → prefect_client-3.9.1.dev3}/src/prefect/assets/__init__.py +0 -0
- {prefect_client-3.9.1.dev2 → prefect_client-3.9.1.dev3}/src/prefect/assets/core.py +0 -0
- {prefect_client-3.9.1.dev2 → prefect_client-3.9.1.dev3}/src/prefect/assets/materialize.py +0 -0
- {prefect_client-3.9.1.dev2 → prefect_client-3.9.1.dev3}/src/prefect/automations.py +0 -0
- {prefect_client-3.9.1.dev2 → prefect_client-3.9.1.dev3}/src/prefect/blocks/AGENTS.md +0 -0
- {prefect_client-3.9.1.dev2 → prefect_client-3.9.1.dev3}/src/prefect/blocks/__init__.py +0 -0
- {prefect_client-3.9.1.dev2 → prefect_client-3.9.1.dev3}/src/prefect/blocks/abstract.py +0 -0
- {prefect_client-3.9.1.dev2 → prefect_client-3.9.1.dev3}/src/prefect/blocks/core.py +0 -0
- {prefect_client-3.9.1.dev2 → prefect_client-3.9.1.dev3}/src/prefect/blocks/fields.py +0 -0
- {prefect_client-3.9.1.dev2 → prefect_client-3.9.1.dev3}/src/prefect/blocks/redis.py +0 -0
- {prefect_client-3.9.1.dev2 → prefect_client-3.9.1.dev3}/src/prefect/blocks/system.py +0 -0
- {prefect_client-3.9.1.dev2 → prefect_client-3.9.1.dev3}/src/prefect/blocks/webhook.py +0 -0
- {prefect_client-3.9.1.dev2 → prefect_client-3.9.1.dev3}/src/prefect/bundles/__init__.py +0 -0
- {prefect_client-3.9.1.dev2 → prefect_client-3.9.1.dev3}/src/prefect/bundles/_file_collector.py +0 -0
- {prefect_client-3.9.1.dev2 → prefect_client-3.9.1.dev3}/src/prefect/bundles/_ignore_filter.py +0 -0
- {prefect_client-3.9.1.dev2 → prefect_client-3.9.1.dev3}/src/prefect/bundles/_path_resolver.py +0 -0
- {prefect_client-3.9.1.dev2 → prefect_client-3.9.1.dev3}/src/prefect/bundles/_zip_builder.py +0 -0
- {prefect_client-3.9.1.dev2 → prefect_client-3.9.1.dev3}/src/prefect/bundles/_zip_extractor.py +0 -0
- {prefect_client-3.9.1.dev2 → prefect_client-3.9.1.dev3}/src/prefect/bundles/execute.py +0 -0
- {prefect_client-3.9.1.dev2 → prefect_client-3.9.1.dev3}/src/prefect/cache_policies.py +0 -0
- {prefect_client-3.9.1.dev2 → prefect_client-3.9.1.dev3}/src/prefect/client/AGENTS.md +0 -0
- {prefect_client-3.9.1.dev2 → prefect_client-3.9.1.dev3}/src/prefect/client/__init__.py +0 -0
- {prefect_client-3.9.1.dev2 → prefect_client-3.9.1.dev3}/src/prefect/client/attribution.py +0 -0
- {prefect_client-3.9.1.dev2 → prefect_client-3.9.1.dev3}/src/prefect/client/base.py +0 -0
- {prefect_client-3.9.1.dev2 → prefect_client-3.9.1.dev3}/src/prefect/client/cloud.py +0 -0
- {prefect_client-3.9.1.dev2 → prefect_client-3.9.1.dev3}/src/prefect/client/collections.py +0 -0
- {prefect_client-3.9.1.dev2 → prefect_client-3.9.1.dev3}/src/prefect/client/constants.py +0 -0
- {prefect_client-3.9.1.dev2 → prefect_client-3.9.1.dev3}/src/prefect/client/orchestration/__init__.py +0 -0
- {prefect_client-3.9.1.dev2 → prefect_client-3.9.1.dev3}/src/prefect/client/orchestration/_artifacts/__init__.py +0 -0
- {prefect_client-3.9.1.dev2 → prefect_client-3.9.1.dev3}/src/prefect/client/orchestration/_artifacts/client.py +0 -0
- {prefect_client-3.9.1.dev2 → prefect_client-3.9.1.dev3}/src/prefect/client/orchestration/_automations/__init__.py +0 -0
- {prefect_client-3.9.1.dev2 → prefect_client-3.9.1.dev3}/src/prefect/client/orchestration/_automations/client.py +0 -0
- {prefect_client-3.9.1.dev2 → prefect_client-3.9.1.dev3}/src/prefect/client/orchestration/_blocks_documents/__init__.py +0 -0
- {prefect_client-3.9.1.dev2 → prefect_client-3.9.1.dev3}/src/prefect/client/orchestration/_blocks_documents/client.py +0 -0
- {prefect_client-3.9.1.dev2 → prefect_client-3.9.1.dev3}/src/prefect/client/orchestration/_blocks_schemas/__init__.py +0 -0
- {prefect_client-3.9.1.dev2 → prefect_client-3.9.1.dev3}/src/prefect/client/orchestration/_blocks_schemas/client.py +0 -0
- {prefect_client-3.9.1.dev2 → prefect_client-3.9.1.dev3}/src/prefect/client/orchestration/_blocks_types/__init__.py +0 -0
- {prefect_client-3.9.1.dev2 → prefect_client-3.9.1.dev3}/src/prefect/client/orchestration/_blocks_types/client.py +0 -0
- {prefect_client-3.9.1.dev2 → prefect_client-3.9.1.dev3}/src/prefect/client/orchestration/_concurrency_limits/__init__.py +0 -0
- {prefect_client-3.9.1.dev2 → prefect_client-3.9.1.dev3}/src/prefect/client/orchestration/_concurrency_limits/client.py +0 -0
- {prefect_client-3.9.1.dev2 → prefect_client-3.9.1.dev3}/src/prefect/client/orchestration/_deployments/__init__.py +0 -0
- {prefect_client-3.9.1.dev2 → prefect_client-3.9.1.dev3}/src/prefect/client/orchestration/_deployments/client.py +0 -0
- {prefect_client-3.9.1.dev2 → prefect_client-3.9.1.dev3}/src/prefect/client/orchestration/_events/__init__.py +0 -0
- {prefect_client-3.9.1.dev2 → prefect_client-3.9.1.dev3}/src/prefect/client/orchestration/_events/client.py +0 -0
- {prefect_client-3.9.1.dev2 → prefect_client-3.9.1.dev3}/src/prefect/client/orchestration/_flow_runs/__init__.py +0 -0
- {prefect_client-3.9.1.dev2 → prefect_client-3.9.1.dev3}/src/prefect/client/orchestration/_flow_runs/client.py +0 -0
- {prefect_client-3.9.1.dev2 → prefect_client-3.9.1.dev3}/src/prefect/client/orchestration/_flows/__init__.py +0 -0
- {prefect_client-3.9.1.dev2 → prefect_client-3.9.1.dev3}/src/prefect/client/orchestration/_flows/client.py +0 -0
- {prefect_client-3.9.1.dev2 → prefect_client-3.9.1.dev3}/src/prefect/client/orchestration/_logs/__init__.py +0 -0
- {prefect_client-3.9.1.dev2 → prefect_client-3.9.1.dev3}/src/prefect/client/orchestration/_logs/client.py +0 -0
- {prefect_client-3.9.1.dev2 → prefect_client-3.9.1.dev3}/src/prefect/client/orchestration/_variables/__init__.py +0 -0
- {prefect_client-3.9.1.dev2 → prefect_client-3.9.1.dev3}/src/prefect/client/orchestration/_variables/client.py +0 -0
- {prefect_client-3.9.1.dev2 → prefect_client-3.9.1.dev3}/src/prefect/client/orchestration/_work_pools/__init__.py +0 -0
- {prefect_client-3.9.1.dev2 → prefect_client-3.9.1.dev3}/src/prefect/client/orchestration/_work_pools/client.py +0 -0
- {prefect_client-3.9.1.dev2 → prefect_client-3.9.1.dev3}/src/prefect/client/orchestration/base.py +0 -0
- {prefect_client-3.9.1.dev2 → prefect_client-3.9.1.dev3}/src/prefect/client/orchestration/routes.py +0 -0
- {prefect_client-3.9.1.dev2 → prefect_client-3.9.1.dev3}/src/prefect/client/schemas/__init__.py +0 -0
- {prefect_client-3.9.1.dev2 → prefect_client-3.9.1.dev3}/src/prefect/client/schemas/actions.py +0 -0
- {prefect_client-3.9.1.dev2 → prefect_client-3.9.1.dev3}/src/prefect/client/schemas/events.py +0 -0
- {prefect_client-3.9.1.dev2 → prefect_client-3.9.1.dev3}/src/prefect/client/schemas/filters.py +0 -0
- {prefect_client-3.9.1.dev2 → prefect_client-3.9.1.dev3}/src/prefect/client/schemas/objects.py +0 -0
- {prefect_client-3.9.1.dev2 → prefect_client-3.9.1.dev3}/src/prefect/client/schemas/responses.py +0 -0
- {prefect_client-3.9.1.dev2 → prefect_client-3.9.1.dev3}/src/prefect/client/schemas/schedules.py +0 -0
- {prefect_client-3.9.1.dev2 → prefect_client-3.9.1.dev3}/src/prefect/client/schemas/sorting.py +0 -0
- {prefect_client-3.9.1.dev2 → prefect_client-3.9.1.dev3}/src/prefect/client/schemas/worker_channel.py +0 -0
- {prefect_client-3.9.1.dev2 → prefect_client-3.9.1.dev3}/src/prefect/client/subscriptions.py +0 -0
- {prefect_client-3.9.1.dev2 → prefect_client-3.9.1.dev3}/src/prefect/client/types/__init__.py +0 -0
- {prefect_client-3.9.1.dev2 → prefect_client-3.9.1.dev3}/src/prefect/client/types/flexible_schedule_list.py +0 -0
- {prefect_client-3.9.1.dev2 → prefect_client-3.9.1.dev3}/src/prefect/client/utilities.py +0 -0
- {prefect_client-3.9.1.dev2 → prefect_client-3.9.1.dev3}/src/prefect/concurrency/AGENTS.md +0 -0
- {prefect_client-3.9.1.dev2 → prefect_client-3.9.1.dev3}/src/prefect/concurrency/__init__.py +0 -0
- {prefect_client-3.9.1.dev2 → prefect_client-3.9.1.dev3}/src/prefect/concurrency/_asyncio.py +0 -0
- {prefect_client-3.9.1.dev2 → prefect_client-3.9.1.dev3}/src/prefect/concurrency/_events.py +0 -0
- {prefect_client-3.9.1.dev2 → prefect_client-3.9.1.dev3}/src/prefect/concurrency/_leases.py +0 -0
- {prefect_client-3.9.1.dev2 → prefect_client-3.9.1.dev3}/src/prefect/concurrency/_sync.py +0 -0
- {prefect_client-3.9.1.dev2 → prefect_client-3.9.1.dev3}/src/prefect/concurrency/asyncio.py +0 -0
- {prefect_client-3.9.1.dev2 → prefect_client-3.9.1.dev3}/src/prefect/concurrency/context.py +0 -0
- {prefect_client-3.9.1.dev2 → prefect_client-3.9.1.dev3}/src/prefect/concurrency/services.py +0 -0
- {prefect_client-3.9.1.dev2 → prefect_client-3.9.1.dev3}/src/prefect/concurrency/sync.py +0 -0
- {prefect_client-3.9.1.dev2 → prefect_client-3.9.1.dev3}/src/prefect/concurrency/v1/__init__.py +0 -0
- {prefect_client-3.9.1.dev2 → prefect_client-3.9.1.dev3}/src/prefect/concurrency/v1/_asyncio.py +0 -0
- {prefect_client-3.9.1.dev2 → prefect_client-3.9.1.dev3}/src/prefect/concurrency/v1/_events.py +0 -0
- {prefect_client-3.9.1.dev2 → prefect_client-3.9.1.dev3}/src/prefect/concurrency/v1/asyncio.py +0 -0
- {prefect_client-3.9.1.dev2 → prefect_client-3.9.1.dev3}/src/prefect/concurrency/v1/context.py +0 -0
- {prefect_client-3.9.1.dev2 → prefect_client-3.9.1.dev3}/src/prefect/concurrency/v1/services.py +0 -0
- {prefect_client-3.9.1.dev2 → prefect_client-3.9.1.dev3}/src/prefect/concurrency/v1/sync.py +0 -0
- {prefect_client-3.9.1.dev2 → prefect_client-3.9.1.dev3}/src/prefect/context.py +0 -0
- {prefect_client-3.9.1.dev2 → prefect_client-3.9.1.dev3}/src/prefect/deployments/AGENTS.md +0 -0
- {prefect_client-3.9.1.dev2 → prefect_client-3.9.1.dev3}/src/prefect/deployments/__init__.py +0 -0
- {prefect_client-3.9.1.dev2 → prefect_client-3.9.1.dev3}/src/prefect/deployments/base.py +0 -0
- {prefect_client-3.9.1.dev2 → prefect_client-3.9.1.dev3}/src/prefect/deployments/deployments.py +0 -0
- {prefect_client-3.9.1.dev2 → prefect_client-3.9.1.dev3}/src/prefect/deployments/flow_runs.py +0 -0
- {prefect_client-3.9.1.dev2 → prefect_client-3.9.1.dev3}/src/prefect/deployments/runner.py +0 -0
- {prefect_client-3.9.1.dev2 → prefect_client-3.9.1.dev3}/src/prefect/deployments/schedules.py +0 -0
- {prefect_client-3.9.1.dev2 → prefect_client-3.9.1.dev3}/src/prefect/deployments/steps/__init__.py +0 -0
- {prefect_client-3.9.1.dev2 → prefect_client-3.9.1.dev3}/src/prefect/deployments/steps/core.py +0 -0
- {prefect_client-3.9.1.dev2 → prefect_client-3.9.1.dev3}/src/prefect/deployments/steps/pull.py +0 -0
- {prefect_client-3.9.1.dev2 → prefect_client-3.9.1.dev3}/src/prefect/deployments/steps/utility.py +0 -0
- {prefect_client-3.9.1.dev2 → prefect_client-3.9.1.dev3}/src/prefect/docker/__init__.py +0 -0
- {prefect_client-3.9.1.dev2 → prefect_client-3.9.1.dev3}/src/prefect/docker/_buildx.py +0 -0
- {prefect_client-3.9.1.dev2 → prefect_client-3.9.1.dev3}/src/prefect/docker/docker_image.py +0 -0
- {prefect_client-3.9.1.dev2 → prefect_client-3.9.1.dev3}/src/prefect/engine.py +0 -0
- {prefect_client-3.9.1.dev2 → prefect_client-3.9.1.dev3}/src/prefect/events/AGENTS.md +0 -0
- {prefect_client-3.9.1.dev2 → prefect_client-3.9.1.dev3}/src/prefect/events/__init__.py +0 -0
- {prefect_client-3.9.1.dev2 → prefect_client-3.9.1.dev3}/src/prefect/events/actions.py +0 -0
- {prefect_client-3.9.1.dev2 → prefect_client-3.9.1.dev3}/src/prefect/events/clients.py +0 -0
- {prefect_client-3.9.1.dev2 → prefect_client-3.9.1.dev3}/src/prefect/events/filters.py +0 -0
- {prefect_client-3.9.1.dev2 → prefect_client-3.9.1.dev3}/src/prefect/events/related.py +0 -0
- {prefect_client-3.9.1.dev2 → prefect_client-3.9.1.dev3}/src/prefect/events/schemas/__init__.py +0 -0
- {prefect_client-3.9.1.dev2 → prefect_client-3.9.1.dev3}/src/prefect/events/schemas/automations.py +0 -0
- {prefect_client-3.9.1.dev2 → prefect_client-3.9.1.dev3}/src/prefect/events/schemas/deployment_triggers.py +0 -0
- {prefect_client-3.9.1.dev2 → prefect_client-3.9.1.dev3}/src/prefect/events/schemas/events.py +0 -0
- {prefect_client-3.9.1.dev2 → prefect_client-3.9.1.dev3}/src/prefect/events/schemas/labelling.py +0 -0
- {prefect_client-3.9.1.dev2 → prefect_client-3.9.1.dev3}/src/prefect/events/subscribers.py +0 -0
- {prefect_client-3.9.1.dev2 → prefect_client-3.9.1.dev3}/src/prefect/events/utilities.py +0 -0
- {prefect_client-3.9.1.dev2 → prefect_client-3.9.1.dev3}/src/prefect/events/worker.py +0 -0
- {prefect_client-3.9.1.dev2 → prefect_client-3.9.1.dev3}/src/prefect/exceptions.py +0 -0
- {prefect_client-3.9.1.dev2 → prefect_client-3.9.1.dev3}/src/prefect/filesystems.py +0 -0
- {prefect_client-3.9.1.dev2 → prefect_client-3.9.1.dev3}/src/prefect/flow_runs.py +0 -0
- {prefect_client-3.9.1.dev2 → prefect_client-3.9.1.dev3}/src/prefect/flows.py +0 -0
- {prefect_client-3.9.1.dev2 → prefect_client-3.9.1.dev3}/src/prefect/futures.py +0 -0
- {prefect_client-3.9.1.dev2 → prefect_client-3.9.1.dev3}/src/prefect/infrastructure/__init__.py +0 -0
- {prefect_client-3.9.1.dev2 → prefect_client-3.9.1.dev3}/src/prefect/infrastructure/base.py +0 -0
- {prefect_client-3.9.1.dev2 → prefect_client-3.9.1.dev3}/src/prefect/infrastructure/provisioners/__init__.py +0 -0
- {prefect_client-3.9.1.dev2 → prefect_client-3.9.1.dev3}/src/prefect/infrastructure/provisioners/cloud_run.py +0 -0
- {prefect_client-3.9.1.dev2 → prefect_client-3.9.1.dev3}/src/prefect/infrastructure/provisioners/coiled.py +0 -0
- {prefect_client-3.9.1.dev2 → prefect_client-3.9.1.dev3}/src/prefect/infrastructure/provisioners/container_instance.py +0 -0
- {prefect_client-3.9.1.dev2 → prefect_client-3.9.1.dev3}/src/prefect/infrastructure/provisioners/ecs.py +0 -0
- {prefect_client-3.9.1.dev2 → prefect_client-3.9.1.dev3}/src/prefect/infrastructure/provisioners/modal.py +0 -0
- {prefect_client-3.9.1.dev2 → prefect_client-3.9.1.dev3}/src/prefect/input/__init__.py +0 -0
- {prefect_client-3.9.1.dev2 → prefect_client-3.9.1.dev3}/src/prefect/input/actions.py +0 -0
- {prefect_client-3.9.1.dev2 → prefect_client-3.9.1.dev3}/src/prefect/input/run_input.py +0 -0
- {prefect_client-3.9.1.dev2 → prefect_client-3.9.1.dev3}/src/prefect/locking/__init__.py +0 -0
- {prefect_client-3.9.1.dev2 → prefect_client-3.9.1.dev3}/src/prefect/locking/_filelock.py +0 -0
- {prefect_client-3.9.1.dev2 → prefect_client-3.9.1.dev3}/src/prefect/locking/filesystem.py +0 -0
- {prefect_client-3.9.1.dev2 → prefect_client-3.9.1.dev3}/src/prefect/locking/memory.py +0 -0
- {prefect_client-3.9.1.dev2 → prefect_client-3.9.1.dev3}/src/prefect/locking/protocol.py +0 -0
- {prefect_client-3.9.1.dev2 → prefect_client-3.9.1.dev3}/src/prefect/logging/AGENTS.md +0 -0
- {prefect_client-3.9.1.dev2 → prefect_client-3.9.1.dev3}/src/prefect/logging/__init__.py +0 -0
- {prefect_client-3.9.1.dev2 → prefect_client-3.9.1.dev3}/src/prefect/logging/clients.py +0 -0
- {prefect_client-3.9.1.dev2 → prefect_client-3.9.1.dev3}/src/prefect/logging/configuration.py +0 -0
- {prefect_client-3.9.1.dev2 → prefect_client-3.9.1.dev3}/src/prefect/logging/filters.py +0 -0
- {prefect_client-3.9.1.dev2 → prefect_client-3.9.1.dev3}/src/prefect/logging/formatters.py +0 -0
- {prefect_client-3.9.1.dev2 → prefect_client-3.9.1.dev3}/src/prefect/logging/handlers.py +0 -0
- {prefect_client-3.9.1.dev2 → prefect_client-3.9.1.dev3}/src/prefect/logging/highlighters.py +0 -0
- {prefect_client-3.9.1.dev2 → prefect_client-3.9.1.dev3}/src/prefect/logging/loggers.py +0 -0
- {prefect_client-3.9.1.dev2 → prefect_client-3.9.1.dev3}/src/prefect/logging/logging.yml +0 -0
- {prefect_client-3.9.1.dev2 → prefect_client-3.9.1.dev3}/src/prefect/main.py +0 -0
- {prefect_client-3.9.1.dev2 → prefect_client-3.9.1.dev3}/src/prefect/plugins.py +0 -0
- {prefect_client-3.9.1.dev2 → prefect_client-3.9.1.dev3}/src/prefect/py.typed +0 -0
- {prefect_client-3.9.1.dev2 → prefect_client-3.9.1.dev3}/src/prefect/results.py +0 -0
- {prefect_client-3.9.1.dev2 → prefect_client-3.9.1.dev3}/src/prefect/runner/AGENTS.md +0 -0
- {prefect_client-3.9.1.dev2 → prefect_client-3.9.1.dev3}/src/prefect/runner/__init__.py +0 -0
- {prefect_client-3.9.1.dev2 → prefect_client-3.9.1.dev3}/src/prefect/runner/_cancel_finalizer.py +0 -0
- {prefect_client-3.9.1.dev2 → prefect_client-3.9.1.dev3}/src/prefect/runner/_cancellation_manager.py +0 -0
- {prefect_client-3.9.1.dev2 → prefect_client-3.9.1.dev3}/src/prefect/runner/_control_channel.py +0 -0
- {prefect_client-3.9.1.dev2 → prefect_client-3.9.1.dev3}/src/prefect/runner/_deployment_registry.py +0 -0
- {prefect_client-3.9.1.dev2 → prefect_client-3.9.1.dev3}/src/prefect/runner/_event_emitter.py +0 -0
- {prefect_client-3.9.1.dev2 → prefect_client-3.9.1.dev3}/src/prefect/runner/_flow_resolver.py +0 -0
- {prefect_client-3.9.1.dev2 → prefect_client-3.9.1.dev3}/src/prefect/runner/_flow_run_executor.py +0 -0
- {prefect_client-3.9.1.dev2 → prefect_client-3.9.1.dev3}/src/prefect/runner/_hook_runner.py +0 -0
- {prefect_client-3.9.1.dev2 → prefect_client-3.9.1.dev3}/src/prefect/runner/_limit_manager.py +0 -0
- {prefect_client-3.9.1.dev2 → prefect_client-3.9.1.dev3}/src/prefect/runner/_process_manager.py +0 -0
- {prefect_client-3.9.1.dev2 → prefect_client-3.9.1.dev3}/src/prefect/runner/_scheduled_run_poller.py +0 -0
- {prefect_client-3.9.1.dev2 → prefect_client-3.9.1.dev3}/src/prefect/runner/_starter_bundle.py +0 -0
- {prefect_client-3.9.1.dev2 → prefect_client-3.9.1.dev3}/src/prefect/runner/_starter_direct.py +0 -0
- {prefect_client-3.9.1.dev2 → prefect_client-3.9.1.dev3}/src/prefect/runner/_starter_engine.py +0 -0
- {prefect_client-3.9.1.dev2 → prefect_client-3.9.1.dev3}/src/prefect/runner/_state_proposer.py +0 -0
- {prefect_client-3.9.1.dev2 → prefect_client-3.9.1.dev3}/src/prefect/runner/_uv_command.py +0 -0
- {prefect_client-3.9.1.dev2 → prefect_client-3.9.1.dev3}/src/prefect/runner/_workspace_hook_runner.py +0 -0
- {prefect_client-3.9.1.dev2 → prefect_client-3.9.1.dev3}/src/prefect/runner/_workspace_resolver.py +0 -0
- {prefect_client-3.9.1.dev2 → prefect_client-3.9.1.dev3}/src/prefect/runner/_workspace_runtime.py +0 -0
- {prefect_client-3.9.1.dev2 → prefect_client-3.9.1.dev3}/src/prefect/runner/_workspace_runtime_bootstrap.py +0 -0
- {prefect_client-3.9.1.dev2 → prefect_client-3.9.1.dev3}/src/prefect/runner/_workspace_starter.py +0 -0
- {prefect_client-3.9.1.dev2 → prefect_client-3.9.1.dev3}/src/prefect/runner/_workspace_supervisor.py +0 -0
- {prefect_client-3.9.1.dev2 → prefect_client-3.9.1.dev3}/src/prefect/runner/runner.py +0 -0
- {prefect_client-3.9.1.dev2 → prefect_client-3.9.1.dev3}/src/prefect/runner/server.py +0 -0
- {prefect_client-3.9.1.dev2 → prefect_client-3.9.1.dev3}/src/prefect/runner/storage.py +0 -0
- {prefect_client-3.9.1.dev2 → prefect_client-3.9.1.dev3}/src/prefect/runtime/__init__.py +0 -0
- {prefect_client-3.9.1.dev2 → prefect_client-3.9.1.dev3}/src/prefect/runtime/deployment.py +0 -0
- {prefect_client-3.9.1.dev2 → prefect_client-3.9.1.dev3}/src/prefect/runtime/flow_run.py +0 -0
- {prefect_client-3.9.1.dev2 → prefect_client-3.9.1.dev3}/src/prefect/runtime/task_run.py +0 -0
- {prefect_client-3.9.1.dev2 → prefect_client-3.9.1.dev3}/src/prefect/schedules.py +0 -0
- {prefect_client-3.9.1.dev2 → prefect_client-3.9.1.dev3}/src/prefect/serializers.py +0 -0
- {prefect_client-3.9.1.dev2 → prefect_client-3.9.1.dev3}/src/prefect/server/api/_ui_static.py +0 -0
- {prefect_client-3.9.1.dev2 → prefect_client-3.9.1.dev3}/src/prefect/server/api/admin.py +0 -0
- {prefect_client-3.9.1.dev2 → prefect_client-3.9.1.dev3}/src/prefect/server/api/artifacts.py +0 -0
- {prefect_client-3.9.1.dev2 → prefect_client-3.9.1.dev3}/src/prefect/server/api/automations.py +0 -0
- {prefect_client-3.9.1.dev2 → prefect_client-3.9.1.dev3}/src/prefect/server/api/background_workers.py +0 -0
- {prefect_client-3.9.1.dev2 → prefect_client-3.9.1.dev3}/src/prefect/server/api/block_capabilities.py +0 -0
- {prefect_client-3.9.1.dev2 → prefect_client-3.9.1.dev3}/src/prefect/server/api/block_documents.py +0 -0
- {prefect_client-3.9.1.dev2 → prefect_client-3.9.1.dev3}/src/prefect/server/api/block_schemas.py +0 -0
- {prefect_client-3.9.1.dev2 → prefect_client-3.9.1.dev3}/src/prefect/server/api/block_types.py +0 -0
- {prefect_client-3.9.1.dev2 → prefect_client-3.9.1.dev3}/src/prefect/server/api/clients.py +0 -0
- {prefect_client-3.9.1.dev2 → prefect_client-3.9.1.dev3}/src/prefect/server/api/collections.py +0 -0
- {prefect_client-3.9.1.dev2 → prefect_client-3.9.1.dev3}/src/prefect/server/api/collections_data/views/aggregate-worker-metadata.json +0 -0
- {prefect_client-3.9.1.dev2 → prefect_client-3.9.1.dev3}/src/prefect/server/api/concurrency_limits.py +0 -0
- {prefect_client-3.9.1.dev2 → prefect_client-3.9.1.dev3}/src/prefect/server/api/concurrency_limits_v2.py +0 -0
- {prefect_client-3.9.1.dev2 → prefect_client-3.9.1.dev3}/src/prefect/server/api/csrf_token.py +0 -0
- {prefect_client-3.9.1.dev2 → prefect_client-3.9.1.dev3}/src/prefect/server/api/dependencies.py +0 -0
- {prefect_client-3.9.1.dev2 → prefect_client-3.9.1.dev3}/src/prefect/server/api/deployments.py +0 -0
- {prefect_client-3.9.1.dev2 → prefect_client-3.9.1.dev3}/src/prefect/server/api/events.py +0 -0
- {prefect_client-3.9.1.dev2 → prefect_client-3.9.1.dev3}/src/prefect/server/api/flow_run_states.py +0 -0
- {prefect_client-3.9.1.dev2 → prefect_client-3.9.1.dev3}/src/prefect/server/api/flow_runs.py +0 -0
- {prefect_client-3.9.1.dev2 → prefect_client-3.9.1.dev3}/src/prefect/server/api/flows.py +0 -0
- {prefect_client-3.9.1.dev2 → prefect_client-3.9.1.dev3}/src/prefect/server/api/logs.py +0 -0
- {prefect_client-3.9.1.dev2 → prefect_client-3.9.1.dev3}/src/prefect/server/api/middleware.py +0 -0
- {prefect_client-3.9.1.dev2 → prefect_client-3.9.1.dev3}/src/prefect/server/api/root.py +0 -0
- {prefect_client-3.9.1.dev2 → prefect_client-3.9.1.dev3}/src/prefect/server/api/run_history.py +0 -0
- {prefect_client-3.9.1.dev2 → prefect_client-3.9.1.dev3}/src/prefect/server/api/saved_searches.py +0 -0
- {prefect_client-3.9.1.dev2 → prefect_client-3.9.1.dev3}/src/prefect/server/api/static/prefect-logo-mark-gradient.png +0 -0
- {prefect_client-3.9.1.dev2 → prefect_client-3.9.1.dev3}/src/prefect/server/api/task_run_states.py +0 -0
- {prefect_client-3.9.1.dev2 → prefect_client-3.9.1.dev3}/src/prefect/server/api/task_runs.py +0 -0
- {prefect_client-3.9.1.dev2 → prefect_client-3.9.1.dev3}/src/prefect/server/api/task_workers.py +0 -0
- {prefect_client-3.9.1.dev2 → prefect_client-3.9.1.dev3}/src/prefect/server/api/templates.py +0 -0
- {prefect_client-3.9.1.dev2 → prefect_client-3.9.1.dev3}/src/prefect/server/api/ui/__init__.py +0 -0
- {prefect_client-3.9.1.dev2 → prefect_client-3.9.1.dev3}/src/prefect/server/api/ui/flow_runs.py +0 -0
- {prefect_client-3.9.1.dev2 → prefect_client-3.9.1.dev3}/src/prefect/server/api/ui/flows.py +0 -0
- {prefect_client-3.9.1.dev2 → prefect_client-3.9.1.dev3}/src/prefect/server/api/ui/schemas.py +0 -0
- {prefect_client-3.9.1.dev2 → prefect_client-3.9.1.dev3}/src/prefect/server/api/ui/task_runs.py +0 -0
- {prefect_client-3.9.1.dev2 → prefect_client-3.9.1.dev3}/src/prefect/server/api/validation.py +0 -0
- {prefect_client-3.9.1.dev2 → prefect_client-3.9.1.dev3}/src/prefect/server/api/variables.py +0 -0
- {prefect_client-3.9.1.dev2 → prefect_client-3.9.1.dev3}/src/prefect/server/api/work_queues.py +0 -0
- {prefect_client-3.9.1.dev2 → prefect_client-3.9.1.dev3}/src/prefect/server/api/workers.py +0 -0
- {prefect_client-3.9.1.dev2 → prefect_client-3.9.1.dev3}/src/prefect/settings/AGENTS.md +0 -0
- {prefect_client-3.9.1.dev2 → prefect_client-3.9.1.dev3}/src/prefect/settings/__init__.py +0 -0
- {prefect_client-3.9.1.dev2 → prefect_client-3.9.1.dev3}/src/prefect/settings/_types.py +0 -0
- {prefect_client-3.9.1.dev2 → prefect_client-3.9.1.dev3}/src/prefect/settings/base.py +0 -0
- {prefect_client-3.9.1.dev2 → prefect_client-3.9.1.dev3}/src/prefect/settings/constants.py +0 -0
- {prefect_client-3.9.1.dev2 → prefect_client-3.9.1.dev3}/src/prefect/settings/context.py +0 -0
- {prefect_client-3.9.1.dev2 → prefect_client-3.9.1.dev3}/src/prefect/settings/legacy.py +0 -0
- {prefect_client-3.9.1.dev2 → prefect_client-3.9.1.dev3}/src/prefect/settings/models/__init__.py +0 -0
- {prefect_client-3.9.1.dev2 → prefect_client-3.9.1.dev3}/src/prefect/settings/models/_defaults.py +0 -0
- {prefect_client-3.9.1.dev2 → prefect_client-3.9.1.dev3}/src/prefect/settings/models/api.py +0 -0
- {prefect_client-3.9.1.dev2 → prefect_client-3.9.1.dev3}/src/prefect/settings/models/cli.py +0 -0
- {prefect_client-3.9.1.dev2 → prefect_client-3.9.1.dev3}/src/prefect/settings/models/client.py +0 -0
- {prefect_client-3.9.1.dev2 → prefect_client-3.9.1.dev3}/src/prefect/settings/models/cloud.py +0 -0
- {prefect_client-3.9.1.dev2 → prefect_client-3.9.1.dev3}/src/prefect/settings/models/deployments.py +0 -0
- {prefect_client-3.9.1.dev2 → prefect_client-3.9.1.dev3}/src/prefect/settings/models/events.py +0 -0
- {prefect_client-3.9.1.dev2 → prefect_client-3.9.1.dev3}/src/prefect/settings/models/experiments.py +0 -0
- {prefect_client-3.9.1.dev2 → prefect_client-3.9.1.dev3}/src/prefect/settings/models/flows.py +0 -0
- {prefect_client-3.9.1.dev2 → prefect_client-3.9.1.dev3}/src/prefect/settings/models/internal.py +0 -0
- {prefect_client-3.9.1.dev2 → prefect_client-3.9.1.dev3}/src/prefect/settings/models/logging.py +0 -0
- {prefect_client-3.9.1.dev2 → prefect_client-3.9.1.dev3}/src/prefect/settings/models/plugins.py +0 -0
- {prefect_client-3.9.1.dev2 → prefect_client-3.9.1.dev3}/src/prefect/settings/models/results.py +0 -0
- {prefect_client-3.9.1.dev2 → prefect_client-3.9.1.dev3}/src/prefect/settings/models/root.py +0 -0
- {prefect_client-3.9.1.dev2 → prefect_client-3.9.1.dev3}/src/prefect/settings/models/runner.py +0 -0
- {prefect_client-3.9.1.dev2 → prefect_client-3.9.1.dev3}/src/prefect/settings/models/server/__init__.py +0 -0
- {prefect_client-3.9.1.dev2 → prefect_client-3.9.1.dev3}/src/prefect/settings/models/server/api.py +0 -0
- {prefect_client-3.9.1.dev2 → prefect_client-3.9.1.dev3}/src/prefect/settings/models/server/concurrency.py +0 -0
- {prefect_client-3.9.1.dev2 → prefect_client-3.9.1.dev3}/src/prefect/settings/models/server/database.py +0 -0
- {prefect_client-3.9.1.dev2 → prefect_client-3.9.1.dev3}/src/prefect/settings/models/server/deployments.py +0 -0
- {prefect_client-3.9.1.dev2 → prefect_client-3.9.1.dev3}/src/prefect/settings/models/server/docket.py +0 -0
- {prefect_client-3.9.1.dev2 → prefect_client-3.9.1.dev3}/src/prefect/settings/models/server/ephemeral.py +0 -0
- {prefect_client-3.9.1.dev2 → prefect_client-3.9.1.dev3}/src/prefect/settings/models/server/events.py +0 -0
- {prefect_client-3.9.1.dev2 → prefect_client-3.9.1.dev3}/src/prefect/settings/models/server/flow_run_graph.py +0 -0
- {prefect_client-3.9.1.dev2 → prefect_client-3.9.1.dev3}/src/prefect/settings/models/server/logs.py +0 -0
- {prefect_client-3.9.1.dev2 → prefect_client-3.9.1.dev3}/src/prefect/settings/models/server/root.py +0 -0
- {prefect_client-3.9.1.dev2 → prefect_client-3.9.1.dev3}/src/prefect/settings/models/server/services.py +0 -0
- {prefect_client-3.9.1.dev2 → prefect_client-3.9.1.dev3}/src/prefect/settings/models/server/tasks.py +0 -0
- {prefect_client-3.9.1.dev2 → prefect_client-3.9.1.dev3}/src/prefect/settings/models/server/ui.py +0 -0
- {prefect_client-3.9.1.dev2 → prefect_client-3.9.1.dev3}/src/prefect/settings/models/server/worker_channel.py +0 -0
- {prefect_client-3.9.1.dev2 → prefect_client-3.9.1.dev3}/src/prefect/settings/models/tasks.py +0 -0
- {prefect_client-3.9.1.dev2 → prefect_client-3.9.1.dev3}/src/prefect/settings/models/telemetry.py +0 -0
- {prefect_client-3.9.1.dev2 → prefect_client-3.9.1.dev3}/src/prefect/settings/models/testing.py +0 -0
- {prefect_client-3.9.1.dev2 → prefect_client-3.9.1.dev3}/src/prefect/settings/models/worker.py +0 -0
- {prefect_client-3.9.1.dev2 → prefect_client-3.9.1.dev3}/src/prefect/settings/profiles.py +0 -0
- {prefect_client-3.9.1.dev2 → prefect_client-3.9.1.dev3}/src/prefect/settings/profiles.toml +0 -0
- {prefect_client-3.9.1.dev2 → prefect_client-3.9.1.dev3}/src/prefect/settings/sources.py +0 -0
- {prefect_client-3.9.1.dev2 → prefect_client-3.9.1.dev3}/src/prefect/states.py +0 -0
- {prefect_client-3.9.1.dev2 → prefect_client-3.9.1.dev3}/src/prefect/task_engine.py +0 -0
- {prefect_client-3.9.1.dev2 → prefect_client-3.9.1.dev3}/src/prefect/task_runners.py +0 -0
- {prefect_client-3.9.1.dev2 → prefect_client-3.9.1.dev3}/src/prefect/task_runs.py +0 -0
- {prefect_client-3.9.1.dev2 → prefect_client-3.9.1.dev3}/src/prefect/task_worker.py +0 -0
- {prefect_client-3.9.1.dev2 → prefect_client-3.9.1.dev3}/src/prefect/tasks.py +0 -0
- {prefect_client-3.9.1.dev2 → prefect_client-3.9.1.dev3}/src/prefect/telemetry/__init__.py +0 -0
- {prefect_client-3.9.1.dev2 → prefect_client-3.9.1.dev3}/src/prefect/telemetry/run_telemetry.py +0 -0
- {prefect_client-3.9.1.dev2 → prefect_client-3.9.1.dev3}/src/prefect/transactions.py +0 -0
- {prefect_client-3.9.1.dev2 → prefect_client-3.9.1.dev3}/src/prefect/types/__init__.py +0 -0
- {prefect_client-3.9.1.dev2 → prefect_client-3.9.1.dev3}/src/prefect/types/_concurrency.py +0 -0
- {prefect_client-3.9.1.dev2 → prefect_client-3.9.1.dev3}/src/prefect/types/_datetime_deprecations.py +0 -0
- {prefect_client-3.9.1.dev2 → prefect_client-3.9.1.dev3}/src/prefect/types/entrypoint.py +0 -0
- {prefect_client-3.9.1.dev2 → prefect_client-3.9.1.dev3}/src/prefect/types/names.py +0 -0
- {prefect_client-3.9.1.dev2 → prefect_client-3.9.1.dev3}/src/prefect/utilities/AGENTS.md +0 -0
- {prefect_client-3.9.1.dev2 → prefect_client-3.9.1.dev3}/src/prefect/utilities/__init__.py +0 -0
- {prefect_client-3.9.1.dev2 → prefect_client-3.9.1.dev3}/src/prefect/utilities/annotations.py +0 -0
- {prefect_client-3.9.1.dev2 → prefect_client-3.9.1.dev3}/src/prefect/utilities/asyncutils/AGENTS.md +0 -0
- {prefect_client-3.9.1.dev2 → prefect_client-3.9.1.dev3}/src/prefect/utilities/asyncutils/__init__.py +0 -0
- {prefect_client-3.9.1.dev2 → prefect_client-3.9.1.dev3}/src/prefect/utilities/callables/AGENTS.md +0 -0
- {prefect_client-3.9.1.dev2 → prefect_client-3.9.1.dev3}/src/prefect/utilities/callables/__init__.py +0 -0
- {prefect_client-3.9.1.dev2 → prefect_client-3.9.1.dev3}/src/prefect/utilities/compat.py +0 -0
- {prefect_client-3.9.1.dev2 → prefect_client-3.9.1.dev3}/src/prefect/utilities/context.py +0 -0
- {prefect_client-3.9.1.dev2 → prefect_client-3.9.1.dev3}/src/prefect/utilities/dispatch.py +0 -0
- {prefect_client-3.9.1.dev2 → prefect_client-3.9.1.dev3}/src/prefect/utilities/dockerutils.py +0 -0
- {prefect_client-3.9.1.dev2 → prefect_client-3.9.1.dev3}/src/prefect/utilities/engine/AGENTS.md +0 -0
- {prefect_client-3.9.1.dev2 → prefect_client-3.9.1.dev3}/src/prefect/utilities/engine/__init__.py +0 -0
- {prefect_client-3.9.1.dev2 → prefect_client-3.9.1.dev3}/src/prefect/utilities/filesystem/AGENTS.md +0 -0
- {prefect_client-3.9.1.dev2 → prefect_client-3.9.1.dev3}/src/prefect/utilities/filesystem/__init__.py +0 -0
- {prefect_client-3.9.1.dev2 → prefect_client-3.9.1.dev3}/src/prefect/utilities/generics.py +0 -0
- {prefect_client-3.9.1.dev2 → prefect_client-3.9.1.dev3}/src/prefect/utilities/hashing.py +0 -0
- {prefect_client-3.9.1.dev2 → prefect_client-3.9.1.dev3}/src/prefect/utilities/importtools.py +0 -0
- {prefect_client-3.9.1.dev2 → prefect_client-3.9.1.dev3}/src/prefect/utilities/math.py +0 -0
- {prefect_client-3.9.1.dev2 → prefect_client-3.9.1.dev3}/src/prefect/utilities/names.py +0 -0
- {prefect_client-3.9.1.dev2 → prefect_client-3.9.1.dev3}/src/prefect/utilities/processutils/AGENTS.md +0 -0
- {prefect_client-3.9.1.dev2 → prefect_client-3.9.1.dev3}/src/prefect/utilities/processutils/__init__.py +0 -0
- {prefect_client-3.9.1.dev2 → prefect_client-3.9.1.dev3}/src/prefect/utilities/pydantic.py +0 -0
- {prefect_client-3.9.1.dev2 → prefect_client-3.9.1.dev3}/src/prefect/utilities/render_swagger.py +0 -0
- {prefect_client-3.9.1.dev2 → prefect_client-3.9.1.dev3}/src/prefect/utilities/schema_tools/AGENTS.md +0 -0
- {prefect_client-3.9.1.dev2 → prefect_client-3.9.1.dev3}/src/prefect/utilities/schema_tools/__init__.py +0 -0
- {prefect_client-3.9.1.dev2 → prefect_client-3.9.1.dev3}/src/prefect/utilities/schema_tools/hydration.py +0 -0
- {prefect_client-3.9.1.dev2 → prefect_client-3.9.1.dev3}/src/prefect/utilities/schema_tools/validation.py +0 -0
- {prefect_client-3.9.1.dev2 → prefect_client-3.9.1.dev3}/src/prefect/utilities/services.py +0 -0
- {prefect_client-3.9.1.dev2 → prefect_client-3.9.1.dev3}/src/prefect/utilities/slugify.py +0 -0
- {prefect_client-3.9.1.dev2 → prefect_client-3.9.1.dev3}/src/prefect/utilities/templating/AGENTS.md +0 -0
- {prefect_client-3.9.1.dev2 → prefect_client-3.9.1.dev3}/src/prefect/utilities/templating/__init__.py +0 -0
- {prefect_client-3.9.1.dev2 → prefect_client-3.9.1.dev3}/src/prefect/utilities/text.py +0 -0
- {prefect_client-3.9.1.dev2 → prefect_client-3.9.1.dev3}/src/prefect/utilities/timeout.py +0 -0
- {prefect_client-3.9.1.dev2 → prefect_client-3.9.1.dev3}/src/prefect/utilities/urls.py +0 -0
- {prefect_client-3.9.1.dev2 → prefect_client-3.9.1.dev3}/src/prefect/utilities/visualization.py +0 -0
- {prefect_client-3.9.1.dev2 → prefect_client-3.9.1.dev3}/src/prefect/variables.py +0 -0
- {prefect_client-3.9.1.dev2 → prefect_client-3.9.1.dev3}/src/prefect/workers/AGENTS.md +0 -0
- {prefect_client-3.9.1.dev2 → prefect_client-3.9.1.dev3}/src/prefect/workers/__init__.py +0 -0
- {prefect_client-3.9.1.dev2 → prefect_client-3.9.1.dev3}/src/prefect/workers/_cleanup.py +0 -0
- {prefect_client-3.9.1.dev2 → prefect_client-3.9.1.dev3}/src/prefect/workers/_cleanup_handlers.py +0 -0
- {prefect_client-3.9.1.dev2 → prefect_client-3.9.1.dev3}/src/prefect/workers/_worker_channel/__init__.py +0 -0
- {prefect_client-3.9.1.dev2 → prefect_client-3.9.1.dev3}/src/prefect/workers/_worker_channel/_protocol.py +0 -0
- {prefect_client-3.9.1.dev2 → prefect_client-3.9.1.dev3}/src/prefect/workers/_worker_channel/_state.py +0 -0
- {prefect_client-3.9.1.dev2 → prefect_client-3.9.1.dev3}/src/prefect/workers/_worker_channel/_sync.py +0 -0
- {prefect_client-3.9.1.dev2 → prefect_client-3.9.1.dev3}/src/prefect/workers/_worker_channel/_transport.py +0 -0
- {prefect_client-3.9.1.dev2 → prefect_client-3.9.1.dev3}/src/prefect/workers/base.py +0 -0
- {prefect_client-3.9.1.dev2 → prefect_client-3.9.1.dev3}/src/prefect/workers/block.py +0 -0
- {prefect_client-3.9.1.dev2 → prefect_client-3.9.1.dev3}/src/prefect/workers/cloud.py +0 -0
- {prefect_client-3.9.1.dev2 → prefect_client-3.9.1.dev3}/src/prefect/workers/process.py +0 -0
- {prefect_client-3.9.1.dev2 → prefect_client-3.9.1.dev3}/src/prefect/workers/server.py +0 -0
- {prefect_client-3.9.1.dev2 → prefect_client-3.9.1.dev3}/src/prefect/workers/utilities.py +0 -0
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
Metadata-Version: 2.5
|
|
2
2
|
Name: prefect-client
|
|
3
|
-
Version: 3.9.1.
|
|
3
|
+
Version: 3.9.1.dev3
|
|
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
|
|
@@ -50,7 +50,7 @@ Requires-Dist: pydantic-core<3.0.0,>=2.12.0
|
|
|
50
50
|
Requires-Dist: pydantic-extra-types<3.0.0,>=2.8.2
|
|
51
51
|
Requires-Dist: pydantic-settings<3.0.0,>=2.9.1
|
|
52
52
|
Requires-Dist: python-dateutil<3.0.0,>=2.8.2
|
|
53
|
-
Requires-Dist: python-slugify<9.
|
|
53
|
+
Requires-Dist: python-slugify<9.2,>=9
|
|
54
54
|
Requires-Dist: pytz<2027,>=2021.1
|
|
55
55
|
Requires-Dist: pyyaml<7.0.0,>=5.4.1
|
|
56
56
|
Requires-Dist: rfc3339-validator<0.2.0,>=0.1.4
|
|
@@ -62,9 +62,9 @@ Requires-Dist: toml>=0.10.0
|
|
|
62
62
|
Requires-Dist: typing-extensions<5.0.0,>=4.10.0
|
|
63
63
|
Requires-Dist: uvicorn!=0.29.0,>=0.14.0
|
|
64
64
|
Requires-Dist: websockets<17.0,>=15.0.1
|
|
65
|
-
Requires-Dist: whenever<0.
|
|
65
|
+
Requires-Dist: whenever<0.12.0,>=0.10.5; python_version >= '3.13'
|
|
66
66
|
Provides-Extra: notifications
|
|
67
|
-
Requires-Dist: apprise<2.
|
|
67
|
+
Requires-Dist: apprise<2.1.0,>=1.13.0; extra == 'notifications'
|
|
68
68
|
Description-Content-Type: text/markdown
|
|
69
69
|
|
|
70
70
|
<p align="center"><img src="https://github.com/PrefectHQ/prefect/assets/3407835/c654cbc6-63e8-4ada-a92a-efd2f8f24b85" width=1000></p>
|
|
@@ -55,7 +55,7 @@ dependencies = [
|
|
|
55
55
|
"pydantic_extra_types>=2.8.2,<3.0.0",
|
|
56
56
|
"pydantic_settings>=2.9.1,<3.0.0",
|
|
57
57
|
"python-dateutil>=2.8.2,<3.0.0",
|
|
58
|
-
"python-slugify>=9,<9.
|
|
58
|
+
"python-slugify>=9,<9.2",
|
|
59
59
|
"pytz>=2021.1,<2027",
|
|
60
60
|
"pyyaml>=5.4.1,<7.0.0",
|
|
61
61
|
"rfc3339-validator>=0.1.4,<0.2.0",
|
|
@@ -67,7 +67,7 @@ dependencies = [
|
|
|
67
67
|
"typing_extensions>=4.10.0,<5.0.0",
|
|
68
68
|
"uvicorn>=0.14.0,!=0.29.0",
|
|
69
69
|
"websockets>=15.0.1,<17.0",
|
|
70
|
-
"whenever>=0.10.5,<0.
|
|
70
|
+
"whenever>=0.10.5,<0.12.0; python_version>='3.13'",
|
|
71
71
|
]
|
|
72
72
|
[project.urls]
|
|
73
73
|
Changelog = "https://github.com/PrefectHQ/prefect/releases"
|
|
@@ -75,7 +75,7 @@ Documentation = "https://docs.prefect.io"
|
|
|
75
75
|
Source = "https://github.com/PrefectHQ/prefect"
|
|
76
76
|
Tracker = "https://github.com/PrefectHQ/prefect/issues"
|
|
77
77
|
[project.optional-dependencies]
|
|
78
|
-
notifications = ["apprise>=1.13.0, <2.
|
|
78
|
+
notifications = ["apprise>=1.13.0, <2.1.0"]
|
|
79
79
|
|
|
80
80
|
|
|
81
81
|
[tool.hatch.version]
|
|
@@ -25,7 +25,7 @@ There is no formal public/private boundary beyond the `_` prefix convention. Mod
|
|
|
25
25
|
- **Sync and async must stay in sync.** Both `flow_engine.py` and `task_engine.py` have sync and async paths. Any behavior change must be applied to both.
|
|
26
26
|
- **Event and log WebSocket subscribers are parallel implementations.** `events/clients.py::PrefectEventSubscriber` and `logging/clients.py::PrefectLogsSubscriber` duplicate the same reconnect/backoff/dedup logic, including the `reconnect_on_clean_close` option (used by `events/subscribers.py::FlowRunSubscriber` so a clean disconnect doesn't hide a terminal event). Mirror any reconnection-behavior change across both.
|
|
27
27
|
- **Flow run observers own their stream recovery.** `_internal/observers.py` observers create subscribers with `reconnection_attempts=0` and delegate polling fallback, reconnect backoff, and setup deadlines to `_internal/_observation_delivery.py::ObservationDelivery`. Subscribers close any socket left by a failed or cancelled `__aenter__`, since callers never exit a context that failed to enter.
|
|
28
|
-
- **Use `whenever` compat helpers for all datetime conversions on Python 3.13+.** `types/_datetime.py` provides `now()`, `_whenever_to_stdlib()`, `_whenever_zdt_from_py()`, and `_whenever_pdt_from_py()` to abstract over API differences
|
|
28
|
+
- **Use `whenever` compat helpers for all datetime conversions on Python 3.13+.** `types/_datetime.py` provides `now()`, `_whenever_to_stdlib()`, `_whenever_zdt_from_py()`, and `_whenever_pdt_from_py()` to abstract over API differences across supported whenever releases. Version-specific code is guarded by feature-detection flags (`_WHENEVER_NEW_API` for ≥ 0.10.0, `_SYSTEM_TZ` for ≥ 0.11), not version checks. Never call `DateTime.now()` or `pendulum.now()` directly — use `now()` from `types/_datetime.py` instead. Avoid no-argument `datetime.datetime.now()` because it returns a tz-naive datetime that raises `TypeError` when compared to the tz-aware datetimes produced by `now()`. Explicitly timezone-aware stdlib calls such as `datetime.now(ZoneInfo("UTC"))` are allowed when needed to preserve timezone information. Never call `ZonedDateTime.from_py_datetime()`, `PlainDateTime.from_py_datetime()`, or `.py_datetime()` directly — use the helpers instead. Likewise avoid `.assume_system_tz()`/`.to_system_tz()` (deprecated in 0.11; the warning fails tests under `filterwarnings = error`) — use `in_local_tz()` — and direct `DateTimeDelta` imports (removed in 0.11) — use the `Interval` alias. Violations will silently break on whichever whenever version the helpers weren't written for.
|
|
29
29
|
- **Flow and task engines advance state differently.** The flow engine makes blocking API calls to the server to propose and advance states. The task engine emits `prefect.task_run.*` events (delivered via WebSockets) but advances state locally through `set_state` calls with polling/backoff — do not assume the two engines work the same way.
|
|
30
30
|
- **Flow state transitions go through the server.** The flow engine proposes states to the server, which accepts or rejects them via orchestration rules. The task engine, by contrast, manages state transitions locally via `set_state` and emits `prefect.task_run.*` events — it does not propose states to the server.
|
|
31
31
|
- **`ProcessPoolTaskRunner` requires picklable data across subprocess boundaries.** `PrefectFuture` objects are not picklable and cannot be passed to worker subprocesses. Any `wait_for` futures must be waited on in the parent process and converted to `State` objects before submission. The subprocess task engine handles `State` objects via `resolve_to_final_result`, which raises `UpstreamTaskError` for non-completed upstreams.
|
|
@@ -47,7 +47,7 @@ class AbstractAppriseNotificationBlock(NotificationBlock, ABC):
|
|
|
47
47
|
)
|
|
48
48
|
|
|
49
49
|
self._apprise_client = Apprise(asset=prefect_app_data)
|
|
50
|
-
self._apprise_client.add(
|
|
50
|
+
self._apprise_client.add(url.get_secret_value()) # pyright: ignore[reportUnknownMemberType]
|
|
51
51
|
|
|
52
52
|
def block_initialization(self) -> None:
|
|
53
53
|
self._start_apprise_client(getattr(self, "url"))
|
|
@@ -1115,9 +1115,7 @@ class SendgridEmail(AbstractAppriseNotificationBlock):
|
|
|
1115
1115
|
"""Update apprise client with current to_emails before sending."""
|
|
1116
1116
|
if hasattr(self, "_apprise_client") and self._apprise_client:
|
|
1117
1117
|
self._apprise_client.clear()
|
|
1118
|
-
self._apprise_client.add(
|
|
1119
|
-
servers=self._build_sendgrid_url().get_secret_value()
|
|
1120
|
-
)
|
|
1118
|
+
self._apprise_client.add(self._build_sendgrid_url().get_secret_value())
|
|
1121
1119
|
|
|
1122
1120
|
async def anotify(
|
|
1123
1121
|
self,
|
|
@@ -811,7 +811,16 @@ class FlowRunEngine(BaseFlowRunEngine[P, R]):
|
|
|
811
811
|
)
|
|
812
812
|
raise_if_flow_run_suspension_requested()
|
|
813
813
|
self._return_value = resolved_result
|
|
814
|
-
self.set_state(terminal_state)
|
|
814
|
+
state = self.set_state(terminal_state)
|
|
815
|
+
if terminal_state.is_failed() and state.is_scheduled():
|
|
816
|
+
self.logger.info(
|
|
817
|
+
f"Received non-final state {state.name!r} when proposing final"
|
|
818
|
+
f" state {terminal_state.name!r} and will attempt to run again..."
|
|
819
|
+
)
|
|
820
|
+
raise_if_flow_run_suspension_requested()
|
|
821
|
+
self._return_value = NotSet
|
|
822
|
+
self.set_state(Running())
|
|
823
|
+
return result
|
|
815
824
|
|
|
816
825
|
link_state_to_flow_run_result(terminal_state, resolved_result)
|
|
817
826
|
self._telemetry.end_span_on_success()
|
|
@@ -1534,7 +1543,16 @@ class AsyncFlowRunEngine(BaseFlowRunEngine[P, R]):
|
|
|
1534
1543
|
)
|
|
1535
1544
|
raise_if_flow_run_suspension_requested()
|
|
1536
1545
|
self._return_value = resolved_result
|
|
1537
|
-
await self.set_state(terminal_state)
|
|
1546
|
+
state = await self.set_state(terminal_state)
|
|
1547
|
+
if terminal_state.is_failed() and state.is_scheduled():
|
|
1548
|
+
self.logger.info(
|
|
1549
|
+
f"Received non-final state {state.name!r} when proposing final"
|
|
1550
|
+
f" state {terminal_state.name!r} and will attempt to run again..."
|
|
1551
|
+
)
|
|
1552
|
+
raise_if_flow_run_suspension_requested()
|
|
1553
|
+
self._return_value = NotSet
|
|
1554
|
+
await self.set_state(Running())
|
|
1555
|
+
return result
|
|
1538
1556
|
|
|
1539
1557
|
self._telemetry.end_span_on_success()
|
|
1540
1558
|
|
|
@@ -24,6 +24,7 @@ if TYPE_CHECKING:
|
|
|
24
24
|
flows,
|
|
25
25
|
logs,
|
|
26
26
|
middleware,
|
|
27
|
+
observed_states,
|
|
27
28
|
root,
|
|
28
29
|
run_history,
|
|
29
30
|
saved_searches,
|
|
@@ -58,6 +59,7 @@ __all__ = [
|
|
|
58
59
|
"flows",
|
|
59
60
|
"logs",
|
|
60
61
|
"middleware",
|
|
62
|
+
"observed_states",
|
|
61
63
|
"root",
|
|
62
64
|
"run_history",
|
|
63
65
|
"saved_searches",
|
|
@@ -0,0 +1,32 @@
|
|
|
1
|
+
"""Routes for discovering observed state types and names."""
|
|
2
|
+
|
|
3
|
+
from typing import Annotated
|
|
4
|
+
|
|
5
|
+
from fastapi import Depends, Query
|
|
6
|
+
|
|
7
|
+
from prefect.server import models
|
|
8
|
+
from prefect.server.database import PrefectDBInterface, provide_database_interface
|
|
9
|
+
from prefect.server.schemas.observed_states import ObservedState, ObservedStateSort
|
|
10
|
+
from prefect.server.utilities.server import PrefectRouter
|
|
11
|
+
|
|
12
|
+
router: PrefectRouter = PrefectRouter(
|
|
13
|
+
prefix="/observed-states", tags=["Observed States"]
|
|
14
|
+
)
|
|
15
|
+
|
|
16
|
+
|
|
17
|
+
@router.get("")
|
|
18
|
+
async def read_observed_states(
|
|
19
|
+
db: Annotated[PrefectDBInterface, Depends(provide_database_interface)],
|
|
20
|
+
query: Annotated[str | None, Query(max_length=100)] = None,
|
|
21
|
+
order_by: ObservedStateSort = ObservedStateSort.LAST_SEEN_DESC,
|
|
22
|
+
limit: Annotated[int, Query(ge=1, le=200)] = 200,
|
|
23
|
+
) -> list[ObservedState]:
|
|
24
|
+
"""Discover exact state names and types from retained run transitions.
|
|
25
|
+
|
|
26
|
+
Search by case-insensitive name or type prefix. Timestamps describe retained
|
|
27
|
+
history; deleting runs can change them or remove a state from the results.
|
|
28
|
+
"""
|
|
29
|
+
async with db.session_context() as session:
|
|
30
|
+
return await models.observed_states.read_observed_states(
|
|
31
|
+
session=session, query=query, order_by=order_by, limit=limit
|
|
32
|
+
)
|
|
@@ -14,7 +14,7 @@ from pydantic_core import core_schema as _core_schema
|
|
|
14
14
|
from typing_extensions import TypeAlias
|
|
15
15
|
|
|
16
16
|
if sys.version_info >= (3, 13):
|
|
17
|
-
|
|
17
|
+
import whenever as _whenever
|
|
18
18
|
from whenever import ZonedDateTime as _ZDTProbe
|
|
19
19
|
|
|
20
20
|
# True on whenever >= 0.10.0, which introduced ZonedDateTime(stdlib_dt),
|
|
@@ -22,6 +22,9 @@ if sys.version_info >= (3, 13):
|
|
|
22
22
|
_WHENEVER_NEW_API: bool = hasattr(_ZDTProbe, "to_stdlib")
|
|
23
23
|
del _ZDTProbe
|
|
24
24
|
|
|
25
|
+
# SYSTEM_TZ replaces the system-timezone methods in whenever 0.11.
|
|
26
|
+
_SYSTEM_TZ = getattr(_whenever, "SYSTEM_TZ", None)
|
|
27
|
+
|
|
25
28
|
class _DateTime(datetime.datetime):
|
|
26
29
|
"""`datetime.datetime` with a Pydantic schema that coerces naive to UTC.
|
|
27
30
|
|
|
@@ -57,6 +60,8 @@ if sys.version_info >= (3, 13):
|
|
|
57
60
|
|
|
58
61
|
Interval: TypeAlias = Union[datetime.timedelta, ItemizedDelta]
|
|
59
62
|
else:
|
|
63
|
+
from whenever import DateTimeDelta
|
|
64
|
+
|
|
60
65
|
Interval: TypeAlias = Union[datetime.timedelta, DateTimeDelta]
|
|
61
66
|
else:
|
|
62
67
|
_WHENEVER_NEW_API = False
|
|
@@ -345,7 +350,12 @@ def travel_to(dt: Any):
|
|
|
345
350
|
def in_local_tz(dt: datetime.datetime) -> datetime.datetime:
|
|
346
351
|
if sys.version_info >= (3, 13):
|
|
347
352
|
if dt.tzinfo is None:
|
|
348
|
-
|
|
353
|
+
pdt = _whenever_pdt_from_py(dt)
|
|
354
|
+
wdt = (
|
|
355
|
+
pdt.assume_tz(_SYSTEM_TZ)
|
|
356
|
+
if _SYSTEM_TZ is not None
|
|
357
|
+
else pdt.assume_system_tz()
|
|
358
|
+
)
|
|
349
359
|
else:
|
|
350
360
|
if not isinstance(dt.tzinfo, ZoneInfo):
|
|
351
361
|
if key := getattr(dt.tzinfo, "key", None):
|
|
@@ -354,7 +364,10 @@ def in_local_tz(dt: datetime.datetime) -> datetime.datetime:
|
|
|
354
364
|
utc_dt = dt.astimezone(datetime.timezone.utc)
|
|
355
365
|
dt = utc_dt.replace(tzinfo=ZoneInfo("UTC"))
|
|
356
366
|
|
|
357
|
-
|
|
367
|
+
zdt = _whenever_zdt_from_py(dt)
|
|
368
|
+
wdt = (
|
|
369
|
+
zdt.to_tz(_SYSTEM_TZ) if _SYSTEM_TZ is not None else zdt.to_system_tz()
|
|
370
|
+
)
|
|
358
371
|
|
|
359
372
|
return _whenever_to_stdlib(wdt)
|
|
360
373
|
else:
|
{prefect_client-3.9.1.dev2 → prefect_client-3.9.1.dev3}/src/prefect/utilities/collections.py
RENAMED
|
@@ -13,6 +13,7 @@ from collections.abc import (
|
|
|
13
13
|
Hashable,
|
|
14
14
|
Iterable,
|
|
15
15
|
Iterator,
|
|
16
|
+
Mapping,
|
|
16
17
|
Sequence,
|
|
17
18
|
Set,
|
|
18
19
|
)
|
|
@@ -619,6 +620,21 @@ def distinct(
|
|
|
619
620
|
yield item
|
|
620
621
|
|
|
621
622
|
|
|
623
|
+
def _canonical_int_or_key(key: Any) -> Any:
|
|
624
|
+
"""
|
|
625
|
+
Convert a string like `"1"` or `"-1"` to an int, leaving any other key
|
|
626
|
+
(including non-canonical forms like `"01"`) unchanged.
|
|
627
|
+
"""
|
|
628
|
+
if isinstance(key, str):
|
|
629
|
+
try:
|
|
630
|
+
int_key = int(key)
|
|
631
|
+
except ValueError:
|
|
632
|
+
return key
|
|
633
|
+
if str(int_key) == key:
|
|
634
|
+
return int_key
|
|
635
|
+
return key
|
|
636
|
+
|
|
637
|
+
|
|
622
638
|
@overload
|
|
623
639
|
def get_from_dict(
|
|
624
640
|
dct: NestedDict[str, VT], keys: Union[str, list[str]], default: None = None
|
|
@@ -647,7 +663,9 @@ def get_from_dict(
|
|
|
647
663
|
keys: The sequence of keys to use for access. Can be a
|
|
648
664
|
dot-separated string or a list of keys. List indices can be included
|
|
649
665
|
in the sequence as either integer keys or as string indices in square
|
|
650
|
-
brackets.
|
|
666
|
+
brackets. When indexing a dictionary, a string key is matched
|
|
667
|
+
exactly first and only falls back to the equivalent integer key
|
|
668
|
+
(e.g. `"1"` -> `1`) if no exact match exists.
|
|
651
669
|
default: The default value to return if the requested key path does not
|
|
652
670
|
exist. Defaults to None.
|
|
653
671
|
|
|
@@ -660,6 +678,7 @@ def get_from_dict(
|
|
|
660
678
|
get_from_dict({'a': {'b': {'c': [1, 2, 3, 4]}}}, 'a.b.c[1]') # 2
|
|
661
679
|
get_from_dict({'a': {'b': [0, {'c': [1, 2]}]}}, ['a', 'b', 1, 'c', 1]) # 2
|
|
662
680
|
get_from_dict({'a': {'b': [0, {'c': [1, 2]}]}}, 'a.b.1.c.2', 'default') # 'default'
|
|
681
|
+
get_from_dict({'years': {'2026': 42}}, 'years.2026') # 42
|
|
663
682
|
```
|
|
664
683
|
"""
|
|
665
684
|
if isinstance(keys, str):
|
|
@@ -667,13 +686,16 @@ def get_from_dict(
|
|
|
667
686
|
value = dct
|
|
668
687
|
try:
|
|
669
688
|
for key in keys:
|
|
670
|
-
|
|
671
|
-
#
|
|
672
|
-
key
|
|
673
|
-
|
|
674
|
-
|
|
675
|
-
|
|
676
|
-
|
|
689
|
+
if isinstance(value, Mapping):
|
|
690
|
+
# Prefer an exact match so numeric string keys like "2026" resolve
|
|
691
|
+
if key not in value:
|
|
692
|
+
key = _canonical_int_or_key(key)
|
|
693
|
+
else:
|
|
694
|
+
try:
|
|
695
|
+
# Try to cast to int to handle list indices
|
|
696
|
+
key = int(key)
|
|
697
|
+
except ValueError:
|
|
698
|
+
pass
|
|
677
699
|
value = value[key] # type: ignore
|
|
678
700
|
return cast(VT, value)
|
|
679
701
|
except (TypeError, KeyError, IndexError):
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{prefect_client-3.9.1.dev2 → prefect_client-3.9.1.dev3}/src/prefect/_experimental/__init__.py
RENAMED
|
File without changes
|
{prefect_client-3.9.1.dev2 → prefect_client-3.9.1.dev3}/src/prefect/_experimental/_launchers.py
RENAMED
|
File without changes
|
|
File without changes
|
{prefect_client-3.9.1.dev2 → prefect_client-3.9.1.dev3}/src/prefect/_experimental/bundles/execute.py
RENAMED
|
File without changes
|
|
File without changes
|
{prefect_client-3.9.1.dev2 → prefect_client-3.9.1.dev3}/src/prefect/_experimental/plugins/apply.py
RENAMED
|
File without changes
|
|
File without changes
|
{prefect_client-3.9.1.dev2 → prefect_client-3.9.1.dev3}/src/prefect/_experimental/plugins/manager.py
RENAMED
|
File without changes
|
{prefect_client-3.9.1.dev2 → prefect_client-3.9.1.dev3}/src/prefect/_experimental/plugins/spec.py
RENAMED
|
File without changes
|
{prefect_client-3.9.1.dev2 → prefect_client-3.9.1.dev3}/src/prefect/_experimental/sla/__init__.py
RENAMED
|
File without changes
|
{prefect_client-3.9.1.dev2 → prefect_client-3.9.1.dev3}/src/prefect/_experimental/sla/client.py
RENAMED
|
File without changes
|
{prefect_client-3.9.1.dev2 → prefect_client-3.9.1.dev3}/src/prefect/_experimental/sla/objects.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{prefect_client-3.9.1.dev2 → prefect_client-3.9.1.dev3}/src/prefect/_internal/analytics/__init__.py
RENAMED
|
File without changes
|
|
File without changes
|
{prefect_client-3.9.1.dev2 → prefect_client-3.9.1.dev3}/src/prefect/_internal/analytics/client.py
RENAMED
|
File without changes
|
{prefect_client-3.9.1.dev2 → prefect_client-3.9.1.dev3}/src/prefect/_internal/analytics/device_id.py
RENAMED
|
File without changes
|
{prefect_client-3.9.1.dev2 → prefect_client-3.9.1.dev3}/src/prefect/_internal/analytics/emit.py
RENAMED
|
File without changes
|
{prefect_client-3.9.1.dev2 → prefect_client-3.9.1.dev3}/src/prefect/_internal/analytics/enabled.py
RENAMED
|
File without changes
|
{prefect_client-3.9.1.dev2 → prefect_client-3.9.1.dev3}/src/prefect/_internal/analytics/events.py
RENAMED
|
File without changes
|
|
File without changes
|
{prefect_client-3.9.1.dev2 → prefect_client-3.9.1.dev3}/src/prefect/_internal/analytics/notice.py
RENAMED
|
File without changes
|
{prefect_client-3.9.1.dev2 → prefect_client-3.9.1.dev3}/src/prefect/_internal/analytics/service.py
RENAMED
|
File without changes
|
|
File without changes
|
{prefect_client-3.9.1.dev2 → prefect_client-3.9.1.dev3}/src/prefect/_internal/attempt_control.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{prefect_client-3.9.1.dev2 → prefect_client-3.9.1.dev3}/src/prefect/_internal/concurrency/api.py
RENAMED
|
File without changes
|
{prefect_client-3.9.1.dev2 → prefect_client-3.9.1.dev3}/src/prefect/_internal/concurrency/calls.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{prefect_client-3.9.1.dev2 → prefect_client-3.9.1.dev3}/src/prefect/_internal/concurrency/threads.py
RENAMED
|
File without changes
|
{prefect_client-3.9.1.dev2 → prefect_client-3.9.1.dev3}/src/prefect/_internal/concurrency/waiters.py
RENAMED
|
File without changes
|
{prefect_client-3.9.1.dev2 → prefect_client-3.9.1.dev3}/src/prefect/_internal/control_listener.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{prefect_client-3.9.1.dev2 → prefect_client-3.9.1.dev3}/src/prefect/_internal/installation.py
RENAMED
|
File without changes
|
{prefect_client-3.9.1.dev2 → prefect_client-3.9.1.dev3}/src/prefect/_internal/integrations.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{prefect_client-3.9.1.dev2 → prefect_client-3.9.1.dev3}/src/prefect/_internal/observability.py
RENAMED
|
File without changes
|
|
File without changes
|
{prefect_client-3.9.1.dev2 → prefect_client-3.9.1.dev3}/src/prefect/_internal/plugins/__init__.py
RENAMED
|
File without changes
|
{prefect_client-3.9.1.dev2 → prefect_client-3.9.1.dev3}/src/prefect/_internal/plugins/apply.py
RENAMED
|
File without changes
|
{prefect_client-3.9.1.dev2 → prefect_client-3.9.1.dev3}/src/prefect/_internal/plugins/collections.py
RENAMED
|
File without changes
|
{prefect_client-3.9.1.dev2 → prefect_client-3.9.1.dev3}/src/prefect/_internal/plugins/diagnostics.py
RENAMED
|
File without changes
|
{prefect_client-3.9.1.dev2 → prefect_client-3.9.1.dev3}/src/prefect/_internal/plugins/manager.py
RENAMED
|
File without changes
|
{prefect_client-3.9.1.dev2 → prefect_client-3.9.1.dev3}/src/prefect/_internal/plugins/spec.py
RENAMED
|
File without changes
|
{prefect_client-3.9.1.dev2 → prefect_client-3.9.1.dev3}/src/prefect/_internal/plugins/startup.py
RENAMED
|
File without changes
|
{prefect_client-3.9.1.dev2 → prefect_client-3.9.1.dev3}/src/prefect/_internal/pydantic/__init__.py
RENAMED
|
File without changes
|
{prefect_client-3.9.1.dev2 → prefect_client-3.9.1.dev3}/src/prefect/_internal/pydantic/schemas.py
RENAMED
|
File without changes
|
{prefect_client-3.9.1.dev2 → prefect_client-3.9.1.dev3}/src/prefect/_internal/pydantic/v1_schema.py
RENAMED
|
File without changes
|
{prefect_client-3.9.1.dev2 → prefect_client-3.9.1.dev3}/src/prefect/_internal/pydantic/v2_schema.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
{prefect_client-3.9.1.dev2 → prefect_client-3.9.1.dev3}/src/prefect/_internal/result_records.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
{prefect_client-3.9.1.dev2 → prefect_client-3.9.1.dev3}/src/prefect/_internal/schemas/__init__.py
RENAMED
|
File without changes
|
{prefect_client-3.9.1.dev2 → prefect_client-3.9.1.dev3}/src/prefect/_internal/schemas/_registry.py
RENAMED
|
File without changes
|
{prefect_client-3.9.1.dev2 → prefect_client-3.9.1.dev3}/src/prefect/_internal/schemas/bases.py
RENAMED
|
File without changes
|
{prefect_client-3.9.1.dev2 → prefect_client-3.9.1.dev3}/src/prefect/_internal/schemas/fields.py
RENAMED
|
File without changes
|
{prefect_client-3.9.1.dev2 → prefect_client-3.9.1.dev3}/src/prefect/_internal/schemas/serializers.py
RENAMED
|
File without changes
|
{prefect_client-3.9.1.dev2 → prefect_client-3.9.1.dev3}/src/prefect/_internal/schemas/validators.py
RENAMED
|
File without changes
|
|
File without changes
|
{prefect_client-3.9.1.dev2 → prefect_client-3.9.1.dev3}/src/prefect/_internal/server_maintenance.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{prefect_client-3.9.1.dev2 → prefect_client-3.9.1.dev3}/src/prefect/_internal/version_checking.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{prefect_client-3.9.1.dev2 → prefect_client-3.9.1.dev3}/src/prefect/_sdk/schema_converter.py
RENAMED
|
File without changes
|
{prefect_client-3.9.1.dev2 → prefect_client-3.9.1.dev3}/src/prefect/_sdk/templates/__init__.py
RENAMED
|
File without changes
|
{prefect_client-3.9.1.dev2 → prefect_client-3.9.1.dev3}/src/prefect/_sdk/templates/sdk.py.jinja
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|