prefect-client 3.7.8.dev3__tar.gz → 3.7.9.dev1__tar.gz
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- {prefect_client-3.7.8.dev3 → prefect_client-3.7.9.dev1}/PKG-INFO +1 -1
- prefect_client-3.7.9.dev1/src/prefect/_build_info.py +5 -0
- {prefect_client-3.7.8.dev3 → prefect_client-3.7.9.dev1}/src/prefect/_internal/schemas/validators.py +27 -4
- {prefect_client-3.7.8.dev3 → prefect_client-3.7.9.dev1}/src/prefect/concurrency/_asyncio.py +55 -0
- {prefect_client-3.7.8.dev3 → prefect_client-3.7.9.dev1}/src/prefect/events/clients.py +42 -6
- {prefect_client-3.7.8.dev3 → prefect_client-3.7.9.dev1}/src/prefect/filesystems.py +42 -2
- {prefect_client-3.7.8.dev3 → prefect_client-3.7.9.dev1}/src/prefect/workers/_worker_channel/_transport.py +6 -1
- prefect_client-3.7.8.dev3/src/prefect/_build_info.py +0 -5
- {prefect_client-3.7.8.dev3 → prefect_client-3.7.9.dev1}/.gitignore +0 -0
- {prefect_client-3.7.8.dev3 → prefect_client-3.7.9.dev1}/LICENSE +0 -0
- {prefect_client-3.7.8.dev3 → prefect_client-3.7.9.dev1}/README.md +0 -0
- {prefect_client-3.7.8.dev3 → prefect_client-3.7.9.dev1}/hatch_build.py +0 -0
- {prefect_client-3.7.8.dev3 → prefect_client-3.7.9.dev1}/pyproject.toml +0 -0
- {prefect_client-3.7.8.dev3 → prefect_client-3.7.9.dev1}/src/prefect/.prefectignore +0 -0
- {prefect_client-3.7.8.dev3 → prefect_client-3.7.9.dev1}/src/prefect/AGENTS.md +0 -0
- {prefect_client-3.7.8.dev3 → prefect_client-3.7.9.dev1}/src/prefect/__init__.py +0 -0
- {prefect_client-3.7.8.dev3 → prefect_client-3.7.9.dev1}/src/prefect/__main__.py +0 -0
- {prefect_client-3.7.8.dev3 → prefect_client-3.7.9.dev1}/src/prefect/_experimental/__init__.py +0 -0
- {prefect_client-3.7.8.dev3 → prefect_client-3.7.9.dev1}/src/prefect/_experimental/_launchers.py +0 -0
- {prefect_client-3.7.8.dev3 → prefect_client-3.7.9.dev1}/src/prefect/_experimental/bundles/__init__.py +0 -0
- {prefect_client-3.7.8.dev3 → prefect_client-3.7.9.dev1}/src/prefect/_experimental/bundles/execute.py +0 -0
- {prefect_client-3.7.8.dev3 → prefect_client-3.7.9.dev1}/src/prefect/_experimental/plugins/__init__.py +0 -0
- {prefect_client-3.7.8.dev3 → prefect_client-3.7.9.dev1}/src/prefect/_experimental/plugins/apply.py +0 -0
- {prefect_client-3.7.8.dev3 → prefect_client-3.7.9.dev1}/src/prefect/_experimental/plugins/diagnostics.py +0 -0
- {prefect_client-3.7.8.dev3 → prefect_client-3.7.9.dev1}/src/prefect/_experimental/plugins/manager.py +0 -0
- {prefect_client-3.7.8.dev3 → prefect_client-3.7.9.dev1}/src/prefect/_experimental/plugins/spec.py +0 -0
- {prefect_client-3.7.8.dev3 → prefect_client-3.7.9.dev1}/src/prefect/_experimental/sla/__init__.py +0 -0
- {prefect_client-3.7.8.dev3 → prefect_client-3.7.9.dev1}/src/prefect/_experimental/sla/client.py +0 -0
- {prefect_client-3.7.8.dev3 → prefect_client-3.7.9.dev1}/src/prefect/_experimental/sla/objects.py +0 -0
- {prefect_client-3.7.8.dev3 → prefect_client-3.7.9.dev1}/src/prefect/_flow_run_suspension.py +0 -0
- {prefect_client-3.7.8.dev3 → prefect_client-3.7.9.dev1}/src/prefect/_internal/__init__.py +0 -0
- {prefect_client-3.7.8.dev3 → prefect_client-3.7.9.dev1}/src/prefect/_internal/_logging.py +0 -0
- {prefect_client-3.7.8.dev3 → prefect_client-3.7.9.dev1}/src/prefect/_internal/analytics/__init__.py +0 -0
- {prefect_client-3.7.8.dev3 → prefect_client-3.7.9.dev1}/src/prefect/_internal/analytics/ci_detection.py +0 -0
- {prefect_client-3.7.8.dev3 → prefect_client-3.7.9.dev1}/src/prefect/_internal/analytics/client.py +0 -0
- {prefect_client-3.7.8.dev3 → prefect_client-3.7.9.dev1}/src/prefect/_internal/analytics/device_id.py +0 -0
- {prefect_client-3.7.8.dev3 → prefect_client-3.7.9.dev1}/src/prefect/_internal/analytics/emit.py +0 -0
- {prefect_client-3.7.8.dev3 → prefect_client-3.7.9.dev1}/src/prefect/_internal/analytics/enabled.py +0 -0
- {prefect_client-3.7.8.dev3 → prefect_client-3.7.9.dev1}/src/prefect/_internal/analytics/events.py +0 -0
- {prefect_client-3.7.8.dev3 → prefect_client-3.7.9.dev1}/src/prefect/_internal/analytics/milestones.py +0 -0
- {prefect_client-3.7.8.dev3 → prefect_client-3.7.9.dev1}/src/prefect/_internal/analytics/notice.py +0 -0
- {prefect_client-3.7.8.dev3 → prefect_client-3.7.9.dev1}/src/prefect/_internal/analytics/service.py +0 -0
- {prefect_client-3.7.8.dev3 → prefect_client-3.7.9.dev1}/src/prefect/_internal/ast_utils.py +0 -0
- {prefect_client-3.7.8.dev3 → prefect_client-3.7.9.dev1}/src/prefect/_internal/buildx.py +0 -0
- {prefect_client-3.7.8.dev3 → prefect_client-3.7.9.dev1}/src/prefect/_internal/compatibility/__init__.py +0 -0
- {prefect_client-3.7.8.dev3 → prefect_client-3.7.9.dev1}/src/prefect/_internal/compatibility/async_dispatch.py +0 -0
- {prefect_client-3.7.8.dev3 → prefect_client-3.7.9.dev1}/src/prefect/_internal/compatibility/backports.py +0 -0
- {prefect_client-3.7.8.dev3 → prefect_client-3.7.9.dev1}/src/prefect/_internal/compatibility/blocks.py +0 -0
- {prefect_client-3.7.8.dev3 → prefect_client-3.7.9.dev1}/src/prefect/_internal/compatibility/deprecated.py +0 -0
- {prefect_client-3.7.8.dev3 → prefect_client-3.7.9.dev1}/src/prefect/_internal/compatibility/deprecated_paths.py +0 -0
- {prefect_client-3.7.8.dev3 → prefect_client-3.7.9.dev1}/src/prefect/_internal/compatibility/migration.py +0 -0
- {prefect_client-3.7.8.dev3 → prefect_client-3.7.9.dev1}/src/prefect/_internal/compatibility/starlette.py +0 -0
- {prefect_client-3.7.8.dev3 → prefect_client-3.7.9.dev1}/src/prefect/_internal/concurrency/__init__.py +0 -0
- {prefect_client-3.7.8.dev3 → prefect_client-3.7.9.dev1}/src/prefect/_internal/concurrency/api.py +0 -0
- {prefect_client-3.7.8.dev3 → prefect_client-3.7.9.dev1}/src/prefect/_internal/concurrency/calls.py +0 -0
- {prefect_client-3.7.8.dev3 → prefect_client-3.7.9.dev1}/src/prefect/_internal/concurrency/cancellation.py +0 -0
- {prefect_client-3.7.8.dev3 → prefect_client-3.7.9.dev1}/src/prefect/_internal/concurrency/event_loop.py +0 -0
- {prefect_client-3.7.8.dev3 → prefect_client-3.7.9.dev1}/src/prefect/_internal/concurrency/inspection.py +0 -0
- {prefect_client-3.7.8.dev3 → prefect_client-3.7.9.dev1}/src/prefect/_internal/concurrency/primitives.py +0 -0
- {prefect_client-3.7.8.dev3 → prefect_client-3.7.9.dev1}/src/prefect/_internal/concurrency/services.py +0 -0
- {prefect_client-3.7.8.dev3 → prefect_client-3.7.9.dev1}/src/prefect/_internal/concurrency/threads.py +0 -0
- {prefect_client-3.7.8.dev3 → prefect_client-3.7.9.dev1}/src/prefect/_internal/concurrency/waiters.py +0 -0
- {prefect_client-3.7.8.dev3 → prefect_client-3.7.9.dev1}/src/prefect/_internal/control_listener.py +0 -0
- {prefect_client-3.7.8.dev3 → prefect_client-3.7.9.dev1}/src/prefect/_internal/deprecated.py +0 -0
- {prefect_client-3.7.8.dev3 → prefect_client-3.7.9.dev1}/src/prefect/_internal/engine.py +0 -0
- {prefect_client-3.7.8.dev3 → prefect_client-3.7.9.dev1}/src/prefect/_internal/git.py +0 -0
- {prefect_client-3.7.8.dev3 → prefect_client-3.7.9.dev1}/src/prefect/_internal/infrastructure_exit_codes.py +0 -0
- {prefect_client-3.7.8.dev3 → prefect_client-3.7.9.dev1}/src/prefect/_internal/installation.py +0 -0
- {prefect_client-3.7.8.dev3 → prefect_client-3.7.9.dev1}/src/prefect/_internal/integrations.py +0 -0
- {prefect_client-3.7.8.dev3 → prefect_client-3.7.9.dev1}/src/prefect/_internal/launchers.py +0 -0
- {prefect_client-3.7.8.dev3 → prefect_client-3.7.9.dev1}/src/prefect/_internal/lazy.py +0 -0
- {prefect_client-3.7.8.dev3 → prefect_client-3.7.9.dev1}/src/prefect/_internal/metrics.py +0 -0
- {prefect_client-3.7.8.dev3 → prefect_client-3.7.9.dev1}/src/prefect/_internal/observability.py +0 -0
- {prefect_client-3.7.8.dev3 → prefect_client-3.7.9.dev1}/src/prefect/_internal/observers.py +0 -0
- {prefect_client-3.7.8.dev3 → prefect_client-3.7.9.dev1}/src/prefect/_internal/plugins/__init__.py +0 -0
- {prefect_client-3.7.8.dev3 → prefect_client-3.7.9.dev1}/src/prefect/_internal/plugins/apply.py +0 -0
- {prefect_client-3.7.8.dev3 → prefect_client-3.7.9.dev1}/src/prefect/_internal/plugins/collections.py +0 -0
- {prefect_client-3.7.8.dev3 → prefect_client-3.7.9.dev1}/src/prefect/_internal/plugins/diagnostics.py +0 -0
- {prefect_client-3.7.8.dev3 → prefect_client-3.7.9.dev1}/src/prefect/_internal/plugins/manager.py +0 -0
- {prefect_client-3.7.8.dev3 → prefect_client-3.7.9.dev1}/src/prefect/_internal/plugins/spec.py +0 -0
- {prefect_client-3.7.8.dev3 → prefect_client-3.7.9.dev1}/src/prefect/_internal/plugins/startup.py +0 -0
- {prefect_client-3.7.8.dev3 → prefect_client-3.7.9.dev1}/src/prefect/_internal/pydantic/__init__.py +0 -0
- {prefect_client-3.7.8.dev3 → prefect_client-3.7.9.dev1}/src/prefect/_internal/pydantic/schemas.py +0 -0
- {prefect_client-3.7.8.dev3 → prefect_client-3.7.9.dev1}/src/prefect/_internal/pydantic/v1_schema.py +0 -0
- {prefect_client-3.7.8.dev3 → prefect_client-3.7.9.dev1}/src/prefect/_internal/pydantic/v2_schema.py +0 -0
- {prefect_client-3.7.8.dev3 → prefect_client-3.7.9.dev1}/src/prefect/_internal/pydantic/validated_func.py +0 -0
- {prefect_client-3.7.8.dev3 → prefect_client-3.7.9.dev1}/src/prefect/_internal/pytz.py +0 -0
- {prefect_client-3.7.8.dev3 → prefect_client-3.7.9.dev1}/src/prefect/_internal/result_records.py +0 -0
- {prefect_client-3.7.8.dev3 → prefect_client-3.7.9.dev1}/src/prefect/_internal/retries.py +0 -0
- {prefect_client-3.7.8.dev3 → prefect_client-3.7.9.dev1}/src/prefect/_internal/schema.py +0 -0
- {prefect_client-3.7.8.dev3 → prefect_client-3.7.9.dev1}/src/prefect/_internal/schemas/__init__.py +0 -0
- {prefect_client-3.7.8.dev3 → prefect_client-3.7.9.dev1}/src/prefect/_internal/schemas/_registry.py +0 -0
- {prefect_client-3.7.8.dev3 → prefect_client-3.7.9.dev1}/src/prefect/_internal/schemas/bases.py +0 -0
- {prefect_client-3.7.8.dev3 → prefect_client-3.7.9.dev1}/src/prefect/_internal/schemas/fields.py +0 -0
- {prefect_client-3.7.8.dev3 → prefect_client-3.7.9.dev1}/src/prefect/_internal/schemas/serializers.py +0 -0
- {prefect_client-3.7.8.dev3 → prefect_client-3.7.9.dev1}/src/prefect/_internal/send_entrypoint_logs.py +0 -0
- {prefect_client-3.7.8.dev3 → prefect_client-3.7.9.dev1}/src/prefect/_internal/states.py +0 -0
- {prefect_client-3.7.8.dev3 → prefect_client-3.7.9.dev1}/src/prefect/_internal/testing.py +0 -0
- {prefect_client-3.7.8.dev3 → prefect_client-3.7.9.dev1}/src/prefect/_internal/urls.py +0 -0
- {prefect_client-3.7.8.dev3 → prefect_client-3.7.9.dev1}/src/prefect/_internal/uuid7.py +0 -0
- {prefect_client-3.7.8.dev3 → prefect_client-3.7.9.dev1}/src/prefect/_internal/version_checking.py +0 -0
- {prefect_client-3.7.8.dev3 → prefect_client-3.7.9.dev1}/src/prefect/_internal/versioning.py +0 -0
- {prefect_client-3.7.8.dev3 → prefect_client-3.7.9.dev1}/src/prefect/_internal/waiters.py +0 -0
- {prefect_client-3.7.8.dev3 → prefect_client-3.7.9.dev1}/src/prefect/_internal/websockets.py +0 -0
- {prefect_client-3.7.8.dev3 → prefect_client-3.7.9.dev1}/src/prefect/_sdk/__init__.py +0 -0
- {prefect_client-3.7.8.dev3 → prefect_client-3.7.9.dev1}/src/prefect/_sdk/fetcher.py +0 -0
- {prefect_client-3.7.8.dev3 → prefect_client-3.7.9.dev1}/src/prefect/_sdk/generator.py +0 -0
- {prefect_client-3.7.8.dev3 → prefect_client-3.7.9.dev1}/src/prefect/_sdk/models.py +0 -0
- {prefect_client-3.7.8.dev3 → prefect_client-3.7.9.dev1}/src/prefect/_sdk/naming.py +0 -0
- {prefect_client-3.7.8.dev3 → prefect_client-3.7.9.dev1}/src/prefect/_sdk/renderer.py +0 -0
- {prefect_client-3.7.8.dev3 → prefect_client-3.7.9.dev1}/src/prefect/_sdk/schema_converter.py +0 -0
- {prefect_client-3.7.8.dev3 → prefect_client-3.7.9.dev1}/src/prefect/_sdk/templates/__init__.py +0 -0
- {prefect_client-3.7.8.dev3 → prefect_client-3.7.9.dev1}/src/prefect/_sdk/templates/sdk.py.jinja +0 -0
- {prefect_client-3.7.8.dev3 → prefect_client-3.7.9.dev1}/src/prefect/_sdk/types.py +0 -0
- {prefect_client-3.7.8.dev3 → prefect_client-3.7.9.dev1}/src/prefect/_sdk/unions.py +0 -0
- {prefect_client-3.7.8.dev3 → prefect_client-3.7.9.dev1}/src/prefect/_vendor/croniter/__init__.py +0 -0
- {prefect_client-3.7.8.dev3 → prefect_client-3.7.9.dev1}/src/prefect/_vendor/croniter/croniter.py +0 -0
- {prefect_client-3.7.8.dev3 → prefect_client-3.7.9.dev1}/src/prefect/agent.py +0 -0
- {prefect_client-3.7.8.dev3 → prefect_client-3.7.9.dev1}/src/prefect/analytics/__init__.py +0 -0
- {prefect_client-3.7.8.dev3 → prefect_client-3.7.9.dev1}/src/prefect/artifacts.py +0 -0
- {prefect_client-3.7.8.dev3 → prefect_client-3.7.9.dev1}/src/prefect/assets/__init__.py +0 -0
- {prefect_client-3.7.8.dev3 → prefect_client-3.7.9.dev1}/src/prefect/assets/core.py +0 -0
- {prefect_client-3.7.8.dev3 → prefect_client-3.7.9.dev1}/src/prefect/assets/materialize.py +0 -0
- {prefect_client-3.7.8.dev3 → prefect_client-3.7.9.dev1}/src/prefect/automations.py +0 -0
- {prefect_client-3.7.8.dev3 → prefect_client-3.7.9.dev1}/src/prefect/blocks/AGENTS.md +0 -0
- {prefect_client-3.7.8.dev3 → prefect_client-3.7.9.dev1}/src/prefect/blocks/__init__.py +0 -0
- {prefect_client-3.7.8.dev3 → prefect_client-3.7.9.dev1}/src/prefect/blocks/abstract.py +0 -0
- {prefect_client-3.7.8.dev3 → prefect_client-3.7.9.dev1}/src/prefect/blocks/core.py +0 -0
- {prefect_client-3.7.8.dev3 → prefect_client-3.7.9.dev1}/src/prefect/blocks/fields.py +0 -0
- {prefect_client-3.7.8.dev3 → prefect_client-3.7.9.dev1}/src/prefect/blocks/notifications.py +0 -0
- {prefect_client-3.7.8.dev3 → prefect_client-3.7.9.dev1}/src/prefect/blocks/redis.py +0 -0
- {prefect_client-3.7.8.dev3 → prefect_client-3.7.9.dev1}/src/prefect/blocks/system.py +0 -0
- {prefect_client-3.7.8.dev3 → prefect_client-3.7.9.dev1}/src/prefect/blocks/webhook.py +0 -0
- {prefect_client-3.7.8.dev3 → prefect_client-3.7.9.dev1}/src/prefect/bundles/__init__.py +0 -0
- {prefect_client-3.7.8.dev3 → prefect_client-3.7.9.dev1}/src/prefect/bundles/_file_collector.py +0 -0
- {prefect_client-3.7.8.dev3 → prefect_client-3.7.9.dev1}/src/prefect/bundles/_ignore_filter.py +0 -0
- {prefect_client-3.7.8.dev3 → prefect_client-3.7.9.dev1}/src/prefect/bundles/_path_resolver.py +0 -0
- {prefect_client-3.7.8.dev3 → prefect_client-3.7.9.dev1}/src/prefect/bundles/_zip_builder.py +0 -0
- {prefect_client-3.7.8.dev3 → prefect_client-3.7.9.dev1}/src/prefect/bundles/_zip_extractor.py +0 -0
- {prefect_client-3.7.8.dev3 → prefect_client-3.7.9.dev1}/src/prefect/bundles/execute.py +0 -0
- {prefect_client-3.7.8.dev3 → prefect_client-3.7.9.dev1}/src/prefect/cache_policies.py +0 -0
- {prefect_client-3.7.8.dev3 → prefect_client-3.7.9.dev1}/src/prefect/client/AGENTS.md +0 -0
- {prefect_client-3.7.8.dev3 → prefect_client-3.7.9.dev1}/src/prefect/client/__init__.py +0 -0
- {prefect_client-3.7.8.dev3 → prefect_client-3.7.9.dev1}/src/prefect/client/attribution.py +0 -0
- {prefect_client-3.7.8.dev3 → prefect_client-3.7.9.dev1}/src/prefect/client/base.py +0 -0
- {prefect_client-3.7.8.dev3 → prefect_client-3.7.9.dev1}/src/prefect/client/cloud.py +0 -0
- {prefect_client-3.7.8.dev3 → prefect_client-3.7.9.dev1}/src/prefect/client/collections.py +0 -0
- {prefect_client-3.7.8.dev3 → prefect_client-3.7.9.dev1}/src/prefect/client/constants.py +0 -0
- {prefect_client-3.7.8.dev3 → prefect_client-3.7.9.dev1}/src/prefect/client/orchestration/__init__.py +0 -0
- {prefect_client-3.7.8.dev3 → prefect_client-3.7.9.dev1}/src/prefect/client/orchestration/_artifacts/__init__.py +0 -0
- {prefect_client-3.7.8.dev3 → prefect_client-3.7.9.dev1}/src/prefect/client/orchestration/_artifacts/client.py +0 -0
- {prefect_client-3.7.8.dev3 → prefect_client-3.7.9.dev1}/src/prefect/client/orchestration/_automations/__init__.py +0 -0
- {prefect_client-3.7.8.dev3 → prefect_client-3.7.9.dev1}/src/prefect/client/orchestration/_automations/client.py +0 -0
- {prefect_client-3.7.8.dev3 → prefect_client-3.7.9.dev1}/src/prefect/client/orchestration/_blocks_documents/__init__.py +0 -0
- {prefect_client-3.7.8.dev3 → prefect_client-3.7.9.dev1}/src/prefect/client/orchestration/_blocks_documents/client.py +0 -0
- {prefect_client-3.7.8.dev3 → prefect_client-3.7.9.dev1}/src/prefect/client/orchestration/_blocks_schemas/__init__.py +0 -0
- {prefect_client-3.7.8.dev3 → prefect_client-3.7.9.dev1}/src/prefect/client/orchestration/_blocks_schemas/client.py +0 -0
- {prefect_client-3.7.8.dev3 → prefect_client-3.7.9.dev1}/src/prefect/client/orchestration/_blocks_types/__init__.py +0 -0
- {prefect_client-3.7.8.dev3 → prefect_client-3.7.9.dev1}/src/prefect/client/orchestration/_blocks_types/client.py +0 -0
- {prefect_client-3.7.8.dev3 → prefect_client-3.7.9.dev1}/src/prefect/client/orchestration/_concurrency_limits/__init__.py +0 -0
- {prefect_client-3.7.8.dev3 → prefect_client-3.7.9.dev1}/src/prefect/client/orchestration/_concurrency_limits/client.py +0 -0
- {prefect_client-3.7.8.dev3 → prefect_client-3.7.9.dev1}/src/prefect/client/orchestration/_deployments/__init__.py +0 -0
- {prefect_client-3.7.8.dev3 → prefect_client-3.7.9.dev1}/src/prefect/client/orchestration/_deployments/client.py +0 -0
- {prefect_client-3.7.8.dev3 → prefect_client-3.7.9.dev1}/src/prefect/client/orchestration/_events/__init__.py +0 -0
- {prefect_client-3.7.8.dev3 → prefect_client-3.7.9.dev1}/src/prefect/client/orchestration/_events/client.py +0 -0
- {prefect_client-3.7.8.dev3 → prefect_client-3.7.9.dev1}/src/prefect/client/orchestration/_flow_runs/__init__.py +0 -0
- {prefect_client-3.7.8.dev3 → prefect_client-3.7.9.dev1}/src/prefect/client/orchestration/_flow_runs/client.py +0 -0
- {prefect_client-3.7.8.dev3 → prefect_client-3.7.9.dev1}/src/prefect/client/orchestration/_flows/__init__.py +0 -0
- {prefect_client-3.7.8.dev3 → prefect_client-3.7.9.dev1}/src/prefect/client/orchestration/_flows/client.py +0 -0
- {prefect_client-3.7.8.dev3 → prefect_client-3.7.9.dev1}/src/prefect/client/orchestration/_logs/__init__.py +0 -0
- {prefect_client-3.7.8.dev3 → prefect_client-3.7.9.dev1}/src/prefect/client/orchestration/_logs/client.py +0 -0
- {prefect_client-3.7.8.dev3 → prefect_client-3.7.9.dev1}/src/prefect/client/orchestration/_variables/__init__.py +0 -0
- {prefect_client-3.7.8.dev3 → prefect_client-3.7.9.dev1}/src/prefect/client/orchestration/_variables/client.py +0 -0
- {prefect_client-3.7.8.dev3 → prefect_client-3.7.9.dev1}/src/prefect/client/orchestration/_work_pools/__init__.py +0 -0
- {prefect_client-3.7.8.dev3 → prefect_client-3.7.9.dev1}/src/prefect/client/orchestration/_work_pools/client.py +0 -0
- {prefect_client-3.7.8.dev3 → prefect_client-3.7.9.dev1}/src/prefect/client/orchestration/base.py +0 -0
- {prefect_client-3.7.8.dev3 → prefect_client-3.7.9.dev1}/src/prefect/client/orchestration/routes.py +0 -0
- {prefect_client-3.7.8.dev3 → prefect_client-3.7.9.dev1}/src/prefect/client/schemas/__init__.py +0 -0
- {prefect_client-3.7.8.dev3 → prefect_client-3.7.9.dev1}/src/prefect/client/schemas/actions.py +0 -0
- {prefect_client-3.7.8.dev3 → prefect_client-3.7.9.dev1}/src/prefect/client/schemas/events.py +0 -0
- {prefect_client-3.7.8.dev3 → prefect_client-3.7.9.dev1}/src/prefect/client/schemas/filters.py +0 -0
- {prefect_client-3.7.8.dev3 → prefect_client-3.7.9.dev1}/src/prefect/client/schemas/objects.py +0 -0
- {prefect_client-3.7.8.dev3 → prefect_client-3.7.9.dev1}/src/prefect/client/schemas/responses.py +0 -0
- {prefect_client-3.7.8.dev3 → prefect_client-3.7.9.dev1}/src/prefect/client/schemas/schedules.py +0 -0
- {prefect_client-3.7.8.dev3 → prefect_client-3.7.9.dev1}/src/prefect/client/schemas/sorting.py +0 -0
- {prefect_client-3.7.8.dev3 → prefect_client-3.7.9.dev1}/src/prefect/client/schemas/worker_channel.py +0 -0
- {prefect_client-3.7.8.dev3 → prefect_client-3.7.9.dev1}/src/prefect/client/subscriptions.py +0 -0
- {prefect_client-3.7.8.dev3 → prefect_client-3.7.9.dev1}/src/prefect/client/types/__init__.py +0 -0
- {prefect_client-3.7.8.dev3 → prefect_client-3.7.9.dev1}/src/prefect/client/types/flexible_schedule_list.py +0 -0
- {prefect_client-3.7.8.dev3 → prefect_client-3.7.9.dev1}/src/prefect/client/utilities.py +0 -0
- {prefect_client-3.7.8.dev3 → prefect_client-3.7.9.dev1}/src/prefect/concurrency/AGENTS.md +0 -0
- {prefect_client-3.7.8.dev3 → prefect_client-3.7.9.dev1}/src/prefect/concurrency/__init__.py +0 -0
- {prefect_client-3.7.8.dev3 → prefect_client-3.7.9.dev1}/src/prefect/concurrency/_events.py +0 -0
- {prefect_client-3.7.8.dev3 → prefect_client-3.7.9.dev1}/src/prefect/concurrency/_leases.py +0 -0
- {prefect_client-3.7.8.dev3 → prefect_client-3.7.9.dev1}/src/prefect/concurrency/_sync.py +0 -0
- {prefect_client-3.7.8.dev3 → prefect_client-3.7.9.dev1}/src/prefect/concurrency/asyncio.py +0 -0
- {prefect_client-3.7.8.dev3 → prefect_client-3.7.9.dev1}/src/prefect/concurrency/context.py +0 -0
- {prefect_client-3.7.8.dev3 → prefect_client-3.7.9.dev1}/src/prefect/concurrency/services.py +0 -0
- {prefect_client-3.7.8.dev3 → prefect_client-3.7.9.dev1}/src/prefect/concurrency/sync.py +0 -0
- {prefect_client-3.7.8.dev3 → prefect_client-3.7.9.dev1}/src/prefect/concurrency/v1/__init__.py +0 -0
- {prefect_client-3.7.8.dev3 → prefect_client-3.7.9.dev1}/src/prefect/concurrency/v1/_asyncio.py +0 -0
- {prefect_client-3.7.8.dev3 → prefect_client-3.7.9.dev1}/src/prefect/concurrency/v1/_events.py +0 -0
- {prefect_client-3.7.8.dev3 → prefect_client-3.7.9.dev1}/src/prefect/concurrency/v1/asyncio.py +0 -0
- {prefect_client-3.7.8.dev3 → prefect_client-3.7.9.dev1}/src/prefect/concurrency/v1/context.py +0 -0
- {prefect_client-3.7.8.dev3 → prefect_client-3.7.9.dev1}/src/prefect/concurrency/v1/services.py +0 -0
- {prefect_client-3.7.8.dev3 → prefect_client-3.7.9.dev1}/src/prefect/concurrency/v1/sync.py +0 -0
- {prefect_client-3.7.8.dev3 → prefect_client-3.7.9.dev1}/src/prefect/context.py +0 -0
- {prefect_client-3.7.8.dev3 → prefect_client-3.7.9.dev1}/src/prefect/deployments/AGENTS.md +0 -0
- {prefect_client-3.7.8.dev3 → prefect_client-3.7.9.dev1}/src/prefect/deployments/__init__.py +0 -0
- {prefect_client-3.7.8.dev3 → prefect_client-3.7.9.dev1}/src/prefect/deployments/base.py +0 -0
- {prefect_client-3.7.8.dev3 → prefect_client-3.7.9.dev1}/src/prefect/deployments/deployments.py +0 -0
- {prefect_client-3.7.8.dev3 → prefect_client-3.7.9.dev1}/src/prefect/deployments/flow_runs.py +0 -0
- {prefect_client-3.7.8.dev3 → prefect_client-3.7.9.dev1}/src/prefect/deployments/runner.py +0 -0
- {prefect_client-3.7.8.dev3 → prefect_client-3.7.9.dev1}/src/prefect/deployments/schedules.py +0 -0
- {prefect_client-3.7.8.dev3 → prefect_client-3.7.9.dev1}/src/prefect/deployments/steps/__init__.py +0 -0
- {prefect_client-3.7.8.dev3 → prefect_client-3.7.9.dev1}/src/prefect/deployments/steps/core.py +0 -0
- {prefect_client-3.7.8.dev3 → prefect_client-3.7.9.dev1}/src/prefect/deployments/steps/pull.py +0 -0
- {prefect_client-3.7.8.dev3 → prefect_client-3.7.9.dev1}/src/prefect/deployments/steps/utility.py +0 -0
- {prefect_client-3.7.8.dev3 → prefect_client-3.7.9.dev1}/src/prefect/docker/__init__.py +0 -0
- {prefect_client-3.7.8.dev3 → prefect_client-3.7.9.dev1}/src/prefect/docker/_buildx.py +0 -0
- {prefect_client-3.7.8.dev3 → prefect_client-3.7.9.dev1}/src/prefect/docker/docker_image.py +0 -0
- {prefect_client-3.7.8.dev3 → prefect_client-3.7.9.dev1}/src/prefect/engine.py +0 -0
- {prefect_client-3.7.8.dev3 → prefect_client-3.7.9.dev1}/src/prefect/events/AGENTS.md +0 -0
- {prefect_client-3.7.8.dev3 → prefect_client-3.7.9.dev1}/src/prefect/events/__init__.py +0 -0
- {prefect_client-3.7.8.dev3 → prefect_client-3.7.9.dev1}/src/prefect/events/actions.py +0 -0
- {prefect_client-3.7.8.dev3 → prefect_client-3.7.9.dev1}/src/prefect/events/filters.py +0 -0
- {prefect_client-3.7.8.dev3 → prefect_client-3.7.9.dev1}/src/prefect/events/related.py +0 -0
- {prefect_client-3.7.8.dev3 → prefect_client-3.7.9.dev1}/src/prefect/events/schemas/__init__.py +0 -0
- {prefect_client-3.7.8.dev3 → prefect_client-3.7.9.dev1}/src/prefect/events/schemas/automations.py +0 -0
- {prefect_client-3.7.8.dev3 → prefect_client-3.7.9.dev1}/src/prefect/events/schemas/deployment_triggers.py +0 -0
- {prefect_client-3.7.8.dev3 → prefect_client-3.7.9.dev1}/src/prefect/events/schemas/events.py +0 -0
- {prefect_client-3.7.8.dev3 → prefect_client-3.7.9.dev1}/src/prefect/events/schemas/labelling.py +0 -0
- {prefect_client-3.7.8.dev3 → prefect_client-3.7.9.dev1}/src/prefect/events/subscribers.py +0 -0
- {prefect_client-3.7.8.dev3 → prefect_client-3.7.9.dev1}/src/prefect/events/utilities.py +0 -0
- {prefect_client-3.7.8.dev3 → prefect_client-3.7.9.dev1}/src/prefect/events/worker.py +0 -0
- {prefect_client-3.7.8.dev3 → prefect_client-3.7.9.dev1}/src/prefect/exceptions.py +0 -0
- {prefect_client-3.7.8.dev3 → prefect_client-3.7.9.dev1}/src/prefect/flow_engine.py +0 -0
- {prefect_client-3.7.8.dev3 → prefect_client-3.7.9.dev1}/src/prefect/flow_runs.py +0 -0
- {prefect_client-3.7.8.dev3 → prefect_client-3.7.9.dev1}/src/prefect/flows.py +0 -0
- {prefect_client-3.7.8.dev3 → prefect_client-3.7.9.dev1}/src/prefect/futures.py +0 -0
- {prefect_client-3.7.8.dev3 → prefect_client-3.7.9.dev1}/src/prefect/infrastructure/__init__.py +0 -0
- {prefect_client-3.7.8.dev3 → prefect_client-3.7.9.dev1}/src/prefect/infrastructure/base.py +0 -0
- {prefect_client-3.7.8.dev3 → prefect_client-3.7.9.dev1}/src/prefect/infrastructure/provisioners/__init__.py +0 -0
- {prefect_client-3.7.8.dev3 → prefect_client-3.7.9.dev1}/src/prefect/infrastructure/provisioners/cloud_run.py +0 -0
- {prefect_client-3.7.8.dev3 → prefect_client-3.7.9.dev1}/src/prefect/infrastructure/provisioners/coiled.py +0 -0
- {prefect_client-3.7.8.dev3 → prefect_client-3.7.9.dev1}/src/prefect/infrastructure/provisioners/container_instance.py +0 -0
- {prefect_client-3.7.8.dev3 → prefect_client-3.7.9.dev1}/src/prefect/infrastructure/provisioners/ecs.py +0 -0
- {prefect_client-3.7.8.dev3 → prefect_client-3.7.9.dev1}/src/prefect/infrastructure/provisioners/modal.py +0 -0
- {prefect_client-3.7.8.dev3 → prefect_client-3.7.9.dev1}/src/prefect/input/__init__.py +0 -0
- {prefect_client-3.7.8.dev3 → prefect_client-3.7.9.dev1}/src/prefect/input/actions.py +0 -0
- {prefect_client-3.7.8.dev3 → prefect_client-3.7.9.dev1}/src/prefect/input/run_input.py +0 -0
- {prefect_client-3.7.8.dev3 → prefect_client-3.7.9.dev1}/src/prefect/locking/__init__.py +0 -0
- {prefect_client-3.7.8.dev3 → prefect_client-3.7.9.dev1}/src/prefect/locking/_filelock.py +0 -0
- {prefect_client-3.7.8.dev3 → prefect_client-3.7.9.dev1}/src/prefect/locking/filesystem.py +0 -0
- {prefect_client-3.7.8.dev3 → prefect_client-3.7.9.dev1}/src/prefect/locking/memory.py +0 -0
- {prefect_client-3.7.8.dev3 → prefect_client-3.7.9.dev1}/src/prefect/locking/protocol.py +0 -0
- {prefect_client-3.7.8.dev3 → prefect_client-3.7.9.dev1}/src/prefect/logging/AGENTS.md +0 -0
- {prefect_client-3.7.8.dev3 → prefect_client-3.7.9.dev1}/src/prefect/logging/__init__.py +0 -0
- {prefect_client-3.7.8.dev3 → prefect_client-3.7.9.dev1}/src/prefect/logging/clients.py +0 -0
- {prefect_client-3.7.8.dev3 → prefect_client-3.7.9.dev1}/src/prefect/logging/configuration.py +0 -0
- {prefect_client-3.7.8.dev3 → prefect_client-3.7.9.dev1}/src/prefect/logging/filters.py +0 -0
- {prefect_client-3.7.8.dev3 → prefect_client-3.7.9.dev1}/src/prefect/logging/formatters.py +0 -0
- {prefect_client-3.7.8.dev3 → prefect_client-3.7.9.dev1}/src/prefect/logging/handlers.py +0 -0
- {prefect_client-3.7.8.dev3 → prefect_client-3.7.9.dev1}/src/prefect/logging/highlighters.py +0 -0
- {prefect_client-3.7.8.dev3 → prefect_client-3.7.9.dev1}/src/prefect/logging/loggers.py +0 -0
- {prefect_client-3.7.8.dev3 → prefect_client-3.7.9.dev1}/src/prefect/logging/logging.yml +0 -0
- {prefect_client-3.7.8.dev3 → prefect_client-3.7.9.dev1}/src/prefect/main.py +0 -0
- {prefect_client-3.7.8.dev3 → prefect_client-3.7.9.dev1}/src/prefect/plugins.py +0 -0
- {prefect_client-3.7.8.dev3 → prefect_client-3.7.9.dev1}/src/prefect/py.typed +0 -0
- {prefect_client-3.7.8.dev3 → prefect_client-3.7.9.dev1}/src/prefect/results.py +0 -0
- {prefect_client-3.7.8.dev3 → prefect_client-3.7.9.dev1}/src/prefect/runner/AGENTS.md +0 -0
- {prefect_client-3.7.8.dev3 → prefect_client-3.7.9.dev1}/src/prefect/runner/__init__.py +0 -0
- {prefect_client-3.7.8.dev3 → prefect_client-3.7.9.dev1}/src/prefect/runner/_cancel_finalizer.py +0 -0
- {prefect_client-3.7.8.dev3 → prefect_client-3.7.9.dev1}/src/prefect/runner/_cancellation_manager.py +0 -0
- {prefect_client-3.7.8.dev3 → prefect_client-3.7.9.dev1}/src/prefect/runner/_control_channel.py +0 -0
- {prefect_client-3.7.8.dev3 → prefect_client-3.7.9.dev1}/src/prefect/runner/_deployment_registry.py +0 -0
- {prefect_client-3.7.8.dev3 → prefect_client-3.7.9.dev1}/src/prefect/runner/_event_emitter.py +0 -0
- {prefect_client-3.7.8.dev3 → prefect_client-3.7.9.dev1}/src/prefect/runner/_flow_resolver.py +0 -0
- {prefect_client-3.7.8.dev3 → prefect_client-3.7.9.dev1}/src/prefect/runner/_flow_run_executor.py +0 -0
- {prefect_client-3.7.8.dev3 → prefect_client-3.7.9.dev1}/src/prefect/runner/_hook_runner.py +0 -0
- {prefect_client-3.7.8.dev3 → prefect_client-3.7.9.dev1}/src/prefect/runner/_limit_manager.py +0 -0
- {prefect_client-3.7.8.dev3 → prefect_client-3.7.9.dev1}/src/prefect/runner/_process_manager.py +0 -0
- {prefect_client-3.7.8.dev3 → prefect_client-3.7.9.dev1}/src/prefect/runner/_scheduled_run_poller.py +0 -0
- {prefect_client-3.7.8.dev3 → prefect_client-3.7.9.dev1}/src/prefect/runner/_starter_bundle.py +0 -0
- {prefect_client-3.7.8.dev3 → prefect_client-3.7.9.dev1}/src/prefect/runner/_starter_direct.py +0 -0
- {prefect_client-3.7.8.dev3 → prefect_client-3.7.9.dev1}/src/prefect/runner/_starter_engine.py +0 -0
- {prefect_client-3.7.8.dev3 → prefect_client-3.7.9.dev1}/src/prefect/runner/_state_proposer.py +0 -0
- {prefect_client-3.7.8.dev3 → prefect_client-3.7.9.dev1}/src/prefect/runner/_workspace_resolver.py +0 -0
- {prefect_client-3.7.8.dev3 → prefect_client-3.7.9.dev1}/src/prefect/runner/_workspace_starter.py +0 -0
- {prefect_client-3.7.8.dev3 → prefect_client-3.7.9.dev1}/src/prefect/runner/runner.py +0 -0
- {prefect_client-3.7.8.dev3 → prefect_client-3.7.9.dev1}/src/prefect/runner/server.py +0 -0
- {prefect_client-3.7.8.dev3 → prefect_client-3.7.9.dev1}/src/prefect/runner/storage.py +0 -0
- {prefect_client-3.7.8.dev3 → prefect_client-3.7.9.dev1}/src/prefect/runtime/__init__.py +0 -0
- {prefect_client-3.7.8.dev3 → prefect_client-3.7.9.dev1}/src/prefect/runtime/deployment.py +0 -0
- {prefect_client-3.7.8.dev3 → prefect_client-3.7.9.dev1}/src/prefect/runtime/flow_run.py +0 -0
- {prefect_client-3.7.8.dev3 → prefect_client-3.7.9.dev1}/src/prefect/runtime/task_run.py +0 -0
- {prefect_client-3.7.8.dev3 → prefect_client-3.7.9.dev1}/src/prefect/schedules.py +0 -0
- {prefect_client-3.7.8.dev3 → prefect_client-3.7.9.dev1}/src/prefect/serializers.py +0 -0
- {prefect_client-3.7.8.dev3 → prefect_client-3.7.9.dev1}/src/prefect/server/api/__init__.py +0 -0
- {prefect_client-3.7.8.dev3 → prefect_client-3.7.9.dev1}/src/prefect/server/api/_ui_static.py +0 -0
- {prefect_client-3.7.8.dev3 → prefect_client-3.7.9.dev1}/src/prefect/server/api/admin.py +0 -0
- {prefect_client-3.7.8.dev3 → prefect_client-3.7.9.dev1}/src/prefect/server/api/artifacts.py +0 -0
- {prefect_client-3.7.8.dev3 → prefect_client-3.7.9.dev1}/src/prefect/server/api/automations.py +0 -0
- {prefect_client-3.7.8.dev3 → prefect_client-3.7.9.dev1}/src/prefect/server/api/background_workers.py +0 -0
- {prefect_client-3.7.8.dev3 → prefect_client-3.7.9.dev1}/src/prefect/server/api/block_capabilities.py +0 -0
- {prefect_client-3.7.8.dev3 → prefect_client-3.7.9.dev1}/src/prefect/server/api/block_documents.py +0 -0
- {prefect_client-3.7.8.dev3 → prefect_client-3.7.9.dev1}/src/prefect/server/api/block_schemas.py +0 -0
- {prefect_client-3.7.8.dev3 → prefect_client-3.7.9.dev1}/src/prefect/server/api/block_types.py +0 -0
- {prefect_client-3.7.8.dev3 → prefect_client-3.7.9.dev1}/src/prefect/server/api/clients.py +0 -0
- {prefect_client-3.7.8.dev3 → prefect_client-3.7.9.dev1}/src/prefect/server/api/collections.py +0 -0
- {prefect_client-3.7.8.dev3 → prefect_client-3.7.9.dev1}/src/prefect/server/api/collections_data/views/aggregate-worker-metadata.json +0 -0
- {prefect_client-3.7.8.dev3 → prefect_client-3.7.9.dev1}/src/prefect/server/api/concurrency_limits.py +0 -0
- {prefect_client-3.7.8.dev3 → prefect_client-3.7.9.dev1}/src/prefect/server/api/concurrency_limits_v2.py +0 -0
- {prefect_client-3.7.8.dev3 → prefect_client-3.7.9.dev1}/src/prefect/server/api/csrf_token.py +0 -0
- {prefect_client-3.7.8.dev3 → prefect_client-3.7.9.dev1}/src/prefect/server/api/dependencies.py +0 -0
- {prefect_client-3.7.8.dev3 → prefect_client-3.7.9.dev1}/src/prefect/server/api/deployments.py +0 -0
- {prefect_client-3.7.8.dev3 → prefect_client-3.7.9.dev1}/src/prefect/server/api/events.py +0 -0
- {prefect_client-3.7.8.dev3 → prefect_client-3.7.9.dev1}/src/prefect/server/api/flow_run_states.py +0 -0
- {prefect_client-3.7.8.dev3 → prefect_client-3.7.9.dev1}/src/prefect/server/api/flow_runs.py +0 -0
- {prefect_client-3.7.8.dev3 → prefect_client-3.7.9.dev1}/src/prefect/server/api/flows.py +0 -0
- {prefect_client-3.7.8.dev3 → prefect_client-3.7.9.dev1}/src/prefect/server/api/logs.py +0 -0
- {prefect_client-3.7.8.dev3 → prefect_client-3.7.9.dev1}/src/prefect/server/api/middleware.py +0 -0
- {prefect_client-3.7.8.dev3 → prefect_client-3.7.9.dev1}/src/prefect/server/api/root.py +0 -0
- {prefect_client-3.7.8.dev3 → prefect_client-3.7.9.dev1}/src/prefect/server/api/run_history.py +0 -0
- {prefect_client-3.7.8.dev3 → prefect_client-3.7.9.dev1}/src/prefect/server/api/saved_searches.py +0 -0
- {prefect_client-3.7.8.dev3 → prefect_client-3.7.9.dev1}/src/prefect/server/api/server.py +0 -0
- {prefect_client-3.7.8.dev3 → prefect_client-3.7.9.dev1}/src/prefect/server/api/static/prefect-logo-mark-gradient.png +0 -0
- {prefect_client-3.7.8.dev3 → prefect_client-3.7.9.dev1}/src/prefect/server/api/task_run_states.py +0 -0
- {prefect_client-3.7.8.dev3 → prefect_client-3.7.9.dev1}/src/prefect/server/api/task_runs.py +0 -0
- {prefect_client-3.7.8.dev3 → prefect_client-3.7.9.dev1}/src/prefect/server/api/task_workers.py +0 -0
- {prefect_client-3.7.8.dev3 → prefect_client-3.7.9.dev1}/src/prefect/server/api/templates.py +0 -0
- {prefect_client-3.7.8.dev3 → prefect_client-3.7.9.dev1}/src/prefect/server/api/ui/__init__.py +0 -0
- {prefect_client-3.7.8.dev3 → prefect_client-3.7.9.dev1}/src/prefect/server/api/ui/flow_runs.py +0 -0
- {prefect_client-3.7.8.dev3 → prefect_client-3.7.9.dev1}/src/prefect/server/api/ui/flows.py +0 -0
- {prefect_client-3.7.8.dev3 → prefect_client-3.7.9.dev1}/src/prefect/server/api/ui/schemas.py +0 -0
- {prefect_client-3.7.8.dev3 → prefect_client-3.7.9.dev1}/src/prefect/server/api/ui/task_runs.py +0 -0
- {prefect_client-3.7.8.dev3 → prefect_client-3.7.9.dev1}/src/prefect/server/api/validation.py +0 -0
- {prefect_client-3.7.8.dev3 → prefect_client-3.7.9.dev1}/src/prefect/server/api/variables.py +0 -0
- {prefect_client-3.7.8.dev3 → prefect_client-3.7.9.dev1}/src/prefect/server/api/work_queues.py +0 -0
- {prefect_client-3.7.8.dev3 → prefect_client-3.7.9.dev1}/src/prefect/server/api/workers.py +0 -0
- {prefect_client-3.7.8.dev3 → prefect_client-3.7.9.dev1}/src/prefect/settings/AGENTS.md +0 -0
- {prefect_client-3.7.8.dev3 → prefect_client-3.7.9.dev1}/src/prefect/settings/__init__.py +0 -0
- {prefect_client-3.7.8.dev3 → prefect_client-3.7.9.dev1}/src/prefect/settings/_types.py +0 -0
- {prefect_client-3.7.8.dev3 → prefect_client-3.7.9.dev1}/src/prefect/settings/base.py +0 -0
- {prefect_client-3.7.8.dev3 → prefect_client-3.7.9.dev1}/src/prefect/settings/constants.py +0 -0
- {prefect_client-3.7.8.dev3 → prefect_client-3.7.9.dev1}/src/prefect/settings/context.py +0 -0
- {prefect_client-3.7.8.dev3 → prefect_client-3.7.9.dev1}/src/prefect/settings/legacy.py +0 -0
- {prefect_client-3.7.8.dev3 → prefect_client-3.7.9.dev1}/src/prefect/settings/models/__init__.py +0 -0
- {prefect_client-3.7.8.dev3 → prefect_client-3.7.9.dev1}/src/prefect/settings/models/_defaults.py +0 -0
- {prefect_client-3.7.8.dev3 → prefect_client-3.7.9.dev1}/src/prefect/settings/models/api.py +0 -0
- {prefect_client-3.7.8.dev3 → prefect_client-3.7.9.dev1}/src/prefect/settings/models/cli.py +0 -0
- {prefect_client-3.7.8.dev3 → prefect_client-3.7.9.dev1}/src/prefect/settings/models/client.py +0 -0
- {prefect_client-3.7.8.dev3 → prefect_client-3.7.9.dev1}/src/prefect/settings/models/cloud.py +0 -0
- {prefect_client-3.7.8.dev3 → prefect_client-3.7.9.dev1}/src/prefect/settings/models/deployments.py +0 -0
- {prefect_client-3.7.8.dev3 → prefect_client-3.7.9.dev1}/src/prefect/settings/models/events.py +0 -0
- {prefect_client-3.7.8.dev3 → prefect_client-3.7.9.dev1}/src/prefect/settings/models/experiments.py +0 -0
- {prefect_client-3.7.8.dev3 → prefect_client-3.7.9.dev1}/src/prefect/settings/models/flows.py +0 -0
- {prefect_client-3.7.8.dev3 → prefect_client-3.7.9.dev1}/src/prefect/settings/models/internal.py +0 -0
- {prefect_client-3.7.8.dev3 → prefect_client-3.7.9.dev1}/src/prefect/settings/models/logging.py +0 -0
- {prefect_client-3.7.8.dev3 → prefect_client-3.7.9.dev1}/src/prefect/settings/models/plugins.py +0 -0
- {prefect_client-3.7.8.dev3 → prefect_client-3.7.9.dev1}/src/prefect/settings/models/results.py +0 -0
- {prefect_client-3.7.8.dev3 → prefect_client-3.7.9.dev1}/src/prefect/settings/models/root.py +0 -0
- {prefect_client-3.7.8.dev3 → prefect_client-3.7.9.dev1}/src/prefect/settings/models/runner.py +0 -0
- {prefect_client-3.7.8.dev3 → prefect_client-3.7.9.dev1}/src/prefect/settings/models/server/__init__.py +0 -0
- {prefect_client-3.7.8.dev3 → prefect_client-3.7.9.dev1}/src/prefect/settings/models/server/api.py +0 -0
- {prefect_client-3.7.8.dev3 → prefect_client-3.7.9.dev1}/src/prefect/settings/models/server/concurrency.py +0 -0
- {prefect_client-3.7.8.dev3 → prefect_client-3.7.9.dev1}/src/prefect/settings/models/server/database.py +0 -0
- {prefect_client-3.7.8.dev3 → prefect_client-3.7.9.dev1}/src/prefect/settings/models/server/deployments.py +0 -0
- {prefect_client-3.7.8.dev3 → prefect_client-3.7.9.dev1}/src/prefect/settings/models/server/docket.py +0 -0
- {prefect_client-3.7.8.dev3 → prefect_client-3.7.9.dev1}/src/prefect/settings/models/server/ephemeral.py +0 -0
- {prefect_client-3.7.8.dev3 → prefect_client-3.7.9.dev1}/src/prefect/settings/models/server/events.py +0 -0
- {prefect_client-3.7.8.dev3 → prefect_client-3.7.9.dev1}/src/prefect/settings/models/server/flow_run_graph.py +0 -0
- {prefect_client-3.7.8.dev3 → prefect_client-3.7.9.dev1}/src/prefect/settings/models/server/logs.py +0 -0
- {prefect_client-3.7.8.dev3 → prefect_client-3.7.9.dev1}/src/prefect/settings/models/server/root.py +0 -0
- {prefect_client-3.7.8.dev3 → prefect_client-3.7.9.dev1}/src/prefect/settings/models/server/services.py +0 -0
- {prefect_client-3.7.8.dev3 → prefect_client-3.7.9.dev1}/src/prefect/settings/models/server/tasks.py +0 -0
- {prefect_client-3.7.8.dev3 → prefect_client-3.7.9.dev1}/src/prefect/settings/models/server/ui.py +0 -0
- {prefect_client-3.7.8.dev3 → prefect_client-3.7.9.dev1}/src/prefect/settings/models/server/worker_channel.py +0 -0
- {prefect_client-3.7.8.dev3 → prefect_client-3.7.9.dev1}/src/prefect/settings/models/tasks.py +0 -0
- {prefect_client-3.7.8.dev3 → prefect_client-3.7.9.dev1}/src/prefect/settings/models/telemetry.py +0 -0
- {prefect_client-3.7.8.dev3 → prefect_client-3.7.9.dev1}/src/prefect/settings/models/testing.py +0 -0
- {prefect_client-3.7.8.dev3 → prefect_client-3.7.9.dev1}/src/prefect/settings/models/worker.py +0 -0
- {prefect_client-3.7.8.dev3 → prefect_client-3.7.9.dev1}/src/prefect/settings/profiles.py +0 -0
- {prefect_client-3.7.8.dev3 → prefect_client-3.7.9.dev1}/src/prefect/settings/profiles.toml +0 -0
- {prefect_client-3.7.8.dev3 → prefect_client-3.7.9.dev1}/src/prefect/settings/sources.py +0 -0
- {prefect_client-3.7.8.dev3 → prefect_client-3.7.9.dev1}/src/prefect/states.py +0 -0
- {prefect_client-3.7.8.dev3 → prefect_client-3.7.9.dev1}/src/prefect/task_engine.py +0 -0
- {prefect_client-3.7.8.dev3 → prefect_client-3.7.9.dev1}/src/prefect/task_runners.py +0 -0
- {prefect_client-3.7.8.dev3 → prefect_client-3.7.9.dev1}/src/prefect/task_runs.py +0 -0
- {prefect_client-3.7.8.dev3 → prefect_client-3.7.9.dev1}/src/prefect/task_worker.py +0 -0
- {prefect_client-3.7.8.dev3 → prefect_client-3.7.9.dev1}/src/prefect/tasks.py +0 -0
- {prefect_client-3.7.8.dev3 → prefect_client-3.7.9.dev1}/src/prefect/telemetry/__init__.py +0 -0
- {prefect_client-3.7.8.dev3 → prefect_client-3.7.9.dev1}/src/prefect/telemetry/run_telemetry.py +0 -0
- {prefect_client-3.7.8.dev3 → prefect_client-3.7.9.dev1}/src/prefect/transactions.py +0 -0
- {prefect_client-3.7.8.dev3 → prefect_client-3.7.9.dev1}/src/prefect/types/__init__.py +0 -0
- {prefect_client-3.7.8.dev3 → prefect_client-3.7.9.dev1}/src/prefect/types/_concurrency.py +0 -0
- {prefect_client-3.7.8.dev3 → prefect_client-3.7.9.dev1}/src/prefect/types/_datetime.py +0 -0
- {prefect_client-3.7.8.dev3 → prefect_client-3.7.9.dev1}/src/prefect/types/entrypoint.py +0 -0
- {prefect_client-3.7.8.dev3 → prefect_client-3.7.9.dev1}/src/prefect/types/names.py +0 -0
- {prefect_client-3.7.8.dev3 → prefect_client-3.7.9.dev1}/src/prefect/utilities/AGENTS.md +0 -0
- {prefect_client-3.7.8.dev3 → prefect_client-3.7.9.dev1}/src/prefect/utilities/__init__.py +0 -0
- {prefect_client-3.7.8.dev3 → prefect_client-3.7.9.dev1}/src/prefect/utilities/annotations.py +0 -0
- {prefect_client-3.7.8.dev3 → prefect_client-3.7.9.dev1}/src/prefect/utilities/asyncutils/AGENTS.md +0 -0
- {prefect_client-3.7.8.dev3 → prefect_client-3.7.9.dev1}/src/prefect/utilities/asyncutils/__init__.py +0 -0
- {prefect_client-3.7.8.dev3 → prefect_client-3.7.9.dev1}/src/prefect/utilities/callables/AGENTS.md +0 -0
- {prefect_client-3.7.8.dev3 → prefect_client-3.7.9.dev1}/src/prefect/utilities/callables/__init__.py +0 -0
- {prefect_client-3.7.8.dev3 → prefect_client-3.7.9.dev1}/src/prefect/utilities/collections.py +0 -0
- {prefect_client-3.7.8.dev3 → prefect_client-3.7.9.dev1}/src/prefect/utilities/compat.py +0 -0
- {prefect_client-3.7.8.dev3 → prefect_client-3.7.9.dev1}/src/prefect/utilities/context.py +0 -0
- {prefect_client-3.7.8.dev3 → prefect_client-3.7.9.dev1}/src/prefect/utilities/dispatch.py +0 -0
- {prefect_client-3.7.8.dev3 → prefect_client-3.7.9.dev1}/src/prefect/utilities/dockerutils.py +0 -0
- {prefect_client-3.7.8.dev3 → prefect_client-3.7.9.dev1}/src/prefect/utilities/engine/AGENTS.md +0 -0
- {prefect_client-3.7.8.dev3 → prefect_client-3.7.9.dev1}/src/prefect/utilities/engine/__init__.py +0 -0
- {prefect_client-3.7.8.dev3 → prefect_client-3.7.9.dev1}/src/prefect/utilities/filesystem/AGENTS.md +0 -0
- {prefect_client-3.7.8.dev3 → prefect_client-3.7.9.dev1}/src/prefect/utilities/filesystem/__init__.py +0 -0
- {prefect_client-3.7.8.dev3 → prefect_client-3.7.9.dev1}/src/prefect/utilities/generics.py +0 -0
- {prefect_client-3.7.8.dev3 → prefect_client-3.7.9.dev1}/src/prefect/utilities/hashing.py +0 -0
- {prefect_client-3.7.8.dev3 → prefect_client-3.7.9.dev1}/src/prefect/utilities/importtools.py +0 -0
- {prefect_client-3.7.8.dev3 → prefect_client-3.7.9.dev1}/src/prefect/utilities/math.py +0 -0
- {prefect_client-3.7.8.dev3 → prefect_client-3.7.9.dev1}/src/prefect/utilities/names.py +0 -0
- {prefect_client-3.7.8.dev3 → prefect_client-3.7.9.dev1}/src/prefect/utilities/processutils/AGENTS.md +0 -0
- {prefect_client-3.7.8.dev3 → prefect_client-3.7.9.dev1}/src/prefect/utilities/processutils/__init__.py +0 -0
- {prefect_client-3.7.8.dev3 → prefect_client-3.7.9.dev1}/src/prefect/utilities/pydantic.py +0 -0
- {prefect_client-3.7.8.dev3 → prefect_client-3.7.9.dev1}/src/prefect/utilities/render_swagger.py +0 -0
- {prefect_client-3.7.8.dev3 → prefect_client-3.7.9.dev1}/src/prefect/utilities/schema_tools/AGENTS.md +0 -0
- {prefect_client-3.7.8.dev3 → prefect_client-3.7.9.dev1}/src/prefect/utilities/schema_tools/__init__.py +0 -0
- {prefect_client-3.7.8.dev3 → prefect_client-3.7.9.dev1}/src/prefect/utilities/schema_tools/hydration.py +0 -0
- {prefect_client-3.7.8.dev3 → prefect_client-3.7.9.dev1}/src/prefect/utilities/schema_tools/validation.py +0 -0
- {prefect_client-3.7.8.dev3 → prefect_client-3.7.9.dev1}/src/prefect/utilities/services.py +0 -0
- {prefect_client-3.7.8.dev3 → prefect_client-3.7.9.dev1}/src/prefect/utilities/slugify.py +0 -0
- {prefect_client-3.7.8.dev3 → prefect_client-3.7.9.dev1}/src/prefect/utilities/templating/AGENTS.md +0 -0
- {prefect_client-3.7.8.dev3 → prefect_client-3.7.9.dev1}/src/prefect/utilities/templating/__init__.py +0 -0
- {prefect_client-3.7.8.dev3 → prefect_client-3.7.9.dev1}/src/prefect/utilities/text.py +0 -0
- {prefect_client-3.7.8.dev3 → prefect_client-3.7.9.dev1}/src/prefect/utilities/timeout.py +0 -0
- {prefect_client-3.7.8.dev3 → prefect_client-3.7.9.dev1}/src/prefect/utilities/urls.py +0 -0
- {prefect_client-3.7.8.dev3 → prefect_client-3.7.9.dev1}/src/prefect/utilities/visualization.py +0 -0
- {prefect_client-3.7.8.dev3 → prefect_client-3.7.9.dev1}/src/prefect/variables.py +0 -0
- {prefect_client-3.7.8.dev3 → prefect_client-3.7.9.dev1}/src/prefect/workers/AGENTS.md +0 -0
- {prefect_client-3.7.8.dev3 → prefect_client-3.7.9.dev1}/src/prefect/workers/__init__.py +0 -0
- {prefect_client-3.7.8.dev3 → prefect_client-3.7.9.dev1}/src/prefect/workers/_cleanup.py +0 -0
- {prefect_client-3.7.8.dev3 → prefect_client-3.7.9.dev1}/src/prefect/workers/_cleanup_handlers.py +0 -0
- {prefect_client-3.7.8.dev3 → prefect_client-3.7.9.dev1}/src/prefect/workers/_worker_channel/__init__.py +0 -0
- {prefect_client-3.7.8.dev3 → prefect_client-3.7.9.dev1}/src/prefect/workers/_worker_channel/_protocol.py +0 -0
- {prefect_client-3.7.8.dev3 → prefect_client-3.7.9.dev1}/src/prefect/workers/_worker_channel/_state.py +0 -0
- {prefect_client-3.7.8.dev3 → prefect_client-3.7.9.dev1}/src/prefect/workers/_worker_channel/_sync.py +0 -0
- {prefect_client-3.7.8.dev3 → prefect_client-3.7.9.dev1}/src/prefect/workers/base.py +0 -0
- {prefect_client-3.7.8.dev3 → prefect_client-3.7.9.dev1}/src/prefect/workers/block.py +0 -0
- {prefect_client-3.7.8.dev3 → prefect_client-3.7.9.dev1}/src/prefect/workers/cloud.py +0 -0
- {prefect_client-3.7.8.dev3 → prefect_client-3.7.9.dev1}/src/prefect/workers/process.py +0 -0
- {prefect_client-3.7.8.dev3 → prefect_client-3.7.9.dev1}/src/prefect/workers/server.py +0 -0
- {prefect_client-3.7.8.dev3 → prefect_client-3.7.9.dev1}/src/prefect/workers/utilities.py +0 -0
{prefect_client-3.7.8.dev3 → prefect_client-3.7.9.dev1}/src/prefect/_internal/schemas/validators.py
RENAMED
|
@@ -321,6 +321,7 @@ def normalize_rrule_string(
|
|
|
321
321
|
rrule_string: str,
|
|
322
322
|
*,
|
|
323
323
|
now: Optional[datetime.datetime] = None,
|
|
324
|
+
timezone: Optional[str] = None,
|
|
324
325
|
) -> str:
|
|
325
326
|
"""Inject a `DTSTART` line into an rrule string if it doesn't already have one.
|
|
326
327
|
|
|
@@ -350,8 +351,16 @@ def normalize_rrule_string(
|
|
|
350
351
|
datetimes, ~3 MB).
|
|
351
352
|
|
|
352
353
|
Strings that already contain a `DTSTART` are returned unchanged.
|
|
354
|
+
|
|
355
|
+
The injected anchor is written as a floating (offset-less) `DTSTART`,
|
|
356
|
+
which `RRuleSchedule.to_rrule` later relabels with the schedule's
|
|
357
|
+
timezone. `timezone` is the schedule's IANA timezone (defaulting to
|
|
358
|
+
UTC); the recent anchor's wall-clock digits are computed in it so the
|
|
359
|
+
floating anchor lands on the intended local instant rather than being
|
|
360
|
+
shifted by the timezone's UTC offset (PrefectHQ/prefect#22455).
|
|
353
361
|
"""
|
|
354
362
|
import dateutil.rrule
|
|
363
|
+
import dateutil.tz
|
|
355
364
|
|
|
356
365
|
# Already anchored — leave it alone.
|
|
357
366
|
if "DTSTART" in rrule_string.upper():
|
|
@@ -400,10 +409,22 @@ def normalize_rrule_string(
|
|
|
400
409
|
unit_seconds = 1 if freq == dateutil.rrule.SECONDLY else 60
|
|
401
410
|
period_seconds = unit_seconds * interval
|
|
402
411
|
|
|
412
|
+
# The injected `DTSTART` is serialized as floating (no offset/`Z`) and
|
|
413
|
+
# `RRuleSchedule.to_rrule` later relabels it with the schedule's timezone
|
|
414
|
+
# via `.replace(tzinfo=...)`, which keeps the wall-clock digits without
|
|
415
|
+
# converting the offset. The anchor's wall-clock digits must therefore be
|
|
416
|
+
# computed in the schedule's own timezone; computing them in UTC shifts
|
|
417
|
+
# every occurrence forward by the timezone's offset, suppressing runs on
|
|
418
|
+
# the deploy day (PrefectHQ/prefect#22455).
|
|
419
|
+
anchor_tz = dateutil.tz.gettz(timezone) if timezone else datetime.timezone.utc
|
|
420
|
+
if anchor_tz is None:
|
|
421
|
+
anchor_tz = datetime.timezone.utc
|
|
422
|
+
|
|
403
423
|
if now is None:
|
|
404
|
-
now = datetime.datetime.now(datetime.timezone.utc)
|
|
405
|
-
|
|
406
|
-
now = now.
|
|
424
|
+
now = datetime.datetime.now(datetime.timezone.utc)
|
|
425
|
+
if now.tzinfo is None:
|
|
426
|
+
now = now.replace(tzinfo=datetime.timezone.utc)
|
|
427
|
+
now = now.astimezone(anchor_tz).replace(tzinfo=None)
|
|
407
428
|
|
|
408
429
|
delta_seconds = (now - DEFAULT_RRULE_ANCHOR).total_seconds()
|
|
409
430
|
if delta_seconds <= 0:
|
|
@@ -443,7 +464,9 @@ def normalize_schedule_rrule(schedule: _T) -> _T:
|
|
|
443
464
|
rrule = getattr(schedule, "rrule", None)
|
|
444
465
|
if not isinstance(rrule, str):
|
|
445
466
|
return schedule
|
|
446
|
-
normalized = normalize_rrule_string(
|
|
467
|
+
normalized = normalize_rrule_string(
|
|
468
|
+
rrule, timezone=getattr(schedule, "timezone", None)
|
|
469
|
+
)
|
|
447
470
|
if normalized == rrule:
|
|
448
471
|
return schedule
|
|
449
472
|
return type(schedule)(rrule=normalized, timezone=schedule.timezone) # type: ignore[call-arg]
|
|
@@ -43,6 +43,51 @@ class AcquireConcurrencySlotTimeoutError(TimeoutError):
|
|
|
43
43
|
logger: logging.Logger = get_logger("concurrency")
|
|
44
44
|
|
|
45
45
|
|
|
46
|
+
def _format_http_status_error(exc: httpx.HTTPStatusError) -> str:
|
|
47
|
+
"""Format an HTTP status error from the server into a compact string.
|
|
48
|
+
|
|
49
|
+
Handles both Prefect API payloads (`exception_detail`) and raw FastAPI
|
|
50
|
+
payloads (`detail`), extracting Pydantic-style validation errors and
|
|
51
|
+
dropping the leading `body` location component.
|
|
52
|
+
"""
|
|
53
|
+
status_code = exc.response.status_code
|
|
54
|
+
reason = exc.response.reason_phrase
|
|
55
|
+
status_text = f"{status_code} {reason}" if reason else str(status_code)
|
|
56
|
+
|
|
57
|
+
try:
|
|
58
|
+
body = exc.response.json()
|
|
59
|
+
except Exception:
|
|
60
|
+
body = None
|
|
61
|
+
|
|
62
|
+
messages: list[str] = []
|
|
63
|
+
if isinstance(body, dict):
|
|
64
|
+
errors = body.get("exception_detail") or body.get("detail")
|
|
65
|
+
if isinstance(errors, list):
|
|
66
|
+
for error in errors:
|
|
67
|
+
if not isinstance(error, dict):
|
|
68
|
+
continue
|
|
69
|
+
msg = error.get("msg")
|
|
70
|
+
if not isinstance(msg, str):
|
|
71
|
+
continue
|
|
72
|
+
loc = error.get("loc")
|
|
73
|
+
if isinstance(loc, (list, tuple)) and loc:
|
|
74
|
+
if loc[0] == "body":
|
|
75
|
+
loc = loc[1:]
|
|
76
|
+
field = ".".join(str(part) for part in loc)
|
|
77
|
+
else:
|
|
78
|
+
field = ""
|
|
79
|
+
if field:
|
|
80
|
+
messages.append(f"{field}: {msg}")
|
|
81
|
+
else:
|
|
82
|
+
messages.append(msg)
|
|
83
|
+
elif isinstance(errors, str):
|
|
84
|
+
messages.append(errors)
|
|
85
|
+
|
|
86
|
+
if messages:
|
|
87
|
+
return f"{status_text}: {'; '.join(messages)}"
|
|
88
|
+
return status_text
|
|
89
|
+
|
|
90
|
+
|
|
46
91
|
async def aacquire_concurrency_slots(
|
|
47
92
|
names: list[str],
|
|
48
93
|
slots: int,
|
|
@@ -59,6 +104,11 @@ async def aacquire_concurrency_slots(
|
|
|
59
104
|
raise AcquireConcurrencySlotTimeoutError(
|
|
60
105
|
f"Attempt to acquire concurrency slots timed out after {timeout_seconds} second(s)"
|
|
61
106
|
) from timeout
|
|
107
|
+
except httpx.HTTPStatusError as exc:
|
|
108
|
+
raise ConcurrencySlotAcquisitionError(
|
|
109
|
+
f"Unable to acquire concurrency slots on {names!r}: "
|
|
110
|
+
f"{_format_http_status_error(exc)}"
|
|
111
|
+
) from exc
|
|
62
112
|
except Exception as exc:
|
|
63
113
|
raise ConcurrencySlotAcquisitionError(
|
|
64
114
|
f"Unable to acquire concurrency slots on {names!r}"
|
|
@@ -104,6 +154,11 @@ async def aacquire_concurrency_slots_with_lease(
|
|
|
104
154
|
raise AcquireConcurrencySlotTimeoutError(
|
|
105
155
|
f"Attempt to acquire concurrency slots timed out after {timeout_seconds} second(s)"
|
|
106
156
|
) from timeout
|
|
157
|
+
except httpx.HTTPStatusError as exc:
|
|
158
|
+
raise ConcurrencySlotAcquisitionError(
|
|
159
|
+
f"Unable to acquire concurrency slots on {names!r}: "
|
|
160
|
+
f"{_format_http_status_error(exc)}"
|
|
161
|
+
) from exc
|
|
107
162
|
except Exception as exc:
|
|
108
163
|
raise ConcurrencySlotAcquisitionError(
|
|
109
164
|
f"Unable to acquire concurrency slots on {names!r}"
|
|
@@ -436,8 +436,17 @@ class PrefectEventsClient(EventsClient):
|
|
|
436
436
|
# Clear the unconfirmed events here, because they are going back through emit
|
|
437
437
|
# and will be added again through the normal checkpointing process
|
|
438
438
|
self._unconfirmed_events = []
|
|
439
|
-
|
|
440
|
-
|
|
439
|
+
try:
|
|
440
|
+
while events_to_resend:
|
|
441
|
+
event = events_to_resend.pop(0)
|
|
442
|
+
await self.emit(event)
|
|
443
|
+
except Exception:
|
|
444
|
+
# If a resend fails partway through (emit() has its own retry
|
|
445
|
+
# budget), restore the events that were never attempted so a later
|
|
446
|
+
# reconnect can retry them. The event whose emit() failed was
|
|
447
|
+
# already added back to the buffer by emit() itself.
|
|
448
|
+
self._unconfirmed_events.extend(events_to_resend)
|
|
449
|
+
raise
|
|
441
450
|
logger.debug("Finished resending unconfirmed events.")
|
|
442
451
|
self._start_checkpoint_task()
|
|
443
452
|
|
|
@@ -452,17 +461,44 @@ class PrefectEventsClient(EventsClient):
|
|
|
452
461
|
|
|
453
462
|
async def _checkpoint_loop(self) -> None:
|
|
454
463
|
"""Periodically checkpoint unconfirmed events on a time interval,
|
|
455
|
-
independent of the count-based checkpoint in _checkpoint.
|
|
464
|
+
independent of the count-based checkpoint in _checkpoint.
|
|
465
|
+
|
|
466
|
+
If the connection has been lost (e.g. a server restart closed it),
|
|
467
|
+
reconnects and resends the unconfirmed events rather than leaving them
|
|
468
|
+
stranded until the next emit."""
|
|
456
469
|
while True:
|
|
457
470
|
await asyncio.sleep(self._checkpoint_interval)
|
|
458
|
-
if
|
|
459
|
-
|
|
471
|
+
if not self._unconfirmed_events:
|
|
472
|
+
continue
|
|
473
|
+
try:
|
|
474
|
+
if self._websocket:
|
|
460
475
|
await self._force_checkpoint()
|
|
476
|
+
continue
|
|
477
|
+
# The connection was lost while events were still unconfirmed;
|
|
478
|
+
# reconnect to resend them rather than waiting for the next emit.
|
|
479
|
+
await self._reconnect()
|
|
480
|
+
except ConnectionClosed:
|
|
481
|
+
# The connection died since the last checkpoint; reconnect and
|
|
482
|
+
# resend the unconfirmed events. _reconnect() tears down the
|
|
483
|
+
# dead connection before connecting again.
|
|
484
|
+
try:
|
|
485
|
+
await self._reconnect()
|
|
461
486
|
except Exception:
|
|
462
487
|
logger.debug(
|
|
463
|
-
"
|
|
488
|
+
"Reconnecting during time-based checkpoint failed, "
|
|
489
|
+
"will retry next interval.",
|
|
464
490
|
exc_info=True,
|
|
465
491
|
)
|
|
492
|
+
continue
|
|
493
|
+
except Exception:
|
|
494
|
+
logger.debug(
|
|
495
|
+
"Time-based checkpoint failed, will retry next interval.",
|
|
496
|
+
exc_info=True,
|
|
497
|
+
)
|
|
498
|
+
continue
|
|
499
|
+
# A successful _reconnect() resent the unconfirmed events and
|
|
500
|
+
# started a replacement checkpoint task, so this task is done.
|
|
501
|
+
return
|
|
466
502
|
|
|
467
503
|
async def _force_checkpoint(self) -> None:
|
|
468
504
|
"""Checkpoint all unconfirmed events unconditionally."""
|
|
@@ -412,14 +412,54 @@ class RemoteFileSystem(WritableFileSystem, WritableDeploymentStorage):
|
|
|
412
412
|
|
|
413
413
|
# Confirm that absolute paths are valid
|
|
414
414
|
if scheme:
|
|
415
|
-
if scheme != base_scheme:
|
|
415
|
+
if scheme.lower() != base_scheme.lower():
|
|
416
416
|
raise ValueError(
|
|
417
417
|
f"Path {path!r} with scheme {scheme!r} must use the same scheme as"
|
|
418
418
|
f" the base path {base_scheme!r}."
|
|
419
419
|
)
|
|
420
420
|
|
|
421
421
|
if netloc:
|
|
422
|
-
if
|
|
422
|
+
if netloc != base_netloc:
|
|
423
|
+
raise ValueError(
|
|
424
|
+
f"Path {path!r} is outside of the base path {self.basepath!r}."
|
|
425
|
+
)
|
|
426
|
+
|
|
427
|
+
# Normalize the base path for containment checks so that sibling prefixes
|
|
428
|
+
# (e.g. base `/foo` vs path `/foobar`) are not treated as contained.
|
|
429
|
+
base_path = base_urlpath.rstrip("/")
|
|
430
|
+
base_output_path = base_path + "/" if base_path else "/"
|
|
431
|
+
|
|
432
|
+
if not urlpath:
|
|
433
|
+
urlpath = "/"
|
|
434
|
+
|
|
435
|
+
# Decode percent-encoded and backslash separators only for traversal
|
|
436
|
+
# checks. The containment check below uses the raw URL path so that
|
|
437
|
+
# prefix spoofs such as `pre%66ix` or `prefix%2Fchild` are rejected.
|
|
438
|
+
decoded_path = urllib.parse.unquote(urlpath).replace("\\", "/")
|
|
439
|
+
if any(segment == ".." for segment in decoded_path.split("/")):
|
|
440
|
+
raise ValueError(
|
|
441
|
+
f"Path {path!r} is outside of the base path {self.basepath!r}."
|
|
442
|
+
)
|
|
443
|
+
|
|
444
|
+
if urlpath == base_path or urlpath == base_output_path:
|
|
445
|
+
return urllib.parse.urlunsplit(
|
|
446
|
+
(base_scheme, base_netloc, base_output_path, "", "")
|
|
447
|
+
)
|
|
448
|
+
|
|
449
|
+
if (base_path and urlpath.startswith(base_path + "/")) or (
|
|
450
|
+
not base_path and urlpath.startswith("/")
|
|
451
|
+
):
|
|
452
|
+
return urllib.parse.urlunsplit(
|
|
453
|
+
(base_scheme, base_netloc, urlpath, "", "")
|
|
454
|
+
)
|
|
455
|
+
|
|
456
|
+
raise ValueError(
|
|
457
|
+
f"Path {path!r} is outside of the base path {self.basepath!r}."
|
|
458
|
+
)
|
|
459
|
+
|
|
460
|
+
if scheme:
|
|
461
|
+
decoded_path = urllib.parse.unquote(urlpath).replace("\\", "/")
|
|
462
|
+
if any(segment == ".." for segment in decoded_path.split("/")):
|
|
423
463
|
raise ValueError(
|
|
424
464
|
f"Path {path!r} is outside of the base path {self.basepath!r}."
|
|
425
465
|
)
|
|
@@ -143,7 +143,12 @@ class WorkerChannelTransport:
|
|
|
143
143
|
|
|
144
144
|
status_code = self._status_code_from_exception(exc)
|
|
145
145
|
if status_code is not None:
|
|
146
|
-
if status_code
|
|
146
|
+
if status_code == 401:
|
|
147
|
+
return WorkerChannelTerminalError(
|
|
148
|
+
WorkerChannelCloseReason.AUTHENTICATION_FAILED.value,
|
|
149
|
+
"Worker channel setup was rejected by the server",
|
|
150
|
+
)
|
|
151
|
+
if status_code == 403:
|
|
147
152
|
return WorkerChannelTerminalError(
|
|
148
153
|
WorkerChannelCloseReason.AUTHORIZATION_FAILED.value,
|
|
149
154
|
"Worker channel setup was rejected by the server",
|
|
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.7.8.dev3 → prefect_client-3.7.9.dev1}/src/prefect/_experimental/__init__.py
RENAMED
|
File without changes
|
{prefect_client-3.7.8.dev3 → prefect_client-3.7.9.dev1}/src/prefect/_experimental/_launchers.py
RENAMED
|
File without changes
|
|
File without changes
|
{prefect_client-3.7.8.dev3 → prefect_client-3.7.9.dev1}/src/prefect/_experimental/bundles/execute.py
RENAMED
|
File without changes
|
|
File without changes
|
{prefect_client-3.7.8.dev3 → prefect_client-3.7.9.dev1}/src/prefect/_experimental/plugins/apply.py
RENAMED
|
File without changes
|
|
File without changes
|
{prefect_client-3.7.8.dev3 → prefect_client-3.7.9.dev1}/src/prefect/_experimental/plugins/manager.py
RENAMED
|
File without changes
|
{prefect_client-3.7.8.dev3 → prefect_client-3.7.9.dev1}/src/prefect/_experimental/plugins/spec.py
RENAMED
|
File without changes
|
{prefect_client-3.7.8.dev3 → prefect_client-3.7.9.dev1}/src/prefect/_experimental/sla/__init__.py
RENAMED
|
File without changes
|
{prefect_client-3.7.8.dev3 → prefect_client-3.7.9.dev1}/src/prefect/_experimental/sla/client.py
RENAMED
|
File without changes
|
{prefect_client-3.7.8.dev3 → prefect_client-3.7.9.dev1}/src/prefect/_experimental/sla/objects.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{prefect_client-3.7.8.dev3 → prefect_client-3.7.9.dev1}/src/prefect/_internal/analytics/__init__.py
RENAMED
|
File without changes
|
|
File without changes
|
{prefect_client-3.7.8.dev3 → prefect_client-3.7.9.dev1}/src/prefect/_internal/analytics/client.py
RENAMED
|
File without changes
|
{prefect_client-3.7.8.dev3 → prefect_client-3.7.9.dev1}/src/prefect/_internal/analytics/device_id.py
RENAMED
|
File without changes
|
{prefect_client-3.7.8.dev3 → prefect_client-3.7.9.dev1}/src/prefect/_internal/analytics/emit.py
RENAMED
|
File without changes
|
{prefect_client-3.7.8.dev3 → prefect_client-3.7.9.dev1}/src/prefect/_internal/analytics/enabled.py
RENAMED
|
File without changes
|
{prefect_client-3.7.8.dev3 → prefect_client-3.7.9.dev1}/src/prefect/_internal/analytics/events.py
RENAMED
|
File without changes
|
|
File without changes
|
{prefect_client-3.7.8.dev3 → prefect_client-3.7.9.dev1}/src/prefect/_internal/analytics/notice.py
RENAMED
|
File without changes
|
{prefect_client-3.7.8.dev3 → prefect_client-3.7.9.dev1}/src/prefect/_internal/analytics/service.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
|
|
File without changes
|
{prefect_client-3.7.8.dev3 → prefect_client-3.7.9.dev1}/src/prefect/_internal/concurrency/api.py
RENAMED
|
File without changes
|
{prefect_client-3.7.8.dev3 → prefect_client-3.7.9.dev1}/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.7.8.dev3 → prefect_client-3.7.9.dev1}/src/prefect/_internal/concurrency/threads.py
RENAMED
|
File without changes
|
{prefect_client-3.7.8.dev3 → prefect_client-3.7.9.dev1}/src/prefect/_internal/concurrency/waiters.py
RENAMED
|
File without changes
|
{prefect_client-3.7.8.dev3 → prefect_client-3.7.9.dev1}/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.7.8.dev3 → prefect_client-3.7.9.dev1}/src/prefect/_internal/installation.py
RENAMED
|
File without changes
|
{prefect_client-3.7.8.dev3 → prefect_client-3.7.9.dev1}/src/prefect/_internal/integrations.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{prefect_client-3.7.8.dev3 → prefect_client-3.7.9.dev1}/src/prefect/_internal/observability.py
RENAMED
|
File without changes
|
|
File without changes
|
{prefect_client-3.7.8.dev3 → prefect_client-3.7.9.dev1}/src/prefect/_internal/plugins/__init__.py
RENAMED
|
File without changes
|
{prefect_client-3.7.8.dev3 → prefect_client-3.7.9.dev1}/src/prefect/_internal/plugins/apply.py
RENAMED
|
File without changes
|
{prefect_client-3.7.8.dev3 → prefect_client-3.7.9.dev1}/src/prefect/_internal/plugins/collections.py
RENAMED
|
File without changes
|
{prefect_client-3.7.8.dev3 → prefect_client-3.7.9.dev1}/src/prefect/_internal/plugins/diagnostics.py
RENAMED
|
File without changes
|
{prefect_client-3.7.8.dev3 → prefect_client-3.7.9.dev1}/src/prefect/_internal/plugins/manager.py
RENAMED
|
File without changes
|
{prefect_client-3.7.8.dev3 → prefect_client-3.7.9.dev1}/src/prefect/_internal/plugins/spec.py
RENAMED
|
File without changes
|
{prefect_client-3.7.8.dev3 → prefect_client-3.7.9.dev1}/src/prefect/_internal/plugins/startup.py
RENAMED
|
File without changes
|
{prefect_client-3.7.8.dev3 → prefect_client-3.7.9.dev1}/src/prefect/_internal/pydantic/__init__.py
RENAMED
|
File without changes
|
{prefect_client-3.7.8.dev3 → prefect_client-3.7.9.dev1}/src/prefect/_internal/pydantic/schemas.py
RENAMED
|
File without changes
|
{prefect_client-3.7.8.dev3 → prefect_client-3.7.9.dev1}/src/prefect/_internal/pydantic/v1_schema.py
RENAMED
|
File without changes
|
{prefect_client-3.7.8.dev3 → prefect_client-3.7.9.dev1}/src/prefect/_internal/pydantic/v2_schema.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
{prefect_client-3.7.8.dev3 → prefect_client-3.7.9.dev1}/src/prefect/_internal/result_records.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
{prefect_client-3.7.8.dev3 → prefect_client-3.7.9.dev1}/src/prefect/_internal/schemas/__init__.py
RENAMED
|
File without changes
|
{prefect_client-3.7.8.dev3 → prefect_client-3.7.9.dev1}/src/prefect/_internal/schemas/_registry.py
RENAMED
|
File without changes
|
{prefect_client-3.7.8.dev3 → prefect_client-3.7.9.dev1}/src/prefect/_internal/schemas/bases.py
RENAMED
|
File without changes
|
{prefect_client-3.7.8.dev3 → prefect_client-3.7.9.dev1}/src/prefect/_internal/schemas/fields.py
RENAMED
|
File without changes
|
{prefect_client-3.7.8.dev3 → prefect_client-3.7.9.dev1}/src/prefect/_internal/schemas/serializers.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{prefect_client-3.7.8.dev3 → prefect_client-3.7.9.dev1}/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.7.8.dev3 → prefect_client-3.7.9.dev1}/src/prefect/_sdk/schema_converter.py
RENAMED
|
File without changes
|
{prefect_client-3.7.8.dev3 → prefect_client-3.7.9.dev1}/src/prefect/_sdk/templates/__init__.py
RENAMED
|
File without changes
|
{prefect_client-3.7.8.dev3 → prefect_client-3.7.9.dev1}/src/prefect/_sdk/templates/sdk.py.jinja
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
{prefect_client-3.7.8.dev3 → prefect_client-3.7.9.dev1}/src/prefect/_vendor/croniter/__init__.py
RENAMED
|
File without changes
|
{prefect_client-3.7.8.dev3 → prefect_client-3.7.9.dev1}/src/prefect/_vendor/croniter/croniter.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
|
|
File without changes
|