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 bynamewas 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 bynamewas 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 bynamewas 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.
ser_model
validate_block_type_slug
block_type_slug in the input values matches the expected
block type slug for the class. This helps pydantic to correctly discriminate
between different Block subclasses when validating Union types of Blocks.