queenbee.plugin.function module

Queenbee Function class.

class queenbee.plugin.function.Function(*, type: ~typing.Literal['Function'] = 'Function', annotations: ~typing.Dict[str, ~typing.Any] = <factory>, inputs: ~typing.List[~typing.Annotated[~queenbee.io.inputs.function.FunctionStringInput | ~queenbee.io.inputs.function.FunctionIntegerInput | ~queenbee.io.inputs.function.FunctionNumberInput | ~queenbee.io.inputs.function.FunctionBooleanInput | ~queenbee.io.inputs.function.FunctionFolderInput | ~queenbee.io.inputs.function.FunctionFileInput | ~queenbee.io.inputs.function.FunctionPathInput | ~queenbee.io.inputs.function.FunctionArrayInput | ~queenbee.io.inputs.function.FunctionJSONObjectInput, FieldInfo(annotation=NoneType, required=True, discriminator='type')]] = <factory>, outputs: ~typing.List[~typing.Annotated[~queenbee.io.outputs.function.FunctionStringOutput | ~queenbee.io.outputs.function.FunctionIntegerOutput | ~queenbee.io.outputs.function.FunctionNumberOutput | ~queenbee.io.outputs.function.FunctionBooleanOutput | ~queenbee.io.outputs.function.FunctionFolderOutput | ~queenbee.io.outputs.function.FunctionFileOutput | ~queenbee.io.outputs.function.FunctionPathOutput | ~queenbee.io.outputs.function.FunctionArrayOutput | ~queenbee.io.outputs.function.FunctionJSONObjectOutput, FieldInfo(annotation=NoneType, required=True, discriminator='type')]] = <factory>, name: str, description: str | None = None, command: str | None = None, language: ~queenbee.plugin.function.ScriptingLanguages = ScriptingLanguages.Python, source: str | None = None)[source]

Bases: IOBase

A Function with a single or a script.

check_either_source_or_command() Function[source]

Validate either source or command is provided

command: str | None
description: str | None
inputs: List[Annotated[FunctionStringInput | FunctionIntegerInput | FunctionNumberInput | FunctionBooleanInput | FunctionFolderInput | FunctionFileInput | FunctionPathInput | FunctionArrayInput | FunctionJSONObjectInput, FieldInfo(annotation=NoneType, required=True, discriminator='type')]]
property is_script

Returns True if this Function is a script function.

language: ScriptingLanguages
model_config: ClassVar[ConfigDict] = {}

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

name: str
outputs: List[Annotated[FunctionStringOutput | FunctionIntegerOutput | FunctionNumberOutput | FunctionBooleanOutput | FunctionFolderOutput | FunctionFileOutput | FunctionPathOutput | FunctionArrayOutput | FunctionJSONObjectOutput, FieldInfo(annotation=NoneType, required=True, discriminator='type')]]
source: str | None
type: Literal['Function']
classmethod validate_command_refs(v: str | None, info: ValidationInfo) str | None[source]

Validate referenced variables in the command

static validate_referenced_values(input_names: List[str], variables: List)[source]

Validate referenced values

Parameters:
  • reference (input_names {List[str]} -- A list of acceptable names to)

  • strings (variables {List} -- A list of referenced value)

Raises:

ValueError – One of the reference variables is invalid

class queenbee.plugin.function.ScriptingLanguages(value, names=<not given>, *values, module=None, qualname=None, type=None, start=1, boundary=None)[source]

Bases: str, Enum

Supported Scripting Languages

Python = 'python'