prefect-client 2.20.0__tar.gz → 2.20.2__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-2.20.2/PKG-INFO +173 -0
- {prefect-client-2.20.0 → prefect_client-2.20.2}/requirements-client.txt +1 -0
- {prefect-client-2.20.0 → prefect_client-2.20.2}/requirements.txt +0 -1
- {prefect-client-2.20.0 → prefect_client-2.20.2}/setup.cfg +1 -1
- {prefect-client-2.20.0 → prefect_client-2.20.2}/src/prefect/infrastructure/kubernetes.py +1 -1
- prefect_client-2.20.2/src/prefect/py.typed +0 -0
- {prefect-client-2.20.0 → prefect_client-2.20.2}/src/prefect/runner/storage.py +4 -0
- {prefect-client-2.20.0 → prefect_client-2.20.2}/src/prefect/runtime/flow_run.py +19 -0
- {prefect-client-2.20.0 → prefect_client-2.20.2}/src/prefect/settings.py +5 -1
- prefect_client-2.20.2/src/prefect/utilities/__init__.py +0 -0
- {prefect-client-2.20.0 → prefect_client-2.20.2}/src/prefect/workers/base.py +6 -1
- prefect_client-2.20.2/src/prefect_client.egg-info/PKG-INFO +173 -0
- {prefect-client-2.20.0 → prefect_client-2.20.2}/src/prefect_client.egg-info/SOURCES.txt +29 -1
- {prefect-client-2.20.0 → prefect_client-2.20.2}/src/prefect_client.egg-info/requires.txt +1 -0
- prefect_client-2.20.2/tests/test_artifacts.py +484 -0
- prefect_client-2.20.2/tests/test_automations.py +186 -0
- prefect_client-2.20.2/tests/test_background_tasks.py +401 -0
- prefect_client-2.20.2/tests/test_context.py +396 -0
- prefect_client-2.20.2/tests/test_deployments.py +1632 -0
- prefect_client-2.20.2/tests/test_engine.py +3417 -0
- prefect_client-2.20.2/tests/test_exceptions.py +139 -0
- prefect_client-2.20.2/tests/test_filesystems.py +782 -0
- prefect_client-2.20.2/tests/test_flow_runs.py +40 -0
- prefect_client-2.20.2/tests/test_flows.py +4416 -0
- prefect_client-2.20.2/tests/test_flows_compat.py +30 -0
- prefect_client-2.20.2/tests/test_futures.py +215 -0
- prefect_client-2.20.2/tests/test_highlighters.py +69 -0
- prefect_client-2.20.2/tests/test_import_interceptor.py +7 -0
- prefect_client-2.20.2/tests/test_log_prints.py +240 -0
- prefect_client-2.20.2/tests/test_logging.py +1586 -0
- prefect_client-2.20.2/tests/test_new_flow_engine.py +866 -0
- prefect_client-2.20.2/tests/test_new_task_engine.py +868 -0
- prefect_client-2.20.2/tests/test_plugins.py +259 -0
- prefect_client-2.20.2/tests/test_serializers.py +368 -0
- prefect_client-2.20.2/tests/test_settings.py +1062 -0
- prefect_client-2.20.2/tests/test_states.py +374 -0
- prefect_client-2.20.2/tests/test_task_runners.py +34 -0
- prefect_client-2.20.2/tests/test_task_server.py +551 -0
- prefect_client-2.20.2/tests/test_tasks.py +4304 -0
- prefect_client-2.20.2/tests/test_variables.py +94 -0
- prefect-client-2.20.0/PKG-INFO +0 -136
- prefect-client-2.20.0/src/prefect_client.egg-info/PKG-INFO +0 -136
- {prefect-client-2.20.0 → prefect_client-2.20.2}/LICENSE +0 -0
- {prefect-client-2.20.0 → prefect_client-2.20.2}/MANIFEST.in +0 -0
- {prefect-client-2.20.0 → prefect_client-2.20.2}/README.md +0 -0
- {prefect-client-2.20.0 → prefect_client-2.20.2}/requirements-dev.txt +0 -0
- {prefect-client-2.20.0 → prefect_client-2.20.2}/setup.py +0 -0
- {prefect-client-2.20.0 → prefect_client-2.20.2}/src/prefect/.prefectignore +0 -0
- {prefect-client-2.20.0 → prefect_client-2.20.2}/src/prefect/__init__.py +0 -0
- {prefect-client-2.20.0 → prefect_client-2.20.2}/src/prefect/_internal/__init__.py +0 -0
- {prefect-client-2.20.0 → prefect_client-2.20.2}/src/prefect/_internal/_logging.py +0 -0
- {prefect-client-2.20.0 → prefect_client-2.20.2}/src/prefect/_internal/compatibility/__init__.py +0 -0
- {prefect-client-2.20.0 → prefect_client-2.20.2}/src/prefect/_internal/compatibility/deprecated.py +0 -0
- {prefect-client-2.20.0 → prefect_client-2.20.2}/src/prefect/_internal/compatibility/experimental.py +0 -0
- {prefect-client-2.20.0 → prefect_client-2.20.2}/src/prefect/_internal/concurrency/__init__.py +0 -0
- {prefect-client-2.20.0 → prefect_client-2.20.2}/src/prefect/_internal/concurrency/api.py +0 -0
- {prefect-client-2.20.0 → prefect_client-2.20.2}/src/prefect/_internal/concurrency/calls.py +0 -0
- {prefect-client-2.20.0 → prefect_client-2.20.2}/src/prefect/_internal/concurrency/cancellation.py +0 -0
- {prefect-client-2.20.0 → prefect_client-2.20.2}/src/prefect/_internal/concurrency/event_loop.py +0 -0
- {prefect-client-2.20.0 → prefect_client-2.20.2}/src/prefect/_internal/concurrency/inspection.py +0 -0
- {prefect-client-2.20.0 → prefect_client-2.20.2}/src/prefect/_internal/concurrency/primitives.py +0 -0
- {prefect-client-2.20.0 → prefect_client-2.20.2}/src/prefect/_internal/concurrency/services.py +0 -0
- {prefect-client-2.20.0 → prefect_client-2.20.2}/src/prefect/_internal/concurrency/threads.py +0 -0
- {prefect-client-2.20.0 → prefect_client-2.20.2}/src/prefect/_internal/concurrency/waiters.py +0 -0
- {prefect-client-2.20.0 → prefect_client-2.20.2}/src/prefect/_internal/pydantic/__init__.py +0 -0
- {prefect-client-2.20.0 → prefect_client-2.20.2}/src/prefect/_internal/pydantic/_base_model.py +0 -0
- {prefect-client-2.20.0 → prefect_client-2.20.2}/src/prefect/_internal/pydantic/_compat.py +0 -0
- {prefect-client-2.20.0 → prefect_client-2.20.2}/src/prefect/_internal/pydantic/_flags.py +0 -0
- {prefect-client-2.20.0 → prefect_client-2.20.2}/src/prefect/_internal/pydantic/_types.py +0 -0
- {prefect-client-2.20.0 → prefect_client-2.20.2}/src/prefect/_internal/pydantic/annotations/__init__.py +0 -0
- {prefect-client-2.20.0 → prefect_client-2.20.2}/src/prefect/_internal/pydantic/annotations/pendulum.py +0 -0
- {prefect-client-2.20.0 → prefect_client-2.20.2}/src/prefect/_internal/pydantic/schemas.py +0 -0
- {prefect-client-2.20.0 → prefect_client-2.20.2}/src/prefect/_internal/pydantic/utilities/__init__.py +0 -0
- {prefect-client-2.20.0 → prefect_client-2.20.2}/src/prefect/_internal/pydantic/utilities/config_dict.py +0 -0
- {prefect-client-2.20.0 → prefect_client-2.20.2}/src/prefect/_internal/pydantic/utilities/field_validator.py +0 -0
- {prefect-client-2.20.0 → prefect_client-2.20.2}/src/prefect/_internal/pydantic/utilities/model_construct.py +0 -0
- {prefect-client-2.20.0 → prefect_client-2.20.2}/src/prefect/_internal/pydantic/utilities/model_copy.py +0 -0
- {prefect-client-2.20.0 → prefect_client-2.20.2}/src/prefect/_internal/pydantic/utilities/model_dump.py +0 -0
- {prefect-client-2.20.0 → prefect_client-2.20.2}/src/prefect/_internal/pydantic/utilities/model_dump_json.py +0 -0
- {prefect-client-2.20.0 → prefect_client-2.20.2}/src/prefect/_internal/pydantic/utilities/model_fields.py +0 -0
- {prefect-client-2.20.0 → prefect_client-2.20.2}/src/prefect/_internal/pydantic/utilities/model_fields_set.py +0 -0
- {prefect-client-2.20.0 → prefect_client-2.20.2}/src/prefect/_internal/pydantic/utilities/model_json_schema.py +0 -0
- {prefect-client-2.20.0 → prefect_client-2.20.2}/src/prefect/_internal/pydantic/utilities/model_rebuild.py +0 -0
- {prefect-client-2.20.0 → prefect_client-2.20.2}/src/prefect/_internal/pydantic/utilities/model_validate.py +0 -0
- {prefect-client-2.20.0 → prefect_client-2.20.2}/src/prefect/_internal/pydantic/utilities/model_validate_json.py +0 -0
- {prefect-client-2.20.0 → prefect_client-2.20.2}/src/prefect/_internal/pydantic/utilities/model_validator.py +0 -0
- {prefect-client-2.20.0 → prefect_client-2.20.2}/src/prefect/_internal/pydantic/utilities/type_adapter.py +0 -0
- {prefect-client-2.20.0 → prefect_client-2.20.2}/src/prefect/_internal/pydantic/v1_schema.py +0 -0
- {prefect-client-2.20.0 → prefect_client-2.20.2}/src/prefect/_internal/pydantic/v2_schema.py +0 -0
- {prefect-client-2.20.0 → prefect_client-2.20.2}/src/prefect/_internal/pydantic/v2_validated_func.py +0 -0
- {prefect-client-2.20.0 → prefect_client-2.20.2}/src/prefect/_internal/pytz.py +0 -0
- {prefect-client-2.20.0 → prefect_client-2.20.2}/src/prefect/_internal/schemas/__init__.py +0 -0
- {prefect-client-2.20.0 → prefect_client-2.20.2}/src/prefect/_internal/schemas/bases.py +0 -0
- {prefect-client-2.20.0 → prefect_client-2.20.2}/src/prefect/_internal/schemas/fields.py +0 -0
- {prefect-client-2.20.0 → prefect_client-2.20.2}/src/prefect/_internal/schemas/serializers.py +0 -0
- {prefect-client-2.20.0 → prefect_client-2.20.2}/src/prefect/_internal/schemas/validators.py +0 -0
- {prefect-client-2.20.0 → prefect_client-2.20.2}/src/prefect/_vendor/__init__.py +0 -0
- {prefect-client-2.20.0 → prefect_client-2.20.2}/src/prefect/_vendor/fastapi/__init__.py +0 -0
- {prefect-client-2.20.0 → prefect_client-2.20.2}/src/prefect/_vendor/fastapi/applications.py +0 -0
- {prefect-client-2.20.0 → prefect_client-2.20.2}/src/prefect/_vendor/fastapi/background.py +0 -0
- {prefect-client-2.20.0 → prefect_client-2.20.2}/src/prefect/_vendor/fastapi/concurrency.py +0 -0
- {prefect-client-2.20.0 → prefect_client-2.20.2}/src/prefect/_vendor/fastapi/datastructures.py +0 -0
- {prefect-client-2.20.0 → prefect_client-2.20.2}/src/prefect/_vendor/fastapi/dependencies/__init__.py +0 -0
- {prefect-client-2.20.0 → prefect_client-2.20.2}/src/prefect/_vendor/fastapi/dependencies/models.py +0 -0
- {prefect-client-2.20.0 → prefect_client-2.20.2}/src/prefect/_vendor/fastapi/dependencies/utils.py +0 -0
- {prefect-client-2.20.0 → prefect_client-2.20.2}/src/prefect/_vendor/fastapi/encoders.py +0 -0
- {prefect-client-2.20.0 → prefect_client-2.20.2}/src/prefect/_vendor/fastapi/exception_handlers.py +0 -0
- {prefect-client-2.20.0 → prefect_client-2.20.2}/src/prefect/_vendor/fastapi/exceptions.py +0 -0
- {prefect-client-2.20.0 → prefect_client-2.20.2}/src/prefect/_vendor/fastapi/logger.py +0 -0
- {prefect-client-2.20.0 → prefect_client-2.20.2}/src/prefect/_vendor/fastapi/middleware/__init__.py +0 -0
- {prefect-client-2.20.0 → prefect_client-2.20.2}/src/prefect/_vendor/fastapi/middleware/asyncexitstack.py +0 -0
- {prefect-client-2.20.0 → prefect_client-2.20.2}/src/prefect/_vendor/fastapi/middleware/cors.py +0 -0
- {prefect-client-2.20.0 → prefect_client-2.20.2}/src/prefect/_vendor/fastapi/middleware/gzip.py +0 -0
- {prefect-client-2.20.0 → prefect_client-2.20.2}/src/prefect/_vendor/fastapi/middleware/httpsredirect.py +0 -0
- {prefect-client-2.20.0 → prefect_client-2.20.2}/src/prefect/_vendor/fastapi/middleware/trustedhost.py +0 -0
- {prefect-client-2.20.0 → prefect_client-2.20.2}/src/prefect/_vendor/fastapi/middleware/wsgi.py +0 -0
- {prefect-client-2.20.0 → prefect_client-2.20.2}/src/prefect/_vendor/fastapi/openapi/__init__.py +0 -0
- {prefect-client-2.20.0 → prefect_client-2.20.2}/src/prefect/_vendor/fastapi/openapi/constants.py +0 -0
- {prefect-client-2.20.0 → prefect_client-2.20.2}/src/prefect/_vendor/fastapi/openapi/docs.py +0 -0
- {prefect-client-2.20.0 → prefect_client-2.20.2}/src/prefect/_vendor/fastapi/openapi/models.py +0 -0
- {prefect-client-2.20.0 → prefect_client-2.20.2}/src/prefect/_vendor/fastapi/openapi/utils.py +0 -0
- {prefect-client-2.20.0 → prefect_client-2.20.2}/src/prefect/_vendor/fastapi/param_functions.py +0 -0
- {prefect-client-2.20.0 → prefect_client-2.20.2}/src/prefect/_vendor/fastapi/params.py +0 -0
- {prefect-client-2.20.0/src/prefect → prefect_client-2.20.2/src/prefect/_vendor/fastapi}/py.typed +0 -0
- {prefect-client-2.20.0 → prefect_client-2.20.2}/src/prefect/_vendor/fastapi/requests.py +0 -0
- {prefect-client-2.20.0 → prefect_client-2.20.2}/src/prefect/_vendor/fastapi/responses.py +0 -0
- {prefect-client-2.20.0 → prefect_client-2.20.2}/src/prefect/_vendor/fastapi/routing.py +0 -0
- {prefect-client-2.20.0 → prefect_client-2.20.2}/src/prefect/_vendor/fastapi/security/__init__.py +0 -0
- {prefect-client-2.20.0 → prefect_client-2.20.2}/src/prefect/_vendor/fastapi/security/api_key.py +0 -0
- {prefect-client-2.20.0 → prefect_client-2.20.2}/src/prefect/_vendor/fastapi/security/base.py +0 -0
- {prefect-client-2.20.0 → prefect_client-2.20.2}/src/prefect/_vendor/fastapi/security/http.py +0 -0
- {prefect-client-2.20.0 → prefect_client-2.20.2}/src/prefect/_vendor/fastapi/security/oauth2.py +0 -0
- {prefect-client-2.20.0 → prefect_client-2.20.2}/src/prefect/_vendor/fastapi/security/open_id_connect_url.py +0 -0
- {prefect-client-2.20.0 → prefect_client-2.20.2}/src/prefect/_vendor/fastapi/security/utils.py +0 -0
- {prefect-client-2.20.0 → prefect_client-2.20.2}/src/prefect/_vendor/fastapi/staticfiles.py +0 -0
- {prefect-client-2.20.0 → prefect_client-2.20.2}/src/prefect/_vendor/fastapi/templating.py +0 -0
- {prefect-client-2.20.0 → prefect_client-2.20.2}/src/prefect/_vendor/fastapi/testclient.py +0 -0
- {prefect-client-2.20.0 → prefect_client-2.20.2}/src/prefect/_vendor/fastapi/types.py +0 -0
- {prefect-client-2.20.0 → prefect_client-2.20.2}/src/prefect/_vendor/fastapi/utils.py +0 -0
- {prefect-client-2.20.0 → prefect_client-2.20.2}/src/prefect/_vendor/fastapi/websockets.py +0 -0
- {prefect-client-2.20.0 → prefect_client-2.20.2}/src/prefect/_vendor/starlette/__init__.py +0 -0
- {prefect-client-2.20.0 → prefect_client-2.20.2}/src/prefect/_vendor/starlette/_compat.py +0 -0
- {prefect-client-2.20.0 → prefect_client-2.20.2}/src/prefect/_vendor/starlette/_exception_handler.py +0 -0
- {prefect-client-2.20.0 → prefect_client-2.20.2}/src/prefect/_vendor/starlette/_utils.py +0 -0
- {prefect-client-2.20.0 → prefect_client-2.20.2}/src/prefect/_vendor/starlette/applications.py +0 -0
- {prefect-client-2.20.0 → prefect_client-2.20.2}/src/prefect/_vendor/starlette/authentication.py +0 -0
- {prefect-client-2.20.0 → prefect_client-2.20.2}/src/prefect/_vendor/starlette/background.py +0 -0
- {prefect-client-2.20.0 → prefect_client-2.20.2}/src/prefect/_vendor/starlette/concurrency.py +0 -0
- {prefect-client-2.20.0 → prefect_client-2.20.2}/src/prefect/_vendor/starlette/config.py +0 -0
- {prefect-client-2.20.0 → prefect_client-2.20.2}/src/prefect/_vendor/starlette/convertors.py +0 -0
- {prefect-client-2.20.0 → prefect_client-2.20.2}/src/prefect/_vendor/starlette/datastructures.py +0 -0
- {prefect-client-2.20.0 → prefect_client-2.20.2}/src/prefect/_vendor/starlette/endpoints.py +0 -0
- {prefect-client-2.20.0 → prefect_client-2.20.2}/src/prefect/_vendor/starlette/exceptions.py +0 -0
- {prefect-client-2.20.0 → prefect_client-2.20.2}/src/prefect/_vendor/starlette/formparsers.py +0 -0
- {prefect-client-2.20.0 → prefect_client-2.20.2}/src/prefect/_vendor/starlette/middleware/__init__.py +0 -0
- {prefect-client-2.20.0 → prefect_client-2.20.2}/src/prefect/_vendor/starlette/middleware/authentication.py +0 -0
- {prefect-client-2.20.0 → prefect_client-2.20.2}/src/prefect/_vendor/starlette/middleware/base.py +0 -0
- {prefect-client-2.20.0 → prefect_client-2.20.2}/src/prefect/_vendor/starlette/middleware/cors.py +0 -0
- {prefect-client-2.20.0 → prefect_client-2.20.2}/src/prefect/_vendor/starlette/middleware/errors.py +0 -0
- {prefect-client-2.20.0 → prefect_client-2.20.2}/src/prefect/_vendor/starlette/middleware/exceptions.py +0 -0
- {prefect-client-2.20.0 → prefect_client-2.20.2}/src/prefect/_vendor/starlette/middleware/gzip.py +0 -0
- {prefect-client-2.20.0 → prefect_client-2.20.2}/src/prefect/_vendor/starlette/middleware/httpsredirect.py +0 -0
- {prefect-client-2.20.0 → prefect_client-2.20.2}/src/prefect/_vendor/starlette/middleware/sessions.py +0 -0
- {prefect-client-2.20.0 → prefect_client-2.20.2}/src/prefect/_vendor/starlette/middleware/trustedhost.py +0 -0
- {prefect-client-2.20.0 → prefect_client-2.20.2}/src/prefect/_vendor/starlette/middleware/wsgi.py +0 -0
- /prefect-client-2.20.0/src/prefect/concurrency/__init__.py → /prefect_client-2.20.2/src/prefect/_vendor/starlette/py.typed +0 -0
- {prefect-client-2.20.0 → prefect_client-2.20.2}/src/prefect/_vendor/starlette/requests.py +0 -0
- {prefect-client-2.20.0 → prefect_client-2.20.2}/src/prefect/_vendor/starlette/responses.py +0 -0
- {prefect-client-2.20.0 → prefect_client-2.20.2}/src/prefect/_vendor/starlette/routing.py +0 -0
- {prefect-client-2.20.0 → prefect_client-2.20.2}/src/prefect/_vendor/starlette/schemas.py +0 -0
- {prefect-client-2.20.0 → prefect_client-2.20.2}/src/prefect/_vendor/starlette/staticfiles.py +0 -0
- {prefect-client-2.20.0 → prefect_client-2.20.2}/src/prefect/_vendor/starlette/status.py +0 -0
- {prefect-client-2.20.0 → prefect_client-2.20.2}/src/prefect/_vendor/starlette/templating.py +0 -0
- {prefect-client-2.20.0 → prefect_client-2.20.2}/src/prefect/_vendor/starlette/testclient.py +0 -0
- {prefect-client-2.20.0 → prefect_client-2.20.2}/src/prefect/_vendor/starlette/types.py +0 -0
- {prefect-client-2.20.0 → prefect_client-2.20.2}/src/prefect/_vendor/starlette/websockets.py +0 -0
- {prefect-client-2.20.0 → prefect_client-2.20.2}/src/prefect/_version.py +0 -0
- {prefect-client-2.20.0 → prefect_client-2.20.2}/src/prefect/agent.py +0 -0
- {prefect-client-2.20.0 → prefect_client-2.20.2}/src/prefect/artifacts.py +0 -0
- {prefect-client-2.20.0 → prefect_client-2.20.2}/src/prefect/automations.py +0 -0
- {prefect-client-2.20.0 → prefect_client-2.20.2}/src/prefect/blocks/__init__.py +0 -0
- {prefect-client-2.20.0 → prefect_client-2.20.2}/src/prefect/blocks/abstract.py +0 -0
- {prefect-client-2.20.0 → prefect_client-2.20.2}/src/prefect/blocks/core.py +0 -0
- {prefect-client-2.20.0 → prefect_client-2.20.2}/src/prefect/blocks/fields.py +0 -0
- {prefect-client-2.20.0 → prefect_client-2.20.2}/src/prefect/blocks/kubernetes.py +0 -0
- {prefect-client-2.20.0 → prefect_client-2.20.2}/src/prefect/blocks/notifications.py +0 -0
- {prefect-client-2.20.0 → prefect_client-2.20.2}/src/prefect/blocks/system.py +0 -0
- {prefect-client-2.20.0 → prefect_client-2.20.2}/src/prefect/blocks/webhook.py +0 -0
- {prefect-client-2.20.0 → prefect_client-2.20.2}/src/prefect/client/__init__.py +0 -0
- {prefect-client-2.20.0 → prefect_client-2.20.2}/src/prefect/client/base.py +0 -0
- {prefect-client-2.20.0 → prefect_client-2.20.2}/src/prefect/client/cloud.py +0 -0
- {prefect-client-2.20.0 → prefect_client-2.20.2}/src/prefect/client/collections.py +0 -0
- {prefect-client-2.20.0 → prefect_client-2.20.2}/src/prefect/client/constants.py +0 -0
- {prefect-client-2.20.0 → prefect_client-2.20.2}/src/prefect/client/orchestration.py +0 -0
- {prefect-client-2.20.0 → prefect_client-2.20.2}/src/prefect/client/schemas/__init__.py +0 -0
- {prefect-client-2.20.0 → prefect_client-2.20.2}/src/prefect/client/schemas/actions.py +0 -0
- {prefect-client-2.20.0 → prefect_client-2.20.2}/src/prefect/client/schemas/filters.py +0 -0
- {prefect-client-2.20.0 → prefect_client-2.20.2}/src/prefect/client/schemas/objects.py +0 -0
- {prefect-client-2.20.0 → prefect_client-2.20.2}/src/prefect/client/schemas/responses.py +0 -0
- {prefect-client-2.20.0 → prefect_client-2.20.2}/src/prefect/client/schemas/schedules.py +0 -0
- {prefect-client-2.20.0 → prefect_client-2.20.2}/src/prefect/client/schemas/sorting.py +0 -0
- {prefect-client-2.20.0 → prefect_client-2.20.2}/src/prefect/client/subscriptions.py +0 -0
- {prefect-client-2.20.0 → prefect_client-2.20.2}/src/prefect/client/utilities.py +0 -0
- {prefect-client-2.20.0/src/prefect/deprecated → prefect_client-2.20.2/src/prefect/concurrency}/__init__.py +0 -0
- {prefect-client-2.20.0 → prefect_client-2.20.2}/src/prefect/concurrency/asyncio.py +0 -0
- {prefect-client-2.20.0 → prefect_client-2.20.2}/src/prefect/concurrency/events.py +0 -0
- {prefect-client-2.20.0 → prefect_client-2.20.2}/src/prefect/concurrency/services.py +0 -0
- {prefect-client-2.20.0 → prefect_client-2.20.2}/src/prefect/concurrency/sync.py +0 -0
- {prefect-client-2.20.0 → prefect_client-2.20.2}/src/prefect/context.py +0 -0
- {prefect-client-2.20.0 → prefect_client-2.20.2}/src/prefect/deployments/__init__.py +0 -0
- {prefect-client-2.20.0 → prefect_client-2.20.2}/src/prefect/deployments/base.py +0 -0
- {prefect-client-2.20.0 → prefect_client-2.20.2}/src/prefect/deployments/deployments.py +0 -0
- {prefect-client-2.20.0 → prefect_client-2.20.2}/src/prefect/deployments/runner.py +0 -0
- {prefect-client-2.20.0 → prefect_client-2.20.2}/src/prefect/deployments/schedules.py +0 -0
- {prefect-client-2.20.0 → prefect_client-2.20.2}/src/prefect/deployments/steps/__init__.py +0 -0
- {prefect-client-2.20.0 → prefect_client-2.20.2}/src/prefect/deployments/steps/core.py +0 -0
- {prefect-client-2.20.0 → prefect_client-2.20.2}/src/prefect/deployments/steps/pull.py +0 -0
- {prefect-client-2.20.0 → prefect_client-2.20.2}/src/prefect/deployments/steps/utility.py +0 -0
- {prefect-client-2.20.0/src/prefect/events/cli → prefect_client-2.20.2/src/prefect/deprecated}/__init__.py +0 -0
- {prefect-client-2.20.0 → prefect_client-2.20.2}/src/prefect/deprecated/data_documents.py +0 -0
- {prefect-client-2.20.0 → prefect_client-2.20.2}/src/prefect/deprecated/packaging/__init__.py +0 -0
- {prefect-client-2.20.0 → prefect_client-2.20.2}/src/prefect/deprecated/packaging/base.py +0 -0
- {prefect-client-2.20.0 → prefect_client-2.20.2}/src/prefect/deprecated/packaging/docker.py +0 -0
- {prefect-client-2.20.0 → prefect_client-2.20.2}/src/prefect/deprecated/packaging/file.py +0 -0
- {prefect-client-2.20.0 → prefect_client-2.20.2}/src/prefect/deprecated/packaging/orion.py +0 -0
- {prefect-client-2.20.0 → prefect_client-2.20.2}/src/prefect/deprecated/packaging/serializers.py +0 -0
- {prefect-client-2.20.0 → prefect_client-2.20.2}/src/prefect/engine.py +0 -0
- {prefect-client-2.20.0 → prefect_client-2.20.2}/src/prefect/events/__init__.py +0 -0
- {prefect-client-2.20.0 → prefect_client-2.20.2}/src/prefect/events/actions.py +0 -0
- {prefect-client-2.20.0/src/prefect/utilities → prefect_client-2.20.2/src/prefect/events/cli}/__init__.py +0 -0
- {prefect-client-2.20.0 → prefect_client-2.20.2}/src/prefect/events/cli/automations.py +0 -0
- {prefect-client-2.20.0 → prefect_client-2.20.2}/src/prefect/events/clients.py +0 -0
- {prefect-client-2.20.0 → prefect_client-2.20.2}/src/prefect/events/filters.py +0 -0
- {prefect-client-2.20.0 → prefect_client-2.20.2}/src/prefect/events/instrument.py +0 -0
- {prefect-client-2.20.0 → prefect_client-2.20.2}/src/prefect/events/related.py +0 -0
- {prefect-client-2.20.0 → prefect_client-2.20.2}/src/prefect/events/schemas/__init__.py +0 -0
- {prefect-client-2.20.0 → prefect_client-2.20.2}/src/prefect/events/schemas/automations.py +0 -0
- {prefect-client-2.20.0 → prefect_client-2.20.2}/src/prefect/events/schemas/deployment_triggers.py +0 -0
- {prefect-client-2.20.0 → prefect_client-2.20.2}/src/prefect/events/schemas/events.py +0 -0
- {prefect-client-2.20.0 → prefect_client-2.20.2}/src/prefect/events/schemas/labelling.py +0 -0
- {prefect-client-2.20.0 → prefect_client-2.20.2}/src/prefect/events/utilities.py +0 -0
- {prefect-client-2.20.0 → prefect_client-2.20.2}/src/prefect/events/worker.py +0 -0
- {prefect-client-2.20.0 → prefect_client-2.20.2}/src/prefect/exceptions.py +0 -0
- {prefect-client-2.20.0 → prefect_client-2.20.2}/src/prefect/filesystems.py +0 -0
- {prefect-client-2.20.0 → prefect_client-2.20.2}/src/prefect/flow_runs.py +0 -0
- {prefect-client-2.20.0 → prefect_client-2.20.2}/src/prefect/flows.py +0 -0
- {prefect-client-2.20.0 → prefect_client-2.20.2}/src/prefect/futures.py +0 -0
- {prefect-client-2.20.0 → prefect_client-2.20.2}/src/prefect/infrastructure/__init__.py +0 -0
- {prefect-client-2.20.0 → prefect_client-2.20.2}/src/prefect/infrastructure/base.py +0 -0
- {prefect-client-2.20.0 → prefect_client-2.20.2}/src/prefect/infrastructure/container.py +0 -0
- {prefect-client-2.20.0 → prefect_client-2.20.2}/src/prefect/infrastructure/process.py +0 -0
- {prefect-client-2.20.0 → prefect_client-2.20.2}/src/prefect/infrastructure/provisioners/__init__.py +0 -0
- {prefect-client-2.20.0 → prefect_client-2.20.2}/src/prefect/infrastructure/provisioners/cloud_run.py +0 -0
- {prefect-client-2.20.0 → prefect_client-2.20.2}/src/prefect/infrastructure/provisioners/container_instance.py +0 -0
- {prefect-client-2.20.0 → prefect_client-2.20.2}/src/prefect/infrastructure/provisioners/ecs.py +0 -0
- {prefect-client-2.20.0 → prefect_client-2.20.2}/src/prefect/infrastructure/provisioners/modal.py +0 -0
- {prefect-client-2.20.0 → prefect_client-2.20.2}/src/prefect/input/__init__.py +0 -0
- {prefect-client-2.20.0 → prefect_client-2.20.2}/src/prefect/input/actions.py +0 -0
- {prefect-client-2.20.0 → prefect_client-2.20.2}/src/prefect/input/run_input.py +0 -0
- {prefect-client-2.20.0 → prefect_client-2.20.2}/src/prefect/logging/__init__.py +0 -0
- {prefect-client-2.20.0 → prefect_client-2.20.2}/src/prefect/logging/configuration.py +0 -0
- {prefect-client-2.20.0 → prefect_client-2.20.2}/src/prefect/logging/filters.py +0 -0
- {prefect-client-2.20.0 → prefect_client-2.20.2}/src/prefect/logging/formatters.py +0 -0
- {prefect-client-2.20.0 → prefect_client-2.20.2}/src/prefect/logging/handlers.py +0 -0
- {prefect-client-2.20.0 → prefect_client-2.20.2}/src/prefect/logging/highlighters.py +0 -0
- {prefect-client-2.20.0 → prefect_client-2.20.2}/src/prefect/logging/loggers.py +0 -0
- {prefect-client-2.20.0 → prefect_client-2.20.2}/src/prefect/logging/logging.yml +0 -0
- {prefect-client-2.20.0 → prefect_client-2.20.2}/src/prefect/manifests.py +0 -0
- {prefect-client-2.20.0 → prefect_client-2.20.2}/src/prefect/new_flow_engine.py +0 -0
- {prefect-client-2.20.0 → prefect_client-2.20.2}/src/prefect/new_task_engine.py +0 -0
- {prefect-client-2.20.0 → prefect_client-2.20.2}/src/prefect/plugins.py +0 -0
- {prefect-client-2.20.0 → prefect_client-2.20.2}/src/prefect/profiles.toml +0 -0
- {prefect-client-2.20.0 → prefect_client-2.20.2}/src/prefect/pydantic/__init__.py +0 -0
- {prefect-client-2.20.0 → prefect_client-2.20.2}/src/prefect/pydantic/main.py +0 -0
- {prefect-client-2.20.0 → prefect_client-2.20.2}/src/prefect/results.py +0 -0
- {prefect-client-2.20.0 → prefect_client-2.20.2}/src/prefect/runner/__init__.py +0 -0
- {prefect-client-2.20.0 → prefect_client-2.20.2}/src/prefect/runner/runner.py +0 -0
- {prefect-client-2.20.0 → prefect_client-2.20.2}/src/prefect/runner/server.py +0 -0
- {prefect-client-2.20.0 → prefect_client-2.20.2}/src/prefect/runner/submit.py +0 -0
- {prefect-client-2.20.0 → prefect_client-2.20.2}/src/prefect/runner/utils.py +0 -0
- {prefect-client-2.20.0 → prefect_client-2.20.2}/src/prefect/runtime/__init__.py +0 -0
- {prefect-client-2.20.0 → prefect_client-2.20.2}/src/prefect/runtime/deployment.py +0 -0
- {prefect-client-2.20.0 → prefect_client-2.20.2}/src/prefect/runtime/task_run.py +0 -0
- {prefect-client-2.20.0 → prefect_client-2.20.2}/src/prefect/serializers.py +0 -0
- {prefect-client-2.20.0 → prefect_client-2.20.2}/src/prefect/server/api/collections_data/views/aggregate-worker-metadata.json +0 -0
- {prefect-client-2.20.0 → prefect_client-2.20.2}/src/prefect/server/api/static/prefect-logo-mark-gradient.png +0 -0
- {prefect-client-2.20.0 → prefect_client-2.20.2}/src/prefect/software/__init__.py +0 -0
- {prefect-client-2.20.0 → prefect_client-2.20.2}/src/prefect/software/base.py +0 -0
- {prefect-client-2.20.0 → prefect_client-2.20.2}/src/prefect/software/conda.py +0 -0
- {prefect-client-2.20.0 → prefect_client-2.20.2}/src/prefect/software/pip.py +0 -0
- {prefect-client-2.20.0 → prefect_client-2.20.2}/src/prefect/software/python.py +0 -0
- {prefect-client-2.20.0 → prefect_client-2.20.2}/src/prefect/states.py +0 -0
- {prefect-client-2.20.0 → prefect_client-2.20.2}/src/prefect/task_engine.py +0 -0
- {prefect-client-2.20.0 → prefect_client-2.20.2}/src/prefect/task_runners.py +0 -0
- {prefect-client-2.20.0 → prefect_client-2.20.2}/src/prefect/task_server.py +0 -0
- {prefect-client-2.20.0 → prefect_client-2.20.2}/src/prefect/tasks.py +0 -0
- {prefect-client-2.20.0 → prefect_client-2.20.2}/src/prefect/types/__init__.py +0 -0
- {prefect-client-2.20.0 → prefect_client-2.20.2}/src/prefect/utilities/annotations.py +0 -0
- {prefect-client-2.20.0 → prefect_client-2.20.2}/src/prefect/utilities/asyncutils.py +0 -0
- {prefect-client-2.20.0 → prefect_client-2.20.2}/src/prefect/utilities/callables.py +0 -0
- {prefect-client-2.20.0 → prefect_client-2.20.2}/src/prefect/utilities/collections.py +0 -0
- {prefect-client-2.20.0 → prefect_client-2.20.2}/src/prefect/utilities/compat.py +0 -0
- {prefect-client-2.20.0 → prefect_client-2.20.2}/src/prefect/utilities/context.py +0 -0
- {prefect-client-2.20.0 → prefect_client-2.20.2}/src/prefect/utilities/dispatch.py +0 -0
- {prefect-client-2.20.0 → prefect_client-2.20.2}/src/prefect/utilities/dockerutils.py +0 -0
- {prefect-client-2.20.0 → prefect_client-2.20.2}/src/prefect/utilities/engine.py +0 -0
- {prefect-client-2.20.0 → prefect_client-2.20.2}/src/prefect/utilities/filesystem.py +0 -0
- {prefect-client-2.20.0 → prefect_client-2.20.2}/src/prefect/utilities/hashing.py +0 -0
- {prefect-client-2.20.0 → prefect_client-2.20.2}/src/prefect/utilities/importtools.py +0 -0
- {prefect-client-2.20.0 → prefect_client-2.20.2}/src/prefect/utilities/math.py +0 -0
- {prefect-client-2.20.0 → prefect_client-2.20.2}/src/prefect/utilities/names.py +0 -0
- {prefect-client-2.20.0 → prefect_client-2.20.2}/src/prefect/utilities/processutils.py +0 -0
- {prefect-client-2.20.0 → prefect_client-2.20.2}/src/prefect/utilities/pydantic.py +0 -0
- {prefect-client-2.20.0 → prefect_client-2.20.2}/src/prefect/utilities/render_swagger.py +0 -0
- {prefect-client-2.20.0 → prefect_client-2.20.2}/src/prefect/utilities/schema_tools/__init__.py +0 -0
- {prefect-client-2.20.0 → prefect_client-2.20.2}/src/prefect/utilities/schema_tools/hydration.py +0 -0
- {prefect-client-2.20.0 → prefect_client-2.20.2}/src/prefect/utilities/schema_tools/validation.py +0 -0
- {prefect-client-2.20.0 → prefect_client-2.20.2}/src/prefect/utilities/services.py +0 -0
- {prefect-client-2.20.0 → prefect_client-2.20.2}/src/prefect/utilities/slugify.py +0 -0
- {prefect-client-2.20.0 → prefect_client-2.20.2}/src/prefect/utilities/templating.py +0 -0
- {prefect-client-2.20.0 → prefect_client-2.20.2}/src/prefect/utilities/text.py +0 -0
- {prefect-client-2.20.0 → prefect_client-2.20.2}/src/prefect/utilities/timeout.py +0 -0
- {prefect-client-2.20.0 → prefect_client-2.20.2}/src/prefect/utilities/visualization.py +0 -0
- {prefect-client-2.20.0 → prefect_client-2.20.2}/src/prefect/variables.py +0 -0
- {prefect-client-2.20.0 → prefect_client-2.20.2}/src/prefect/workers/__init__.py +0 -0
- {prefect-client-2.20.0 → prefect_client-2.20.2}/src/prefect/workers/block.py +0 -0
- {prefect-client-2.20.0 → prefect_client-2.20.2}/src/prefect/workers/process.py +0 -0
- {prefect-client-2.20.0 → prefect_client-2.20.2}/src/prefect/workers/server.py +0 -0
- {prefect-client-2.20.0 → prefect_client-2.20.2}/src/prefect/workers/utilities.py +0 -0
- {prefect-client-2.20.0 → prefect_client-2.20.2}/src/prefect_client.egg-info/dependency_links.txt +0 -0
- {prefect-client-2.20.0 → prefect_client-2.20.2}/src/prefect_client.egg-info/top_level.txt +0 -0
- {prefect-client-2.20.0 → prefect_client-2.20.2}/versioneer.py +0 -0
@@ -0,0 +1,173 @@
|
|
1
|
+
Metadata-Version: 2.1
|
2
|
+
Name: prefect-client
|
3
|
+
Version: 2.20.2
|
4
|
+
Summary: Workflow orchestration and management.
|
5
|
+
Home-page: https://www.prefect.io
|
6
|
+
Author: Prefect Technologies, Inc.
|
7
|
+
Author-email: help@prefect.io
|
8
|
+
Project-URL: Changelog, https://github.com/PrefectHQ/prefect/blob/main/RELEASE-NOTES.md
|
9
|
+
Project-URL: Documentation, https://docs.prefect.io
|
10
|
+
Project-URL: Source, https://github.com/PrefectHQ/prefect
|
11
|
+
Project-URL: Tracker, https://github.com/PrefectHQ/prefect/issues
|
12
|
+
Classifier: Natural Language :: English
|
13
|
+
Classifier: Intended Audience :: Developers
|
14
|
+
Classifier: Intended Audience :: System Administrators
|
15
|
+
Classifier: License :: OSI Approved :: Apache Software License
|
16
|
+
Classifier: Programming Language :: Python :: 3 :: Only
|
17
|
+
Classifier: Programming Language :: Python :: 3.8
|
18
|
+
Classifier: Programming Language :: Python :: 3.9
|
19
|
+
Classifier: Programming Language :: Python :: 3.10
|
20
|
+
Classifier: Programming Language :: Python :: 3.11
|
21
|
+
Classifier: Topic :: Software Development :: Libraries
|
22
|
+
Requires-Python: >=3.8
|
23
|
+
Description-Content-Type: text/markdown
|
24
|
+
License-File: LICENSE
|
25
|
+
Requires-Dist: anyio<5.0.0,>=4.4.0
|
26
|
+
Requires-Dist: asgi-lifespan<3.0,>=1.0
|
27
|
+
Requires-Dist: cachetools<6.0,>=5.3
|
28
|
+
Requires-Dist: cloudpickle<4.0,>=2.0
|
29
|
+
Requires-Dist: coolname<3.0.0,>=1.0.4
|
30
|
+
Requires-Dist: croniter<3.0.0,>=1.0.12
|
31
|
+
Requires-Dist: fsspec>=2022.5.0
|
32
|
+
Requires-Dist: exceptiongroup>=1.2.1
|
33
|
+
Requires-Dist: graphviz>=0.20.1
|
34
|
+
Requires-Dist: griffe<0.48.0,>=0.20.0
|
35
|
+
Requires-Dist: httpcore<2.0.0,>=1.0.5
|
36
|
+
Requires-Dist: httpx[http2]!=0.23.2,>=0.23
|
37
|
+
Requires-Dist: importlib_metadata>=4.4; python_version < "3.10"
|
38
|
+
Requires-Dist: importlib-resources<6.2.0,>=6.1.3
|
39
|
+
Requires-Dist: jsonpatch<2.0,>=1.32
|
40
|
+
Requires-Dist: jsonschema<5.0.0,>=4.0.0
|
41
|
+
Requires-Dist: orjson<4.0,>=3.7
|
42
|
+
Requires-Dist: packaging<24.3,>=21.3
|
43
|
+
Requires-Dist: pathspec>=0.8.0
|
44
|
+
Requires-Dist: pendulum<3.0; python_version < "3.12"
|
45
|
+
Requires-Dist: pendulum<4,>=3.0.0; python_version >= "3.12"
|
46
|
+
Requires-Dist: pydantic[email]!=2.0.0,!=2.0.1,!=2.1.0,<3.0.0,>=1.10.0
|
47
|
+
Requires-Dist: pydantic_core<3.0.0,>=2.12.0
|
48
|
+
Requires-Dist: python_dateutil<3.0.0,>=2.8.2
|
49
|
+
Requires-Dist: python-slugify<9.0,>=5.0
|
50
|
+
Requires-Dist: pyyaml<7.0.0,>=5.4.1
|
51
|
+
Requires-Dist: rfc3339-validator<0.2.0,>=0.1.4
|
52
|
+
Requires-Dist: rich<14.0,>=11.0
|
53
|
+
Requires-Dist: ruamel.yaml>=0.17.0
|
54
|
+
Requires-Dist: sniffio<2.0.0,>=1.3.0
|
55
|
+
Requires-Dist: toml>=0.10.0
|
56
|
+
Requires-Dist: typing_extensions<5.0.0,>=4.5.0
|
57
|
+
Requires-Dist: ujson<6.0.0,>=5.8.0
|
58
|
+
Requires-Dist: uvicorn!=0.29.0,>=0.14.0
|
59
|
+
Requires-Dist: websockets<13.0,>=10.4
|
60
|
+
Requires-Dist: itsdangerous
|
61
|
+
Requires-Dist: python-multipart>=0.0.7
|
62
|
+
Provides-Extra: notifications
|
63
|
+
Requires-Dist: apprise<2.0.0,>=1.1.0; extra == "notifications"
|
64
|
+
|
65
|
+
<p align="center"><img src="https://github.com/PrefectHQ/prefect/assets/3407835/c654cbc6-63e8-4ada-a92a-efd2f8f24b85" width=1000></p>
|
66
|
+
|
67
|
+
<p align="center">
|
68
|
+
<a href="https://pypi.python.org/pypi/prefect-client/" alt="PyPI version">
|
69
|
+
<img alt="PyPI" src="https://img.shields.io/pypi/v/prefect-client?color=0052FF&labelColor=090422"></a>
|
70
|
+
<a href="https://github.com/prefecthq/prefect/" alt="Stars">
|
71
|
+
<img src="https://img.shields.io/github/stars/prefecthq/prefect?color=0052FF&labelColor=090422" /></a>
|
72
|
+
<a href="https://pepy.tech/badge/prefect-client/" alt="Downloads">
|
73
|
+
<img src="https://img.shields.io/pypi/dm/prefect-client?color=0052FF&labelColor=090422" /></a>
|
74
|
+
<a href="https://github.com/prefecthq/prefect/pulse" alt="Activity">
|
75
|
+
<img src="https://img.shields.io/github/commit-activity/m/prefecthq/prefect?color=0052FF&labelColor=090422" /></a>
|
76
|
+
<br>
|
77
|
+
<a href="https://prefect.io/slack" alt="Slack">
|
78
|
+
<img src="https://img.shields.io/badge/slack-join_community-red.svg?color=0052FF&labelColor=090422&logo=slack" /></a>
|
79
|
+
<a href="https://discourse.prefect.io/" alt="Discourse">
|
80
|
+
<img src="https://img.shields.io/badge/discourse-browse_forum-red.svg?color=0052FF&labelColor=090422&logo=discourse" /></a>
|
81
|
+
<a href="https://www.youtube.com/c/PrefectIO/" alt="YouTube">
|
82
|
+
<img src="https://img.shields.io/badge/youtube-watch_videos-red.svg?color=0052FF&labelColor=090422&logo=youtube" /></a>
|
83
|
+
</p>
|
84
|
+
|
85
|
+
# prefect-client
|
86
|
+
|
87
|
+
The `prefect-client` package is a minimal-installation of `prefect` which is designed for interacting with Prefect Cloud
|
88
|
+
or remote any `prefect` server. It sheds some functionality and dependencies in exchange for a smaller installation size,
|
89
|
+
making it ideal for use in lightweight or ephemeral environments. These characteristics make it ideal for use in lambdas
|
90
|
+
or other resource-constrained environments.
|
91
|
+
|
92
|
+
|
93
|
+
## Getting started
|
94
|
+
|
95
|
+
`prefect-client` shares the same installation requirements as prefect. To install, make sure you are on Python 3.8 or
|
96
|
+
later and run the following command:
|
97
|
+
|
98
|
+
```bash
|
99
|
+
pip install prefect-client
|
100
|
+
```
|
101
|
+
|
102
|
+
Next, ensure that your `prefect-client` has access to a remote `prefect` server by exporting the `PREFECT_API_KEY`
|
103
|
+
(if using Prefect Cloud) and `PREFECT_API_URL` environment variables. Once those are set, use the package in your code as
|
104
|
+
you would normally use `prefect`!
|
105
|
+
|
106
|
+
|
107
|
+
For example, to remotely trigger a run a deployment:
|
108
|
+
|
109
|
+
```python
|
110
|
+
from prefect.deployments import run_deployment
|
111
|
+
|
112
|
+
|
113
|
+
def my_lambda(event):
|
114
|
+
...
|
115
|
+
run_deployment(
|
116
|
+
name="my-flow/my-deployment",
|
117
|
+
parameters={"foo": "bar"},
|
118
|
+
timeout=0,
|
119
|
+
)
|
120
|
+
|
121
|
+
my_lambda({})
|
122
|
+
```
|
123
|
+
|
124
|
+
To emit events in an event driven system:
|
125
|
+
|
126
|
+
```python
|
127
|
+
from prefect.events import emit_event
|
128
|
+
|
129
|
+
|
130
|
+
def something_happened():
|
131
|
+
emit_event("my-event", resource={"prefect.resource.id": "foo.bar"})
|
132
|
+
|
133
|
+
something_happened()
|
134
|
+
```
|
135
|
+
|
136
|
+
|
137
|
+
Or just interact with a `prefect` API:
|
138
|
+
```python
|
139
|
+
from prefect.client.orchestration import get_client
|
140
|
+
|
141
|
+
|
142
|
+
async def query_api():
|
143
|
+
async with get_client() as client:
|
144
|
+
limits = await client.read_concurrency_limits(limit=10, offset=0)
|
145
|
+
print(limits)
|
146
|
+
|
147
|
+
|
148
|
+
query_api()
|
149
|
+
```
|
150
|
+
|
151
|
+
|
152
|
+
## Known limitations
|
153
|
+
By design, `prefect-client` omits all CLI and server components. This means that the CLI is not available for use
|
154
|
+
and attempts to access server objects will fail. Furthermore, some classes, methods, and objects may be available
|
155
|
+
for import in `prefect-client` but may not be "runnable" if they tap into server-oriented functionality. If you
|
156
|
+
encounter such a limitation, feel free to [open an issue](https://github.com/PrefectHQ/prefect/issues/new/choose)
|
157
|
+
describing the functionality you are interested in using and we will do our best to make it available.
|
158
|
+
|
159
|
+
|
160
|
+
## Next steps
|
161
|
+
|
162
|
+
There's lots more you can do to orchestrate and observe your workflows with Prefect!
|
163
|
+
Start with our [friendly tutorial](https://docs.prefect.io/tutorials) or explore the [core concepts of Prefect workflows](https://docs.prefect.io/concepts/).
|
164
|
+
|
165
|
+
## Join the community
|
166
|
+
|
167
|
+
Prefect is made possible by the fastest growing community of thousands of friendly data engineers. Join us in building a new kind of workflow system. The [Prefect Slack community](https://prefect.io/slack) is a fantastic place to learn more about Prefect, ask questions, or get help with workflow design. All community forums, including code contributions, issue discussions, and slack messages are subject to our [Code of Conduct](https://discourse.prefect.io/faq).
|
168
|
+
|
169
|
+
## Contribute
|
170
|
+
|
171
|
+
See our [documentation on contributing to Prefect](https://docs.prefect.io/contributing/overview/).
|
172
|
+
|
173
|
+
Thanks for being part of the mission to build a new kind of workflow system and, of course, **happy engineering!**
|
@@ -586,7 +586,7 @@ class KubernetesJob(Infrastructure):
|
|
586
586
|
"prefect-job-"
|
587
587
|
# We generate a name using a hash of the primary job settings
|
588
588
|
+ stable_hash(
|
589
|
-
*self.command,
|
589
|
+
*self.command if self.command else "",
|
590
590
|
*self.env.keys(),
|
591
591
|
*[v for v in self.env.values() if v is not None],
|
592
592
|
)
|
File without changes
|
@@ -285,6 +285,10 @@ class GitRepository:
|
|
285
285
|
"branch": self._branch,
|
286
286
|
}
|
287
287
|
}
|
288
|
+
if self._include_submodules:
|
289
|
+
pull_step["prefect.deployments.steps.git_clone"][
|
290
|
+
"include_submodules"
|
291
|
+
] = self._include_submodules
|
288
292
|
if isinstance(self._credentials, Block):
|
289
293
|
pull_step["prefect.deployments.steps.git_clone"][
|
290
294
|
"credentials"
|
@@ -12,12 +12,14 @@ Available attributes:
|
|
12
12
|
- `scheduled_start_time`: the flow run's expected scheduled start time; defaults to now if not present
|
13
13
|
- `name`: the name of the flow run
|
14
14
|
- `flow_name`: the name of the flow
|
15
|
+
- `flow_version`: the version of the flow
|
15
16
|
- `parameters`: the parameters that were passed to this run; note that these do not necessarily
|
16
17
|
include default values set on the flow function, only the parameter values explicitly passed for the run
|
17
18
|
- `parent_flow_run_id`: the ID of the flow run that triggered this run, if any
|
18
19
|
- `parent_deployment_id`: the ID of the deployment that triggered this run, if any
|
19
20
|
- `run_count`: the number of times this flow run has been run
|
20
21
|
"""
|
22
|
+
|
21
23
|
import os
|
22
24
|
from typing import Any, Dict, List, Optional
|
23
25
|
|
@@ -34,6 +36,7 @@ __all__ = [
|
|
34
36
|
"scheduled_start_time",
|
35
37
|
"name",
|
36
38
|
"flow_name",
|
39
|
+
"flow_version",
|
37
40
|
"parameters",
|
38
41
|
"parent_flow_run_id",
|
39
42
|
"parent_deployment_id",
|
@@ -188,6 +191,21 @@ def get_flow_name() -> Optional[str]:
|
|
188
191
|
return flow_run_ctx.flow.name
|
189
192
|
|
190
193
|
|
194
|
+
def get_flow_version() -> Optional[str]:
|
195
|
+
flow_run_ctx = FlowRunContext.get()
|
196
|
+
run_id = get_id()
|
197
|
+
if flow_run_ctx is None and run_id is None:
|
198
|
+
return None
|
199
|
+
elif flow_run_ctx is None:
|
200
|
+
flow = from_sync.call_soon_in_loop_thread(
|
201
|
+
create_call(_get_flow_from_run, run_id)
|
202
|
+
).result()
|
203
|
+
|
204
|
+
return flow.version
|
205
|
+
else:
|
206
|
+
return flow_run_ctx.flow.version
|
207
|
+
|
208
|
+
|
191
209
|
def get_scheduled_start_time() -> pendulum.DateTime:
|
192
210
|
flow_run_ctx = FlowRunContext.get()
|
193
211
|
run_id = get_id()
|
@@ -271,6 +289,7 @@ FIELDS = {
|
|
271
289
|
"scheduled_start_time": get_scheduled_start_time,
|
272
290
|
"name": get_name,
|
273
291
|
"flow_name": get_flow_name,
|
292
|
+
"flow_version": get_flow_version,
|
274
293
|
"parameters": get_parameters,
|
275
294
|
"parent_flow_run_id": get_parent_flow_run_id,
|
276
295
|
"parent_deployment_id": get_parent_deployment_id,
|
@@ -345,7 +345,11 @@ def template_with_settings(*upstream_settings: Setting) -> Callable[["Settings",
|
|
345
345
|
setting.name: setting.value_from(settings) for setting in upstream_settings
|
346
346
|
}
|
347
347
|
template = string.Template(str(value))
|
348
|
-
|
348
|
+
# Note the use of `safe_substitute` to avoid raising an exception if a
|
349
|
+
# template value is missing. In this case, template values will be left
|
350
|
+
# as-is in the string. Using `safe_substitute` prevents us raising when
|
351
|
+
# the DB password contains a `$` character.
|
352
|
+
return original_type(template.safe_substitute(template_values))
|
349
353
|
|
350
354
|
return templater
|
351
355
|
|
File without changes
|
@@ -981,7 +981,12 @@ class BaseWorker(abc.ABC):
|
|
981
981
|
|
982
982
|
deployment_vars = deployment.job_variables or {}
|
983
983
|
flow_run_vars = flow_run.job_variables or {}
|
984
|
-
job_variables = {**deployment_vars
|
984
|
+
job_variables = {**deployment_vars}
|
985
|
+
|
986
|
+
# merge environment variables carefully, otherwise full override
|
987
|
+
if isinstance(job_variables.get("env"), dict):
|
988
|
+
job_variables["env"].update(flow_run_vars.pop("env", {}))
|
989
|
+
job_variables.update(flow_run_vars)
|
985
990
|
|
986
991
|
configuration = await self.job_configuration.from_template_and_values(
|
987
992
|
base_job_template=self._work_pool.base_job_template,
|
@@ -0,0 +1,173 @@
|
|
1
|
+
Metadata-Version: 2.1
|
2
|
+
Name: prefect-client
|
3
|
+
Version: 2.20.2
|
4
|
+
Summary: Workflow orchestration and management.
|
5
|
+
Home-page: https://www.prefect.io
|
6
|
+
Author: Prefect Technologies, Inc.
|
7
|
+
Author-email: help@prefect.io
|
8
|
+
Project-URL: Changelog, https://github.com/PrefectHQ/prefect/blob/main/RELEASE-NOTES.md
|
9
|
+
Project-URL: Documentation, https://docs.prefect.io
|
10
|
+
Project-URL: Source, https://github.com/PrefectHQ/prefect
|
11
|
+
Project-URL: Tracker, https://github.com/PrefectHQ/prefect/issues
|
12
|
+
Classifier: Natural Language :: English
|
13
|
+
Classifier: Intended Audience :: Developers
|
14
|
+
Classifier: Intended Audience :: System Administrators
|
15
|
+
Classifier: License :: OSI Approved :: Apache Software License
|
16
|
+
Classifier: Programming Language :: Python :: 3 :: Only
|
17
|
+
Classifier: Programming Language :: Python :: 3.8
|
18
|
+
Classifier: Programming Language :: Python :: 3.9
|
19
|
+
Classifier: Programming Language :: Python :: 3.10
|
20
|
+
Classifier: Programming Language :: Python :: 3.11
|
21
|
+
Classifier: Topic :: Software Development :: Libraries
|
22
|
+
Requires-Python: >=3.8
|
23
|
+
Description-Content-Type: text/markdown
|
24
|
+
License-File: LICENSE
|
25
|
+
Requires-Dist: anyio<5.0.0,>=4.4.0
|
26
|
+
Requires-Dist: asgi-lifespan<3.0,>=1.0
|
27
|
+
Requires-Dist: cachetools<6.0,>=5.3
|
28
|
+
Requires-Dist: cloudpickle<4.0,>=2.0
|
29
|
+
Requires-Dist: coolname<3.0.0,>=1.0.4
|
30
|
+
Requires-Dist: croniter<3.0.0,>=1.0.12
|
31
|
+
Requires-Dist: fsspec>=2022.5.0
|
32
|
+
Requires-Dist: exceptiongroup>=1.2.1
|
33
|
+
Requires-Dist: graphviz>=0.20.1
|
34
|
+
Requires-Dist: griffe<0.48.0,>=0.20.0
|
35
|
+
Requires-Dist: httpcore<2.0.0,>=1.0.5
|
36
|
+
Requires-Dist: httpx[http2]!=0.23.2,>=0.23
|
37
|
+
Requires-Dist: importlib_metadata>=4.4; python_version < "3.10"
|
38
|
+
Requires-Dist: importlib-resources<6.2.0,>=6.1.3
|
39
|
+
Requires-Dist: jsonpatch<2.0,>=1.32
|
40
|
+
Requires-Dist: jsonschema<5.0.0,>=4.0.0
|
41
|
+
Requires-Dist: orjson<4.0,>=3.7
|
42
|
+
Requires-Dist: packaging<24.3,>=21.3
|
43
|
+
Requires-Dist: pathspec>=0.8.0
|
44
|
+
Requires-Dist: pendulum<3.0; python_version < "3.12"
|
45
|
+
Requires-Dist: pendulum<4,>=3.0.0; python_version >= "3.12"
|
46
|
+
Requires-Dist: pydantic[email]!=2.0.0,!=2.0.1,!=2.1.0,<3.0.0,>=1.10.0
|
47
|
+
Requires-Dist: pydantic_core<3.0.0,>=2.12.0
|
48
|
+
Requires-Dist: python_dateutil<3.0.0,>=2.8.2
|
49
|
+
Requires-Dist: python-slugify<9.0,>=5.0
|
50
|
+
Requires-Dist: pyyaml<7.0.0,>=5.4.1
|
51
|
+
Requires-Dist: rfc3339-validator<0.2.0,>=0.1.4
|
52
|
+
Requires-Dist: rich<14.0,>=11.0
|
53
|
+
Requires-Dist: ruamel.yaml>=0.17.0
|
54
|
+
Requires-Dist: sniffio<2.0.0,>=1.3.0
|
55
|
+
Requires-Dist: toml>=0.10.0
|
56
|
+
Requires-Dist: typing_extensions<5.0.0,>=4.5.0
|
57
|
+
Requires-Dist: ujson<6.0.0,>=5.8.0
|
58
|
+
Requires-Dist: uvicorn!=0.29.0,>=0.14.0
|
59
|
+
Requires-Dist: websockets<13.0,>=10.4
|
60
|
+
Requires-Dist: itsdangerous
|
61
|
+
Requires-Dist: python-multipart>=0.0.7
|
62
|
+
Provides-Extra: notifications
|
63
|
+
Requires-Dist: apprise<2.0.0,>=1.1.0; extra == "notifications"
|
64
|
+
|
65
|
+
<p align="center"><img src="https://github.com/PrefectHQ/prefect/assets/3407835/c654cbc6-63e8-4ada-a92a-efd2f8f24b85" width=1000></p>
|
66
|
+
|
67
|
+
<p align="center">
|
68
|
+
<a href="https://pypi.python.org/pypi/prefect-client/" alt="PyPI version">
|
69
|
+
<img alt="PyPI" src="https://img.shields.io/pypi/v/prefect-client?color=0052FF&labelColor=090422"></a>
|
70
|
+
<a href="https://github.com/prefecthq/prefect/" alt="Stars">
|
71
|
+
<img src="https://img.shields.io/github/stars/prefecthq/prefect?color=0052FF&labelColor=090422" /></a>
|
72
|
+
<a href="https://pepy.tech/badge/prefect-client/" alt="Downloads">
|
73
|
+
<img src="https://img.shields.io/pypi/dm/prefect-client?color=0052FF&labelColor=090422" /></a>
|
74
|
+
<a href="https://github.com/prefecthq/prefect/pulse" alt="Activity">
|
75
|
+
<img src="https://img.shields.io/github/commit-activity/m/prefecthq/prefect?color=0052FF&labelColor=090422" /></a>
|
76
|
+
<br>
|
77
|
+
<a href="https://prefect.io/slack" alt="Slack">
|
78
|
+
<img src="https://img.shields.io/badge/slack-join_community-red.svg?color=0052FF&labelColor=090422&logo=slack" /></a>
|
79
|
+
<a href="https://discourse.prefect.io/" alt="Discourse">
|
80
|
+
<img src="https://img.shields.io/badge/discourse-browse_forum-red.svg?color=0052FF&labelColor=090422&logo=discourse" /></a>
|
81
|
+
<a href="https://www.youtube.com/c/PrefectIO/" alt="YouTube">
|
82
|
+
<img src="https://img.shields.io/badge/youtube-watch_videos-red.svg?color=0052FF&labelColor=090422&logo=youtube" /></a>
|
83
|
+
</p>
|
84
|
+
|
85
|
+
# prefect-client
|
86
|
+
|
87
|
+
The `prefect-client` package is a minimal-installation of `prefect` which is designed for interacting with Prefect Cloud
|
88
|
+
or remote any `prefect` server. It sheds some functionality and dependencies in exchange for a smaller installation size,
|
89
|
+
making it ideal for use in lightweight or ephemeral environments. These characteristics make it ideal for use in lambdas
|
90
|
+
or other resource-constrained environments.
|
91
|
+
|
92
|
+
|
93
|
+
## Getting started
|
94
|
+
|
95
|
+
`prefect-client` shares the same installation requirements as prefect. To install, make sure you are on Python 3.8 or
|
96
|
+
later and run the following command:
|
97
|
+
|
98
|
+
```bash
|
99
|
+
pip install prefect-client
|
100
|
+
```
|
101
|
+
|
102
|
+
Next, ensure that your `prefect-client` has access to a remote `prefect` server by exporting the `PREFECT_API_KEY`
|
103
|
+
(if using Prefect Cloud) and `PREFECT_API_URL` environment variables. Once those are set, use the package in your code as
|
104
|
+
you would normally use `prefect`!
|
105
|
+
|
106
|
+
|
107
|
+
For example, to remotely trigger a run a deployment:
|
108
|
+
|
109
|
+
```python
|
110
|
+
from prefect.deployments import run_deployment
|
111
|
+
|
112
|
+
|
113
|
+
def my_lambda(event):
|
114
|
+
...
|
115
|
+
run_deployment(
|
116
|
+
name="my-flow/my-deployment",
|
117
|
+
parameters={"foo": "bar"},
|
118
|
+
timeout=0,
|
119
|
+
)
|
120
|
+
|
121
|
+
my_lambda({})
|
122
|
+
```
|
123
|
+
|
124
|
+
To emit events in an event driven system:
|
125
|
+
|
126
|
+
```python
|
127
|
+
from prefect.events import emit_event
|
128
|
+
|
129
|
+
|
130
|
+
def something_happened():
|
131
|
+
emit_event("my-event", resource={"prefect.resource.id": "foo.bar"})
|
132
|
+
|
133
|
+
something_happened()
|
134
|
+
```
|
135
|
+
|
136
|
+
|
137
|
+
Or just interact with a `prefect` API:
|
138
|
+
```python
|
139
|
+
from prefect.client.orchestration import get_client
|
140
|
+
|
141
|
+
|
142
|
+
async def query_api():
|
143
|
+
async with get_client() as client:
|
144
|
+
limits = await client.read_concurrency_limits(limit=10, offset=0)
|
145
|
+
print(limits)
|
146
|
+
|
147
|
+
|
148
|
+
query_api()
|
149
|
+
```
|
150
|
+
|
151
|
+
|
152
|
+
## Known limitations
|
153
|
+
By design, `prefect-client` omits all CLI and server components. This means that the CLI is not available for use
|
154
|
+
and attempts to access server objects will fail. Furthermore, some classes, methods, and objects may be available
|
155
|
+
for import in `prefect-client` but may not be "runnable" if they tap into server-oriented functionality. If you
|
156
|
+
encounter such a limitation, feel free to [open an issue](https://github.com/PrefectHQ/prefect/issues/new/choose)
|
157
|
+
describing the functionality you are interested in using and we will do our best to make it available.
|
158
|
+
|
159
|
+
|
160
|
+
## Next steps
|
161
|
+
|
162
|
+
There's lots more you can do to orchestrate and observe your workflows with Prefect!
|
163
|
+
Start with our [friendly tutorial](https://docs.prefect.io/tutorials) or explore the [core concepts of Prefect workflows](https://docs.prefect.io/concepts/).
|
164
|
+
|
165
|
+
## Join the community
|
166
|
+
|
167
|
+
Prefect is made possible by the fastest growing community of thousands of friendly data engineers. Join us in building a new kind of workflow system. The [Prefect Slack community](https://prefect.io/slack) is a fantastic place to learn more about Prefect, ask questions, or get help with workflow design. All community forums, including code contributions, issue discussions, and slack messages are subject to our [Code of Conduct](https://discourse.prefect.io/faq).
|
168
|
+
|
169
|
+
## Contribute
|
170
|
+
|
171
|
+
See our [documentation on contributing to Prefect](https://docs.prefect.io/contributing/overview/).
|
172
|
+
|
173
|
+
Thanks for being part of the mission to build a new kind of workflow system and, of course, **happy engineering!**
|
@@ -94,6 +94,7 @@ src/prefect/_vendor/fastapi/exceptions.py
|
|
94
94
|
src/prefect/_vendor/fastapi/logger.py
|
95
95
|
src/prefect/_vendor/fastapi/param_functions.py
|
96
96
|
src/prefect/_vendor/fastapi/params.py
|
97
|
+
src/prefect/_vendor/fastapi/py.typed
|
97
98
|
src/prefect/_vendor/fastapi/requests.py
|
98
99
|
src/prefect/_vendor/fastapi/responses.py
|
99
100
|
src/prefect/_vendor/fastapi/routing.py
|
@@ -139,6 +140,7 @@ src/prefect/_vendor/starlette/datastructures.py
|
|
139
140
|
src/prefect/_vendor/starlette/endpoints.py
|
140
141
|
src/prefect/_vendor/starlette/exceptions.py
|
141
142
|
src/prefect/_vendor/starlette/formparsers.py
|
143
|
+
src/prefect/_vendor/starlette/py.typed
|
142
144
|
src/prefect/_vendor/starlette/requests.py
|
143
145
|
src/prefect/_vendor/starlette/responses.py
|
144
146
|
src/prefect/_vendor/starlette/routing.py
|
@@ -298,4 +300,30 @@ src/prefect_client.egg-info/PKG-INFO
|
|
298
300
|
src/prefect_client.egg-info/SOURCES.txt
|
299
301
|
src/prefect_client.egg-info/dependency_links.txt
|
300
302
|
src/prefect_client.egg-info/requires.txt
|
301
|
-
src/prefect_client.egg-info/top_level.txt
|
303
|
+
src/prefect_client.egg-info/top_level.txt
|
304
|
+
tests/test_artifacts.py
|
305
|
+
tests/test_automations.py
|
306
|
+
tests/test_background_tasks.py
|
307
|
+
tests/test_context.py
|
308
|
+
tests/test_deployments.py
|
309
|
+
tests/test_engine.py
|
310
|
+
tests/test_exceptions.py
|
311
|
+
tests/test_filesystems.py
|
312
|
+
tests/test_flow_runs.py
|
313
|
+
tests/test_flows.py
|
314
|
+
tests/test_flows_compat.py
|
315
|
+
tests/test_futures.py
|
316
|
+
tests/test_highlighters.py
|
317
|
+
tests/test_import_interceptor.py
|
318
|
+
tests/test_log_prints.py
|
319
|
+
tests/test_logging.py
|
320
|
+
tests/test_new_flow_engine.py
|
321
|
+
tests/test_new_task_engine.py
|
322
|
+
tests/test_plugins.py
|
323
|
+
tests/test_serializers.py
|
324
|
+
tests/test_settings.py
|
325
|
+
tests/test_states.py
|
326
|
+
tests/test_task_runners.py
|
327
|
+
tests/test_task_server.py
|
328
|
+
tests/test_tasks.py
|
329
|
+
tests/test_variables.py
|