Metadata-Version: 2.1
Name: gatecoin-api
Version: 0.0.1
Summary: A simple GateCoin REST API client
Home-page: https://gitlab.com/gatecoin-external/python-client-for-rest-api
Author: Ahmed Belal
Author-email: ahmedbelalhashmi@gmail.com
License: UNKNOWN
Platform: UNKNOWN
Classifier: Programming Language :: Python
Classifier: Programming Language :: Python :: 3
Classifier: Programming Language :: Python :: 3.3
Classifier: Programming Language :: Python :: 3.4
Classifier: Programming Language :: Python :: 3.5
Classifier: Programming Language :: Python :: 3.6
Classifier: Programming Language :: Python :: 3.7
Classifier: License :: OSI Approved :: MIT License
Classifier: Operating System :: OS Independent
Description-Content-Type: text/markdown
Requires-Dist: requests
Requires-Dist: marshmallow
Requires-Dist: pytz

# Gatecoin Python REST API client

This is a simple Gatecoin python REST API client library that abstracts away the REST for the end user.

## Installation

The library can be collected from PyPI like so:

`$ pip install gatecoin_api`

## Usage

The package exposes the `GatecoinAPI` client class which has methods from the Gatecoin REST API. Public methods may be directly used, for trading methods API credentials need to be set:

```python
api = GatecoinAPI('private_key', 'public_key')
```

or

```python
api = GatecoinAPI()
api.set_credentials('private_key', 'public_key')
```


After that trading APIs may be used. Example usage of the Public API:

```python
api = GatecoinAPI()
res = api.get_currency_pairs()
print(res.response_status.message) # 'OK'
print(res.currency_pairs[0].trading_code) # 'BTCEUR'
print(res.currency_pairs[0].base_currency) # 'BTC'
print(res.currency_pairs[0].price_decimal_places) # 1
```

## Implemented methods
- Trading
  - set_credentials
  - get_balances
  - get_balance
  - get_open_orders
  - get_open_order
  - create_order
  - cancel_order
  - cancel_all_orders
  - get_trade_history
- Public
  - get_currency_pairs
  - get_market_depth
  - get_order_book
  - get_recent_transactions

## Development

To develop or test using this package without installing from PyPI, you can clone the repository and set up the environment in a virtual envirnonment at the root of the working copy:

`$ virtualenv venv --python=python3`

Activate the virtual environment:

`$ source venv/bin/activate`

Install development dependencies:

`$ pip install -r requirements.txt`

Run the interactive python shell and you can use the package as the example given below:

```python
$ python
>>> from gatecoin_api import GatecoinAPI as GA
>>> api = GA()
>>> res = api.get_currency_pairs()
>>> res.response_status.message
'OK'
>>> res.currency_pairs[0].trading_code
'BTCEUR'
>>> res.currency_pairs[0].base_currency
'BTC'
>>> res.currency_pairs[0].quote_currency
'EUR'
>>> res.currency_pairs[0].display_name
'BTC / EUR'
>>> res.currency_pairs[0].name
'BTC / EUR'
>>> res.currency_pairs[0].price_decimal_places
1
```

## Tests

To setup correctly for tests, set valid development API keys and API base URL in your shell environment:

```sh
export GTC_TESTS_PRIVATE_KEY=<PRIVATE_KEY>
export GTC_TESTS_PUBLIC_KEY=<PUBLIC_KEY>
export GTC_API_BASE_URL=<API_BASE_URL>
```

For Windows command line, please use the `set` command:

```bat
set GTC_TESTS_PRIVATE_KEY=<PRIVATE_KEY>
set GTC_TESTS_PUBLIC_KEY=<PUBLIC_KEY>
set GTC_API_BASE_URL=<API_BASE_URL>
```

 To run tests please execute:

`$ python setup.py test`

If development keys are not set, trading scope tests will fail.

