mirror of
https://github.com/OpenBB-finance/OpenBB.git
synced 2026-10-29 13:32:08 +00:00
[Feature] Extract provider to logs (#6565)
* remove ultima + althub * move twitter keys * Extract provider from kwargs and add to logs * pydocstyle * update test * fix tests --------- Co-authored-by: Danglewood <85772166+deeleeramone@users.noreply.github.com> Co-authored-by: Igor Radovanovic <74266147+IgorWounds@users.noreply.github.com>
This commit is contained in:
@@ -14,9 +14,16 @@ from openbb_core.app.logs.models.logging_settings import LoggingSettings
|
||||
from openbb_core.app.model.abstract.singleton import SingletonMeta
|
||||
from openbb_core.app.model.system_settings import SystemSettings
|
||||
from openbb_core.app.model.user_settings import UserSettings
|
||||
from pydantic import BaseModel
|
||||
from pydantic_core import to_jsonable_python
|
||||
|
||||
|
||||
class DummyProvider(BaseModel):
|
||||
"""Dummy Provider for error handling with logs"""
|
||||
|
||||
provider: str = "not_passed_to_kwargs"
|
||||
|
||||
|
||||
class LoggingService(metaclass=SingletonMeta):
|
||||
"""Logging Manager class responsible for managing logging settings and handling logs.
|
||||
|
||||
@@ -221,9 +228,16 @@ class LoggingService(metaclass=SingletonMeta):
|
||||
# Remove CommandContext if any
|
||||
kwargs.pop("cc", None)
|
||||
|
||||
# Get provider for posthog logs
|
||||
passed_model = kwargs.get("provider_choices", DummyProvider())
|
||||
provider = (
|
||||
passed_model.provider
|
||||
if hasattr(passed_model, "provider")
|
||||
else "not_passed_to_kwargs"
|
||||
)
|
||||
|
||||
# Truncate kwargs if too long
|
||||
kwargs = {k: str(v)[:100] for k, v in kwargs.items()}
|
||||
|
||||
# Get execution info
|
||||
error = None if all(i is None for i in exec_info) else str(exec_info[1])
|
||||
|
||||
@@ -234,6 +248,7 @@ class LoggingService(metaclass=SingletonMeta):
|
||||
"route": route,
|
||||
"input": kwargs,
|
||||
"error": error,
|
||||
"provider": provider,
|
||||
"custom_headers": custom_headers,
|
||||
},
|
||||
default=to_jsonable_python,
|
||||
|
||||
@@ -146,7 +146,8 @@ def test_log_startup(logging_service):
|
||||
{},
|
||||
(None, None, None),
|
||||
None,
|
||||
'CMD: {"route": "mock_route", "input": {}, "error": null, "custom_headers": null}',
|
||||
'CMD: {"route": "mock_route", "input": {}, "error": null, '
|
||||
+ '"provider": "not_passed_to_kwargs", "custom_headers": null}',
|
||||
),
|
||||
(
|
||||
"mock_settings",
|
||||
@@ -160,7 +161,7 @@ def test_log_startup(logging_service):
|
||||
...,
|
||||
), # ... is of TracebackType, but unnecessary for the test
|
||||
{"X-OpenBB-Test": "test"},
|
||||
'ERROR: {"route": "mock_route", "input": {}, "error": "mock_error", "custom_headers": {"X-OpenBB-Test": "test"}}', # noqa: E501
|
||||
'ERROR: {"route": "mock_route", "input": {}, "error": "mock_error", "provider": "not_passed_to_kwargs", "custom_headers": {"X-OpenBB-Test": "test"}}', # noqa: E501
|
||||
),
|
||||
(
|
||||
"mock_settings",
|
||||
|
||||
Reference in New Issue
Block a user