queenbee.plugin.plugin module

Queenbee Plugin class.

class queenbee.plugin.plugin.DockerConfig(*, type: ~typing.Literal['DockerConfig'] = 'DockerConfig', annotations: ~typing.Dict[str, ~typing.Any] = <factory>, image: str, registry: str | None = None, workdir: str)[source]

Bases: BaseModel

Plugin Configuration to run in a Docker container

image: str
model_config: ClassVar[ConfigDict] = {}

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

registry: str | None
type: Literal['DockerConfig']
workdir: str
class queenbee.plugin.plugin.LocalConfig(*, type: ~typing.Literal['LocalConfig'] = 'LocalConfig', annotations: ~typing.Dict[str, ~typing.Any] = <factory>)[source]

Bases: BaseModel

Plugin Configuration to run on a desktop.

model_config: ClassVar[ConfigDict] = {}

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

type: Literal['LocalConfig']
class queenbee.plugin.plugin.Plugin(*, type: ~typing.Literal['Plugin'] = 'Plugin', annotations: ~typing.Dict[str, ~typing.Any] = <factory>, api_version: ~typing.Literal['v1beta1'] = 'v1beta1', metadata: ~queenbee.base.metadata.MetaData, config: ~queenbee.plugin.plugin.PluginConfig, functions: ~typing.List[~queenbee.plugin.function.Function])[source]

Bases: BaseModel

A Queenbee Plugin.

A plugin contains runtime configuration for a Command Line Interface (CLI) and a list of functions that can be executed using this CLI tool.

api_version: Literal['v1beta1']
config: PluginConfig
classmethod from_folder(folder_path: str)[source]

Generate a plugin from a folder

Note

Here is an example of a plugin folder:

.
├── functions
│   ├── function-1.yaml
│   ├── function-2.yaml
│   ├── ....yaml
│   └── function-n.yaml
├── config.yaml
└── package.yaml
Parameters:

folder (folder_path {str} -- Path to the)

Returns:

Plugin – A plugin

functions: List[Function]
metadata: MetaData
model_config: ClassVar[ConfigDict] = {}

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

classmethod sort_list(v: list) list[source]

Sort functions list by name

Parameters:

functions (v {list} -- Unsorted list of)

Returns:

list – Sorted list of functions

to_folder(folder_path: str, *, readme_string: str = None)[source]

Write a plugin to a folder

Note

Here is an example of a plugin folder:

.
├── functions
│   ├── function-1.yaml
│   ├── function-2.yaml
│   ├── ....yaml
│   └── function-n.yaml
├── config.yaml
└── package.yaml
Parameters:

to (folder_path {str} -- Path to write the folder)

Keyword Arguments:

(default (readme_string {str} -- The README file string) – {None})

type: Literal['Plugin']
class queenbee.plugin.plugin.PluginConfig(*, type: ~typing.Literal['PluginConfig'] = 'PluginConfig', annotations: ~typing.Dict[str, ~typing.Any] = <factory>, docker: ~queenbee.plugin.plugin.DockerConfig, local: ~queenbee.plugin.plugin.LocalConfig | None = None)[source]

Bases: BaseModel

Plugin configuration.

The config is used to schedule functions on a desktop or in other contexts (ie: Docker).

docker: DockerConfig
local: LocalConfig | None
model_config: ClassVar[ConfigDict] = {}

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

type: Literal['PluginConfig']