diff --git a/gamestonk_terminal/stocks/fundamental_analysis/business_insider_view.py b/gamestonk_terminal/stocks/fundamental_analysis/business_insider_view.py index c73fbdb3666..188ac03f726 100644 --- a/gamestonk_terminal/stocks/fundamental_analysis/business_insider_view.py +++ b/gamestonk_terminal/stocks/fundamental_analysis/business_insider_view.py @@ -30,15 +30,16 @@ def display_management(ticker: str, export: str = ""): lambda x: "\n".join(textwrap.wrap(x, width=30)) if isinstance(x, str) else x ) - names = ["Name"] + list(df_new.columns) if not df_new.empty: print_rich_table( df_new, title="Company Managers", - headers=names, + headers=list(df_new.columns), + show_index=True, + index_name="Name", ) - console.print("") + console.print() export_data( export, os.path.dirname(os.path.abspath(__file__)), "mgmt", df_management ) diff --git a/gamestonk_terminal/stocks/fundamental_analysis/financial_modeling_prep/fmp_view.py b/gamestonk_terminal/stocks/fundamental_analysis/financial_modeling_prep/fmp_view.py index 9e5f9a6c538..f6f418161bf 100644 --- a/gamestonk_terminal/stocks/fundamental_analysis/financial_modeling_prep/fmp_view.py +++ b/gamestonk_terminal/stocks/fundamental_analysis/financial_modeling_prep/fmp_view.py @@ -29,7 +29,7 @@ def valinvest_score(ticker: str): """ score = fmp_model.get_score(ticker) console.print(f"Score: {score:.2f}".rstrip("0").rstrip(".") + " %") - console.print("") + console.print() @log_start_end(log=logger) @@ -48,8 +48,9 @@ def display_profile(ticker: str): if not profile.empty: print_rich_table( profile.drop(index=["description", "image"]), - headers=[], - title="Ticker Profile", + headers=[""], + title=f"{ticker.upper()} Profile", + show_index=True, ) console.print(f"\nImage: {profile.loc['image'][0]}") @@ -57,7 +58,7 @@ def display_profile(ticker: str): else: console.print("[red]Unable to get data[/red]") - console.print("") + console.print() @log_start_end(log=logger) @@ -71,8 +72,8 @@ def display_quote(ticker: str): """ quote = fmp_model.get_quote(ticker) - print_rich_table(quote, headers=[], title=f"{ticker} Quote") - console.print("") + print_rich_table(quote, headers=[""], title=f"{ticker} Quote", show_index=True) + console.print() @log_start_end(log=logger) @@ -94,8 +95,13 @@ def display_enterprise( """ df_fa = fmp_model.get_enterprise(ticker, number, quarterly) df_fa = df_fa[df_fa.columns[::-1]] - print_rich_table(df_fa, headers=list(df_fa.columns), title=f"{ticker} Enterprise") - console.print("") + print_rich_table( + df_fa, + headers=list(df_fa.columns), + title=f"{ticker} Enterprise", + show_index=True, + ) + console.print() export_data(export, os.path.dirname(os.path.abspath(__file__)), "enterprise", df_fa) @@ -118,9 +124,9 @@ def display_discounted_cash_flow( """ dcf = fmp_model.get_dcf(ticker, number, quarterly) dcf = dcf[dcf.columns[::-1]] - print_rich_table(dcf, headers=[], title="Discounted Cash Flow") + print_rich_table(dcf, headers=[""], title="Discounted Cash Flow", show_index=True) - console.print("") + console.print() export_data(export, os.path.dirname(os.path.abspath(__file__)), "dcf", dcf) @@ -148,16 +154,16 @@ def display_income_statement( print_rich_table( income.drop(index=["Final link", "Link"]), headers=list(income.columns), - title="Ticker Income Statement", + title=f"{ticker.upper()} Income Statement", show_index=True, ) pd.set_option("display.max_colwidth", None) - console.print("") + console.print() console.print(income.loc["Final link"].to_frame().to_string()) - console.print("") + console.print() console.print(income.loc["Link"].to_frame().to_string()) - console.print("") + console.print() export_data( export, os.path.dirname(os.path.abspath(__file__)), "income", income ) @@ -189,16 +195,16 @@ def display_balance_sheet( print_rich_table( balance.drop(index=["Final link", "Link"]), headers=list(balance.columns), - title="Ticker Balance Sheet", + title=f"{ticker.upper()} Balance Sheet", show_index=True, ) pd.set_option("display.max_colwidth", None) - console.print("") + console.print() console.print(balance.loc["Final link"].to_frame().to_string()) - console.print("") + console.print() console.print(balance.loc["Link"].to_frame().to_string()) - console.print("") + console.print() export_data( export, os.path.dirname(os.path.abspath(__file__)), "balance", balance ) @@ -230,16 +236,16 @@ def display_cash_flow( print_rich_table( cash.drop(index=["Final link", "Link"]), headers=list(cash.columns), - title="Ticker Cash Flow", + title=f"{ticker.upper()} Cash Flow", show_index=True, ) pd.set_option("display.max_colwidth", None) - console.print("") + console.print() console.print(cash.loc["Final link"].to_frame().to_string()) - console.print("") + console.print() console.print(cash.loc["Link"].to_frame().to_string()) - console.print("") + console.print() export_data(export, os.path.dirname(os.path.abspath(__file__)), "cash", cash) else: console.print("[red]Could not get data[/red]\n") @@ -269,10 +275,10 @@ def display_key_metrics( print_rich_table( key_metrics, headers=list(key_metrics.columns), - title="Ticker Key Metrics", + title=f"{ticker.upper()} Key Metrics", show_index=True, ) - console.print("") + console.print() export_data( export, os.path.dirname(os.path.abspath(__file__)), "metrics", key_metrics ) @@ -304,10 +310,10 @@ def display_financial_ratios( print_rich_table( ratios, headers=list(ratios.columns), - title="Ticker Ratios", + title=f"{ticker.upper()} Ratios", show_index=True, ) - console.print("") + console.print() export_data( export, os.path.dirname(os.path.abspath(__file__)), "grratiosowth", ratios ) @@ -337,9 +343,12 @@ def display_financial_statement_growth( if not growth.empty: growth = growth[growth.columns[::-1]] print_rich_table( - growth, headers=list(growth.columns), title="Ticker Growth", show_index=True + growth, + headers=list(growth.columns), + title=f"{ticker.upper()} Growth", + show_index=True, ) - console.print("") + console.print() export_data( export, os.path.dirname(os.path.abspath(__file__)), "growth", growth ) diff --git a/gamestonk_terminal/stocks/fundamental_analysis/yahoo_finance_view.py b/gamestonk_terminal/stocks/fundamental_analysis/yahoo_finance_view.py index c4b5989ade1..b03049a89e5 100644 --- a/gamestonk_terminal/stocks/fundamental_analysis/yahoo_finance_view.py +++ b/gamestonk_terminal/stocks/fundamental_analysis/yahoo_finance_view.py @@ -63,7 +63,10 @@ def display_info(ticker: str): if not df_info.empty: print_rich_table( - df_info, headers=list(df_info.columns), show_index=True, title="Ticker Info" + df_info, + headers=list(df_info.columns), + show_index=True, + title=f"{ticker.upper()} Info", ) else: console.print("[red]Invalid data[/red]\n") @@ -87,16 +90,24 @@ def display_shareholders(ticker: str): df_institutional_shareholders, df_mutualfund_shareholders, ) = yahoo_finance_model.get_shareholders(ticker) - + df_major_holders.columns = ["", ""] dfs = [df_major_holders, df_institutional_shareholders, df_mutualfund_shareholders] - titles = ["Major Holders:\n", "Institutuinal Holders:\n", "Mutual Fund Holders:\n"] - console.print("") + titles = ["Major Holders:\n", "Institutional Holders:\n", "Mutual Fund Holders:\n"] + console.print() + for df, title in zip(dfs, titles): console.print(title) + if "Date Reported" in df.columns: + df["Date Reported"] = df["Date Reported"].apply( + lambda x: x.strftime("%Y-%m-%d") + ) print_rich_table( - df, headers=list(df.columns), show_index=False, title="Ticker Shareholders" + df, + headers=list(df.columns), + show_index=False, + title=f"{ticker.upper()} Shareholders", ) - console.print("") + console.print() @log_start_end(log=logger) @@ -120,7 +131,7 @@ def display_sustainability(ticker: str): print_rich_table( df_sustainability, headers=list(df_sustainability), - title="Ticker Sustainability", + title=f"{ticker.upper()} Sustainability", show_index=True, ) console.print("") @@ -144,7 +155,7 @@ def display_calendar_earnings(ticker: str): df_calendar, show_index=False, headers=list(df_calendar.columns), - title="Ticker Calendar Earnings", + title=f"{ticker.upper()} Calendar Earnings", ) console.print("") @@ -216,7 +227,7 @@ def display_dividends( print_rich_table( div_history.head(limit), headers=["Amount Paid ($)", "Change"], - title="Ticker Historical Dividends", + title=f"{ticker.upper()} Historical Dividends", ) console.print("") export_data(export, os.path.dirname(os.path.abspath(__file__)), "divs", div_history) diff --git a/tests/gamestonk_terminal/stocks/fundamental_analysis/txt/test_yahoo_finance_view/test_call_func[display_shareholders].txt b/tests/gamestonk_terminal/stocks/fundamental_analysis/txt/test_yahoo_finance_view/test_call_func[display_shareholders].txt index b5ae098c325..fc2c7f4640f 100644 --- a/tests/gamestonk_terminal/stocks/fundamental_analysis/txt/test_yahoo_finance_view/test_call_func[display_shareholders].txt +++ b/tests/gamestonk_terminal/stocks/fundamental_analysis/txt/test_yahoo_finance_view/test_call_func[display_shareholders].txt @@ -1,13 +1,13 @@ Major Holders: - 0 1 + 0 0.19% Percentage of Shares Held by All Insider 1 76.24% Percentage of Shares Held by Institutions 2 76.39% Percentage of Float Held by Institutions 3 2322 Number of Institutions Holding Shares -Institutuinal Holders: +Institutional Holders: Holder Shares Date Reported Stake Value 0 Vanguard Group, Inc. (The) 125.443 M 2021-09-29 8.06 % 11.891 B