mirror of
https://github.com/OpenBB-finance/OpenBB.git
synced 2026-11-13 21:02:13 +00:00
poc with platform as a menu and as command
This commit is contained in:
1
openbb_terminal/miscellaneous/i18n/en.yml
vendored
1
openbb_terminal/miscellaneous/i18n/en.yml
vendored
@@ -113,6 +113,7 @@ en:
|
||||
economy: global macroeconomic data, e.g. futures, yield, treasury
|
||||
forex: foreign exchanges, quotes, forward rates for currency pairs and oanda integration
|
||||
funds: mutual funds search, overview, holdings and sector weights
|
||||
poc_plat_equity: poc for platform's equity router
|
||||
futures: commodities, bonds, index, bitcoin and forex
|
||||
futures/search: search for a future based on category or exchange
|
||||
futures/historical: get historical timeseries
|
||||
|
||||
75
openbb_terminal/poc_platform_equity_controller.py
Normal file
75
openbb_terminal/poc_platform_equity_controller.py
Normal file
@@ -0,0 +1,75 @@
|
||||
"""Platform Equity Controller."""
|
||||
__docformat__ = "numpy"
|
||||
|
||||
import logging
|
||||
from functools import partial, update_wrapper
|
||||
from types import MethodType
|
||||
from typing import List, Optional
|
||||
|
||||
from openbb import obb
|
||||
|
||||
from argparse_translator.argparse_class_processor import ArgparseClassProcessor
|
||||
from openbb_terminal.core.session.current_user import get_current_user
|
||||
from openbb_terminal.custom_prompt_toolkit import NestedCompleter
|
||||
from openbb_terminal.menu import session
|
||||
from openbb_terminal.parent_classes import BaseController
|
||||
from openbb_terminal.rich_config import MenuText, console
|
||||
|
||||
# pylint: disable=R1710,import-outside-toplevel
|
||||
|
||||
logger = logging.getLogger(__name__)
|
||||
|
||||
equity = ArgparseClassProcessor(target_class=obb.equity)
|
||||
|
||||
|
||||
class PocPlatformEquityController(BaseController):
|
||||
"""Forex Controller class."""
|
||||
|
||||
CHOICES_COMMANDS = list(equity.translators.keys())
|
||||
|
||||
PATH = "/pocplat/"
|
||||
# FILE_PATH = os.path.join(os.path.dirname(__file__), "README.md")
|
||||
CHOICES_GENERATION = True
|
||||
|
||||
def __init__(self, queue: Optional[List[str]] = None):
|
||||
"""Construct Data."""
|
||||
super().__init__(queue)
|
||||
|
||||
self._generate_commands()
|
||||
|
||||
if session and get_current_user().preferences.USE_PROMPT_TOOLKIT:
|
||||
choices: dict = self.choices_default
|
||||
self.completer = NestedCompleter.from_nested_dict(choices)
|
||||
|
||||
def _generate_commands(self):
|
||||
for name, translator in equity.translators.items():
|
||||
|
||||
def method(self, other_args: List[str], translator=translator):
|
||||
parser = translator.parser
|
||||
|
||||
if ns_parser := self.parse_known_args_and_warn(parser, other_args):
|
||||
try:
|
||||
obbject = translator.execute_func(parsed_args=ns_parser)
|
||||
console.print(obbject.to_dataframe())
|
||||
|
||||
except Exception as e:
|
||||
console.print(f"[red]{e}[/]\n")
|
||||
return
|
||||
|
||||
# Bind the method to the class
|
||||
bound_method = MethodType(method, self.__class__)
|
||||
|
||||
# Update the wrapper and set the attribute
|
||||
bound_method = update_wrapper(
|
||||
partial(bound_method, translator=translator), method
|
||||
)
|
||||
setattr(self.__class__, f"call_{name}", bound_method)
|
||||
|
||||
def print_help(self):
|
||||
"""Print help."""
|
||||
mt = MenuText("poc_plat_equity/", 80)
|
||||
|
||||
for cmd in self.CHOICES_COMMANDS:
|
||||
mt.add_cmd(cmd)
|
||||
|
||||
console.print(text=mt.menu_text, menu="POC Platform Equity")
|
||||
@@ -8,7 +8,9 @@ from datetime import datetime, timedelta
|
||||
from typing import List, Optional
|
||||
|
||||
import financedatabase as fd
|
||||
from openbb import obb
|
||||
|
||||
from argparse_translator.argparse_class_processor import ArgparseClassProcessor
|
||||
from openbb_terminal import config_terminal
|
||||
from openbb_terminal.common import (
|
||||
feedparser_view,
|
||||
@@ -35,8 +37,6 @@ from openbb_terminal.terminal_helper import suppress_stdout
|
||||
|
||||
logger = logging.getLogger(__name__)
|
||||
|
||||
from openbb import obb
|
||||
from argparse_translator.argparse_class_processor import ArgparseClassProcessor
|
||||
|
||||
equity_price_translations = ArgparseClassProcessor(target_class=obb.equity.price)
|
||||
|
||||
@@ -157,7 +157,9 @@ class StocksController(StockBaseController):
|
||||
|
||||
def call_load(self, other_args: List[str]):
|
||||
"""Process load command."""
|
||||
translator = equity_price_translations.get_translator(command="historical")
|
||||
translator = equity_price_translations.get_translator(
|
||||
command="equity_price_historical"
|
||||
)
|
||||
parser = translator.parser
|
||||
|
||||
if ns_parser := self.parse_known_args_and_warn(parser, other_args):
|
||||
|
||||
@@ -108,6 +108,7 @@ class TerminalController(BaseController):
|
||||
"futures",
|
||||
"fixedincome",
|
||||
"funds",
|
||||
"poc_plat_equity",
|
||||
]
|
||||
|
||||
if is_auth_enabled():
|
||||
@@ -244,6 +245,7 @@ class TerminalController(BaseController):
|
||||
mt.add_menu("fixedincome")
|
||||
mt.add_menu("alternative")
|
||||
mt.add_menu("funds")
|
||||
mt.add_menu("poc_plat_equity")
|
||||
mt.add_raw("\n")
|
||||
mt.add_info("_toolkits_")
|
||||
mt.add_menu("econometrics")
|
||||
@@ -605,6 +607,14 @@ class TerminalController(BaseController):
|
||||
|
||||
self.queue = self.load_class(FundController, self.queue)
|
||||
|
||||
def call_poc_plat_equity(self, _):
|
||||
"""Process poc_platform_equity command."""
|
||||
from openbb_terminal.poc_platform_equity_controller import (
|
||||
PocPlatformEquityController,
|
||||
)
|
||||
|
||||
self.queue = self.load_class(PocPlatformEquityController, self.queue)
|
||||
|
||||
def call_intro(self, _):
|
||||
"""Process intro command."""
|
||||
webbrowser.open(
|
||||
|
||||
Reference in New Issue
Block a user