Skip to content

Commit

Permalink
More sdk enhancements (#3480)
Browse files Browse the repository at this point in the history
* Combine CA peers to smiliar command

* crypto/disc/top into one sdk function

* Exchanges into sdk function

* delete wrong platforms trail

* #3478 sdk crypto load

* Options hist 1 sdk function

* SDK functions

Co-authored-by: montezdesousa <79287829+montezdesousa@users.noreply.github.com>
  • Loading branch information
jmaslek and montezdesousa authored Nov 21, 2022
1 parent 659c214 commit cfe41ef
Show file tree
Hide file tree
Showing 11 changed files with 264 additions and 194 deletions.
7 changes: 4 additions & 3 deletions openbb_terminal/cryptocurrency/cryptocurrency_helpers.py
Original file line number Diff line number Diff line change
Expand Up @@ -489,7 +489,7 @@ def load_from_yahoofinance(
def load(
symbol: str,
start_date: datetime | str | None = None,
interval: str = "1440",
interval: str | int = "1440",
exchange: str = "binance",
vs_currency: str = "usdt",
end_date: datetime | str | None = None,
Expand All @@ -503,7 +503,7 @@ def load(
Coin to get
start_date: str or datetime, optional
Start date to get data from with. - datetime or string format (YYYY-MM-DD)
interval: str
interval: str|int
The interval between data points in minutes.
Choose from: 1, 15, 30, 60, 240, 1440, 10080, 43200
exchange: str:
Expand All @@ -521,7 +521,8 @@ def load(
pd.DataFrame
Dataframe consisting of price and volume data
"""

if isinstance(interval, int):
interval = str(interval)
if start_date is None:
start_date = (datetime.now() - timedelta(days=1100)).strftime("%Y-%m-%d")

Expand Down
41 changes: 41 additions & 0 deletions openbb_terminal/cryptocurrency/discovery/sdk_helpers.py
Original file line number Diff line number Diff line change
@@ -0,0 +1,41 @@
"""SDK Helper Functions."""
__docfromat__ = "numpy"

import pandas as pd
from openbb_terminal.cryptocurrency.discovery import (
coinmarketcap_model,
pycoingecko_model,
)


def top_coins(source: str = "CoinGecko", limit: int = 10) -> pd.DataFrame:
"""Get top cryptp coins.
Parameters
----------
source : str, optional
Source of data, by default "CoinGecko"
limit : int, optional
Number of coins to return, by default 10
Returns
-------
pd.DataFrame
DataFrame with top coins
Examples
--------
>>> from openbb_terminal.sdk import openbb
>>> top_coins = openbb.crypto.disc.top_coins()
To get 30 results from coinmarketcap, use the source parameter and the limit parameter:
>>> top_coins = openbb.crypto.disc.top_coins(source="CoinMarketCap", limit=30)
"""
if source.lower() == "coingecko":
df = pycoingecko_model.get_coins(limit=limit)
return df
if source.lower() == "coinmarketcap":
df = coinmarketcap_model.get_cmc_top_n()
return df
return pd.DataFrame()
11 changes: 5 additions & 6 deletions openbb_terminal/cryptocurrency/overview/coinpaprika_model.py
Original file line number Diff line number Diff line change
Expand Up @@ -69,7 +69,7 @@


@log_start_end(log=logger)
def get_global_market() -> pd.DataFrame:
def get_global_info() -> pd.DataFrame:
"""Return data frame with most important global crypto statistics like:
market_cap_usd, volume_24h_usd, bitcoin_dominance_percentage, cryptocurrencies_number,
market_cap_ath_value, market_cap_ath_date, volume_24h_ath_value, volume_24h_ath_date,
Expand Down Expand Up @@ -308,18 +308,17 @@ def get_list_of_exchanges(
"reported_volume_30d",
"sessions_per_month",
]
df.loc[:, "fiats"] = df["fiats"].apply(lambda x: len([i["symbol"] for i in x if x]))
df["fiats"] = df["fiats"].apply(lambda x: len([i["symbol"] for i in x if x]))
df = df[cols]
df = df.applymap(
lambda x: "\n".join(textwrap.wrap(x, width=28)) if isinstance(x, str) else x
)
df.rename(
df = df.rename(
columns={"adjusted_rank": "Rank", "confidence_score": "confidence"},
inplace=True,
)
df.columns = [x.replace("reported_", "") for x in df.columns]
if sortby == "Rank":
df = df.sort_values(by=sortby, ascending=not ascend)
if sortby.lower() == "rank":
df = df.sort_values(by="Rank", ascending=not ascend)
else:
df = df.sort_values(by=sortby, ascending=ascend)
return df
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -83,7 +83,7 @@ def display_global_market(export: str = "") -> None:
Export dataframe data to csv,json,xlsx file
"""

df = paprika.get_global_market()
df = paprika.get_global_info()
df_data = df.copy()
df["Value"] = df["Value"].apply( # pylint:disable=unsupported-assignment-operation
lambda x: lambda_long_number_format_with_type_check(x)
Expand Down
70 changes: 70 additions & 0 deletions openbb_terminal/cryptocurrency/overview/sdk_helpers.py
Original file line number Diff line number Diff line change
@@ -0,0 +1,70 @@
"""Crypto OV SDK Helper Functions."""
__docformat__ = "numpy"

import pandas as pd
from openbb_terminal.cryptocurrency.overview import pycoingecko_model, coinpaprika_model
from openbb_terminal.cryptocurrency.dataframe_helpers import (
lambda_long_number_format_with_type_check,
)


def globe(source: str = "CoinGecko") -> pd.DataFrame:
"""Get global crypto market data.
Parameters
----------
source : str, optional
Source of data, by default "CoinGecko"
Returns
-------
pd.DataFrame
DataFrame with global crypto market data
Examples
--------
>>> from openbb_terminal.sdk import openbb
>>> global_market_data = openbb.crypto.ov.globals()
To get data from CoinPaprika, use the source parameter:
>>> global_market_data = openbb.crypto.ov.globals(source="coinpaprika")
"""
if source.lower() == "coingecko":
df = pycoingecko_model.get_global_info()
return df
if source.lower() == "coinpaprika":
df = coinpaprika_model.get_global_info()
return df
return pd.DataFrame()


def exchanges(source: str = "CoinGecko") -> pd.DataFrame:
"""Show top crypto exchanges.
Parameters
----------
source : str, optional
Source to get exchanges, by default "CoinGecko"
Returns
-------
pd.DataFrame
DataFrame with top crypto exchanges
Examples
--------
>>> from openbb_terminal.sdk import openbb
>>> exchanges = openbb.crypto.ov.exchanges()
"""
if source.lower() == "coingecko":
df = pycoingecko_model.get_exchanges().sort_values(by="Rank", ascending=True)
return df
if source.lower() == "coinpaprika":
df = coinpaprika_model.get_list_of_exchanges("USD")
cols = [col for col in df.columns if col != "Rank"]
df[cols] = df[cols].applymap(
lambda x: lambda_long_number_format_with_type_check(x)
)
return df.sort_values(by="Rank", ascending=True).reset_index(drop=True).head(20)
return pd.DataFrame()
34 changes: 13 additions & 21 deletions openbb_terminal/miscellaneous/library/trail_map.csv
Original file line number Diff line number Diff line change
Expand Up @@ -18,17 +18,17 @@ stocks.ba.queries,openbb_terminal.common.behavioural_analysis.google_model.get_q
stocks.ba.regions,openbb_terminal.common.behavioural_analysis.google_model.get_regions,openbb_terminal.common.behavioural_analysis.google_view.display_regions
stocks.ba.rise,openbb_terminal.common.behavioural_analysis.google_model.get_rise,
stocks.ba.getdd,openbb_terminal.common.behavioural_analysis.reddit_model.get_due_dilligence,
stocks.ba.popular,openbb_terminal.common.behavioural_analysis.reddit_model.get_popular_tickers,openbb_terminal.common.behavioural_analysis.reddit_view.display_popular_tickers
stocks.ba.redditsent,openbb_terminal.common.behavioural_analysis.reddit_model.get_posts_about,openbb_terminal.common.behavioural_analysis.reddit_view.display_redditsent
stocks.ba.popular,openbb_terminal.common.behavioural_analysis.reddit_model.get_popular_tickers,
stocks.ba.redditsent,openbb_terminal.common.behavioural_analysis.reddit_model.get_posts_about,
stocks.ba.text_sent,openbb_terminal.common.behavioural_analysis.reddit_model.get_sentiment,
stocks.ba.spac,openbb_terminal.common.behavioural_analysis.reddit_model.get_spac,
stocks.ba.spacc,openbb_terminal.common.behavioural_analysis.reddit_model.get_spac_community,
stocks.ba.watchlist,openbb_terminal.common.behavioural_analysis.reddit_model.get_watchlists,openbb_terminal.common.behavioural_analysis.reddit_view.display_watchlist
stocks.ba.watchlist,openbb_terminal.common.behavioural_analysis.reddit_model.get_watchlists,
stocks.ba.wsb,openbb_terminal.common.behavioural_analysis.reddit_model.get_wsb_community,
stocks.ba.hist,openbb_terminal.common.behavioural_analysis.sentimentinvestor_model.get_historical,openbb_terminal.common.behavioural_analysis.sentimentinvestor_view.display_historical
stocks.ba.trend,openbb_terminal.common.behavioural_analysis.sentimentinvestor_model.get_trending,openbb_terminal.common.behavioural_analysis.sentimentinvestor_view.display_trending
stocks.ba.bullbear,openbb_terminal.common.behavioural_analysis.stocktwits_model.get_bullbear,openbb_terminal.common.behavioural_analysis.stocktwits_view.display_bullbear
stocks.ba.messages,openbb_terminal.common.behavioural_analysis.stocktwits_model.get_messages,openbb_terminal.common.behavioural_analysis.stocktwits_view.display_messages
stocks.ba.bullbear,openbb_terminal.common.behavioural_analysis.stocktwits_model.get_bullbear,
stocks.ba.messages,openbb_terminal.common.behavioural_analysis.stocktwits_model.get_messages,
stocks.ba.stalker,openbb_terminal.common.behavioural_analysis.stocktwits_model.get_stalker,
stocks.ba.trending,openbb_terminal.common.behavioural_analysis.stocktwits_model.get_trending,
stocks.ba.infer,openbb_terminal.common.behavioural_analysis.twitter_model.load_analyze_tweets,openbb_terminal.common.behavioural_analysis.twitter_view.display_inference
Expand Down Expand Up @@ -101,7 +101,7 @@ crypto.defi.sinfo,openbb_terminal.cryptocurrency.defi.terramoney_fcd_model.get_s
crypto.defi.sratio,openbb_terminal.cryptocurrency.defi.terramoney_fcd_model.get_staking_ratio_history,openbb_terminal.cryptocurrency.defi.terramoney_fcd_view.display_staking_ratio_history
crypto.defi.sreturn,openbb_terminal.cryptocurrency.defi.terramoney_fcd_model.get_staking_returns_history,openbb_terminal.cryptocurrency.defi.terramoney_fcd_view.display_staking_returns_history
crypto.defi.validators,openbb_terminal.cryptocurrency.defi.terramoney_fcd_model.get_validators,openbb_terminal.cryptocurrency.defi.terramoney_fcd_view.display_validators
crypto.disc.cmctop,openbb_terminal.cryptocurrency.discovery.coinmarketcap_model.get_cmc_top_n,openbb_terminal.cryptocurrency.discovery.coinmarketcap_view.display_cmc_top_coins
crypto.disc.top_coins,openbb_terminal.cryptocurrency.discovery.sdk_helpers.top_coins,
crypto.disc.cpsearch,openbb_terminal.cryptocurrency.discovery.coinpaprika_model.get_search_results,openbb_terminal.cryptocurrency.discovery.coinpaprika_view.display_search_results
crypto.disc.top_dapps,openbb_terminal.cryptocurrency.discovery.dappradar_model.get_top_dapps,openbb_terminal.cryptocurrency.discovery.dappradar_view.display_top_dapps
crypto.disc.top_dexes,openbb_terminal.cryptocurrency.discovery.dappradar_model.get_top_dexes,openbb_terminal.cryptocurrency.discovery.dappradar_view.display_top_dexes
Expand Down Expand Up @@ -186,23 +186,19 @@ 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.platforms1,openbb_terminal.cryptocurrency.overview.coinpaprika_model.get_all_contract_platforms,openbb_terminal.cryptocurrency.overview.coinpaprika_view.display_all_platforms
crypto.ov.platforms,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.markets,openbb_terminal.cryptocurrency.overview.coinpaprika_model.get_coins_market_info,openbb_terminal.cryptocurrency.overview.coinpaprika_view.display_all_coins_market_info
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.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.exchanges,openbb_terminal.cryptocurrency.overview.sdk_helpers.exchanges,
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.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.global,openbb_terminal.cryptocurrency.overview.pycoingecko_model.get_global_markets_info,openbb_terminal.cryptocurrency.overview.pycoingecko_view.display_global_market_info
crypto.ov.globe,openbb_terminal.cryptocurrency.overview.sdk_helpers.globe,
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
Expand Down Expand Up @@ -256,9 +252,7 @@ economy.fred,openbb_terminal.economy.fred_model.get_aggregated_series_data,openb
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
economy.get_events_countries,openbb_terminal.economy.investingcom_model.get_events_countries,
economy.events,openbb_terminal.economy.nasdaq_model.get_economic_calendar,
economy.get_ycrv_countries,openbb_terminal.economy.investingcom_model.get_ycrv_countries,
economy.country_codes,openbb_terminal.economy.nasdaq_model.get_country_codes,
economy.bigmac,openbb_terminal.economy.nasdaq_model.get_big_mac_indices,openbb_terminal.economy.nasdaq_view.display_big_mac_index
economy.glbonds,openbb_terminal.economy.wsj_model.global_bonds,
Expand Down Expand Up @@ -363,15 +357,13 @@ portfolio.po.get_properties,openbb_terminal.portfolio.portfolio_optimization.opt
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,
stocks.ca.sentiment,openbb_terminal.stocks.comparison_analysis.finbrain_model.get_sentiments,openbb_terminal.stocks.comparison_analysis.finbrain_view.display_sentiment_compare
stocks.ca.scorr,openbb_terminal.stocks.comparison_analysis.finbrain_model.get_sentiment_correlation,openbb_terminal.stocks.comparison_analysis.finbrain_view.display_sentiment_correlation
stocks.ca.finnhub_peers,openbb_terminal.stocks.comparison_analysis.finnhub_model.get_similar_companies,
stocks.ca.screener,openbb_terminal.stocks.comparison_analysis.finviz_compare_model.get_comparison_data,
stocks.ca.finviz_peers,openbb_terminal.stocks.comparison_analysis.finviz_compare_model.get_similar_companies,
stocks.ca.balance,openbb_terminal.stocks.comparison_analysis.marketwatch_model.get_balance_comparison,
stocks.ca.cashflow,openbb_terminal.stocks.comparison_analysis.marketwatch_model.get_cashflow_comparison,
stocks.ca.income,openbb_terminal.stocks.comparison_analysis.marketwatch_model.get_income_comparison,openbb_terminal.stocks.comparison_analysis.marketwatch_view.display_income_comparison
stocks.ca.polygon_peers,openbb_terminal.stocks.comparison_analysis.polygon_model.get_similar_companies,
stocks.ca.hist,openbb_terminal.stocks.comparison_analysis.yahoo_finance_model.get_historical,openbb_terminal.stocks.comparison_analysis.yahoo_finance_view.display_historical
stocks.ca.hcorr,openbb_terminal.stocks.comparison_analysis.yahoo_finance_model.get_correlation,openbb_terminal.stocks.comparison_analysis.yahoo_finance_view.display_correlation
stocks.ca.volume,openbb_terminal.stocks.comparison_analysis.yahoo_finance_model.get_volume,openbb_terminal.stocks.comparison_analysis.yahoo_finance_view.display_volume
Expand Down Expand Up @@ -414,7 +406,7 @@ stocks.dd.rot,openbb_terminal.stocks.due_diligence.finnhub_model.get_rating_over
stocks.dd.analyst,openbb_terminal.stocks.due_diligence.finviz_model.get_analyst_data,
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.dd.sec,openbb_terminal.stocks.due_diligence.marketwatch_model.get_sec_filings,
stocks.fa.dupont,openbb_terminal.stocks.fundamental_analysis.av_model.get_dupont,
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,
Expand Down Expand Up @@ -468,7 +460,7 @@ stocks.options.unu,openbb_terminal.stocks.options.fdscanner_model.unusual_option
stocks.options.screen.check_presets,openbb_terminal.stocks.options.screen.syncretism_model.check_presets,
stocks.options.grhist,openbb_terminal.stocks.options.screen.syncretism_model.get_historical_greeks,openbb_terminal.stocks.options.screen.syncretism_view.view_historical_greeks
stocks.options.screen.screener_output,openbb_terminal.stocks.options.screen.syncretism_model.get_screener_output,openbb_terminal.stocks.options.screen.syncretism_view.view_screener_output
stocks.options.hist_tr,openbb_terminal.stocks.options.tradier_model.get_historical_options,openbb_terminal.stocks.options.tradier_view.display_historical
stocks.options.hist,openbb_terminal.stocks.options.options_sdk_helper.hist,
stocks.options.chains,openbb_terminal.stocks.options.options_sdk_helper.get_full_option_chain,
stocks.options.last_price,openbb_terminal.stocks.options.tradier_model.last_price,
stocks.options.expirations,openbb_terminal.stocks.options.options_sdk_helper.get_option_expirations,
Expand Down
Loading

0 comments on commit cfe41ef

Please sign in to comment.