Skip to content

Latest commit

 

History

History
366 lines (271 loc) · 10.2 KB

CHANGELOG.rst

File metadata and controls

366 lines (271 loc) · 10.2 KB

python3-krakenex change log

All notable changes should be documented in this file.

The format is based on Keep a Changelog, and this project adheres to semantic versioning.

[vX.Y.Z] - Unreleased

  • Nothing (yet).

[v2.2.2] - 2024-07-01 (Monday)

Changed

  • License classifier added to setup.py to aid automatic detection. (#145_)

[v2.2.1] - 2024-02-01 (Thursday)

Changed

  • Public endpoints were still not working. They will now be URL-encoded as params instead of being sent as data. (#141_)

[v2.2.0] - 2024-01-31 (Wednesday)

Changed

  • Public endpoints will now use a GET method, because Kraken dropped support for POST. Previously, all endpoint calls used POST.

[v2.1.0] - 2018-04-20 (Fryday)

Added

  • A timeout argument for API.query_public() or API.query_private(), to set a time-out period for that particular query. (#67)
  • krakenex.API.json_options() to set options to the JSON de-serialiser, to be used on query responses. (#87)
  • An examples/json-options.py example to demonstrate the above. (#88)

Changed

  • Updated examples using pandas to post-v0.17.0 sorting. (#29)

[v2.0.0] - 2017-11-14 (Tuesday)

For a detailed list of changes, refer to the same-number releases below.

Migration instructions

  • Everything network-related now handled by requests. See its docs if needed. (#11)
  • krakenex.API class no longer has a conn attribute for connection manipulation. It has been replaced by a session attribute, which is a requests.Session. For custom networking setups, directly modify session attribute of a krakenex.API object.
  • krakenex.API constructor no longer accepts conn argument as a means of re-using an existing krakenex.Connection object. Instead, modify krakenex.API.session if needed, same as above.
  • If you were previously calling API.query_private() or API.query_public() in a try/except block, be aware that these two may now throw a requests.exceptions.HTTPError instead of the previous http.client.HTTPException, if the underlying Connection returns a non-20x status code.

Known issues

  • The remote servers are unstable under high load, which is most of the time. No recovery mechanism is provided for failed queries. (#66)

Most importantly, queries that may seem to have failed due to a 502 HTTP error may in fact reach the trade execution engine, with an unpredictable delay. See PSA for an example.

After encountering a 502, a subsequent call to krakenex.API.query_private() will construct a new query, with an increased nonce. When used with an AddOrder query, this may have disastrous effects, placing a duplicate order.

To work around this, instead reuse the krakenex.API.response.request object, which is a requests.PreparedRequest, saved as part of requests' operation when submitting the first query. This request can be re-sent using krakenex.API.session.send().

[v2.0.0c2] - 2017-10-20 (Friday)

Release candidate. Not recommended for production use.

Changed

  • Fixed bug with dependencies not getting installed when following installation instructions in a clean virtual environment.

[v2.0.0c1] - 2017-10-20 (Friday)

Yanked due to clean-room pip installation failing.

[v2.0.0a1] - 2017-09-21 (Thursday)

Internal alpha testing release! Not for general use. For that reason, pip package not provided.

Added

  • krakenex.API.session attribute, which is a requests.Session.
  • krakenex.API.response attribute, which is a requests.Response object for the previous query. It is available whether the query was successful or has failed.

Changed

  • It is now recommended to install with pip in a virtualenv. See README for details.

Removed

  • krakenex.Connection class. Obsoleted by use of requests.Session.
  • krakenex.API.conn attribute, which was a krakenex.Connection object.
  • krakenex.API.set_connection() method (deprecated since v1.0.0).

[v1.0.0] - 2017-09-18 (Monday)

For a detailed list of changes, refer to the same-number releases below.

Migration instructions

  • If you were previously calling API.query_private() or API.query_public() in a try/except block, be aware that these two may now throw a http.client.HTTPException, if the underlying Connection returns a non-20x status code. (#17)

Deprecated

  • krakenex.API.set_connection() method. Access krakenex.API.conn attribute directly.

Known issues

  • There is no straightforward way to reset the krakenex.API object's connection krakenex.API.conn. (#53)

The recommended workaround for now, assuming k = krakenex.API():

k.conn.close()
k.conn = None

If a connection is not closed prior to the reference being removed, the connection may continue to linger, preventing removal of the object by the garbage collector.

[v1.0.0c1] - 2017-09-11 (Monday)

Release candidate. Not recommended for production use.

Added

[v1.0.0a1] - 2017-08-04 (Friday)

Internal alpha testing release! Not for general use. For that reason, pip package not provided.

Changed

  • Cleaned up examples.

[v1.0.0a0] - 2017-07-02 (Sunday)

Internal alpha testing release! Not for general use. For that reason, pip package not provided.

Added

  • More examples.

Changed (breaking!)

  • Low-level Connection._request now raises http.client.HTTPException if response doesn't have 20x status code. This propagates all the way up, to API.query_{private,public}. (#17)

Changed

  • Fix new connection thrashing if one is not provided for reuse (as was described in the docs). (#27)
  • Be explicit when using default arguments in functions that have optional ones. (#19)
  • Renamed NEWS to CHANGELOG.

Deprecated

  • krakenex.API.set_connection() method. Access krakenex.API.conn attribute directly.

[v0.1.4] - 2017-03-27 (Monday)

Changed

  • Properly release key file descriptor after reading in key. (#7)
  • Verbose docs, served at https://python3-krakenex.readthedocs.io/.

[v0.1.3] - 2017-01-31 (Tuesday)

Changed

  • Single-source version and URL - used during setup and in User-Agent. (#5)

[v0.1.2] - 2016-11-05 (Saturday)

Changed

  • Ship examples with PyPI package.

[v0.1.1] - 2016-11-05 (Saturday)

Changed

  • Renamed README and LICENSE according to PyPI recommendations.

[v0.1.0] - 2016-10-31 (Monday)

Added

  • Now available on PyPI as a source distribution. (#3)

Changed

  • Change versioning scheme to semantic versioning (recommended by PyPI).

[v0.0.6.2] - 2016-04-18 (Monday)

Added

  • Basic documentation with sphinx.

[v0.0.6.1] - 2016-03-25 (Friday)

Changed

  • Classes sub-classed from object.

[v0.0.6] - 2014-07-22 (Tuesday)

Changed

  • Core license changed from GPLv3 to LGPLv3. Examples remain at Simplified BSD.

[v0.0.5] - 2014-05-01 (Thursday)

Added

  • API.set_connection() method to set default connection.

[v0.0.4.1] - 2014-04-30 (Wednesday)

Changed

  • Fixed User-Agent still reporting version 0.0.3.

[v0.0.4] - 2014-04-11 (Friday)

Added

  • conditional-close example.
  • Examples licensed under the Simplified BSD license.

Changed

  • Original Python 2 version ported to Python 3.

[v0.0.3] - 2014-01-10 (Friday)

Added

  • API.load_key() method to allow loading key/secret pair from file.

[v0.0.2] - 2014-01-04 (Saturday)

Added

  • Basic implementation of KrakenConnection class.
  • Optional conn argument to query methods allows connection reuse.

[v0.0.1] - 2013-12-13 (Wednesday)

Added

  • Basic API class with query_{public,private}() methods.
  • Licensed under GPLv3.