Представлен (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.me/opennews/art.shtml?num=36618
> Обеспечена поддержка версии Python 3.3Эпик вин
Я до последнего времени использовал 2.7, стоит ли уже переходить на 3.3 ?
Видимо уже да. Судя по событиям это уже тренд.
Давно пора уже трендом становиться. С 2008 года py3000 существует, всё никак не перейдём на него.
Hello world может уже переходить, а реальные проекты лет через *ндцать только, когда большая часть pypi пакетов будет собираться под python3.Вот беру для примера и смотрю зависимости от python 2.7 в fedora 18 - из того, что у меня сейчас установлено, от него зависит >300 программ, а от python3 - только блендер (да и тот мне особо не нужен). Вот когда ситуация начнет меняться, будем думать о написании кода под третий питон.
Вообще, имхо, вышел эпик фейл с этим названием - так к 3000'ому году, может, и перейдем на него. Назвали бы py2010 - переход бы шел быстрее.
Зависимости в федоре?!! Вы о чём? туда попадают далеко не свежие пакеты, не только python.На python2 в федоре написан установшик - anaconda. Поэтому пока в федоре не будет, как в убунте python3 по умолчанию. Но Ник Коглан, сотрудник RedHat, активный коммитер python3 ветки, так что ситуация будет меняться.
Из того что нужно в федоре18/RHEL7 - это установить пакет python3-pip, дальнейщую установку уже производить через него.Посмотрите в сорцы проектов, во многих уже есть дев ветка python3.
Где ты в Убунте увидел по умолчанию python3??? В 12.04 LTS по умолчанию 2.7 как раз!
Я про 13.04 выход которой планируется на 25 апреля.https://wiki.ubuntu.com/RaringRingtail/TechnicalOverview#Pyt...
В 14.04 LTS На десктопных CD images будет только Python3
https://wiki.ubuntu.com/Python/3#Python_3_on_Ubuntu
Кстати модуль очень медленно работает с Large Objects. Нельзя просто сделать open, read / write, close. Вместо этого вызываются open read close, open write close ...
У меня во время тестирования вышли теже результаты в коде на C++, что и в реализации с psycopg2. open, read / write, read / write ... , close - быстро. open read close, open read close ... при буферизованном чтении очень медленно. Разница где-то в x4