prefect-client 3.9.1.dev4__tar.gz → 3.9.1.dev5__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.dev4 → prefect_client-3.9.1.dev5}/PKG-INFO +1 -1
- prefect_client-3.9.1.dev5/src/prefect/_build_info.py +5 -0
- {prefect_client-3.9.1.dev4 → prefect_client-3.9.1.dev5}/src/prefect/_internal/result_records.py +13 -9
- {prefect_client-3.9.1.dev4 → prefect_client-3.9.1.dev5}/src/prefect/cache_policies.py +22 -4
- {prefect_client-3.9.1.dev4 → prefect_client-3.9.1.dev5}/src/prefect/client/orchestration/_work_pools/client.py +2 -0
- {prefect_client-3.9.1.dev4 → prefect_client-3.9.1.dev5}/src/prefect/client/schemas/sorting.py +2 -0
- {prefect_client-3.9.1.dev4 → prefect_client-3.9.1.dev5}/src/prefect/events/schemas/events.py +7 -0
- {prefect_client-3.9.1.dev4 → prefect_client-3.9.1.dev5}/src/prefect/server/api/clients.py +35 -2
- {prefect_client-3.9.1.dev4 → prefect_client-3.9.1.dev5}/src/prefect/task_engine.py +62 -6
- {prefect_client-3.9.1.dev4 → prefect_client-3.9.1.dev5}/src/prefect/utilities/filesystem/__init__.py +50 -5
- {prefect_client-3.9.1.dev4 → prefect_client-3.9.1.dev5}/src/prefect/utilities/templating/__init__.py +9 -3
- {prefect_client-3.9.1.dev4 → prefect_client-3.9.1.dev5}/src/prefect/utilities/urls.py +14 -1
- prefect_client-3.9.1.dev4/src/prefect/_build_info.py +0 -5
- {prefect_client-3.9.1.dev4 → prefect_client-3.9.1.dev5}/.gitignore +0 -0
- {prefect_client-3.9.1.dev4 → prefect_client-3.9.1.dev5}/LICENSE +0 -0
- {prefect_client-3.9.1.dev4 → prefect_client-3.9.1.dev5}/README.md +0 -0
- {prefect_client-3.9.1.dev4 → prefect_client-3.9.1.dev5}/hatch_build.py +0 -0
- {prefect_client-3.9.1.dev4 → prefect_client-3.9.1.dev5}/pyproject.toml +0 -0
- {prefect_client-3.9.1.dev4 → prefect_client-3.9.1.dev5}/src/prefect/.prefectignore +0 -0
- {prefect_client-3.9.1.dev4 → prefect_client-3.9.1.dev5}/src/prefect/AGENTS.md +0 -0
- {prefect_client-3.9.1.dev4 → prefect_client-3.9.1.dev5}/src/prefect/__init__.py +0 -0
- {prefect_client-3.9.1.dev4 → prefect_client-3.9.1.dev5}/src/prefect/__main__.py +0 -0
- {prefect_client-3.9.1.dev4 → prefect_client-3.9.1.dev5}/src/prefect/_experimental/__init__.py +0 -0
- {prefect_client-3.9.1.dev4 → prefect_client-3.9.1.dev5}/src/prefect/_experimental/_launchers.py +0 -0
- {prefect_client-3.9.1.dev4 → prefect_client-3.9.1.dev5}/src/prefect/_experimental/bundles/__init__.py +0 -0
- {prefect_client-3.9.1.dev4 → prefect_client-3.9.1.dev5}/src/prefect/_experimental/bundles/execute.py +0 -0
- {prefect_client-3.9.1.dev4 → prefect_client-3.9.1.dev5}/src/prefect/_experimental/plugins/__init__.py +0 -0
- {prefect_client-3.9.1.dev4 → prefect_client-3.9.1.dev5}/src/prefect/_experimental/plugins/apply.py +0 -0
- {prefect_client-3.9.1.dev4 → prefect_client-3.9.1.dev5}/src/prefect/_experimental/plugins/diagnostics.py +0 -0
- {prefect_client-3.9.1.dev4 → prefect_client-3.9.1.dev5}/src/prefect/_experimental/plugins/manager.py +0 -0
- {prefect_client-3.9.1.dev4 → prefect_client-3.9.1.dev5}/src/prefect/_experimental/plugins/spec.py +0 -0
- {prefect_client-3.9.1.dev4 → prefect_client-3.9.1.dev5}/src/prefect/_experimental/sla/__init__.py +0 -0
- {prefect_client-3.9.1.dev4 → prefect_client-3.9.1.dev5}/src/prefect/_experimental/sla/client.py +0 -0
- {prefect_client-3.9.1.dev4 → prefect_client-3.9.1.dev5}/src/prefect/_experimental/sla/objects.py +0 -0
- {prefect_client-3.9.1.dev4 → prefect_client-3.9.1.dev5}/src/prefect/_flow_run_suspension.py +0 -0
- {prefect_client-3.9.1.dev4 → prefect_client-3.9.1.dev5}/src/prefect/_internal/__init__.py +0 -0
- {prefect_client-3.9.1.dev4 → prefect_client-3.9.1.dev5}/src/prefect/_internal/_logging.py +0 -0
- {prefect_client-3.9.1.dev4 → prefect_client-3.9.1.dev5}/src/prefect/_internal/_observation_delivery.py +0 -0
- {prefect_client-3.9.1.dev4 → prefect_client-3.9.1.dev5}/src/prefect/_internal/analytics/__init__.py +0 -0
- {prefect_client-3.9.1.dev4 → prefect_client-3.9.1.dev5}/src/prefect/_internal/analytics/ci_detection.py +0 -0
- {prefect_client-3.9.1.dev4 → prefect_client-3.9.1.dev5}/src/prefect/_internal/analytics/client.py +0 -0
- {prefect_client-3.9.1.dev4 → prefect_client-3.9.1.dev5}/src/prefect/_internal/analytics/device_id.py +0 -0
- {prefect_client-3.9.1.dev4 → prefect_client-3.9.1.dev5}/src/prefect/_internal/analytics/emit.py +0 -0
- {prefect_client-3.9.1.dev4 → prefect_client-3.9.1.dev5}/src/prefect/_internal/analytics/enabled.py +0 -0
- {prefect_client-3.9.1.dev4 → prefect_client-3.9.1.dev5}/src/prefect/_internal/analytics/events.py +0 -0
- {prefect_client-3.9.1.dev4 → prefect_client-3.9.1.dev5}/src/prefect/_internal/analytics/milestones.py +0 -0
- {prefect_client-3.9.1.dev4 → prefect_client-3.9.1.dev5}/src/prefect/_internal/analytics/notice.py +0 -0
- {prefect_client-3.9.1.dev4 → prefect_client-3.9.1.dev5}/src/prefect/_internal/analytics/service.py +0 -0
- {prefect_client-3.9.1.dev4 → prefect_client-3.9.1.dev5}/src/prefect/_internal/ast_utils.py +0 -0
- {prefect_client-3.9.1.dev4 → prefect_client-3.9.1.dev5}/src/prefect/_internal/attempt_control.py +0 -0
- {prefect_client-3.9.1.dev4 → prefect_client-3.9.1.dev5}/src/prefect/_internal/buildx.py +0 -0
- {prefect_client-3.9.1.dev4 → prefect_client-3.9.1.dev5}/src/prefect/_internal/compatibility/__init__.py +0 -0
- {prefect_client-3.9.1.dev4 → prefect_client-3.9.1.dev5}/src/prefect/_internal/compatibility/async_dispatch.py +0 -0
- {prefect_client-3.9.1.dev4 → prefect_client-3.9.1.dev5}/src/prefect/_internal/compatibility/backports.py +0 -0
- {prefect_client-3.9.1.dev4 → prefect_client-3.9.1.dev5}/src/prefect/_internal/compatibility/blocks.py +0 -0
- {prefect_client-3.9.1.dev4 → prefect_client-3.9.1.dev5}/src/prefect/_internal/compatibility/deprecated.py +0 -0
- {prefect_client-3.9.1.dev4 → prefect_client-3.9.1.dev5}/src/prefect/_internal/compatibility/deprecated_paths.py +0 -0
- {prefect_client-3.9.1.dev4 → prefect_client-3.9.1.dev5}/src/prefect/_internal/compatibility/migration.py +0 -0
- {prefect_client-3.9.1.dev4 → prefect_client-3.9.1.dev5}/src/prefect/_internal/compatibility/starlette.py +0 -0
- {prefect_client-3.9.1.dev4 → prefect_client-3.9.1.dev5}/src/prefect/_internal/concurrency/__init__.py +0 -0
- {prefect_client-3.9.1.dev4 → prefect_client-3.9.1.dev5}/src/prefect/_internal/concurrency/api.py +0 -0
- {prefect_client-3.9.1.dev4 → prefect_client-3.9.1.dev5}/src/prefect/_internal/concurrency/calls.py +0 -0
- {prefect_client-3.9.1.dev4 → prefect_client-3.9.1.dev5}/src/prefect/_internal/concurrency/cancellation.py +0 -0
- {prefect_client-3.9.1.dev4 → prefect_client-3.9.1.dev5}/src/prefect/_internal/concurrency/event_loop.py +0 -0
- {prefect_client-3.9.1.dev4 → prefect_client-3.9.1.dev5}/src/prefect/_internal/concurrency/inspection.py +0 -0
- {prefect_client-3.9.1.dev4 → prefect_client-3.9.1.dev5}/src/prefect/_internal/concurrency/primitives.py +0 -0
- {prefect_client-3.9.1.dev4 → prefect_client-3.9.1.dev5}/src/prefect/_internal/concurrency/services.py +0 -0
- {prefect_client-3.9.1.dev4 → prefect_client-3.9.1.dev5}/src/prefect/_internal/concurrency/threads.py +0 -0
- {prefect_client-3.9.1.dev4 → prefect_client-3.9.1.dev5}/src/prefect/_internal/concurrency/waiters.py +0 -0
- {prefect_client-3.9.1.dev4 → prefect_client-3.9.1.dev5}/src/prefect/_internal/control_listener.py +0 -0
- {prefect_client-3.9.1.dev4 → prefect_client-3.9.1.dev5}/src/prefect/_internal/deprecated.py +0 -0
- {prefect_client-3.9.1.dev4 → prefect_client-3.9.1.dev5}/src/prefect/_internal/engine.py +0 -0
- {prefect_client-3.9.1.dev4 → prefect_client-3.9.1.dev5}/src/prefect/_internal/git.py +0 -0
- {prefect_client-3.9.1.dev4 → prefect_client-3.9.1.dev5}/src/prefect/_internal/infrastructure_exit_codes.py +0 -0
- {prefect_client-3.9.1.dev4 → prefect_client-3.9.1.dev5}/src/prefect/_internal/installation.py +0 -0
- {prefect_client-3.9.1.dev4 → prefect_client-3.9.1.dev5}/src/prefect/_internal/integrations.py +0 -0
- {prefect_client-3.9.1.dev4 → prefect_client-3.9.1.dev5}/src/prefect/_internal/launchers.py +0 -0
- {prefect_client-3.9.1.dev4 → prefect_client-3.9.1.dev5}/src/prefect/_internal/lazy.py +0 -0
- {prefect_client-3.9.1.dev4 → prefect_client-3.9.1.dev5}/src/prefect/_internal/metrics.py +0 -0
- {prefect_client-3.9.1.dev4 → prefect_client-3.9.1.dev5}/src/prefect/_internal/observability.py +0 -0
- {prefect_client-3.9.1.dev4 → prefect_client-3.9.1.dev5}/src/prefect/_internal/observers.py +0 -0
- {prefect_client-3.9.1.dev4 → prefect_client-3.9.1.dev5}/src/prefect/_internal/plugins/__init__.py +0 -0
- {prefect_client-3.9.1.dev4 → prefect_client-3.9.1.dev5}/src/prefect/_internal/plugins/apply.py +0 -0
- {prefect_client-3.9.1.dev4 → prefect_client-3.9.1.dev5}/src/prefect/_internal/plugins/collections.py +0 -0
- {prefect_client-3.9.1.dev4 → prefect_client-3.9.1.dev5}/src/prefect/_internal/plugins/diagnostics.py +0 -0
- {prefect_client-3.9.1.dev4 → prefect_client-3.9.1.dev5}/src/prefect/_internal/plugins/manager.py +0 -0
- {prefect_client-3.9.1.dev4 → prefect_client-3.9.1.dev5}/src/prefect/_internal/plugins/spec.py +0 -0
- {prefect_client-3.9.1.dev4 → prefect_client-3.9.1.dev5}/src/prefect/_internal/plugins/startup.py +0 -0
- {prefect_client-3.9.1.dev4 → prefect_client-3.9.1.dev5}/src/prefect/_internal/pydantic/__init__.py +0 -0
- {prefect_client-3.9.1.dev4 → prefect_client-3.9.1.dev5}/src/prefect/_internal/pydantic/schemas.py +0 -0
- {prefect_client-3.9.1.dev4 → prefect_client-3.9.1.dev5}/src/prefect/_internal/pydantic/v1_schema.py +0 -0
- {prefect_client-3.9.1.dev4 → prefect_client-3.9.1.dev5}/src/prefect/_internal/pydantic/v2_schema.py +0 -0
- {prefect_client-3.9.1.dev4 → prefect_client-3.9.1.dev5}/src/prefect/_internal/pydantic/validated_func.py +0 -0
- {prefect_client-3.9.1.dev4 → prefect_client-3.9.1.dev5}/src/prefect/_internal/pytz.py +0 -0
- {prefect_client-3.9.1.dev4 → prefect_client-3.9.1.dev5}/src/prefect/_internal/retries.py +0 -0
- {prefect_client-3.9.1.dev4 → prefect_client-3.9.1.dev5}/src/prefect/_internal/schema.py +0 -0
- {prefect_client-3.9.1.dev4 → prefect_client-3.9.1.dev5}/src/prefect/_internal/schemas/__init__.py +0 -0
- {prefect_client-3.9.1.dev4 → prefect_client-3.9.1.dev5}/src/prefect/_internal/schemas/_registry.py +0 -0
- {prefect_client-3.9.1.dev4 → prefect_client-3.9.1.dev5}/src/prefect/_internal/schemas/bases.py +0 -0
- {prefect_client-3.9.1.dev4 → prefect_client-3.9.1.dev5}/src/prefect/_internal/schemas/fields.py +0 -0
- {prefect_client-3.9.1.dev4 → prefect_client-3.9.1.dev5}/src/prefect/_internal/schemas/serializers.py +0 -0
- {prefect_client-3.9.1.dev4 → prefect_client-3.9.1.dev5}/src/prefect/_internal/schemas/validators.py +0 -0
- {prefect_client-3.9.1.dev4 → prefect_client-3.9.1.dev5}/src/prefect/_internal/send_entrypoint_logs.py +0 -0
- {prefect_client-3.9.1.dev4 → prefect_client-3.9.1.dev5}/src/prefect/_internal/server_maintenance.py +0 -0
- {prefect_client-3.9.1.dev4 → prefect_client-3.9.1.dev5}/src/prefect/_internal/states.py +0 -0
- {prefect_client-3.9.1.dev4 → prefect_client-3.9.1.dev5}/src/prefect/_internal/testing.py +0 -0
- {prefect_client-3.9.1.dev4 → prefect_client-3.9.1.dev5}/src/prefect/_internal/urls.py +0 -0
- {prefect_client-3.9.1.dev4 → prefect_client-3.9.1.dev5}/src/prefect/_internal/uuid7.py +0 -0
- {prefect_client-3.9.1.dev4 → prefect_client-3.9.1.dev5}/src/prefect/_internal/version_checking.py +0 -0
- {prefect_client-3.9.1.dev4 → prefect_client-3.9.1.dev5}/src/prefect/_internal/versioning.py +0 -0
- {prefect_client-3.9.1.dev4 → prefect_client-3.9.1.dev5}/src/prefect/_internal/waiters.py +0 -0
- {prefect_client-3.9.1.dev4 → prefect_client-3.9.1.dev5}/src/prefect/_internal/websockets.py +0 -0
- {prefect_client-3.9.1.dev4 → prefect_client-3.9.1.dev5}/src/prefect/_sdk/__init__.py +0 -0
- {prefect_client-3.9.1.dev4 → prefect_client-3.9.1.dev5}/src/prefect/_sdk/fetcher.py +0 -0
- {prefect_client-3.9.1.dev4 → prefect_client-3.9.1.dev5}/src/prefect/_sdk/generator.py +0 -0
- {prefect_client-3.9.1.dev4 → prefect_client-3.9.1.dev5}/src/prefect/_sdk/models.py +0 -0
- {prefect_client-3.9.1.dev4 → prefect_client-3.9.1.dev5}/src/prefect/_sdk/naming.py +0 -0
- {prefect_client-3.9.1.dev4 → prefect_client-3.9.1.dev5}/src/prefect/_sdk/renderer.py +0 -0
- {prefect_client-3.9.1.dev4 → prefect_client-3.9.1.dev5}/src/prefect/_sdk/schema_converter.py +0 -0
- {prefect_client-3.9.1.dev4 → prefect_client-3.9.1.dev5}/src/prefect/_sdk/templates/__init__.py +0 -0
- {prefect_client-3.9.1.dev4 → prefect_client-3.9.1.dev5}/src/prefect/_sdk/templates/sdk.py.jinja +0 -0
- {prefect_client-3.9.1.dev4 → prefect_client-3.9.1.dev5}/src/prefect/_sdk/types.py +0 -0
- {prefect_client-3.9.1.dev4 → prefect_client-3.9.1.dev5}/src/prefect/_sdk/unions.py +0 -0
- {prefect_client-3.9.1.dev4 → prefect_client-3.9.1.dev5}/src/prefect/_vendor/croniter/__init__.py +0 -0
- {prefect_client-3.9.1.dev4 → prefect_client-3.9.1.dev5}/src/prefect/_vendor/croniter/croniter.py +0 -0
- {prefect_client-3.9.1.dev4 → prefect_client-3.9.1.dev5}/src/prefect/agent.py +0 -0
- {prefect_client-3.9.1.dev4 → prefect_client-3.9.1.dev5}/src/prefect/analytics/__init__.py +0 -0
- {prefect_client-3.9.1.dev4 → prefect_client-3.9.1.dev5}/src/prefect/artifacts.py +0 -0
- {prefect_client-3.9.1.dev4 → prefect_client-3.9.1.dev5}/src/prefect/assets/__init__.py +0 -0
- {prefect_client-3.9.1.dev4 → prefect_client-3.9.1.dev5}/src/prefect/assets/core.py +0 -0
- {prefect_client-3.9.1.dev4 → prefect_client-3.9.1.dev5}/src/prefect/assets/materialize.py +0 -0
- {prefect_client-3.9.1.dev4 → prefect_client-3.9.1.dev5}/src/prefect/automations.py +0 -0
- {prefect_client-3.9.1.dev4 → prefect_client-3.9.1.dev5}/src/prefect/blocks/AGENTS.md +0 -0
- {prefect_client-3.9.1.dev4 → prefect_client-3.9.1.dev5}/src/prefect/blocks/__init__.py +0 -0
- {prefect_client-3.9.1.dev4 → prefect_client-3.9.1.dev5}/src/prefect/blocks/abstract.py +0 -0
- {prefect_client-3.9.1.dev4 → prefect_client-3.9.1.dev5}/src/prefect/blocks/core.py +0 -0
- {prefect_client-3.9.1.dev4 → prefect_client-3.9.1.dev5}/src/prefect/blocks/fields.py +0 -0
- {prefect_client-3.9.1.dev4 → prefect_client-3.9.1.dev5}/src/prefect/blocks/notifications.py +0 -0
- {prefect_client-3.9.1.dev4 → prefect_client-3.9.1.dev5}/src/prefect/blocks/redis.py +0 -0
- {prefect_client-3.9.1.dev4 → prefect_client-3.9.1.dev5}/src/prefect/blocks/system.py +0 -0
- {prefect_client-3.9.1.dev4 → prefect_client-3.9.1.dev5}/src/prefect/blocks/webhook.py +0 -0
- {prefect_client-3.9.1.dev4 → prefect_client-3.9.1.dev5}/src/prefect/bundles/__init__.py +0 -0
- {prefect_client-3.9.1.dev4 → prefect_client-3.9.1.dev5}/src/prefect/bundles/_file_collector.py +0 -0
- {prefect_client-3.9.1.dev4 → prefect_client-3.9.1.dev5}/src/prefect/bundles/_ignore_filter.py +0 -0
- {prefect_client-3.9.1.dev4 → prefect_client-3.9.1.dev5}/src/prefect/bundles/_path_resolver.py +0 -0
- {prefect_client-3.9.1.dev4 → prefect_client-3.9.1.dev5}/src/prefect/bundles/_zip_builder.py +0 -0
- {prefect_client-3.9.1.dev4 → prefect_client-3.9.1.dev5}/src/prefect/bundles/_zip_extractor.py +0 -0
- {prefect_client-3.9.1.dev4 → prefect_client-3.9.1.dev5}/src/prefect/bundles/execute.py +0 -0
- {prefect_client-3.9.1.dev4 → prefect_client-3.9.1.dev5}/src/prefect/client/AGENTS.md +0 -0
- {prefect_client-3.9.1.dev4 → prefect_client-3.9.1.dev5}/src/prefect/client/__init__.py +0 -0
- {prefect_client-3.9.1.dev4 → prefect_client-3.9.1.dev5}/src/prefect/client/attribution.py +0 -0
- {prefect_client-3.9.1.dev4 → prefect_client-3.9.1.dev5}/src/prefect/client/base.py +0 -0
- {prefect_client-3.9.1.dev4 → prefect_client-3.9.1.dev5}/src/prefect/client/cloud.py +0 -0
- {prefect_client-3.9.1.dev4 → prefect_client-3.9.1.dev5}/src/prefect/client/collections.py +0 -0
- {prefect_client-3.9.1.dev4 → prefect_client-3.9.1.dev5}/src/prefect/client/constants.py +0 -0
- {prefect_client-3.9.1.dev4 → prefect_client-3.9.1.dev5}/src/prefect/client/orchestration/__init__.py +0 -0
- {prefect_client-3.9.1.dev4 → prefect_client-3.9.1.dev5}/src/prefect/client/orchestration/_artifacts/__init__.py +0 -0
- {prefect_client-3.9.1.dev4 → prefect_client-3.9.1.dev5}/src/prefect/client/orchestration/_artifacts/client.py +0 -0
- {prefect_client-3.9.1.dev4 → prefect_client-3.9.1.dev5}/src/prefect/client/orchestration/_automations/__init__.py +0 -0
- {prefect_client-3.9.1.dev4 → prefect_client-3.9.1.dev5}/src/prefect/client/orchestration/_automations/client.py +0 -0
- {prefect_client-3.9.1.dev4 → prefect_client-3.9.1.dev5}/src/prefect/client/orchestration/_blocks_documents/__init__.py +0 -0
- {prefect_client-3.9.1.dev4 → prefect_client-3.9.1.dev5}/src/prefect/client/orchestration/_blocks_documents/client.py +0 -0
- {prefect_client-3.9.1.dev4 → prefect_client-3.9.1.dev5}/src/prefect/client/orchestration/_blocks_schemas/__init__.py +0 -0
- {prefect_client-3.9.1.dev4 → prefect_client-3.9.1.dev5}/src/prefect/client/orchestration/_blocks_schemas/client.py +0 -0
- {prefect_client-3.9.1.dev4 → prefect_client-3.9.1.dev5}/src/prefect/client/orchestration/_blocks_types/__init__.py +0 -0
- {prefect_client-3.9.1.dev4 → prefect_client-3.9.1.dev5}/src/prefect/client/orchestration/_blocks_types/client.py +0 -0
- {prefect_client-3.9.1.dev4 → prefect_client-3.9.1.dev5}/src/prefect/client/orchestration/_concurrency_limits/__init__.py +0 -0
- {prefect_client-3.9.1.dev4 → prefect_client-3.9.1.dev5}/src/prefect/client/orchestration/_concurrency_limits/client.py +0 -0
- {prefect_client-3.9.1.dev4 → prefect_client-3.9.1.dev5}/src/prefect/client/orchestration/_deployments/__init__.py +0 -0
- {prefect_client-3.9.1.dev4 → prefect_client-3.9.1.dev5}/src/prefect/client/orchestration/_deployments/client.py +0 -0
- {prefect_client-3.9.1.dev4 → prefect_client-3.9.1.dev5}/src/prefect/client/orchestration/_events/__init__.py +0 -0
- {prefect_client-3.9.1.dev4 → prefect_client-3.9.1.dev5}/src/prefect/client/orchestration/_events/client.py +0 -0
- {prefect_client-3.9.1.dev4 → prefect_client-3.9.1.dev5}/src/prefect/client/orchestration/_flow_runs/__init__.py +0 -0
- {prefect_client-3.9.1.dev4 → prefect_client-3.9.1.dev5}/src/prefect/client/orchestration/_flow_runs/client.py +0 -0
- {prefect_client-3.9.1.dev4 → prefect_client-3.9.1.dev5}/src/prefect/client/orchestration/_flows/__init__.py +0 -0
- {prefect_client-3.9.1.dev4 → prefect_client-3.9.1.dev5}/src/prefect/client/orchestration/_flows/client.py +0 -0
- {prefect_client-3.9.1.dev4 → prefect_client-3.9.1.dev5}/src/prefect/client/orchestration/_logs/__init__.py +0 -0
- {prefect_client-3.9.1.dev4 → prefect_client-3.9.1.dev5}/src/prefect/client/orchestration/_logs/client.py +0 -0
- {prefect_client-3.9.1.dev4 → prefect_client-3.9.1.dev5}/src/prefect/client/orchestration/_variables/__init__.py +0 -0
- {prefect_client-3.9.1.dev4 → prefect_client-3.9.1.dev5}/src/prefect/client/orchestration/_variables/client.py +0 -0
- {prefect_client-3.9.1.dev4 → prefect_client-3.9.1.dev5}/src/prefect/client/orchestration/_work_pools/__init__.py +0 -0
- {prefect_client-3.9.1.dev4 → prefect_client-3.9.1.dev5}/src/prefect/client/orchestration/base.py +0 -0
- {prefect_client-3.9.1.dev4 → prefect_client-3.9.1.dev5}/src/prefect/client/orchestration/routes.py +0 -0
- {prefect_client-3.9.1.dev4 → prefect_client-3.9.1.dev5}/src/prefect/client/schemas/__init__.py +0 -0
- {prefect_client-3.9.1.dev4 → prefect_client-3.9.1.dev5}/src/prefect/client/schemas/actions.py +0 -0
- {prefect_client-3.9.1.dev4 → prefect_client-3.9.1.dev5}/src/prefect/client/schemas/events.py +0 -0
- {prefect_client-3.9.1.dev4 → prefect_client-3.9.1.dev5}/src/prefect/client/schemas/filters.py +0 -0
- {prefect_client-3.9.1.dev4 → prefect_client-3.9.1.dev5}/src/prefect/client/schemas/objects.py +0 -0
- {prefect_client-3.9.1.dev4 → prefect_client-3.9.1.dev5}/src/prefect/client/schemas/responses.py +0 -0
- {prefect_client-3.9.1.dev4 → prefect_client-3.9.1.dev5}/src/prefect/client/schemas/schedules.py +0 -0
- {prefect_client-3.9.1.dev4 → prefect_client-3.9.1.dev5}/src/prefect/client/schemas/worker_channel.py +0 -0
- {prefect_client-3.9.1.dev4 → prefect_client-3.9.1.dev5}/src/prefect/client/subscriptions.py +0 -0
- {prefect_client-3.9.1.dev4 → prefect_client-3.9.1.dev5}/src/prefect/client/types/__init__.py +0 -0
- {prefect_client-3.9.1.dev4 → prefect_client-3.9.1.dev5}/src/prefect/client/types/flexible_schedule_list.py +0 -0
- {prefect_client-3.9.1.dev4 → prefect_client-3.9.1.dev5}/src/prefect/client/utilities.py +0 -0
- {prefect_client-3.9.1.dev4 → prefect_client-3.9.1.dev5}/src/prefect/concurrency/AGENTS.md +0 -0
- {prefect_client-3.9.1.dev4 → prefect_client-3.9.1.dev5}/src/prefect/concurrency/__init__.py +0 -0
- {prefect_client-3.9.1.dev4 → prefect_client-3.9.1.dev5}/src/prefect/concurrency/_asyncio.py +0 -0
- {prefect_client-3.9.1.dev4 → prefect_client-3.9.1.dev5}/src/prefect/concurrency/_events.py +0 -0
- {prefect_client-3.9.1.dev4 → prefect_client-3.9.1.dev5}/src/prefect/concurrency/_leases.py +0 -0
- {prefect_client-3.9.1.dev4 → prefect_client-3.9.1.dev5}/src/prefect/concurrency/_sync.py +0 -0
- {prefect_client-3.9.1.dev4 → prefect_client-3.9.1.dev5}/src/prefect/concurrency/asyncio.py +0 -0
- {prefect_client-3.9.1.dev4 → prefect_client-3.9.1.dev5}/src/prefect/concurrency/context.py +0 -0
- {prefect_client-3.9.1.dev4 → prefect_client-3.9.1.dev5}/src/prefect/concurrency/services.py +0 -0
- {prefect_client-3.9.1.dev4 → prefect_client-3.9.1.dev5}/src/prefect/concurrency/sync.py +0 -0
- {prefect_client-3.9.1.dev4 → prefect_client-3.9.1.dev5}/src/prefect/concurrency/v1/__init__.py +0 -0
- {prefect_client-3.9.1.dev4 → prefect_client-3.9.1.dev5}/src/prefect/concurrency/v1/_asyncio.py +0 -0
- {prefect_client-3.9.1.dev4 → prefect_client-3.9.1.dev5}/src/prefect/concurrency/v1/_events.py +0 -0
- {prefect_client-3.9.1.dev4 → prefect_client-3.9.1.dev5}/src/prefect/concurrency/v1/asyncio.py +0 -0
- {prefect_client-3.9.1.dev4 → prefect_client-3.9.1.dev5}/src/prefect/concurrency/v1/context.py +0 -0
- {prefect_client-3.9.1.dev4 → prefect_client-3.9.1.dev5}/src/prefect/concurrency/v1/services.py +0 -0
- {prefect_client-3.9.1.dev4 → prefect_client-3.9.1.dev5}/src/prefect/concurrency/v1/sync.py +0 -0
- {prefect_client-3.9.1.dev4 → prefect_client-3.9.1.dev5}/src/prefect/context.py +0 -0
- {prefect_client-3.9.1.dev4 → prefect_client-3.9.1.dev5}/src/prefect/deployments/AGENTS.md +0 -0
- {prefect_client-3.9.1.dev4 → prefect_client-3.9.1.dev5}/src/prefect/deployments/__init__.py +0 -0
- {prefect_client-3.9.1.dev4 → prefect_client-3.9.1.dev5}/src/prefect/deployments/base.py +0 -0
- {prefect_client-3.9.1.dev4 → prefect_client-3.9.1.dev5}/src/prefect/deployments/deployments.py +0 -0
- {prefect_client-3.9.1.dev4 → prefect_client-3.9.1.dev5}/src/prefect/deployments/flow_runs.py +0 -0
- {prefect_client-3.9.1.dev4 → prefect_client-3.9.1.dev5}/src/prefect/deployments/runner.py +0 -0
- {prefect_client-3.9.1.dev4 → prefect_client-3.9.1.dev5}/src/prefect/deployments/schedules.py +0 -0
- {prefect_client-3.9.1.dev4 → prefect_client-3.9.1.dev5}/src/prefect/deployments/steps/__init__.py +0 -0
- {prefect_client-3.9.1.dev4 → prefect_client-3.9.1.dev5}/src/prefect/deployments/steps/core.py +0 -0
- {prefect_client-3.9.1.dev4 → prefect_client-3.9.1.dev5}/src/prefect/deployments/steps/pull.py +0 -0
- {prefect_client-3.9.1.dev4 → prefect_client-3.9.1.dev5}/src/prefect/deployments/steps/utility.py +0 -0
- {prefect_client-3.9.1.dev4 → prefect_client-3.9.1.dev5}/src/prefect/docker/__init__.py +0 -0
- {prefect_client-3.9.1.dev4 → prefect_client-3.9.1.dev5}/src/prefect/docker/_buildx.py +0 -0
- {prefect_client-3.9.1.dev4 → prefect_client-3.9.1.dev5}/src/prefect/docker/docker_image.py +0 -0
- {prefect_client-3.9.1.dev4 → prefect_client-3.9.1.dev5}/src/prefect/engine.py +0 -0
- {prefect_client-3.9.1.dev4 → prefect_client-3.9.1.dev5}/src/prefect/events/AGENTS.md +0 -0
- {prefect_client-3.9.1.dev4 → prefect_client-3.9.1.dev5}/src/prefect/events/__init__.py +0 -0
- {prefect_client-3.9.1.dev4 → prefect_client-3.9.1.dev5}/src/prefect/events/actions.py +0 -0
- {prefect_client-3.9.1.dev4 → prefect_client-3.9.1.dev5}/src/prefect/events/clients.py +0 -0
- {prefect_client-3.9.1.dev4 → prefect_client-3.9.1.dev5}/src/prefect/events/filters.py +0 -0
- {prefect_client-3.9.1.dev4 → prefect_client-3.9.1.dev5}/src/prefect/events/related.py +0 -0
- {prefect_client-3.9.1.dev4 → prefect_client-3.9.1.dev5}/src/prefect/events/schemas/__init__.py +0 -0
- {prefect_client-3.9.1.dev4 → prefect_client-3.9.1.dev5}/src/prefect/events/schemas/automations.py +0 -0
- {prefect_client-3.9.1.dev4 → prefect_client-3.9.1.dev5}/src/prefect/events/schemas/deployment_triggers.py +0 -0
- {prefect_client-3.9.1.dev4 → prefect_client-3.9.1.dev5}/src/prefect/events/schemas/labelling.py +0 -0
- {prefect_client-3.9.1.dev4 → prefect_client-3.9.1.dev5}/src/prefect/events/subscribers.py +0 -0
- {prefect_client-3.9.1.dev4 → prefect_client-3.9.1.dev5}/src/prefect/events/utilities.py +0 -0
- {prefect_client-3.9.1.dev4 → prefect_client-3.9.1.dev5}/src/prefect/events/worker.py +0 -0
- {prefect_client-3.9.1.dev4 → prefect_client-3.9.1.dev5}/src/prefect/exceptions.py +0 -0
- {prefect_client-3.9.1.dev4 → prefect_client-3.9.1.dev5}/src/prefect/filesystems.py +0 -0
- {prefect_client-3.9.1.dev4 → prefect_client-3.9.1.dev5}/src/prefect/flow_engine.py +0 -0
- {prefect_client-3.9.1.dev4 → prefect_client-3.9.1.dev5}/src/prefect/flow_runs.py +0 -0
- {prefect_client-3.9.1.dev4 → prefect_client-3.9.1.dev5}/src/prefect/flows.py +0 -0
- {prefect_client-3.9.1.dev4 → prefect_client-3.9.1.dev5}/src/prefect/futures.py +0 -0
- {prefect_client-3.9.1.dev4 → prefect_client-3.9.1.dev5}/src/prefect/infrastructure/__init__.py +0 -0
- {prefect_client-3.9.1.dev4 → prefect_client-3.9.1.dev5}/src/prefect/infrastructure/base.py +0 -0
- {prefect_client-3.9.1.dev4 → prefect_client-3.9.1.dev5}/src/prefect/infrastructure/provisioners/__init__.py +0 -0
- {prefect_client-3.9.1.dev4 → prefect_client-3.9.1.dev5}/src/prefect/infrastructure/provisioners/cloud_run.py +0 -0
- {prefect_client-3.9.1.dev4 → prefect_client-3.9.1.dev5}/src/prefect/infrastructure/provisioners/coiled.py +0 -0
- {prefect_client-3.9.1.dev4 → prefect_client-3.9.1.dev5}/src/prefect/infrastructure/provisioners/container_instance.py +0 -0
- {prefect_client-3.9.1.dev4 → prefect_client-3.9.1.dev5}/src/prefect/infrastructure/provisioners/ecs.py +0 -0
- {prefect_client-3.9.1.dev4 → prefect_client-3.9.1.dev5}/src/prefect/infrastructure/provisioners/modal.py +0 -0
- {prefect_client-3.9.1.dev4 → prefect_client-3.9.1.dev5}/src/prefect/input/__init__.py +0 -0
- {prefect_client-3.9.1.dev4 → prefect_client-3.9.1.dev5}/src/prefect/input/actions.py +0 -0
- {prefect_client-3.9.1.dev4 → prefect_client-3.9.1.dev5}/src/prefect/input/run_input.py +0 -0
- {prefect_client-3.9.1.dev4 → prefect_client-3.9.1.dev5}/src/prefect/locking/__init__.py +0 -0
- {prefect_client-3.9.1.dev4 → prefect_client-3.9.1.dev5}/src/prefect/locking/_filelock.py +0 -0
- {prefect_client-3.9.1.dev4 → prefect_client-3.9.1.dev5}/src/prefect/locking/filesystem.py +0 -0
- {prefect_client-3.9.1.dev4 → prefect_client-3.9.1.dev5}/src/prefect/locking/memory.py +0 -0
- {prefect_client-3.9.1.dev4 → prefect_client-3.9.1.dev5}/src/prefect/locking/protocol.py +0 -0
- {prefect_client-3.9.1.dev4 → prefect_client-3.9.1.dev5}/src/prefect/logging/AGENTS.md +0 -0
- {prefect_client-3.9.1.dev4 → prefect_client-3.9.1.dev5}/src/prefect/logging/__init__.py +0 -0
- {prefect_client-3.9.1.dev4 → prefect_client-3.9.1.dev5}/src/prefect/logging/clients.py +0 -0
- {prefect_client-3.9.1.dev4 → prefect_client-3.9.1.dev5}/src/prefect/logging/configuration.py +0 -0
- {prefect_client-3.9.1.dev4 → prefect_client-3.9.1.dev5}/src/prefect/logging/filters.py +0 -0
- {prefect_client-3.9.1.dev4 → prefect_client-3.9.1.dev5}/src/prefect/logging/formatters.py +0 -0
- {prefect_client-3.9.1.dev4 → prefect_client-3.9.1.dev5}/src/prefect/logging/handlers.py +0 -0
- {prefect_client-3.9.1.dev4 → prefect_client-3.9.1.dev5}/src/prefect/logging/highlighters.py +0 -0
- {prefect_client-3.9.1.dev4 → prefect_client-3.9.1.dev5}/src/prefect/logging/loggers.py +0 -0
- {prefect_client-3.9.1.dev4 → prefect_client-3.9.1.dev5}/src/prefect/logging/logging.yml +0 -0
- {prefect_client-3.9.1.dev4 → prefect_client-3.9.1.dev5}/src/prefect/main.py +0 -0
- {prefect_client-3.9.1.dev4 → prefect_client-3.9.1.dev5}/src/prefect/plugins.py +0 -0
- {prefect_client-3.9.1.dev4 → prefect_client-3.9.1.dev5}/src/prefect/py.typed +0 -0
- {prefect_client-3.9.1.dev4 → prefect_client-3.9.1.dev5}/src/prefect/results.py +0 -0
- {prefect_client-3.9.1.dev4 → prefect_client-3.9.1.dev5}/src/prefect/runner/AGENTS.md +0 -0
- {prefect_client-3.9.1.dev4 → prefect_client-3.9.1.dev5}/src/prefect/runner/__init__.py +0 -0
- {prefect_client-3.9.1.dev4 → prefect_client-3.9.1.dev5}/src/prefect/runner/_cancel_finalizer.py +0 -0
- {prefect_client-3.9.1.dev4 → prefect_client-3.9.1.dev5}/src/prefect/runner/_cancellation_manager.py +0 -0
- {prefect_client-3.9.1.dev4 → prefect_client-3.9.1.dev5}/src/prefect/runner/_control_channel.py +0 -0
- {prefect_client-3.9.1.dev4 → prefect_client-3.9.1.dev5}/src/prefect/runner/_deployment_registry.py +0 -0
- {prefect_client-3.9.1.dev4 → prefect_client-3.9.1.dev5}/src/prefect/runner/_event_emitter.py +0 -0
- {prefect_client-3.9.1.dev4 → prefect_client-3.9.1.dev5}/src/prefect/runner/_flow_resolver.py +0 -0
- {prefect_client-3.9.1.dev4 → prefect_client-3.9.1.dev5}/src/prefect/runner/_flow_run_executor.py +0 -0
- {prefect_client-3.9.1.dev4 → prefect_client-3.9.1.dev5}/src/prefect/runner/_hook_runner.py +0 -0
- {prefect_client-3.9.1.dev4 → prefect_client-3.9.1.dev5}/src/prefect/runner/_limit_manager.py +0 -0
- {prefect_client-3.9.1.dev4 → prefect_client-3.9.1.dev5}/src/prefect/runner/_process_manager.py +0 -0
- {prefect_client-3.9.1.dev4 → prefect_client-3.9.1.dev5}/src/prefect/runner/_scheduled_run_poller.py +0 -0
- {prefect_client-3.9.1.dev4 → prefect_client-3.9.1.dev5}/src/prefect/runner/_starter_bundle.py +0 -0
- {prefect_client-3.9.1.dev4 → prefect_client-3.9.1.dev5}/src/prefect/runner/_starter_direct.py +0 -0
- {prefect_client-3.9.1.dev4 → prefect_client-3.9.1.dev5}/src/prefect/runner/_starter_engine.py +0 -0
- {prefect_client-3.9.1.dev4 → prefect_client-3.9.1.dev5}/src/prefect/runner/_state_proposer.py +0 -0
- {prefect_client-3.9.1.dev4 → prefect_client-3.9.1.dev5}/src/prefect/runner/_uv_command.py +0 -0
- {prefect_client-3.9.1.dev4 → prefect_client-3.9.1.dev5}/src/prefect/runner/_workspace_hook_runner.py +0 -0
- {prefect_client-3.9.1.dev4 → prefect_client-3.9.1.dev5}/src/prefect/runner/_workspace_resolver.py +0 -0
- {prefect_client-3.9.1.dev4 → prefect_client-3.9.1.dev5}/src/prefect/runner/_workspace_runtime.py +0 -0
- {prefect_client-3.9.1.dev4 → prefect_client-3.9.1.dev5}/src/prefect/runner/_workspace_runtime_bootstrap.py +0 -0
- {prefect_client-3.9.1.dev4 → prefect_client-3.9.1.dev5}/src/prefect/runner/_workspace_starter.py +0 -0
- {prefect_client-3.9.1.dev4 → prefect_client-3.9.1.dev5}/src/prefect/runner/_workspace_supervisor.py +0 -0
- {prefect_client-3.9.1.dev4 → prefect_client-3.9.1.dev5}/src/prefect/runner/runner.py +0 -0
- {prefect_client-3.9.1.dev4 → prefect_client-3.9.1.dev5}/src/prefect/runner/server.py +0 -0
- {prefect_client-3.9.1.dev4 → prefect_client-3.9.1.dev5}/src/prefect/runner/storage.py +0 -0
- {prefect_client-3.9.1.dev4 → prefect_client-3.9.1.dev5}/src/prefect/runtime/__init__.py +0 -0
- {prefect_client-3.9.1.dev4 → prefect_client-3.9.1.dev5}/src/prefect/runtime/deployment.py +0 -0
- {prefect_client-3.9.1.dev4 → prefect_client-3.9.1.dev5}/src/prefect/runtime/flow_run.py +0 -0
- {prefect_client-3.9.1.dev4 → prefect_client-3.9.1.dev5}/src/prefect/runtime/task_run.py +0 -0
- {prefect_client-3.9.1.dev4 → prefect_client-3.9.1.dev5}/src/prefect/schedules.py +0 -0
- {prefect_client-3.9.1.dev4 → prefect_client-3.9.1.dev5}/src/prefect/serializers.py +0 -0
- {prefect_client-3.9.1.dev4 → prefect_client-3.9.1.dev5}/src/prefect/server/api/__init__.py +0 -0
- {prefect_client-3.9.1.dev4 → prefect_client-3.9.1.dev5}/src/prefect/server/api/_ui_static.py +0 -0
- {prefect_client-3.9.1.dev4 → prefect_client-3.9.1.dev5}/src/prefect/server/api/admin.py +0 -0
- {prefect_client-3.9.1.dev4 → prefect_client-3.9.1.dev5}/src/prefect/server/api/artifacts.py +0 -0
- {prefect_client-3.9.1.dev4 → prefect_client-3.9.1.dev5}/src/prefect/server/api/automations.py +0 -0
- {prefect_client-3.9.1.dev4 → prefect_client-3.9.1.dev5}/src/prefect/server/api/background_workers.py +0 -0
- {prefect_client-3.9.1.dev4 → prefect_client-3.9.1.dev5}/src/prefect/server/api/block_capabilities.py +0 -0
- {prefect_client-3.9.1.dev4 → prefect_client-3.9.1.dev5}/src/prefect/server/api/block_documents.py +0 -0
- {prefect_client-3.9.1.dev4 → prefect_client-3.9.1.dev5}/src/prefect/server/api/block_schemas.py +0 -0
- {prefect_client-3.9.1.dev4 → prefect_client-3.9.1.dev5}/src/prefect/server/api/block_types.py +0 -0
- {prefect_client-3.9.1.dev4 → prefect_client-3.9.1.dev5}/src/prefect/server/api/collections.py +0 -0
- {prefect_client-3.9.1.dev4 → prefect_client-3.9.1.dev5}/src/prefect/server/api/collections_data/views/aggregate-worker-metadata.json +0 -0
- {prefect_client-3.9.1.dev4 → prefect_client-3.9.1.dev5}/src/prefect/server/api/concurrency_limits.py +0 -0
- {prefect_client-3.9.1.dev4 → prefect_client-3.9.1.dev5}/src/prefect/server/api/concurrency_limits_v2.py +0 -0
- {prefect_client-3.9.1.dev4 → prefect_client-3.9.1.dev5}/src/prefect/server/api/csrf_token.py +0 -0
- {prefect_client-3.9.1.dev4 → prefect_client-3.9.1.dev5}/src/prefect/server/api/dependencies.py +0 -0
- {prefect_client-3.9.1.dev4 → prefect_client-3.9.1.dev5}/src/prefect/server/api/deployments.py +0 -0
- {prefect_client-3.9.1.dev4 → prefect_client-3.9.1.dev5}/src/prefect/server/api/events.py +0 -0
- {prefect_client-3.9.1.dev4 → prefect_client-3.9.1.dev5}/src/prefect/server/api/flow_run_states.py +0 -0
- {prefect_client-3.9.1.dev4 → prefect_client-3.9.1.dev5}/src/prefect/server/api/flow_runs.py +0 -0
- {prefect_client-3.9.1.dev4 → prefect_client-3.9.1.dev5}/src/prefect/server/api/flows.py +0 -0
- {prefect_client-3.9.1.dev4 → prefect_client-3.9.1.dev5}/src/prefect/server/api/logs.py +0 -0
- {prefect_client-3.9.1.dev4 → prefect_client-3.9.1.dev5}/src/prefect/server/api/middleware.py +0 -0
- {prefect_client-3.9.1.dev4 → prefect_client-3.9.1.dev5}/src/prefect/server/api/observed_states.py +0 -0
- {prefect_client-3.9.1.dev4 → prefect_client-3.9.1.dev5}/src/prefect/server/api/root.py +0 -0
- {prefect_client-3.9.1.dev4 → prefect_client-3.9.1.dev5}/src/prefect/server/api/run_history.py +0 -0
- {prefect_client-3.9.1.dev4 → prefect_client-3.9.1.dev5}/src/prefect/server/api/saved_searches.py +0 -0
- {prefect_client-3.9.1.dev4 → prefect_client-3.9.1.dev5}/src/prefect/server/api/server.py +0 -0
- {prefect_client-3.9.1.dev4 → prefect_client-3.9.1.dev5}/src/prefect/server/api/static/prefect-logo-mark-gradient.png +0 -0
- {prefect_client-3.9.1.dev4 → prefect_client-3.9.1.dev5}/src/prefect/server/api/task_run_states.py +0 -0
- {prefect_client-3.9.1.dev4 → prefect_client-3.9.1.dev5}/src/prefect/server/api/task_runs.py +0 -0
- {prefect_client-3.9.1.dev4 → prefect_client-3.9.1.dev5}/src/prefect/server/api/task_workers.py +0 -0
- {prefect_client-3.9.1.dev4 → prefect_client-3.9.1.dev5}/src/prefect/server/api/templates.py +0 -0
- {prefect_client-3.9.1.dev4 → prefect_client-3.9.1.dev5}/src/prefect/server/api/ui/__init__.py +0 -0
- {prefect_client-3.9.1.dev4 → prefect_client-3.9.1.dev5}/src/prefect/server/api/ui/flow_runs.py +0 -0
- {prefect_client-3.9.1.dev4 → prefect_client-3.9.1.dev5}/src/prefect/server/api/ui/flows.py +0 -0
- {prefect_client-3.9.1.dev4 → prefect_client-3.9.1.dev5}/src/prefect/server/api/ui/schemas.py +0 -0
- {prefect_client-3.9.1.dev4 → prefect_client-3.9.1.dev5}/src/prefect/server/api/ui/task_runs.py +0 -0
- {prefect_client-3.9.1.dev4 → prefect_client-3.9.1.dev5}/src/prefect/server/api/validation.py +0 -0
- {prefect_client-3.9.1.dev4 → prefect_client-3.9.1.dev5}/src/prefect/server/api/variables.py +0 -0
- {prefect_client-3.9.1.dev4 → prefect_client-3.9.1.dev5}/src/prefect/server/api/work_queues.py +0 -0
- {prefect_client-3.9.1.dev4 → prefect_client-3.9.1.dev5}/src/prefect/server/api/workers.py +0 -0
- {prefect_client-3.9.1.dev4 → prefect_client-3.9.1.dev5}/src/prefect/settings/AGENTS.md +0 -0
- {prefect_client-3.9.1.dev4 → prefect_client-3.9.1.dev5}/src/prefect/settings/__init__.py +0 -0
- {prefect_client-3.9.1.dev4 → prefect_client-3.9.1.dev5}/src/prefect/settings/_types.py +0 -0
- {prefect_client-3.9.1.dev4 → prefect_client-3.9.1.dev5}/src/prefect/settings/base.py +0 -0
- {prefect_client-3.9.1.dev4 → prefect_client-3.9.1.dev5}/src/prefect/settings/constants.py +0 -0
- {prefect_client-3.9.1.dev4 → prefect_client-3.9.1.dev5}/src/prefect/settings/context.py +0 -0
- {prefect_client-3.9.1.dev4 → prefect_client-3.9.1.dev5}/src/prefect/settings/legacy.py +0 -0
- {prefect_client-3.9.1.dev4 → prefect_client-3.9.1.dev5}/src/prefect/settings/models/__init__.py +0 -0
- {prefect_client-3.9.1.dev4 → prefect_client-3.9.1.dev5}/src/prefect/settings/models/_defaults.py +0 -0
- {prefect_client-3.9.1.dev4 → prefect_client-3.9.1.dev5}/src/prefect/settings/models/api.py +0 -0
- {prefect_client-3.9.1.dev4 → prefect_client-3.9.1.dev5}/src/prefect/settings/models/cli.py +0 -0
- {prefect_client-3.9.1.dev4 → prefect_client-3.9.1.dev5}/src/prefect/settings/models/client.py +0 -0
- {prefect_client-3.9.1.dev4 → prefect_client-3.9.1.dev5}/src/prefect/settings/models/cloud.py +0 -0
- {prefect_client-3.9.1.dev4 → prefect_client-3.9.1.dev5}/src/prefect/settings/models/deployments.py +0 -0
- {prefect_client-3.9.1.dev4 → prefect_client-3.9.1.dev5}/src/prefect/settings/models/events.py +0 -0
- {prefect_client-3.9.1.dev4 → prefect_client-3.9.1.dev5}/src/prefect/settings/models/experiments.py +0 -0
- {prefect_client-3.9.1.dev4 → prefect_client-3.9.1.dev5}/src/prefect/settings/models/flows.py +0 -0
- {prefect_client-3.9.1.dev4 → prefect_client-3.9.1.dev5}/src/prefect/settings/models/internal.py +0 -0
- {prefect_client-3.9.1.dev4 → prefect_client-3.9.1.dev5}/src/prefect/settings/models/logging.py +0 -0
- {prefect_client-3.9.1.dev4 → prefect_client-3.9.1.dev5}/src/prefect/settings/models/plugins.py +0 -0
- {prefect_client-3.9.1.dev4 → prefect_client-3.9.1.dev5}/src/prefect/settings/models/results.py +0 -0
- {prefect_client-3.9.1.dev4 → prefect_client-3.9.1.dev5}/src/prefect/settings/models/root.py +0 -0
- {prefect_client-3.9.1.dev4 → prefect_client-3.9.1.dev5}/src/prefect/settings/models/runner.py +0 -0
- {prefect_client-3.9.1.dev4 → prefect_client-3.9.1.dev5}/src/prefect/settings/models/server/__init__.py +0 -0
- {prefect_client-3.9.1.dev4 → prefect_client-3.9.1.dev5}/src/prefect/settings/models/server/api.py +0 -0
- {prefect_client-3.9.1.dev4 → prefect_client-3.9.1.dev5}/src/prefect/settings/models/server/concurrency.py +0 -0
- {prefect_client-3.9.1.dev4 → prefect_client-3.9.1.dev5}/src/prefect/settings/models/server/database.py +0 -0
- {prefect_client-3.9.1.dev4 → prefect_client-3.9.1.dev5}/src/prefect/settings/models/server/deployments.py +0 -0
- {prefect_client-3.9.1.dev4 → prefect_client-3.9.1.dev5}/src/prefect/settings/models/server/docket.py +0 -0
- {prefect_client-3.9.1.dev4 → prefect_client-3.9.1.dev5}/src/prefect/settings/models/server/ephemeral.py +0 -0
- {prefect_client-3.9.1.dev4 → prefect_client-3.9.1.dev5}/src/prefect/settings/models/server/events.py +0 -0
- {prefect_client-3.9.1.dev4 → prefect_client-3.9.1.dev5}/src/prefect/settings/models/server/flow_run_graph.py +0 -0
- {prefect_client-3.9.1.dev4 → prefect_client-3.9.1.dev5}/src/prefect/settings/models/server/logs.py +0 -0
- {prefect_client-3.9.1.dev4 → prefect_client-3.9.1.dev5}/src/prefect/settings/models/server/root.py +0 -0
- {prefect_client-3.9.1.dev4 → prefect_client-3.9.1.dev5}/src/prefect/settings/models/server/services.py +0 -0
- {prefect_client-3.9.1.dev4 → prefect_client-3.9.1.dev5}/src/prefect/settings/models/server/tasks.py +0 -0
- {prefect_client-3.9.1.dev4 → prefect_client-3.9.1.dev5}/src/prefect/settings/models/server/ui.py +0 -0
- {prefect_client-3.9.1.dev4 → prefect_client-3.9.1.dev5}/src/prefect/settings/models/server/worker_channel.py +0 -0
- {prefect_client-3.9.1.dev4 → prefect_client-3.9.1.dev5}/src/prefect/settings/models/tasks.py +0 -0
- {prefect_client-3.9.1.dev4 → prefect_client-3.9.1.dev5}/src/prefect/settings/models/telemetry.py +0 -0
- {prefect_client-3.9.1.dev4 → prefect_client-3.9.1.dev5}/src/prefect/settings/models/testing.py +0 -0
- {prefect_client-3.9.1.dev4 → prefect_client-3.9.1.dev5}/src/prefect/settings/models/worker.py +0 -0
- {prefect_client-3.9.1.dev4 → prefect_client-3.9.1.dev5}/src/prefect/settings/profiles.py +0 -0
- {prefect_client-3.9.1.dev4 → prefect_client-3.9.1.dev5}/src/prefect/settings/profiles.toml +0 -0
- {prefect_client-3.9.1.dev4 → prefect_client-3.9.1.dev5}/src/prefect/settings/sources.py +0 -0
- {prefect_client-3.9.1.dev4 → prefect_client-3.9.1.dev5}/src/prefect/states.py +0 -0
- {prefect_client-3.9.1.dev4 → prefect_client-3.9.1.dev5}/src/prefect/task_runners.py +0 -0
- {prefect_client-3.9.1.dev4 → prefect_client-3.9.1.dev5}/src/prefect/task_runs.py +0 -0
- {prefect_client-3.9.1.dev4 → prefect_client-3.9.1.dev5}/src/prefect/task_worker.py +0 -0
- {prefect_client-3.9.1.dev4 → prefect_client-3.9.1.dev5}/src/prefect/tasks.py +0 -0
- {prefect_client-3.9.1.dev4 → prefect_client-3.9.1.dev5}/src/prefect/telemetry/__init__.py +0 -0
- {prefect_client-3.9.1.dev4 → prefect_client-3.9.1.dev5}/src/prefect/telemetry/run_telemetry.py +0 -0
- {prefect_client-3.9.1.dev4 → prefect_client-3.9.1.dev5}/src/prefect/transactions.py +0 -0
- {prefect_client-3.9.1.dev4 → prefect_client-3.9.1.dev5}/src/prefect/types/__init__.py +0 -0
- {prefect_client-3.9.1.dev4 → prefect_client-3.9.1.dev5}/src/prefect/types/_concurrency.py +0 -0
- {prefect_client-3.9.1.dev4 → prefect_client-3.9.1.dev5}/src/prefect/types/_datetime.py +0 -0
- {prefect_client-3.9.1.dev4 → prefect_client-3.9.1.dev5}/src/prefect/types/_datetime_deprecations.py +0 -0
- {prefect_client-3.9.1.dev4 → prefect_client-3.9.1.dev5}/src/prefect/types/entrypoint.py +0 -0
- {prefect_client-3.9.1.dev4 → prefect_client-3.9.1.dev5}/src/prefect/types/names.py +0 -0
- {prefect_client-3.9.1.dev4 → prefect_client-3.9.1.dev5}/src/prefect/utilities/AGENTS.md +0 -0
- {prefect_client-3.9.1.dev4 → prefect_client-3.9.1.dev5}/src/prefect/utilities/__init__.py +0 -0
- {prefect_client-3.9.1.dev4 → prefect_client-3.9.1.dev5}/src/prefect/utilities/annotations.py +0 -0
- {prefect_client-3.9.1.dev4 → prefect_client-3.9.1.dev5}/src/prefect/utilities/asyncutils/AGENTS.md +0 -0
- {prefect_client-3.9.1.dev4 → prefect_client-3.9.1.dev5}/src/prefect/utilities/asyncutils/__init__.py +0 -0
- {prefect_client-3.9.1.dev4 → prefect_client-3.9.1.dev5}/src/prefect/utilities/callables/AGENTS.md +0 -0
- {prefect_client-3.9.1.dev4 → prefect_client-3.9.1.dev5}/src/prefect/utilities/callables/__init__.py +0 -0
- {prefect_client-3.9.1.dev4 → prefect_client-3.9.1.dev5}/src/prefect/utilities/collections.py +0 -0
- {prefect_client-3.9.1.dev4 → prefect_client-3.9.1.dev5}/src/prefect/utilities/compat.py +0 -0
- {prefect_client-3.9.1.dev4 → prefect_client-3.9.1.dev5}/src/prefect/utilities/context.py +0 -0
- {prefect_client-3.9.1.dev4 → prefect_client-3.9.1.dev5}/src/prefect/utilities/dispatch.py +0 -0
- {prefect_client-3.9.1.dev4 → prefect_client-3.9.1.dev5}/src/prefect/utilities/dockerutils.py +0 -0
- {prefect_client-3.9.1.dev4 → prefect_client-3.9.1.dev5}/src/prefect/utilities/engine/AGENTS.md +0 -0
- {prefect_client-3.9.1.dev4 → prefect_client-3.9.1.dev5}/src/prefect/utilities/engine/__init__.py +0 -0
- {prefect_client-3.9.1.dev4 → prefect_client-3.9.1.dev5}/src/prefect/utilities/filesystem/AGENTS.md +0 -0
- {prefect_client-3.9.1.dev4 → prefect_client-3.9.1.dev5}/src/prefect/utilities/generics.py +0 -0
- {prefect_client-3.9.1.dev4 → prefect_client-3.9.1.dev5}/src/prefect/utilities/hashing.py +0 -0
- {prefect_client-3.9.1.dev4 → prefect_client-3.9.1.dev5}/src/prefect/utilities/importtools.py +0 -0
- {prefect_client-3.9.1.dev4 → prefect_client-3.9.1.dev5}/src/prefect/utilities/math.py +0 -0
- {prefect_client-3.9.1.dev4 → prefect_client-3.9.1.dev5}/src/prefect/utilities/names.py +0 -0
- {prefect_client-3.9.1.dev4 → prefect_client-3.9.1.dev5}/src/prefect/utilities/processutils/AGENTS.md +0 -0
- {prefect_client-3.9.1.dev4 → prefect_client-3.9.1.dev5}/src/prefect/utilities/processutils/__init__.py +0 -0
- {prefect_client-3.9.1.dev4 → prefect_client-3.9.1.dev5}/src/prefect/utilities/pydantic.py +0 -0
- {prefect_client-3.9.1.dev4 → prefect_client-3.9.1.dev5}/src/prefect/utilities/render_swagger.py +0 -0
- {prefect_client-3.9.1.dev4 → prefect_client-3.9.1.dev5}/src/prefect/utilities/schema_tools/AGENTS.md +0 -0
- {prefect_client-3.9.1.dev4 → prefect_client-3.9.1.dev5}/src/prefect/utilities/schema_tools/__init__.py +0 -0
- {prefect_client-3.9.1.dev4 → prefect_client-3.9.1.dev5}/src/prefect/utilities/schema_tools/hydration.py +0 -0
- {prefect_client-3.9.1.dev4 → prefect_client-3.9.1.dev5}/src/prefect/utilities/schema_tools/validation.py +0 -0
- {prefect_client-3.9.1.dev4 → prefect_client-3.9.1.dev5}/src/prefect/utilities/services.py +0 -0
- {prefect_client-3.9.1.dev4 → prefect_client-3.9.1.dev5}/src/prefect/utilities/slugify.py +0 -0
- {prefect_client-3.9.1.dev4 → prefect_client-3.9.1.dev5}/src/prefect/utilities/templating/AGENTS.md +0 -0
- {prefect_client-3.9.1.dev4 → prefect_client-3.9.1.dev5}/src/prefect/utilities/text.py +0 -0
- {prefect_client-3.9.1.dev4 → prefect_client-3.9.1.dev5}/src/prefect/utilities/timeout.py +0 -0
- {prefect_client-3.9.1.dev4 → prefect_client-3.9.1.dev5}/src/prefect/utilities/visualization.py +0 -0
- {prefect_client-3.9.1.dev4 → prefect_client-3.9.1.dev5}/src/prefect/variables.py +0 -0
- {prefect_client-3.9.1.dev4 → prefect_client-3.9.1.dev5}/src/prefect/workers/AGENTS.md +0 -0
- {prefect_client-3.9.1.dev4 → prefect_client-3.9.1.dev5}/src/prefect/workers/__init__.py +0 -0
- {prefect_client-3.9.1.dev4 → prefect_client-3.9.1.dev5}/src/prefect/workers/_cleanup.py +0 -0
- {prefect_client-3.9.1.dev4 → prefect_client-3.9.1.dev5}/src/prefect/workers/_cleanup_handlers.py +0 -0
- {prefect_client-3.9.1.dev4 → prefect_client-3.9.1.dev5}/src/prefect/workers/_worker_channel/__init__.py +0 -0
- {prefect_client-3.9.1.dev4 → prefect_client-3.9.1.dev5}/src/prefect/workers/_worker_channel/_protocol.py +0 -0
- {prefect_client-3.9.1.dev4 → prefect_client-3.9.1.dev5}/src/prefect/workers/_worker_channel/_state.py +0 -0
- {prefect_client-3.9.1.dev4 → prefect_client-3.9.1.dev5}/src/prefect/workers/_worker_channel/_sync.py +0 -0
- {prefect_client-3.9.1.dev4 → prefect_client-3.9.1.dev5}/src/prefect/workers/_worker_channel/_transport.py +0 -0
- {prefect_client-3.9.1.dev4 → prefect_client-3.9.1.dev5}/src/prefect/workers/base.py +0 -0
- {prefect_client-3.9.1.dev4 → prefect_client-3.9.1.dev5}/src/prefect/workers/block.py +0 -0
- {prefect_client-3.9.1.dev4 → prefect_client-3.9.1.dev5}/src/prefect/workers/cloud.py +0 -0
- {prefect_client-3.9.1.dev4 → prefect_client-3.9.1.dev5}/src/prefect/workers/process.py +0 -0
- {prefect_client-3.9.1.dev4 → prefect_client-3.9.1.dev5}/src/prefect/workers/server.py +0 -0
- {prefect_client-3.9.1.dev4 → prefect_client-3.9.1.dev5}/src/prefect/workers/utilities.py +0 -0
{prefect_client-3.9.1.dev4 → prefect_client-3.9.1.dev5}/src/prefect/_internal/result_records.py
RENAMED
|
@@ -37,6 +37,7 @@ if TYPE_CHECKING:
|
|
|
37
37
|
ResultSerializer = Union[Serializer, str]
|
|
38
38
|
LITERAL_TYPES: set[type] = {type(None), bool, UUID}
|
|
39
39
|
R = TypeVar("R")
|
|
40
|
+
_LEGACY_RESULT_BLOB_KEYS = {"serializer", "data", "prefect_version", "expiration"}
|
|
40
41
|
|
|
41
42
|
|
|
42
43
|
class ResultRecordMetadata(BaseModel):
|
|
@@ -173,16 +174,19 @@ class ResultRecord(BaseModel, Generic[R]):
|
|
|
173
174
|
if isinstance(value, dict):
|
|
174
175
|
if TYPE_CHECKING: # TODO: # isintance doesn't accept generic parameters
|
|
175
176
|
value = cast(dict[str, Any], value)
|
|
176
|
-
|
|
177
|
+
# Only coerce the exact legacy `PersistedResultBlob` shape so that raw
|
|
178
|
+
# JSON results that happen to contain a `data` key aren't misread
|
|
179
|
+
if (
|
|
180
|
+
{"data", "serializer"} <= value.keys() <= _LEGACY_RESULT_BLOB_KEYS
|
|
181
|
+
and isinstance(value["data"], str)
|
|
182
|
+
and isinstance(value["serializer"], dict)
|
|
183
|
+
):
|
|
177
184
|
value["result"] = value.pop("data")
|
|
178
|
-
|
|
179
|
-
|
|
180
|
-
|
|
181
|
-
|
|
182
|
-
|
|
183
|
-
value["metadata"]["serializer"] = value.pop("serializer")
|
|
184
|
-
if "prefect_version" in value:
|
|
185
|
-
value["metadata"]["prefect_version"] = value.pop("prefect_version")
|
|
185
|
+
value["metadata"] = {"serializer": value.pop("serializer")}
|
|
186
|
+
if "expiration" in value:
|
|
187
|
+
value["metadata"]["expiration"] = value.pop("expiration")
|
|
188
|
+
if "prefect_version" in value:
|
|
189
|
+
value["metadata"]["prefect_version"] = value.pop("prefect_version")
|
|
186
190
|
return value
|
|
187
191
|
|
|
188
192
|
def serialize_metadata(self) -> bytes:
|
|
@@ -4,6 +4,7 @@ from copy import deepcopy
|
|
|
4
4
|
from dataclasses import dataclass, field, replace
|
|
5
5
|
from logging import Logger
|
|
6
6
|
from pathlib import Path
|
|
7
|
+
from types import CodeType
|
|
7
8
|
from typing import (
|
|
8
9
|
TYPE_CHECKING,
|
|
9
10
|
Any,
|
|
@@ -45,9 +46,10 @@ def _register_stable_transforms() -> None:
|
|
|
45
46
|
if sys.modules.get("pandas") is not None:
|
|
46
47
|
import pandas as pd # pyright: ignore
|
|
47
48
|
|
|
48
|
-
STABLE_TRANSFORMS[pd.DataFrame] = lambda df:
|
|
49
|
-
|
|
50
|
-
|
|
49
|
+
STABLE_TRANSFORMS[pd.DataFrame] = lambda df: ( # pyright: ignore
|
|
50
|
+
list(df.columns),
|
|
51
|
+
[df.iloc[:, i] for i in range(len(df.columns))],
|
|
52
|
+
)
|
|
51
53
|
|
|
52
54
|
|
|
53
55
|
@dataclass
|
|
@@ -282,6 +284,19 @@ class _None(CachePolicy):
|
|
|
282
284
|
return other
|
|
283
285
|
|
|
284
286
|
|
|
287
|
+
def _normalize_code_location(code: CodeType) -> CodeType:
|
|
288
|
+
"""Remove compilation locations, including those in nested code constants."""
|
|
289
|
+
return code.replace(
|
|
290
|
+
co_filename="",
|
|
291
|
+
co_firstlineno=1,
|
|
292
|
+
co_linetable=b"",
|
|
293
|
+
co_consts=tuple(
|
|
294
|
+
_normalize_code_location(const) if isinstance(const, CodeType) else const
|
|
295
|
+
for const in code.co_consts
|
|
296
|
+
),
|
|
297
|
+
)
|
|
298
|
+
|
|
299
|
+
|
|
285
300
|
@dataclass
|
|
286
301
|
class TaskSource(CachePolicy):
|
|
287
302
|
"""
|
|
@@ -312,7 +327,10 @@ class TaskSource(CachePolicy):
|
|
|
312
327
|
lines = inspect.getsource(task_ctx.task.fn.__class__)
|
|
313
328
|
except OSError as exc:
|
|
314
329
|
if "source code" in str(exc):
|
|
315
|
-
|
|
330
|
+
return hash_objects(
|
|
331
|
+
_normalize_code_location(task_ctx.task.fn.__code__),
|
|
332
|
+
raise_on_failure=True,
|
|
333
|
+
)
|
|
316
334
|
else:
|
|
317
335
|
raise
|
|
318
336
|
|
|
@@ -525,6 +525,8 @@ class WorkPoolAsyncClient(BaseAsyncClient):
|
|
|
525
525
|
json=work_pool.model_dump(mode="json", exclude_unset=True),
|
|
526
526
|
)
|
|
527
527
|
except HTTPStatusError as e:
|
|
528
|
+
if e.response.status_code == 403 and "plan does not support" in str(e):
|
|
529
|
+
raise ObjectUnsupported(http_exc=e) from e
|
|
528
530
|
if e.response.status_code == 409:
|
|
529
531
|
if overwrite:
|
|
530
532
|
existing_work_pool = await self.read_work_pool(
|
{prefect_client-3.9.1.dev4 → prefect_client-3.9.1.dev5}/src/prefect/events/schemas/events.py
RENAMED
|
@@ -31,6 +31,7 @@ from prefect.logging import get_logger
|
|
|
31
31
|
from prefect.settings import (
|
|
32
32
|
PREFECT_EVENTS_MAXIMUM_LABELS_PER_RESOURCE,
|
|
33
33
|
)
|
|
34
|
+
from prefect.utilities.urls import url_for
|
|
34
35
|
|
|
35
36
|
from .labelling import Labelled
|
|
36
37
|
|
|
@@ -194,6 +195,12 @@ class ReceivedEvent(Event):
|
|
|
194
195
|
description="When the event was received by Prefect Cloud",
|
|
195
196
|
)
|
|
196
197
|
|
|
198
|
+
@property
|
|
199
|
+
def url(self) -> Optional[str]:
|
|
200
|
+
"""Returns the UI URL for this event, allowing users to link to events
|
|
201
|
+
in automation templates without parsing date strings."""
|
|
202
|
+
return url_for(self, url_type="ui")
|
|
203
|
+
|
|
197
204
|
|
|
198
205
|
def matches(expected: str, value: Optional[str]) -> bool:
|
|
199
206
|
"""Returns true if the given value matches the expected string, which may
|
|
@@ -1,13 +1,22 @@
|
|
|
1
1
|
from __future__ import annotations
|
|
2
2
|
|
|
3
3
|
import base64
|
|
4
|
-
|
|
4
|
+
import contextvars
|
|
5
|
+
from contextlib import asynccontextmanager
|
|
6
|
+
from typing import (
|
|
7
|
+
TYPE_CHECKING,
|
|
8
|
+
Any,
|
|
9
|
+
AsyncIterator,
|
|
10
|
+
Dict,
|
|
11
|
+
List,
|
|
12
|
+
Optional,
|
|
13
|
+
)
|
|
5
14
|
from urllib.parse import quote
|
|
6
15
|
from uuid import UUID
|
|
7
16
|
|
|
8
17
|
import httpx
|
|
9
18
|
import pydantic
|
|
10
|
-
from httpx import Response
|
|
19
|
+
from httpx import Request, Response
|
|
11
20
|
from starlette import status
|
|
12
21
|
from typing_extensions import Self
|
|
13
22
|
|
|
@@ -27,6 +36,29 @@ if TYPE_CHECKING:
|
|
|
27
36
|
logger: "logging.Logger" = get_logger(__name__)
|
|
28
37
|
|
|
29
38
|
|
|
39
|
+
_request_scoped_headers: contextvars.ContextVar[Optional[Dict[str, str]]] = (
|
|
40
|
+
contextvars.ContextVar("_request_scoped_headers", default=None)
|
|
41
|
+
)
|
|
42
|
+
|
|
43
|
+
|
|
44
|
+
async def _apply_scoped_headers(request: Request) -> None:
|
|
45
|
+
extras = _request_scoped_headers.get()
|
|
46
|
+
if not extras:
|
|
47
|
+
return
|
|
48
|
+
for name, value in extras.items():
|
|
49
|
+
request.headers[name] = value
|
|
50
|
+
|
|
51
|
+
|
|
52
|
+
@asynccontextmanager
|
|
53
|
+
async def scoped_headers(headers: Dict[str, str]) -> AsyncIterator[None]:
|
|
54
|
+
"""Attach headers to every request sent by a shared client in this scope."""
|
|
55
|
+
token = _request_scoped_headers.set(headers)
|
|
56
|
+
try:
|
|
57
|
+
yield
|
|
58
|
+
finally:
|
|
59
|
+
_request_scoped_headers.reset(token)
|
|
60
|
+
|
|
61
|
+
|
|
30
62
|
class BaseClient:
|
|
31
63
|
_http_client: PrefectHttpxAsyncClient
|
|
32
64
|
|
|
@@ -53,6 +85,7 @@ class BaseClient:
|
|
|
53
85
|
base_url=f"http://prefect-in-memory{settings.server.api.base_path or '/api'}",
|
|
54
86
|
enable_csrf_support=settings.server.api.csrf_protection_enabled,
|
|
55
87
|
raise_on_all_errors=False,
|
|
88
|
+
event_hooks={"request": [_apply_scoped_headers]},
|
|
56
89
|
)
|
|
57
90
|
|
|
58
91
|
async def __aenter__(self) -> Self:
|
|
@@ -631,6 +631,7 @@ class SyncTaskRunEngine(BaseTaskRunEngine[P, R]):
|
|
|
631
631
|
# which case we should retry the task if it has retries left.
|
|
632
632
|
if isinstance(result, State) and result.is_failed():
|
|
633
633
|
if self.handle_retry(result):
|
|
634
|
+
transaction.write_on_commit = False
|
|
634
635
|
return None
|
|
635
636
|
|
|
636
637
|
if self.task.cache_expiration is not None:
|
|
@@ -645,22 +646,49 @@ class SyncTaskRunEngine(BaseTaskRunEngine[P, R]):
|
|
|
645
646
|
expiration=expiration,
|
|
646
647
|
)
|
|
647
648
|
|
|
649
|
+
if terminal_state.is_failed():
|
|
650
|
+
if (
|
|
651
|
+
isinstance(terminal_state.data, ResultRecord)
|
|
652
|
+
and not terminal_state.data.is_persisted
|
|
653
|
+
):
|
|
654
|
+
# Match raised failures: retain the result without populating the cache key.
|
|
655
|
+
result_store = get_result_store()
|
|
656
|
+
failure_record = result_store.create_result_record(
|
|
657
|
+
terminal_state.data.result, key=str(uuid4()), expiration=expiration
|
|
658
|
+
)
|
|
659
|
+
terminal_state.data = failure_record
|
|
660
|
+
if transaction.write_on_commit:
|
|
661
|
+
try:
|
|
662
|
+
result_store.persist_result_record(failure_record)
|
|
663
|
+
except Exception as exc:
|
|
664
|
+
self.logger.warning(
|
|
665
|
+
"Failed to write result: %s Execution will continue, but the result has not been written",
|
|
666
|
+
exc,
|
|
667
|
+
)
|
|
668
|
+
transaction.write_on_commit = False
|
|
669
|
+
|
|
648
670
|
# Avoid logging when running this rollback hook since it is not user-defined
|
|
649
671
|
handle_rollback = partial(self.handle_rollback)
|
|
650
672
|
handle_rollback.log_on_run = False
|
|
651
673
|
|
|
652
674
|
transaction.stage(
|
|
653
675
|
terminal_state.data,
|
|
654
|
-
on_rollback_hooks=[
|
|
676
|
+
on_rollback_hooks=([] if terminal_state.is_failed() else [handle_rollback])
|
|
677
|
+
+ self.task.on_rollback_hooks,
|
|
655
678
|
on_commit_hooks=self.task.on_commit_hooks,
|
|
656
679
|
)
|
|
657
|
-
if
|
|
680
|
+
if terminal_state.is_failed():
|
|
681
|
+
transaction.rollback()
|
|
682
|
+
elif transaction.is_committed():
|
|
658
683
|
terminal_state.name = "Cached"
|
|
659
684
|
|
|
660
685
|
self.set_state(terminal_state)
|
|
661
686
|
self._return_value = result
|
|
662
687
|
|
|
663
|
-
|
|
688
|
+
if terminal_state.is_failed():
|
|
689
|
+
self._telemetry.end_span_on_failure(terminal_state.message)
|
|
690
|
+
else:
|
|
691
|
+
self._telemetry.end_span_on_success()
|
|
664
692
|
|
|
665
693
|
def handle_retry(self, exc_or_state: Exception | State[R]) -> bool:
|
|
666
694
|
"""Handle any task run retries.
|
|
@@ -1262,6 +1290,7 @@ class AsyncTaskRunEngine(BaseTaskRunEngine[P, R]):
|
|
|
1262
1290
|
) -> Union[ResultRecord[R], None, Coroutine[Any, Any, R], R]:
|
|
1263
1291
|
if isinstance(result, State) and result.is_failed():
|
|
1264
1292
|
if await self.handle_retry(result):
|
|
1293
|
+
transaction.write_on_commit = False
|
|
1265
1294
|
return None
|
|
1266
1295
|
|
|
1267
1296
|
if self.task.cache_expiration is not None:
|
|
@@ -1276,21 +1305,48 @@ class AsyncTaskRunEngine(BaseTaskRunEngine[P, R]):
|
|
|
1276
1305
|
expiration=expiration,
|
|
1277
1306
|
)
|
|
1278
1307
|
|
|
1308
|
+
if terminal_state.is_failed():
|
|
1309
|
+
if (
|
|
1310
|
+
isinstance(terminal_state.data, ResultRecord)
|
|
1311
|
+
and not terminal_state.data.is_persisted
|
|
1312
|
+
):
|
|
1313
|
+
# Match raised failures: retain the result without populating the cache key.
|
|
1314
|
+
result_store = get_result_store()
|
|
1315
|
+
failure_record = result_store.create_result_record(
|
|
1316
|
+
terminal_state.data.result, key=str(uuid4()), expiration=expiration
|
|
1317
|
+
)
|
|
1318
|
+
terminal_state.data = failure_record
|
|
1319
|
+
if transaction.write_on_commit:
|
|
1320
|
+
try:
|
|
1321
|
+
await result_store.apersist_result_record(failure_record)
|
|
1322
|
+
except Exception as exc:
|
|
1323
|
+
self.logger.warning(
|
|
1324
|
+
"Failed to write result: %s Execution will continue, but the result has not been written",
|
|
1325
|
+
exc,
|
|
1326
|
+
)
|
|
1327
|
+
transaction.write_on_commit = False
|
|
1328
|
+
|
|
1279
1329
|
# Avoid logging when running this rollback hook since it is not user-defined
|
|
1280
1330
|
handle_rollback = partial(self.handle_rollback)
|
|
1281
1331
|
handle_rollback.log_on_run = False
|
|
1282
1332
|
|
|
1283
1333
|
transaction.stage(
|
|
1284
1334
|
terminal_state.data,
|
|
1285
|
-
on_rollback_hooks=[
|
|
1335
|
+
on_rollback_hooks=([] if terminal_state.is_failed() else [handle_rollback])
|
|
1336
|
+
+ self.task.on_rollback_hooks,
|
|
1286
1337
|
on_commit_hooks=self.task.on_commit_hooks,
|
|
1287
1338
|
)
|
|
1288
|
-
if
|
|
1339
|
+
if terminal_state.is_failed():
|
|
1340
|
+
await transaction.rollback()
|
|
1341
|
+
elif transaction.is_committed():
|
|
1289
1342
|
terminal_state.name = "Cached"
|
|
1290
1343
|
|
|
1291
1344
|
await self.set_state(terminal_state)
|
|
1292
1345
|
self._return_value = result
|
|
1293
|
-
|
|
1346
|
+
if terminal_state.is_failed():
|
|
1347
|
+
self._telemetry.end_span_on_failure(terminal_state.message)
|
|
1348
|
+
else:
|
|
1349
|
+
self._telemetry.end_span_on_success()
|
|
1294
1350
|
|
|
1295
1351
|
return result
|
|
1296
1352
|
|
{prefect_client-3.9.1.dev4 → prefect_client-3.9.1.dev5}/src/prefect/utilities/filesystem/__init__.py
RENAMED
|
@@ -34,6 +34,30 @@ def create_default_ignore_file(path: str) -> bool:
|
|
|
34
34
|
return True
|
|
35
35
|
|
|
36
36
|
|
|
37
|
+
def _walk_tree(
|
|
38
|
+
root: str,
|
|
39
|
+
spec: pathspec.GitIgnoreSpec,
|
|
40
|
+
include_dirs: bool,
|
|
41
|
+
follow_links: Optional[bool] = None,
|
|
42
|
+
) -> tuple[set[str], set[str]]:
|
|
43
|
+
"""Return `(all_files, ignored_files)` for `root` under a single traversal mode.
|
|
44
|
+
|
|
45
|
+
Both sets must come from the same mode, or subtracting one from the other
|
|
46
|
+
compares two different views of the tree.
|
|
47
|
+
"""
|
|
48
|
+
ignored_files = {
|
|
49
|
+
p.path for p in spec.match_tree_entries(root, follow_links=follow_links)
|
|
50
|
+
}
|
|
51
|
+
if include_dirs:
|
|
52
|
+
all_files = {
|
|
53
|
+
p.path
|
|
54
|
+
for p in pathspec.util.iter_tree_entries(root, follow_links=follow_links)
|
|
55
|
+
}
|
|
56
|
+
else:
|
|
57
|
+
all_files = set(pathspec.util.iter_tree_files(root, follow_links=follow_links))
|
|
58
|
+
return all_files, ignored_files
|
|
59
|
+
|
|
60
|
+
|
|
37
61
|
def filter_files(
|
|
38
62
|
root: str = ".",
|
|
39
63
|
ignore_patterns: Optional[Iterable[AnyStr]] = None,
|
|
@@ -53,11 +77,32 @@ def filter_files(
|
|
|
53
77
|
included so directory traversal can reach those files.
|
|
54
78
|
"""
|
|
55
79
|
spec = pathspec.GitIgnoreSpec.from_lines(ignore_patterns or [])
|
|
56
|
-
|
|
57
|
-
|
|
58
|
-
|
|
59
|
-
|
|
60
|
-
|
|
80
|
+
try:
|
|
81
|
+
all_files, ignored_files = _walk_tree(root, spec, include_dirs)
|
|
82
|
+
except pathspec.util.RecursionError as exc:
|
|
83
|
+
# A directory symlink pointing at one of its own ancestors makes the
|
|
84
|
+
# default link-following walk revisit the same real directory, and
|
|
85
|
+
# pathspec raises rather than returning the tree. Retry once without
|
|
86
|
+
# following links: symlinks are then listed as entries but not
|
|
87
|
+
# descended into, which is what `git` itself does with the .gitignore
|
|
88
|
+
# specification this function implements. Only this walk changes --
|
|
89
|
+
# a tree with no cycle still follows links as before.
|
|
90
|
+
# Imported here rather than at module scope: this is a cold path, and
|
|
91
|
+
# prefect.logging imports back into prefect.utilities. get_logger
|
|
92
|
+
# rather than logging.getLogger because it installs
|
|
93
|
+
# ObfuscateApiKeyFilter, and these paths come from the user's tree.
|
|
94
|
+
from prefect.logging.loggers import get_logger
|
|
95
|
+
|
|
96
|
+
get_logger("utilities.filesystem").warning(
|
|
97
|
+
"Not following symlinks while walking %r: %r and %r both resolve to %r.",
|
|
98
|
+
root,
|
|
99
|
+
exc.first_path or ".",
|
|
100
|
+
exc.second_path,
|
|
101
|
+
exc.real_path,
|
|
102
|
+
)
|
|
103
|
+
all_files, ignored_files = _walk_tree(
|
|
104
|
+
root, spec, include_dirs, follow_links=False
|
|
105
|
+
)
|
|
61
106
|
included_files = all_files - ignored_files
|
|
62
107
|
|
|
63
108
|
# Ensure parent directories of included files are also included,
|
{prefect_client-3.9.1.dev4 → prefect_client-3.9.1.dev5}/src/prefect/utilities/templating/__init__.py
RENAMED
|
@@ -201,6 +201,7 @@ def apply_values(
|
|
|
201
201
|
)
|
|
202
202
|
return value
|
|
203
203
|
else:
|
|
204
|
+
replacements: dict[str, str] = {}
|
|
204
205
|
for full_match, name, placeholder_type in placeholders:
|
|
205
206
|
if placeholder_type is PlaceholderType.STANDARD:
|
|
206
207
|
value = get_from_dict(values, name, NotSet)
|
|
@@ -217,11 +218,16 @@ def apply_values(
|
|
|
217
218
|
"the placeholder is spelled correctly and that the corresponding value is provided.",
|
|
218
219
|
)
|
|
219
220
|
if remove_notset:
|
|
220
|
-
|
|
221
|
+
replacements[full_match] = ""
|
|
221
222
|
else:
|
|
222
|
-
|
|
223
|
+
replacements[full_match] = str(value)
|
|
223
224
|
|
|
224
|
-
|
|
225
|
+
# Substitute in a single pass over the original template so that
|
|
226
|
+
# inserted values are never themselves treated as placeholders.
|
|
227
|
+
return PLACEHOLDER_CAPTURE_REGEX.sub(
|
|
228
|
+
lambda match: replacements.get(match.group(1), match.group(1)),
|
|
229
|
+
template,
|
|
230
|
+
)
|
|
225
231
|
elif isinstance(template, dict):
|
|
226
232
|
updated_template: dict[str, Any] = {}
|
|
227
233
|
for key, value in template.items():
|
|
@@ -345,6 +345,11 @@ def convert_class_to_name(obj: Any) -> str:
|
|
|
345
345
|
return "".join(["-" + i.lower() if i.isupper() else i for i in name]).lstrip("-")
|
|
346
346
|
|
|
347
347
|
|
|
348
|
+
def _quote_path_segment(value: Any) -> str:
|
|
349
|
+
"""Percent-encode a value so it is interpolated as a single URL path segment."""
|
|
350
|
+
return urllib.parse.quote(str(value), safe="")
|
|
351
|
+
|
|
352
|
+
|
|
348
353
|
def url_for(
|
|
349
354
|
obj: Union[
|
|
350
355
|
"PrefectFuture[Any]",
|
|
@@ -473,6 +478,8 @@ def url_for(
|
|
|
473
478
|
)
|
|
474
479
|
assert url_format is not None
|
|
475
480
|
|
|
481
|
+
obj_id = _quote_path_segment(obj_id)
|
|
482
|
+
|
|
476
483
|
# Use duck-typing to handle both client-side and server-side ReceivedEvent
|
|
477
484
|
if name == "received-event" and hasattr(obj, "occurred"):
|
|
478
485
|
# Cast to ReceivedEvent for type checking - we've verified it has the
|
|
@@ -493,7 +500,13 @@ def url_for(
|
|
|
493
500
|
f"Unable to generate URL for {name} because the following keys are missing: {', '.join(obj_keys)}"
|
|
494
501
|
)
|
|
495
502
|
|
|
496
|
-
url = url_format.format(
|
|
503
|
+
url = url_format.format(
|
|
504
|
+
obj_id=obj_id,
|
|
505
|
+
**{
|
|
506
|
+
key: _quote_path_segment(additional_format_kwargs[key])
|
|
507
|
+
for key in obj_keys
|
|
508
|
+
},
|
|
509
|
+
)
|
|
497
510
|
|
|
498
511
|
if not base_url.endswith("/"):
|
|
499
512
|
base_url += "/"
|
|
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.dev4 → prefect_client-3.9.1.dev5}/src/prefect/_experimental/__init__.py
RENAMED
|
File without changes
|
{prefect_client-3.9.1.dev4 → prefect_client-3.9.1.dev5}/src/prefect/_experimental/_launchers.py
RENAMED
|
File without changes
|
|
File without changes
|
{prefect_client-3.9.1.dev4 → prefect_client-3.9.1.dev5}/src/prefect/_experimental/bundles/execute.py
RENAMED
|
File without changes
|
|
File without changes
|
{prefect_client-3.9.1.dev4 → prefect_client-3.9.1.dev5}/src/prefect/_experimental/plugins/apply.py
RENAMED
|
File without changes
|
|
File without changes
|
{prefect_client-3.9.1.dev4 → prefect_client-3.9.1.dev5}/src/prefect/_experimental/plugins/manager.py
RENAMED
|
File without changes
|
{prefect_client-3.9.1.dev4 → prefect_client-3.9.1.dev5}/src/prefect/_experimental/plugins/spec.py
RENAMED
|
File without changes
|
{prefect_client-3.9.1.dev4 → prefect_client-3.9.1.dev5}/src/prefect/_experimental/sla/__init__.py
RENAMED
|
File without changes
|
{prefect_client-3.9.1.dev4 → prefect_client-3.9.1.dev5}/src/prefect/_experimental/sla/client.py
RENAMED
|
File without changes
|
{prefect_client-3.9.1.dev4 → prefect_client-3.9.1.dev5}/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.dev4 → prefect_client-3.9.1.dev5}/src/prefect/_internal/analytics/__init__.py
RENAMED
|
File without changes
|
|
File without changes
|
{prefect_client-3.9.1.dev4 → prefect_client-3.9.1.dev5}/src/prefect/_internal/analytics/client.py
RENAMED
|
File without changes
|
{prefect_client-3.9.1.dev4 → prefect_client-3.9.1.dev5}/src/prefect/_internal/analytics/device_id.py
RENAMED
|
File without changes
|
{prefect_client-3.9.1.dev4 → prefect_client-3.9.1.dev5}/src/prefect/_internal/analytics/emit.py
RENAMED
|
File without changes
|
{prefect_client-3.9.1.dev4 → prefect_client-3.9.1.dev5}/src/prefect/_internal/analytics/enabled.py
RENAMED
|
File without changes
|
{prefect_client-3.9.1.dev4 → prefect_client-3.9.1.dev5}/src/prefect/_internal/analytics/events.py
RENAMED
|
File without changes
|
|
File without changes
|
{prefect_client-3.9.1.dev4 → prefect_client-3.9.1.dev5}/src/prefect/_internal/analytics/notice.py
RENAMED
|
File without changes
|
{prefect_client-3.9.1.dev4 → prefect_client-3.9.1.dev5}/src/prefect/_internal/analytics/service.py
RENAMED
|
File without changes
|
|
File without changes
|
{prefect_client-3.9.1.dev4 → prefect_client-3.9.1.dev5}/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.dev4 → prefect_client-3.9.1.dev5}/src/prefect/_internal/concurrency/api.py
RENAMED
|
File without changes
|
{prefect_client-3.9.1.dev4 → prefect_client-3.9.1.dev5}/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.dev4 → prefect_client-3.9.1.dev5}/src/prefect/_internal/concurrency/threads.py
RENAMED
|
File without changes
|
{prefect_client-3.9.1.dev4 → prefect_client-3.9.1.dev5}/src/prefect/_internal/concurrency/waiters.py
RENAMED
|
File without changes
|
{prefect_client-3.9.1.dev4 → prefect_client-3.9.1.dev5}/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.dev4 → prefect_client-3.9.1.dev5}/src/prefect/_internal/installation.py
RENAMED
|
File without changes
|
{prefect_client-3.9.1.dev4 → prefect_client-3.9.1.dev5}/src/prefect/_internal/integrations.py
RENAMED
|
File without changes
|
|
File without changes
|