Metadata-Version: 2.1
Name: tickerdax
Version: 0.0.21
Summary: A python client for tickerdax.com with a built-in caching system.
Home-page: https://github.com/tickerdax/tickerdax-python-client
Author: tickerdax.com
Author-email: info@tickerdax.com
Project-URL: Bug Tracker, https://github.com/tickerdax/tickerdax-python-client/issues
Classifier: Programming Language :: Python :: 3
Classifier: License :: OSI Approved :: MIT License
Classifier: Operating System :: OS Independent
Description-Content-Type: text/markdown

<p align="center">
  <img width="200" src="https://tickerdax.com/assets/images/logo/logo.svg" alt="icon"/>
</p>
<h1 align="center">TickerDax Python Client</h1>
<br></br>

[![Publish Package](https://github.com/TickerDax/tickerdax-python-client/actions/workflows/publish-package.yaml/badge.svg)](https://github.com/TickerDax/tickerdax-python-client/actions/workflows/publish-package.yaml)

A python package that interfaces with the tickerdax.com REST and websockets API. It handles common data operations
like batch downloading data, streaming real-time data, and caching data locally to minimize network requests.

## Installation
You can install this package with pip by running the command below.
```shell
pip install tickerdax
```

## Docker Dependency
This client interfaces with a redis docker container. In order for the package to work, you must first install
docker. Here are instructions per platform.
### Mac
[Instructions](https://docs.docker.com/desktop/install/mac-install/)
### Linux
[Instructions](https://docs.docker.com/desktop/install/linux-install/)
### Windows
Note on windows you must first install [WSL](https://docs.microsoft.com/en-us/windows/wsl/install) then you can install docker.
[Instructions](https://docs.docker.com/desktop/install/windows-install/)

## Python Examples
Here is a basic example of getting historical data using the python SDK.
### Get historical data
```python
from pprint import pprint
from datetime import datetime, timezone
from tickerdax.client import TickerDax

client = TickerDax()
pprint(client.get_route(
    route='predictions/ml-order-book-model-1',
    symbols=["BTC"],
    start=datetime.now(tz=timezone.utc),
    end=datetime.now(tz=timezone.utc)
))
```
Note that if this data doesn't exist in your cache, the data will be fetched from the REST API. All 
subsequent calls to the same data will only be from the cache and not the REST API.
This is designed give you lighting fast responses and ultimately deliver data to you a cheaper cost.

### Stream realtime data
This is how you can stream data to your cache. This will run indefinitely and fill
your local cache as new data is available.
```python
client.stream(
    routes={
        'predictions/ml-order-book-model-1': ['BTC', 'LTC'],
    },
)
```
In another process you can call `client.get_route()` as many times you like or whenever your
app re-evaluates. The data will be available once it is updated by the stream.


## CLI
The package also has a command line interface.
```text
Usage: tickerdax [OPTIONS] COMMAND [ARGS]...                                
                                                                            
  TickerDax version 0.0.21. A CLI tool that interfaces with the tickerdax.com
  REST and websockets API. It handles common data operations like batch     
  downloading, streaming, and caching data locally to minimize network      
  requests.                                                                 
                                                                            
Options:                                                                    
  --help  Show this message and exit.

Commands:
  create-config
  download
  list-routes
  stream
```

## Environment Variables
| Name                             | Description                                                                                                                                |
|----------------------------------|--------------------------------------------------------------------------------------------------------------------------------------------|
| `TICKERDAX_CONFIG`               | A file path to the config file for the CLI.                                                                                                |
| `TICKERDAX_EMAIL`                | Your email link to your tickerdax.com account.                                                                                             |
| `TICKERDAX_REST_API_KEY`         | Your REST API created with your tickerdax.com account.                                                                                     |
| `TICKERDAX_WEBSOCKET_API_KEY`    | Your websocket API created with your tickerdax.com account.                                                                                |
| `TICKERDAX_CACHE_ROOT`           | An alternative persistent cache location on disk. By default this is written into a `tickerdax_cache` folder in your system's temp folder. |
| `TICKERDAX_REDIS_SERVER_ADDRESS` | An alternative redis server address. Can be useful if redis is on another address besides localhost.                                       |
| `TICKERDAX_REDIS_SERVER_PORT`    | An alternative redis server port. Can be useful if redis needs to user another port besides 6379.                                          |
