diff --git a/openbb_terminal/economy/nasdaq_model.py b/openbb_terminal/economy/nasdaq_model.py index 76deea6d749..945870818fe 100644 --- a/openbb_terminal/economy/nasdaq_model.py +++ b/openbb_terminal/economy/nasdaq_model.py @@ -38,6 +38,16 @@ def get_economic_calendar( ------- pd.DataFrame Economic calendar + + Examples + -------- + Get todays economic calendar for the United States + >>> from openbb_terminal.sdk import openbb + >>> calendar = openbb.economy.events("United States") + + To get multiple countries for a given date, pass the same start and end date as well as + a list of countries + >>> calendars = openbb.economy.events(["United States","Canada"], start_date="2022-11-18", end_date="2022-11-18") """ if start_date is None: @@ -128,7 +138,7 @@ def get_country_codes() -> List[str]: @log_start_end(log=logger) @check_api_key(["API_KEY_QUANDL"]) def get_big_mac_index(country_code: str = "USA") -> pd.DataFrame: - """Gets the Big Mac index calculated by the Economist + """Get the Big Mac index calculated by the Economist Parameters ---------- diff --git a/openbb_terminal/economy/sdk_helpers.py b/openbb_terminal/economy/sdk_helpers.py new file mode 100644 index 00000000000..af89786ce50 --- /dev/null +++ b/openbb_terminal/economy/sdk_helpers.py @@ -0,0 +1,40 @@ +"""SDK Helper Functions.""" +__docformat__ = "numpy" + +import pandas as pd +from openbb_terminal.economy import wsj_model, finviz_model + + +def futures(source="WSJ", future_type: str = "Indices") -> pd.DataFrame: + """Get futures data. + + Parameters + ---------- + source : str + Data source for futures data. From the following: WSJ, Finviz + future_type : str + (Finviz only) Future type to get. Can be: Indices, Energy, Metals, Meats, Grains, Softs, Bonds, Currencies. + + Returns + ------- + pd.DataFrame + Dataframe of futures data. + + Examples + -------- + >>> from openbb_terminal.sdk import openbb + >>> wsj_futures = openbb.economy.futures() + + To sort by the largest percent change: + >>> futures_sorted = openbb.economy.futures().sort_values(by="%Chg", ascending=False) + + FinViz provides different options for future types. We can get Meats with the following command: + >>> meat_futures = openbb.economy.futures(source="Finviz", future_type="Meats") + + """ + + if source.lower() == "wsj": + return wsj_model.top_commodities() + if source.lower() == "finviz": + return finviz_model.get_futures(future_type.title()) + return pd.DataFrame() diff --git a/openbb_terminal/forex/sdk_helpers.py b/openbb_terminal/forex/sdk_helpers.py new file mode 100644 index 00000000000..4300a137310 --- /dev/null +++ b/openbb_terminal/forex/sdk_helpers.py @@ -0,0 +1,50 @@ +"""Forex SDK Helpers.""" +__docformat__ = "numpy" + +import pandas as pd +import yfinance as yf +from openbb_terminal.forex import av_model + + +def quote(symbol: str, source: str = "YahooFinance") -> pd.DataFrame: + """Get forex quote. + + Parameters + ---------- + symbol : str + Forex symbol to get quote for. + source : str, optional + Source to get quote from, by default "YahooFinance" + + Returns + ------- + pd.DataFrame + DataFrame of quote data. + + Examples + -------- + >>> from openbb_terminal.sdk import openbb + >>> EUR_USD_quote = openbb.forex.quote("EURUSD") + + This also supports AlphaVantage and will handle different conventions + >>> EUR_USD= openbb.forex.quote("EUR/USD", source="AlphaVantage") + """ + symbol = symbol.replace("/", "").replace("-", "") + to_symbol = symbol[:3] + from_symbol = symbol[3:] + if source == "YahooFinance": + data = yf.download(f"{symbol}=X", period="1d", interval="1m", progress=False) + return pd.DataFrame.from_dict( + { + "Last Refreshed": data.index[-1].strftime("%Y-%m-%d %H:%M:%S %Z"), + "Quote": data.Close[-1], + }, + orient="index", + ) + if source == "AlphaVantage": + to_symbol = symbol[:3] + from_symbol = symbol[3:] + data = av_model.get_quote(to_symbol, from_symbol) + return pd.DataFrame.from_dict(data) + + return pd.DataFrame() diff --git a/openbb_terminal/miscellaneous/library/trail_map.csv b/openbb_terminal/miscellaneous/library/trail_map.csv index 1006a2245da..4a2d33d4d9c 100644 --- a/openbb_terminal/miscellaneous/library/trail_map.csv +++ b/openbb_terminal/miscellaneous/library/trail_map.csv @@ -180,28 +180,28 @@ crypto.onchain.whales,openbb_terminal.cryptocurrency.onchain.whale_alert_model.g crypto.ov.altindex,openbb_terminal.cryptocurrency.overview.blockchaincenter_model.get_altcoin_index,openbb_terminal.cryptocurrency.overview.blockchaincenter_view.display_altcoin_index crypto.ov.btcrb,openbb_terminal.cryptocurrency.overview.glassnode_model.get_btc_rainbow,openbb_terminal.cryptocurrency.overview.glassnode_view.display_btc_rainbow crypto.ov.cbpairs,openbb_terminal.cryptocurrency.overview.coinbase_model.get_trading_pairs,openbb_terminal.cryptocurrency.overview.coinbase_view.display_trading_pairs -crypto.ov.cpplatforms,openbb_terminal.cryptocurrency.overview.coinpaprika_model.get_all_contract_platforms,openbb_terminal.cryptocurrency.overview.coinpaprika_view.display_all_platforms -crypto.ov.cpinfo,openbb_terminal.cryptocurrency.overview.coinpaprika_model.get_coins_info,openbb_terminal.cryptocurrency.overview.coinpaprika_view.display_all_coins_info +crypto.ov.platforms1,openbb_terminal.cryptocurrency.overview.coinpaprika_model.get_all_contract_platforms,openbb_terminal.cryptocurrency.overview.coinpaprika_view.display_all_platforms +crypto.ov.info,openbb_terminal.cryptocurrency.overview.coinpaprika_model.get_coins_info,openbb_terminal.cryptocurrency.overview.coinpaprika_view.display_all_coins_info crypto.ov.cpmarkets,openbb_terminal.cryptocurrency.overview.coinpaprika_model.get_coins_market_info,openbb_terminal.cryptocurrency.overview.coinpaprika_view.display_all_coins_market_info -crypto.ov.cpcontracts,openbb_terminal.cryptocurrency.overview.coinpaprika_model.get_contract_platform,openbb_terminal.cryptocurrency.overview.coinpaprika_view.display_contracts -crypto.ov.cpexmarkets,openbb_terminal.cryptocurrency.overview.coinpaprika_model.get_exchanges_market,openbb_terminal.cryptocurrency.overview.coinpaprika_view.display_exchange_markets +crypto.ov.contracts,openbb_terminal.cryptocurrency.overview.coinpaprika_model.get_contract_platform,openbb_terminal.cryptocurrency.overview.coinpaprika_view.display_contracts +crypto.ov.exmarkets,openbb_terminal.cryptocurrency.overview.coinpaprika_model.get_exchanges_market,openbb_terminal.cryptocurrency.overview.coinpaprika_view.display_exchange_markets crypto.ov.cpglobal,openbb_terminal.cryptocurrency.overview.coinpaprika_model.get_global_market,openbb_terminal.cryptocurrency.overview.coinpaprika_view.display_global_market crypto.ov.cpexchanges,openbb_terminal.cryptocurrency.overview.coinpaprika_model.get_list_of_exchanges,openbb_terminal.cryptocurrency.overview.coinpaprika_view.display_all_exchanges crypto.ov.news,openbb_terminal.cryptocurrency.overview.cryptopanic_model.get_news,openbb_terminal.cryptocurrency.overview.cryptopanic_view.display_news crypto.ov.cr,openbb_terminal.cryptocurrency.overview.loanscan_model.get_rates,openbb_terminal.cryptocurrency.overview.loanscan_view.display_crypto_rates -crypto.ov.cgderivatives,openbb_terminal.cryptocurrency.overview.pycoingecko_model.get_derivatives,openbb_terminal.cryptocurrency.overview.pycoingecko_view.display_derivatives -crypto.ov.cgexrates,openbb_terminal.cryptocurrency.overview.pycoingecko_model.get_exchange_rates,openbb_terminal.cryptocurrency.overview.pycoingecko_view.display_exchange_rates +crypto.ov.derivatives,openbb_terminal.cryptocurrency.overview.pycoingecko_model.get_derivatives,openbb_terminal.cryptocurrency.overview.pycoingecko_view.display_derivatives +crypto.ov.exrates,openbb_terminal.cryptocurrency.overview.pycoingecko_model.get_exchange_rates,openbb_terminal.cryptocurrency.overview.pycoingecko_view.display_exchange_rates crypto.ov.exchanges,openbb_terminal.cryptocurrency.overview.pycoingecko_model.get_exchanges,openbb_terminal.cryptocurrency.overview.pycoingecko_view.display_exchanges -crypto.ov.cgproducts,openbb_terminal.cryptocurrency.overview.pycoingecko_model.get_finance_products,openbb_terminal.cryptocurrency.overview.pycoingecko_view.display_products +crypto.ov.products,openbb_terminal.cryptocurrency.overview.pycoingecko_model.get_finance_products,openbb_terminal.cryptocurrency.overview.pycoingecko_view.display_products crypto.ov.platforms,openbb_terminal.cryptocurrency.overview.pycoingecko_model.get_financial_platforms,openbb_terminal.cryptocurrency.overview.pycoingecko_view.display_platforms -crypto.ov.cgdefi,openbb_terminal.cryptocurrency.overview.pycoingecko_model.get_global_defi_info,openbb_terminal.cryptocurrency.overview.pycoingecko_view.display_global_defi_info +crypto.ov.defi,openbb_terminal.cryptocurrency.overview.pycoingecko_model.get_global_defi_info,openbb_terminal.cryptocurrency.overview.pycoingecko_view.display_global_defi_info crypto.ov.global_info,openbb_terminal.cryptocurrency.overview.pycoingecko_model.get_global_info, -crypto.ov.cgglobal,openbb_terminal.cryptocurrency.overview.pycoingecko_model.get_global_markets_info,openbb_terminal.cryptocurrency.overview.pycoingecko_view.display_global_market_info -crypto.ov.cghold,openbb_terminal.cryptocurrency.overview.pycoingecko_model.get_holdings_overview,openbb_terminal.cryptocurrency.overview.pycoingecko_view.display_holdings_overview -crypto.ov.cgindexes,openbb_terminal.cryptocurrency.overview.pycoingecko_model.get_indexes,openbb_terminal.cryptocurrency.overview.pycoingecko_view.display_indexes -crypto.ov.cgstables,openbb_terminal.cryptocurrency.overview.pycoingecko_model.get_stable_coins,openbb_terminal.cryptocurrency.overview.pycoingecko_view.display_stablecoins -crypto.ov.cgcategories,openbb_terminal.cryptocurrency.overview.pycoingecko_model.get_top_crypto_categories,openbb_terminal.cryptocurrency.overview.pycoingecko_view.display_categories -crypto.ov.cghm,openbb_terminal.cryptocurrency.discovery.pycoingecko_model.get_coins,openbb_terminal.cryptocurrency.overview.pycoingecko_view.display_crypto_heatmap +crypto.ov.global,openbb_terminal.cryptocurrency.overview.pycoingecko_model.get_global_markets_info,openbb_terminal.cryptocurrency.overview.pycoingecko_view.display_global_market_info +crypto.ov.hold,openbb_terminal.cryptocurrency.overview.pycoingecko_model.get_holdings_overview,openbb_terminal.cryptocurrency.overview.pycoingecko_view.display_holdings_overview +crypto.ov.indexes,openbb_terminal.cryptocurrency.overview.pycoingecko_model.get_indexes,openbb_terminal.cryptocurrency.overview.pycoingecko_view.display_indexes +crypto.ov.stables,openbb_terminal.cryptocurrency.overview.pycoingecko_model.get_stable_coins,openbb_terminal.cryptocurrency.overview.pycoingecko_view.display_stablecoins +crypto.ov.categories,openbb_terminal.cryptocurrency.overview.pycoingecko_model.get_top_crypto_categories,openbb_terminal.cryptocurrency.overview.pycoingecko_view.display_categories +crypto.ov.hm,openbb_terminal.cryptocurrency.discovery.pycoingecko_model.get_coins,openbb_terminal.cryptocurrency.overview.pycoingecko_view.display_crypto_heatmap crypto.ov.crypto_hack,openbb_terminal.cryptocurrency.overview.rekt_model.get_crypto_hack, crypto.ov.crypto_hack_slugs,openbb_terminal.cryptocurrency.overview.rekt_model.get_crypto_hack_slugs, crypto.ov.crypto_hacks,openbb_terminal.cryptocurrency.overview.rekt_model.get_crypto_hacks,openbb_terminal.cryptocurrency.overview.rekt_view.display_crypto_hacks @@ -242,11 +242,11 @@ economy.macro_countries,openbb_terminal.economy.econdb_model.get_macro_countries economy.treasury,openbb_terminal.economy.econdb_model.get_treasuries,openbb_terminal.economy.econdb_view.show_treasuries economy.treasury_maturities,openbb_terminal.economy.econdb_model.get_treasury_maturities, economy.future,openbb_terminal.economy.finviz_model.get_futures, -economy.spectrum,openbb_terminal.economy.finviz_model.get_spectrum_data,openbb_terminal.economy.finviz_view.display_spectrum +economy.spectrum,openbb_terminal.economy.finviz_view.display_spectrum, economy.valuation,openbb_terminal.economy.finviz_model.get_valuation_data, economy.performance,openbb_terminal.economy.finviz_model.get_performance_data, economy.perfmap,openbb_terminal.economy.finviz_model.get_performance_map, -economy.fred_series,openbb_terminal.economy.fred_model.get_aggregated_series_data,openbb_terminal.economy.fred_view.display_fred_series +economy.fred,openbb_terminal.economy.fred_model.get_aggregated_series_data,openbb_terminal.economy.fred_view.display_fred_series economy.fred_ids,openbb_terminal.economy.fred_model.get_series_ids, economy.fred_notes,openbb_terminal.economy.fred_model.get_series_notes, economy.ycrv,openbb_terminal.economy.fred_model.get_yield_curve,openbb_terminal.economy.fred_view.display_yield_curve @@ -258,26 +258,26 @@ economy.bigmac,openbb_terminal.economy.nasdaq_model.get_big_mac_indices,openbb_t economy.glbonds,openbb_terminal.economy.wsj_model.global_bonds, economy.currencies,openbb_terminal.economy.wsj_model.global_currencies, economy.overview,openbb_terminal.economy.wsj_model.market_overview, -economy.futures,openbb_terminal.economy.wsj_model.top_commodities, +economy.futures,openbb_terminal.economy.sdk_helpers.futures, economy.usbonds,openbb_terminal.economy.wsj_model.us_bonds, economy.indices,openbb_terminal.economy.wsj_model.us_indices, economy.index,openbb_terminal.economy.yfinance_model.get_indices,openbb_terminal.economy.yfinance_view.show_indices economy.available_indices,openbb_terminal.economy.yfinance_model.get_available_indices, economy.search_index,openbb_terminal.economy.yfinance_model.get_search_indices, -etf.disc.mover,openbb_terminal.etf.discovery.wsj_model.etf_movers,openbb_terminal.etf.discovery.wsj_view.show_top_mover -etf.etf_by_category,openbb_terminal.etf.financedatabase_model.get_etfs_by_category,openbb_terminal.etf.financedatabase_view.display_etf_by_category -etf.ld,openbb_terminal.etf.financedatabase_model.get_etfs_by_description,openbb_terminal.etf.financedatabase_view.display_etf_by_description -etf.ln,openbb_terminal.etf.financedatabase_model.get_etfs_by_name,openbb_terminal.etf.financedatabase_view.display_etf_by_name +etf.disc.mover,openbb_terminal.etf.discovery.wsj_model.etf_movers, +etf.etf_by_category,openbb_terminal.etf.financedatabase_model.get_etfs_by_category, +etf.ld,openbb_terminal.etf.financedatabase_model.get_etfs_by_description, +etf.ln,openbb_terminal.etf.financedatabase_model.get_etfs_by_name, etf.scr.screen,openbb_terminal.etf.screener.screener_model.etf_screener,openbb_terminal.etf.screener.screener_view.view_screener -etf.holdings,openbb_terminal.etf.stockanalysis_model.get_etf_holdings,openbb_terminal.etf.stockanalysis_view.view_holdings +etf.holdings,openbb_terminal.etf.stockanalysis_model.get_etf_holdings, etf.symbols,openbb_terminal.etf.stockanalysis_model.get_all_names_symbols, -etf.overview,openbb_terminal.etf.stockanalysis_model.get_etf_overview,openbb_terminal.etf.stockanalysis_view.view_overview -etf.etf_by_name,openbb_terminal.etf.stockanalysis_model.get_etfs_by_name,openbb_terminal.etf.stockanalysis_view.display_etf_by_name -etf.weights,openbb_terminal.etf.yfinance_model.get_etf_sector_weightings,openbb_terminal.etf.yfinance_view.display_etf_weightings -etf.summary,openbb_terminal.etf.yfinance_model.get_etf_summary_description,openbb_terminal.etf.yfinance_view.display_etf_description +etf.overview,openbb_terminal.etf.stockanalysis_model.get_etf_overview, +etf.etf_by_name,openbb_terminal.etf.stockanalysis_model.get_etfs_by_name, +etf.weights,openbb_terminal.etf.yfinance_model.get_etf_sector_weightings, +etf.summary,openbb_terminal.etf.yfinance_model.get_etf_summary_description, forex.get_currency_list,openbb_terminal.forex.av_model.get_currency_list, -forex.quote,openbb_terminal.forex.av_model.get_quote, -forex.fwd,openbb_terminal.forex.fxempire_model.get_forward_rates,openbb_terminal.forex.fxempire_view.display_forward_rates +forex.quote,openbb_terminal.forex.sdk_helpers.quote, +forex.fwd,openbb_terminal.forex.fxempire_model.get_forward_rates, forex.oanda.summary,openbb_terminal.forex.oanda.oanda_model.account_summary_request,openbb_terminal.forex.oanda.oanda_view.get_account_summary forex.oanda.cancel,openbb_terminal.forex.oanda.oanda_model.cancel_pending_order_request,openbb_terminal.forex.oanda.oanda_view.cancel_pending_order forex.oanda.close,openbb_terminal.forex.oanda.oanda_model.close_trades_request,openbb_terminal.forex.oanda.oanda_view.close_trade @@ -407,13 +407,13 @@ stocks.dd.news,openbb_terminal.stocks.due_diligence.finviz_model.get_news, stocks.dd.rating,openbb_terminal.stocks.due_diligence.fmp_model.get_rating, stocks.dd.sec,openbb_terminal.stocks.due_diligence.marketwatch_model.get_sec_filings,openbb_terminal.stocks.due_diligence.marketwatch_view.sec_filings stocks.fa.dupont,openbb_terminal.stocks.fundamental_analysis.av_model.get_dupont, -stocks.fa.earnings,openbb_terminal.stocks.fundamental_analysis.av_model.get_earnings, stocks.fa.fraud,openbb_terminal.stocks.fundamental_analysis.av_model.get_fraud_ratios, stocks.fa.income,openbb_terminal.stocks.fundamental_analysis.sdk_helpers.get_income_statement, +stocks.fa.earnings,openbb_terminal.stocks.fundamental_analysis.sdk_helpers.earnings, stocks.fa.cash,openbb_terminal.stocks.fundamental_analysis.sdk_helpers.get_cash_flow, stocks.fa.balance,openbb_terminal.stocks.fundamental_analysis.sdk_helpers.get_balance_sheet, -stocks.fa.av_metrics,openbb_terminal.stocks.fundamental_analysis.av_model.get_key_metrics, -stocks.fa.av_overview,openbb_terminal.stocks.fundamental_analysis.av_model.get_overview, +stocks.fa.key,openbb_terminal.stocks.fundamental_analysis.av_model.get_key_metrics, +stocks.fa.overview,openbb_terminal.stocks.fundamental_analysis.av_model.get_overview, stocks.fa.mgmt,openbb_terminal.stocks.fundamental_analysis.business_insider_model.get_management, stocks.fa.fama_coe,openbb_terminal.stocks.fundamental_analysis.dcf_model.get_fama_coe, stocks.fa.fama_raw,openbb_terminal.stocks.fundamental_analysis.dcf_model.get_fama_raw, @@ -423,7 +423,7 @@ stocks.fa.analysis,openbb_terminal.stocks.fundamental_analysis.eclect_us_model.g stocks.fa.dcf,openbb_terminal.stocks.fundamental_analysis.fmp_model.get_dcf, stocks.fa.enterprise,openbb_terminal.stocks.fundamental_analysis.fmp_model.get_enterprise, stocks.fa.growth,openbb_terminal.stocks.fundamental_analysis.fmp_model.get_financial_growth, -stocks.fa.fmp_metrics,openbb_terminal.stocks.fundamental_analysis.fmp_model.get_key_metrics, +stocks.fa.metrics,openbb_terminal.stocks.fundamental_analysis.fmp_model.get_key_metrics, stocks.fa.ratios,openbb_terminal.stocks.fundamental_analysis.fmp_model.get_key_ratios, stocks.fa.profile,openbb_terminal.stocks.fundamental_analysis.fmp_model.get_profile, stocks.fa.quote,openbb_terminal.stocks.fundamental_analysis.fmp_model.get_quote, @@ -467,9 +467,6 @@ stocks.options.process_chains,openbb_terminal.stocks.options.tradier_model.proce stocks.options.generate_data,openbb_terminal.stocks.options.yfinance_model.generate_data, stocks.options.dte,openbb_terminal.stocks.options.yfinance_model.get_dte, stocks.options.vsurf,openbb_terminal.stocks.options.yfinance_model.get_iv_surface,openbb_terminal.stocks.options.yfinance_view.display_vol_surface -stocks.options.vol_yf,openbb_terminal.stocks.options.yfinance_model.get_vol,openbb_terminal.stocks.options.yfinance_view.plot_vol -stocks.options.voi_yf,openbb_terminal.stocks.options.yfinance_model.get_volume_open_interest,openbb_terminal.stocks.options.yfinance_view.plot_volume_open_interest -stocks.options.price,openbb_terminal.stocks.options.yfinance_model.get_price, stocks.qa.capm_information,openbb_terminal.stocks.quantitative_analysis.factors_model.capm_information, stocks.qa.fama_raw,openbb_terminal.stocks.quantitative_analysis.factors_model.get_fama_raw, stocks.qa.historical_5,openbb_terminal.stocks.quantitative_analysis.factors_model.get_historical_5, @@ -544,7 +541,7 @@ keys.eodhd,openbb_terminal.keys_model.set_eodhd_key, keys.santiment,openbb_terminal.keys_model.set_santiment_key, keys.tokenterminal,openbb_terminal.keys_model.set_tokenterminal_key, keys.shroom,openbb_terminal.keys_model.set_shroom_key, -futures.search,openbb_terminal.futures.yfinance_model.get_search_futures,openbb_terminal.futures.yfinance_view.display_search +futures.search,openbb_terminal.futures.yfinance_model.get_search_futures, futures.historical,openbb_terminal.futures.yfinance_model.get_historical_futures,openbb_terminal.futures.yfinance_view.display_historical futures.curve,openbb_terminal.futures.yfinance_model.get_curve_futures,openbb_terminal.futures.yfinance_view.display_curve economy.get_groups,openbb_terminal.economy.finviz_model.get_groups diff --git a/openbb_terminal/stocks/fundamental_analysis/sdk_helpers.py b/openbb_terminal/stocks/fundamental_analysis/sdk_helpers.py index de983a62b3c..9c314b127da 100644 --- a/openbb_terminal/stocks/fundamental_analysis/sdk_helpers.py +++ b/openbb_terminal/stocks/fundamental_analysis/sdk_helpers.py @@ -198,3 +198,39 @@ def get_cash_flow( df = eodhd_model.get_financials(symbol, "cash", quarterly, ratios) return df return pd.DataFrame() + + +def earnings( + symbol: str, source: str = "YahooFinance", quarterly: bool = False +) -> pd.DataFrame: + """Get earnings data. + + Parameters + ---------- + symbol : str + Stock ticker + source : str, optional + Source to use, by default "AlphaVantage" + quarterly : bool, optional + Flag to get quarterly data (AlphaVantage only), by default False. + + Returns + ------- + pd.DataFrame + Dataframe of earnings + + Examples + -------- + >>> from openbb_terminal.sdk import openbb + >>> aapl_earnings = openbb.stocks.fa.earnings("AAPL", source ="YahooFinance) + + To obtain quarterly earnings, use the quarterly flag with AlphaVantage + >>> aapl_earnings = openbb.stocks.fa.metrics("earnings", source ="AlphaVantage, quarterly=True) + """ + if source == "YahooFinance": + df = yahoo_finance_model.get_earnings_history(symbol) + return df + if source == "AlphaVantage": + df = av_model.get_earnings(symbol, quarterly) + return df + return pd.DataFrame()