def get_prices(): global price_cache now = datetime.datetime.now() if (now - price_cache['time']) > datetime.timedelta(minutes=2): client = Coinpaprika.Client() tickers = client.tickers(quotes="BTC,USD") price_cache['time'] = now price_cache['values'] = tickers return prep_data(price_cache["values"])
def __init__(self, return_json=True): self.paprika_client = Coinpaprika.Client() self.gecko_client = CoinGeckoAPI() self.db = MongoClient( os.getenv('MONGO_ATLAS'), ).os.getenv['MONGO_DB'] self.return_json = return_json
def get_prices_for_token(day_zero, token, config): coinpaprika_client = client.Client() prices_in_usd = dict() # get token prices from coinpaprika coinpaprika_id = config['tokens'][token]['coinpaprika_id'] prices_array = coinpaprika_client.historical(coinpaprika_id, start=datetime.strftime( day_zero, '%Y-%m-%d'), quote='usd', interval='1d') prices_in_usd[token] = prices_array # transform informations about tokens prices into more handy object prices_dict = dict() for token in prices_in_usd: for record in prices_in_usd[token]: prices_dict.setdefault(record['timestamp'][:10], {}) prices_dict[record['timestamp'][:10]][token] = record['price'] return prices_dict
def average_price(lst): return reduce(lambda a, b: a + b, lst) / len(lst) def days_in_month(year, month): num_days = monthrange(year, month)[1] days = [date(year, month, day) for day in range(1, num_days + 1)] return days def date_formatting(old_date): return date(int(old_date[2]), int(old_date[1]), int(old_date[0])) client = coinpaprika.Client() prices = [] parser = argparse.ArgumentParser() parser.add_argument('-a', '--average', help=' date format DD-MM-YYYY') parser.add_argument('--start_date', help='start date') parser.add_argument('--end_date', help='end date') args = parser.parse_args() s = args.start_date e = args.end_date start = s.split('-') end = e.split('-')
import os from config import getApi image='last.png' api = getApi() plt.style.use('seaborn-bright') # SETTING DATE VARIABLES TODAY = dt.date.today() START_DATE = TODAY - dt.timedelta(days=100) #CALL PAPRIKA CLIENT client = Coinpaprika.Client() #SEND REQUEST FOR ALL TICKER DATA tickers = client.tickers() # MAKE 100 TOP DATAFRAME ticker_data_hundred = pd.DataFrame(tickers[:101]) #NORMALIZE 'quotes' DATA TO A DIFFERENT DATAFRAME ticker_quotes = pd.DataFrame.from_records(ticker_data_hundred['quotes']) ticker_quotes = ticker_quotes['USD'].apply(pd.Series) print(ticker_quotes.columns)
def get_currency_value(currency_id): from coinpaprika import client as CoinPaprika client = CoinPaprika.Client() data = client.ticker(currency_id) return data
import os import json import aiohttp from coinpaprika import client as Coinpaprika import redis from prodict import Prodict from toolz import curried import currency from urllib3.exceptions import NewConnectionError from utils import http, default cache = redis.Redis(host=os.getenv('REDIS_HOST'), port=os.getenv('REDIS_PORT'), db=0) api = Coinpaprika.Client() config = default.get("config.json") available_quote_currencies = 'USD, EUR, PLN, KRW, GBP, CAD, JPY, RUB, TRY, NZD, AUD, CHF, HKD, SGD, PHP, MXN, BRL, THB, CNY, CZK, DKK, HUF, IDR, ILS, INR, MYR, NOK, SEK, ZAR, ISK' def format_number(number): return "{:,}".format(number) def percent(a, b): result = 100 * (b - a) / a return result async def rate_convert(from_currency='USD'): url = f'https://api.exchangeratesapi.io/latest?base={from_currency}' async with aiohttp.ClientSession() as session: