prefect-client 3.4.20.dev2__tar.gz → 3.4.21.dev2__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.20.dev2 → prefect_client-3.4.21.dev2}/PKG-INFO +1 -1
- prefect_client-3.4.21.dev2/src/prefect/_build_info.py +5 -0
- {prefect_client-3.4.20.dev2 → prefect_client-3.4.21.dev2}/src/prefect/results.py +1 -11
- {prefect_client-3.4.20.dev2 → prefect_client-3.4.21.dev2}/src/prefect/server/api/artifacts.py +1 -1
- {prefect_client-3.4.20.dev2 → prefect_client-3.4.21.dev2}/src/prefect/server/api/automations.py +1 -1
- {prefect_client-3.4.20.dev2 → prefect_client-3.4.21.dev2}/src/prefect/server/api/block_capabilities.py +1 -1
- {prefect_client-3.4.20.dev2 → prefect_client-3.4.21.dev2}/src/prefect/server/api/block_documents.py +1 -1
- {prefect_client-3.4.20.dev2 → prefect_client-3.4.21.dev2}/src/prefect/server/api/block_schemas.py +1 -1
- {prefect_client-3.4.20.dev2 → prefect_client-3.4.21.dev2}/src/prefect/server/api/block_types.py +1 -1
- {prefect_client-3.4.20.dev2 → prefect_client-3.4.21.dev2}/src/prefect/server/api/concurrency_limits.py +1 -1
- {prefect_client-3.4.20.dev2 → prefect_client-3.4.21.dev2}/src/prefect/server/api/concurrency_limits_v2.py +1 -1
- {prefect_client-3.4.20.dev2 → prefect_client-3.4.21.dev2}/src/prefect/server/api/deployments.py +1 -1
- {prefect_client-3.4.20.dev2 → prefect_client-3.4.21.dev2}/src/prefect/server/api/flow_run_states.py +1 -1
- {prefect_client-3.4.20.dev2 → prefect_client-3.4.21.dev2}/src/prefect/server/api/flow_runs.py +1 -1
- {prefect_client-3.4.20.dev2 → prefect_client-3.4.21.dev2}/src/prefect/server/api/flows.py +1 -1
- {prefect_client-3.4.20.dev2 → prefect_client-3.4.21.dev2}/src/prefect/server/api/logs.py +1 -1
- {prefect_client-3.4.20.dev2 → prefect_client-3.4.21.dev2}/src/prefect/server/api/task_run_states.py +1 -1
- {prefect_client-3.4.20.dev2 → prefect_client-3.4.21.dev2}/src/prefect/server/api/task_runs.py +1 -1
- {prefect_client-3.4.20.dev2 → prefect_client-3.4.21.dev2}/src/prefect/server/api/task_workers.py +1 -1
- {prefect_client-3.4.20.dev2 → prefect_client-3.4.21.dev2}/src/prefect/server/api/variables.py +1 -1
- {prefect_client-3.4.20.dev2 → prefect_client-3.4.21.dev2}/src/prefect/server/api/work_queues.py +1 -1
- {prefect_client-3.4.20.dev2 → prefect_client-3.4.21.dev2}/src/prefect/server/api/workers.py +2 -2
- {prefect_client-3.4.20.dev2 → prefect_client-3.4.21.dev2}/src/prefect/settings/base.py +33 -0
- {prefect_client-3.4.20.dev2 → prefect_client-3.4.21.dev2}/src/prefect/settings/models/experiments.py +0 -5
- prefect_client-3.4.20.dev2/src/prefect/_build_info.py +0 -5
- prefect_client-3.4.20.dev2/src/prefect/_experimental/lineage.py +0 -261
- {prefect_client-3.4.20.dev2 → prefect_client-3.4.21.dev2}/.gitignore +0 -0
- {prefect_client-3.4.20.dev2 → prefect_client-3.4.21.dev2}/LICENSE +0 -0
- {prefect_client-3.4.20.dev2 → prefect_client-3.4.21.dev2}/README.md +0 -0
- {prefect_client-3.4.20.dev2 → prefect_client-3.4.21.dev2}/pyproject.toml +0 -0
- {prefect_client-3.4.20.dev2 → prefect_client-3.4.21.dev2}/src/prefect/.prefectignore +0 -0
- {prefect_client-3.4.20.dev2 → prefect_client-3.4.21.dev2}/src/prefect/AGENTS.md +0 -0
- {prefect_client-3.4.20.dev2 → prefect_client-3.4.21.dev2}/src/prefect/__init__.py +0 -0
- {prefect_client-3.4.20.dev2 → prefect_client-3.4.21.dev2}/src/prefect/__main__.py +0 -0
- {prefect_client-3.4.20.dev2 → prefect_client-3.4.21.dev2}/src/prefect/_experimental/__init__.py +0 -0
- {prefect_client-3.4.20.dev2 → prefect_client-3.4.21.dev2}/src/prefect/_experimental/bundles/__init__.py +0 -0
- {prefect_client-3.4.20.dev2 → prefect_client-3.4.21.dev2}/src/prefect/_experimental/bundles/execute.py +0 -0
- {prefect_client-3.4.20.dev2 → prefect_client-3.4.21.dev2}/src/prefect/_experimental/sla/__init__.py +0 -0
- {prefect_client-3.4.20.dev2 → prefect_client-3.4.21.dev2}/src/prefect/_experimental/sla/client.py +0 -0
- {prefect_client-3.4.20.dev2 → prefect_client-3.4.21.dev2}/src/prefect/_experimental/sla/objects.py +0 -0
- {prefect_client-3.4.20.dev2 → prefect_client-3.4.21.dev2}/src/prefect/_internal/__init__.py +0 -0
- {prefect_client-3.4.20.dev2 → prefect_client-3.4.21.dev2}/src/prefect/_internal/_logging.py +0 -0
- {prefect_client-3.4.20.dev2 → prefect_client-3.4.21.dev2}/src/prefect/_internal/compatibility/__init__.py +0 -0
- {prefect_client-3.4.20.dev2 → prefect_client-3.4.21.dev2}/src/prefect/_internal/compatibility/async_dispatch.py +0 -0
- {prefect_client-3.4.20.dev2 → prefect_client-3.4.21.dev2}/src/prefect/_internal/compatibility/blocks.py +0 -0
- {prefect_client-3.4.20.dev2 → prefect_client-3.4.21.dev2}/src/prefect/_internal/compatibility/deprecated.py +0 -0
- {prefect_client-3.4.20.dev2 → prefect_client-3.4.21.dev2}/src/prefect/_internal/compatibility/migration.py +0 -0
- {prefect_client-3.4.20.dev2 → prefect_client-3.4.21.dev2}/src/prefect/_internal/compatibility/starlette.py +0 -0
- {prefect_client-3.4.20.dev2 → prefect_client-3.4.21.dev2}/src/prefect/_internal/concurrency/__init__.py +0 -0
- {prefect_client-3.4.20.dev2 → prefect_client-3.4.21.dev2}/src/prefect/_internal/concurrency/api.py +0 -0
- {prefect_client-3.4.20.dev2 → prefect_client-3.4.21.dev2}/src/prefect/_internal/concurrency/calls.py +0 -0
- {prefect_client-3.4.20.dev2 → prefect_client-3.4.21.dev2}/src/prefect/_internal/concurrency/cancellation.py +0 -0
- {prefect_client-3.4.20.dev2 → prefect_client-3.4.21.dev2}/src/prefect/_internal/concurrency/event_loop.py +0 -0
- {prefect_client-3.4.20.dev2 → prefect_client-3.4.21.dev2}/src/prefect/_internal/concurrency/inspection.py +0 -0
- {prefect_client-3.4.20.dev2 → prefect_client-3.4.21.dev2}/src/prefect/_internal/concurrency/primitives.py +0 -0
- {prefect_client-3.4.20.dev2 → prefect_client-3.4.21.dev2}/src/prefect/_internal/concurrency/services.py +0 -0
- {prefect_client-3.4.20.dev2 → prefect_client-3.4.21.dev2}/src/prefect/_internal/concurrency/threads.py +0 -0
- {prefect_client-3.4.20.dev2 → prefect_client-3.4.21.dev2}/src/prefect/_internal/concurrency/waiters.py +0 -0
- {prefect_client-3.4.20.dev2 → prefect_client-3.4.21.dev2}/src/prefect/_internal/installation.py +0 -0
- {prefect_client-3.4.20.dev2 → prefect_client-3.4.21.dev2}/src/prefect/_internal/integrations.py +0 -0
- {prefect_client-3.4.20.dev2 → prefect_client-3.4.21.dev2}/src/prefect/_internal/pydantic/__init__.py +0 -0
- {prefect_client-3.4.20.dev2 → prefect_client-3.4.21.dev2}/src/prefect/_internal/pydantic/schemas.py +0 -0
- {prefect_client-3.4.20.dev2 → prefect_client-3.4.21.dev2}/src/prefect/_internal/pydantic/v1_schema.py +0 -0
- {prefect_client-3.4.20.dev2 → prefect_client-3.4.21.dev2}/src/prefect/_internal/pydantic/v2_schema.py +0 -0
- {prefect_client-3.4.20.dev2 → prefect_client-3.4.21.dev2}/src/prefect/_internal/pydantic/v2_validated_func.py +0 -0
- {prefect_client-3.4.20.dev2 → prefect_client-3.4.21.dev2}/src/prefect/_internal/pytz.py +0 -0
- {prefect_client-3.4.20.dev2 → prefect_client-3.4.21.dev2}/src/prefect/_internal/retries.py +0 -0
- {prefect_client-3.4.20.dev2 → prefect_client-3.4.21.dev2}/src/prefect/_internal/schemas/__init__.py +0 -0
- {prefect_client-3.4.20.dev2 → prefect_client-3.4.21.dev2}/src/prefect/_internal/schemas/bases.py +0 -0
- {prefect_client-3.4.20.dev2 → prefect_client-3.4.21.dev2}/src/prefect/_internal/schemas/fields.py +0 -0
- {prefect_client-3.4.20.dev2 → prefect_client-3.4.21.dev2}/src/prefect/_internal/schemas/serializers.py +0 -0
- {prefect_client-3.4.20.dev2 → prefect_client-3.4.21.dev2}/src/prefect/_internal/schemas/validators.py +0 -0
- {prefect_client-3.4.20.dev2 → prefect_client-3.4.21.dev2}/src/prefect/_internal/uuid7.py +0 -0
- {prefect_client-3.4.20.dev2 → prefect_client-3.4.21.dev2}/src/prefect/_internal/websockets.py +0 -0
- {prefect_client-3.4.20.dev2 → prefect_client-3.4.21.dev2}/src/prefect/_result_records.py +0 -0
- {prefect_client-3.4.20.dev2 → prefect_client-3.4.21.dev2}/src/prefect/_vendor/croniter/__init__.py +0 -0
- {prefect_client-3.4.20.dev2 → prefect_client-3.4.21.dev2}/src/prefect/_vendor/croniter/croniter.py +0 -0
- {prefect_client-3.4.20.dev2 → prefect_client-3.4.21.dev2}/src/prefect/_versioning.py +0 -0
- {prefect_client-3.4.20.dev2 → prefect_client-3.4.21.dev2}/src/prefect/_waiters.py +0 -0
- {prefect_client-3.4.20.dev2 → prefect_client-3.4.21.dev2}/src/prefect/agent.py +0 -0
- {prefect_client-3.4.20.dev2 → prefect_client-3.4.21.dev2}/src/prefect/artifacts.py +0 -0
- {prefect_client-3.4.20.dev2 → prefect_client-3.4.21.dev2}/src/prefect/assets/__init__.py +0 -0
- {prefect_client-3.4.20.dev2 → prefect_client-3.4.21.dev2}/src/prefect/assets/core.py +0 -0
- {prefect_client-3.4.20.dev2 → prefect_client-3.4.21.dev2}/src/prefect/assets/materialize.py +0 -0
- {prefect_client-3.4.20.dev2 → prefect_client-3.4.21.dev2}/src/prefect/automations.py +0 -0
- {prefect_client-3.4.20.dev2 → prefect_client-3.4.21.dev2}/src/prefect/blocks/__init__.py +0 -0
- {prefect_client-3.4.20.dev2 → prefect_client-3.4.21.dev2}/src/prefect/blocks/abstract.py +0 -0
- {prefect_client-3.4.20.dev2 → prefect_client-3.4.21.dev2}/src/prefect/blocks/core.py +0 -0
- {prefect_client-3.4.20.dev2 → prefect_client-3.4.21.dev2}/src/prefect/blocks/fields.py +0 -0
- {prefect_client-3.4.20.dev2 → prefect_client-3.4.21.dev2}/src/prefect/blocks/notifications.py +0 -0
- {prefect_client-3.4.20.dev2 → prefect_client-3.4.21.dev2}/src/prefect/blocks/redis.py +0 -0
- {prefect_client-3.4.20.dev2 → prefect_client-3.4.21.dev2}/src/prefect/blocks/system.py +0 -0
- {prefect_client-3.4.20.dev2 → prefect_client-3.4.21.dev2}/src/prefect/blocks/webhook.py +0 -0
- {prefect_client-3.4.20.dev2 → prefect_client-3.4.21.dev2}/src/prefect/cache_policies.py +0 -0
- {prefect_client-3.4.20.dev2 → prefect_client-3.4.21.dev2}/src/prefect/client/__init__.py +0 -0
- {prefect_client-3.4.20.dev2 → prefect_client-3.4.21.dev2}/src/prefect/client/base.py +0 -0
- {prefect_client-3.4.20.dev2 → prefect_client-3.4.21.dev2}/src/prefect/client/cloud.py +0 -0
- {prefect_client-3.4.20.dev2 → prefect_client-3.4.21.dev2}/src/prefect/client/collections.py +0 -0
- {prefect_client-3.4.20.dev2 → prefect_client-3.4.21.dev2}/src/prefect/client/constants.py +0 -0
- {prefect_client-3.4.20.dev2 → prefect_client-3.4.21.dev2}/src/prefect/client/orchestration/__init__.py +0 -0
- {prefect_client-3.4.20.dev2 → prefect_client-3.4.21.dev2}/src/prefect/client/orchestration/_artifacts/__init__.py +0 -0
- {prefect_client-3.4.20.dev2 → prefect_client-3.4.21.dev2}/src/prefect/client/orchestration/_artifacts/client.py +0 -0
- {prefect_client-3.4.20.dev2 → prefect_client-3.4.21.dev2}/src/prefect/client/orchestration/_automations/__init__.py +0 -0
- {prefect_client-3.4.20.dev2 → prefect_client-3.4.21.dev2}/src/prefect/client/orchestration/_automations/client.py +0 -0
- {prefect_client-3.4.20.dev2 → prefect_client-3.4.21.dev2}/src/prefect/client/orchestration/_blocks_documents/__init__.py +0 -0
- {prefect_client-3.4.20.dev2 → prefect_client-3.4.21.dev2}/src/prefect/client/orchestration/_blocks_documents/client.py +0 -0
- {prefect_client-3.4.20.dev2 → prefect_client-3.4.21.dev2}/src/prefect/client/orchestration/_blocks_schemas/__init__.py +0 -0
- {prefect_client-3.4.20.dev2 → prefect_client-3.4.21.dev2}/src/prefect/client/orchestration/_blocks_schemas/client.py +0 -0
- {prefect_client-3.4.20.dev2 → prefect_client-3.4.21.dev2}/src/prefect/client/orchestration/_blocks_types/__init__.py +0 -0
- {prefect_client-3.4.20.dev2 → prefect_client-3.4.21.dev2}/src/prefect/client/orchestration/_blocks_types/client.py +0 -0
- {prefect_client-3.4.20.dev2 → prefect_client-3.4.21.dev2}/src/prefect/client/orchestration/_concurrency_limits/__init__.py +0 -0
- {prefect_client-3.4.20.dev2 → prefect_client-3.4.21.dev2}/src/prefect/client/orchestration/_concurrency_limits/client.py +0 -0
- {prefect_client-3.4.20.dev2 → prefect_client-3.4.21.dev2}/src/prefect/client/orchestration/_deployments/__init__.py +0 -0
- {prefect_client-3.4.20.dev2 → prefect_client-3.4.21.dev2}/src/prefect/client/orchestration/_deployments/client.py +0 -0
- {prefect_client-3.4.20.dev2 → prefect_client-3.4.21.dev2}/src/prefect/client/orchestration/_flow_runs/__init__.py +0 -0
- {prefect_client-3.4.20.dev2 → prefect_client-3.4.21.dev2}/src/prefect/client/orchestration/_flow_runs/client.py +0 -0
- {prefect_client-3.4.20.dev2 → prefect_client-3.4.21.dev2}/src/prefect/client/orchestration/_flows/__init__.py +0 -0
- {prefect_client-3.4.20.dev2 → prefect_client-3.4.21.dev2}/src/prefect/client/orchestration/_flows/client.py +0 -0
- {prefect_client-3.4.20.dev2 → prefect_client-3.4.21.dev2}/src/prefect/client/orchestration/_logs/__init__.py +0 -0
- {prefect_client-3.4.20.dev2 → prefect_client-3.4.21.dev2}/src/prefect/client/orchestration/_logs/client.py +0 -0
- {prefect_client-3.4.20.dev2 → prefect_client-3.4.21.dev2}/src/prefect/client/orchestration/_variables/__init__.py +0 -0
- {prefect_client-3.4.20.dev2 → prefect_client-3.4.21.dev2}/src/prefect/client/orchestration/_variables/client.py +0 -0
- {prefect_client-3.4.20.dev2 → prefect_client-3.4.21.dev2}/src/prefect/client/orchestration/_work_pools/__init__.py +0 -0
- {prefect_client-3.4.20.dev2 → prefect_client-3.4.21.dev2}/src/prefect/client/orchestration/_work_pools/client.py +0 -0
- {prefect_client-3.4.20.dev2 → prefect_client-3.4.21.dev2}/src/prefect/client/orchestration/base.py +0 -0
- {prefect_client-3.4.20.dev2 → prefect_client-3.4.21.dev2}/src/prefect/client/orchestration/routes.py +0 -0
- {prefect_client-3.4.20.dev2 → prefect_client-3.4.21.dev2}/src/prefect/client/schemas/__init__.py +0 -0
- {prefect_client-3.4.20.dev2 → prefect_client-3.4.21.dev2}/src/prefect/client/schemas/actions.py +0 -0
- {prefect_client-3.4.20.dev2 → prefect_client-3.4.21.dev2}/src/prefect/client/schemas/filters.py +0 -0
- {prefect_client-3.4.20.dev2 → prefect_client-3.4.21.dev2}/src/prefect/client/schemas/objects.py +0 -0
- {prefect_client-3.4.20.dev2 → prefect_client-3.4.21.dev2}/src/prefect/client/schemas/responses.py +0 -0
- {prefect_client-3.4.20.dev2 → prefect_client-3.4.21.dev2}/src/prefect/client/schemas/schedules.py +0 -0
- {prefect_client-3.4.20.dev2 → prefect_client-3.4.21.dev2}/src/prefect/client/schemas/sorting.py +0 -0
- {prefect_client-3.4.20.dev2 → prefect_client-3.4.21.dev2}/src/prefect/client/subscriptions.py +0 -0
- {prefect_client-3.4.20.dev2 → prefect_client-3.4.21.dev2}/src/prefect/client/types/__init__.py +0 -0
- {prefect_client-3.4.20.dev2 → prefect_client-3.4.21.dev2}/src/prefect/client/types/flexible_schedule_list.py +0 -0
- {prefect_client-3.4.20.dev2 → prefect_client-3.4.21.dev2}/src/prefect/client/utilities.py +0 -0
- {prefect_client-3.4.20.dev2 → prefect_client-3.4.21.dev2}/src/prefect/concurrency/__init__.py +0 -0
- {prefect_client-3.4.20.dev2 → prefect_client-3.4.21.dev2}/src/prefect/concurrency/_asyncio.py +0 -0
- {prefect_client-3.4.20.dev2 → prefect_client-3.4.21.dev2}/src/prefect/concurrency/_events.py +0 -0
- {prefect_client-3.4.20.dev2 → prefect_client-3.4.21.dev2}/src/prefect/concurrency/_leases.py +0 -0
- {prefect_client-3.4.20.dev2 → prefect_client-3.4.21.dev2}/src/prefect/concurrency/asyncio.py +0 -0
- {prefect_client-3.4.20.dev2 → prefect_client-3.4.21.dev2}/src/prefect/concurrency/context.py +0 -0
- {prefect_client-3.4.20.dev2 → prefect_client-3.4.21.dev2}/src/prefect/concurrency/services.py +0 -0
- {prefect_client-3.4.20.dev2 → prefect_client-3.4.21.dev2}/src/prefect/concurrency/sync.py +0 -0
- {prefect_client-3.4.20.dev2 → prefect_client-3.4.21.dev2}/src/prefect/concurrency/v1/__init__.py +0 -0
- {prefect_client-3.4.20.dev2 → prefect_client-3.4.21.dev2}/src/prefect/concurrency/v1/_asyncio.py +0 -0
- {prefect_client-3.4.20.dev2 → prefect_client-3.4.21.dev2}/src/prefect/concurrency/v1/_events.py +0 -0
- {prefect_client-3.4.20.dev2 → prefect_client-3.4.21.dev2}/src/prefect/concurrency/v1/asyncio.py +0 -0
- {prefect_client-3.4.20.dev2 → prefect_client-3.4.21.dev2}/src/prefect/concurrency/v1/context.py +0 -0
- {prefect_client-3.4.20.dev2 → prefect_client-3.4.21.dev2}/src/prefect/concurrency/v1/services.py +0 -0
- {prefect_client-3.4.20.dev2 → prefect_client-3.4.21.dev2}/src/prefect/concurrency/v1/sync.py +0 -0
- {prefect_client-3.4.20.dev2 → prefect_client-3.4.21.dev2}/src/prefect/context.py +0 -0
- {prefect_client-3.4.20.dev2 → prefect_client-3.4.21.dev2}/src/prefect/deployments/__init__.py +0 -0
- {prefect_client-3.4.20.dev2 → prefect_client-3.4.21.dev2}/src/prefect/deployments/base.py +0 -0
- {prefect_client-3.4.20.dev2 → prefect_client-3.4.21.dev2}/src/prefect/deployments/deployments.py +0 -0
- {prefect_client-3.4.20.dev2 → prefect_client-3.4.21.dev2}/src/prefect/deployments/flow_runs.py +0 -0
- {prefect_client-3.4.20.dev2 → prefect_client-3.4.21.dev2}/src/prefect/deployments/runner.py +0 -0
- {prefect_client-3.4.20.dev2 → prefect_client-3.4.21.dev2}/src/prefect/deployments/schedules.py +0 -0
- {prefect_client-3.4.20.dev2 → prefect_client-3.4.21.dev2}/src/prefect/deployments/steps/__init__.py +0 -0
- {prefect_client-3.4.20.dev2 → prefect_client-3.4.21.dev2}/src/prefect/deployments/steps/core.py +0 -0
- {prefect_client-3.4.20.dev2 → prefect_client-3.4.21.dev2}/src/prefect/deployments/steps/pull.py +0 -0
- {prefect_client-3.4.20.dev2 → prefect_client-3.4.21.dev2}/src/prefect/deployments/steps/utility.py +0 -0
- {prefect_client-3.4.20.dev2 → prefect_client-3.4.21.dev2}/src/prefect/docker/__init__.py +0 -0
- {prefect_client-3.4.20.dev2 → prefect_client-3.4.21.dev2}/src/prefect/docker/docker_image.py +0 -0
- {prefect_client-3.4.20.dev2 → prefect_client-3.4.21.dev2}/src/prefect/engine.py +0 -0
- {prefect_client-3.4.20.dev2 → prefect_client-3.4.21.dev2}/src/prefect/events/__init__.py +0 -0
- {prefect_client-3.4.20.dev2 → prefect_client-3.4.21.dev2}/src/prefect/events/actions.py +0 -0
- {prefect_client-3.4.20.dev2 → prefect_client-3.4.21.dev2}/src/prefect/events/cli/__init__.py +0 -0
- {prefect_client-3.4.20.dev2 → prefect_client-3.4.21.dev2}/src/prefect/events/cli/automations.py +0 -0
- {prefect_client-3.4.20.dev2 → prefect_client-3.4.21.dev2}/src/prefect/events/clients.py +0 -0
- {prefect_client-3.4.20.dev2 → prefect_client-3.4.21.dev2}/src/prefect/events/filters.py +0 -0
- {prefect_client-3.4.20.dev2 → prefect_client-3.4.21.dev2}/src/prefect/events/related.py +0 -0
- {prefect_client-3.4.20.dev2 → prefect_client-3.4.21.dev2}/src/prefect/events/schemas/__init__.py +0 -0
- {prefect_client-3.4.20.dev2 → prefect_client-3.4.21.dev2}/src/prefect/events/schemas/automations.py +0 -0
- {prefect_client-3.4.20.dev2 → prefect_client-3.4.21.dev2}/src/prefect/events/schemas/deployment_triggers.py +0 -0
- {prefect_client-3.4.20.dev2 → prefect_client-3.4.21.dev2}/src/prefect/events/schemas/events.py +0 -0
- {prefect_client-3.4.20.dev2 → prefect_client-3.4.21.dev2}/src/prefect/events/schemas/labelling.py +0 -0
- {prefect_client-3.4.20.dev2 → prefect_client-3.4.21.dev2}/src/prefect/events/utilities.py +0 -0
- {prefect_client-3.4.20.dev2 → prefect_client-3.4.21.dev2}/src/prefect/events/worker.py +0 -0
- {prefect_client-3.4.20.dev2 → prefect_client-3.4.21.dev2}/src/prefect/exceptions.py +0 -0
- {prefect_client-3.4.20.dev2 → prefect_client-3.4.21.dev2}/src/prefect/filesystems.py +0 -0
- {prefect_client-3.4.20.dev2 → prefect_client-3.4.21.dev2}/src/prefect/flow_engine.py +0 -0
- {prefect_client-3.4.20.dev2 → prefect_client-3.4.21.dev2}/src/prefect/flow_runs.py +0 -0
- {prefect_client-3.4.20.dev2 → prefect_client-3.4.21.dev2}/src/prefect/flows.py +0 -0
- {prefect_client-3.4.20.dev2 → prefect_client-3.4.21.dev2}/src/prefect/futures.py +0 -0
- {prefect_client-3.4.20.dev2 → prefect_client-3.4.21.dev2}/src/prefect/infrastructure/__init__.py +0 -0
- {prefect_client-3.4.20.dev2 → prefect_client-3.4.21.dev2}/src/prefect/infrastructure/base.py +0 -0
- {prefect_client-3.4.20.dev2 → prefect_client-3.4.21.dev2}/src/prefect/infrastructure/provisioners/__init__.py +0 -0
- {prefect_client-3.4.20.dev2 → prefect_client-3.4.21.dev2}/src/prefect/infrastructure/provisioners/cloud_run.py +0 -0
- {prefect_client-3.4.20.dev2 → prefect_client-3.4.21.dev2}/src/prefect/infrastructure/provisioners/coiled.py +0 -0
- {prefect_client-3.4.20.dev2 → prefect_client-3.4.21.dev2}/src/prefect/infrastructure/provisioners/container_instance.py +0 -0
- {prefect_client-3.4.20.dev2 → prefect_client-3.4.21.dev2}/src/prefect/infrastructure/provisioners/ecs.py +0 -0
- {prefect_client-3.4.20.dev2 → prefect_client-3.4.21.dev2}/src/prefect/infrastructure/provisioners/modal.py +0 -0
- {prefect_client-3.4.20.dev2 → prefect_client-3.4.21.dev2}/src/prefect/input/__init__.py +0 -0
- {prefect_client-3.4.20.dev2 → prefect_client-3.4.21.dev2}/src/prefect/input/actions.py +0 -0
- {prefect_client-3.4.20.dev2 → prefect_client-3.4.21.dev2}/src/prefect/input/run_input.py +0 -0
- {prefect_client-3.4.20.dev2 → prefect_client-3.4.21.dev2}/src/prefect/locking/__init__.py +0 -0
- {prefect_client-3.4.20.dev2 → prefect_client-3.4.21.dev2}/src/prefect/locking/filesystem.py +0 -0
- {prefect_client-3.4.20.dev2 → prefect_client-3.4.21.dev2}/src/prefect/locking/memory.py +0 -0
- {prefect_client-3.4.20.dev2 → prefect_client-3.4.21.dev2}/src/prefect/locking/protocol.py +0 -0
- {prefect_client-3.4.20.dev2 → prefect_client-3.4.21.dev2}/src/prefect/logging/__init__.py +0 -0
- {prefect_client-3.4.20.dev2 → prefect_client-3.4.21.dev2}/src/prefect/logging/clients.py +0 -0
- {prefect_client-3.4.20.dev2 → prefect_client-3.4.21.dev2}/src/prefect/logging/configuration.py +0 -0
- {prefect_client-3.4.20.dev2 → prefect_client-3.4.21.dev2}/src/prefect/logging/filters.py +0 -0
- {prefect_client-3.4.20.dev2 → prefect_client-3.4.21.dev2}/src/prefect/logging/formatters.py +0 -0
- {prefect_client-3.4.20.dev2 → prefect_client-3.4.21.dev2}/src/prefect/logging/handlers.py +0 -0
- {prefect_client-3.4.20.dev2 → prefect_client-3.4.21.dev2}/src/prefect/logging/highlighters.py +0 -0
- {prefect_client-3.4.20.dev2 → prefect_client-3.4.21.dev2}/src/prefect/logging/loggers.py +0 -0
- {prefect_client-3.4.20.dev2 → prefect_client-3.4.21.dev2}/src/prefect/logging/logging.yml +0 -0
- {prefect_client-3.4.20.dev2 → prefect_client-3.4.21.dev2}/src/prefect/main.py +0 -0
- {prefect_client-3.4.20.dev2 → prefect_client-3.4.21.dev2}/src/prefect/plugins.py +0 -0
- {prefect_client-3.4.20.dev2 → prefect_client-3.4.21.dev2}/src/prefect/py.typed +0 -0
- {prefect_client-3.4.20.dev2 → prefect_client-3.4.21.dev2}/src/prefect/runner/__init__.py +0 -0
- {prefect_client-3.4.20.dev2 → prefect_client-3.4.21.dev2}/src/prefect/runner/_observers.py +0 -0
- {prefect_client-3.4.20.dev2 → prefect_client-3.4.21.dev2}/src/prefect/runner/runner.py +0 -0
- {prefect_client-3.4.20.dev2 → prefect_client-3.4.21.dev2}/src/prefect/runner/server.py +0 -0
- {prefect_client-3.4.20.dev2 → prefect_client-3.4.21.dev2}/src/prefect/runner/storage.py +0 -0
- {prefect_client-3.4.20.dev2 → prefect_client-3.4.21.dev2}/src/prefect/runner/submit.py +0 -0
- {prefect_client-3.4.20.dev2 → prefect_client-3.4.21.dev2}/src/prefect/runner/utils.py +0 -0
- {prefect_client-3.4.20.dev2 → prefect_client-3.4.21.dev2}/src/prefect/runtime/__init__.py +0 -0
- {prefect_client-3.4.20.dev2 → prefect_client-3.4.21.dev2}/src/prefect/runtime/deployment.py +0 -0
- {prefect_client-3.4.20.dev2 → prefect_client-3.4.21.dev2}/src/prefect/runtime/flow_run.py +0 -0
- {prefect_client-3.4.20.dev2 → prefect_client-3.4.21.dev2}/src/prefect/runtime/task_run.py +0 -0
- {prefect_client-3.4.20.dev2 → prefect_client-3.4.21.dev2}/src/prefect/schedules.py +0 -0
- {prefect_client-3.4.20.dev2 → prefect_client-3.4.21.dev2}/src/prefect/serializers.py +0 -0
- {prefect_client-3.4.20.dev2 → prefect_client-3.4.21.dev2}/src/prefect/server/api/__init__.py +0 -0
- {prefect_client-3.4.20.dev2 → prefect_client-3.4.21.dev2}/src/prefect/server/api/admin.py +0 -0
- {prefect_client-3.4.20.dev2 → prefect_client-3.4.21.dev2}/src/prefect/server/api/clients.py +0 -0
- {prefect_client-3.4.20.dev2 → prefect_client-3.4.21.dev2}/src/prefect/server/api/collections.py +0 -0
- {prefect_client-3.4.20.dev2 → prefect_client-3.4.21.dev2}/src/prefect/server/api/collections_data/views/aggregate-worker-metadata.json +0 -0
- {prefect_client-3.4.20.dev2 → prefect_client-3.4.21.dev2}/src/prefect/server/api/csrf_token.py +0 -0
- {prefect_client-3.4.20.dev2 → prefect_client-3.4.21.dev2}/src/prefect/server/api/dependencies.py +0 -0
- {prefect_client-3.4.20.dev2 → prefect_client-3.4.21.dev2}/src/prefect/server/api/events.py +0 -0
- {prefect_client-3.4.20.dev2 → prefect_client-3.4.21.dev2}/src/prefect/server/api/middleware.py +0 -0
- {prefect_client-3.4.20.dev2 → prefect_client-3.4.21.dev2}/src/prefect/server/api/root.py +0 -0
- {prefect_client-3.4.20.dev2 → prefect_client-3.4.21.dev2}/src/prefect/server/api/run_history.py +0 -0
- {prefect_client-3.4.20.dev2 → prefect_client-3.4.21.dev2}/src/prefect/server/api/saved_searches.py +0 -0
- {prefect_client-3.4.20.dev2 → prefect_client-3.4.21.dev2}/src/prefect/server/api/server.py +0 -0
- {prefect_client-3.4.20.dev2 → prefect_client-3.4.21.dev2}/src/prefect/server/api/static/prefect-logo-mark-gradient.png +0 -0
- {prefect_client-3.4.20.dev2 → prefect_client-3.4.21.dev2}/src/prefect/server/api/templates.py +0 -0
- {prefect_client-3.4.20.dev2 → prefect_client-3.4.21.dev2}/src/prefect/server/api/ui/__init__.py +0 -0
- {prefect_client-3.4.20.dev2 → prefect_client-3.4.21.dev2}/src/prefect/server/api/ui/flow_runs.py +0 -0
- {prefect_client-3.4.20.dev2 → prefect_client-3.4.21.dev2}/src/prefect/server/api/ui/flows.py +0 -0
- {prefect_client-3.4.20.dev2 → prefect_client-3.4.21.dev2}/src/prefect/server/api/ui/schemas.py +0 -0
- {prefect_client-3.4.20.dev2 → prefect_client-3.4.21.dev2}/src/prefect/server/api/ui/task_runs.py +0 -0
- {prefect_client-3.4.20.dev2 → prefect_client-3.4.21.dev2}/src/prefect/server/api/validation.py +0 -0
- {prefect_client-3.4.20.dev2 → prefect_client-3.4.21.dev2}/src/prefect/settings/__init__.py +0 -0
- {prefect_client-3.4.20.dev2 → prefect_client-3.4.21.dev2}/src/prefect/settings/constants.py +0 -0
- {prefect_client-3.4.20.dev2 → prefect_client-3.4.21.dev2}/src/prefect/settings/context.py +0 -0
- {prefect_client-3.4.20.dev2 → prefect_client-3.4.21.dev2}/src/prefect/settings/legacy.py +0 -0
- {prefect_client-3.4.20.dev2 → prefect_client-3.4.21.dev2}/src/prefect/settings/models/__init__.py +0 -0
- {prefect_client-3.4.20.dev2 → prefect_client-3.4.21.dev2}/src/prefect/settings/models/_defaults.py +0 -0
- {prefect_client-3.4.20.dev2 → prefect_client-3.4.21.dev2}/src/prefect/settings/models/api.py +0 -0
- {prefect_client-3.4.20.dev2 → prefect_client-3.4.21.dev2}/src/prefect/settings/models/cli.py +0 -0
- {prefect_client-3.4.20.dev2 → prefect_client-3.4.21.dev2}/src/prefect/settings/models/client.py +0 -0
- {prefect_client-3.4.20.dev2 → prefect_client-3.4.21.dev2}/src/prefect/settings/models/cloud.py +0 -0
- {prefect_client-3.4.20.dev2 → prefect_client-3.4.21.dev2}/src/prefect/settings/models/deployments.py +0 -0
- {prefect_client-3.4.20.dev2 → prefect_client-3.4.21.dev2}/src/prefect/settings/models/flows.py +0 -0
- {prefect_client-3.4.20.dev2 → prefect_client-3.4.21.dev2}/src/prefect/settings/models/internal.py +0 -0
- {prefect_client-3.4.20.dev2 → prefect_client-3.4.21.dev2}/src/prefect/settings/models/logging.py +0 -0
- {prefect_client-3.4.20.dev2 → prefect_client-3.4.21.dev2}/src/prefect/settings/models/results.py +0 -0
- {prefect_client-3.4.20.dev2 → prefect_client-3.4.21.dev2}/src/prefect/settings/models/root.py +0 -0
- {prefect_client-3.4.20.dev2 → prefect_client-3.4.21.dev2}/src/prefect/settings/models/runner.py +0 -0
- {prefect_client-3.4.20.dev2 → prefect_client-3.4.21.dev2}/src/prefect/settings/models/server/__init__.py +0 -0
- {prefect_client-3.4.20.dev2 → prefect_client-3.4.21.dev2}/src/prefect/settings/models/server/api.py +0 -0
- {prefect_client-3.4.20.dev2 → prefect_client-3.4.21.dev2}/src/prefect/settings/models/server/concurrency.py +0 -0
- {prefect_client-3.4.20.dev2 → prefect_client-3.4.21.dev2}/src/prefect/settings/models/server/database.py +0 -0
- {prefect_client-3.4.20.dev2 → prefect_client-3.4.21.dev2}/src/prefect/settings/models/server/deployments.py +0 -0
- {prefect_client-3.4.20.dev2 → prefect_client-3.4.21.dev2}/src/prefect/settings/models/server/ephemeral.py +0 -0
- {prefect_client-3.4.20.dev2 → prefect_client-3.4.21.dev2}/src/prefect/settings/models/server/events.py +0 -0
- {prefect_client-3.4.20.dev2 → prefect_client-3.4.21.dev2}/src/prefect/settings/models/server/flow_run_graph.py +0 -0
- {prefect_client-3.4.20.dev2 → prefect_client-3.4.21.dev2}/src/prefect/settings/models/server/logs.py +0 -0
- {prefect_client-3.4.20.dev2 → prefect_client-3.4.21.dev2}/src/prefect/settings/models/server/root.py +0 -0
- {prefect_client-3.4.20.dev2 → prefect_client-3.4.21.dev2}/src/prefect/settings/models/server/services.py +0 -0
- {prefect_client-3.4.20.dev2 → prefect_client-3.4.21.dev2}/src/prefect/settings/models/server/tasks.py +0 -0
- {prefect_client-3.4.20.dev2 → prefect_client-3.4.21.dev2}/src/prefect/settings/models/server/ui.py +0 -0
- {prefect_client-3.4.20.dev2 → prefect_client-3.4.21.dev2}/src/prefect/settings/models/tasks.py +0 -0
- {prefect_client-3.4.20.dev2 → prefect_client-3.4.21.dev2}/src/prefect/settings/models/testing.py +0 -0
- {prefect_client-3.4.20.dev2 → prefect_client-3.4.21.dev2}/src/prefect/settings/models/worker.py +0 -0
- {prefect_client-3.4.20.dev2 → prefect_client-3.4.21.dev2}/src/prefect/settings/profiles.py +0 -0
- {prefect_client-3.4.20.dev2 → prefect_client-3.4.21.dev2}/src/prefect/settings/profiles.toml +0 -0
- {prefect_client-3.4.20.dev2 → prefect_client-3.4.21.dev2}/src/prefect/settings/sources.py +0 -0
- {prefect_client-3.4.20.dev2 → prefect_client-3.4.21.dev2}/src/prefect/states.py +0 -0
- {prefect_client-3.4.20.dev2 → prefect_client-3.4.21.dev2}/src/prefect/task_engine.py +0 -0
- {prefect_client-3.4.20.dev2 → prefect_client-3.4.21.dev2}/src/prefect/task_runners.py +0 -0
- {prefect_client-3.4.20.dev2 → prefect_client-3.4.21.dev2}/src/prefect/task_runs.py +0 -0
- {prefect_client-3.4.20.dev2 → prefect_client-3.4.21.dev2}/src/prefect/task_worker.py +0 -0
- {prefect_client-3.4.20.dev2 → prefect_client-3.4.21.dev2}/src/prefect/tasks.py +0 -0
- {prefect_client-3.4.20.dev2 → prefect_client-3.4.21.dev2}/src/prefect/telemetry/__init__.py +0 -0
- {prefect_client-3.4.20.dev2 → prefect_client-3.4.21.dev2}/src/prefect/telemetry/run_telemetry.py +0 -0
- {prefect_client-3.4.20.dev2 → prefect_client-3.4.21.dev2}/src/prefect/transactions.py +0 -0
- {prefect_client-3.4.20.dev2 → prefect_client-3.4.21.dev2}/src/prefect/types/__init__.py +0 -0
- {prefect_client-3.4.20.dev2 → prefect_client-3.4.21.dev2}/src/prefect/types/_concurrency.py +0 -0
- {prefect_client-3.4.20.dev2 → prefect_client-3.4.21.dev2}/src/prefect/types/_datetime.py +0 -0
- {prefect_client-3.4.20.dev2 → prefect_client-3.4.21.dev2}/src/prefect/types/entrypoint.py +0 -0
- {prefect_client-3.4.20.dev2 → prefect_client-3.4.21.dev2}/src/prefect/types/names.py +0 -0
- {prefect_client-3.4.20.dev2 → prefect_client-3.4.21.dev2}/src/prefect/utilities/__init__.py +0 -0
- {prefect_client-3.4.20.dev2 → prefect_client-3.4.21.dev2}/src/prefect/utilities/_ast.py +0 -0
- {prefect_client-3.4.20.dev2 → prefect_client-3.4.21.dev2}/src/prefect/utilities/_deprecated.py +0 -0
- {prefect_client-3.4.20.dev2 → prefect_client-3.4.21.dev2}/src/prefect/utilities/_engine.py +0 -0
- {prefect_client-3.4.20.dev2 → prefect_client-3.4.21.dev2}/src/prefect/utilities/_git.py +0 -0
- {prefect_client-3.4.20.dev2 → prefect_client-3.4.21.dev2}/src/prefect/utilities/annotations.py +0 -0
- {prefect_client-3.4.20.dev2 → prefect_client-3.4.21.dev2}/src/prefect/utilities/asyncutils.py +0 -0
- {prefect_client-3.4.20.dev2 → prefect_client-3.4.21.dev2}/src/prefect/utilities/callables.py +0 -0
- {prefect_client-3.4.20.dev2 → prefect_client-3.4.21.dev2}/src/prefect/utilities/collections.py +0 -0
- {prefect_client-3.4.20.dev2 → prefect_client-3.4.21.dev2}/src/prefect/utilities/compat.py +0 -0
- {prefect_client-3.4.20.dev2 → prefect_client-3.4.21.dev2}/src/prefect/utilities/context.py +0 -0
- {prefect_client-3.4.20.dev2 → prefect_client-3.4.21.dev2}/src/prefect/utilities/dispatch.py +0 -0
- {prefect_client-3.4.20.dev2 → prefect_client-3.4.21.dev2}/src/prefect/utilities/dockerutils.py +0 -0
- {prefect_client-3.4.20.dev2 → prefect_client-3.4.21.dev2}/src/prefect/utilities/engine.py +0 -0
- {prefect_client-3.4.20.dev2 → prefect_client-3.4.21.dev2}/src/prefect/utilities/filesystem.py +0 -0
- {prefect_client-3.4.20.dev2 → prefect_client-3.4.21.dev2}/src/prefect/utilities/generics.py +0 -0
- {prefect_client-3.4.20.dev2 → prefect_client-3.4.21.dev2}/src/prefect/utilities/hashing.py +0 -0
- {prefect_client-3.4.20.dev2 → prefect_client-3.4.21.dev2}/src/prefect/utilities/importtools.py +0 -0
- {prefect_client-3.4.20.dev2 → prefect_client-3.4.21.dev2}/src/prefect/utilities/math.py +0 -0
- {prefect_client-3.4.20.dev2 → prefect_client-3.4.21.dev2}/src/prefect/utilities/names.py +0 -0
- {prefect_client-3.4.20.dev2 → prefect_client-3.4.21.dev2}/src/prefect/utilities/processutils.py +0 -0
- {prefect_client-3.4.20.dev2 → prefect_client-3.4.21.dev2}/src/prefect/utilities/pydantic.py +0 -0
- {prefect_client-3.4.20.dev2 → prefect_client-3.4.21.dev2}/src/prefect/utilities/render_swagger.py +0 -0
- {prefect_client-3.4.20.dev2 → prefect_client-3.4.21.dev2}/src/prefect/utilities/schema_tools/__init__.py +0 -0
- {prefect_client-3.4.20.dev2 → prefect_client-3.4.21.dev2}/src/prefect/utilities/schema_tools/hydration.py +0 -0
- {prefect_client-3.4.20.dev2 → prefect_client-3.4.21.dev2}/src/prefect/utilities/schema_tools/validation.py +0 -0
- {prefect_client-3.4.20.dev2 → prefect_client-3.4.21.dev2}/src/prefect/utilities/services.py +0 -0
- {prefect_client-3.4.20.dev2 → prefect_client-3.4.21.dev2}/src/prefect/utilities/slugify.py +0 -0
- {prefect_client-3.4.20.dev2 → prefect_client-3.4.21.dev2}/src/prefect/utilities/templating.py +0 -0
- {prefect_client-3.4.20.dev2 → prefect_client-3.4.21.dev2}/src/prefect/utilities/text.py +0 -0
- {prefect_client-3.4.20.dev2 → prefect_client-3.4.21.dev2}/src/prefect/utilities/timeout.py +0 -0
- {prefect_client-3.4.20.dev2 → prefect_client-3.4.21.dev2}/src/prefect/utilities/urls.py +0 -0
- {prefect_client-3.4.20.dev2 → prefect_client-3.4.21.dev2}/src/prefect/utilities/visualization.py +0 -0
- {prefect_client-3.4.20.dev2 → prefect_client-3.4.21.dev2}/src/prefect/variables.py +0 -0
- {prefect_client-3.4.20.dev2 → prefect_client-3.4.21.dev2}/src/prefect/workers/__init__.py +0 -0
- {prefect_client-3.4.20.dev2 → prefect_client-3.4.21.dev2}/src/prefect/workers/base.py +0 -0
- {prefect_client-3.4.20.dev2 → prefect_client-3.4.21.dev2}/src/prefect/workers/block.py +0 -0
- {prefect_client-3.4.20.dev2 → prefect_client-3.4.21.dev2}/src/prefect/workers/cloud.py +0 -0
- {prefect_client-3.4.20.dev2 → prefect_client-3.4.21.dev2}/src/prefect/workers/process.py +0 -0
- {prefect_client-3.4.20.dev2 → prefect_client-3.4.21.dev2}/src/prefect/workers/server.py +0 -0
- {prefect_client-3.4.20.dev2 → prefect_client-3.4.21.dev2}/src/prefect/workers/utilities.py +0 -0
|
@@ -564,17 +564,13 @@ class ResultStore(BaseModel):
|
|
|
564
564
|
A result record.
|
|
565
565
|
"""
|
|
566
566
|
|
|
567
|
-
from prefect._experimental.lineage import emit_result_read_event
|
|
568
|
-
|
|
569
567
|
if self.lock_manager is not None and not self.is_lock_holder(key, holder):
|
|
570
568
|
await self.await_for_lock(key)
|
|
571
569
|
|
|
572
570
|
resolved_key_path = self._resolved_key_path(key)
|
|
573
571
|
|
|
574
572
|
if resolved_key_path in self.cache:
|
|
575
|
-
|
|
576
|
-
await emit_result_read_event(self, resolved_key_path, cached=True)
|
|
577
|
-
return cached_result
|
|
573
|
+
return self.cache[resolved_key_path]
|
|
578
574
|
|
|
579
575
|
if self.result_storage is None:
|
|
580
576
|
self.result_storage = await aget_default_result_storage()
|
|
@@ -601,7 +597,6 @@ class ResultStore(BaseModel):
|
|
|
601
597
|
result=result_content, metadata=metadata_content
|
|
602
598
|
)
|
|
603
599
|
)
|
|
604
|
-
await emit_result_read_event(self, resolved_key_path)
|
|
605
600
|
else:
|
|
606
601
|
content = await call_explicitly_async_block_method(
|
|
607
602
|
self.result_storage,
|
|
@@ -612,7 +607,6 @@ class ResultStore(BaseModel):
|
|
|
612
607
|
result_record: ResultRecord[Any] = ResultRecord.deserialize(
|
|
613
608
|
content, backup_serializer=self.serializer
|
|
614
609
|
)
|
|
615
|
-
await emit_result_read_event(self, resolved_key_path)
|
|
616
610
|
|
|
617
611
|
if self.cache_result_in_memory:
|
|
618
612
|
self.cache[resolved_key_path] = result_record
|
|
@@ -757,8 +751,6 @@ class ResultStore(BaseModel):
|
|
|
757
751
|
"Storage key is required on result record"
|
|
758
752
|
)
|
|
759
753
|
|
|
760
|
-
from prefect._experimental.lineage import emit_result_write_event
|
|
761
|
-
|
|
762
754
|
key = result_record.metadata.storage_key
|
|
763
755
|
if result_record.metadata.storage_block_id is None:
|
|
764
756
|
basepath = (
|
|
@@ -797,7 +789,6 @@ class ResultStore(BaseModel):
|
|
|
797
789
|
(base_key,),
|
|
798
790
|
{"content": result_record.serialize_metadata()},
|
|
799
791
|
)
|
|
800
|
-
await emit_result_write_event(self, result_record.metadata.storage_key)
|
|
801
792
|
# Otherwise, write the result metadata and result together
|
|
802
793
|
else:
|
|
803
794
|
await call_explicitly_async_block_method(
|
|
@@ -806,7 +797,6 @@ class ResultStore(BaseModel):
|
|
|
806
797
|
(result_record.metadata.storage_key,),
|
|
807
798
|
{"content": result_record.serialize()},
|
|
808
799
|
)
|
|
809
|
-
await emit_result_write_event(self, result_record.metadata.storage_key)
|
|
810
800
|
if self.cache_result_in_memory:
|
|
811
801
|
self.cache[key] = result_record
|
|
812
802
|
|
{prefect_client-3.4.20.dev2 → prefect_client-3.4.21.dev2}/src/prefect/server/api/artifacts.py
RENAMED
|
@@ -29,7 +29,7 @@ async def create_artifact(
|
|
|
29
29
|
"""
|
|
30
30
|
Create an artifact.
|
|
31
31
|
|
|
32
|
-
For more information, see https://docs.prefect.io/v3/
|
|
32
|
+
For more information, see https://docs.prefect.io/v3/concepts/artifacts.
|
|
33
33
|
"""
|
|
34
34
|
artifact = core.Artifact(**artifact.model_dump())
|
|
35
35
|
|
{prefect_client-3.4.20.dev2 → prefect_client-3.4.21.dev2}/src/prefect/server/api/automations.py
RENAMED
|
@@ -43,7 +43,7 @@ async def create_automation(
|
|
|
43
43
|
"""
|
|
44
44
|
Create an automation.
|
|
45
45
|
|
|
46
|
-
For more information, see https://docs.prefect.io/v3/
|
|
46
|
+
For more information, see https://docs.prefect.io/v3/concepts/automations.
|
|
47
47
|
"""
|
|
48
48
|
# reset any client-provided IDs on the provided triggers
|
|
49
49
|
automation.trigger.reset_ids()
|
|
@@ -22,7 +22,7 @@ async def read_available_block_capabilities(
|
|
|
22
22
|
"""
|
|
23
23
|
Get available block capabilities.
|
|
24
24
|
|
|
25
|
-
For more information, see https://docs.prefect.io/v3/
|
|
25
|
+
For more information, see https://docs.prefect.io/v3/concepts/blocks.
|
|
26
26
|
"""
|
|
27
27
|
async with db.session_context() as session:
|
|
28
28
|
return await models.block_schemas.read_available_block_capabilities(
|
{prefect_client-3.4.20.dev2 → prefect_client-3.4.21.dev2}/src/prefect/server/api/block_documents.py
RENAMED
|
@@ -25,7 +25,7 @@ async def create_block_document(
|
|
|
25
25
|
"""
|
|
26
26
|
Create a new block document.
|
|
27
27
|
|
|
28
|
-
For more information, see https://docs.prefect.io/v3/
|
|
28
|
+
For more information, see https://docs.prefect.io/v3/concepts/blocks.
|
|
29
29
|
"""
|
|
30
30
|
async with db.session_context(begin_transaction=True) as session:
|
|
31
31
|
if block_document.name is not None:
|
{prefect_client-3.4.20.dev2 → prefect_client-3.4.21.dev2}/src/prefect/server/api/block_schemas.py
RENAMED
|
@@ -33,7 +33,7 @@ async def create_block_schema(
|
|
|
33
33
|
"""
|
|
34
34
|
Create a block schema.
|
|
35
35
|
|
|
36
|
-
For more information, see https://docs.prefect.io/v3/
|
|
36
|
+
For more information, see https://docs.prefect.io/v3/concepts/blocks.
|
|
37
37
|
"""
|
|
38
38
|
from prefect.blocks.core import Block
|
|
39
39
|
|
{prefect_client-3.4.20.dev2 → prefect_client-3.4.21.dev2}/src/prefect/server/api/block_types.py
RENAMED
|
@@ -21,7 +21,7 @@ async def create_block_type(
|
|
|
21
21
|
"""
|
|
22
22
|
Create a new block type.
|
|
23
23
|
|
|
24
|
-
For more information, see https://docs.prefect.io/v3/
|
|
24
|
+
For more information, see https://docs.prefect.io/v3/concepts/blocks.
|
|
25
25
|
"""
|
|
26
26
|
# API-created blocks cannot start with the word "Prefect"
|
|
27
27
|
# as it is reserved for system use
|
|
@@ -48,7 +48,7 @@ async def create_concurrency_limit(
|
|
|
48
48
|
"""
|
|
49
49
|
Create a task run concurrency limit.
|
|
50
50
|
|
|
51
|
-
For more information, see https://docs.prefect.io/v3/
|
|
51
|
+
For more information, see https://docs.prefect.io/v3/concepts/tag-based-concurrency-limits.
|
|
52
52
|
"""
|
|
53
53
|
# Always create V2 limits (no V1 record)
|
|
54
54
|
v2_name = f"tag:{concurrency_limit.tag}"
|
|
@@ -32,7 +32,7 @@ async def create_concurrency_limit_v2(
|
|
|
32
32
|
"""
|
|
33
33
|
Create a task run concurrency limit.
|
|
34
34
|
|
|
35
|
-
For more information, see https://docs.prefect.io/v3/
|
|
35
|
+
For more information, see https://docs.prefect.io/v3/how-to-guides/workflows/global-concurrency-limits.
|
|
36
36
|
"""
|
|
37
37
|
async with db.session_context(begin_transaction=True) as session:
|
|
38
38
|
model = await models.concurrency_limits_v2.create_concurrency_limit(
|
{prefect_client-3.4.20.dev2 → prefect_client-3.4.21.dev2}/src/prefect/server/api/deployments.py
RENAMED
|
@@ -70,7 +70,7 @@ async def create_deployment(
|
|
|
70
70
|
If the deployment has an active schedule, flow runs will be scheduled.
|
|
71
71
|
When upserting, any scheduled runs from the existing deployment will be deleted.
|
|
72
72
|
|
|
73
|
-
For more information, see https://docs.prefect.io/v3/
|
|
73
|
+
For more information, see https://docs.prefect.io/v3/concepts/deployments.
|
|
74
74
|
"""
|
|
75
75
|
|
|
76
76
|
data = deployment.model_dump(exclude_unset=True)
|
{prefect_client-3.4.20.dev2 → prefect_client-3.4.21.dev2}/src/prefect/server/api/flow_run_states.py
RENAMED
|
@@ -27,7 +27,7 @@ async def read_flow_run_state(
|
|
|
27
27
|
"""
|
|
28
28
|
Get a flow run state by id.
|
|
29
29
|
|
|
30
|
-
For more information, see https://docs.prefect.io/v3/
|
|
30
|
+
For more information, see https://docs.prefect.io/v3/concepts/flows#final-state-determination.
|
|
31
31
|
"""
|
|
32
32
|
async with db.session_context() as session:
|
|
33
33
|
flow_run_state = await models.flow_run_states.read_flow_run_state(
|
{prefect_client-3.4.20.dev2 → prefect_client-3.4.21.dev2}/src/prefect/server/api/flow_runs.py
RENAMED
|
@@ -78,7 +78,7 @@ async def create_flow_run(
|
|
|
78
78
|
|
|
79
79
|
If no state is provided, the flow run will be created in a PENDING state.
|
|
80
80
|
|
|
81
|
-
For more information, see https://docs.prefect.io/v3/
|
|
81
|
+
For more information, see https://docs.prefect.io/v3/concepts/flows.
|
|
82
82
|
"""
|
|
83
83
|
# hydrate the input model into a full flow run / state model
|
|
84
84
|
flow_run_object = schemas.core.FlowRun(
|
|
@@ -28,7 +28,7 @@ async def create_flow(
|
|
|
28
28
|
"""Gracefully creates a new flow from the provided schema. If a flow with the
|
|
29
29
|
same name already exists, the existing flow is returned.
|
|
30
30
|
|
|
31
|
-
For more information, see https://docs.prefect.io/v3/
|
|
31
|
+
For more information, see https://docs.prefect.io/v3/concepts/flows.
|
|
32
32
|
"""
|
|
33
33
|
# hydrate the input model into a full flow model
|
|
34
34
|
flow = schemas.core.Flow(**flow.model_dump())
|
|
@@ -30,7 +30,7 @@ async def create_logs(
|
|
|
30
30
|
"""
|
|
31
31
|
Create new logs from the provided schema.
|
|
32
32
|
|
|
33
|
-
For more information, see https://docs.prefect.io/v3/
|
|
33
|
+
For more information, see https://docs.prefect.io/v3/how-to-guides/workflows/add-logging.
|
|
34
34
|
"""
|
|
35
35
|
for batch in models.logs.split_logs_into_batches(logs):
|
|
36
36
|
async with db.session_context(begin_transaction=True) as session:
|
{prefect_client-3.4.20.dev2 → prefect_client-3.4.21.dev2}/src/prefect/server/api/task_run_states.py
RENAMED
|
@@ -27,7 +27,7 @@ async def read_task_run_state(
|
|
|
27
27
|
"""
|
|
28
28
|
Get a task run state by id.
|
|
29
29
|
|
|
30
|
-
For more information, see https://docs.prefect.io/v3/
|
|
30
|
+
For more information, see https://docs.prefect.io/v3/concepts/tasks.
|
|
31
31
|
"""
|
|
32
32
|
async with db.session_context() as session:
|
|
33
33
|
task_run_state = await models.task_run_states.read_task_run_state(
|
{prefect_client-3.4.20.dev2 → prefect_client-3.4.21.dev2}/src/prefect/server/api/task_runs.py
RENAMED
|
@@ -63,7 +63,7 @@ async def create_task_run(
|
|
|
63
63
|
|
|
64
64
|
If no state is provided, the task run will be created in a PENDING state.
|
|
65
65
|
|
|
66
|
-
For more information, see https://docs.prefect.io/v3/
|
|
66
|
+
For more information, see https://docs.prefect.io/v3/concepts/tasks.
|
|
67
67
|
"""
|
|
68
68
|
# hydrate the input model into a full task run / state model
|
|
69
69
|
task_run_dict = task_run.model_dump()
|
{prefect_client-3.4.20.dev2 → prefect_client-3.4.21.dev2}/src/prefect/server/api/task_workers.py
RENAMED
|
@@ -23,7 +23,7 @@ async def read_task_workers(
|
|
|
23
23
|
"""
|
|
24
24
|
Read active task workers. Optionally filter by task keys.
|
|
25
25
|
|
|
26
|
-
For more information, see https://docs.prefect.io/v3/
|
|
26
|
+
For more information, see https://docs.prefect.io/v3/how-to-guides/workflows/run-background-tasks.
|
|
27
27
|
"""
|
|
28
28
|
|
|
29
29
|
if task_worker_filter and task_worker_filter.task_keys:
|
{prefect_client-3.4.20.dev2 → prefect_client-3.4.21.dev2}/src/prefect/server/api/variables.py
RENAMED
|
@@ -60,7 +60,7 @@ async def create_variable(
|
|
|
60
60
|
"""
|
|
61
61
|
Create a variable.
|
|
62
62
|
|
|
63
|
-
For more information, see https://docs.prefect.io/v3/
|
|
63
|
+
For more information, see https://docs.prefect.io/v3/concepts/variables.
|
|
64
64
|
"""
|
|
65
65
|
async with db.session_context(begin_transaction=True) as session:
|
|
66
66
|
try:
|
{prefect_client-3.4.20.dev2 → prefect_client-3.4.21.dev2}/src/prefect/server/api/work_queues.py
RENAMED
|
@@ -46,7 +46,7 @@ async def create_work_queue(
|
|
|
46
46
|
If a work queue with the same name already exists, an error
|
|
47
47
|
will be raised.
|
|
48
48
|
|
|
49
|
-
For more information, see https://docs.prefect.io/v3/
|
|
49
|
+
For more information, see https://docs.prefect.io/v3/concepts/work-pools#work-queues.
|
|
50
50
|
"""
|
|
51
51
|
|
|
52
52
|
try:
|
|
@@ -167,7 +167,7 @@ async def create_work_pool(
|
|
|
167
167
|
Creates a new work pool. If a work pool with the same
|
|
168
168
|
name already exists, an error will be raised.
|
|
169
169
|
|
|
170
|
-
For more information, see https://docs.prefect.io/v3/
|
|
170
|
+
For more information, see https://docs.prefect.io/v3/concepts/work-pools.
|
|
171
171
|
"""
|
|
172
172
|
if work_pool.name.lower().startswith("prefect"):
|
|
173
173
|
raise HTTPException(
|
|
@@ -449,7 +449,7 @@ async def create_work_queue(
|
|
|
449
449
|
Creates a new work pool queue. If a work pool queue with the same
|
|
450
450
|
name already exists, an error will be raised.
|
|
451
451
|
|
|
452
|
-
For more information, see https://docs.prefect.io/v3/
|
|
452
|
+
For more information, see https://docs.prefect.io/v3/concepts/work-pools#work-queues.
|
|
453
453
|
"""
|
|
454
454
|
|
|
455
455
|
try:
|
|
@@ -89,6 +89,39 @@ class PrefectBaseSettings(BaseSettings):
|
|
|
89
89
|
ProfileSettingsTomlLoader(settings_cls),
|
|
90
90
|
)
|
|
91
91
|
|
|
92
|
+
@staticmethod
|
|
93
|
+
def _settings_warn_unused_config_keys(
|
|
94
|
+
sources: tuple[object, ...],
|
|
95
|
+
model_config: SettingsConfigDict,
|
|
96
|
+
) -> None:
|
|
97
|
+
"""
|
|
98
|
+
Override PrefectBaseSettings._settings_warn_unused_config_keys to ensure
|
|
99
|
+
Prefect’s TOML sources satisfy pydantic-settings 2.11’s unused-config check
|
|
100
|
+
without renaming public config keys. This method suppresses warnings when
|
|
101
|
+
Prefect sources are configured.
|
|
102
|
+
|
|
103
|
+
In the future pydantic-settings's init might stop invoking this method, so we
|
|
104
|
+
should remove this method.
|
|
105
|
+
"""
|
|
106
|
+
warn_method = getattr(BaseSettings, "_settings_warn_unused_config_keys", None)
|
|
107
|
+
if warn_method is None:
|
|
108
|
+
return
|
|
109
|
+
|
|
110
|
+
adjusted_config = dict(model_config)
|
|
111
|
+
|
|
112
|
+
if any(
|
|
113
|
+
isinstance(source, PrefectTomlConfigSettingsSource) for source in sources
|
|
114
|
+
):
|
|
115
|
+
adjusted_config["toml_file"] = None
|
|
116
|
+
|
|
117
|
+
if any(
|
|
118
|
+
isinstance(source, PyprojectTomlConfigSettingsSource) for source in sources
|
|
119
|
+
):
|
|
120
|
+
adjusted_config["pyproject_toml_table_header"] = None
|
|
121
|
+
adjusted_config["pyproject_toml_depth"] = None
|
|
122
|
+
|
|
123
|
+
warn_method(sources, adjusted_config)
|
|
124
|
+
|
|
92
125
|
def to_environment_variables(
|
|
93
126
|
self,
|
|
94
127
|
exclude_unset: bool = False,
|
{prefect_client-3.4.20.dev2 → prefect_client-3.4.21.dev2}/src/prefect/settings/models/experiments.py
RENAMED
|
@@ -22,8 +22,3 @@ class ExperimentsSettings(PrefectBaseSettings):
|
|
|
22
22
|
AliasPath("warn"), "prefect_experiments_warn", "prefect_experimental_warn"
|
|
23
23
|
),
|
|
24
24
|
)
|
|
25
|
-
|
|
26
|
-
lineage_events_enabled: bool = Field(
|
|
27
|
-
default=False,
|
|
28
|
-
description="If `True`, enables emitting lineage events. Set to `False` to disable lineage event emission.",
|
|
29
|
-
)
|
|
@@ -1,261 +0,0 @@
|
|
|
1
|
-
from typing import TYPE_CHECKING, Any, Dict, Literal, Optional, Sequence, Union
|
|
2
|
-
|
|
3
|
-
from typing_extensions import TypeAlias
|
|
4
|
-
|
|
5
|
-
from prefect.events.related import related_resources_from_run_context
|
|
6
|
-
from prefect.events.schemas.events import RelatedResource
|
|
7
|
-
from prefect.events.utilities import emit_event
|
|
8
|
-
from prefect.settings import get_current_settings
|
|
9
|
-
|
|
10
|
-
if TYPE_CHECKING:
|
|
11
|
-
from prefect.results import ResultStore
|
|
12
|
-
|
|
13
|
-
LineageResources: TypeAlias = Sequence[Union[RelatedResource, dict[str, str]]]
|
|
14
|
-
|
|
15
|
-
# Map block types to their URI schemes
|
|
16
|
-
STORAGE_URI_SCHEMES = {
|
|
17
|
-
"local-file-system": "file://{path}",
|
|
18
|
-
"s3-bucket": "s3://{storage.bucket_name}/{path}",
|
|
19
|
-
"gcs-bucket": "gs://{storage.bucket}/{path}",
|
|
20
|
-
"azure-blob-storage": "azure-blob://{storage.container_name}/{path}",
|
|
21
|
-
}
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
def get_result_resource_uri(
|
|
25
|
-
store: "ResultStore",
|
|
26
|
-
key: str,
|
|
27
|
-
) -> Optional[str]:
|
|
28
|
-
"""
|
|
29
|
-
Generate a URI for a result based on its storage backend.
|
|
30
|
-
|
|
31
|
-
Args:
|
|
32
|
-
store: A `ResultStore` instance.
|
|
33
|
-
key: The key of the result to generate a URI for.
|
|
34
|
-
"""
|
|
35
|
-
storage = store.result_storage
|
|
36
|
-
if storage is None:
|
|
37
|
-
return
|
|
38
|
-
|
|
39
|
-
path = store._resolved_key_path(key)
|
|
40
|
-
|
|
41
|
-
block_type = storage.get_block_type_slug()
|
|
42
|
-
if block_type and block_type in STORAGE_URI_SCHEMES:
|
|
43
|
-
return STORAGE_URI_SCHEMES[block_type].format(storage=storage, path=path)
|
|
44
|
-
|
|
45
|
-
# Generic fallback
|
|
46
|
-
return f"prefect://{block_type}/{path}"
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
async def emit_lineage_event(
|
|
50
|
-
event_name: str,
|
|
51
|
-
upstream_resources: Optional[LineageResources] = None,
|
|
52
|
-
downstream_resources: Optional[LineageResources] = None,
|
|
53
|
-
direction_of_run_from_event: Literal["upstream", "downstream"] = "downstream",
|
|
54
|
-
) -> None:
|
|
55
|
-
"""Emit lineage events showing relationships between resources.
|
|
56
|
-
|
|
57
|
-
Args:
|
|
58
|
-
event_name: The name of the event to emit
|
|
59
|
-
upstream_resources: Optional list of RelatedResources that were upstream of
|
|
60
|
-
the event
|
|
61
|
-
downstream_resources: Optional list of Resources that were downstream
|
|
62
|
-
of the event
|
|
63
|
-
direction_of_run_from_event: The direction of the current run from
|
|
64
|
-
the event. E.g., if we're in a flow run and
|
|
65
|
-
`direction_of_run_from_event` is "downstream", then the flow run is
|
|
66
|
-
considered downstream of the resource's event.
|
|
67
|
-
"""
|
|
68
|
-
from prefect.client.orchestration import get_client # Avoid a circular import
|
|
69
|
-
|
|
70
|
-
if not get_current_settings().experiments.lineage_events_enabled:
|
|
71
|
-
return
|
|
72
|
-
|
|
73
|
-
upstream_resources = list(upstream_resources) if upstream_resources else []
|
|
74
|
-
downstream_resources = list(downstream_resources) if downstream_resources else []
|
|
75
|
-
|
|
76
|
-
async with get_client() as client:
|
|
77
|
-
context_resources = await related_resources_from_run_context(client)
|
|
78
|
-
|
|
79
|
-
tag_resources = [
|
|
80
|
-
res for res in context_resources if res.get("prefect.resource.role") == "tag"
|
|
81
|
-
]
|
|
82
|
-
context_resources = [
|
|
83
|
-
res for res in context_resources if res.get("prefect.resource.role") != "tag"
|
|
84
|
-
]
|
|
85
|
-
|
|
86
|
-
# NOTE: We handle adding run-related resources to the event here instead of in
|
|
87
|
-
# the EventsWorker because not all run-related resources are upstream from
|
|
88
|
-
# every lineage event (they might be downstream). The EventsWorker only adds
|
|
89
|
-
# related resources to the "related" field in the event, which, for
|
|
90
|
-
# lineage-related events, tracks upstream resources only. For downstream
|
|
91
|
-
# resources, we need to emit an event for each downstream resource.
|
|
92
|
-
if direction_of_run_from_event == "downstream":
|
|
93
|
-
downstream_resources.extend(context_resources)
|
|
94
|
-
else:
|
|
95
|
-
upstream_resources.extend(context_resources)
|
|
96
|
-
|
|
97
|
-
# We want to consider all resources upstream and downstream of the event as
|
|
98
|
-
# lineage-related, including flows, flow runs, etc., so we add the label to
|
|
99
|
-
# all resources involved in the event.
|
|
100
|
-
for res in upstream_resources + downstream_resources:
|
|
101
|
-
if "prefect.resource.lineage-group" not in res:
|
|
102
|
-
res["prefect.resource.lineage-group"] = "global"
|
|
103
|
-
|
|
104
|
-
# Emit an event for each downstream resource. This is necessary because
|
|
105
|
-
# our event schema allows one primary resource and many related resources,
|
|
106
|
-
# and for the purposes of lineage, related resources can only represent
|
|
107
|
-
# upstream resources.
|
|
108
|
-
for resource in downstream_resources:
|
|
109
|
-
emit_kwargs: Dict[str, Any] = {
|
|
110
|
-
"event": event_name,
|
|
111
|
-
"resource": resource,
|
|
112
|
-
"related": upstream_resources + tag_resources,
|
|
113
|
-
}
|
|
114
|
-
|
|
115
|
-
emit_event(**emit_kwargs)
|
|
116
|
-
|
|
117
|
-
|
|
118
|
-
async def emit_result_read_event(
|
|
119
|
-
store: "ResultStore",
|
|
120
|
-
result_key: str,
|
|
121
|
-
downstream_resources: Optional[LineageResources] = None,
|
|
122
|
-
cached: bool = False,
|
|
123
|
-
) -> None:
|
|
124
|
-
"""
|
|
125
|
-
Emit a lineage event showing a task or flow result was read.
|
|
126
|
-
|
|
127
|
-
Args:
|
|
128
|
-
store: A `ResultStore` instance.
|
|
129
|
-
result_key: The key of the result to generate a URI for.
|
|
130
|
-
downstream_resources: List of resources that were
|
|
131
|
-
downstream of the event's resource.
|
|
132
|
-
"""
|
|
133
|
-
if not get_current_settings().experiments.lineage_events_enabled:
|
|
134
|
-
return
|
|
135
|
-
|
|
136
|
-
result_resource_uri = get_result_resource_uri(store, result_key)
|
|
137
|
-
if result_resource_uri:
|
|
138
|
-
upstream_resources = [
|
|
139
|
-
RelatedResource(
|
|
140
|
-
root={
|
|
141
|
-
"prefect.resource.id": result_resource_uri,
|
|
142
|
-
"prefect.resource.role": "result",
|
|
143
|
-
}
|
|
144
|
-
)
|
|
145
|
-
]
|
|
146
|
-
event_name = "prefect.result.read"
|
|
147
|
-
if cached:
|
|
148
|
-
event_name += ".cached"
|
|
149
|
-
|
|
150
|
-
await emit_lineage_event(
|
|
151
|
-
event_name=event_name,
|
|
152
|
-
upstream_resources=upstream_resources,
|
|
153
|
-
downstream_resources=downstream_resources,
|
|
154
|
-
direction_of_run_from_event="downstream",
|
|
155
|
-
)
|
|
156
|
-
|
|
157
|
-
|
|
158
|
-
async def emit_result_write_event(
|
|
159
|
-
store: "ResultStore",
|
|
160
|
-
result_key: str,
|
|
161
|
-
upstream_resources: Optional[LineageResources] = None,
|
|
162
|
-
) -> None:
|
|
163
|
-
"""
|
|
164
|
-
Emit a lineage event showing a task or flow result was written.
|
|
165
|
-
|
|
166
|
-
Args:
|
|
167
|
-
store: A `ResultStore` instance.
|
|
168
|
-
result_key: The key of the result to generate a URI for.
|
|
169
|
-
upstream_resources: Optional list of resources that were
|
|
170
|
-
upstream of the event's resource.
|
|
171
|
-
"""
|
|
172
|
-
if not get_current_settings().experiments.lineage_events_enabled:
|
|
173
|
-
return
|
|
174
|
-
|
|
175
|
-
result_resource_uri = get_result_resource_uri(store, result_key)
|
|
176
|
-
if result_resource_uri:
|
|
177
|
-
downstream_resources = [
|
|
178
|
-
{
|
|
179
|
-
"prefect.resource.id": result_resource_uri,
|
|
180
|
-
"prefect.resource.role": "result",
|
|
181
|
-
}
|
|
182
|
-
]
|
|
183
|
-
await emit_lineage_event(
|
|
184
|
-
event_name="prefect.result.write",
|
|
185
|
-
upstream_resources=upstream_resources,
|
|
186
|
-
downstream_resources=downstream_resources,
|
|
187
|
-
direction_of_run_from_event="upstream",
|
|
188
|
-
)
|
|
189
|
-
|
|
190
|
-
|
|
191
|
-
async def emit_external_resource_lineage(
|
|
192
|
-
event_name: str = "prefect.lineage.event",
|
|
193
|
-
upstream_resources: Optional[LineageResources] = None,
|
|
194
|
-
downstream_resources: Optional[LineageResources] = None,
|
|
195
|
-
context_resources: Optional[LineageResources] = None,
|
|
196
|
-
) -> None:
|
|
197
|
-
"""Emit lineage events connecting external resources to Prefect context resources.
|
|
198
|
-
|
|
199
|
-
This function emits events that place the current Prefect context resources
|
|
200
|
-
(like flow runs, task runs) as:
|
|
201
|
-
1. Downstream of any provided upstream external resources
|
|
202
|
-
2. Upstream of any provided downstream external resources
|
|
203
|
-
|
|
204
|
-
Args:
|
|
205
|
-
upstream_resources: Optional sequence of resources that are upstream of the
|
|
206
|
-
current Prefect context
|
|
207
|
-
downstream_resources: Optional sequence of resources that are downstream of
|
|
208
|
-
the current Prefect context
|
|
209
|
-
"""
|
|
210
|
-
from prefect.client.orchestration import get_client
|
|
211
|
-
|
|
212
|
-
if not get_current_settings().experiments.lineage_events_enabled:
|
|
213
|
-
return
|
|
214
|
-
|
|
215
|
-
upstream_resources = list(upstream_resources) if upstream_resources else []
|
|
216
|
-
downstream_resources = list(downstream_resources) if downstream_resources else []
|
|
217
|
-
|
|
218
|
-
# Get the current Prefect context resources (flow runs, task runs, etc.)
|
|
219
|
-
if not context_resources:
|
|
220
|
-
async with get_client() as client:
|
|
221
|
-
context_resources = await related_resources_from_run_context(client)
|
|
222
|
-
|
|
223
|
-
tag_resources = [
|
|
224
|
-
res for res in context_resources if res.get("prefect.resource.role") == "tag"
|
|
225
|
-
]
|
|
226
|
-
context_resources = [
|
|
227
|
-
res for res in context_resources if res.get("prefect.resource.role") != "tag"
|
|
228
|
-
]
|
|
229
|
-
|
|
230
|
-
# Add lineage group label to all resources
|
|
231
|
-
for res in upstream_resources + downstream_resources + context_resources:
|
|
232
|
-
if "prefect.resource.lineage-group" not in res:
|
|
233
|
-
res["prefect.resource.lineage-group"] = "global"
|
|
234
|
-
|
|
235
|
-
# For each context resource, emit an event showing it as downstream of upstream resources
|
|
236
|
-
if upstream_resources:
|
|
237
|
-
for context_resource in context_resources:
|
|
238
|
-
emit_kwargs: Dict[str, Any] = {
|
|
239
|
-
"event": "prefect.lineage.upstream-interaction",
|
|
240
|
-
"resource": context_resource,
|
|
241
|
-
"related": upstream_resources + tag_resources,
|
|
242
|
-
}
|
|
243
|
-
emit_event(**emit_kwargs)
|
|
244
|
-
|
|
245
|
-
# For each downstream resource, emit an event showing it as downstream of context resources
|
|
246
|
-
for downstream_resource in downstream_resources:
|
|
247
|
-
emit_kwargs: Dict[str, Any] = {
|
|
248
|
-
"event": "prefect.lineage.downstream-interaction",
|
|
249
|
-
"resource": downstream_resource,
|
|
250
|
-
"related": context_resources + tag_resources,
|
|
251
|
-
}
|
|
252
|
-
emit_event(**emit_kwargs)
|
|
253
|
-
|
|
254
|
-
# For each downstream resource, emit an event showing it as downstream of upstream resources
|
|
255
|
-
if upstream_resources:
|
|
256
|
-
direct_emit_kwargs = {
|
|
257
|
-
"event": event_name,
|
|
258
|
-
"resource": downstream_resource,
|
|
259
|
-
"related": upstream_resources + tag_resources,
|
|
260
|
-
}
|
|
261
|
-
emit_event(**direct_emit_kwargs)
|
|
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.4.20.dev2 → prefect_client-3.4.21.dev2}/src/prefect/_experimental/__init__.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
{prefect_client-3.4.20.dev2 → prefect_client-3.4.21.dev2}/src/prefect/_experimental/sla/__init__.py
RENAMED
|
File without changes
|
{prefect_client-3.4.20.dev2 → prefect_client-3.4.21.dev2}/src/prefect/_experimental/sla/client.py
RENAMED
|
File without changes
|
{prefect_client-3.4.20.dev2 → prefect_client-3.4.21.dev2}/src/prefect/_experimental/sla/objects.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
|