Back to Prefect

results

docs/v3/api-ref/python/prefect-results.mdx

3.6.30.dev315.9 KB
Original Source

prefect.results

Functions

DEFAULT_STORAGE_KEY_FN <sup><a href="https://github.com/PrefectHQ/prefect/blob/main/src/prefect/results.py#L71" target="_blank"><Icon icon="github" style="width: 14px; height: 14px;" /></a></sup>

python
DEFAULT_STORAGE_KEY_FN() -> str

aget_default_result_storage <sup><a href="https://github.com/PrefectHQ/prefect/blob/main/src/prefect/results.py#L81" target="_blank"><Icon icon="github" style="width: 14px; height: 14px;" /></a></sup>

python
aget_default_result_storage() -> WritableFileSystem

Generate a default file system for result storage.

get_default_result_storage <sup><a href="https://github.com/PrefectHQ/prefect/blob/main/src/prefect/results.py#L105" target="_blank"><Icon icon="github" style="width: 14px; height: 14px;" /></a></sup>

python
get_default_result_storage() -> WritableFileSystem

Generate a default file system for result storage.

aresolve_result_storage <sup><a href="https://github.com/PrefectHQ/prefect/blob/main/src/prefect/results.py#L130" target="_blank"><Icon icon="github" style="width: 14px; height: 14px;" /></a></sup>

python
aresolve_result_storage(result_storage: ResultStorage | UUID | Path) -> WritableFileSystem

Resolve one of the valid ResultStorage input types into a saved block document id and an instance of the block.

resolve_result_storage <sup><a href="https://github.com/PrefectHQ/prefect/blob/main/src/prefect/results.py#L167" target="_blank"><Icon icon="github" style="width: 14px; height: 14px;" /></a></sup>

python
resolve_result_storage(result_storage: ResultStorage | UUID | Path) -> WritableFileSystem

Resolve one of the valid ResultStorage input types into a saved block document id and an instance of the block.

resolve_serializer <sup><a href="https://github.com/PrefectHQ/prefect/blob/main/src/prefect/results.py#L202" target="_blank"><Icon icon="github" style="width: 14px; height: 14px;" /></a></sup>

python
resolve_serializer(serializer: ResultSerializer) -> Serializer

Resolve one of the valid ResultSerializer input types into a serializer instance.

get_or_create_default_task_scheduling_storage <sup><a href="https://github.com/PrefectHQ/prefect/blob/main/src/prefect/results.py#L218" target="_blank"><Icon icon="github" style="width: 14px; height: 14px;" /></a></sup>

python
get_or_create_default_task_scheduling_storage() -> ResultStorage

Generate a default file system for background task parameter/result storage.

get_default_result_serializer <sup><a href="https://github.com/PrefectHQ/prefect/blob/main/src/prefect/results.py#L236" target="_blank"><Icon icon="github" style="width: 14px; height: 14px;" /></a></sup>

python
get_default_result_serializer() -> Serializer

Generate a default file system for result storage.

get_default_persist_setting <sup><a href="https://github.com/PrefectHQ/prefect/blob/main/src/prefect/results.py#L244" target="_blank"><Icon icon="github" style="width: 14px; height: 14px;" /></a></sup>

python
get_default_persist_setting() -> bool

Return the default option for result persistence.

get_default_persist_setting_for_tasks <sup><a href="https://github.com/PrefectHQ/prefect/blob/main/src/prefect/results.py#L252" target="_blank"><Icon icon="github" style="width: 14px; height: 14px;" /></a></sup>

python
get_default_persist_setting_for_tasks() -> bool

Return the default option for result persistence for tasks.

should_persist_result <sup><a href="https://github.com/PrefectHQ/prefect/blob/main/src/prefect/results.py#L264" target="_blank"><Icon icon="github" style="width: 14px; height: 14px;" /></a></sup>

python
should_persist_result() -> bool

Return the default option for result persistence determined by the current run context.

If there is no current run context, the value of results.persist_by_default on the current settings will be returned.

default_cache <sup><a href="https://github.com/PrefectHQ/prefect/blob/main/src/prefect/results.py#L293" target="_blank"><Icon icon="github" style="width: 14px; height: 14px;" /></a></sup>

python
default_cache() -> LRUCache[str, 'ResultRecord[Any]']

result_storage_discriminator <sup><a href="https://github.com/PrefectHQ/prefect/blob/main/src/prefect/results.py#L297" target="_blank"><Icon icon="github" style="width: 14px; height: 14px;" /></a></sup>

python
result_storage_discriminator(x: Any) -> str

get_result_store <sup><a href="https://github.com/PrefectHQ/prefect/blob/main/src/prefect/results.py#L1220" target="_blank"><Icon icon="github" style="width: 14px; height: 14px;" /></a></sup>

python
get_result_store() -> ResultStore

Get the current result store.

Classes

ResultStore <sup><a href="https://github.com/PrefectHQ/prefect/blob/main/src/prefect/results.py#L310" target="_blank"><Icon icon="github" style="width: 14px; height: 14px;" /></a></sup>

Manages the storage and retrieval of results.

Attributes:

  • result_storage: The storage for result records. If not provided, the default result storage will be used.
  • metadata_storage: The storage for result record metadata. If not provided, the metadata will be stored alongside the results.
  • lock_manager: The lock manager to use for locking result records. If not provided, the store cannot be used in transactions with the SERIALIZABLE isolation level.
  • cache_result_in_memory: Whether to cache results in memory.
  • serializer: The serializer to use for results.
  • storage_key_fn: The function to generate storage keys.

Methods:

aacquire_lock <sup><a href="https://github.com/PrefectHQ/prefect/blob/main/src/prefect/results.py#L1124" target="_blank"><Icon icon="github" style="width: 14px; height: 14px;" /></a></sup>

python
aacquire_lock(self, key: str, holder: str | None = None, timeout: float | None = None) -> bool

Acquire a lock for a result record.

Args:

  • key: The key to acquire the lock for.
  • holder: The holder of the lock. If not provided, a default holder based on the current host, process, and thread will be used.
  • timeout: The timeout for the lock.

Returns:

  • True if the lock was successfully acquired; False otherwise.

acquire_lock <sup><a href="https://github.com/PrefectHQ/prefect/blob/main/src/prefect/results.py#L1101" target="_blank"><Icon icon="github" style="width: 14px; height: 14px;" /></a></sup>

python
acquire_lock(self, key: str, holder: str | None = None, timeout: float | None = None) -> bool

Acquire a lock for a result record.

Args:

  • key: The key to acquire the lock for.
  • holder: The holder of the lock. If not provided, a default holder based on the current host, process, and thread will be used.
  • timeout: The timeout for the lock.

Returns:

  • True if the lock was successfully acquired; False otherwise.

aexists <sup><a href="https://github.com/PrefectHQ/prefect/blob/main/src/prefect/results.py#L645" target="_blank"><Icon icon="github" style="width: 14px; height: 14px;" /></a></sup>

python
aexists(self, key: str) -> bool

Check if a result record exists in storage.

Args:

  • key: The key to check for the existence of a result record.

Returns:

  • True if the result record exists, False otherwise.

apersist_result_record <sup><a href="https://github.com/PrefectHQ/prefect/blob/main/src/prefect/results.py#L1068" target="_blank"><Icon icon="github" style="width: 14px; height: 14px;" /></a></sup>

python
apersist_result_record(self, result_record: 'ResultRecord[Any]', holder: str | None = None) -> None

Persist a result record to storage.

Args:

  • result_record: The result record to persist.

aread <sup><a href="https://github.com/PrefectHQ/prefect/blob/main/src/prefect/results.py#L824" target="_blank"><Icon icon="github" style="width: 14px; height: 14px;" /></a></sup>

python
aread(self, key: str, holder: str | None = None) -> 'ResultRecord[Any]'

Read a result record from storage.

Args:

  • key: The key to read the result record from.
  • holder: The holder of the lock if a lock was set on the record.

Returns:

  • A result record.

aupdate_for_flow <sup><a href="https://github.com/PrefectHQ/prefect/blob/main/src/prefect/results.py#L374" target="_blank"><Icon icon="github" style="width: 14px; height: 14px;" /></a></sup>

python
aupdate_for_flow(self, flow: 'Flow[..., Any]') -> Self

Create a new result store for a flow with updated settings.

Args:

  • flow: The flow to update the result store for.

Returns:

  • An updated result store.

aupdate_for_task <sup><a href="https://github.com/PrefectHQ/prefect/blob/main/src/prefect/results.py#L421" target="_blank"><Icon icon="github" style="width: 14px; height: 14px;" /></a></sup>

python
aupdate_for_task(self: Self, task: 'Task[P, R]') -> Self

Create a new result store for a task.

Args:

  • task: The task to update the result store for.

Returns:

  • An updated result store.

await_for_lock <sup><a href="https://github.com/PrefectHQ/prefect/blob/main/src/prefect/results.py#L1208" target="_blank"><Icon icon="github" style="width: 14px; height: 14px;" /></a></sup>

python
await_for_lock(self, key: str, timeout: float | None = None) -> bool

Wait for the corresponding transaction record to become free.

awrite <sup><a href="https://github.com/PrefectHQ/prefect/blob/main/src/prefect/results.py#L906" target="_blank"><Icon icon="github" style="width: 14px; height: 14px;" /></a></sup>

python
awrite(self, obj: Any, key: str | None = None, expiration: DateTime | None = None, holder: str | None = None) -> None

Write a result to storage.

Args:

  • key: The key to write the result record to.
  • obj: The object to write to storage.
  • expiration: The expiration time for the result record.
  • holder: The holder of the lock if a lock was set on the record.

create_result_record <sup><a href="https://github.com/PrefectHQ/prefect/blob/main/src/prefect/results.py#L842" target="_blank"><Icon icon="github" style="width: 14px; height: 14px;" /></a></sup>

python
create_result_record(self, obj: Any, key: str | None = None, expiration: DateTime | None = None) -> 'ResultRecord[Any]'

Create a result record.

Args:

  • key: The key to create the result record for.
  • obj: The object to create the result record for.
  • expiration: The expiration time for the result record.

exists <sup><a href="https://github.com/PrefectHQ/prefect/blob/main/src/prefect/results.py#L633" target="_blank"><Icon icon="github" style="width: 14px; height: 14px;" /></a></sup>

python
exists(self, key: str) -> bool

Check if a result record exists in storage.

Args:

  • key: The key to check for the existence of a result record.

Returns:

  • True if the result record exists, False otherwise.

generate_default_holder <sup><a href="https://github.com/PrefectHQ/prefect/blob/main/src/prefect/results.py#L527" target="_blank"><Icon icon="github" style="width: 14px; height: 14px;" /></a></sup>

python
generate_default_holder() -> str

Generate a default holder string using hostname, PID, and thread ID.

Returns:

  • A unique identifier string.

is_lock_holder <sup><a href="https://github.com/PrefectHQ/prefect/blob/main/src/prefect/results.py#L1177" target="_blank"><Icon icon="github" style="width: 14px; height: 14px;" /></a></sup>

python
is_lock_holder(self, key: str, holder: str | None = None) -> bool

Check if the current holder is the lock holder for the result record.

Args:

  • key: The key to check the lock for.
  • holder: The holder of the lock. If not provided, a default holder based on the current host, process, and thread will be used.

Returns:

  • True if the current holder is the lock holder; False otherwise.

is_locked <sup><a href="https://github.com/PrefectHQ/prefect/blob/main/src/prefect/results.py#L1166" target="_blank"><Icon icon="github" style="width: 14px; height: 14px;" /></a></sup>

python
is_locked(self, key: str) -> bool

Check if a result record is locked.

persist_result_record <sup><a href="https://github.com/PrefectHQ/prefect/blob/main/src/prefect/results.py#L1056" target="_blank"><Icon icon="github" style="width: 14px; height: 14px;" /></a></sup>

python
persist_result_record(self, result_record: 'ResultRecord[Any]', holder: str | None = None) -> None

Persist a result record to storage.

Args:

  • result_record: The result record to persist.

read <sup><a href="https://github.com/PrefectHQ/prefect/blob/main/src/prefect/results.py#L806" target="_blank"><Icon icon="github" style="width: 14px; height: 14px;" /></a></sup>

python
read(self, key: str, holder: str | None = None) -> 'ResultRecord[Any]'

Read a result record from storage.

Args:

  • key: The key to read the result record from.
  • holder: The holder of the lock if a lock was set on the record.

Returns:

  • A result record.

release_lock <sup><a href="https://github.com/PrefectHQ/prefect/blob/main/src/prefect/results.py#L1148" target="_blank"><Icon icon="github" style="width: 14px; height: 14px;" /></a></sup>

python
release_lock(self, key: str, holder: str | None = None) -> None

Release a lock for a result record.

Args:

  • key: The key to release the lock for.
  • holder: The holder of the lock. Must match the holder that acquired the lock. If not provided, a default holder based on the current host, process, and thread will be used.

result_storage_block_id <sup><a href="https://github.com/PrefectHQ/prefect/blob/main/src/prefect/results.py#L344" target="_blank"><Icon icon="github" style="width: 14px; height: 14px;" /></a></sup>

python
result_storage_block_id(self) -> UUID | None

supports_isolation_level <sup><a href="https://github.com/PrefectHQ/prefect/blob/main/src/prefect/results.py#L1082" target="_blank"><Icon icon="github" style="width: 14px; height: 14px;" /></a></sup>

python
supports_isolation_level(self, level: 'IsolationLevel') -> bool

Check if the result store supports a given isolation level.

Args:

  • level: The isolation level to check.

Returns:

  • True if the isolation level is supported, False otherwise.

update_for_flow <sup><a href="https://github.com/PrefectHQ/prefect/blob/main/src/prefect/results.py#L398" target="_blank"><Icon icon="github" style="width: 14px; height: 14px;" /></a></sup>

python
update_for_flow(self, flow: 'Flow[..., Any]') -> Self

Create a new result store for a flow with updated settings.

Args:

  • flow: The flow to update the result store for.

Returns:

  • An updated result store.

update_for_task <sup><a href="https://github.com/PrefectHQ/prefect/blob/main/src/prefect/results.py#L474" target="_blank"><Icon icon="github" style="width: 14px; height: 14px;" /></a></sup>

python
update_for_task(self: Self, task: 'Task[P, R]') -> Self

Create a new result store for a task.

Args:

  • task: The task to update the result store for.

Returns:

  • An updated result store.

wait_for_lock <sup><a href="https://github.com/PrefectHQ/prefect/blob/main/src/prefect/results.py#L1197" target="_blank"><Icon icon="github" style="width: 14px; height: 14px;" /></a></sup>

python
wait_for_lock(self, key: str, timeout: float | None = None) -> bool

Wait for the corresponding transaction record to become free.

write <sup><a href="https://github.com/PrefectHQ/prefect/blob/main/src/prefect/results.py#L879" target="_blank"><Icon icon="github" style="width: 14px; height: 14px;" /></a></sup>

python
write(self, obj: Any, key: str | None = None, expiration: DateTime | None = None, holder: str | None = None) -> None

Write a result to storage.

Handles the creation of a ResultRecord and its serialization to storage.

Args:

  • key: The key to write the result record to.
  • obj: The object to write to storage.
  • expiration: The expiration time for the result record.
  • holder: The holder of the lock if a lock was set on the record.