queenbee.io.inputs.alias module

Queenbee alias input types.

Use these alias inputs to create a different IO object for client side UIs. Alias inputs provide a handler object to convert the input provided to alias to what is required with the original input.

class queenbee.io.inputs.alias.DAGArrayInputAlias(*, type: ~typing.Literal['DAGArrayInputAlias'] = 'DAGArrayInputAlias', annotations: ~typing.Dict[str, ~typing.Any] = <factory>, name: str, description: str | None = None, platform: ~typing.List[str], handler: ~typing.List[~queenbee.io.common.IOAliasHandler], default: ~typing.List | None = None, required: bool = False, spec: ~typing.Dict | None = None, items_type: ~queenbee.io.common.ItemType = ItemType.String)[source]

Bases: DAGGenericInputAlias

A JSON array input.

You can add additional validation by defining a JSONSchema specification.

See http://json-schema.org/understanding-json-schema/reference/array.html for more information.

default: List | None
items_type: ItemType
model_config: ClassVar[ConfigDict] = {}

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

classmethod replace_none_value(v: List) List[source]
type: Literal['DAGArrayInputAlias']
validate_spec(value)[source]

Validate an input value against specification.

Use this for validating workflow inputs against a recipe.

class queenbee.io.inputs.alias.DAGBooleanInputAlias(*, type: ~typing.Literal['DAGBooleanInputAlias'] = 'DAGBooleanInputAlias', annotations: ~typing.Dict[str, ~typing.Any] = <factory>, name: str, description: str | None = None, platform: ~typing.List[str], handler: ~typing.List[~queenbee.io.common.IOAliasHandler], default: bool | None = None, required: bool = False, spec: ~typing.Dict | None = None)[source]

Bases: DAGGenericInputAlias

The boolean type matches only two special values: True and False.

Note that values that evaluate to true or false, such as 1 and 0, are not accepted.

You can add additional validation by defining a JSONSchema specification.

See http://json-schema.org/understanding-json-schema/reference/boolean.html for more information.

default: bool | None
model_config: ClassVar[ConfigDict] = {}

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

type: Literal['DAGBooleanInputAlias']
validate_spec(value)[source]

Validate an input value against specification.

Use this for validating workflow inputs against a recipe.

class queenbee.io.inputs.alias.DAGFileInputAlias(*, type: ~typing.Literal['DAGFileInputAlias'] = 'DAGFileInputAlias', annotations: ~typing.Dict[str, ~typing.Any] = <factory>, name: str, description: str | None = None, platform: ~typing.List[str], handler: ~typing.List[~queenbee.io.common.IOAliasHandler], default: ~queenbee.io.artifact_source.HTTP | ~queenbee.io.artifact_source.S3 | ~queenbee.io.artifact_source.ProjectFolder | None = None, required: bool = False, spec: ~typing.Dict | None = None, extensions: ~typing.List[str] | None = None)[source]

Bases: DAGFolderInputAlias

An alias file input.

File is a special string input. Unlike other string inputs, a file will be copied from its location to execution folder when a workflow is executed.

You can add additional validation by defining a JSONSchema specification.

See http://json-schema.org/understanding-json-schema/reference/string.html#string for more information.

# a file with maximum 50 characters with an ``epw`` extension.

"schema": {
    "type": "string",
    "maxLength": 50,
    "pattern": "(?i)(^.*\.epw$)"
}
extensions: List[str] | None
model_config: ClassVar[ConfigDict] = {}

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

type: Literal['DAGFileInputAlias']
validate_spec(value)[source]

Validate an input value against specification.

Use this for validating workflow inputs against a recipe.

class queenbee.io.inputs.alias.DAGFolderInputAlias(*, type: ~typing.Literal['DAGFolderInputAlias'] = 'DAGFolderInputAlias', annotations: ~typing.Dict[str, ~typing.Any] = <factory>, name: str, description: str | None = None, platform: ~typing.List[str], handler: ~typing.List[~queenbee.io.common.IOAliasHandler], default: ~queenbee.io.artifact_source.HTTP | ~queenbee.io.artifact_source.S3 | ~queenbee.io.artifact_source.ProjectFolder | None = None, required: bool = False, spec: ~typing.Dict | None = None)[source]

Bases: DAGGenericInputAlias

An alias folder input.

Folder is a special string input. Unlike other string inputs, a folder will be copied from its location to execution folder when a workflow is executed.

You can add additional validation by defining a JSONSchema specification.

See http://json-schema.org/understanding-json-schema/reference/string.html#string for more information.

"schema": {
    "type": "string",
    "maxLength": 50,
}
classmethod check_required(v: bool) bool[source]

Overwrite check_required fro artifacts to allow optional artifacts.

default: HTTP | S3 | ProjectFolder | None
property is_artifact
property is_optional

A boolean that indicates if an artifact is optional.

model_config: ClassVar[ConfigDict] = {}

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

type: Literal['DAGFolderInputAlias']
validate_spec(value)[source]

Validate an input value against specification.

Use this for validating workflow inputs against a recipe.

class queenbee.io.inputs.alias.DAGGenericInputAlias(*, type: ~typing.Literal['DAGGenericInputAlias'] = 'DAGGenericInputAlias', annotations: ~typing.Dict[str, ~typing.Any] = <factory>, name: str, description: str | None = None, platform: ~typing.List[str], handler: ~typing.List[~queenbee.io.common.IOAliasHandler], default: str | None = None, required: bool = False, spec: ~typing.Dict | None = None)[source]

Bases: GenericInput

Base class for DAG Alias inputs.

This class adds a handler to input to handle the process of loading the input from different graphical interfaces.

classmethod check_duplicate_platform_name(v: List[IOAliasHandler], info: ValidationInfo) List[IOAliasHandler][source]
classmethod create_empty_platform_list(v: List[str]) List[str][source]
default: str | None
handler: List[IOAliasHandler]
model_config: ClassVar[ConfigDict] = {}

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

platform: List[str]
required: bool
spec: Dict | None
type: Literal['DAGGenericInputAlias']
classmethod validate_default_refs(v: str, info: ValidationInfo) str[source]

Validate referenced variables in the command

classmethod validate_default_value(v: Dict, info: ValidationInfo) Dict[source]

Validate default value against spec if provided.

validate_spec(value)[source]

Validate an input value against specification.

Use this for validating workflow inputs against a recipe.

class queenbee.io.inputs.alias.DAGIntegerInputAlias(*, type: ~typing.Literal['DAGIntegerInputAlias'] = 'DAGIntegerInputAlias', annotations: ~typing.Dict[str, ~typing.Any] = <factory>, name: str, description: str | None = None, platform: ~typing.List[str], handler: ~typing.List[~queenbee.io.common.IOAliasHandler], default: int | None = None, required: bool = False, spec: ~typing.Dict | None = None)[source]

Bases: DAGGenericInputAlias

An alias integer input.

You can add additional validation by defining a JSONSchema specification.

See http://json-schema.org/understanding-json-schema/reference/numeric.html#numeric for more information.

default: int | None
model_config: ClassVar[ConfigDict] = {}

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

type: Literal['DAGIntegerInputAlias']
validate_spec(value)[source]

Validate an input value against specification.

Use this for validating workflow inputs against a recipe.

class queenbee.io.inputs.alias.DAGJSONObjectInputAlias(*, type: ~typing.Literal['DAGJSONObjectInputAlias'] = 'DAGJSONObjectInputAlias', annotations: ~typing.Dict[str, ~typing.Any] = <factory>, name: str, description: str | None = None, platform: ~typing.List[str], handler: ~typing.List[~queenbee.io.common.IOAliasHandler], default: ~typing.Dict | None = None, required: bool = False, spec: ~typing.Dict | None = None)[source]

Bases: DAGGenericInputAlias

An alias JSON object input.

JSON objects are similar to Python dictionaries.

You can add additional validation by defining a JSONSchema specification.

See http://json-schema.org/understanding-json-schema/reference/object.html for more information.

default: Dict | None
model_config: ClassVar[ConfigDict] = {}

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

classmethod replace_none_value(v: Dict) Dict[source]
type: Literal['DAGJSONObjectInputAlias']
validate_spec(value)[source]

Validate an input value against specification.

Use this for validating workflow inputs against a recipe.

class queenbee.io.inputs.alias.DAGLinkedInputAlias(*, type: ~typing.Literal['DAGLinkedInputAlias'] = 'DAGLinkedInputAlias', annotations: ~typing.Dict[str, ~typing.Any] = <factory>, name: str, description: str | None = None, platform: ~typing.List[str], handler: ~typing.List[~queenbee.io.common.IOAliasHandler], default: str | None = None, required: bool = False, spec: ~typing.Dict | None = None)[source]

Bases: DAGGenericInputAlias

An Alias for Linked Inputs.

A linked input alias will be hidden in the UI and will be linked to an object in the UI using the input handler.

model_config: ClassVar[ConfigDict] = {}

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

type: Literal['DAGLinkedInputAlias']
class queenbee.io.inputs.alias.DAGNumberInputAlias(*, type: ~typing.Literal['DAGNumberInputAlias'] = 'DAGNumberInputAlias', annotations: ~typing.Dict[str, ~typing.Any] = <factory>, name: str, description: str | None = None, platform: ~typing.List[str], handler: ~typing.List[~queenbee.io.common.IOAliasHandler], default: float | None = None, required: bool = False, spec: ~typing.Dict | None = None)[source]

Bases: DAGGenericInputAlias

An alias number input.

You can add additional validation by defining a JSONSchema specification.

See http://json-schema.org/understanding-json-schema/reference/numeric.html#numeric for more information.

default: float | None
model_config: ClassVar[ConfigDict] = {}

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

type: Literal['DAGNumberInputAlias']
validate_spec(value)[source]

Validate an input value against specification.

Use this for validating workflow inputs against a recipe.

class queenbee.io.inputs.alias.DAGPathInputAlias(*, type: ~typing.Literal['DAGPathInputAlias'] = 'DAGPathInputAlias', annotations: ~typing.Dict[str, ~typing.Any] = <factory>, name: str, description: str | None = None, platform: ~typing.List[str], handler: ~typing.List[~queenbee.io.common.IOAliasHandler], default: ~queenbee.io.artifact_source.HTTP | ~queenbee.io.artifact_source.S3 | ~queenbee.io.artifact_source.ProjectFolder | None = None, required: bool = False, spec: ~typing.Dict | None = None, extensions: ~typing.List[str] | None = None)[source]

Bases: DAGFolderInputAlias

A file or a folder input.

Use this input only in cases that the input can be either a file or folder. For file or folder-only inputs see File and Folder.

Path is a special string input. Unlike other string inputs, a path will be copied from its location to execution folder when a workflow is executed.

You can add additional validation by defining a JSONSchema specification.

See http://json-schema.org/understanding-json-schema/reference/string.html#string for more information.

# a file with maximum 50 characters with an ``epw`` extension.

"schema": {
    "type": "string",
    "maxLength": 50,
    "pattern": "(?i)(^.*\.epw$)"
}
extensions: List[str] | None
model_config: ClassVar[ConfigDict] = {}

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

type: Literal['DAGPathInputAlias']
validate_spec(value)[source]

Validate an input value against specification.

Use this for validating workflow inputs against a recipe.

class queenbee.io.inputs.alias.DAGStringInputAlias(*, type: ~typing.Literal['DAGStringInputAlias'] = 'DAGStringInputAlias', annotations: ~typing.Dict[str, ~typing.Any] = <factory>, name: str, description: str | None = None, platform: ~typing.List[str], handler: ~typing.List[~queenbee.io.common.IOAliasHandler], default: str | None = None, required: bool = False, spec: ~typing.Dict | None = None)[source]

Bases: DAGGenericInputAlias

An Alias String input.

You can add additional validation by defining a JSONSchema specification.

See http://json-schema.org/understanding-json-schema/reference/string.html#string for more information.

"schema": {
    "type": "string",
    "maxLength": 50,
    "pattern": "(?i)(^.*\.epw$)"
}
default: str | None
model_config: ClassVar[ConfigDict] = {}

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

type: Literal['DAGStringInputAlias']
validate_spec(value)[source]

Validate an input value against specification.

Use this for validating workflow inputs against a recipe.