mirror of
https://github.com/OpenBB-finance/OpenBB.git
synced 2026-10-28 04:52:07 +00:00
SDK import no extras warning (#3550)
* warn users if no extras * add path to config * warning first time only * this btter
This commit is contained in:
@@ -1,18 +1,56 @@
|
||||
from pathlib import Path
|
||||
from typing import Dict, Optional
|
||||
|
||||
import dotenv
|
||||
import pandas as pd
|
||||
|
||||
from openbb_terminal.core.config.paths import MISCELLANEOUS_DIRECTORY
|
||||
from openbb_terminal.base_helpers import load_env_vars, strtobool
|
||||
from openbb_terminal.core.config.paths import MISCELLANEOUS_DIRECTORY, USER_ENV_FILE
|
||||
from openbb_terminal.rich_config import console
|
||||
|
||||
|
||||
DISABLE_FORECASTING_WARNING = load_env_vars(
|
||||
"OPENBB_DISABLE_FORECASTING_WARNING", strtobool, False
|
||||
)
|
||||
try:
|
||||
import darts # pylint: disable=W0611 # noqa: F401
|
||||
|
||||
from darts import utils # pylint: disable=W0611 # noqa: F401
|
||||
|
||||
FORECASTING = True
|
||||
except ImportError:
|
||||
FORECASTING = False
|
||||
FORECASTING_TOOLKIT_ENABLED = True
|
||||
except ModuleNotFoundError:
|
||||
FORECASTING_TOOLKIT_ENABLED = False
|
||||
if not DISABLE_FORECASTING_WARNING:
|
||||
dotenv.set_key(str(USER_ENV_FILE), "OPENBB_DISABLE_FORECASTING_WARNING", "True")
|
||||
console.print(
|
||||
"[yellow]"
|
||||
"Forecasting Toolkit is disabled. "
|
||||
"To use the Forecasting features please install the toolkit following the "
|
||||
"instructions here: https://docs.openbb.co/sdk/quickstart/installation/"
|
||||
"\n"
|
||||
"[/yellow]"
|
||||
)
|
||||
|
||||
DISABLE_OPTIMIZATION_WARNING = load_env_vars(
|
||||
"OPENBB_DISABLE_OPTIMIZATION_WARNING", strtobool, False
|
||||
)
|
||||
try:
|
||||
import riskfolio # pylint: disable=W0611 # noqa: F401
|
||||
|
||||
OPTIMIZATION_TOOLKIT_ENABLED = True
|
||||
except ModuleNotFoundError:
|
||||
OPTIMIZATION_TOOLKIT_ENABLED = False
|
||||
if not DISABLE_OPTIMIZATION_WARNING:
|
||||
dotenv.set_key(
|
||||
str(USER_ENV_FILE), "OPENBB_DISABLE_OPTIMIZATION_WARNING", "True"
|
||||
)
|
||||
console.print(
|
||||
"[yellow]"
|
||||
"Portfolio Optimization Toolkit is disabled. "
|
||||
"To use the Optimization features please install the toolkit following the "
|
||||
"instructions here: https://docs.openbb.co/sdk/quickstart/installation/"
|
||||
"\n"
|
||||
"[/yellow]"
|
||||
)
|
||||
|
||||
|
||||
class TrailMap:
|
||||
@@ -20,6 +58,9 @@ class TrailMap:
|
||||
MAP_FORECASTING_PATH = (
|
||||
MISCELLANEOUS_DIRECTORY / "library" / "trail_map_forecasting.csv"
|
||||
)
|
||||
MAP_OPTIMIZATION_PATH = (
|
||||
MISCELLANEOUS_DIRECTORY / "library" / "trail_map_optimization.csv"
|
||||
)
|
||||
|
||||
@classmethod
|
||||
def load_csv(cls, path: Path = None) -> Dict[str, Dict[str, str]]:
|
||||
@@ -84,9 +125,12 @@ class TrailMap:
|
||||
|
||||
def load(self):
|
||||
map_dict = self.load_csv(path=self.MAP_PATH)
|
||||
if FORECASTING:
|
||||
if FORECASTING_TOOLKIT_ENABLED:
|
||||
map_forecasting_dict = self.load_csv(path=self.MAP_FORECASTING_PATH)
|
||||
map_dict = {**map_dict, **map_forecasting_dict}
|
||||
if OPTIMIZATION_TOOLKIT_ENABLED:
|
||||
map_optimization_dict = self.load_csv(path=self.MAP_OPTIMIZATION_PATH)
|
||||
map_dict = {**map_dict, **map_optimization_dict}
|
||||
|
||||
self.__map_dict = map_dict
|
||||
|
||||
|
||||
@@ -333,30 +333,6 @@ portfolio.perf,openbb_terminal.portfolio.portfolio_model.get_performance_vs_benc
|
||||
portfolio.var,openbb_terminal.portfolio.portfolio_model.get_var,
|
||||
portfolio.es,openbb_terminal.portfolio.portfolio_model.get_es,
|
||||
portfolio.om,openbb_terminal.portfolio.portfolio_model.get_omega,openbb_terminal.portfolio.portfolio_view.display_omega
|
||||
portfolio.po.load,openbb_terminal.portfolio.portfolio_optimization.po_model.generate_portfolio,
|
||||
portfolio.po.file,openbb_terminal.portfolio.portfolio_optimization.po_model.load_parameters_file,
|
||||
portfolio.po.show,openbb_terminal.portfolio.portfolio_optimization.po_model.show,
|
||||
portfolio.po.load_bl_views,openbb_terminal.portfolio.portfolio_optimization.excel_model.load_bl_views,
|
||||
portfolio.po.maxsharpe,openbb_terminal.portfolio.portfolio_optimization.po_model.get_maxsharpe,
|
||||
portfolio.po.minrisk,openbb_terminal.portfolio.portfolio_optimization.po_model.get_minrisk,
|
||||
portfolio.po.maxutil,openbb_terminal.portfolio.portfolio_optimization.po_model.get_maxutil,
|
||||
portfolio.po.maxret,openbb_terminal.portfolio.portfolio_optimization.po_model.get_maxret,
|
||||
portfolio.po.maxdiv,openbb_terminal.portfolio.portfolio_optimization.po_model.get_maxdiv,
|
||||
portfolio.po.maxdecorr,openbb_terminal.portfolio.portfolio_optimization.po_model.get_maxdecorr,
|
||||
portfolio.po.blacklitterman,openbb_terminal.portfolio.portfolio_optimization.po_model.get_blacklitterman,
|
||||
portfolio.po.ef,openbb_terminal.portfolio.portfolio_optimization.po_model.get_ef,openbb_terminal.portfolio.portfolio_optimization.po_view.display_ef
|
||||
portfolio.po.riskparity,openbb_terminal.portfolio.portfolio_optimization.po_model.get_riskparity,
|
||||
portfolio.po.relriskparity,openbb_terminal.portfolio.portfolio_optimization.po_model.get_relriskparity,
|
||||
portfolio.po.hrp,openbb_terminal.portfolio.portfolio_optimization.po_model.get_hrp,
|
||||
portfolio.po.herc,openbb_terminal.portfolio.portfolio_optimization.po_model.get_herc,
|
||||
portfolio.po.nco,openbb_terminal.portfolio.portfolio_optimization.po_model.get_nco,
|
||||
portfolio.po.hcp,openbb_terminal.portfolio.portfolio_optimization.optimizer_model.get_hcp_portfolio,
|
||||
portfolio.po.equal,openbb_terminal.portfolio.portfolio_optimization.po_model.get_equal,
|
||||
portfolio.po.mktcap,openbb_terminal.portfolio.portfolio_optimization.po_model.get_mktcap,
|
||||
portfolio.po.dividend,openbb_terminal.portfolio.portfolio_optimization.po_model.get_dividend,
|
||||
portfolio.po.property,openbb_terminal.portfolio.portfolio_optimization.po_model.get_property,
|
||||
portfolio.po.get_properties,openbb_terminal.portfolio.portfolio_optimization.optimizer_model.get_properties,
|
||||
portfolio.po.plot,openbb_terminal.portfolio.portfolio_optimization.po_view.display_plot,openbb_terminal.portfolio.portfolio_optimization.po_view.display_plot
|
||||
stocks.ba.cnews,openbb_terminal.stocks.behavioural_analysis.finnhub_model.get_company_news,
|
||||
stocks.ba.snews,openbb_terminal.stocks.behavioural_analysis.finnhub_model.get_headlines_sentiment,openbb_terminal.stocks.behavioural_analysis.finnhub_view.display_stock_price_headlines_sentiment
|
||||
stocks.ca.similar,openbb_terminal.stocks.comparison_analysis.sdk_helpers.get_similar,
|
||||
|
||||
|
25
openbb_terminal/miscellaneous/library/trail_map_optimization.csv
vendored
Normal file
25
openbb_terminal/miscellaneous/library/trail_map_optimization.csv
vendored
Normal file
@@ -0,0 +1,25 @@
|
||||
trail,model,view
|
||||
portfolio.po.load,openbb_terminal.portfolio.portfolio_optimization.po_model.generate_portfolio,
|
||||
portfolio.po.file,openbb_terminal.portfolio.portfolio_optimization.po_model.load_parameters_file,
|
||||
portfolio.po.show,openbb_terminal.portfolio.portfolio_optimization.po_model.show,
|
||||
portfolio.po.load_bl_views,openbb_terminal.portfolio.portfolio_optimization.excel_model.load_bl_views,
|
||||
portfolio.po.maxsharpe,openbb_terminal.portfolio.portfolio_optimization.po_model.get_maxsharpe,
|
||||
portfolio.po.minrisk,openbb_terminal.portfolio.portfolio_optimization.po_model.get_minrisk,
|
||||
portfolio.po.maxutil,openbb_terminal.portfolio.portfolio_optimization.po_model.get_maxutil,
|
||||
portfolio.po.maxret,openbb_terminal.portfolio.portfolio_optimization.po_model.get_maxret,
|
||||
portfolio.po.maxdiv,openbb_terminal.portfolio.portfolio_optimization.po_model.get_maxdiv,
|
||||
portfolio.po.maxdecorr,openbb_terminal.portfolio.portfolio_optimization.po_model.get_maxdecorr,
|
||||
portfolio.po.blacklitterman,openbb_terminal.portfolio.portfolio_optimization.po_model.get_blacklitterman,
|
||||
portfolio.po.ef,openbb_terminal.portfolio.portfolio_optimization.po_model.get_ef,openbb_terminal.portfolio.portfolio_optimization.po_view.display_ef
|
||||
portfolio.po.riskparity,openbb_terminal.portfolio.portfolio_optimization.po_model.get_riskparity,
|
||||
portfolio.po.relriskparity,openbb_terminal.portfolio.portfolio_optimization.po_model.get_relriskparity,
|
||||
portfolio.po.hrp,openbb_terminal.portfolio.portfolio_optimization.po_model.get_hrp,
|
||||
portfolio.po.herc,openbb_terminal.portfolio.portfolio_optimization.po_model.get_herc,
|
||||
portfolio.po.nco,openbb_terminal.portfolio.portfolio_optimization.po_model.get_nco,
|
||||
portfolio.po.hcp,openbb_terminal.portfolio.portfolio_optimization.optimizer_model.get_hcp_portfolio,
|
||||
portfolio.po.equal,openbb_terminal.portfolio.portfolio_optimization.po_model.get_equal,
|
||||
portfolio.po.mktcap,openbb_terminal.portfolio.portfolio_optimization.po_model.get_mktcap,
|
||||
portfolio.po.dividend,openbb_terminal.portfolio.portfolio_optimization.po_model.get_dividend,
|
||||
portfolio.po.property,openbb_terminal.portfolio.portfolio_optimization.po_model.get_property,
|
||||
portfolio.po.get_properties,openbb_terminal.portfolio.portfolio_optimization.optimizer_model.get_properties,
|
||||
portfolio.po.plot,openbb_terminal.portfolio.portfolio_optimization.po_view.display_plot,openbb_terminal.portfolio.portfolio_optimization.po_view.display_plot
|
||||
|
@@ -155,16 +155,18 @@ class ReportController(BaseController):
|
||||
utils,
|
||||
)
|
||||
|
||||
forecast = True
|
||||
FORECASTING_TOOLKIT_ENABLED = True
|
||||
except ImportError:
|
||||
forecast = False
|
||||
FORECASTING_TOOLKIT_ENABLED = False
|
||||
console.print(
|
||||
"\n'forecast' menu dependencies are not installed."
|
||||
" This part of the SDK will not be usable.\n\n"
|
||||
"For more information see the official documentation at: "
|
||||
"[blue]https://openbb-finance.github.io/OpenBBTerminal/SDK/[/blue]\n"
|
||||
"[yellow]"
|
||||
"Forecasting Toolkit is disabled. "
|
||||
"To use the Forecasting features please install the toolkit following the "
|
||||
"instructions here: https://docs.openbb.co/sdk/quickstart/installation/"
|
||||
"\n"
|
||||
"[/yellow]"
|
||||
)
|
||||
if forecast:
|
||||
if FORECASTING_TOOLKIT_ENABLED:
|
||||
self.run_report("forecast", other_args)
|
||||
|
||||
@log_start_end(log=logger)
|
||||
|
||||
Reference in New Issue
Block a user