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:
BaseModelPlugin 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:
BaseModelPlugin 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:
BaseModelA 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
- 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:
BaseModelPlugin 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']¶