prefect.blocks.core
Functions
block_schema_to_key
schema_extra
Classes
InvalidBlockRegistration
Raised on attempted registration of the base Block
class or a Block interface class
UnknownBlockType
Raised when a block type is not found in the registry.
BlockNotSavedError
Raised when a given block is not saved and an operation that requires
the block to be saved is attempted.
Block
A base class for implementing a block that wraps an external service.
This class can be defined with an arbitrary set of fields and methods, and
couples business logic with data contained in an block document.
_block_document_name
, _block_document_id
, _block_schema_id
, and
_block_type_id
are reserved by Prefect as Block metadata fields, but
otherwise a Block can implement arbitrary logic. Blocks can be instantiated
without populating these metadata fields, but can only be used interactively,
not with the Prefect API.
Instead of the init method, a block implementation allows the
definition of a block_initialization
method that is called after
initialization.
Methods:
aload
aload
, a warning will be raised.
If the current class schema is a subset of the block document schema, the block
can be loaded as normal using the default validate = True
.
If the current class schema is a superset of the block document schema, aload
must be called with validate
set to False to prevent a validation error. In
this case, the block attributes will default to None
and must be set manually
and saved to a new block document before the block can be used as expected.
Args:
name
: The name or slug of the block document. A block document slug is a string with the format<block_type_slug>/<block_document_name>
validate
: If False, the block document will be loaded without Pydantic validating the block schema. This is useful if the block schema has changed client-side since the block document referred to byname
was saved.client
: The client to use to load the block document. If not provided, the default client will be injected.
ValueError
: If the requested block document is not found.
- An instance of the current class hydrated with the data stored in the
- block document with the specified name.
annotation_refers_to_block_class
block_initialization
delete
get_block_capabilities
get_block_class_from_key
get_block_class_from_schema
get_block_placeholder
- The block placeholder for the current block in the format
prefect.blocks.{block_type_name}.{block_document_name}
BlockNotSavedError
: Raised if the block has not been saved.
None
.
get_block_schema_version
get_block_type_name
get_block_type_slug
get_code_example
get_description
is_block_class
load
load
, a warning will be raised.
If the current class schema is a subset of the block document schema, the block
can be loaded as normal using the default validate = True
.
If the current class schema is a superset of the block document schema, load
must be called with validate
set to False to prevent a validation error. In
this case, the block attributes will default to None
and must be set manually
and saved to a new block document before the block can be used as expected.
Args:
name
: The name or slug of the block document. A block document slug is a string with the format<block_type_slug>/<block_document_name>
validate
: If False, the block document will be loaded without Pydantic validating the block schema. This is useful if the block schema has changed client-side since the block document referred to byname
was saved.client
: The client to use to load the block document. If not provided, the default client will be injected.
ValueError
: If the requested block document is not found.
- An instance of the current class hydrated with the data stored in the
- block document with the specified name.
load_from_ref
{"block_document_id": <block_document_id>}
{"block_document_slug": <block_document_slug>}
load
, a warning will be raised.
If the current class schema is a subset of the block document schema, the block
can be loaded as normal using the default validate = True
.
If the current class schema is a superset of the block document schema, load
must be called with validate
set to False to prevent a validation error. In
this case, the block attributes will default to None
and must be set manually
and saved to a new block document before the block can be used as expected.
Args:
ref
: The reference to the block document. This can be a block document ID, or one of supported dictionary reference formats.validate
: If False, the block document will be loaded without Pydantic validating the block schema. This is useful if the block schema has changed client-side since the block document referred to byname
was saved.client
: The client to use to load the block document. If not provided, the default client will be injected.
ValueError
: If invalid reference format is provided.ValueError
: If the requested block document is not found.
- An instance of the current class hydrated with the data stored in the
- block document with the specified name.
model_dump
model_json_schema
model_validate
register_type_and_schema
client
: Optional client to use for registering type and schema with the Prefect API. A new client will be created and used if one is not provided.
save
name
: User specified name to give saved block document which can later be used to load the block document.overwrite
: Boolean value specifying if values should be overwritten if a block document with the specified name already exists.