From dd41b8461da8bca1c545df7f90c79f7defd407e1 Mon Sep 17 00:00:00 2001 From: Pratyush Shukla Date: Wed, 12 Apr 2023 15:27:05 +0530 Subject: [PATCH] Fixed `crypto`, `economy`, `forex` commands in`reports` menu (#4717) (#4729) * Fixed `crypto`, `economy`, `forex` commands in`reports` menu * Modified sdk.py to use Feedparser API to get news * Made `basic_info` and `trading_pair_info` tables look prettier in `crypto` template * Fixed news dataframe by modifying the columns in `economy` and `forex` * Modified `trail_maps.csv` and generated `sdk.py` * fixing forecast dashboard --------- Co-authored-by: hjoaquim --- .../sdk/controllers/stocks_sdk_controller.py | 2 +- .../core/sdk/models/stocks_sdk_model.py | 2 +- openbb_terminal/core/sdk/trail_map.csv | 12 +++++----- .../dashboards/voila/forecast.ipynb | 9 +++++--- .../reports/templates/crypto.ipynb | 5 +++++ .../reports/templates/economy.ipynb | 22 ++++++++++++------- .../reports/templates/equity.ipynb | 1 + openbb_terminal/reports/templates/etf.ipynb | 6 ++++- .../reports/templates/forecast.ipynb | 1 + openbb_terminal/reports/templates/forex.ipynb | 18 +++++++++------ .../reports/templates/portfolio.ipynb | 1 + openbb_terminal/sdk.py | 4 ++-- 12 files changed, 54 insertions(+), 29 deletions(-) diff --git a/openbb_terminal/core/sdk/controllers/stocks_sdk_controller.py b/openbb_terminal/core/sdk/controllers/stocks_sdk_controller.py index bd3bad6a5cf..ae49c3f753b 100644 --- a/openbb_terminal/core/sdk/controllers/stocks_sdk_controller.py +++ b/openbb_terminal/core/sdk/controllers/stocks_sdk_controller.py @@ -24,7 +24,7 @@ class StocksController(model.StocksRoot): Attributes: `candle`: Show candle plot of loaded ticker.\n `load`: Load a symbol to perform analysis using the string above as a template.\n - `news`: Get news for a given term and source. [Source: Feedparser]\n + `news`: Get news for a given term and source. [Source: Ultima Insights News Monitor]\n `process_candle`: Process DataFrame into candle style plot.\n `quote`: Gets ticker quote from FMP\n `search`: Search selected query for tickers.\n diff --git a/openbb_terminal/core/sdk/models/stocks_sdk_model.py b/openbb_terminal/core/sdk/models/stocks_sdk_model.py index 511936bcc41..d3bd9b14701 100644 --- a/openbb_terminal/core/sdk/models/stocks_sdk_model.py +++ b/openbb_terminal/core/sdk/models/stocks_sdk_model.py @@ -11,7 +11,7 @@ class StocksRoot(Category): Attributes: `candle`: Show candle plot of loaded ticker.\n `load`: Load a symbol to perform analysis using the string above as a template.\n - `news`: Get news for a given term and source. [Source: Feedparser]\n + `news`: Get news for a given term and source. [Source: Ultima Insights News Monitor]\n `process_candle`: Process DataFrame into candle style plot.\n `quote`: Gets ticker quote from FMP\n `search`: Search selected query for tickers.\n diff --git a/openbb_terminal/core/sdk/trail_map.csv b/openbb_terminal/core/sdk/trail_map.csv index d3544df883b..ae8806b4704 100644 --- a/openbb_terminal/core/sdk/trail_map.csv +++ b/openbb_terminal/core/sdk/trail_map.csv @@ -267,12 +267,12 @@ forex.oanda.positionbook,forex_oanda_model.positionbook_plot_data_request,forex_ forex.oanda.price,forex_oanda_model.fx_price_request,forex_oanda_view.get_fx_price forex.oanda.summary,forex_oanda_model.account_summary_request,forex_oanda_view.get_account_summary forex.quote,forex_sdk_helpers.quote, +funds.carbon,funds_mstarpy_model.load_carbon_metrics, +funds.exclusion,funds_mstarpy_model.load_exclusion_policy, +funds.historical,funds_mstarpy_model.get_historical,funds_mstarpy_view.display_historical +funds.holdings,funds_mstarpy_model.load_holdings, funds.load,funds_mstarpy_model.load_funds, funds.search,funds_mstarpy_model.search_funds, -funds.holdings,funds_mstarpy_model.load_holdings, -funds.exclusion,funds_mstarpy_model.load_exclusion_policy, -funds.carbon,funds_mstarpy_model.load_carbon_metrics, -funds.historical,funds_mstarpy_model.get_historical,funds_mstarpy_view.display_historical funds.sector,funds_mstarpy_model.get_sector,funds_mstarpy_view.display_sector futures.curve,futures_yfinance_model.get_curve_futures,futures_yfinance_view.display_curve futures.historical,futures_sdk_model.get_historical,futures_yfinance_view.display_historical @@ -314,7 +314,7 @@ keys.ultima,keys_model.set_ultima_key, keys.walert,keys_model.set_walert_key, login,sdk_session.login, logout,sdk_session.logout, -news,common_ultima_newsmonitor_model.get_news, +news,common_feedparser_model.get_news, portfolio.alloc.assets,portfolio_model.get_assets_allocation, portfolio.alloc.countries,portfolio_model.get_countries_allocation, portfolio.alloc.regions,portfolio_model.get_regions_allocation, @@ -506,6 +506,7 @@ stocks.ins.lpsb,stocks_insider_sdk_helper.lpsb, stocks.ins.print_insider_data,stocks_insider_openinsider_model.get_print_insider_data,stocks_insider_openinsider_view.print_insider_data stocks.ins.stats,stocks_insider_sdk_helper.stats, stocks.load,stocks_helper.load, +stocks.news,common_ultima_newsmonitor_model.get_news, stocks.options.chains,stocks_options_sdk_helper.get_full_option_chain, stocks.options.dte,stocks_options_yfinance_model.get_dte, stocks.options.eodchain,stocks_options_intrinio_model.get_full_chain_eod, @@ -525,7 +526,6 @@ stocks.options.unu,stocks_options_fdscanner_model.unusual_options,stocks_options stocks.options.voi,stocks_options_view.plot_voi, stocks.options.vol,stocks_options_view.plot_vol, stocks.options.vsurf,stocks_options_yfinance_model.get_iv_surface,stocks_options_yfinance_view.display_vol_surface -stocks.news,common_ultima_newsmonitor_model.get_news, stocks.process_candle,stocks_helper.process_candle, stocks.qa.beta,stocks_qa_beta_model.beta_model,stocks_qa_beta_view.beta_view stocks.qa.capm,stocks_qa_factors_model.capm_information, diff --git a/openbb_terminal/dashboards/voila/forecast.ipynb b/openbb_terminal/dashboards/voila/forecast.ipynb index 75a7c7ec6c0..50ec40fe0e2 100644 --- a/openbb_terminal/dashboards/voila/forecast.ipynb +++ b/openbb_terminal/dashboards/voila/forecast.ipynb @@ -17,7 +17,9 @@ "import pandas as pd\n", "from IPython.display import display\n", "\n", - "theme.apply_style()" + "from openbb_terminal import OpenBBFigure, theme\n", + "\n", + "theme.apply_style(\"light\")" ] }, { @@ -29,10 +31,11 @@ "source": [ "# Suppressing sdk logs\n", "from openbb_terminal.core.session.current_system import set_system_variable\n", + "\n", "set_system_variable(\"LOGGING_SUPPRESS\", True)\n", "\n", "# Import the OpenBB SDK\n", - "from openbb_terminal.sdk import openbb, widgets" + "from openbb_terminal.sdk import openbb" ] }, { @@ -356,7 +359,7 @@ "name": "python", "nbconvert_exporter": "python", "pygments_lexer": "ipython3", - "version": "3.9.6" + "version": "3.9.13" }, "metadata": { "interpreter": { diff --git a/openbb_terminal/reports/templates/crypto.ipynb b/openbb_terminal/reports/templates/crypto.ipynb index 7027e1b18d4..d139c707d6d 100644 --- a/openbb_terminal/reports/templates/crypto.ipynb +++ b/openbb_terminal/reports/templates/crypto.ipynb @@ -46,6 +46,7 @@ "source": [ "# Suppressing sdk logs\n", "from openbb_terminal.core.session.current_system import set_system_variable\n", + "\n", "set_system_variable(\"LOGGING_SUPPRESS\", True)\n", "\n", "# Import the OpenBB SDK\n", @@ -141,6 +142,8 @@ "\n", "basic_info = openbb.crypto.dd.basic(ticker)\n", "if not basic_info.empty:\n", + " basic_info[\"Metric\"] = basic_info[\"Metric\"].str.title()\n", + " basic_info[\"Metric\"] = basic_info[\"Metric\"].str.replace(\"_\", \" \")\n", " basic_info = basic_info.set_index(\"Metric\")\n", " basic_info" ] @@ -424,6 +427,8 @@ "if (isinstance(trading_pair_info, pd.DataFrame) and not trading_pair_info.empty) or (\n", " not isinstance(trading_pair_info, pd.DataFrame) and trading_pair_info\n", "):\n", + " trading_pair_info[\"Metric\"] = trading_pair_info[\"Metric\"].str.title()\n", + " trading_pair_info[\"Metric\"] = trading_pair_info[\"Metric\"].str.replace(\"_\", \" \")\n", " trading_pair_info = trading_pair_info.set_index(\"Metric\")\n", " trading_pair_info\n", "else:\n", diff --git a/openbb_terminal/reports/templates/economy.ipynb b/openbb_terminal/reports/templates/economy.ipynb index 9ba2e9a30c6..5850a04baa8 100644 --- a/openbb_terminal/reports/templates/economy.ipynb +++ b/openbb_terminal/reports/templates/economy.ipynb @@ -46,6 +46,7 @@ "source": [ "# Suppressing sdk logs\n", "from openbb_terminal.core.session.current_system import set_system_variable\n", + "\n", "set_system_variable(\"LOGGING_SUPPRESS\", True)\n", "\n", "# Import the OpenBB SDK\n", @@ -157,13 +158,15 @@ "try:\n", " news = openbb.news(\"economy\")\n", " news.columns = news.columns.str.title()\n", - " news[\"Title\"] = news.apply(lambda x: f'{x[\"Title\"]}', axis=1)\n", + " news = news.rename(\n", + " columns={\"Date\": \"Published\", \"Description\": \"Title\", \"Url\": \"Link\"}\n", + " )\n", + " news[\"Title\"] = news.apply(\n", + " lambda x: f'{x[\"Title\"]}', axis=1\n", + " )\n", " news = news[[\"Title\", \"Published\"]]\n", " news[\"Published\"] = pd.to_datetime(news[\"Published\"]).dt.strftime(\"%Y-%m-%d %H:%M\")\n", - " news.set_index(\"Published\", inplace=True)\n", - "\n", - " news = OpenBBFigure.to_table(news, print_index=True, columnwidth=[1.3, 7], width=1100)\n", - " news.update_layout(clickmode=\"event+select\")\n", + " news = news.set_index(\"Published\")\n", "except:\n", " news = pd.DataFrame()" ] @@ -667,9 +670,12 @@ "\n", "if not news.empty:\n", " htmlcode += widgets.row(\n", - " [widgets.h(3, \"Top news on 'economy' keyword (source: Newsapi)\") + news.to_html()]\n", + " [\n", + " widgets.h(3, \"Top news on 'economy' keyword (source: Feedparser)\")\n", + " + news.to_html(escape=False)\n", + " ]\n", " )\n", - " \n", + "\n", "body += widgets.add_tab(\"SUMMARY\", htmlcode)\n", "\n", "# Events\n", @@ -752,7 +758,7 @@ "name": "python", "nbconvert_exporter": "python", "pygments_lexer": "ipython3", - "version": "3.9.13" + "version": "3.10.9" }, "vscode": { "interpreter": { diff --git a/openbb_terminal/reports/templates/equity.ipynb b/openbb_terminal/reports/templates/equity.ipynb index f9c89911a12..685b73efa3e 100644 --- a/openbb_terminal/reports/templates/equity.ipynb +++ b/openbb_terminal/reports/templates/equity.ipynb @@ -40,6 +40,7 @@ "source": [ "# Suppressing sdk logs\n", "from openbb_terminal.core.session.current_system import set_system_variable\n", + "\n", "set_system_variable(\"LOGGING_SUPPRESS\", True)\n", "\n", "# Import the OpenBB SDK\n", diff --git a/openbb_terminal/reports/templates/etf.ipynb b/openbb_terminal/reports/templates/etf.ipynb index c172825803d..3dea34865eb 100644 --- a/openbb_terminal/reports/templates/etf.ipynb +++ b/openbb_terminal/reports/templates/etf.ipynb @@ -38,6 +38,7 @@ "source": [ "# Suppressing sdk logs\n", "from openbb_terminal.core.session.current_system import set_system_variable\n", + "\n", "set_system_variable(\"LOGGING_SUPPRESS\", True)\n", "\n", "# Import the OpenBB SDK\n", @@ -209,7 +210,10 @@ "if \"Percentage\" in weights_df.columns:\n", " weights_df.columns = [\"Percentage\"]\n", "\n", - "if \"Percentage\" in weights_df.columns and len(weights_df[weights_df[\"Percentage\"] > 10].index) > 1:\n", + "if (\n", + " \"Percentage\" in weights_df.columns\n", + " and len(weights_df[weights_df[\"Percentage\"] > 10].index) > 1\n", + "):\n", " colors = theme.get_colors()\n", " fig = OpenBBFigure.create_subplots(\n", " 1,\n", diff --git a/openbb_terminal/reports/templates/forecast.ipynb b/openbb_terminal/reports/templates/forecast.ipynb index 2f5cb594f43..03763c973c3 100644 --- a/openbb_terminal/reports/templates/forecast.ipynb +++ b/openbb_terminal/reports/templates/forecast.ipynb @@ -41,6 +41,7 @@ "source": [ "# Suppressing sdk logs\n", "from openbb_terminal.core.session.current_system import set_system_variable\n", + "\n", "set_system_variable(\"LOGGING_SUPPRESS\", True)\n", "\n", "# Import the OpenBB SDK\n", diff --git a/openbb_terminal/reports/templates/forex.ipynb b/openbb_terminal/reports/templates/forex.ipynb index 1f4c7465b80..0fd7ec127c5 100644 --- a/openbb_terminal/reports/templates/forex.ipynb +++ b/openbb_terminal/reports/templates/forex.ipynb @@ -42,6 +42,7 @@ "source": [ "# Suppressing sdk logs\n", "from openbb_terminal.core.session.current_system import set_system_variable\n", + "\n", "set_system_variable(\"LOGGING_SUPPRESS\", True)\n", "\n", "# Import the OpenBB SDK\n", @@ -470,15 +471,18 @@ "# latest news\n", "try:\n", " news = openbb.news(term=ticker).head(10)\n", + " news.columns = news.columns.str.title()\n", "\n", - " news[\"published\"] = pd.to_datetime(news[\"published\"])\n", - " news[\"published\"] = pd.to_datetime(\n", - " news[\"published\"], format=\"%d/%m/%y %H:%M:%S\"\n", - " ).dt.strftime(\"%Y-%m-%d\")\n", - " news = news[[\"published\", \"title\", \"link\"]]\n", + " news = news.rename(\n", + " columns={\"Date\": \"Published\", \"Description\": \"Title\", \"Url\": \"Link\"}\n", + " )\n", + " news[\"Title\"] = news.apply(\n", + " lambda x: f'{x[\"Title\"]}', axis=1\n", + " )\n", + " news = news[[\"Title\", \"Published\"]]\n", + " news[\"Published\"] = pd.to_datetime(news[\"Published\"]).dt.strftime(\"%Y-%m-%d %H:%M\")\n", "\n", - " news[\"link\"] = news[\"link\"].apply(lambda x: f'{x}')\n", - " news = news.set_index(\"published\")\n", + " news = news.set_index(\"Published\")\n", " news.sort_index()\n", "except:\n", " news = pd.DataFrame()" diff --git a/openbb_terminal/reports/templates/portfolio.ipynb b/openbb_terminal/reports/templates/portfolio.ipynb index 52b3dc2601c..014dc8c8897 100644 --- a/openbb_terminal/reports/templates/portfolio.ipynb +++ b/openbb_terminal/reports/templates/portfolio.ipynb @@ -43,6 +43,7 @@ "source": [ "# Suppressing sdk logs\n", "from openbb_terminal.core.session.current_system import set_system_variable\n", + "\n", "set_system_variable(\"LOGGING_SUPPRESS\", True)\n", "\n", "# Import the OpenBB SDK\n", diff --git a/openbb_terminal/sdk.py b/openbb_terminal/sdk.py index ee4fc6cb09b..77b888dc748 100644 --- a/openbb_terminal/sdk.py +++ b/openbb_terminal/sdk.py @@ -46,7 +46,7 @@ class OpenBBSDK: SDKLogger() self.login = lib.sdk_session.login self.logout = lib.sdk_session.logout - self.news = lib.common_ultima_newsmonitor_model.get_news + self.news = lib.common_feedparser_model.get_news self.whoami = lib.sdk_session.whoami SDKLogger._try_to_login(self) @@ -516,7 +516,7 @@ class OpenBBSDK: Attributes: `candle`: Show candle plot of loaded ticker.\n `load`: Load a symbol to perform analysis using the string above as a template.\n - `news`: Get news for a given term and source. [Source: Feedparser]\n + `news`: Get news for a given term and source. [Source: Ultima Insights News Monitor]\n `process_candle`: Process DataFrame into candle style plot.\n `quote`: Gets ticker quote from FMP\n `search`: Search selected query for tickers.\n