mirror of
https://github.com/OpenBB-finance/OpenBB.git
synced 2026-11-07 09:52:13 +00:00
place common utilities inside the container
This commit is contained in:
@@ -10,7 +10,7 @@ from openbb_core.app.service.hub_service import HubService
|
||||
from openbb_core.app.service.user_service import UserService
|
||||
|
||||
if TYPE_CHECKING:
|
||||
from openbb_core.app.static.app_factory import App
|
||||
from openbb_core.app.static.container import Container
|
||||
|
||||
|
||||
class OpenBBError(Exception):
|
||||
@@ -18,7 +18,7 @@ class OpenBBError(Exception):
|
||||
|
||||
|
||||
class Account:
|
||||
def __init__(self, app: "App"):
|
||||
def __init__(self, app: "Container"):
|
||||
self._app = app
|
||||
|
||||
def create_hub_service(
|
||||
|
||||
@@ -1,16 +1,12 @@
|
||||
# pylint: disable=W0231:super-init-not-called
|
||||
|
||||
from openbb_core.app.command_runner import CommandRunnerSession
|
||||
from openbb_core.app.model.system_settings import SystemSettings
|
||||
from openbb_core.app.model.user_settings import UserSettings
|
||||
from openbb_core.app.static.account import Account
|
||||
from openbb_core.app.static.coverage import Coverage
|
||||
|
||||
|
||||
def create_app():
|
||||
try:
|
||||
# pylint: disable=import-outside-toplevel
|
||||
from openbb_core.app.static.package.__extensions__ import Extensions
|
||||
from openbb_core.app.static.package.__app__ import App
|
||||
except ImportError as e:
|
||||
raise Exception(
|
||||
"If you are seeing this exception, you should probably be doing: "
|
||||
@@ -18,44 +14,4 @@ def create_app():
|
||||
"PackageBuilder.build()"
|
||||
) from e
|
||||
|
||||
class App(Extensions):
|
||||
"""Here you can access all the basic utility menus and extensions.
|
||||
|
||||
Basic utility menus:
|
||||
- account
|
||||
- settings
|
||||
- system
|
||||
- coverage
|
||||
|
||||
Built-in extensions:
|
||||
- charting: utility extension common to all built-in extensions
|
||||
- crypto
|
||||
- economy
|
||||
- fixedincome
|
||||
- forex
|
||||
- news
|
||||
- stocks
|
||||
"""
|
||||
|
||||
def __init__(self, command_runner_session):
|
||||
self._command_runner_session = command_runner_session
|
||||
self._account = Account(self)
|
||||
self._coverage = Coverage()
|
||||
|
||||
@property
|
||||
def account(self) -> Account:
|
||||
return self._account
|
||||
|
||||
@property
|
||||
def settings(self) -> UserSettings:
|
||||
return self._command_runner_session.user_settings
|
||||
|
||||
@property
|
||||
def system(self) -> SystemSettings:
|
||||
return self._command_runner_session.command_runner.system_settings
|
||||
|
||||
@property
|
||||
def coverage(self) -> Coverage:
|
||||
return self._coverage
|
||||
|
||||
return App(command_runner_session=CommandRunnerSession())
|
||||
|
||||
@@ -1,6 +1,37 @@
|
||||
from openbb_core.app.command_runner import CommandRunnerSession
|
||||
from openbb_core.app.model.system_settings import SystemSettings
|
||||
from openbb_core.app.model.user_settings import UserSettings
|
||||
from openbb_core.app.static.account import Account
|
||||
from openbb_core.app.static.coverage import Coverage
|
||||
|
||||
|
||||
class Container:
|
||||
"""Here you can access all the basic utility menus.
|
||||
|
||||
Basic utility menus:
|
||||
- account
|
||||
- settings
|
||||
- system
|
||||
- coverage
|
||||
"""
|
||||
|
||||
def __init__(self, command_runner_session: CommandRunnerSession) -> None:
|
||||
self._command_runner_session = command_runner_session
|
||||
self._account = Account(self)
|
||||
self._coverage = Coverage()
|
||||
|
||||
@property
|
||||
def account(self) -> Account:
|
||||
return self._account
|
||||
|
||||
@property
|
||||
def settings(self) -> UserSettings:
|
||||
return self._command_runner_session.user_settings
|
||||
|
||||
@property
|
||||
def system(self) -> SystemSettings:
|
||||
return self._command_runner_session.command_runner.system_settings
|
||||
|
||||
@property
|
||||
def coverage(self) -> Coverage:
|
||||
return self._coverage
|
||||
|
||||
@@ -4,7 +4,7 @@
|
||||
from openbb_core.app.static.container import Container
|
||||
|
||||
|
||||
class Extensions(Container):
|
||||
class App(Container):
|
||||
@property
|
||||
def crypto(self): # route = "/crypto"
|
||||
from openbb_core.app.static.package import crypto
|
||||
@@ -19,7 +19,7 @@ class CLASS_economy(Container):
|
||||
def corecpi(
|
||||
self,
|
||||
chart: bool = False,
|
||||
provider: Optional[Literal["fred", "benzinga", "fmp", "polygon"]] = None,
|
||||
provider: Optional[Literal["benzinga", "fmp", "polygon", "fred"]] = None,
|
||||
) -> CommandOutput[openbb_core.app.model.results.empty.Empty]:
|
||||
"""CORECPI."""
|
||||
inputs = filter_inputs(
|
||||
@@ -248,7 +248,7 @@ class CLASS_economy(Container):
|
||||
def cpi_options(
|
||||
self,
|
||||
chart: bool = False,
|
||||
provider: Optional[Literal["fred", "benzinga", "fmp", "polygon"]] = None,
|
||||
provider: Optional[Literal["benzinga", "fmp", "polygon", "fred"]] = None,
|
||||
) -> CommandOutput[openbb_core.app.model.results.empty.Empty]:
|
||||
"""Get the options for v3 cpi(options=True)"""
|
||||
inputs = filter_inputs(
|
||||
@@ -448,7 +448,7 @@ class CLASS_economy(Container):
|
||||
def macro(
|
||||
self,
|
||||
chart: bool = False,
|
||||
provider: Optional[Literal["fred", "benzinga", "fmp", "polygon"]] = None,
|
||||
provider: Optional[Literal["benzinga", "fmp", "polygon", "fred"]] = None,
|
||||
) -> CommandOutput[openbb_core.app.model.results.empty.Empty]:
|
||||
"""Query EconDB for macro data."""
|
||||
inputs = filter_inputs(
|
||||
@@ -470,7 +470,7 @@ class CLASS_economy(Container):
|
||||
def macro_countries(
|
||||
self,
|
||||
chart: bool = False,
|
||||
provider: Optional[Literal["fred", "benzinga", "fmp", "polygon"]] = None,
|
||||
provider: Optional[Literal["benzinga", "fmp", "polygon", "fred"]] = None,
|
||||
) -> CommandOutput[openbb_core.app.model.results.empty.Empty]:
|
||||
"""MACRO_COUNTRIES."""
|
||||
inputs = filter_inputs(
|
||||
@@ -492,7 +492,7 @@ class CLASS_economy(Container):
|
||||
def macro_parameters(
|
||||
self,
|
||||
chart: bool = False,
|
||||
provider: Optional[Literal["fred", "benzinga", "fmp", "polygon"]] = None,
|
||||
provider: Optional[Literal["benzinga", "fmp", "polygon", "fred"]] = None,
|
||||
) -> CommandOutput[openbb_core.app.model.results.empty.Empty]:
|
||||
"""MACRO_PARAMETERS."""
|
||||
inputs = filter_inputs(
|
||||
@@ -514,7 +514,7 @@ class CLASS_economy(Container):
|
||||
def balance(
|
||||
self,
|
||||
chart: bool = False,
|
||||
provider: Optional[Literal["fred", "benzinga", "fmp", "polygon"]] = None,
|
||||
provider: Optional[Literal["benzinga", "fmp", "polygon", "fred"]] = None,
|
||||
) -> CommandOutput[openbb_core.app.model.results.empty.Empty]:
|
||||
"""BALANCE."""
|
||||
inputs = filter_inputs(
|
||||
@@ -536,7 +536,7 @@ class CLASS_economy(Container):
|
||||
def bigmac(
|
||||
self,
|
||||
chart: bool = False,
|
||||
provider: Optional[Literal["fred", "benzinga", "fmp", "polygon"]] = None,
|
||||
provider: Optional[Literal["benzinga", "fmp", "polygon", "fred"]] = None,
|
||||
) -> CommandOutput[openbb_core.app.model.results.empty.Empty]:
|
||||
"""BIGMAC."""
|
||||
inputs = filter_inputs(
|
||||
@@ -558,7 +558,7 @@ class CLASS_economy(Container):
|
||||
def country_codes(
|
||||
self,
|
||||
chart: bool = False,
|
||||
provider: Optional[Literal["fred", "benzinga", "fmp", "polygon"]] = None,
|
||||
provider: Optional[Literal["benzinga", "fmp", "polygon", "fred"]] = None,
|
||||
) -> CommandOutput[openbb_core.app.model.results.empty.Empty]:
|
||||
"""COUNTRY_CODES."""
|
||||
inputs = filter_inputs(
|
||||
@@ -580,7 +580,7 @@ class CLASS_economy(Container):
|
||||
def currencies(
|
||||
self,
|
||||
chart: bool = False,
|
||||
provider: Optional[Literal["fred", "benzinga", "fmp", "polygon"]] = None,
|
||||
provider: Optional[Literal["benzinga", "fmp", "polygon", "fred"]] = None,
|
||||
) -> CommandOutput[openbb_core.app.model.results.empty.Empty]:
|
||||
"""CURRENCIES."""
|
||||
inputs = filter_inputs(
|
||||
@@ -602,7 +602,7 @@ class CLASS_economy(Container):
|
||||
def debt(
|
||||
self,
|
||||
chart: bool = False,
|
||||
provider: Optional[Literal["fred", "benzinga", "fmp", "polygon"]] = None,
|
||||
provider: Optional[Literal["benzinga", "fmp", "polygon", "fred"]] = None,
|
||||
) -> CommandOutput[openbb_core.app.model.results.empty.Empty]:
|
||||
"""DEBT."""
|
||||
inputs = filter_inputs(
|
||||
@@ -624,7 +624,7 @@ class CLASS_economy(Container):
|
||||
def events(
|
||||
self,
|
||||
chart: bool = False,
|
||||
provider: Optional[Literal["fred", "benzinga", "fmp", "polygon"]] = None,
|
||||
provider: Optional[Literal["benzinga", "fmp", "polygon", "fred"]] = None,
|
||||
) -> CommandOutput[openbb_core.app.model.results.empty.Empty]:
|
||||
"""EVENTS."""
|
||||
inputs = filter_inputs(
|
||||
@@ -646,7 +646,7 @@ class CLASS_economy(Container):
|
||||
def fgdp(
|
||||
self,
|
||||
chart: bool = False,
|
||||
provider: Optional[Literal["fred", "benzinga", "fmp", "polygon"]] = None,
|
||||
provider: Optional[Literal["benzinga", "fmp", "polygon", "fred"]] = None,
|
||||
) -> CommandOutput[openbb_core.app.model.results.empty.Empty]:
|
||||
"""FGDP."""
|
||||
inputs = filter_inputs(
|
||||
@@ -668,7 +668,7 @@ class CLASS_economy(Container):
|
||||
def fred(
|
||||
self,
|
||||
chart: bool = False,
|
||||
provider: Optional[Literal["fred", "benzinga", "fmp", "polygon"]] = None,
|
||||
provider: Optional[Literal["benzinga", "fmp", "polygon", "fred"]] = None,
|
||||
) -> CommandOutput[openbb_core.app.model.results.empty.Empty]:
|
||||
"""FRED."""
|
||||
inputs = filter_inputs(
|
||||
@@ -690,7 +690,7 @@ class CLASS_economy(Container):
|
||||
def fred_search(
|
||||
self,
|
||||
chart: bool = False,
|
||||
provider: Optional[Literal["fred", "benzinga", "fmp", "polygon"]] = None,
|
||||
provider: Optional[Literal["benzinga", "fmp", "polygon", "fred"]] = None,
|
||||
) -> CommandOutput[openbb_core.app.model.results.empty.Empty]:
|
||||
"""FRED Search (was fred_notes)."""
|
||||
inputs = filter_inputs(
|
||||
@@ -712,7 +712,7 @@ class CLASS_economy(Container):
|
||||
def futures(
|
||||
self,
|
||||
chart: bool = False,
|
||||
provider: Optional[Literal["fred", "benzinga", "fmp", "polygon"]] = None,
|
||||
provider: Optional[Literal["benzinga", "fmp", "polygon", "fred"]] = None,
|
||||
) -> CommandOutput[openbb_core.app.model.results.empty.Empty]:
|
||||
"""FUTURES. 2 sources"""
|
||||
inputs = filter_inputs(
|
||||
@@ -734,7 +734,7 @@ class CLASS_economy(Container):
|
||||
def gdp(
|
||||
self,
|
||||
chart: bool = False,
|
||||
provider: Optional[Literal["fred", "benzinga", "fmp", "polygon"]] = None,
|
||||
provider: Optional[Literal["benzinga", "fmp", "polygon", "fred"]] = None,
|
||||
) -> CommandOutput[openbb_core.app.model.results.empty.Empty]:
|
||||
"""GDP."""
|
||||
inputs = filter_inputs(
|
||||
@@ -756,7 +756,7 @@ class CLASS_economy(Container):
|
||||
def glbonds(
|
||||
self,
|
||||
chart: bool = False,
|
||||
provider: Optional[Literal["fred", "benzinga", "fmp", "polygon"]] = None,
|
||||
provider: Optional[Literal["benzinga", "fmp", "polygon", "fred"]] = None,
|
||||
) -> CommandOutput[openbb_core.app.model.results.empty.Empty]:
|
||||
"""GLBONDS."""
|
||||
inputs = filter_inputs(
|
||||
@@ -778,7 +778,7 @@ class CLASS_economy(Container):
|
||||
def indices(
|
||||
self,
|
||||
chart: bool = False,
|
||||
provider: Optional[Literal["fred", "benzinga", "fmp", "polygon"]] = None,
|
||||
provider: Optional[Literal["benzinga", "fmp", "polygon", "fred"]] = None,
|
||||
) -> CommandOutput[openbb_core.app.model.results.empty.Empty]:
|
||||
"""INDICES."""
|
||||
inputs = filter_inputs(
|
||||
@@ -800,7 +800,7 @@ class CLASS_economy(Container):
|
||||
def overview(
|
||||
self,
|
||||
chart: bool = False,
|
||||
provider: Optional[Literal["fred", "benzinga", "fmp", "polygon"]] = None,
|
||||
provider: Optional[Literal["benzinga", "fmp", "polygon", "fred"]] = None,
|
||||
) -> CommandOutput[openbb_core.app.model.results.empty.Empty]:
|
||||
"""OVERVIEW."""
|
||||
inputs = filter_inputs(
|
||||
@@ -822,7 +822,7 @@ class CLASS_economy(Container):
|
||||
def perfmap(
|
||||
self,
|
||||
chart: bool = False,
|
||||
provider: Optional[Literal["fred", "benzinga", "fmp", "polygon"]] = None,
|
||||
provider: Optional[Literal["benzinga", "fmp", "polygon", "fred"]] = None,
|
||||
) -> CommandOutput[openbb_core.app.model.results.empty.Empty]:
|
||||
"""PERFMAP."""
|
||||
inputs = filter_inputs(
|
||||
@@ -844,7 +844,7 @@ class CLASS_economy(Container):
|
||||
def performance(
|
||||
self,
|
||||
chart: bool = False,
|
||||
provider: Optional[Literal["fred", "benzinga", "fmp", "polygon"]] = None,
|
||||
provider: Optional[Literal["benzinga", "fmp", "polygon", "fred"]] = None,
|
||||
) -> CommandOutput[openbb_core.app.model.results.empty.Empty]:
|
||||
"""PERFORMANCE."""
|
||||
inputs = filter_inputs(
|
||||
@@ -866,7 +866,7 @@ class CLASS_economy(Container):
|
||||
def revenue(
|
||||
self,
|
||||
chart: bool = False,
|
||||
provider: Optional[Literal["fred", "benzinga", "fmp", "polygon"]] = None,
|
||||
provider: Optional[Literal["benzinga", "fmp", "polygon", "fred"]] = None,
|
||||
) -> CommandOutput[openbb_core.app.model.results.empty.Empty]:
|
||||
"""REVENUE."""
|
||||
inputs = filter_inputs(
|
||||
@@ -888,7 +888,7 @@ class CLASS_economy(Container):
|
||||
def rgdp(
|
||||
self,
|
||||
chart: bool = False,
|
||||
provider: Optional[Literal["fred", "benzinga", "fmp", "polygon"]] = None,
|
||||
provider: Optional[Literal["benzinga", "fmp", "polygon", "fred"]] = None,
|
||||
) -> CommandOutput[openbb_core.app.model.results.empty.Empty]:
|
||||
"""RGDP."""
|
||||
inputs = filter_inputs(
|
||||
@@ -910,7 +910,7 @@ class CLASS_economy(Container):
|
||||
def rtps(
|
||||
self,
|
||||
chart: bool = False,
|
||||
provider: Optional[Literal["fred", "benzinga", "fmp", "polygon"]] = None,
|
||||
provider: Optional[Literal["benzinga", "fmp", "polygon", "fred"]] = None,
|
||||
) -> CommandOutput[openbb_core.app.model.results.empty.Empty]:
|
||||
"""RTPS."""
|
||||
inputs = filter_inputs(
|
||||
@@ -932,7 +932,7 @@ class CLASS_economy(Container):
|
||||
def search_index(
|
||||
self,
|
||||
chart: bool = False,
|
||||
provider: Optional[Literal["fred", "benzinga", "fmp", "polygon"]] = None,
|
||||
provider: Optional[Literal["benzinga", "fmp", "polygon", "fred"]] = None,
|
||||
) -> CommandOutput[openbb_core.app.model.results.empty.Empty]:
|
||||
"""SEARCH_INDEX."""
|
||||
inputs = filter_inputs(
|
||||
@@ -954,7 +954,7 @@ class CLASS_economy(Container):
|
||||
def spending(
|
||||
self,
|
||||
chart: bool = False,
|
||||
provider: Optional[Literal["fred", "benzinga", "fmp", "polygon"]] = None,
|
||||
provider: Optional[Literal["benzinga", "fmp", "polygon", "fred"]] = None,
|
||||
) -> CommandOutput[openbb_core.app.model.results.empty.Empty]:
|
||||
"""SPENDING."""
|
||||
inputs = filter_inputs(
|
||||
@@ -976,7 +976,7 @@ class CLASS_economy(Container):
|
||||
def trust(
|
||||
self,
|
||||
chart: bool = False,
|
||||
provider: Optional[Literal["fred", "benzinga", "fmp", "polygon"]] = None,
|
||||
provider: Optional[Literal["benzinga", "fmp", "polygon", "fred"]] = None,
|
||||
) -> CommandOutput[openbb_core.app.model.results.empty.Empty]:
|
||||
"""TRUST."""
|
||||
inputs = filter_inputs(
|
||||
@@ -998,7 +998,7 @@ class CLASS_economy(Container):
|
||||
def usbonds(
|
||||
self,
|
||||
chart: bool = False,
|
||||
provider: Optional[Literal["fred", "benzinga", "fmp", "polygon"]] = None,
|
||||
provider: Optional[Literal["benzinga", "fmp", "polygon", "fred"]] = None,
|
||||
) -> CommandOutput[openbb_core.app.model.results.empty.Empty]:
|
||||
"""USBONDS."""
|
||||
inputs = filter_inputs(
|
||||
@@ -1020,7 +1020,7 @@ class CLASS_economy(Container):
|
||||
def valuation(
|
||||
self,
|
||||
chart: bool = False,
|
||||
provider: Optional[Literal["fred", "benzinga", "fmp", "polygon"]] = None,
|
||||
provider: Optional[Literal["benzinga", "fmp", "polygon", "fred"]] = None,
|
||||
) -> CommandOutput[openbb_core.app.model.results.empty.Empty]:
|
||||
"""VALUATION."""
|
||||
inputs = filter_inputs(
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
{
|
||||
"crypto_load": "/crypto/load",
|
||||
"__extensions__": "",
|
||||
"__app__": "",
|
||||
"crypto": "/crypto",
|
||||
"economy_corecpi": "/economy/corecpi",
|
||||
"economy": "/economy",
|
||||
|
||||
@@ -629,13 +629,13 @@ class PathHandler:
|
||||
@classmethod
|
||||
def build_module_name(cls, path: str) -> str:
|
||||
if path == "":
|
||||
return "__extensions__"
|
||||
return "__app__"
|
||||
return cls.clean_path(path=path)
|
||||
|
||||
@classmethod
|
||||
def build_module_class(cls, path: str) -> str:
|
||||
if path == "":
|
||||
return "Extensions"
|
||||
return "App"
|
||||
return f"CLASS_{cls.clean_path(path=path)}"
|
||||
|
||||
|
||||
|
||||
Reference in New Issue
Block a user