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:
montezdesousa
2022-11-24 10:48:14 +00:00
committed by GitHub
parent 244eaa3d1e
commit a91b8728a1
4 changed files with 84 additions and 37 deletions

View File

@@ -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

View File

@@ -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,
1 trail model view
333 portfolio.var openbb_terminal.portfolio.portfolio_model.get_var
334 portfolio.es openbb_terminal.portfolio.portfolio_model.get_es
335 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
336 stocks.ba.cnews openbb_terminal.stocks.behavioural_analysis.finnhub_model.get_company_news
337 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
338 stocks.ca.similar openbb_terminal.stocks.comparison_analysis.sdk_helpers.get_similar

View 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
1 trail model view
2 portfolio.po.load openbb_terminal.portfolio.portfolio_optimization.po_model.generate_portfolio
3 portfolio.po.file openbb_terminal.portfolio.portfolio_optimization.po_model.load_parameters_file
4 portfolio.po.show openbb_terminal.portfolio.portfolio_optimization.po_model.show
5 portfolio.po.load_bl_views openbb_terminal.portfolio.portfolio_optimization.excel_model.load_bl_views
6 portfolio.po.maxsharpe openbb_terminal.portfolio.portfolio_optimization.po_model.get_maxsharpe
7 portfolio.po.minrisk openbb_terminal.portfolio.portfolio_optimization.po_model.get_minrisk
8 portfolio.po.maxutil openbb_terminal.portfolio.portfolio_optimization.po_model.get_maxutil
9 portfolio.po.maxret openbb_terminal.portfolio.portfolio_optimization.po_model.get_maxret
10 portfolio.po.maxdiv openbb_terminal.portfolio.portfolio_optimization.po_model.get_maxdiv
11 portfolio.po.maxdecorr openbb_terminal.portfolio.portfolio_optimization.po_model.get_maxdecorr
12 portfolio.po.blacklitterman openbb_terminal.portfolio.portfolio_optimization.po_model.get_blacklitterman
13 portfolio.po.ef openbb_terminal.portfolio.portfolio_optimization.po_model.get_ef openbb_terminal.portfolio.portfolio_optimization.po_view.display_ef
14 portfolio.po.riskparity openbb_terminal.portfolio.portfolio_optimization.po_model.get_riskparity
15 portfolio.po.relriskparity openbb_terminal.portfolio.portfolio_optimization.po_model.get_relriskparity
16 portfolio.po.hrp openbb_terminal.portfolio.portfolio_optimization.po_model.get_hrp
17 portfolio.po.herc openbb_terminal.portfolio.portfolio_optimization.po_model.get_herc
18 portfolio.po.nco openbb_terminal.portfolio.portfolio_optimization.po_model.get_nco
19 portfolio.po.hcp openbb_terminal.portfolio.portfolio_optimization.optimizer_model.get_hcp_portfolio
20 portfolio.po.equal openbb_terminal.portfolio.portfolio_optimization.po_model.get_equal
21 portfolio.po.mktcap openbb_terminal.portfolio.portfolio_optimization.po_model.get_mktcap
22 portfolio.po.dividend openbb_terminal.portfolio.portfolio_optimization.po_model.get_dividend
23 portfolio.po.property openbb_terminal.portfolio.portfolio_optimization.po_model.get_property
24 portfolio.po.get_properties openbb_terminal.portfolio.portfolio_optimization.optimizer_model.get_properties
25 portfolio.po.plot openbb_terminal.portfolio.portfolio_optimization.po_view.display_plot openbb_terminal.portfolio.portfolio_optimization.po_view.display_plot

View File

@@ -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)