Package: daybit
# Pydaybit[![CircleCI](https://circleci.com/gh/daybit-exchange/pydaybit.svg?shield=svg&circle-token=b7d9eaa9d871c3421f8ca3583be4a379f9b6b856)](https://circleci.com/gh/daybit-exchange/pydaybit)**Pydaybit** is an API wrapper for [**Daybit**](https://www.daybit.com) exchange  written in Python.It supports python 3.5 or newer.## DisclaimerUSE THE SOFTWARE AT YOUR OWN RISK. THE AUTHORS AND ALL AFFILIATES ASSUME NO RESPONSIBILITY FOR YOUR TRADING RESULTS.## Installation$ pip install --upgrade pydaybit## Environment Variables* `DAYBIT_API_KEY`* `DAYBIT_API_SECRET`## Examples#### Server Timestamp```pythonimport asynciofrom pydaybit import Daybitasync def daybit_get_server_time():async with Daybit() as daybit:server_timestamp = await daybit.get_server_time()print('Daybit: {}'.format(server_timestamp))asyncio.get_event_loop().run_until_complete(daybit_get_server_time())```#### Without Enviroment Variables```pythonimport asynciofrom pprint import pprintfrom pydaybit import Daybit, PARAM_API_KEY, PARAM_API_SECRETasync def daybit_trades():async with Daybit(url='wws://api.daybit.com/v1/user_api_socket/websocket',params={PARAM_API_KEY: "YOUR_API_KEY",PARAM_API_SECRET: "YOUR_API_SECRET"}) as daybit:pprint(await daybit.trades(quote='USDT',base='BTC',num_trades=5), indent=2)asyncio.get_event_loop().run_until_complete(daybit_markets())```#### Without Asynchronous Context Manager```pythonimport asynciofrom pprint import pprintfrom pydaybit import Daybitasync def daybit_markets():daybit = Daybit()await daybit.connect()pprint(await daybit.markets(), indent=2)await daybit.disconnect()asyncio.get_event_loop().run_until_complete(daybit_markets())```#### SubscriptonsAll Subscription APIs are updated in real time. Following `daybit_without_await()` will print coin prices as same as `daybit_coin_prices()`.```pythonimport asynciofrom pprint import pprintfrom pydaybit import Daybitasync def daybit_coin_prices():async with Daybit() as daybit:for _ in range(5):pprint(await daybit.coin_prices(), indent=2)await asyncio.sleep(1)async def daybit_without_await():async with Daybit() as daybit:await daybit.coin_prices()for _ in range(5):pprint(daybit.channel('/subscription:coin_prices').data, indent=2)await asyncio.sleep(1)asyncio.get_event_loop().run_until_complete(daybit_coin_prices())# asyncio.get_event_loop().run_until_complete(daybit_without_await())```#### Subscription ArgsChannel Arguments can be described with `/` operators.```pythonimport asyncioimport timefrom pydaybit import Daybitasync def get_candles(from_time, to_time, interval, quote, base):async with Daybit() as daybit:channel = daybit.price_histories / quote / base / intervalcandles = await channel(from_time=from_time,to_time=to_time)print(candles)asyncio.get_event_loop().run_until_complete(get_candles(from_time=int((time.time() - 1000) * 1000),to_time=int(time.time() * 1000),interval=60,quote='USDT',base='BTC'))```#### Reset Cached DataA channel have local cached data in `channel.data`. If want to remove cached data, use `channel.reset_data()`.For example, see `examples/candles.py`.```pythonasync def get_candles(start_time, end_time, interval, quote, base, max_size=100, candle_type=float):...async with Daybit() as daybit:...channel = daybit.price_histories / quote / base / intervalfor to_time in range(end_time, start_time, -(max_size * interval * 1000)):from_time = max(start_time, to_time - ((max_size - 1) * interval * 1000))channel.reset_data()candles = await channel(from_time=from_time,to_time=to_time)...```## TEST$ python -m pytestor$ pytest## LicenseApache License 2.0