- Fixed an issue with encoding datetimes less than 01-01-1970 (fixes #29)
- Fixed "Edit on Github" links in docs (fixes #26)
Breaking changes:
Connection.sql()
method is renamed toConnection.execute()
- Drop support for
loop
argument in theConnection
(fixes #18)
New features:
- Added support for
Decimal
,UUID
anddatetime
types natively using MessagePack extensions - Added support for SQL prepared statements with
Connection.prepare()
method andPreparedStatement
class - Added support for interactive transactions and streams (fixes #21)
- Added support for MP_ERROR extensions
- Bind metadata of parameters is available now in the
response.params
andresponse.params_count
fields - Exposed an internal schema as a
Connection.schema
property, introducing new classes to operate the schema with - Exposed SQL metadata of responses as
response.metadata
field - Added typings to internal types such as
Connection
,Response
,Metadata
,Schema
,TarantoolTuple
and others asynctnt
now sends IPROTO_ID request before anything else to notify Tarantool of used features
Other changes:
- Updated Cython to 0.29.30
- Update msgpuck to revision 0c6680a300e31714f475a7f90c2d95a02d001d80
- Internal refactoring of requests payload encoding
- Refactoring of schema parsing and unifying under
metadata
name and structure
- Support Python 3.10
Bugs fixed:
- Show a diag message rather than Lost connection to Tarantool when disconnected (closes #19)
Other changes:
- Updated Cython to 0.29.21
- Building wheels for Python 3.9
Bugs fixed:
- Fixed hanging PushIterator when connection to Tarantool is lost (#17).
New features:
- Parse autoincrement ids in sql response (#14). Thanks to @oleynikandrey
- Added Python 3.8 support. Removed all redundant
loop
arguments to functions and asyncio classes.
Other changes:
- Updated Cython to 0.29.14
- Updated msgpuck to most recent version.
- Added building wheels for Windows for Python 3.6, 3.7, 3.8
Breaking changes:
- Removed method
body2yaml
from Response. - Option
tuple_as_dict
is removed fromConnection
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 ofresp.body[0]
). - Added supported for receiving
box.session.push()
messages from Tarantool by introducing new parameterpush_subscribe
to api methods inConnection
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
anditems
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 defaultconnect_timeout
changed from60
to3
seconds.select
: changed default iterator type toALL
if no key provided (fixes #2)Response
new functiondone()
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 version0.29
- Updated
msgpuck
version - Improved speed of asynctnt method calls a bit more
Changes:
- Improved and simplified connect/reconnect process
- Added ContextManager async with protocol for Connection
- Added
is_fully_connected
property to Connection - Added disconnect Lock
Bugs Fixed:
- Auto reconnect misbehaved on double on_connection_lost trigger (#11)
Changes:
- Now
connect()
method call ofConnection
class blocks until connected even if anotherconnect()
is happening in parallel. This resolves issue of cancelled coroutines if one tries to connect in parallel coroutines.
Bugs fixed:
- Connect hanged indefinitely if asynctnt was accidentally disconnected from Tarantool and TCP connection was still alive for a moment while trying to reconnect (#8).
- Connect to LOADING Tarantool instance without username/password resulted in exception NO_SUCH_SPACE (#10).
Bugs fixed:
- Fixed compatibility issues with Python 3.7