diff options
author | Colin Delahunty <72827203+colin99d@users.noreply.github.com> | 2022-09-28 15:38:34 +0200 |
---|---|---|
committer | GitHub <noreply@github.com> | 2022-09-28 15:38:34 +0200 |
commit | 532daac9fee7c0bd2e340a2dcc1e70c36f11ae02 (patch) | |
tree | c1526d724a502b7b3eead3384f84e498ab124a0f | |
parent | ef36c00f28c32335d65ec4cc96661f7653c4ec91 (diff) |
Fix stock and fund (#2656)
* Added handling for bad data
* Fixed stocks/ba
* Fixed stocks/disc
* Fixed stocks/fa
* Added test fixes
8 files changed, 17 insertions, 7 deletions
diff --git a/openbb_terminal/common/behavioural_analysis/google_view.py b/openbb_terminal/common/behavioural_analysis/google_view.py index 36661fbdf92..e7dbcfa567e 100644 --- a/openbb_terminal/common/behavioural_analysis/google_view.py +++ b/openbb_terminal/common/behavioural_analysis/google_view.py @@ -219,8 +219,7 @@ def display_queries(symbol: str, limit: int = 5, export: str = ""): None """ # Retrieve a dict with top and rising queries - df_related_queries = google_model.get_queries(symbol, limit) - df = df_related_queries[symbol]["top"] + df = google_model.get_queries(symbol, limit) print_rich_table( df, diff --git a/openbb_terminal/mutual_funds/investpy_model.py b/openbb_terminal/mutual_funds/investpy_model.py index dbf848e173c..04ce5405a05 100644 --- a/openbb_terminal/mutual_funds/investpy_model.py +++ b/openbb_terminal/mutual_funds/investpy_model.py @@ -194,5 +194,10 @@ def get_fund_historical( matching_country, ) except RuntimeError as e: + console.print("[red]Error connecting to the data source.[/red]\n") + logger.exception(str(e)) + return pd.DataFrame(), fund_name, fund_symbol, search_country + except ConnectionError as e: + console.print("[red]Error connecting to the data source.[/red]\n") logger.exception(str(e)) return pd.DataFrame(), fund_name, fund_symbol, search_country diff --git a/openbb_terminal/mutual_funds/investpy_view.py b/openbb_terminal/mutual_funds/investpy_view.py index e6cbf5a257d..94d42f079b3 100644 --- a/openbb_terminal/mutual_funds/investpy_view.py +++ b/openbb_terminal/mutual_funds/investpy_view.py @@ -156,6 +156,8 @@ def display_historical( _, ax = plt.subplots(figsize=plot_autoscale(), dpi=PLOT_DPI) else: ax = external_axes[0] + if data.empty: + return ax.plot(data.index, data.Close) ax.set_xlim([data.index[0], data.index[-1]]) ax.set_xlabel("Date") diff --git a/openbb_terminal/stocks/discovery/seeking_alpha_model.py b/openbb_terminal/stocks/discovery/seeking_alpha_model.py index d977d980934..6210a5b537e 100644 --- a/openbb_terminal/stocks/discovery/seeking_alpha_model.py +++ b/openbb_terminal/stocks/discovery/seeking_alpha_model.py @@ -215,7 +215,7 @@ def get_news(news_type: str = "Top-News", limit: int = 5) -> List: news_articles: Dict = get_news_html(news_type) news_to_display = list() - if news_articles: + if "data" in news_articles: for idx, news in enumerate(news_articles["data"]): if idx > limit: break diff --git a/openbb_terminal/stocks/fundamental_analysis/dcf_model.py b/openbb_terminal/stocks/fundamental_analysis/dcf_model.py index a1ad35220d8..3b4006c6f92 100644 --- a/openbb_terminal/stocks/fundamental_analysis/dcf_model.py +++ b/openbb_terminal/stocks/fundamental_analysis/dcf_model.py @@ -426,6 +426,7 @@ def create_dataframe(symbol: str, statement: str, period: str = "annual"): else: return pd.DataFrame(), None, None + statement_currency = "" for currency in CURRENCIES: if currency.lower() in phrase: statement_currency = currency diff --git a/openbb_terminal/stocks/fundamental_analysis/yahoo_finance_model.py b/openbb_terminal/stocks/fundamental_analysis/yahoo_finance_model.py index 6589225ec19..e7d0a7fc7c5 100644 --- a/openbb_terminal/stocks/fundamental_analysis/yahoo_finance_model.py +++ b/openbb_terminal/stocks/fundamental_analysis/yahoo_finance_model.py @@ -379,6 +379,8 @@ def get_financials(symbol: str, statement: str, ratios: bool = False) -> pd.Data index += 1 df = pd.DataFrame(final[1:]) + if df.empty: + return pd.DataFrame() new_headers = [] if statement == "balance-sheet": diff --git a/openbb_terminal/stocks/fundamental_analysis/yahoo_finance_view.py b/openbb_terminal/stocks/fundamental_analysis/yahoo_finance_view.py index e7f994f823c..cbee60f3e9a 100644 --- a/openbb_terminal/stocks/fundamental_analysis/yahoo_finance_view.py +++ b/openbb_terminal/stocks/fundamental_analysis/yahoo_finance_view.py @@ -413,6 +413,9 @@ def display_fundamentals( fundamentals = yahoo_finance_model.get_financials(symbol, statement, ratios) title_str = "Cash Flow Statement" + if fundamentals is None: + return + if fundamentals.empty: # The empty data frame error handling done in model return diff --git a/tests/openbb_terminal/common/behavioural_analysis/test_google_view.py b/tests/openbb_terminal/common/behavioural_analysis/test_google_view.py index 1814b0d7058..c955a6ee1d7 100644 --- a/tests/openbb_terminal/common/behavioural_analysis/test_google_view.py +++ b/tests/openbb_terminal/common/behavioural_analysis/test_google_view.py @@ -54,7 +54,7 @@ def get_queries_response(): } } - return resp + return pd.DataFrame(resp) @pytest.mark.default_cassette("test_google_view") @@ -98,7 +98,5 @@ def test_display_queries(mocker, symbol, limit, export, get_queries_response): if export: pd.testing.assert_frame_equal( export_mock.call_args[0][3], # fourth positional arg is the df - pd.DataFrame( - get_queries_response[symbol]["top"].head(limit) - ), # expected DF + pd.DataFrame(get_queries_response), # expected DF ) |