class VectorOutputFeatureConfig(BaseOutputFeatureConfig): """VectorOutputFeatureConfig is a dataclass that configures the parameters used for a vector output feature.""" decoder: Optional[str] = schema_utils.StringOptions( list(get_decoder_classes(VECTOR).keys()), default="projector", description="Decoder to use for this vector feature.", )
class TextOutputFeatureConfig(BaseOutputFeatureConfig): """TextOutputFeatureConfig is a dataclass that configures the parameters used for a text output feature.""" decoder: Optional[str] = schema_utils.StringOptions( list(get_decoder_classes(TEXT).keys()), default="generator", description="Decoder to use for this text output feature.", )
class NumberOutputFeatureConfig(BaseOutputFeatureConfig): decoder: Optional[str] = schema_utils.StringOptions( list(get_decoder_classes(NUMBER).keys()), default="regressor", allow_none=True, description="Decoder to use for this number feature.", )
class CategoryOutputFeatureConfig(BaseOutputFeatureConfig): """CategoryOutputFeature is a dataclass that configures the parameters used for a category output feature.""" decoder: Optional[str] = schema_utils.StringOptions( list(get_decoder_classes(CATEGORY).keys()), default="classifier", allow_none=True, description="Decoder to use for this category feature.", )
class SetOutputFeatureConfig(BaseOutputFeatureConfig): """SetOutputFeatureConfig is a dataclass that configures the parameters used for a set output feature.""" decoder: Optional[str] = schema_utils.StringOptions( list(get_decoder_classes(SET).keys()), default="classifier", allow_none=True, description="Decoder to use for this set feature.", )
class BinaryOutputFeatureConfig(BaseOutputFeatureConfig): """BinaryOutputFeature is a dataclass that configures the parameters used for a binary output feature.""" decoder: Optional[str] = schema_utils.StringOptions( list(get_decoder_classes(BINARY).keys()), default="regressor", allow_none=True, description="Decoder to use for this binary feature.", )
def get_output_decoder_conds(output_feature_types): conds = [] for feature_type in output_feature_types: decoder_names = list(get_decoder_classes(feature_type).keys()) decoder_cond = create_cond( {"type": feature_type}, {"decoder": { "enum": decoder_names }}, ) conds.append(decoder_cond) return conds
def update_decoders(feature_props, feature_type): """This function updates the list of decoders acquired from the registry with any custom decoders that are not registered before schema validation. Args: feature_props: Output feature properties feature_type: Output feature type Returns: None """ for key in get_decoder_classes(feature_type): if key not in feature_props["decoder"]["enum"]: feature_props["decoder"]["enum"].append(key)