StackComponent
, parts of which you can see below:BaseModel
is helping us to configure and serialize these components while allowing us to add a validation layer to each stack component instance/implementation.StackComponent
implementation. As you can see, each instance of a StackComponent
needs to include a name
and an auto-generated uuid
. These variables will be tracked when we serialize the stack component object. (You can exclude an instance configuration parameter from the serialization by giving it a name which starts with _
.)ClassVar[..]
, which are also excluded from the serialization. Each StackComponent
implementation features two important class variables called the TYPE
and the FLAVOR
. The TYPE
is utilized when we set up the base implementation for a specific type of stack component whereas the FLAVOR
parameter is used to denote different flavors (which we will cover in the next section).StackComponent
.BaseArtifactStore
:BaseArtifactStore
sets the correct TYPE
, while introducing a new instance variable called path
and class variable called SUPPORTED_SCHEMES
, which will be used by all the subclasses of this base implementation.FLAVOR
class variable, and implements any abstract or flavor-specific methods and properties.MyCustomArtifactStore
inherits from the corresponding base abstraction BaseArtifactStore
and implements a custom
flavor.custom
artifact store via zenml artifact-store flavor register
:custom
artifact store in the list of available artifact store flavors: