Sun Mar 5 14:19:07 2017 UTC ()
Updated py-psycopg2 to 2.7.

What's new in psycopg 2.7
-------------------------

New features:

- Added `~psycopg2.sql` module to generate SQL dynamically (:ticket:`#308`).
- Added :ref:`replication-support` (:ticket:`#322`). Main authors are
  Oleksandr Shulgin and Craig Ringer, who deserve a huge thank you.
- Added `~psycopg2.extensions.parse_dsn()` and
  `~psycopg2.extensions.make_dsn()` functions (:tickets:`#321, #363`).
  `~psycopg2.connect()` now can take both *dsn* and keyword arguments, merging
  them together.
- Added `~psycopg2.__libpq_version__` and
  `~psycopg2.extensions.libpq_version()` to inspect the version of the
  ``libpq`` library the module was compiled/loaded with
  (:tickets:`#35, #323`).
- The attributes `~connection.notices` and `~connection.notifies` can be
  customized replacing them with any object exposing an `!append()` method
  (:ticket:`#326`).
- Adapt network types to `ipaddress` objects when available. When not
  enabled, convert arrays of network types to lists by default. The old `!Inet`
  adapter is deprecated (:tickets:`#317, #343, #387`).
- Added `~psycopg2.extensions.quote_ident()` function (:ticket:`#359`).
- Added `~connection.get_dsn_parameters()` connection method (:ticket:`#364`).
- `~cursor.callproc()` now accepts a dictionary of parameters (:ticket:`#381`).
- Give precedence to `!__conform__()` over superclasses to choose an object
  adapter (:ticket:`#456`).
- Using Python C API decoding functions and codecs caching for faster
  unicode encoding/decoding (:ticket:`#473`).
- `~cursor.executemany()` slowness addressed by
  `~psycopg2.extras.execute_batch()` and `~psycopg2.extras.execute_values()`
  (:ticket:`#491`).
- Added ``async_`` as an alias for ``async`` to support Python 3.7 where
  ``async`` will become a keyword (:ticket:`#495`).
- Unless in autocommit, do not use :sql:`default_transaction_*` settings to
  control the session characteristics as it may create problems with external
  connection pools such as pgbouncer; use :sql:`BEGIN` options instead
  (:ticket:`#503`).
- `~connection.isolation_level` is now writable and entirely separated from
  `~connection.autocommit`; added `~connection.readonly`,
  `~connection.deferrable` writable attributes.

Bug fixes:

- Fixed error caused by missing decoding `~psycopg2.extras.LoggingConnection`
  (:ticket:`#483`).
- Fixed integer overflow in :sql:`interval` seconds (:ticket:`#512`).

Other changes:

- Dropped support for Python 2.5 and 3.1.
- Dropped support for client library older than PostgreSQL 9.1 (but older
  server versions are still supported).
- `~connection.isolation_level` doesn't read from the database but will return
  `~psycopg2.extensions.ISOLATION_LEVEL_DEFAULT` if no value was set on the
  connection.
- Empty arrays no more converted into lists if they don't have a type attached
  (:ticket:`#506`)


(wiz)
diff -r1.33 -r1.34 pkgsrc/databases/py-psycopg2/Makefile
diff -r1.10 -r1.11 pkgsrc/databases/py-psycopg2/PLIST
diff -r1.23 -r1.24 pkgsrc/databases/py-psycopg2/distinfo

cvs diff -r1.33 -r1.34 pkgsrc/databases/py-psycopg2/Makefile (expand / switch to unified diff)

--- pkgsrc/databases/py-psycopg2/Makefile 2016/10/09 21:41:57 1.33
+++ pkgsrc/databases/py-psycopg2/Makefile 2017/03/05 14:19:07 1.34
@@ -1,20 +1,19 @@ @@ -1,20 +1,19 @@
1# $NetBSD: Makefile,v 1.33 2016/10/09 21:41:57 wiz Exp $ 1# $NetBSD: Makefile,v 1.34 2017/03/05 14:19:07 wiz Exp $
2 2
3DISTNAME= psycopg2-2.6.2 3DISTNAME= psycopg2-2.7
4PKGNAME= ${PYPKGPREFIX}-${DISTNAME} 4PKGNAME= ${PYPKGPREFIX}-${DISTNAME}
5PKGREVISION= 2 
6CATEGORIES= databases python 5CATEGORIES= databases python
7MASTER_SITES= http://initd.org/psycopg/tarballs/PSYCOPG-2-6/ 6MASTER_SITES= http://initd.org/psycopg/tarballs/PSYCOPG-2-7/
8 7
9MAINTAINER= joerg@NetBSD.org 8MAINTAINER= joerg@NetBSD.org
10HOMEPAGE= http://initd.org/psycopg/ 9HOMEPAGE= http://initd.org/psycopg/
11COMMENT= PostgreSQL database adapter for Python 10COMMENT= PostgreSQL database adapter for Python
12LICENSE= gnu-lgpl-v3 11LICENSE= gnu-lgpl-v3
13 12
14REPLACE_PYTHON+= tests/*.py 13REPLACE_PYTHON+= tests/*.py
15 14
16.include "../../lang/python/application.mk" 15.include "../../lang/python/application.mk"
17.include "../../lang/python/egg.mk" 16.include "../../lang/python/egg.mk"
18.include "../../mk/pgsql.buildlink3.mk" 17.include "../../mk/pgsql.buildlink3.mk"
19.include "../../mk/pthread.buildlink3.mk" 18.include "../../mk/pthread.buildlink3.mk"
20.include "../../mk/bsd.pkg.mk" 19.include "../../mk/bsd.pkg.mk"

cvs diff -r1.10 -r1.11 pkgsrc/databases/py-psycopg2/PLIST (expand / switch to unified diff)

--- pkgsrc/databases/py-psycopg2/PLIST 2016/07/24 19:44:16 1.10
+++ pkgsrc/databases/py-psycopg2/PLIST 2017/03/05 14:19:07 1.11
@@ -1,55 +1,64 @@ @@ -1,55 +1,64 @@
1@comment $NetBSD: PLIST,v 1.10 2016/07/24 19:44:16 wiz Exp $ 1@comment $NetBSD: PLIST,v 1.11 2017/03/05 14:19:07 wiz Exp $
2${PYSITELIB}/${EGG_INFODIR}/PKG-INFO 2${PYSITELIB}/${EGG_INFODIR}/PKG-INFO
3${PYSITELIB}/${EGG_INFODIR}/SOURCES.txt 3${PYSITELIB}/${EGG_INFODIR}/SOURCES.txt
4${PYSITELIB}/${EGG_INFODIR}/dependency_links.txt 4${PYSITELIB}/${EGG_INFODIR}/dependency_links.txt
5${PYSITELIB}/${EGG_INFODIR}/top_level.txt 5${PYSITELIB}/${EGG_INFODIR}/top_level.txt
6${PYSITELIB}/psycopg2/__init__.py 6${PYSITELIB}/psycopg2/__init__.py
7${PYSITELIB}/psycopg2/__init__.pyc 7${PYSITELIB}/psycopg2/__init__.pyc
8${PYSITELIB}/psycopg2/__init__.pyo 8${PYSITELIB}/psycopg2/__init__.pyo
 9${PYSITELIB}/psycopg2/_ipaddress.py
 10${PYSITELIB}/psycopg2/_ipaddress.pyc
 11${PYSITELIB}/psycopg2/_ipaddress.pyo
9${PYSITELIB}/psycopg2/_json.py 12${PYSITELIB}/psycopg2/_json.py
10${PYSITELIB}/psycopg2/_json.pyc 13${PYSITELIB}/psycopg2/_json.pyc
11${PYSITELIB}/psycopg2/_json.pyo 14${PYSITELIB}/psycopg2/_json.pyo
12${PYSITELIB}/psycopg2/_psycopg.so 15${PYSITELIB}/psycopg2/_psycopg.so
13${PYSITELIB}/psycopg2/_range.py 16${PYSITELIB}/psycopg2/_range.py
14${PYSITELIB}/psycopg2/_range.pyc 17${PYSITELIB}/psycopg2/_range.pyc
15${PYSITELIB}/psycopg2/_range.pyo 18${PYSITELIB}/psycopg2/_range.pyo
16${PYSITELIB}/psycopg2/errorcodes.py 19${PYSITELIB}/psycopg2/errorcodes.py
17${PYSITELIB}/psycopg2/errorcodes.pyc 20${PYSITELIB}/psycopg2/errorcodes.pyc
18${PYSITELIB}/psycopg2/errorcodes.pyo 21${PYSITELIB}/psycopg2/errorcodes.pyo
19${PYSITELIB}/psycopg2/extensions.py 22${PYSITELIB}/psycopg2/extensions.py
20${PYSITELIB}/psycopg2/extensions.pyc 23${PYSITELIB}/psycopg2/extensions.pyc
21${PYSITELIB}/psycopg2/extensions.pyo 24${PYSITELIB}/psycopg2/extensions.pyo
22${PYSITELIB}/psycopg2/extras.py 25${PYSITELIB}/psycopg2/extras.py
23${PYSITELIB}/psycopg2/extras.pyc 26${PYSITELIB}/psycopg2/extras.pyc
24${PYSITELIB}/psycopg2/extras.pyo 27${PYSITELIB}/psycopg2/extras.pyo
25${PYSITELIB}/psycopg2/pool.py 28${PYSITELIB}/psycopg2/pool.py
26${PYSITELIB}/psycopg2/pool.pyc 29${PYSITELIB}/psycopg2/pool.pyc
27${PYSITELIB}/psycopg2/pool.pyo 30${PYSITELIB}/psycopg2/pool.pyo
28${PYSITELIB}/psycopg2/psycopg1.py 31${PYSITELIB}/psycopg2/psycopg1.py
29${PYSITELIB}/psycopg2/psycopg1.pyc 32${PYSITELIB}/psycopg2/psycopg1.pyc
30${PYSITELIB}/psycopg2/psycopg1.pyo 33${PYSITELIB}/psycopg2/psycopg1.pyo
 34${PYSITELIB}/psycopg2/sql.py
 35${PYSITELIB}/psycopg2/sql.pyc
 36${PYSITELIB}/psycopg2/sql.pyo
31${PYSITELIB}/psycopg2/tests/__init__.py 37${PYSITELIB}/psycopg2/tests/__init__.py
32${PYSITELIB}/psycopg2/tests/__init__.pyc 38${PYSITELIB}/psycopg2/tests/__init__.pyc
33${PYSITELIB}/psycopg2/tests/__init__.pyo 39${PYSITELIB}/psycopg2/tests/__init__.pyo
34${PYSITELIB}/psycopg2/tests/dbapi20.py 40${PYSITELIB}/psycopg2/tests/dbapi20.py
35${PYSITELIB}/psycopg2/tests/dbapi20.pyc 41${PYSITELIB}/psycopg2/tests/dbapi20.pyc
36${PYSITELIB}/psycopg2/tests/dbapi20.pyo 42${PYSITELIB}/psycopg2/tests/dbapi20.pyo
37${PYSITELIB}/psycopg2/tests/dbapi20_tpc.py 43${PYSITELIB}/psycopg2/tests/dbapi20_tpc.py
38${PYSITELIB}/psycopg2/tests/dbapi20_tpc.pyc 44${PYSITELIB}/psycopg2/tests/dbapi20_tpc.pyc
39${PYSITELIB}/psycopg2/tests/dbapi20_tpc.pyo 45${PYSITELIB}/psycopg2/tests/dbapi20_tpc.pyo
40${PYSITELIB}/psycopg2/tests/test_async.py 46${PYSITELIB}/psycopg2/tests/test_async.py
41${PYSITELIB}/psycopg2/tests/test_async.pyc 47${PYSITELIB}/psycopg2/tests/test_async.pyc
42${PYSITELIB}/psycopg2/tests/test_async.pyo 48${PYSITELIB}/psycopg2/tests/test_async.pyo
 49${PYSITELIB}/psycopg2/tests/test_async_keyword.py
 50${PYSITELIB}/psycopg2/tests/test_async_keyword.pyc
 51${PYSITELIB}/psycopg2/tests/test_async_keyword.pyo
43${PYSITELIB}/psycopg2/tests/test_bugX000.py 52${PYSITELIB}/psycopg2/tests/test_bugX000.py
44${PYSITELIB}/psycopg2/tests/test_bugX000.pyc 53${PYSITELIB}/psycopg2/tests/test_bugX000.pyc
45${PYSITELIB}/psycopg2/tests/test_bugX000.pyo 54${PYSITELIB}/psycopg2/tests/test_bugX000.pyo
46${PYSITELIB}/psycopg2/tests/test_bug_gc.py 55${PYSITELIB}/psycopg2/tests/test_bug_gc.py
47${PYSITELIB}/psycopg2/tests/test_bug_gc.pyc 56${PYSITELIB}/psycopg2/tests/test_bug_gc.pyc
48${PYSITELIB}/psycopg2/tests/test_bug_gc.pyo 57${PYSITELIB}/psycopg2/tests/test_bug_gc.pyo
49${PYSITELIB}/psycopg2/tests/test_cancel.py 58${PYSITELIB}/psycopg2/tests/test_cancel.py
50${PYSITELIB}/psycopg2/tests/test_cancel.pyc 59${PYSITELIB}/psycopg2/tests/test_cancel.pyc
51${PYSITELIB}/psycopg2/tests/test_cancel.pyo 60${PYSITELIB}/psycopg2/tests/test_cancel.pyo
52${PYSITELIB}/psycopg2/tests/test_connection.py 61${PYSITELIB}/psycopg2/tests/test_connection.py
53${PYSITELIB}/psycopg2/tests/test_connection.pyc 62${PYSITELIB}/psycopg2/tests/test_connection.pyc
54${PYSITELIB}/psycopg2/tests/test_connection.pyo 63${PYSITELIB}/psycopg2/tests/test_connection.pyo
55${PYSITELIB}/psycopg2/tests/test_copy.py 64${PYSITELIB}/psycopg2/tests/test_copy.py
@@ -57,44 +66,56 @@ ${PYSITELIB}/psycopg2/tests/test_copy.py @@ -57,44 +66,56 @@ ${PYSITELIB}/psycopg2/tests/test_copy.py
57${PYSITELIB}/psycopg2/tests/test_copy.pyo 66${PYSITELIB}/psycopg2/tests/test_copy.pyo
58${PYSITELIB}/psycopg2/tests/test_cursor.py 67${PYSITELIB}/psycopg2/tests/test_cursor.py
59${PYSITELIB}/psycopg2/tests/test_cursor.pyc 68${PYSITELIB}/psycopg2/tests/test_cursor.pyc
60${PYSITELIB}/psycopg2/tests/test_cursor.pyo 69${PYSITELIB}/psycopg2/tests/test_cursor.pyo
61${PYSITELIB}/psycopg2/tests/test_dates.py 70${PYSITELIB}/psycopg2/tests/test_dates.py
62${PYSITELIB}/psycopg2/tests/test_dates.pyc 71${PYSITELIB}/psycopg2/tests/test_dates.pyc
63${PYSITELIB}/psycopg2/tests/test_dates.pyo 72${PYSITELIB}/psycopg2/tests/test_dates.pyo
64${PYSITELIB}/psycopg2/tests/test_errcodes.py 73${PYSITELIB}/psycopg2/tests/test_errcodes.py
65${PYSITELIB}/psycopg2/tests/test_errcodes.pyc 74${PYSITELIB}/psycopg2/tests/test_errcodes.pyc
66${PYSITELIB}/psycopg2/tests/test_errcodes.pyo 75${PYSITELIB}/psycopg2/tests/test_errcodes.pyo
67${PYSITELIB}/psycopg2/tests/test_extras_dictcursor.py 76${PYSITELIB}/psycopg2/tests/test_extras_dictcursor.py
68${PYSITELIB}/psycopg2/tests/test_extras_dictcursor.pyc 77${PYSITELIB}/psycopg2/tests/test_extras_dictcursor.pyc
69${PYSITELIB}/psycopg2/tests/test_extras_dictcursor.pyo 78${PYSITELIB}/psycopg2/tests/test_extras_dictcursor.pyo
 79${PYSITELIB}/psycopg2/tests/test_fast_executemany.py
 80${PYSITELIB}/psycopg2/tests/test_fast_executemany.pyc
 81${PYSITELIB}/psycopg2/tests/test_fast_executemany.pyo
70${PYSITELIB}/psycopg2/tests/test_green.py 82${PYSITELIB}/psycopg2/tests/test_green.py
71${PYSITELIB}/psycopg2/tests/test_green.pyc 83${PYSITELIB}/psycopg2/tests/test_green.pyc
72${PYSITELIB}/psycopg2/tests/test_green.pyo 84${PYSITELIB}/psycopg2/tests/test_green.pyo
 85${PYSITELIB}/psycopg2/tests/test_ipaddress.py
 86${PYSITELIB}/psycopg2/tests/test_ipaddress.pyc
 87${PYSITELIB}/psycopg2/tests/test_ipaddress.pyo
73${PYSITELIB}/psycopg2/tests/test_lobject.py 88${PYSITELIB}/psycopg2/tests/test_lobject.py
74${PYSITELIB}/psycopg2/tests/test_lobject.pyc 89${PYSITELIB}/psycopg2/tests/test_lobject.pyc
75${PYSITELIB}/psycopg2/tests/test_lobject.pyo 90${PYSITELIB}/psycopg2/tests/test_lobject.pyo
76${PYSITELIB}/psycopg2/tests/test_module.py 91${PYSITELIB}/psycopg2/tests/test_module.py
77${PYSITELIB}/psycopg2/tests/test_module.pyc 92${PYSITELIB}/psycopg2/tests/test_module.pyc
78${PYSITELIB}/psycopg2/tests/test_module.pyo 93${PYSITELIB}/psycopg2/tests/test_module.pyo
79${PYSITELIB}/psycopg2/tests/test_notify.py 94${PYSITELIB}/psycopg2/tests/test_notify.py
80${PYSITELIB}/psycopg2/tests/test_notify.pyc 95${PYSITELIB}/psycopg2/tests/test_notify.pyc
81${PYSITELIB}/psycopg2/tests/test_notify.pyo 96${PYSITELIB}/psycopg2/tests/test_notify.pyo
82${PYSITELIB}/psycopg2/tests/test_psycopg2_dbapi20.py 97${PYSITELIB}/psycopg2/tests/test_psycopg2_dbapi20.py
83${PYSITELIB}/psycopg2/tests/test_psycopg2_dbapi20.pyc 98${PYSITELIB}/psycopg2/tests/test_psycopg2_dbapi20.pyc
84${PYSITELIB}/psycopg2/tests/test_psycopg2_dbapi20.pyo 99${PYSITELIB}/psycopg2/tests/test_psycopg2_dbapi20.pyo
85${PYSITELIB}/psycopg2/tests/test_quote.py 100${PYSITELIB}/psycopg2/tests/test_quote.py
86${PYSITELIB}/psycopg2/tests/test_quote.pyc 101${PYSITELIB}/psycopg2/tests/test_quote.pyc
87${PYSITELIB}/psycopg2/tests/test_quote.pyo 102${PYSITELIB}/psycopg2/tests/test_quote.pyo
 103${PYSITELIB}/psycopg2/tests/test_replication.py
 104${PYSITELIB}/psycopg2/tests/test_replication.pyc
 105${PYSITELIB}/psycopg2/tests/test_replication.pyo
 106${PYSITELIB}/psycopg2/tests/test_sql.py
 107${PYSITELIB}/psycopg2/tests/test_sql.pyc
 108${PYSITELIB}/psycopg2/tests/test_sql.pyo
88${PYSITELIB}/psycopg2/tests/test_transaction.py 109${PYSITELIB}/psycopg2/tests/test_transaction.py
89${PYSITELIB}/psycopg2/tests/test_transaction.pyc 110${PYSITELIB}/psycopg2/tests/test_transaction.pyc
90${PYSITELIB}/psycopg2/tests/test_transaction.pyo 111${PYSITELIB}/psycopg2/tests/test_transaction.pyo
91${PYSITELIB}/psycopg2/tests/test_types_basic.py 112${PYSITELIB}/psycopg2/tests/test_types_basic.py
92${PYSITELIB}/psycopg2/tests/test_types_basic.pyc 113${PYSITELIB}/psycopg2/tests/test_types_basic.pyc
93${PYSITELIB}/psycopg2/tests/test_types_basic.pyo 114${PYSITELIB}/psycopg2/tests/test_types_basic.pyo
94${PYSITELIB}/psycopg2/tests/test_types_extras.py 115${PYSITELIB}/psycopg2/tests/test_types_extras.py
95${PYSITELIB}/psycopg2/tests/test_types_extras.pyc 116${PYSITELIB}/psycopg2/tests/test_types_extras.pyc
96${PYSITELIB}/psycopg2/tests/test_types_extras.pyo 117${PYSITELIB}/psycopg2/tests/test_types_extras.pyo
97${PYSITELIB}/psycopg2/tests/test_with.py 118${PYSITELIB}/psycopg2/tests/test_with.py
98${PYSITELIB}/psycopg2/tests/test_with.pyc 119${PYSITELIB}/psycopg2/tests/test_with.pyc
99${PYSITELIB}/psycopg2/tests/test_with.pyo 120${PYSITELIB}/psycopg2/tests/test_with.pyo
100${PYSITELIB}/psycopg2/tests/testconfig.py 121${PYSITELIB}/psycopg2/tests/testconfig.py

cvs diff -r1.23 -r1.24 pkgsrc/databases/py-psycopg2/distinfo (expand / switch to unified diff)

--- pkgsrc/databases/py-psycopg2/distinfo 2016/07/21 12:53:20 1.23
+++ pkgsrc/databases/py-psycopg2/distinfo 2017/03/05 14:19:07 1.24
@@ -1,6 +1,6 @@ @@ -1,6 +1,6 @@
1$NetBSD: distinfo,v 1.23 2016/07/21 12:53:20 wiz Exp $ 1$NetBSD: distinfo,v 1.24 2017/03/05 14:19:07 wiz Exp $
2 2
3SHA1 (psycopg2-2.6.2.tar.gz) = 9964686caa8759b9eedfbc4f73e1e2665f6b6d7e 3SHA1 (psycopg2-2.7.tar.gz) = 060c1b19dd0e1037ef958dfee1998ee0f9abb6f5
4RMD160 (psycopg2-2.6.2.tar.gz) = f9b73dd247d2caa97f08b8730798d9f6f4ae9dd1 4RMD160 (psycopg2-2.7.tar.gz) = 7315c887eb1859f4ca67b24f870595b31f753604
5SHA512 (psycopg2-2.6.2.tar.gz) = 614314b5ab7ab5fa7c5e9c4f861579f90bd73521a9964dcb5a0938f77a9d6dfbea689cef35ad399cda698a45bb736c315912cb5dca85a52132f011d79f4863ac 5SHA512 (psycopg2-2.7.tar.gz) = 6e8923767960fc1fbd03623030005d6cbb2a0c98a51e6681622aa86903c22ea9d4827238a1ce1c9fbd2140c3eccd0c421a89ad5810b7e8577618e5a61e395b42
6Size (psycopg2-2.6.2.tar.gz) = 376348 bytes 6Size (psycopg2-2.7.tar.gz) = 421773 bytes