Представлен (http://initd.org/psycopg/articles/2013/04/07/psycopg-25-rele.../) релиз Psycopg 2.5 (http://www.initd.org/psycopg/), популярного драйвера для работы с PostgreSQL из программ на языке Python. Драйвер полностью соответствует спецификации Python DB API 2.0 (http://www.python.org/dev/peps/pep-0249/) и дополнительно поддерживает ряд расширений, позволяющих использовать специфичные возможности PostgreSQL.
Среди ключевых изменений в версии Psycopg 2.5:
- Добавлен адаптер JSON, позволяющий напрямую обращаться к типу данных JSON (http://www.postgresql.org/docs/current/static/datatype-json....), появившемуся в PostgreSQL 9.2
<font color="#461b7e">
>>> cur.execute(
... """select '{"a":[1,2,3],"b":[4,5,6]}'::json""")
>>> cur.fetchone()[0]
{u'a': [1, 2, 3], u'b': [4, 5, 6]}</font>
- Добавлены адаптеры Range для работы с типами (http://www.postgresql.org/docs/current/static/rangetypes.html) для определения диапазонов, появившимися в PostgreSQL 9.2:
<font color="#461b7e">
>>> cur.execute("""select '[10,20)'::int4range""")
>>> r = cur.fetchone()[0]
>>> r.lower
10
>>> r.upper_inc
False</font>
Теперь объекты на языке python могут быть напрямую отнесены как Range в запросе:
<font color="#461b7e">
r = DateRange(date(2013,1,1), date(2013,2,1), '[)')
cur.execute("select * from events where %s @> date", [r])</font>
- Добавлена поддержка выражения "with", позволяющего автоматически закрывать соединение после запроса:
<font color="#461b7e">
with psycopg2.connect(DSN) as conn:
with conn.cursor() as curs:
curs.execute(SQL)</font>
- Добавлен новый класс Diagnostics(exception),
позволяющий через атрибуты получить расширенную информацию об ошибке со стороны сервера PosgreSQL.
- Обеспечена поддержка версии Python 3.3.
URL: http://initd.org/psycopg/articles/2013/04/07/psycopg-25-rele.../
Новость: http://www.opennet.ru/opennews/art.shtml?num=36618