Skip to content

v1.0

Compare
Choose a tag to compare
@igorcoding igorcoding released this 05 Jan 18:51
Breaking changes:
* Removed method `body2yaml` from Response.
* Option `tuple_as_dict` is removed from `Connection` and all the methods.

New features:
* Making Response objects contain TarantoolTuple objects if format information
  is available either in space or in response from Tarantool (closes #3).
* TarantoolTuple objects are index-agnostic, meaning one can access tuple value
  either by numeric index or by a key from `space:format()` specification.
* You can directly access Response using indices
  (`resp[0]` instead of `resp.body[0]`).
* Added supported for receiving `box.session.push()` messages from Tarantool
  by introducing new parameter `push_subscribe` to api methods in `Connection`
  and the PushIterator class to iterate over the push messages of a specific
  request.
* Added `Connection.sql` method to execute SQL statements for Tarantool 2
  (see asynctnt docs for details).
* Added internal background coroutine with pings periodically a Tarantool
  instance to check if it is alive and to refresh schema if it is changed
  (default period is 5 seconds and is configured by `Connection.ping_timeout`
  parameter).

Changes:
* Iteration over TarantoolTuple results in iterating over a raw tuple by
  indices.
* TarantoolTuple has `.keys()`, `.values()` and `.items()` from the dict
  protocol. All these methods return iterators making it possible to iterate
  over keys, values or key-value pairs accordingly. `keys` and `items` methods
  ignore any extra fields if space format contains less fields than there are
  in the tuple. One can acces those extra fields by index numbers.
* `Connection`'s default `connect_timeout` changed from `60` to `3` seconds.
* `select`: changed default iterator type to `ALL` if no key provided
  (fixes #2)
* `Response` new function `done()` indicates if Response is
  actually finished.
* `schema_id` is not being sent to Tarantool to check against current schema
  version. Instead schema is only checked and refetched if needed only _after_
  the request. This ensures that request is executed in a "constant" time
  rather than unpredicted with possible schema changes.
* Improved `Connection.refetch_schema()` method to ensure there is only one
  currently running refetch process.

Other changes:
* `asynctnt` now ships with precompiled wheel packages.
* Changed version numbering.
* Updated `Cython` to version `0.29`
* Updated `msgpuck` version
* Improved speed of asynctnt method calls a bit more