diff --git a/.pre-commit-config.yaml b/.pre-commit-config.yaml index a73934a..277d2b4 100644 --- a/.pre-commit-config.yaml +++ b/.pre-commit-config.yaml @@ -19,7 +19,7 @@ repos: rev: v1.8.0 hooks: - id: mypy - additional_dependencies: [types-redis, motor-types] + additional_dependencies: [types-redis, motor-types, types-requests] exclude: 'venv|__jac_gen__|tests|setup.py' args: - --follow-imports=silent diff --git a/jaclang_jaseci/utils/__init__.py b/jaclang_jaseci/utils/__init__.py index 12ce5f6..977aa6e 100644 --- a/jaclang_jaseci/utils/__init__.py +++ b/jaclang_jaseci/utils/__init__.py @@ -47,6 +47,9 @@ def make_optional(cls: type) -> type: class ElasticConnector: """Elastic Connector.""" + url: str = "" + headers: dict = {} + @classmethod def configure(cls, url: str) -> None: """Configure Elastic Connector.""" @@ -57,14 +60,14 @@ def configure(cls, url: str) -> None: } @classmethod - def post(cls, url_suffix: str, payload: dict = None) -> dict: + def post(cls, url_suffix: str, payload: dict) -> requests.Response: """Post to Elastic.""" return requests.post( f"{cls.url}/{url_suffix}", headers=cls.headers, json=payload ) -def format_elastic_record(record: dict) -> dict: +def format_elastic_record(record: logging.LogRecord) -> dict: # Strip out color code from message before sending to elastic msg = record.getMessage() msg = re.sub(r"\033\[[0-9]*m", "", msg) @@ -85,13 +88,13 @@ def format_elastic_record(record: dict) -> dict: def add_elastic_log_handler( logger_instance: logging.Logger, index: str, under_test: bool = False -) -> None: +) -> Optional[multiprocessing.Queue]: has_queue_handler = any( - isinstance(h, logging.handlers.QueueHandler) for h in logger_instance.handlers + isinstance(h, logging.handlers.QueueHandler) for h in logger_instance.handlers # type: ignore[attr-defined] ) if not has_queue_handler: - log_queue = multiprocessing.Queue() - queue_handler = logging.handlers.QueueHandler(log_queue) + log_queue: multiprocessing.Queue = multiprocessing.Queue() + queue_handler = logging.handlers.QueueHandler(log_queue) # type: ignore[attr-defined] logger_instance.addHandler(queue_handler) def elastic_log_worker(elastic_index: str) -> None: @@ -139,6 +142,7 @@ def elastic_log_worker(elastic_index: str) -> None: worker_proc.start() return log_queue + return None def start_elastic_logger(index: str) -> None: diff --git a/setup.py b/setup.py index 1c4495f..2b78384 100644 --- a/setup.py +++ b/setup.py @@ -32,7 +32,8 @@ "nest-asyncio==1.6.0", "fastapi-sso==0.15.0", "google-auth==2.32.0", - "requests", + "requests>=2.32.3, <2.33.0", + "types-requests>=2.32.0, <2.33.0", ], package_data={}, entry_points={