Представлен релиз Psycopg 2.5, популярного драйвера для работы с PostgreSQL из программ на языке Python. Драйвер полностью соответствует спецификации Python DB API 2.0 и дополнительно поддерживает ряд расширений, позволяющих использовать специфичные возможности PostgreSQL.
Среди ключевых изменений в версии Psycopg 2.5:
- Добавлен адаптер JSON, позволяющий напрямую обращаться к типу данных JSON, появившемуся в PostgreSQL 9.2
>>> 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]}
- Добавлены адаптеры Range для работы с типами для определения диапазонов, появившимися в PostgreSQL 9.2:
>>> cur.execute("""select '[10,20)'::int4range""") >>> r = cur.fetchone()[0] >>> r.lower 10 >>> r.upper_inc False
Теперь объекты на языке python могут быть напрямую отнесены как Range в запросе:
r = DateRange(date(2013,1,1), date(2013,2,1), '[)') cur.execute("select * from events where %s @> date", [r])
- Добавлена поддержка выражения "with", позволяющего автоматически закрывать соединение после запроса:
with psycopg2.connect(DSN) as conn: with conn.cursor() as curs: curs.execute(SQL)
- Добавлен новый класс Diagnostics(exception), позволяющий через атрибуты получить расширенную информацию об ошибке со стороны сервера PosgreSQL.
- Обеспечена поддержка версии Python 3.3.