Tags: admdev8/tarantool-python
Tags
## Overview
This release offers two major features: SQL support and implementation
of the Database API (PEP-0249).
Simple example of using SQL:
| #!/usr/bin/env python
|
| # In tarantool console:
| #
| # tarantool> box.cfg{listen = 'localhost:3301'}
| # tarantool> box.schema.user.create('me', {password = 'secret'})
| # tarantool> box.schema.user.grant('me','read,write,execute,create,drop,alter','universe')
|
| from pprint import pprint
| import tarantool
|
| connection = tarantool.connect(host='localhost', port=3301, user='me', password='secret')
| res = connection.execute('SELECT :foo, :bar', {'foo': 5, 'bar': 6})
| pprint(res)
|
| # Those properties are None for SELECT, shown for the reference.
| print('autoincrement_ids: {}'.format(res.autoincrement_ids))
| print('affected_row_count: {}'.format(res.affected_row_count))
See the similar example implemented using the Database API on the
[wiki page][1].
The Database API becomes the base for the [django-tarantool][2] backend.
Aside of those changes, the release provides compatibility with the new
version of the msgpack library (1.0.0) and fixes several tricky cases
around `encoding=None` option.
[1]: https://github.com/tarantool/tarantool-python/wiki/PEP-249-Database-API
[2]: https://pypi.org/project/django-tarantool/
## Breaking changes
This release should not break existing code.
## New features
* Support msgpack 1.0.0 (tarantool#155, PR tarantool#173).
* Added SQL support (`<connection>.execute()` method) (tarantool#159, PR tarantool#161).
* Allow to receive a Tarantool tuple as a Python tuple, not a list, with
`use_list=False` connection option (tarantool#166, PR tarantool#161).
* Support the Database API (PEP-0249) (PR tarantool#161).
## Bugfixes
* schema: support encoding=None connections (PR tarantool#172).
## Other
Infrastructure, CI / CD, testing, readme, pure development changes,
which do not affect an end user directly.
Note: testing changes that were introduced as part of a feature / a
bugfix are not listed here.
* deployment: fixed README.rst and setup.py points, where `twine` or
pypi.org complains (PR tarantool#147).
* readme: fixed links to tarantool documentation (PR tarantool#151).
* test: eliminate deprecated box.cfg options (8ff9a3f, bd37703).
* gitignore: add .idea (e49f5f0).
* ci: dropped Ubuntu Disco, which reaches EOL (21e3ebf).
* ci: added Fedora 30, Ubuntu Eoan and Focal (PR tarantool#165).
* ci: deploy to 2_3 and 2_4 repositories (PR tarantool#165).
* ci: worked around PyYAML installation problem on AppVeyor (PR tarantool#165).
* ci: verify on Python 3.8 (PR tarantool#161).
* test: fixed luacheck warnings (tarantool#178, PR tarantool#179).
* readme: refreshed the description of tarantool features (PR tarantool#180).
* test: ensure compatibility with Python 3 for some testing /
documentation building code (PR tarantool#181).
## Breaking changes This release should not break existing code. ## New features * Added ability to configure a MeshConnection object to periodically update instances list from tarantool (tarantool#134). ## Bugfixes * Fixed the deprecation warning due to deprecated way to import abstract collections. * Fixed SchemaReloadException raising after reconnection with non-actual schema id (tarantool#141). * Fixed a string representation of a Response object without data (say, authentication response) (tarantool#139).
## Breaking changes This release should not break existing code. ## New features * Added MeshConnection that allows to switch between nodes from a user provided list if a current node is down using round-robin strategy (tarantool#106). * Added connection_timeout parameter to Connection (tarantool#115). ## Bugfixes * Fixed auto-reconnection in Connection. * Eliminated deprecation warnings on Python 3 (tarantool#114). * Added TCP_NODEPLAY back (it was removed in 0.6.4) (tarantool#127).
tarantool-python 0.6.1 Release for PyPI with some incompatible changes: * `str`/`repr` of tuples now shows not yaml, but `json` (incompat) * supports now CALL 1.7.1 by default (incompat) * added support for unix sockets * getting rid of six dependency * packages for centos 6/7 should now be ok
PreviousNext