prefect.context
Async and thread safe models for passing runtime context data.
These contexts should never be directly mutated by the user.
For more user-accessible information about the current run, see prefect.runtime
.
Functions
serialize_context
hydrated_context
get_run_context
- A
FlowRunContext
orTaskRunContext
depending on the function type.
RuntimeError
: If called outside of a flow or task run.
get_settings_context
prefect.context.use_profile
for more details.
tags
use_profile
profile
: The name of the profile to load or an instance of a Profile.override_environment_variable
: If set, variables in the profile will take precedence over current environment variables. By default, environment variables will override profile settings.include_current_context
: If set, the new settings will be constructed with the current settings context as a base. If not set, the use_base settings will be loaded from the environment and defaults.
root_settings_context
- Command line via ‘prefect —profile <name>’
- Environment variable via ‘PREFECT_PROFILE’
- Profiles file via the ‘active’ key
Classes
ContextModel
A base model for context data that forbids mutation and extra data while providing
a context manager
Methods:
get
model_copy
- A new model instance.
serialize
SyncClientContext
A context for managing the sync Prefect client instances.
Clients were formerly tracked on the TaskRunContext and FlowRunContext, but
having two separate places and the addition of both sync and async clients
made it difficult to manage. This context is intended to be the single
source for sync clients.
The client creates a sync client, which can either be read directly from
the context object OR loaded with get_client, inject_client, or other
Prefect utilities.
with SyncClientContext.get_or_create() as ctx:
c1 = get_client(sync_client=True)
c2 = get_client(sync_client=True)
assert c1 is c2
assert c1 is ctx.client
Methods:
get
get_or_create
model_copy
- A new model instance.
serialize
AsyncClientContext
A context for managing the async Prefect client instances.
Clients were formerly tracked on the TaskRunContext and FlowRunContext, but
having two separate places and the addition of both sync and async clients
made it difficult to manage. This context is intended to be the single
source for async clients.
The client creates an async client, which can either be read directly from
the context object OR loaded with get_client, inject_client, or other
Prefect utilities.
with AsyncClientContext.get_or_create() as ctx:
c1 = get_client(sync_client=False)
c2 = get_client(sync_client=False)
assert c1 is c2
assert c1 is ctx.client
Methods:
get
get_or_create
model_copy
- A new model instance.
serialize
RunContext
The base context for a flow or task run. Data in this context will always be
available when get_run_context
is called.
Methods:
get
model_copy
- A new model instance.
serialize
serialize
EngineContext
The context for a flow run. Data in this context is only available from within a
flow run function.
Methods:
serialize
serialize
TaskRunContext
The context for a task run. Data in this context is only available from within a
task run function.
Methods:
serialize
serialize
AssetContext
The asset context for a materializing task run. Contains all asset-related information needed
for asset event emission and downstream asset dependency propagation.
Methods:
add_asset_metadata
asset_key
: The asset keymetadata
: Metadata dictionary to add
ValueError
: If asset_key is not in downstream_assets
asset_as_related
asset_as_resource
emit_events
from_task_and_inputs
task
: The task instancetask_run_id
: The task run IDtask_inputs
: The resolved task inputs (TaskRunResult objects)copy_to_child_ctx
: Whether this context should be copied on a child AssetContext
- Configured AssetContext
get
model_copy
- A new model instance.
related_materialized_by
serialize
serialize
update_tracked_assets
TagsContext
The context for prefect.tags
management.
Methods:
get
get
model_copy
- A new model instance.
serialize
SettingsContext
The context for a Prefect settings.
This allows for safe concurrent access and modification of settings.
Methods:
get
get
model_copy
- A new model instance.