From 35b072f7e8862bec4990c47e6cbb1339c93c5e7c Mon Sep 17 00:00:00 2001 From: Reinier van der Leer Date: Fri, 7 Jul 2023 06:53:44 +0200 Subject: [PATCH] Fix PLAIN_OUTPUT for normal execution (#4904) --- autogpt/logs.py | 18 ++++++++++++++---- autogpt/main.py | 1 - tests/conftest.py | 13 ------------- 3 files changed, 14 insertions(+), 18 deletions(-) diff --git a/autogpt/logs.py b/autogpt/logs.py index 535cce32..7ff80542 100644 --- a/autogpt/logs.py +++ b/autogpt/logs.py @@ -7,7 +7,7 @@ import random import re import time from logging import LogRecord -from typing import TYPE_CHECKING, Any +from typing import TYPE_CHECKING, Any, Optional from colorama import Fore, Style @@ -85,16 +85,26 @@ class Logger(metaclass=Singleton): self.json_logger.addHandler(error_handler) self.json_logger.setLevel(logging.DEBUG) - self.speak_mode = False - self.config = None + self._config: Optional[Config] = None self.chat_plugins = [] + @property + def config(self) -> Config | None: + return self._config + + @config.setter + def config(self, config: Config): + self._config = config + if config.plain_output: + self.typing_logger.removeHandler(self.typing_console_handler) + self.typing_logger.addHandler(self.console_handler) + def typewriter_log( self, title="", title_color="", content="", speak_text=False, level=logging.INFO ): from autogpt.speech import say_text - if speak_text and self.speak_mode: + if speak_text and self.config and self.config.speak_mode: say_text(f"{title}. {content}", self.config) for plugin in self.chat_plugins: diff --git a/autogpt/main.py b/autogpt/main.py index 26e8e331..73d5ea98 100644 --- a/autogpt/main.py +++ b/autogpt/main.py @@ -55,7 +55,6 @@ def run_auto_gpt( ): # Configure logging before we do anything else. logger.set_level(logging.DEBUG if debug else logging.INFO) - logger.speak_mode = speak config = ConfigBuilder.build_config_from_env() # HACK: This is a hack to allow the config into the logger without having to pass it around everywhere diff --git a/tests/conftest.py b/tests/conftest.py index f2ca5904..14f6af78 100644 --- a/tests/conftest.py +++ b/tests/conftest.py @@ -10,7 +10,6 @@ from autogpt.agent.agent import Agent from autogpt.config import AIConfig, Config, ConfigBuilder from autogpt.config.ai_config import AIConfig from autogpt.llm.api_manager import ApiManager -from autogpt.logs import TypingConsoleHandler from autogpt.memory.vector import get_memory from autogpt.models.command_registry import CommandRegistry from autogpt.prompts.prompt import DEFAULT_TRIGGERING_PROMPT @@ -81,18 +80,6 @@ def api_manager() -> ApiManager: return ApiManager() -@pytest.fixture(autouse=True) -def patch_emit(monkeypatch): - # convert plain_output to a boolean - - if bool(os.environ.get("PLAIN_OUTPUT")): - - def quick_emit(self, record: str): - print(self.format(record)) - - monkeypatch.setattr(TypingConsoleHandler, "emit", quick_emit) - - @pytest.fixture def agent(config: Config, workspace: Workspace) -> Agent: ai_config = AIConfig(