flowrep.base_models module

class flowrep.base_models.IOTypes(*values)[source]

Bases: StrEnum

INPUTS = 'inputs'
OUTPUTS = 'outputs'
class flowrep.base_models.NodeRecipe(*, type: RecipeElementType, inputs: Annotated[list[Annotated[str, BeforeValidator(func=_validate_label, json_schema_input_type=PydanticUndefined)]], AfterValidator(func=validate_unique)], outputs: Annotated[list[Annotated[str, BeforeValidator(func=_validate_label, json_schema_input_type=PydanticUndefined)]], AfterValidator(func=validate_unique)], description: str | None = None)[source]

Bases: BaseModel

description: str | None
inputs: Labels
property inputs_with_defaults: Annotated[list[Annotated[str, BeforeValidator(func=_validate_label, json_schema_input_type=PydanticUndefined)]], AfterValidator(func=validate_unique)]
model_config: ClassVar[ConfigDict] = {}

Configuration for the model, should be a dictionary conforming to [ConfigDict][pydantic.config.ConfigDict].

outputs: Labels
type: RecipeElementType
validate_internal_data_completeness()[source]
class flowrep.base_models.PythonReference(*, info: ~pyiron_snippets.versions.VersionInfo, inputs_with_defaults: ~typing.Annotated[list[~typing.Annotated[str, ~pydantic.functional_validators.BeforeValidator(func=~flowrep.base_models._validate_label, json_schema_input_type=PydanticUndefined)]], ~pydantic.functional_validators.AfterValidator(func=~flowrep.base_models.validate_unique)] = <factory>, restricted_input_kinds: dict[~typing.Annotated[str, ~pydantic.functional_validators.BeforeValidator(func=~flowrep.base_models._validate_label, json_schema_input_type=PydanticUndefined)], ~flowrep.base_models.RestrictedParamKind] = <factory>)[source]

Bases: BaseModel

info: versions.VersionInfo
inputs_with_defaults: Labels
model_config: ClassVar[ConfigDict] = {}

Configuration for the model, should be a dictionary conforming to [ConfigDict][pydantic.config.ConfigDict].

restricted_input_kinds: dict[Label, RestrictedParamKind]
class flowrep.base_models.RecipeElementType(*values)[source]

Bases: StrEnum

ATOMIC = 'atomic'
FOR_EACH = 'for_each'
IF = 'if'
TRY = 'try'
WHILE = 'while'
WORKFLOW = 'workflow'
class flowrep.base_models.RestrictedParamKind(*values)[source]

Bases: StrEnum

Parameter kinds that impose restrictions on how an input can be passed.

POSITIONAL_OR_KEYWORD is deliberately excluded — it’s the default assumption for any input not explicitly represented.

Variadics are not supported

KEYWORD_ONLY = 'KEYWORD_ONLY'
POSITIONAL_ONLY = 'POSITIONAL_ONLY'
VAR_KEYWORD = 'VAR_KEYWORD'
VAR_POSITIONAL = 'VAR_POSITIONAL'
classmethod from_param_kind(kind: _ParameterKind) Self | None[source]

Returns None for POSITIONAL_OR_KEYWORD (the unrestricted default).

flowrep.base_models.is_valid_label(label: str) bool[source]
flowrep.base_models.validate_unique(v: list[T], message: str | None = None) list[T][source]