Changelog
v2.4.0
New features
Added support for Python 3.13 #37
Other changes
Upgraded Cython to 3.0.11
v2.3.0
New features:
Added support for interval types #30
Added ability to retrieve IProto features available in Tarantool using
conn.featuresproperty
v2.2.0
New features:
Implemented ability to send update/upsert requests with field names when schema is disabled (
fetch_schema=False) and when fields are not found in the schema (good example of this case is using json path likedata.inner1.inner2.key1as a key)
Bug fixes:
Fixed issue with not being able to send Decimals in update statements. Now there are no extra checks - any payload is sent directly to Tarantool (fixes #34)
Other changes
Fixed tests failing on modern Tarantool in the SQL queries.
Removed from ci/cd testing on macOS python 3.7
Added Tarantool 3 to CI Testing
v2.1.0
Breaking changes:
Dropped support for Python 3.6
New features:
Added building wheels for Python 3.11 and support for 3.12
Added support for PyPy 3.10. It’s compiling and working, but there is an obvious performance downgrade compared to CPython.
Now repr() of TarantoolTuple objects is being truncated to 50 fields
Bug fixes:
Fixed an issue with encoding of update operations as tuples on PyPy
Other changes
Upgraded to Cython 3.0.7
Using pyproject.toml for building spec
Using black, isort & ruff for linting
_testbase.py was moved to tests/_testbase.py
v2.0.1
v2.0.0
Breaking changes:
Connection.sql()method is renamed toConnection.execute()Drop support for
loopargument in theConnection(fixes #18)
New features:
Added support for
Decimal,UUIDanddatetimetypes natively using MessagePack extensionsAdded support for SQL prepared statements with
Connection.prepare()method andPreparedStatementclassAdded support for interactive transactions and streams (fixes #21)
Added support for MP_ERROR extensions
Bind metadata of parameters is available now in the
response.paramsandresponse.params_countfieldsExposed an internal schema as a
Connection.schemaproperty, introducing new classes to operate the schema withExposed SQL metadata of responses as
response.metadatafieldAdded typings to internal types such as
Connection,Response,Metadata,Schema,TarantoolTupleand othersasynctntnow 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
metadataname and structure
v1.2.3
Support Python 3.10
v1.2.2
Bugs fixed:
Show a diag message rather than Lost connection to Tarantool when disconnected (closes #19)
v1.2.1
Other changes:
Updated Cython to 0.29.21
Building wheels for Python 3.9
v1.2
Bugs fixed:
Fixed hanging PushIterator when connection to Tarantool is lost (#17).
v1.1
New features:
Parse autoincrement ids in sql response (#14). Thanks to @oleynikandrey
Added Python 3.8 support. Removed all redundant
looparguments 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
v1.0
Breaking changes:
Removed method
body2yamlfrom Response.Option
tuple_as_dictis removed fromConnectionand 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_subscribeto api methods inConnectionand the PushIterator class to iterate over the push messages of a specific request.Added
Connection.sqlmethod 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_timeoutparameter).
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.keysanditemsmethods 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_timeoutchanged from60to3seconds.select: changed default iterator type toALLif no key provided (fixes #2)Responsenew functiondone()indicates if Response is actually finished.schema_idis 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:
asynctntnow ships with precompiled wheel packages.Changed version numbering.
Updated
Cythonto version0.29Updated
msgpuckversionImproved speed of asynctnt method calls a bit more
v0.2.0
Changes:
Improved and simplified connect/reconnect process
Added ContextManager async with protocol for Connection
Added
is_fully_connectedproperty to ConnectionAdded disconnect Lock
Bugs Fixed:
Auto reconnect misbehaved on double on_connection_lost trigger (#11)
v0.1.13
Changes:
Now
connect()method call ofConnectionclass 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:
v0.1.12
Bugs fixed:
Fixed compatibility issues with Python 3.7