diff options
Diffstat (limited to 'autogpt/models/command.py')
-rw-r--r-- | autogpt/models/command.py | 49 |
1 files changed, 0 insertions, 49 deletions
diff --git a/autogpt/models/command.py b/autogpt/models/command.py deleted file mode 100644 index 614697861..000000000 --- a/autogpt/models/command.py +++ /dev/null @@ -1,49 +0,0 @@ -from typing import Any, Callable, Optional - -from autogpt.config import Config - -from .command_parameter import CommandParameter - - -class Command: - """A class representing a command. - - Attributes: - name (str): The name of the command. - description (str): A brief description of what the command does. - parameters (list): The parameters of the function that the command executes. - """ - - def __init__( - self, - name: str, - description: str, - method: Callable[..., Any], - parameters: list[CommandParameter], - enabled: bool | Callable[[Config], bool] = True, - disabled_reason: Optional[str] = None, - aliases: list[str] = [], - ): - self.name = name - self.description = description - self.method = method - self.parameters = parameters - self.enabled = enabled - self.disabled_reason = disabled_reason - self.aliases = aliases - - def __call__(self, *args, **kwargs) -> Any: - if hasattr(kwargs, "config") and callable(self.enabled): - self.enabled = self.enabled(kwargs["config"]) - if not self.enabled: - if self.disabled_reason: - return f"Command '{self.name}' is disabled: {self.disabled_reason}" - return f"Command '{self.name}' is disabled" - return self.method(*args, **kwargs) - - def __str__(self) -> str: - params = [ - f"{param.name}: {param.type if param.required else f'Optional[{param.type}]'}" - for param in self.parameters - ] - return f"{self.name}: {self.description}, params: ({', '.join(params)})" |