Source code for curvesim.price_data
"""
Tools for retrieving price data.
Currently supports Coingecko and locally stored data.
Note
-----
Nomics data is deprecated.
"""
from curvesim.exceptions import NetworkError
from .sources import coingecko
[docs]def get(
coins,
chain="mainnet",
*,
days=60,
data_dir="data",
src="coingecko",
end=None,
):
"""
Pull price and volume data for given coins.
Data is returned for all pairwise combinations of the input coins.
Parameters
----------
coins : list of str
List of coin addresses.
days : int, default=60
Number of days to pull data for.
data_dir : str, default="data"
Directory to load local data from.
src : str, default="coingecko"
Data source ("coingecko", "nomics", or "local").
Returns
-------
prices : pandas.DataFrame
Timestamped prices for each pair of coins.
volumes : pandas.DataFrame
Timestamped volumes for each pair of coins.
pzero : int or pandas.Series
Proportion of timestamps with zero volume.
"""
if src == "coingecko":
prices, volumes, pzero = coingecko(coins, chain=chain, days=days, end=end)
elif src == "nomics":
raise NetworkError("Nomics data is no longer supported.")
elif src == "local":
raise NetworkError("Local data currently not supported.")
return prices, volumes, pzero