prefect-client 3.4.7.dev2__tar.gz → 3.4.7.dev4__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.4.7.dev2 → prefect_client-3.4.7.dev4}/.gitignore +1 -0
- {prefect_client-3.4.7.dev2 → prefect_client-3.4.7.dev4}/PKG-INFO +1 -1
- prefect_client-3.4.7.dev4/src/prefect/AGENTS.md +28 -0
- prefect_client-3.4.7.dev4/src/prefect/_build_info.py +5 -0
- prefect_client-3.4.7.dev4/src/prefect/_internal/websockets.py +106 -0
- {prefect_client-3.4.7.dev2 → prefect_client-3.4.7.dev4}/src/prefect/client/cloud.py +11 -1
- {prefect_client-3.4.7.dev2 → prefect_client-3.4.7.dev4}/src/prefect/client/orchestration/__init__.py +16 -6
- {prefect_client-3.4.7.dev2 → prefect_client-3.4.7.dev4}/src/prefect/client/schemas/objects.py +0 -4
- {prefect_client-3.4.7.dev2 → prefect_client-3.4.7.dev4}/src/prefect/events/clients.py +2 -76
- {prefect_client-3.4.7.dev2 → prefect_client-3.4.7.dev4}/src/prefect/events/schemas/automations.py +1 -1
- prefect_client-3.4.7.dev4/src/prefect/logging/clients.py +347 -0
- {prefect_client-3.4.7.dev2 → prefect_client-3.4.7.dev4}/src/prefect/serializers.py +8 -3
- prefect_client-3.4.7.dev4/src/prefect/server/api/logs.py +102 -0
- prefect_client-3.4.7.dev4/src/prefect/settings/models/server/logs.py +28 -0
- {prefect_client-3.4.7.dev2 → prefect_client-3.4.7.dev4}/src/prefect/settings/models/server/root.py +5 -0
- {prefect_client-3.4.7.dev2 → prefect_client-3.4.7.dev4}/src/prefect/utilities/_ast.py +2 -2
- {prefect_client-3.4.7.dev2 → prefect_client-3.4.7.dev4}/src/prefect/utilities/callables.py +1 -1
- prefect_client-3.4.7.dev2/src/prefect/_build_info.py +0 -5
- prefect_client-3.4.7.dev2/src/prefect/server/api/logs.py +0 -47
- {prefect_client-3.4.7.dev2 → prefect_client-3.4.7.dev4}/LICENSE +0 -0
- {prefect_client-3.4.7.dev2 → prefect_client-3.4.7.dev4}/README.md +0 -0
- {prefect_client-3.4.7.dev2 → prefect_client-3.4.7.dev4}/pyproject.toml +0 -0
- {prefect_client-3.4.7.dev2 → prefect_client-3.4.7.dev4}/src/prefect/.prefectignore +0 -0
- {prefect_client-3.4.7.dev2 → prefect_client-3.4.7.dev4}/src/prefect/__init__.py +0 -0
- {prefect_client-3.4.7.dev2 → prefect_client-3.4.7.dev4}/src/prefect/__main__.py +0 -0
- {prefect_client-3.4.7.dev2 → prefect_client-3.4.7.dev4}/src/prefect/_experimental/__init__.py +0 -0
- {prefect_client-3.4.7.dev2 → prefect_client-3.4.7.dev4}/src/prefect/_experimental/bundles/__init__.py +0 -0
- {prefect_client-3.4.7.dev2 → prefect_client-3.4.7.dev4}/src/prefect/_experimental/bundles/execute.py +0 -0
- {prefect_client-3.4.7.dev2 → prefect_client-3.4.7.dev4}/src/prefect/_experimental/lineage.py +0 -0
- {prefect_client-3.4.7.dev2 → prefect_client-3.4.7.dev4}/src/prefect/_experimental/sla/__init__.py +0 -0
- {prefect_client-3.4.7.dev2 → prefect_client-3.4.7.dev4}/src/prefect/_experimental/sla/client.py +0 -0
- {prefect_client-3.4.7.dev2 → prefect_client-3.4.7.dev4}/src/prefect/_experimental/sla/objects.py +0 -0
- {prefect_client-3.4.7.dev2 → prefect_client-3.4.7.dev4}/src/prefect/_internal/__init__.py +0 -0
- {prefect_client-3.4.7.dev2 → prefect_client-3.4.7.dev4}/src/prefect/_internal/_logging.py +0 -0
- {prefect_client-3.4.7.dev2 → prefect_client-3.4.7.dev4}/src/prefect/_internal/compatibility/__init__.py +0 -0
- {prefect_client-3.4.7.dev2 → prefect_client-3.4.7.dev4}/src/prefect/_internal/compatibility/async_dispatch.py +0 -0
- {prefect_client-3.4.7.dev2 → prefect_client-3.4.7.dev4}/src/prefect/_internal/compatibility/blocks.py +0 -0
- {prefect_client-3.4.7.dev2 → prefect_client-3.4.7.dev4}/src/prefect/_internal/compatibility/deprecated.py +0 -0
- {prefect_client-3.4.7.dev2 → prefect_client-3.4.7.dev4}/src/prefect/_internal/compatibility/migration.py +0 -0
- {prefect_client-3.4.7.dev2 → prefect_client-3.4.7.dev4}/src/prefect/_internal/concurrency/__init__.py +0 -0
- {prefect_client-3.4.7.dev2 → prefect_client-3.4.7.dev4}/src/prefect/_internal/concurrency/api.py +0 -0
- {prefect_client-3.4.7.dev2 → prefect_client-3.4.7.dev4}/src/prefect/_internal/concurrency/calls.py +0 -0
- {prefect_client-3.4.7.dev2 → prefect_client-3.4.7.dev4}/src/prefect/_internal/concurrency/cancellation.py +0 -0
- {prefect_client-3.4.7.dev2 → prefect_client-3.4.7.dev4}/src/prefect/_internal/concurrency/event_loop.py +0 -0
- {prefect_client-3.4.7.dev2 → prefect_client-3.4.7.dev4}/src/prefect/_internal/concurrency/inspection.py +0 -0
- {prefect_client-3.4.7.dev2 → prefect_client-3.4.7.dev4}/src/prefect/_internal/concurrency/primitives.py +0 -0
- {prefect_client-3.4.7.dev2 → prefect_client-3.4.7.dev4}/src/prefect/_internal/concurrency/services.py +0 -0
- {prefect_client-3.4.7.dev2 → prefect_client-3.4.7.dev4}/src/prefect/_internal/concurrency/threads.py +0 -0
- {prefect_client-3.4.7.dev2 → prefect_client-3.4.7.dev4}/src/prefect/_internal/concurrency/waiters.py +0 -0
- {prefect_client-3.4.7.dev2 → prefect_client-3.4.7.dev4}/src/prefect/_internal/integrations.py +0 -0
- {prefect_client-3.4.7.dev2 → prefect_client-3.4.7.dev4}/src/prefect/_internal/pydantic/__init__.py +0 -0
- {prefect_client-3.4.7.dev2 → prefect_client-3.4.7.dev4}/src/prefect/_internal/pydantic/schemas.py +0 -0
- {prefect_client-3.4.7.dev2 → prefect_client-3.4.7.dev4}/src/prefect/_internal/pydantic/v1_schema.py +0 -0
- {prefect_client-3.4.7.dev2 → prefect_client-3.4.7.dev4}/src/prefect/_internal/pydantic/v2_schema.py +0 -0
- {prefect_client-3.4.7.dev2 → prefect_client-3.4.7.dev4}/src/prefect/_internal/pydantic/v2_validated_func.py +0 -0
- {prefect_client-3.4.7.dev2 → prefect_client-3.4.7.dev4}/src/prefect/_internal/pytz.py +0 -0
- {prefect_client-3.4.7.dev2 → prefect_client-3.4.7.dev4}/src/prefect/_internal/retries.py +0 -0
- {prefect_client-3.4.7.dev2 → prefect_client-3.4.7.dev4}/src/prefect/_internal/schemas/__init__.py +0 -0
- {prefect_client-3.4.7.dev2 → prefect_client-3.4.7.dev4}/src/prefect/_internal/schemas/bases.py +0 -0
- {prefect_client-3.4.7.dev2 → prefect_client-3.4.7.dev4}/src/prefect/_internal/schemas/fields.py +0 -0
- {prefect_client-3.4.7.dev2 → prefect_client-3.4.7.dev4}/src/prefect/_internal/schemas/serializers.py +0 -0
- {prefect_client-3.4.7.dev2 → prefect_client-3.4.7.dev4}/src/prefect/_internal/schemas/validators.py +0 -0
- {prefect_client-3.4.7.dev2 → prefect_client-3.4.7.dev4}/src/prefect/_internal/uuid7.py +0 -0
- {prefect_client-3.4.7.dev2 → prefect_client-3.4.7.dev4}/src/prefect/_result_records.py +0 -0
- {prefect_client-3.4.7.dev2 → prefect_client-3.4.7.dev4}/src/prefect/_vendor/croniter/__init__.py +0 -0
- {prefect_client-3.4.7.dev2 → prefect_client-3.4.7.dev4}/src/prefect/_vendor/croniter/croniter.py +0 -0
- {prefect_client-3.4.7.dev2 → prefect_client-3.4.7.dev4}/src/prefect/_versioning.py +0 -0
- {prefect_client-3.4.7.dev2 → prefect_client-3.4.7.dev4}/src/prefect/_waiters.py +0 -0
- {prefect_client-3.4.7.dev2 → prefect_client-3.4.7.dev4}/src/prefect/agent.py +0 -0
- {prefect_client-3.4.7.dev2 → prefect_client-3.4.7.dev4}/src/prefect/artifacts.py +0 -0
- {prefect_client-3.4.7.dev2 → prefect_client-3.4.7.dev4}/src/prefect/assets/__init__.py +0 -0
- {prefect_client-3.4.7.dev2 → prefect_client-3.4.7.dev4}/src/prefect/assets/core.py +0 -0
- {prefect_client-3.4.7.dev2 → prefect_client-3.4.7.dev4}/src/prefect/assets/materialize.py +0 -0
- {prefect_client-3.4.7.dev2 → prefect_client-3.4.7.dev4}/src/prefect/automations.py +0 -0
- {prefect_client-3.4.7.dev2 → prefect_client-3.4.7.dev4}/src/prefect/blocks/__init__.py +0 -0
- {prefect_client-3.4.7.dev2 → prefect_client-3.4.7.dev4}/src/prefect/blocks/abstract.py +0 -0
- {prefect_client-3.4.7.dev2 → prefect_client-3.4.7.dev4}/src/prefect/blocks/core.py +0 -0
- {prefect_client-3.4.7.dev2 → prefect_client-3.4.7.dev4}/src/prefect/blocks/fields.py +0 -0
- {prefect_client-3.4.7.dev2 → prefect_client-3.4.7.dev4}/src/prefect/blocks/notifications.py +0 -0
- {prefect_client-3.4.7.dev2 → prefect_client-3.4.7.dev4}/src/prefect/blocks/redis.py +0 -0
- {prefect_client-3.4.7.dev2 → prefect_client-3.4.7.dev4}/src/prefect/blocks/system.py +0 -0
- {prefect_client-3.4.7.dev2 → prefect_client-3.4.7.dev4}/src/prefect/blocks/webhook.py +0 -0
- {prefect_client-3.4.7.dev2 → prefect_client-3.4.7.dev4}/src/prefect/cache_policies.py +0 -0
- {prefect_client-3.4.7.dev2 → prefect_client-3.4.7.dev4}/src/prefect/client/__init__.py +0 -0
- {prefect_client-3.4.7.dev2 → prefect_client-3.4.7.dev4}/src/prefect/client/base.py +0 -0
- {prefect_client-3.4.7.dev2 → prefect_client-3.4.7.dev4}/src/prefect/client/collections.py +0 -0
- {prefect_client-3.4.7.dev2 → prefect_client-3.4.7.dev4}/src/prefect/client/constants.py +0 -0
- {prefect_client-3.4.7.dev2 → prefect_client-3.4.7.dev4}/src/prefect/client/orchestration/_artifacts/__init__.py +0 -0
- {prefect_client-3.4.7.dev2 → prefect_client-3.4.7.dev4}/src/prefect/client/orchestration/_artifacts/client.py +0 -0
- {prefect_client-3.4.7.dev2 → prefect_client-3.4.7.dev4}/src/prefect/client/orchestration/_automations/__init__.py +0 -0
- {prefect_client-3.4.7.dev2 → prefect_client-3.4.7.dev4}/src/prefect/client/orchestration/_automations/client.py +0 -0
- {prefect_client-3.4.7.dev2 → prefect_client-3.4.7.dev4}/src/prefect/client/orchestration/_blocks_documents/__init__.py +0 -0
- {prefect_client-3.4.7.dev2 → prefect_client-3.4.7.dev4}/src/prefect/client/orchestration/_blocks_documents/client.py +0 -0
- {prefect_client-3.4.7.dev2 → prefect_client-3.4.7.dev4}/src/prefect/client/orchestration/_blocks_schemas/__init__.py +0 -0
- {prefect_client-3.4.7.dev2 → prefect_client-3.4.7.dev4}/src/prefect/client/orchestration/_blocks_schemas/client.py +0 -0
- {prefect_client-3.4.7.dev2 → prefect_client-3.4.7.dev4}/src/prefect/client/orchestration/_blocks_types/__init__.py +0 -0
- {prefect_client-3.4.7.dev2 → prefect_client-3.4.7.dev4}/src/prefect/client/orchestration/_blocks_types/client.py +0 -0
- {prefect_client-3.4.7.dev2 → prefect_client-3.4.7.dev4}/src/prefect/client/orchestration/_concurrency_limits/__init__.py +0 -0
- {prefect_client-3.4.7.dev2 → prefect_client-3.4.7.dev4}/src/prefect/client/orchestration/_concurrency_limits/client.py +0 -0
- {prefect_client-3.4.7.dev2 → prefect_client-3.4.7.dev4}/src/prefect/client/orchestration/_deployments/__init__.py +0 -0
- {prefect_client-3.4.7.dev2 → prefect_client-3.4.7.dev4}/src/prefect/client/orchestration/_deployments/client.py +0 -0
- {prefect_client-3.4.7.dev2 → prefect_client-3.4.7.dev4}/src/prefect/client/orchestration/_flow_runs/__init__.py +0 -0
- {prefect_client-3.4.7.dev2 → prefect_client-3.4.7.dev4}/src/prefect/client/orchestration/_flow_runs/client.py +0 -0
- {prefect_client-3.4.7.dev2 → prefect_client-3.4.7.dev4}/src/prefect/client/orchestration/_flows/__init__.py +0 -0
- {prefect_client-3.4.7.dev2 → prefect_client-3.4.7.dev4}/src/prefect/client/orchestration/_flows/client.py +0 -0
- {prefect_client-3.4.7.dev2 → prefect_client-3.4.7.dev4}/src/prefect/client/orchestration/_logs/__init__.py +0 -0
- {prefect_client-3.4.7.dev2 → prefect_client-3.4.7.dev4}/src/prefect/client/orchestration/_logs/client.py +0 -0
- {prefect_client-3.4.7.dev2 → prefect_client-3.4.7.dev4}/src/prefect/client/orchestration/_variables/__init__.py +0 -0
- {prefect_client-3.4.7.dev2 → prefect_client-3.4.7.dev4}/src/prefect/client/orchestration/_variables/client.py +0 -0
- {prefect_client-3.4.7.dev2 → prefect_client-3.4.7.dev4}/src/prefect/client/orchestration/_work_pools/__init__.py +0 -0
- {prefect_client-3.4.7.dev2 → prefect_client-3.4.7.dev4}/src/prefect/client/orchestration/_work_pools/client.py +0 -0
- {prefect_client-3.4.7.dev2 → prefect_client-3.4.7.dev4}/src/prefect/client/orchestration/base.py +0 -0
- {prefect_client-3.4.7.dev2 → prefect_client-3.4.7.dev4}/src/prefect/client/orchestration/routes.py +0 -0
- {prefect_client-3.4.7.dev2 → prefect_client-3.4.7.dev4}/src/prefect/client/schemas/__init__.py +0 -0
- {prefect_client-3.4.7.dev2 → prefect_client-3.4.7.dev4}/src/prefect/client/schemas/actions.py +0 -0
- {prefect_client-3.4.7.dev2 → prefect_client-3.4.7.dev4}/src/prefect/client/schemas/filters.py +0 -0
- {prefect_client-3.4.7.dev2 → prefect_client-3.4.7.dev4}/src/prefect/client/schemas/responses.py +0 -0
- {prefect_client-3.4.7.dev2 → prefect_client-3.4.7.dev4}/src/prefect/client/schemas/schedules.py +0 -0
- {prefect_client-3.4.7.dev2 → prefect_client-3.4.7.dev4}/src/prefect/client/schemas/sorting.py +0 -0
- {prefect_client-3.4.7.dev2 → prefect_client-3.4.7.dev4}/src/prefect/client/subscriptions.py +0 -0
- {prefect_client-3.4.7.dev2 → prefect_client-3.4.7.dev4}/src/prefect/client/types/__init__.py +0 -0
- {prefect_client-3.4.7.dev2 → prefect_client-3.4.7.dev4}/src/prefect/client/types/flexible_schedule_list.py +0 -0
- {prefect_client-3.4.7.dev2 → prefect_client-3.4.7.dev4}/src/prefect/client/utilities.py +0 -0
- {prefect_client-3.4.7.dev2 → prefect_client-3.4.7.dev4}/src/prefect/concurrency/__init__.py +0 -0
- {prefect_client-3.4.7.dev2 → prefect_client-3.4.7.dev4}/src/prefect/concurrency/_asyncio.py +0 -0
- {prefect_client-3.4.7.dev2 → prefect_client-3.4.7.dev4}/src/prefect/concurrency/_events.py +0 -0
- {prefect_client-3.4.7.dev2 → prefect_client-3.4.7.dev4}/src/prefect/concurrency/asyncio.py +0 -0
- {prefect_client-3.4.7.dev2 → prefect_client-3.4.7.dev4}/src/prefect/concurrency/context.py +0 -0
- {prefect_client-3.4.7.dev2 → prefect_client-3.4.7.dev4}/src/prefect/concurrency/services.py +0 -0
- {prefect_client-3.4.7.dev2 → prefect_client-3.4.7.dev4}/src/prefect/concurrency/sync.py +0 -0
- {prefect_client-3.4.7.dev2 → prefect_client-3.4.7.dev4}/src/prefect/concurrency/v1/__init__.py +0 -0
- {prefect_client-3.4.7.dev2 → prefect_client-3.4.7.dev4}/src/prefect/concurrency/v1/_asyncio.py +0 -0
- {prefect_client-3.4.7.dev2 → prefect_client-3.4.7.dev4}/src/prefect/concurrency/v1/_events.py +0 -0
- {prefect_client-3.4.7.dev2 → prefect_client-3.4.7.dev4}/src/prefect/concurrency/v1/asyncio.py +0 -0
- {prefect_client-3.4.7.dev2 → prefect_client-3.4.7.dev4}/src/prefect/concurrency/v1/context.py +0 -0
- {prefect_client-3.4.7.dev2 → prefect_client-3.4.7.dev4}/src/prefect/concurrency/v1/services.py +0 -0
- {prefect_client-3.4.7.dev2 → prefect_client-3.4.7.dev4}/src/prefect/concurrency/v1/sync.py +0 -0
- {prefect_client-3.4.7.dev2 → prefect_client-3.4.7.dev4}/src/prefect/context.py +0 -0
- {prefect_client-3.4.7.dev2 → prefect_client-3.4.7.dev4}/src/prefect/deployments/__init__.py +0 -0
- {prefect_client-3.4.7.dev2 → prefect_client-3.4.7.dev4}/src/prefect/deployments/base.py +0 -0
- {prefect_client-3.4.7.dev2 → prefect_client-3.4.7.dev4}/src/prefect/deployments/deployments.py +0 -0
- {prefect_client-3.4.7.dev2 → prefect_client-3.4.7.dev4}/src/prefect/deployments/flow_runs.py +0 -0
- {prefect_client-3.4.7.dev2 → prefect_client-3.4.7.dev4}/src/prefect/deployments/runner.py +0 -0
- {prefect_client-3.4.7.dev2 → prefect_client-3.4.7.dev4}/src/prefect/deployments/schedules.py +0 -0
- {prefect_client-3.4.7.dev2 → prefect_client-3.4.7.dev4}/src/prefect/deployments/steps/__init__.py +0 -0
- {prefect_client-3.4.7.dev2 → prefect_client-3.4.7.dev4}/src/prefect/deployments/steps/core.py +0 -0
- {prefect_client-3.4.7.dev2 → prefect_client-3.4.7.dev4}/src/prefect/deployments/steps/pull.py +0 -0
- {prefect_client-3.4.7.dev2 → prefect_client-3.4.7.dev4}/src/prefect/deployments/steps/utility.py +0 -0
- {prefect_client-3.4.7.dev2 → prefect_client-3.4.7.dev4}/src/prefect/docker/__init__.py +0 -0
- {prefect_client-3.4.7.dev2 → prefect_client-3.4.7.dev4}/src/prefect/docker/docker_image.py +0 -0
- {prefect_client-3.4.7.dev2 → prefect_client-3.4.7.dev4}/src/prefect/engine.py +0 -0
- {prefect_client-3.4.7.dev2 → prefect_client-3.4.7.dev4}/src/prefect/events/__init__.py +0 -0
- {prefect_client-3.4.7.dev2 → prefect_client-3.4.7.dev4}/src/prefect/events/actions.py +0 -0
- {prefect_client-3.4.7.dev2 → prefect_client-3.4.7.dev4}/src/prefect/events/cli/__init__.py +0 -0
- {prefect_client-3.4.7.dev2 → prefect_client-3.4.7.dev4}/src/prefect/events/cli/automations.py +0 -0
- {prefect_client-3.4.7.dev2 → prefect_client-3.4.7.dev4}/src/prefect/events/filters.py +0 -0
- {prefect_client-3.4.7.dev2 → prefect_client-3.4.7.dev4}/src/prefect/events/related.py +0 -0
- {prefect_client-3.4.7.dev2 → prefect_client-3.4.7.dev4}/src/prefect/events/schemas/__init__.py +0 -0
- {prefect_client-3.4.7.dev2 → prefect_client-3.4.7.dev4}/src/prefect/events/schemas/deployment_triggers.py +0 -0
- {prefect_client-3.4.7.dev2 → prefect_client-3.4.7.dev4}/src/prefect/events/schemas/events.py +0 -0
- {prefect_client-3.4.7.dev2 → prefect_client-3.4.7.dev4}/src/prefect/events/schemas/labelling.py +0 -0
- {prefect_client-3.4.7.dev2 → prefect_client-3.4.7.dev4}/src/prefect/events/utilities.py +0 -0
- {prefect_client-3.4.7.dev2 → prefect_client-3.4.7.dev4}/src/prefect/events/worker.py +0 -0
- {prefect_client-3.4.7.dev2 → prefect_client-3.4.7.dev4}/src/prefect/exceptions.py +0 -0
- {prefect_client-3.4.7.dev2 → prefect_client-3.4.7.dev4}/src/prefect/filesystems.py +0 -0
- {prefect_client-3.4.7.dev2 → prefect_client-3.4.7.dev4}/src/prefect/flow_engine.py +0 -0
- {prefect_client-3.4.7.dev2 → prefect_client-3.4.7.dev4}/src/prefect/flow_runs.py +0 -0
- {prefect_client-3.4.7.dev2 → prefect_client-3.4.7.dev4}/src/prefect/flows.py +0 -0
- {prefect_client-3.4.7.dev2 → prefect_client-3.4.7.dev4}/src/prefect/futures.py +0 -0
- {prefect_client-3.4.7.dev2 → prefect_client-3.4.7.dev4}/src/prefect/infrastructure/__init__.py +0 -0
- {prefect_client-3.4.7.dev2 → prefect_client-3.4.7.dev4}/src/prefect/infrastructure/base.py +0 -0
- {prefect_client-3.4.7.dev2 → prefect_client-3.4.7.dev4}/src/prefect/infrastructure/provisioners/__init__.py +0 -0
- {prefect_client-3.4.7.dev2 → prefect_client-3.4.7.dev4}/src/prefect/infrastructure/provisioners/cloud_run.py +0 -0
- {prefect_client-3.4.7.dev2 → prefect_client-3.4.7.dev4}/src/prefect/infrastructure/provisioners/coiled.py +0 -0
- {prefect_client-3.4.7.dev2 → prefect_client-3.4.7.dev4}/src/prefect/infrastructure/provisioners/container_instance.py +0 -0
- {prefect_client-3.4.7.dev2 → prefect_client-3.4.7.dev4}/src/prefect/infrastructure/provisioners/ecs.py +0 -0
- {prefect_client-3.4.7.dev2 → prefect_client-3.4.7.dev4}/src/prefect/infrastructure/provisioners/modal.py +0 -0
- {prefect_client-3.4.7.dev2 → prefect_client-3.4.7.dev4}/src/prefect/input/__init__.py +0 -0
- {prefect_client-3.4.7.dev2 → prefect_client-3.4.7.dev4}/src/prefect/input/actions.py +0 -0
- {prefect_client-3.4.7.dev2 → prefect_client-3.4.7.dev4}/src/prefect/input/run_input.py +0 -0
- {prefect_client-3.4.7.dev2 → prefect_client-3.4.7.dev4}/src/prefect/locking/__init__.py +0 -0
- {prefect_client-3.4.7.dev2 → prefect_client-3.4.7.dev4}/src/prefect/locking/filesystem.py +0 -0
- {prefect_client-3.4.7.dev2 → prefect_client-3.4.7.dev4}/src/prefect/locking/memory.py +0 -0
- {prefect_client-3.4.7.dev2 → prefect_client-3.4.7.dev4}/src/prefect/locking/protocol.py +0 -0
- {prefect_client-3.4.7.dev2 → prefect_client-3.4.7.dev4}/src/prefect/logging/__init__.py +0 -0
- {prefect_client-3.4.7.dev2 → prefect_client-3.4.7.dev4}/src/prefect/logging/configuration.py +0 -0
- {prefect_client-3.4.7.dev2 → prefect_client-3.4.7.dev4}/src/prefect/logging/filters.py +0 -0
- {prefect_client-3.4.7.dev2 → prefect_client-3.4.7.dev4}/src/prefect/logging/formatters.py +0 -0
- {prefect_client-3.4.7.dev2 → prefect_client-3.4.7.dev4}/src/prefect/logging/handlers.py +0 -0
- {prefect_client-3.4.7.dev2 → prefect_client-3.4.7.dev4}/src/prefect/logging/highlighters.py +0 -0
- {prefect_client-3.4.7.dev2 → prefect_client-3.4.7.dev4}/src/prefect/logging/loggers.py +0 -0
- {prefect_client-3.4.7.dev2 → prefect_client-3.4.7.dev4}/src/prefect/logging/logging.yml +0 -0
- {prefect_client-3.4.7.dev2 → prefect_client-3.4.7.dev4}/src/prefect/main.py +0 -0
- {prefect_client-3.4.7.dev2 → prefect_client-3.4.7.dev4}/src/prefect/plugins.py +0 -0
- {prefect_client-3.4.7.dev2 → prefect_client-3.4.7.dev4}/src/prefect/py.typed +0 -0
- {prefect_client-3.4.7.dev2 → prefect_client-3.4.7.dev4}/src/prefect/results.py +0 -0
- {prefect_client-3.4.7.dev2 → prefect_client-3.4.7.dev4}/src/prefect/runner/__init__.py +0 -0
- {prefect_client-3.4.7.dev2 → prefect_client-3.4.7.dev4}/src/prefect/runner/_observers.py +0 -0
- {prefect_client-3.4.7.dev2 → prefect_client-3.4.7.dev4}/src/prefect/runner/runner.py +0 -0
- {prefect_client-3.4.7.dev2 → prefect_client-3.4.7.dev4}/src/prefect/runner/server.py +0 -0
- {prefect_client-3.4.7.dev2 → prefect_client-3.4.7.dev4}/src/prefect/runner/storage.py +0 -0
- {prefect_client-3.4.7.dev2 → prefect_client-3.4.7.dev4}/src/prefect/runner/submit.py +0 -0
- {prefect_client-3.4.7.dev2 → prefect_client-3.4.7.dev4}/src/prefect/runner/utils.py +0 -0
- {prefect_client-3.4.7.dev2 → prefect_client-3.4.7.dev4}/src/prefect/runtime/__init__.py +0 -0
- {prefect_client-3.4.7.dev2 → prefect_client-3.4.7.dev4}/src/prefect/runtime/deployment.py +0 -0
- {prefect_client-3.4.7.dev2 → prefect_client-3.4.7.dev4}/src/prefect/runtime/flow_run.py +0 -0
- {prefect_client-3.4.7.dev2 → prefect_client-3.4.7.dev4}/src/prefect/runtime/task_run.py +0 -0
- {prefect_client-3.4.7.dev2 → prefect_client-3.4.7.dev4}/src/prefect/schedules.py +0 -0
- {prefect_client-3.4.7.dev2 → prefect_client-3.4.7.dev4}/src/prefect/server/api/__init__.py +0 -0
- {prefect_client-3.4.7.dev2 → prefect_client-3.4.7.dev4}/src/prefect/server/api/admin.py +0 -0
- {prefect_client-3.4.7.dev2 → prefect_client-3.4.7.dev4}/src/prefect/server/api/artifacts.py +0 -0
- {prefect_client-3.4.7.dev2 → prefect_client-3.4.7.dev4}/src/prefect/server/api/automations.py +0 -0
- {prefect_client-3.4.7.dev2 → prefect_client-3.4.7.dev4}/src/prefect/server/api/block_capabilities.py +0 -0
- {prefect_client-3.4.7.dev2 → prefect_client-3.4.7.dev4}/src/prefect/server/api/block_documents.py +0 -0
- {prefect_client-3.4.7.dev2 → prefect_client-3.4.7.dev4}/src/prefect/server/api/block_schemas.py +0 -0
- {prefect_client-3.4.7.dev2 → prefect_client-3.4.7.dev4}/src/prefect/server/api/block_types.py +0 -0
- {prefect_client-3.4.7.dev2 → prefect_client-3.4.7.dev4}/src/prefect/server/api/clients.py +0 -0
- {prefect_client-3.4.7.dev2 → prefect_client-3.4.7.dev4}/src/prefect/server/api/collections.py +0 -0
- {prefect_client-3.4.7.dev2 → prefect_client-3.4.7.dev4}/src/prefect/server/api/collections_data/views/aggregate-worker-metadata.json +0 -0
- {prefect_client-3.4.7.dev2 → prefect_client-3.4.7.dev4}/src/prefect/server/api/concurrency_limits.py +0 -0
- {prefect_client-3.4.7.dev2 → prefect_client-3.4.7.dev4}/src/prefect/server/api/concurrency_limits_v2.py +0 -0
- {prefect_client-3.4.7.dev2 → prefect_client-3.4.7.dev4}/src/prefect/server/api/csrf_token.py +0 -0
- {prefect_client-3.4.7.dev2 → prefect_client-3.4.7.dev4}/src/prefect/server/api/dependencies.py +0 -0
- {prefect_client-3.4.7.dev2 → prefect_client-3.4.7.dev4}/src/prefect/server/api/deployments.py +0 -0
- {prefect_client-3.4.7.dev2 → prefect_client-3.4.7.dev4}/src/prefect/server/api/events.py +0 -0
- {prefect_client-3.4.7.dev2 → prefect_client-3.4.7.dev4}/src/prefect/server/api/flow_run_states.py +0 -0
- {prefect_client-3.4.7.dev2 → prefect_client-3.4.7.dev4}/src/prefect/server/api/flow_runs.py +0 -0
- {prefect_client-3.4.7.dev2 → prefect_client-3.4.7.dev4}/src/prefect/server/api/flows.py +0 -0
- {prefect_client-3.4.7.dev2 → prefect_client-3.4.7.dev4}/src/prefect/server/api/middleware.py +0 -0
- {prefect_client-3.4.7.dev2 → prefect_client-3.4.7.dev4}/src/prefect/server/api/root.py +0 -0
- {prefect_client-3.4.7.dev2 → prefect_client-3.4.7.dev4}/src/prefect/server/api/run_history.py +0 -0
- {prefect_client-3.4.7.dev2 → prefect_client-3.4.7.dev4}/src/prefect/server/api/saved_searches.py +0 -0
- {prefect_client-3.4.7.dev2 → prefect_client-3.4.7.dev4}/src/prefect/server/api/server.py +0 -0
- {prefect_client-3.4.7.dev2 → prefect_client-3.4.7.dev4}/src/prefect/server/api/static/prefect-logo-mark-gradient.png +0 -0
- {prefect_client-3.4.7.dev2 → prefect_client-3.4.7.dev4}/src/prefect/server/api/task_run_states.py +0 -0
- {prefect_client-3.4.7.dev2 → prefect_client-3.4.7.dev4}/src/prefect/server/api/task_runs.py +0 -0
- {prefect_client-3.4.7.dev2 → prefect_client-3.4.7.dev4}/src/prefect/server/api/task_workers.py +0 -0
- {prefect_client-3.4.7.dev2 → prefect_client-3.4.7.dev4}/src/prefect/server/api/templates.py +0 -0
- {prefect_client-3.4.7.dev2 → prefect_client-3.4.7.dev4}/src/prefect/server/api/ui/__init__.py +0 -0
- {prefect_client-3.4.7.dev2 → prefect_client-3.4.7.dev4}/src/prefect/server/api/ui/flow_runs.py +0 -0
- {prefect_client-3.4.7.dev2 → prefect_client-3.4.7.dev4}/src/prefect/server/api/ui/flows.py +0 -0
- {prefect_client-3.4.7.dev2 → prefect_client-3.4.7.dev4}/src/prefect/server/api/ui/schemas.py +0 -0
- {prefect_client-3.4.7.dev2 → prefect_client-3.4.7.dev4}/src/prefect/server/api/ui/task_runs.py +0 -0
- {prefect_client-3.4.7.dev2 → prefect_client-3.4.7.dev4}/src/prefect/server/api/validation.py +0 -0
- {prefect_client-3.4.7.dev2 → prefect_client-3.4.7.dev4}/src/prefect/server/api/variables.py +0 -0
- {prefect_client-3.4.7.dev2 → prefect_client-3.4.7.dev4}/src/prefect/server/api/work_queues.py +0 -0
- {prefect_client-3.4.7.dev2 → prefect_client-3.4.7.dev4}/src/prefect/server/api/workers.py +0 -0
- {prefect_client-3.4.7.dev2 → prefect_client-3.4.7.dev4}/src/prefect/settings/__init__.py +0 -0
- {prefect_client-3.4.7.dev2 → prefect_client-3.4.7.dev4}/src/prefect/settings/base.py +0 -0
- {prefect_client-3.4.7.dev2 → prefect_client-3.4.7.dev4}/src/prefect/settings/constants.py +0 -0
- {prefect_client-3.4.7.dev2 → prefect_client-3.4.7.dev4}/src/prefect/settings/context.py +0 -0
- {prefect_client-3.4.7.dev2 → prefect_client-3.4.7.dev4}/src/prefect/settings/legacy.py +0 -0
- {prefect_client-3.4.7.dev2 → prefect_client-3.4.7.dev4}/src/prefect/settings/models/__init__.py +0 -0
- {prefect_client-3.4.7.dev2 → prefect_client-3.4.7.dev4}/src/prefect/settings/models/api.py +0 -0
- {prefect_client-3.4.7.dev2 → prefect_client-3.4.7.dev4}/src/prefect/settings/models/cli.py +0 -0
- {prefect_client-3.4.7.dev2 → prefect_client-3.4.7.dev4}/src/prefect/settings/models/client.py +0 -0
- {prefect_client-3.4.7.dev2 → prefect_client-3.4.7.dev4}/src/prefect/settings/models/cloud.py +0 -0
- {prefect_client-3.4.7.dev2 → prefect_client-3.4.7.dev4}/src/prefect/settings/models/deployments.py +0 -0
- {prefect_client-3.4.7.dev2 → prefect_client-3.4.7.dev4}/src/prefect/settings/models/experiments.py +0 -0
- {prefect_client-3.4.7.dev2 → prefect_client-3.4.7.dev4}/src/prefect/settings/models/flows.py +0 -0
- {prefect_client-3.4.7.dev2 → prefect_client-3.4.7.dev4}/src/prefect/settings/models/internal.py +0 -0
- {prefect_client-3.4.7.dev2 → prefect_client-3.4.7.dev4}/src/prefect/settings/models/logging.py +0 -0
- {prefect_client-3.4.7.dev2 → prefect_client-3.4.7.dev4}/src/prefect/settings/models/results.py +0 -0
- {prefect_client-3.4.7.dev2 → prefect_client-3.4.7.dev4}/src/prefect/settings/models/root.py +0 -0
- {prefect_client-3.4.7.dev2 → prefect_client-3.4.7.dev4}/src/prefect/settings/models/runner.py +0 -0
- {prefect_client-3.4.7.dev2 → prefect_client-3.4.7.dev4}/src/prefect/settings/models/server/__init__.py +0 -0
- {prefect_client-3.4.7.dev2 → prefect_client-3.4.7.dev4}/src/prefect/settings/models/server/api.py +0 -0
- {prefect_client-3.4.7.dev2 → prefect_client-3.4.7.dev4}/src/prefect/settings/models/server/database.py +0 -0
- {prefect_client-3.4.7.dev2 → prefect_client-3.4.7.dev4}/src/prefect/settings/models/server/deployments.py +0 -0
- {prefect_client-3.4.7.dev2 → prefect_client-3.4.7.dev4}/src/prefect/settings/models/server/ephemeral.py +0 -0
- {prefect_client-3.4.7.dev2 → prefect_client-3.4.7.dev4}/src/prefect/settings/models/server/events.py +0 -0
- {prefect_client-3.4.7.dev2 → prefect_client-3.4.7.dev4}/src/prefect/settings/models/server/flow_run_graph.py +0 -0
- {prefect_client-3.4.7.dev2 → prefect_client-3.4.7.dev4}/src/prefect/settings/models/server/services.py +0 -0
- {prefect_client-3.4.7.dev2 → prefect_client-3.4.7.dev4}/src/prefect/settings/models/server/tasks.py +0 -0
- {prefect_client-3.4.7.dev2 → prefect_client-3.4.7.dev4}/src/prefect/settings/models/server/ui.py +0 -0
- {prefect_client-3.4.7.dev2 → prefect_client-3.4.7.dev4}/src/prefect/settings/models/tasks.py +0 -0
- {prefect_client-3.4.7.dev2 → prefect_client-3.4.7.dev4}/src/prefect/settings/models/testing.py +0 -0
- {prefect_client-3.4.7.dev2 → prefect_client-3.4.7.dev4}/src/prefect/settings/models/worker.py +0 -0
- {prefect_client-3.4.7.dev2 → prefect_client-3.4.7.dev4}/src/prefect/settings/profiles.py +0 -0
- {prefect_client-3.4.7.dev2 → prefect_client-3.4.7.dev4}/src/prefect/settings/profiles.toml +0 -0
- {prefect_client-3.4.7.dev2 → prefect_client-3.4.7.dev4}/src/prefect/settings/sources.py +0 -0
- {prefect_client-3.4.7.dev2 → prefect_client-3.4.7.dev4}/src/prefect/states.py +0 -0
- {prefect_client-3.4.7.dev2 → prefect_client-3.4.7.dev4}/src/prefect/task_engine.py +0 -0
- {prefect_client-3.4.7.dev2 → prefect_client-3.4.7.dev4}/src/prefect/task_runners.py +0 -0
- {prefect_client-3.4.7.dev2 → prefect_client-3.4.7.dev4}/src/prefect/task_runs.py +0 -0
- {prefect_client-3.4.7.dev2 → prefect_client-3.4.7.dev4}/src/prefect/task_worker.py +0 -0
- {prefect_client-3.4.7.dev2 → prefect_client-3.4.7.dev4}/src/prefect/tasks.py +0 -0
- {prefect_client-3.4.7.dev2 → prefect_client-3.4.7.dev4}/src/prefect/telemetry/__init__.py +0 -0
- {prefect_client-3.4.7.dev2 → prefect_client-3.4.7.dev4}/src/prefect/telemetry/bootstrap.py +0 -0
- {prefect_client-3.4.7.dev2 → prefect_client-3.4.7.dev4}/src/prefect/telemetry/instrumentation.py +0 -0
- {prefect_client-3.4.7.dev2 → prefect_client-3.4.7.dev4}/src/prefect/telemetry/logging.py +0 -0
- {prefect_client-3.4.7.dev2 → prefect_client-3.4.7.dev4}/src/prefect/telemetry/processors.py +0 -0
- {prefect_client-3.4.7.dev2 → prefect_client-3.4.7.dev4}/src/prefect/telemetry/run_telemetry.py +0 -0
- {prefect_client-3.4.7.dev2 → prefect_client-3.4.7.dev4}/src/prefect/telemetry/services.py +0 -0
- {prefect_client-3.4.7.dev2 → prefect_client-3.4.7.dev4}/src/prefect/transactions.py +0 -0
- {prefect_client-3.4.7.dev2 → prefect_client-3.4.7.dev4}/src/prefect/types/__init__.py +0 -0
- {prefect_client-3.4.7.dev2 → prefect_client-3.4.7.dev4}/src/prefect/types/_datetime.py +0 -0
- {prefect_client-3.4.7.dev2 → prefect_client-3.4.7.dev4}/src/prefect/types/entrypoint.py +0 -0
- {prefect_client-3.4.7.dev2 → prefect_client-3.4.7.dev4}/src/prefect/types/names.py +0 -0
- {prefect_client-3.4.7.dev2 → prefect_client-3.4.7.dev4}/src/prefect/utilities/__init__.py +0 -0
- {prefect_client-3.4.7.dev2 → prefect_client-3.4.7.dev4}/src/prefect/utilities/_deprecated.py +0 -0
- {prefect_client-3.4.7.dev2 → prefect_client-3.4.7.dev4}/src/prefect/utilities/_engine.py +0 -0
- {prefect_client-3.4.7.dev2 → prefect_client-3.4.7.dev4}/src/prefect/utilities/_git.py +0 -0
- {prefect_client-3.4.7.dev2 → prefect_client-3.4.7.dev4}/src/prefect/utilities/annotations.py +0 -0
- {prefect_client-3.4.7.dev2 → prefect_client-3.4.7.dev4}/src/prefect/utilities/asyncutils.py +0 -0
- {prefect_client-3.4.7.dev2 → prefect_client-3.4.7.dev4}/src/prefect/utilities/collections.py +0 -0
- {prefect_client-3.4.7.dev2 → prefect_client-3.4.7.dev4}/src/prefect/utilities/compat.py +0 -0
- {prefect_client-3.4.7.dev2 → prefect_client-3.4.7.dev4}/src/prefect/utilities/context.py +0 -0
- {prefect_client-3.4.7.dev2 → prefect_client-3.4.7.dev4}/src/prefect/utilities/dispatch.py +0 -0
- {prefect_client-3.4.7.dev2 → prefect_client-3.4.7.dev4}/src/prefect/utilities/dockerutils.py +0 -0
- {prefect_client-3.4.7.dev2 → prefect_client-3.4.7.dev4}/src/prefect/utilities/engine.py +0 -0
- {prefect_client-3.4.7.dev2 → prefect_client-3.4.7.dev4}/src/prefect/utilities/filesystem.py +0 -0
- {prefect_client-3.4.7.dev2 → prefect_client-3.4.7.dev4}/src/prefect/utilities/generics.py +0 -0
- {prefect_client-3.4.7.dev2 → prefect_client-3.4.7.dev4}/src/prefect/utilities/hashing.py +0 -0
- {prefect_client-3.4.7.dev2 → prefect_client-3.4.7.dev4}/src/prefect/utilities/importtools.py +0 -0
- {prefect_client-3.4.7.dev2 → prefect_client-3.4.7.dev4}/src/prefect/utilities/math.py +0 -0
- {prefect_client-3.4.7.dev2 → prefect_client-3.4.7.dev4}/src/prefect/utilities/names.py +0 -0
- {prefect_client-3.4.7.dev2 → prefect_client-3.4.7.dev4}/src/prefect/utilities/processutils.py +0 -0
- {prefect_client-3.4.7.dev2 → prefect_client-3.4.7.dev4}/src/prefect/utilities/pydantic.py +0 -0
- {prefect_client-3.4.7.dev2 → prefect_client-3.4.7.dev4}/src/prefect/utilities/render_swagger.py +0 -0
- {prefect_client-3.4.7.dev2 → prefect_client-3.4.7.dev4}/src/prefect/utilities/schema_tools/__init__.py +0 -0
- {prefect_client-3.4.7.dev2 → prefect_client-3.4.7.dev4}/src/prefect/utilities/schema_tools/hydration.py +0 -0
- {prefect_client-3.4.7.dev2 → prefect_client-3.4.7.dev4}/src/prefect/utilities/schema_tools/validation.py +0 -0
- {prefect_client-3.4.7.dev2 → prefect_client-3.4.7.dev4}/src/prefect/utilities/services.py +0 -0
- {prefect_client-3.4.7.dev2 → prefect_client-3.4.7.dev4}/src/prefect/utilities/slugify.py +0 -0
- {prefect_client-3.4.7.dev2 → prefect_client-3.4.7.dev4}/src/prefect/utilities/templating.py +0 -0
- {prefect_client-3.4.7.dev2 → prefect_client-3.4.7.dev4}/src/prefect/utilities/text.py +0 -0
- {prefect_client-3.4.7.dev2 → prefect_client-3.4.7.dev4}/src/prefect/utilities/timeout.py +0 -0
- {prefect_client-3.4.7.dev2 → prefect_client-3.4.7.dev4}/src/prefect/utilities/urls.py +0 -0
- {prefect_client-3.4.7.dev2 → prefect_client-3.4.7.dev4}/src/prefect/utilities/visualization.py +0 -0
- {prefect_client-3.4.7.dev2 → prefect_client-3.4.7.dev4}/src/prefect/variables.py +0 -0
- {prefect_client-3.4.7.dev2 → prefect_client-3.4.7.dev4}/src/prefect/workers/__init__.py +0 -0
- {prefect_client-3.4.7.dev2 → prefect_client-3.4.7.dev4}/src/prefect/workers/base.py +0 -0
- {prefect_client-3.4.7.dev2 → prefect_client-3.4.7.dev4}/src/prefect/workers/block.py +0 -0
- {prefect_client-3.4.7.dev2 → prefect_client-3.4.7.dev4}/src/prefect/workers/cloud.py +0 -0
- {prefect_client-3.4.7.dev2 → prefect_client-3.4.7.dev4}/src/prefect/workers/process.py +0 -0
- {prefect_client-3.4.7.dev2 → prefect_client-3.4.7.dev4}/src/prefect/workers/server.py +0 -0
- {prefect_client-3.4.7.dev2 → prefect_client-3.4.7.dev4}/src/prefect/workers/utilities.py +0 -0
@@ -0,0 +1,28 @@
|
|
1
|
+
# Core Prefect SDK
|
2
|
+
|
3
|
+
The foundation for building and executing workflows with Python.
|
4
|
+
|
5
|
+
## Key Components
|
6
|
+
|
7
|
+
- **Flows & Tasks**: Workflow definition with `@flow` and `@task` decorators
|
8
|
+
- **States**: Execution status tracking (Pending, Running, Completed, Failed)
|
9
|
+
- **Context**: Runtime information and dependency injection
|
10
|
+
- **Results**: Task output persistence and retrieval
|
11
|
+
- **Deployments**: Packaging flows for scheduled/triggered execution
|
12
|
+
- **Blocks**: Reusable configuration for external systems
|
13
|
+
|
14
|
+
## Main Modules
|
15
|
+
|
16
|
+
- `flows.py` - Flow lifecycle and execution
|
17
|
+
- `tasks.py` - Task definition and dependency resolution
|
18
|
+
- `engine.py` - Core execution engine
|
19
|
+
- `client/` - Server/Cloud API communication
|
20
|
+
- `deployments/` - Deployment management
|
21
|
+
- `blocks/` - Infrastructure and storage blocks
|
22
|
+
|
23
|
+
## SDK-Specific Notes
|
24
|
+
|
25
|
+
- Async-first execution model with sync support
|
26
|
+
- Immutable flow/task definitions after creation
|
27
|
+
- State transitions handle retries and caching
|
28
|
+
- Backward compatibility required for public APIs
|
@@ -0,0 +1,106 @@
|
|
1
|
+
"""
|
2
|
+
Internal WebSocket proxy utilities for Prefect client connections.
|
3
|
+
|
4
|
+
This module provides shared WebSocket proxy connection logic and SSL configuration
|
5
|
+
to avoid duplication between events and logs clients.
|
6
|
+
"""
|
7
|
+
|
8
|
+
import os
|
9
|
+
import ssl
|
10
|
+
from typing import Any, Generator, Optional
|
11
|
+
from urllib.parse import urlparse
|
12
|
+
from urllib.request import proxy_bypass
|
13
|
+
|
14
|
+
import certifi
|
15
|
+
from python_socks.async_.asyncio import Proxy
|
16
|
+
from typing_extensions import Self
|
17
|
+
from websockets.asyncio.client import ClientConnection, connect
|
18
|
+
|
19
|
+
from prefect.settings import get_current_settings
|
20
|
+
|
21
|
+
|
22
|
+
def create_ssl_context_for_websocket(uri: str) -> Optional[ssl.SSLContext]:
|
23
|
+
"""Create SSL context for WebSocket connections based on URI scheme."""
|
24
|
+
u = urlparse(uri)
|
25
|
+
|
26
|
+
if u.scheme != "wss":
|
27
|
+
return None
|
28
|
+
|
29
|
+
if get_current_settings().api.tls_insecure_skip_verify:
|
30
|
+
# Create an unverified context for insecure connections
|
31
|
+
ctx = ssl.create_default_context()
|
32
|
+
ctx.check_hostname = False
|
33
|
+
ctx.verify_mode = ssl.CERT_NONE
|
34
|
+
return ctx
|
35
|
+
else:
|
36
|
+
# Create a verified context with the certificate file
|
37
|
+
cert_file = get_current_settings().api.ssl_cert_file
|
38
|
+
if not cert_file:
|
39
|
+
cert_file = certifi.where()
|
40
|
+
return ssl.create_default_context(cafile=cert_file)
|
41
|
+
|
42
|
+
|
43
|
+
class WebsocketProxyConnect(connect):
|
44
|
+
"""
|
45
|
+
WebSocket connection class with proxy and SSL support.
|
46
|
+
|
47
|
+
Extends the websockets.asyncio.client.connect class to add HTTP/HTTPS
|
48
|
+
proxy support via environment variables, proxy bypass logic, and SSL
|
49
|
+
certificate verification.
|
50
|
+
"""
|
51
|
+
|
52
|
+
def __init__(self: Self, uri: str, **kwargs: Any):
|
53
|
+
# super() is intentionally deferred to the _proxy_connect method
|
54
|
+
# to allow for the socket to be established first
|
55
|
+
|
56
|
+
self.uri = uri
|
57
|
+
self._kwargs = kwargs
|
58
|
+
|
59
|
+
u = urlparse(uri)
|
60
|
+
host = u.hostname
|
61
|
+
|
62
|
+
if not host:
|
63
|
+
raise ValueError(f"Invalid URI {uri}, no hostname found")
|
64
|
+
|
65
|
+
if u.scheme == "ws":
|
66
|
+
port = u.port or 80
|
67
|
+
proxy_url = os.environ.get("HTTP_PROXY")
|
68
|
+
elif u.scheme == "wss":
|
69
|
+
port = u.port or 443
|
70
|
+
proxy_url = os.environ.get("HTTPS_PROXY")
|
71
|
+
kwargs["server_hostname"] = host
|
72
|
+
else:
|
73
|
+
raise ValueError(
|
74
|
+
"Unsupported scheme %s. Expected 'ws' or 'wss'. " % u.scheme
|
75
|
+
)
|
76
|
+
|
77
|
+
self._proxy = (
|
78
|
+
Proxy.from_url(proxy_url) if proxy_url and not proxy_bypass(host) else None
|
79
|
+
)
|
80
|
+
self._host = host
|
81
|
+
self._port = port
|
82
|
+
|
83
|
+
# Configure SSL context for HTTPS connections
|
84
|
+
ssl_context = create_ssl_context_for_websocket(uri)
|
85
|
+
if ssl_context:
|
86
|
+
self._kwargs.setdefault("ssl", ssl_context)
|
87
|
+
|
88
|
+
async def _proxy_connect(self: Self) -> ClientConnection:
|
89
|
+
if self._proxy:
|
90
|
+
sock = await self._proxy.connect(
|
91
|
+
dest_host=self._host,
|
92
|
+
dest_port=self._port,
|
93
|
+
)
|
94
|
+
self._kwargs["sock"] = sock
|
95
|
+
|
96
|
+
super().__init__(self.uri, **self._kwargs)
|
97
|
+
proto = await self.__await_impl__()
|
98
|
+
return proto
|
99
|
+
|
100
|
+
def __await__(self: Self) -> Generator[Any, None, ClientConnection]:
|
101
|
+
return self._proxy_connect().__await__()
|
102
|
+
|
103
|
+
|
104
|
+
def websocket_connect(uri: str, **kwargs: Any) -> WebsocketProxyConnect:
|
105
|
+
"""Create a WebSocket connection with proxy and SSL support."""
|
106
|
+
return WebsocketProxyConnect(uri, **kwargs)
|
@@ -24,6 +24,16 @@ from prefect.settings import (
|
|
24
24
|
|
25
25
|
PARSE_API_URL_REGEX = re.compile(r"accounts/(.{36})/workspaces/(.{36})")
|
26
26
|
|
27
|
+
# Cache for TypeAdapter instances to avoid repeated instantiation
|
28
|
+
_TYPE_ADAPTER_CACHE: dict[type, pydantic.TypeAdapter[Any]] = {}
|
29
|
+
|
30
|
+
|
31
|
+
def _get_type_adapter(type_: type) -> pydantic.TypeAdapter[Any]:
|
32
|
+
"""Get or create a cached TypeAdapter for the given type."""
|
33
|
+
if type_ not in _TYPE_ADAPTER_CACHE:
|
34
|
+
_TYPE_ADAPTER_CACHE[type_] = pydantic.TypeAdapter(type_)
|
35
|
+
return _TYPE_ADAPTER_CACHE[type_]
|
36
|
+
|
27
37
|
|
28
38
|
def get_cloud_client(
|
29
39
|
host: Optional[str] = None,
|
@@ -112,7 +122,7 @@ class CloudClient:
|
|
112
122
|
await self.read_workspaces()
|
113
123
|
|
114
124
|
async def read_workspaces(self) -> list[Workspace]:
|
115
|
-
workspaces =
|
125
|
+
workspaces = _get_type_adapter(list[Workspace]).validate_python(
|
116
126
|
await self.get("/me/workspaces")
|
117
127
|
)
|
118
128
|
return workspaces
|
{prefect_client-3.4.7.dev2 → prefect_client-3.4.7.dev4}/src/prefect/client/orchestration/__init__.py
RENAMED
@@ -144,6 +144,16 @@ P = ParamSpec("P")
|
|
144
144
|
R = TypeVar("R", infer_variance=True)
|
145
145
|
T = TypeVar("T")
|
146
146
|
|
147
|
+
# Cache for TypeAdapter instances to avoid repeated instantiation
|
148
|
+
_TYPE_ADAPTER_CACHE: dict[type, pydantic.TypeAdapter[Any]] = {}
|
149
|
+
|
150
|
+
|
151
|
+
def _get_type_adapter(type_: type) -> pydantic.TypeAdapter[Any]:
|
152
|
+
"""Get or create a cached TypeAdapter for the given type."""
|
153
|
+
if type_ not in _TYPE_ADAPTER_CACHE:
|
154
|
+
_TYPE_ADAPTER_CACHE[type_] = pydantic.TypeAdapter(type_)
|
155
|
+
return _TYPE_ADAPTER_CACHE[type_]
|
156
|
+
|
147
157
|
|
148
158
|
@overload
|
149
159
|
def get_client(
|
@@ -635,7 +645,7 @@ class PrefectClient(
|
|
635
645
|
raise prefect.exceptions.ObjectNotFound(http_exc=e) from e
|
636
646
|
else:
|
637
647
|
raise
|
638
|
-
return
|
648
|
+
return _get_type_adapter(list[FlowRun]).validate_python(response.json())
|
639
649
|
|
640
650
|
async def read_work_queue(
|
641
651
|
self,
|
@@ -894,7 +904,7 @@ class PrefectClient(
|
|
894
904
|
"offset": offset,
|
895
905
|
}
|
896
906
|
response = await self._client.post("/task_runs/filter", json=body)
|
897
|
-
return
|
907
|
+
return _get_type_adapter(list[TaskRun]).validate_python(response.json())
|
898
908
|
|
899
909
|
async def delete_task_run(self, task_run_id: UUID) -> None:
|
900
910
|
"""
|
@@ -958,7 +968,7 @@ class PrefectClient(
|
|
958
968
|
response = await self._client.get(
|
959
969
|
"/task_run_states/", params=dict(task_run_id=str(task_run_id))
|
960
970
|
)
|
961
|
-
return
|
971
|
+
return _get_type_adapter(list[prefect.states.State]).validate_python(
|
962
972
|
response.json()
|
963
973
|
)
|
964
974
|
|
@@ -1005,7 +1015,7 @@ class PrefectClient(
|
|
1005
1015
|
else:
|
1006
1016
|
response = await self._client.post("/work_queues/filter", json=json)
|
1007
1017
|
|
1008
|
-
return
|
1018
|
+
return _get_type_adapter(list[WorkQueue]).validate_python(response.json())
|
1009
1019
|
|
1010
1020
|
async def read_worker_metadata(self) -> dict[str, Any]:
|
1011
1021
|
"""Reads worker metadata stored in Prefect collection registry."""
|
@@ -1554,7 +1564,7 @@ class SyncPrefectClient(
|
|
1554
1564
|
"offset": offset,
|
1555
1565
|
}
|
1556
1566
|
response = self._client.post("/task_runs/filter", json=body)
|
1557
|
-
return
|
1567
|
+
return _get_type_adapter(list[TaskRun]).validate_python(response.json())
|
1558
1568
|
|
1559
1569
|
def set_task_run_state(
|
1560
1570
|
self,
|
@@ -1598,6 +1608,6 @@ class SyncPrefectClient(
|
|
1598
1608
|
response = self._client.get(
|
1599
1609
|
"/task_run_states/", params=dict(task_run_id=str(task_run_id))
|
1600
1610
|
)
|
1601
|
-
return
|
1611
|
+
return _get_type_adapter(list[prefect.states.State]).validate_python(
|
1602
1612
|
response.json()
|
1603
1613
|
)
|
{prefect_client-3.4.7.dev2 → prefect_client-3.4.7.dev4}/src/prefect/client/schemas/objects.py
RENAMED
@@ -279,10 +279,6 @@ class State(TimeSeriesBaseModel, ObjectBaseModel, Generic[R]):
|
|
279
279
|
if the state is of type `FAILED` and the underlying data is an exception. When flow
|
280
280
|
was run in a different memory space (using `run_deployment`), this will only raise
|
281
281
|
if `fetch` is `True`.
|
282
|
-
fetch: a boolean specifying whether to resolve references to persisted
|
283
|
-
results into data. For synchronous users, this defaults to `True`.
|
284
|
-
For asynchronous users, this defaults to `False` for backwards
|
285
|
-
compatibility.
|
286
282
|
retry_result_failure: a boolean specifying whether to retry on failures to
|
287
283
|
load the result from result storage
|
288
284
|
|
@@ -1,7 +1,5 @@
|
|
1
1
|
import abc
|
2
2
|
import asyncio
|
3
|
-
import os
|
4
|
-
import ssl
|
5
3
|
from datetime import timedelta
|
6
4
|
from types import TracebackType
|
7
5
|
from typing import (
|
@@ -9,7 +7,6 @@ from typing import (
|
|
9
7
|
Any,
|
10
8
|
ClassVar,
|
11
9
|
Dict,
|
12
|
-
Generator,
|
13
10
|
List,
|
14
11
|
MutableMapping,
|
15
12
|
Optional,
|
@@ -17,18 +14,14 @@ from typing import (
|
|
17
14
|
Type,
|
18
15
|
cast,
|
19
16
|
)
|
20
|
-
from urllib.parse import urlparse
|
21
|
-
from urllib.request import proxy_bypass
|
22
17
|
from uuid import UUID
|
23
18
|
|
24
|
-
import certifi
|
25
19
|
import orjson
|
26
20
|
from cachetools import TTLCache
|
27
21
|
from prometheus_client import Counter
|
28
|
-
from python_socks.async_.asyncio import Proxy
|
29
22
|
from typing_extensions import Self
|
30
23
|
from websockets import Subprotocol
|
31
|
-
from websockets.asyncio.client import ClientConnection
|
24
|
+
from websockets.asyncio.client import ClientConnection
|
32
25
|
from websockets.exceptions import (
|
33
26
|
ConnectionClosed,
|
34
27
|
ConnectionClosedError,
|
@@ -36,13 +29,12 @@ from websockets.exceptions import (
|
|
36
29
|
)
|
37
30
|
|
38
31
|
import prefect.types._datetime
|
32
|
+
from prefect._internal.websockets import websocket_connect
|
39
33
|
from prefect.events import Event
|
40
34
|
from prefect.logging import get_logger
|
41
35
|
from prefect.settings import (
|
42
36
|
PREFECT_API_AUTH_STRING,
|
43
37
|
PREFECT_API_KEY,
|
44
|
-
PREFECT_API_SSL_CERT_FILE,
|
45
|
-
PREFECT_API_TLS_INSECURE_SKIP_VERIFY,
|
46
38
|
PREFECT_API_URL,
|
47
39
|
PREFECT_CLOUD_API_URL,
|
48
40
|
PREFECT_DEBUG_MODE,
|
@@ -94,72 +86,6 @@ def events_out_socket_from_api_url(url: str) -> str:
|
|
94
86
|
return http_to_ws(url) + "/events/out"
|
95
87
|
|
96
88
|
|
97
|
-
class WebsocketProxyConnect(connect):
|
98
|
-
def __init__(self: Self, uri: str, **kwargs: Any):
|
99
|
-
# super() is intentionally deferred to the _proxy_connect method
|
100
|
-
# to allow for the socket to be established first
|
101
|
-
|
102
|
-
self.uri = uri
|
103
|
-
self._kwargs = kwargs
|
104
|
-
|
105
|
-
u = urlparse(uri)
|
106
|
-
host = u.hostname
|
107
|
-
|
108
|
-
if not host:
|
109
|
-
raise ValueError(f"Invalid URI {uri}, no hostname found")
|
110
|
-
|
111
|
-
if u.scheme == "ws":
|
112
|
-
port = u.port or 80
|
113
|
-
proxy_url = os.environ.get("HTTP_PROXY")
|
114
|
-
elif u.scheme == "wss":
|
115
|
-
port = u.port or 443
|
116
|
-
proxy_url = os.environ.get("HTTPS_PROXY")
|
117
|
-
kwargs["server_hostname"] = host
|
118
|
-
else:
|
119
|
-
raise ValueError(
|
120
|
-
"Unsupported scheme %s. Expected 'ws' or 'wss'. " % u.scheme
|
121
|
-
)
|
122
|
-
|
123
|
-
self._proxy = (
|
124
|
-
Proxy.from_url(proxy_url) if proxy_url and not proxy_bypass(host) else None
|
125
|
-
)
|
126
|
-
self._host = host
|
127
|
-
self._port = port
|
128
|
-
|
129
|
-
if PREFECT_API_TLS_INSECURE_SKIP_VERIFY and u.scheme == "wss":
|
130
|
-
# Create an unverified context for insecure connections
|
131
|
-
ctx = ssl.create_default_context()
|
132
|
-
ctx.check_hostname = False
|
133
|
-
ctx.verify_mode = ssl.CERT_NONE
|
134
|
-
self._kwargs.setdefault("ssl", ctx)
|
135
|
-
elif u.scheme == "wss":
|
136
|
-
cert_file = PREFECT_API_SSL_CERT_FILE.value()
|
137
|
-
if not cert_file:
|
138
|
-
cert_file = certifi.where()
|
139
|
-
# Create a verified context with the certificate file
|
140
|
-
ctx = ssl.create_default_context(cafile=cert_file)
|
141
|
-
self._kwargs.setdefault("ssl", ctx)
|
142
|
-
|
143
|
-
async def _proxy_connect(self: Self) -> ClientConnection:
|
144
|
-
if self._proxy:
|
145
|
-
sock = await self._proxy.connect(
|
146
|
-
dest_host=self._host,
|
147
|
-
dest_port=self._port,
|
148
|
-
)
|
149
|
-
self._kwargs["sock"] = sock
|
150
|
-
|
151
|
-
super().__init__(self.uri, **self._kwargs)
|
152
|
-
proto = await self.__await_impl__()
|
153
|
-
return proto
|
154
|
-
|
155
|
-
def __await__(self: Self) -> Generator[Any, None, ClientConnection]:
|
156
|
-
return self._proxy_connect().__await__()
|
157
|
-
|
158
|
-
|
159
|
-
def websocket_connect(uri: str, **kwargs: Any) -> WebsocketProxyConnect:
|
160
|
-
return WebsocketProxyConnect(uri, **kwargs)
|
161
|
-
|
162
|
-
|
163
89
|
def get_events_client(
|
164
90
|
reconnection_attempts: int = 10,
|
165
91
|
checkpoint_every: int = 700,
|
{prefect_client-3.4.7.dev2 → prefect_client-3.4.7.dev4}/src/prefect/events/schemas/automations.py
RENAMED
@@ -416,7 +416,7 @@ class AutomationCore(PrefectBaseModel, extra="ignore"): # type: ignore[call-arg
|
|
416
416
|
enabled: bool = Field(
|
417
417
|
default=True, description="Whether this automation will be evaluated"
|
418
418
|
)
|
419
|
-
tags:
|
419
|
+
tags: List[str] = Field(
|
420
420
|
default_factory=list,
|
421
421
|
description="A list of tags associated with this automation",
|
422
422
|
)
|