diff -Nru psycopg2-2.8.4/debian/changelog psycopg2-2.8.5/debian/changelog --- psycopg2-2.8.4/debian/changelog 2020-03-06 23:46:53.000000000 +0000 +++ psycopg2-2.8.5/debian/changelog 2020-04-08 04:54:00.000000000 +0000 @@ -1,3 +1,12 @@ +psycopg2 (2.8.5-1) unstable; urgency=medium + + * New upstream release + - Refresh patches + * Add d/patches/0007-Use-default-sphinx-theme.patch since 'better' theme + used by upstream is not packaged in Debian + + -- Scott Kitterman Wed, 08 Apr 2020 00:54:00 -0400 + psycopg2 (2.8.4-2) unstable; urgency=medium * Drop python2 support (Closes: #937331) diff -Nru psycopg2-2.8.4/debian/patches/0001-local_inventory.patch psycopg2-2.8.5/debian/patches/0001-local_inventory.patch --- psycopg2-2.8.4/debian/patches/0001-local_inventory.patch 2019-11-17 21:15:16.000000000 +0000 +++ psycopg2-2.8.5/debian/patches/0001-local_inventory.patch 2020-04-08 04:54:00.000000000 +0000 @@ -7,21 +7,19 @@ Patch by Scott Kitterman Feb 2, 2012 Patch-Name: local_inventory --- - doc/src/conf.py | 4 ++-- - 1 file changed, 2 insertions(+), 2 deletions(-) + doc/src/conf.py | 2 +- + 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/doc/src/conf.py b/doc/src/conf.py -index 820cad4..9af844b 100644 +index 1b65c34..25f52c0 100644 --- a/doc/src/conf.py +++ b/doc/src/conf.py -@@ -61,8 +61,8 @@ except ImportError: - release = version +@@ -70,7 +70,7 @@ else: + release = psycopg2.__version__.split()[0] + version = '.'.join(release.split('.')[:2]) - intersphinx_mapping = { -- 'py': ('https://docs.python.org/3', None), --} -+ 'py': ('/usr/share/doc/python3-doc/html', None), -+ } +-intersphinx_mapping = {'py': ('https://docs.python.org/3', None)} ++intersphinx_mapping = {'py': ('/usr/share/doc/python3-doc/html', None)} # Pattern to generate links to the bug tracker ticket_url = 'https://github.com/psycopg/psycopg2/issues/%s' diff -Nru psycopg2-2.8.4/debian/patches/0002-Fix-use-of-async-in-tests-test_async_keyword.py-so-b.patch psycopg2-2.8.5/debian/patches/0002-Fix-use-of-async-in-tests-test_async_keyword.py-so-b.patch --- psycopg2-2.8.4/debian/patches/0002-Fix-use-of-async-in-tests-test_async_keyword.py-so-b.patch 2019-11-17 21:15:16.000000000 +0000 +++ psycopg2-2.8.5/debian/patches/0002-Fix-use-of-async-in-tests-test_async_keyword.py-so-b.patch 2020-04-08 04:54:00.000000000 +0000 @@ -8,10 +8,10 @@ 1 file changed, 25 insertions(+), 25 deletions(-) diff --git a/tests/test_async_keyword.py b/tests/test_async_keyword.py -index 882011c..10c4897 100755 +index e112692..0fd21b7 100755 --- a/tests/test_async_keyword.py +++ b/tests/test_async_keyword.py -@@ -42,7 +42,7 @@ class AsyncTests(ConnectingTestCase): +@@ -43,7 +43,7 @@ class AsyncTests(ConnectingTestCase): ConnectingTestCase.setUp(self) self.sync_conn = self.conn @@ -20,7 +20,7 @@ self.wait(self.conn) -@@ -58,30 +58,30 @@ class AsyncTests(ConnectingTestCase): +@@ -59,30 +59,30 @@ class AsyncTests(ConnectingTestCase): sync_cur = self.sync_conn.cursor() del cur, sync_cur @@ -63,7 +63,7 @@ self.wait(cnn) except psycopg2.Error as e: self.assertNotEqual(str(e), "asynchronous connection failed", -@@ -104,7 +104,7 @@ class CancelTests(ConnectingTestCase): +@@ -105,7 +105,7 @@ class CancelTests(ConnectingTestCase): @slow @skip_before_postgres(8, 2) def test_async_cancel(self): @@ -72,7 +72,7 @@ self.assertRaises(psycopg2.OperationalError, async_conn.cancel) extras.wait_select(async_conn) cur = async_conn.cursor() -@@ -119,7 +119,7 @@ class CancelTests(ConnectingTestCase): +@@ -120,7 +120,7 @@ class CancelTests(ConnectingTestCase): self.assertEqual(cur.fetchall(), [(1, )]) def test_async_connection_cancel(self): @@ -81,7 +81,7 @@ async_conn.close() self.assertTrue(async_conn.closed) -@@ -128,8 +128,8 @@ class ConnectTestCase(unittest.TestCase): +@@ -129,8 +129,8 @@ class ConnectTestCase(unittest.TestCase): def setUp(self): self.args = None @@ -92,7 +92,7 @@ self._connect_orig = psycopg2._connect psycopg2._connect = connect_stub -@@ -140,12 +140,12 @@ class ConnectTestCase(unittest.TestCase): +@@ -141,12 +141,12 @@ class ConnectTestCase(unittest.TestCase): def test_there_has_to_be_something(self): self.assertRaises(TypeError, psycopg2.connect) self.assertRaises(TypeError, psycopg2.connect, @@ -108,7 +108,7 @@ pass psycopg2.connect(database='foo', host='baz', connection_factory=f) -@@ -159,15 +159,15 @@ class ConnectTestCase(unittest.TestCase): +@@ -160,15 +160,15 @@ class ConnectTestCase(unittest.TestCase): self.assertEqual(self.args[2], False) def test_async(self): @@ -128,7 +128,7 @@ class AsyncReplicationTest(ReplicationTestCase): -@@ -175,7 +175,7 @@ class AsyncReplicationTest(ReplicationTestCase): +@@ -176,7 +176,7 @@ class AsyncReplicationTest(ReplicationTestCase): @skip_repl_if_green def test_async_replication(self): conn = self.repl_connect( diff -Nru psycopg2-2.8.4/debian/patches/0003-failing-tests.patch psycopg2-2.8.5/debian/patches/0003-failing-tests.patch --- psycopg2-2.8.4/debian/patches/0003-failing-tests.patch 2019-11-17 21:15:16.000000000 +0000 +++ psycopg2-2.8.5/debian/patches/0003-failing-tests.patch 2020-04-08 04:54:00.000000000 +0000 @@ -13,10 +13,10 @@ 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/tests/test_types_basic.py b/tests/test_types_basic.py -index a0f2d7c..af6b669 100755 +index a6b7af0..4419217 100755 --- a/tests/test_types_basic.py +++ b/tests/test_types_basic.py -@@ -402,8 +402,8 @@ class TypesBasicTests(ConnectingTestCase): +@@ -403,8 +403,8 @@ class TypesBasicTests(ConnectingTestCase): @testutils.skip_before_postgres(8, 2) def testNetworkArray(self): # we don't know these types, but we know their arrays diff -Nru psycopg2-2.8.4/debian/patches/0004-Use-buildsystem-python-to-build-documentation.patch psycopg2-2.8.5/debian/patches/0004-Use-buildsystem-python-to-build-documentation.patch --- psycopg2-2.8.4/debian/patches/0004-Use-buildsystem-python-to-build-documentation.patch 2019-11-17 21:15:16.000000000 +0000 +++ psycopg2-2.8.5/debian/patches/0004-Use-buildsystem-python-to-build-documentation.patch 2020-04-08 04:54:00.000000000 +0000 @@ -7,15 +7,15 @@ 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/doc/Makefile b/doc/Makefile -index 14594e2..eee20eb 100644 +index 4b2752b..04948a9 100644 --- a/doc/Makefile +++ b/doc/Makefile -@@ -19,7 +19,7 @@ html: src/sqlstate_errors.rst +@@ -19,7 +19,7 @@ html: package src/sqlstate_errors.rst cp -r src/_build/html . - src/sqlstate_errors.rst: ../psycopg/sqlstate_errors.h + src/sqlstate_errors.rst: ../psycopg/sqlstate_errors.h $(BUILD_DIR) - env/bin/python src/tools/make_sqlstate_docs.py $< > $@ + $(PYTHON) src/tools/make_sqlstate_docs.py $< > $@ - doctest: + $(BUILD_DIR): $(MAKE) PYTHON=$(PYTHON) -C .. package diff -Nru psycopg2-2.8.4/debian/patches/0006-Sphinx-no-spanning-cells.patch psycopg2-2.8.5/debian/patches/0006-Sphinx-no-spanning-cells.patch --- psycopg2-2.8.4/debian/patches/0006-Sphinx-no-spanning-cells.patch 2019-11-17 21:15:16.000000000 +0000 +++ psycopg2-2.8.5/debian/patches/0006-Sphinx-no-spanning-cells.patch 2020-04-08 04:54:00.000000000 +0000 @@ -17,17 +17,17 @@ 2 files changed, 1 insertion(+), 15 deletions(-) diff --git a/doc/Makefile b/doc/Makefile -index eee20eb..acbc989 100644 +index 04948a9..4dbdf9a 100644 --- a/doc/Makefile +++ b/doc/Makefile -@@ -19,7 +19,7 @@ html: src/sqlstate_errors.rst +@@ -19,7 +19,7 @@ html: package src/sqlstate_errors.rst cp -r src/_build/html . - src/sqlstate_errors.rst: ../psycopg/sqlstate_errors.h + src/sqlstate_errors.rst: ../psycopg/sqlstate_errors.h $(BUILD_DIR) - $(PYTHON) src/tools/make_sqlstate_docs.py $< > $@ + #$(PYTHON) src/tools/make_sqlstate_docs.py $< > $@ - doctest: + $(BUILD_DIR): $(MAKE) PYTHON=$(PYTHON) -C .. package diff --git a/doc/src/errors.rst b/doc/src/errors.rst index f2871d9..281ddad 100644 diff -Nru psycopg2-2.8.4/debian/patches/0007-Use-default-sphinx-theme.patch psycopg2-2.8.5/debian/patches/0007-Use-default-sphinx-theme.patch --- psycopg2-2.8.4/debian/patches/0007-Use-default-sphinx-theme.patch 1970-01-01 00:00:00.000000000 +0000 +++ psycopg2-2.8.5/debian/patches/0007-Use-default-sphinx-theme.patch 2020-04-08 04:54:00.000000000 +0000 @@ -0,0 +1,39 @@ +From: Scott Kitterman +Date: Wed, 8 Apr 2020 01:12:18 -0400 +Subject: Use default sphinx theme + +--- + doc/src/conf.py | 6 +++--- + 1 file changed, 3 insertions(+), 3 deletions(-) + +diff --git a/doc/src/conf.py b/doc/src/conf.py +index 25f52c0..d4304a8 100644 +--- a/doc/src/conf.py ++++ b/doc/src/conf.py +@@ -13,7 +13,7 @@ + + import os + import sys +-from better import better_theme_path ++#from better import better_theme_path + + # If extensions (or modules to document with autodoc) are in another directory, + # add these directories to sys.path here. If the directory is relative to the +@@ -138,7 +138,7 @@ rst_epilog = """ + + # The theme to use for HTML and HTML Help pages. Major themes that come with + # Sphinx are currently 'default' and 'sphinxdoc'. +-html_theme = 'better' ++html_theme = 'default' + + # The stylesheet to use with HTML output: this will include the original one + # adding a few classes. +@@ -156,7 +156,7 @@ html_theme_options = { + } + + # Add any paths that contain custom themes here, relative to this directory. +-html_theme_path = [better_theme_path] ++#html_theme_path = [better_theme_path] + + # The name for this set of Sphinx documents. If None, it defaults to + # " v documentation". diff -Nru psycopg2-2.8.4/debian/patches/series psycopg2-2.8.5/debian/patches/series --- psycopg2-2.8.4/debian/patches/series 2019-11-17 21:15:16.000000000 +0000 +++ psycopg2-2.8.5/debian/patches/series 2020-04-08 04:54:00.000000000 +0000 @@ -4,3 +4,4 @@ 0004-Use-buildsystem-python-to-build-documentation.patch 0005-Sphinx-workaround.patch 0006-Sphinx-no-spanning-cells.patch +0007-Use-default-sphinx-theme.patch diff -Nru psycopg2-2.8.4/doc/Makefile psycopg2-2.8.5/doc/Makefile --- psycopg2-2.8.4/doc/Makefile 2019-10-20 00:45:30.000000000 +0000 +++ psycopg2-2.8.5/doc/Makefile 2020-04-06 05:35:09.000000000 +0000 @@ -1,4 +1,4 @@ -.PHONY: env help clean html doctest +.PHONY: env help clean html package doctest docs: html @@ -9,26 +9,25 @@ PYTHON := python$(PYTHON_VERSION) PYTHON_VERSION ?= $(shell $(PYTHON) -c 'import sys; print ("%d.%d" % sys.version_info[:2])') +BUILD_DIR = $(shell pwd)/../build/lib.$(PYTHON_VERSION) SPHINXBUILD ?= $$(pwd)/env/bin/sphinx-build SPHOPTS = SPHINXBUILD=$(SPHINXBUILD) -html: src/sqlstate_errors.rst - $(MAKE) PYTHON=$(PYTHON) -C .. package +html: package src/sqlstate_errors.rst $(MAKE) $(SPHOPTS) -C src $@ cp -r src/_build/html . -src/sqlstate_errors.rst: ../psycopg/sqlstate_errors.h +src/sqlstate_errors.rst: ../psycopg/sqlstate_errors.h $(BUILD_DIR) env/bin/python src/tools/make_sqlstate_docs.py $< > $@ +$(BUILD_DIR): + $(MAKE) PYTHON=$(PYTHON) -C .. package + doctest: $(MAKE) PYTHON=$(PYTHON) -C .. package $(MAKE) $(SPHOPTS) -C src $@ -upload: - # this command requires ssh configured to the proper target - tar czf - -C html . | ssh psycoweb tar xzvf - -C docs/current - clean: $(MAKE) $(SPHOPTS) -C src $@ rm -rf html src/sqlstate_errors.rst diff -Nru psycopg2-2.8.4/doc/README.rst psycopg2-2.8.5/doc/README.rst --- psycopg2-2.8.4/doc/README.rst 2019-10-20 00:45:30.000000000 +0000 +++ psycopg2-2.8.5/doc/README.rst 2020-04-06 05:35:09.000000000 +0000 @@ -6,7 +6,7 @@ prerequisite is virtualenv_: the packages needed to build the docs will be installed when building the env. -.. _prerequisites: http://initd.org/psycopg/docs/install.html#install-from-source +.. _prerequisites: https://www.psycopg.org/docs/install.html#install-from-source .. _virtualenv: https://virtualenv.pypa.io/en/latest/ Build the env once with:: diff -Nru psycopg2-2.8.4/doc/requirements.txt psycopg2-2.8.5/doc/requirements.txt --- psycopg2-2.8.4/doc/requirements.txt 2019-10-20 00:45:30.000000000 +0000 +++ psycopg2-2.8.5/doc/requirements.txt 2020-04-06 05:35:09.000000000 +0000 @@ -1,3 +1,8 @@ # Packages only needed to build the docs Pygments>=2.2,<2.3 Sphinx>=1.6,<=1.7 +sphinx-better-theme>=0.1.5,<0.2 + +# 0.15.2 affected by https://sourceforge.net/p/docutils/bugs/353/ +# Can update to 0.16 after release (currently in rc) but must update Sphinx too +docutils<0.15 diff -Nru psycopg2-2.8.4/doc/src/conf.py psycopg2-2.8.5/doc/src/conf.py --- psycopg2-2.8.4/doc/src/conf.py 2019-10-20 00:45:30.000000000 +0000 +++ psycopg2-2.8.5/doc/src/conf.py 2020-04-06 05:35:09.000000000 +0000 @@ -11,7 +11,9 @@ # All configuration values have a default; values that are commented out # serve to show the default. -import sys, os +import os +import sys +from better import better_theme_path # If extensions (or modules to document with autodoc) are in another directory, # add these directories to sys.path here. If the directory is relative to the @@ -22,11 +24,16 @@ # Add any Sphinx extension module names here, as strings. They can be extensions # coming with Sphinx (named 'sphinx.ext.*') or your custom ones. -extensions = ['sphinx.ext.autodoc', 'sphinx.ext.todo', 'sphinx.ext.ifconfig', - 'sphinx.ext.doctest', 'sphinx.ext.intersphinx' ] +extensions = [ + 'sphinx.ext.autodoc', + 'sphinx.ext.todo', + 'sphinx.ext.ifconfig', + 'sphinx.ext.doctest', + 'sphinx.ext.intersphinx', +] # Specific extensions for Psycopg documentation. -extensions += [ 'dbapi_extension', 'sql_role', 'ticket_role' ] +extensions += ['dbapi_extension', 'sql_role', 'ticket_role'] # Add any paths that contain templates here, relative to this directory. templates_path = ['_templates'] @@ -35,14 +42,16 @@ source_suffix = '.rst' # The encoding of source files. -#source_encoding = 'utf-8' +# source_encoding = 'utf-8' # The master toctree document. master_doc = 'index' # General information about the project. project = u'Psycopg' -copyright = u'2001-2019, Federico Di Gregorio, Daniele Varrazzo' +copyright = ( + u'2001-2020, Federico Di Gregorio, Daniele Varrazzo, The Psycopg Team' +) # The version info for the project you're documenting, acts as replacement for # |version| and |release|, also used in various other places throughout the @@ -54,15 +63,14 @@ # The full version, including alpha/beta/rc tags. try: import psycopg2 - release = psycopg2.__version__.split()[0] - version = '.'.join(release.split('.')[:2]) except ImportError: print("WARNING: couldn't import psycopg to read version.") release = version +else: + release = psycopg2.__version__.split()[0] + version = '.'.join(release.split('.')[:2]) -intersphinx_mapping = { - 'py': ('https://docs.python.org/3', None), -} +intersphinx_mapping = {'py': ('https://docs.python.org/3', None)} # Pattern to generate links to the bug tracker ticket_url = 'https://github.com/psycopg/psycopg2/issues/%s' @@ -71,16 +79,16 @@ # The language for content autogenerated by Sphinx. Refer to documentation # for a list of supported languages. -#language = None +# language = None # There are two options for replacing |today|: either, you set today to some # non-false value, then it is used: -#today = '' +# today = '' # Else, today_fmt is used as the format for a strftime call. -#today_fmt = '%B %d, %Y' +# today_fmt = '%B %d, %Y' # List of documents that shouldn't be included in the build. -#unused_docs = [] +# unused_docs = [] # List of directories, relative to source directory, that shouldn't be searched # for source files. @@ -90,15 +98,15 @@ default_role = 'obj' # If true, '()' will be appended to :func: etc. cross-reference text. -#add_function_parentheses = True +# add_function_parentheses = True # If true, the current module name will be prepended to all description # unit titles (such as .. function::). -#add_module_names = True +# add_module_names = True # If true, sectionauthor and moduleauthor directives will be shown in the # output. They are ignored by default. -#show_authors = False +# show_authors = False # Using 'python' instead of the default gives warnings if parsing an example # fails, instead of defaulting to none @@ -108,7 +116,7 @@ pygments_style = 'sphinx' # A list of ignored prefixes for module index sorting. -#modindex_common_prefix = [] +# modindex_common_prefix = [] # Include TODO items in the documentation todo_include_todos = False @@ -130,35 +138,41 @@ # The theme to use for HTML and HTML Help pages. Major themes that come with # Sphinx are currently 'default' and 'sphinxdoc'. -html_theme = 'classic' +html_theme = 'better' # The stylesheet to use with HTML output: this will include the original one # adding a few classes. -html_style = 'psycopg.css' +# html_style = 'psycopg.css' + +# Hide the sphinx footer +html_show_sphinx = False # Theme options are theme-specific and customize the look and feel of a theme # further. For a list of options available for each theme, see the # documentation. -#html_theme_options = {} +html_theme_options = { + 'linktotheme': False, + 'cssfiles': ['_static/psycopg.css'], +} # Add any paths that contain custom themes here, relative to this directory. -#html_theme_path = [] +html_theme_path = [better_theme_path] # The name for this set of Sphinx documents. If None, it defaults to # " v documentation". -#html_title = None +# html_title = None # A shorter title for the navigation bar. Default is the same as html_title. -#html_short_title = None +html_short_title = 'Home' # The name of an image file (relative to this directory) to place at the top # of the sidebar. -#html_logo = None +# html_logo = None # The name of an image file (within the static path) to use as favicon of the # docs. This file should be a Windows icon file (.ico) being 16x16 or 32x32 # pixels large. -#html_favicon = None +# html_favicon = None # Add any paths that contain custom static files (such as style sheets) here, # relative to this directory. They are copied after the builtin static files, @@ -167,38 +181,41 @@ # If not '', a 'Last updated on:' timestamp is inserted at every page bottom, # using the given strftime format. -#html_last_updated_fmt = '%b %d, %Y' +# html_last_updated_fmt = '%b %d, %Y' # If true, SmartyPants will be used to convert quotes and dashes to # typographically correct entities. -#html_use_smartypants = True +# html_use_smartypants = True # Custom sidebar templates, maps document names to template names. -#html_sidebars = {} +# no need for the prev/next topic link using better theme: they are on top +html_sidebars = { + '**': ['localtoc.html', 'searchbox.html'], +} # Additional templates that should be rendered to pages, maps page names to # template names. -#html_additional_pages = {} +# html_additional_pages = {} # If false, no module index is generated. -#html_use_modindex = True +# html_use_modindex = True # If false, no index is generated. -#html_use_index = True +# html_use_index = True # If true, the index is split into individual pages for each letter. -#html_split_index = False +# html_split_index = False # If true, links to the reST sources are added to the pages. -#html_show_sourcelink = True +# html_show_sourcelink = True # If true, an OpenSearch description file will be output, and all pages will # contain a tag referring to it. The value of this option must be the # base URL from which the finished HTML is served. -#html_use_opensearch = '' +# html_use_opensearch = '' # If nonempty, this is the file name suffix for HTML files (e.g. ".xhtml"). -#html_file_suffix = '' +# html_file_suffix = '' # Output file base name for HTML help builder. htmlhelp_basename = 'psycopgdoc' @@ -207,34 +224,39 @@ # -- Options for LaTeX output -------------------------------------------------- # The paper size ('letter' or 'a4'). -#latex_paper_size = 'letter' +# latex_paper_size = 'letter' # The font size ('10pt', '11pt' or '12pt'). -#latex_font_size = '10pt' +# latex_font_size = '10pt' # Grouping the document tree into LaTeX files. List of tuples # (source start file, target name, title, author, documentclass [howto/manual]). latex_documents = [ - ('index', 'psycopg.tex', u'Psycopg Documentation', - u'Federico Di Gregorio', 'manual'), + ( + 'index', + 'psycopg.tex', + u'Psycopg Documentation', + u'Federico Di Gregorio', + 'manual', + ) ] # The name of an image file (relative to this directory) to place at the top of # the title page. -#latex_logo = None +# latex_logo = None # For "manual" documents, if this is true, then toplevel headings are parts, # not chapters. -#latex_use_parts = False +# latex_use_parts = False # Additional stuff for the LaTeX preamble. -#latex_preamble = '' +# latex_preamble = '' # Documents to append as an appendix to all manuals. -#latex_appendices = [] +# latex_appendices = [] # If false, no module index is generated. -#latex_use_modindex = True +# latex_use_modindex = True doctest_global_setup = """ diff -Nru psycopg2-2.8.4/doc/src/faq.rst psycopg2-2.8.5/doc/src/faq.rst --- psycopg2-2.8.4/doc/src/faq.rst 2019-10-20 00:45:30.000000000 +0000 +++ psycopg2-2.8.5/doc/src/faq.rst 2020-04-06 05:35:09.000000000 +0000 @@ -292,7 +292,7 @@ can handle a :kbd:`Ctrl-C` correctly. For previous versions, you can use `this implementation`__. - .. __: http://initd.org/psycopg/articles/2014/07/20/cancelling-postgresql-statements-python/ + .. __: https://www.psycopg.org/articles/2014/07/20/cancelling-postgresql-statements-python/ .. code-block:: pycon diff -Nru psycopg2-2.8.4/doc/src/index.rst psycopg2-2.8.5/doc/src/index.rst --- psycopg2-2.8.4/doc/src/index.rst 2019-10-20 00:45:30.000000000 +0000 +++ psycopg2-2.8.5/doc/src/index.rst 2020-04-06 05:35:09.000000000 +0000 @@ -23,7 +23,7 @@ Psycopg 2 is both Unicode and Python 3 friendly. -.. _Psycopg: http://initd.org/psycopg/ +.. _Psycopg: https://psycopg.org/ .. _PostgreSQL: https://www.postgresql.org/ .. _Python: https://www.python.org/ .. _libpq: https://www.postgresql.org/docs/current/static/libpq.html @@ -57,6 +57,7 @@ .. rubric:: Indices and tables * :ref:`genindex` + * :ref:`modindex` * :ref:`search` diff -Nru psycopg2-2.8.4/doc/src/install.rst psycopg2-2.8.5/doc/src/install.rst --- psycopg2-2.8.4/doc/src/install.rst 2019-10-20 00:45:30.000000000 +0000 +++ psycopg2-2.8.5/doc/src/install.rst 2020-04-06 05:35:09.000000000 +0000 @@ -11,8 +11,14 @@ The `psycopg2` package is the current mature implementation of the adapter: it is a C extension and as such it is only compatible with CPython_. If you want to use Psycopg on a different Python implementation (PyPy, Jython, IronPython) -there is an experimental `porting of Psycopg for Ctypes`__, but it is not as -mature as the C implementation yet. +there is a couple of alternative: + +- a `Ctypes port`__, but it is not as mature as the C implementation yet + and it is not as feature-complete; + +- a `CFFI port`__ which is currently more used and reported more efficient on + PyPy, but plese be careful to its version numbers because they are not + aligned to the official psycopg2 ones and some features may differ. .. _PostgreSQL: https://www.postgresql.org/ .. _Python: https://www.python.org/ @@ -20,6 +26,7 @@ .. _CPython: https://en.wikipedia.org/wiki/CPython .. _Ctypes: https://docs.python.org/library/ctypes.html .. __: https://github.com/mvantellingen/psycopg2-ctypes +.. __: https://github.com/chtd/psycopg2cffi @@ -257,7 +264,8 @@ messages, which can be very useful for diagnostics and to report a bug. In order to create a debug package: -- `Download`__ and unpack the Psycopg source package. +- `Download`__ and unpack the Psycopg *source package* (the ``.tar.gz`` + package). - Edit the ``setup.cfg`` file adding the ``PSYCOPG_DEBUG`` flag to the ``define`` option. @@ -274,7 +282,7 @@ one you just compiled and not e.g. the system one): you will have a copious stream of informations printed on stderr. -.. __: http://initd.org/psycopg/download/ +.. __: https://pypi.org/project/psycopg2/#files diff -Nru psycopg2-2.8.4/doc/src/sql.rst psycopg2-2.8.5/doc/src/sql.rst --- psycopg2-2.8.4/doc/src/sql.rst 2019-10-20 00:45:30.000000000 +0000 +++ psycopg2-2.8.5/doc/src/sql.rst 2020-04-06 05:35:09.000000000 +0000 @@ -55,10 +55,53 @@ .format(sql.Identifier('my_table')), [10, 20]) -The objects exposed by the `!sql` module can be used to compose a query as a -Python string (using the `~Composable.as_string()` method) or passed directly -to cursor methods such as `~cursor.execute()`, `~cursor.executemany()`, -`~cursor.copy_expert()`. + +Module usage +------------ + +Usually you should express the template of your query as an `SQL` instance +with `{}`\-style placeholders and use `~SQL.format()` to merge the variable +parts into them, all of which must be `Composable` subclasses. You can still +have `%s`\ -style placeholders in your query and pass values to +`~cursor.execute()`: such value placeholders will be untouched by +`!format()`:: + + query = sql.SQL("select {field} from {table} where {pkey} = %s").format( + field=sql.Identifier('my_name'), + table=sql.Identifier('some_table'), + pkey=sql.Identifier('id')) + +The resulting object is meant to be passed directly to cursor methods such as +`~cursor.execute()`, `~cursor.executemany()`, `~cursor.copy_expert()`, but can +also be used to compose a query as a Python string, using the +`~Composable.as_string()` method:: + + cur.execute(query, (42,)) + +If part of your query is a variable sequence of arguments, such as a +comma-separated list of field names, you can use the `SQL.join()` method to +pass them to the query:: + + query = sql.SQL("select {fields} from {table}").format( + fields=sql.SQL(',').join([ + sql.Identifier('field1'), + sql.Identifier('field2'), + sql.Identifier('field3'), + ]), + table=sql.Identifier('some_table')) + + +`!sql` objects +-------------- + +The `!sql` objects are in the following inheritance hierarchy: + +| `Composable`: the base class exposing the common interface +| ``|__`` `SQL`: a literal snippet of an SQL query +| ``|__`` `Identifier`: a PostgreSQL identifier or dot-separated sequence of identifiers +| ``|__`` `Literal`: a value hardcoded into a query +| ``|__`` `Placeholder`: a `%s`\ -style placeholder whose value will be added later e.g. by `~cursor.execute()` +| ``|__`` `Composed`: a sequence of `!Composable` instances. .. autoclass:: Composable diff -Nru psycopg2-2.8.4/doc/src/_static/psycopg.css psycopg2-2.8.5/doc/src/_static/psycopg.css --- psycopg2-2.8.4/doc/src/_static/psycopg.css 2019-10-20 00:45:30.000000000 +0000 +++ psycopg2-2.8.5/doc/src/_static/psycopg.css 2020-04-06 05:35:09.000000000 +0000 @@ -1,5 +1,3 @@ -@import url("classic.css"); - blockquote { font-style: italic; } @@ -37,3 +35,102 @@ table.data-types div.line-block { margin-bottom: 0; } + + +/* better theme customisation */ + +body { + background-color: #216464; +} + +header, .related, .document, footer { + background-color: white; +} + +header h1 { + font-size: 150%; + margin-bottom: 0; + padding: 0.5rem 10px 0.5rem 10px; +} + +h1, h2, h3 { + font-weight: normal; +} + +.body h1, .body h2, .body h3 { + color: #074848; +} + +h1 { + font-size: 200%; +} + +h2 { + font-size: 160%; +} + +h3 { + font-size: 140%; +} + +footer#pagefooter { + margin-bottom: 1rem; + font-size: 85%; + color: #444; +} + +#rellinks, #breadcrumbs { + padding-right: 10px; + padding-left: 10px; +} + +.sphinxsidebar { + padding-left: 10px; +} + +.bodywrapper { + padding-right: 10px; +} + +div.body h1, div.body h2, div.body h3 { + background-color: #f2f2f2; + border-bottom: 1px solid #d0d0d0; +} + +div.body p.rubric { + border-bottom: 1px solid #d0d0d0; +} + +body .sphinxsidebar .search { + margin-top: 0; +} + +html pre { + background-color: #efc; + border: 1px solid #ac9; + border-left: none; + border-right: none; +} + +a, a:visited { + color: #0b6868; +} + +th { + background-color: #ede; +} + +code.xref, a code { + font-weight: bold; +} + +code.descname { + font-weight: bold; + font-size: 120%; +} + +@media (max-width: 820px) { + body { + background-color: white; + } +} diff -Nru psycopg2-2.8.4/INSTALL psycopg2-2.8.5/INSTALL --- psycopg2-2.8.4/INSTALL 2019-10-20 00:45:30.000000000 +0000 +++ psycopg2-2.8.5/INSTALL 2020-04-06 05:35:09.000000000 +0000 @@ -1,4 +1,4 @@ Installation instructions are included in the docs. Please check the 'doc/src/install.rst' file or online at -. +. diff -Nru psycopg2-2.8.4/lib/errorcodes.py psycopg2-2.8.5/lib/errorcodes.py --- psycopg2-2.8.4/lib/errorcodes.py 2019-10-20 00:45:30.000000000 +0000 +++ psycopg2-2.8.5/lib/errorcodes.py 2020-04-06 05:35:09.000000000 +0000 @@ -5,6 +5,7 @@ # psycopg2/errorcodes.py - PostgreSQL error codes # # Copyright (C) 2006-2019 Johan Dahlin +# Copyright (C) 2020 The Psycopg Team # # psycopg2 is free software: you can redistribute it and/or modify it # under the terms of the GNU Lesser General Public License as published diff -Nru psycopg2-2.8.4/lib/errors.py psycopg2-2.8.5/lib/errors.py --- psycopg2-2.8.4/lib/errors.py 2019-10-20 00:45:30.000000000 +0000 +++ psycopg2-2.8.5/lib/errors.py 2020-04-06 05:35:09.000000000 +0000 @@ -4,6 +4,7 @@ # psycopg/errors.py - SQLSTATE and DB-API exceptions # # Copyright (C) 2018-2019 Daniele Varrazzo +# Copyright (C) 2020 The Psycopg Team # # psycopg2 is free software: you can redistribute it and/or modify it # under the terms of the GNU Lesser General Public License as published diff -Nru psycopg2-2.8.4/lib/extensions.py psycopg2-2.8.5/lib/extensions.py --- psycopg2-2.8.4/lib/extensions.py 2019-10-20 00:45:30.000000000 +0000 +++ psycopg2-2.8.5/lib/extensions.py 2020-04-06 05:35:09.000000000 +0000 @@ -13,6 +13,7 @@ # psycopg/extensions.py - DBAPI-2.0 extensions specific to psycopg # # Copyright (C) 2003-2019 Federico Di Gregorio +# Copyright (C) 2020 The Psycopg Team # # psycopg2 is free software: you can redistribute it and/or modify it # under the terms of the GNU Lesser General Public License as published diff -Nru psycopg2-2.8.4/lib/extras.py psycopg2-2.8.5/lib/extras.py --- psycopg2-2.8.4/lib/extras.py 2019-10-20 00:45:30.000000000 +0000 +++ psycopg2-2.8.5/lib/extras.py 2020-04-06 05:35:09.000000000 +0000 @@ -6,6 +6,7 @@ # psycopg/extras.py - miscellaneous extra goodies for psycopg # # Copyright (C) 2003-2019 Federico Di Gregorio +# Copyright (C) 2020 The Psycopg Team # # psycopg2 is free software: you can redistribute it and/or modify it # under the terms of the GNU Lesser General Public License as published @@ -124,7 +125,7 @@ class DictConnection(_connection): """A connection that uses `DictCursor` automatically.""" def cursor(self, *args, **kwargs): - kwargs.setdefault('cursor_factory', DictCursor) + kwargs.setdefault('cursor_factory', self.cursor_factory or DictCursor) return super(DictConnection, self).cursor(*args, **kwargs) @@ -195,6 +196,10 @@ def __contains__(self, x): return x in self._index + def __reduce__(self): + # this is apparently useless, but it fixes #1073 + return super(DictRow, self).__reduce__() + def __getstate__(self): return self[:], self._index.copy() @@ -221,7 +226,7 @@ class RealDictConnection(_connection): """A connection that uses `RealDictCursor` automatically.""" def cursor(self, *args, **kwargs): - kwargs.setdefault('cursor_factory', RealDictCursor) + kwargs.setdefault('cursor_factory', self.cursor_factory or RealDictCursor) return super(RealDictConnection, self).cursor(*args, **kwargs) @@ -291,7 +296,7 @@ class NamedTupleConnection(_connection): """A connection that uses `NamedTupleCursor` automatically.""" def cursor(self, *args, **kwargs): - kwargs.setdefault('cursor_factory', NamedTupleCursor) + kwargs.setdefault('cursor_factory', self.cursor_factory or NamedTupleCursor) return super(NamedTupleConnection, self).cursor(*args, **kwargs) @@ -391,6 +396,7 @@ def _cached_make_nt(cls, key): return cls._do_make_nt(key) + # Exposed for testability, and if someone wants to monkeypatch to tweak # the cache size. NamedTupleCursor._cached_make_nt = classmethod(_cached_make_nt) @@ -405,11 +411,12 @@ def initialize(self, logobj): """Initialize the connection to log to `!logobj`. - The `!logobj` parameter can be an open file object or a Logger + The `!logobj` parameter can be an open file object or a Logger/LoggerAdapter instance from the standard logging module. """ self._logobj = logobj - if _logging and isinstance(logobj, _logging.Logger): + if _logging and isinstance( + logobj, (_logging.Logger, _logging.LoggerAdapter)): self.log = self._logtologger else: self.log = self._logtofile @@ -442,7 +449,7 @@ def cursor(self, *args, **kwargs): self._check() - kwargs.setdefault('cursor_factory', LoggingCursor) + kwargs.setdefault('cursor_factory', self.cursor_factory or LoggingCursor) return super(LoggingConnection, self).cursor(*args, **kwargs) @@ -485,7 +492,8 @@ return msg + _os.linesep + " (execution time: %d ms)" % t def cursor(self, *args, **kwargs): - kwargs.setdefault('cursor_factory', MinTimeLoggingCursor) + kwargs.setdefault('cursor_factory', + self.cursor_factory or MinTimeLoggingCursor) return LoggingConnection.cursor(self, *args, **kwargs) diff -Nru psycopg2-2.8.4/lib/__init__.py psycopg2-2.8.5/lib/__init__.py --- psycopg2-2.8.4/lib/__init__.py 2019-10-20 00:45:30.000000000 +0000 +++ psycopg2-2.8.5/lib/__init__.py 2020-04-06 05:35:09.000000000 +0000 @@ -6,7 +6,7 @@ candies. Like the original, psycopg 2 was written with the aim of being very small and fast, and stable as a rock. -Homepage: http://initd.org/projects/psycopg2 +Homepage: https://psycopg.org/ .. _PostgreSQL: https://www.postgresql.org/ .. _Python: https://www.python.org/ @@ -19,6 +19,7 @@ # psycopg/__init__.py - initialization of the psycopg module # # Copyright (C) 2003-2019 Federico Di Gregorio +# Copyright (C) 2020 The Psycopg Team # # psycopg2 is free software: you can redistribute it and/or modify it # under the terms of the GNU Lesser General Public License as published diff -Nru psycopg2-2.8.4/lib/_ipaddress.py psycopg2-2.8.5/lib/_ipaddress.py --- psycopg2-2.8.4/lib/_ipaddress.py 2019-10-20 00:45:30.000000000 +0000 +++ psycopg2-2.8.5/lib/_ipaddress.py 2020-04-06 05:35:09.000000000 +0000 @@ -4,6 +4,7 @@ # psycopg/_ipaddress.py - Ipaddres-based network types adaptation # # Copyright (C) 2016-2019 Daniele Varrazzo +# Copyright (C) 2020 The Psycopg Team # # psycopg2 is free software: you can redistribute it and/or modify it # under the terms of the GNU Lesser General Public License as published diff -Nru psycopg2-2.8.4/lib/_json.py psycopg2-2.8.5/lib/_json.py --- psycopg2-2.8.4/lib/_json.py 2019-10-20 00:45:30.000000000 +0000 +++ psycopg2-2.8.5/lib/_json.py 2020-04-06 05:35:09.000000000 +0000 @@ -8,6 +8,7 @@ # psycopg/_json.py - Implementation of the JSON adaptation objects # # Copyright (C) 2012-2019 Daniele Varrazzo +# Copyright (C) 2020 The Psycopg Team # # psycopg2 is free software: you can redistribute it and/or modify it # under the terms of the GNU Lesser General Public License as published diff -Nru psycopg2-2.8.4/lib/pool.py psycopg2-2.8.5/lib/pool.py --- psycopg2-2.8.4/lib/pool.py 2019-10-20 00:45:30.000000000 +0000 +++ psycopg2-2.8.5/lib/pool.py 2020-04-06 05:35:09.000000000 +0000 @@ -5,6 +5,7 @@ # psycopg/pool.py - pooling code for psycopg # # Copyright (C) 2003-2019 Federico Di Gregorio +# Copyright (C) 2020 The Psycopg Team # # psycopg2 is free software: you can redistribute it and/or modify it # under the terms of the GNU Lesser General Public License as published diff -Nru psycopg2-2.8.4/lib/_range.py psycopg2-2.8.5/lib/_range.py --- psycopg2-2.8.4/lib/_range.py 2019-10-20 00:45:30.000000000 +0000 +++ psycopg2-2.8.5/lib/_range.py 2020-04-06 05:35:09.000000000 +0000 @@ -5,6 +5,7 @@ # psycopg/_range.py - Implementation of the Range type and adaptation # # Copyright (C) 2012-2019 Daniele Varrazzo +# Copyright (C) 2020 The Psycopg Team # # psycopg2 is free software: you can redistribute it and/or modify it # under the terms of the GNU Lesser General Public License as published diff -Nru psycopg2-2.8.4/lib/sql.py psycopg2-2.8.5/lib/sql.py --- psycopg2-2.8.4/lib/sql.py 2019-10-20 00:45:30.000000000 +0000 +++ psycopg2-2.8.5/lib/sql.py 2020-04-06 05:35:09.000000000 +0000 @@ -4,6 +4,7 @@ # psycopg/sql.py - SQL composition utility module # # Copyright (C) 2016-2019 Daniele Varrazzo +# Copyright (C) 2020 The Psycopg Team # # psycopg2 is free software: you can redistribute it and/or modify it # under the terms of the GNU Lesser General Public License as published diff -Nru psycopg2-2.8.4/lib/tz.py psycopg2-2.8.5/lib/tz.py --- psycopg2-2.8.4/lib/tz.py 2019-10-20 00:45:30.000000000 +0000 +++ psycopg2-2.8.5/lib/tz.py 2020-04-06 05:35:09.000000000 +0000 @@ -7,6 +7,7 @@ # psycopg/tz.py - tzinfo implementation # # Copyright (C) 2003-2019 Federico Di Gregorio +# Copyright (C) 2020 The Psycopg Team # # psycopg2 is free software: you can redistribute it and/or modify it # under the terms of the GNU Lesser General Public License as published diff -Nru psycopg2-2.8.4/Makefile psycopg2-2.8.5/Makefile --- psycopg2-2.8.4/Makefile 2019-10-20 00:45:30.000000000 +0000 +++ psycopg2-2.8.5/Makefile 2020-04-06 05:35:09.000000000 +0000 @@ -42,7 +42,7 @@ VERSION := $(shell grep PSYCOPG_VERSION setup.py | head -1 | sed -e "s/.*'\(.*\)'/\1/") SDIST := dist/psycopg2-$(VERSION).tar.gz -.PHONY: env check clean +.PHONY: check clean default: package diff -Nru psycopg2-2.8.4/NEWS psycopg2-2.8.5/NEWS --- psycopg2-2.8.4/NEWS 2019-10-20 00:45:30.000000000 +0000 +++ psycopg2-2.8.5/NEWS 2020-04-06 05:35:09.000000000 +0000 @@ -1,6 +1,19 @@ Current release --------------- +What's new in psycopg 2.8.5 +^^^^^^^^^^^^^^^^^^^^^^^^^^^ + +- Fixed use of `!connection_factory` and `!cursor_factory` together + (:ticket:`#1019`). +- Added support for `~logging.LoggerAdapter` in + `~psycopg2.extras.LoggingConnection` (:ticket:`#1026`). +- `~psycopg2.extensions.Column` objects in `cursor.description` can be sliced + (:ticket:`#1034`). +- Added AIX support (:ticket:`#1061`). +- Fixed `~copy.copy()` of `~psycopg2.extras.DictCursor` rows (:ticket:`#1073`). + + What's new in psycopg 2.8.4 ^^^^^^^^^^^^^^^^^^^^^^^^^^^ diff -Nru psycopg2-2.8.4/PKG-INFO psycopg2-2.8.5/PKG-INFO --- psycopg2-2.8.4/PKG-INFO 2019-10-20 00:45:39.000000000 +0000 +++ psycopg2-2.8.5/PKG-INFO 2020-04-06 05:35:16.000000000 +0000 @@ -1,11 +1,11 @@ Metadata-Version: 1.2 Name: psycopg2 -Version: 2.8.4 +Version: 2.8.5 Summary: psycopg2 - Python-PostgreSQL Database Adapter -Home-page: http://initd.org/psycopg/ -Author: Federico Di Gregorio -Author-email: fog@initd.org -License: LGPL with exceptions or ZPL +Home-page: https://psycopg.org/ +Author: Daniele Varrazzo +Author-email: daniele.varrazzo@gmail.org +License: LGPL with exceptions Description-Content-Type: UNKNOWN Description: Psycopg is the most popular PostgreSQL database adapter for the Python programming language. Its main features are the complete implementation of @@ -29,11 +29,13 @@ Documentation is included in the ``doc`` directory and is `available online`__. - .. __: http://initd.org/psycopg/docs/ + .. __: https://www.psycopg.org/docs/ For any other resource (source code repository, bug tracker, mailing list) please check the `project homepage`__. + .. __: https://psycopg.org/ + Installation ------------ @@ -62,11 +64,8 @@ .. _PyPI: https://pypi.org/project/psycopg2/ .. _psycopg2-binary: https://pypi.org/project/psycopg2-binary/ - .. _install: http://initd.org/psycopg/docs/install.html#install-from-source - .. _faq: http://initd.org/psycopg/docs/faq.html#faq-compile - - .. __: http://initd.org/psycopg/ - + .. _install: https://www.psycopg.org/docs/install.html#install-from-source + .. _faq: https://www.psycopg.org/docs/faq.html#faq-compile :Linux/OSX: |travis| :Windows: |appveyor| diff -Nru psycopg2-2.8.4/psycopg/adapter_asis.c psycopg2-2.8.5/psycopg/adapter_asis.c --- psycopg2-2.8.4/psycopg/adapter_asis.c 2019-10-20 00:45:30.000000000 +0000 +++ psycopg2-2.8.5/psycopg/adapter_asis.c 2020-04-06 05:35:09.000000000 +0000 @@ -1,6 +1,7 @@ /* adapter_asis.c - adapt types as they are * * Copyright (C) 2003-2019 Federico Di Gregorio + * Copyright (C) 2020 The Psycopg Team * * This file is part of psycopg. * diff -Nru psycopg2-2.8.4/psycopg/adapter_asis.h psycopg2-2.8.5/psycopg/adapter_asis.h --- psycopg2-2.8.4/psycopg/adapter_asis.h 2019-10-20 00:45:30.000000000 +0000 +++ psycopg2-2.8.5/psycopg/adapter_asis.h 2020-04-06 05:35:09.000000000 +0000 @@ -1,6 +1,7 @@ /* adapter_asis.h - definition for the psycopg AsIs type wrapper * * Copyright (C) 2003-2019 Federico Di Gregorio + * Copyright (C) 2020 The Psycopg Team * * This file is part of psycopg. * diff -Nru psycopg2-2.8.4/psycopg/adapter_binary.c psycopg2-2.8.5/psycopg/adapter_binary.c --- psycopg2-2.8.4/psycopg/adapter_binary.c 2019-10-20 00:45:30.000000000 +0000 +++ psycopg2-2.8.5/psycopg/adapter_binary.c 2020-04-06 05:35:09.000000000 +0000 @@ -1,6 +1,7 @@ /* adapter_binary.c - Binary objects * * Copyright (C) 2003-2019 Federico Di Gregorio + * Copyright (C) 2020 The Psycopg Team * * This file is part of psycopg. * diff -Nru psycopg2-2.8.4/psycopg/adapter_binary.h psycopg2-2.8.5/psycopg/adapter_binary.h --- psycopg2-2.8.4/psycopg/adapter_binary.h 2019-10-20 00:45:30.000000000 +0000 +++ psycopg2-2.8.5/psycopg/adapter_binary.h 2020-04-06 05:35:09.000000000 +0000 @@ -1,6 +1,7 @@ /* adapter_binary.h - definition for the Binary type * * Copyright (C) 2003-2019 Federico Di Gregorio + * Copyright (C) 2020 The Psycopg Team * * This file is part of psycopg. * diff -Nru psycopg2-2.8.4/psycopg/adapter_datetime.c psycopg2-2.8.5/psycopg/adapter_datetime.c --- psycopg2-2.8.4/psycopg/adapter_datetime.c 2019-10-20 00:45:30.000000000 +0000 +++ psycopg2-2.8.5/psycopg/adapter_datetime.c 2020-04-06 05:35:09.000000000 +0000 @@ -1,6 +1,7 @@ /* adapter_datetime.c - python date/time objects * * Copyright (C) 2003-2019 Federico Di Gregorio + * Copyright (C) 2020 The Psycopg Team * * This file is part of psycopg. * diff -Nru psycopg2-2.8.4/psycopg/adapter_datetime.h psycopg2-2.8.5/psycopg/adapter_datetime.h --- psycopg2-2.8.4/psycopg/adapter_datetime.h 2019-10-20 00:45:30.000000000 +0000 +++ psycopg2-2.8.5/psycopg/adapter_datetime.h 2020-04-06 05:35:09.000000000 +0000 @@ -1,6 +1,7 @@ /* adapter_datetime.h - definition for the python date/time types * * Copyright (C) 2003-2019 Federico Di Gregorio + * Copyright (C) 2020 The Psycopg Team * * This file is part of psycopg. * diff -Nru psycopg2-2.8.4/psycopg/adapter_list.c psycopg2-2.8.5/psycopg/adapter_list.c --- psycopg2-2.8.4/psycopg/adapter_list.c 2019-10-20 00:45:30.000000000 +0000 +++ psycopg2-2.8.5/psycopg/adapter_list.c 2020-04-06 05:35:09.000000000 +0000 @@ -1,6 +1,7 @@ /* adapter_list.c - python list objects * * Copyright (C) 2004-2019 Federico Di Gregorio + * Copyright (C) 2020 The Psycopg Team * * This file is part of psycopg. * diff -Nru psycopg2-2.8.4/psycopg/adapter_list.h psycopg2-2.8.5/psycopg/adapter_list.h --- psycopg2-2.8.4/psycopg/adapter_list.h 2019-10-20 00:45:30.000000000 +0000 +++ psycopg2-2.8.5/psycopg/adapter_list.h 2020-04-06 05:35:09.000000000 +0000 @@ -1,6 +1,7 @@ /* adapter_list.h - definition for the python list types * * Copyright (C) 2004-2019 Federico Di Gregorio + * Copyright (C) 2020 The Psycopg Team * * This file is part of psycopg. * diff -Nru psycopg2-2.8.4/psycopg/adapter_mxdatetime.c psycopg2-2.8.5/psycopg/adapter_mxdatetime.c --- psycopg2-2.8.4/psycopg/adapter_mxdatetime.c 2019-10-20 00:45:30.000000000 +0000 +++ psycopg2-2.8.5/psycopg/adapter_mxdatetime.c 2020-04-06 05:35:09.000000000 +0000 @@ -1,6 +1,7 @@ /* adapter_mxdatetime.c - mx date/time objects * * Copyright (C) 2003-2019 Federico Di Gregorio + * Copyright (C) 2020 The Psycopg Team * * This file is part of psycopg. * diff -Nru psycopg2-2.8.4/psycopg/adapter_mxdatetime.h psycopg2-2.8.5/psycopg/adapter_mxdatetime.h --- psycopg2-2.8.4/psycopg/adapter_mxdatetime.h 2019-10-20 00:45:30.000000000 +0000 +++ psycopg2-2.8.5/psycopg/adapter_mxdatetime.h 2020-04-06 05:35:09.000000000 +0000 @@ -1,6 +1,7 @@ /* adapter_mxdatetime.h - definition for the mx date/time types * * Copyright (C) 2003-2019 Federico Di Gregorio + * Copyright (C) 2020 The Psycopg Team * * This file is part of psycopg. * diff -Nru psycopg2-2.8.4/psycopg/adapter_pboolean.c psycopg2-2.8.5/psycopg/adapter_pboolean.c --- psycopg2-2.8.4/psycopg/adapter_pboolean.c 2019-10-20 00:45:30.000000000 +0000 +++ psycopg2-2.8.5/psycopg/adapter_pboolean.c 2020-04-06 05:35:09.000000000 +0000 @@ -1,6 +1,7 @@ /* adapter_pboolean.c - psycopg boolean type wrapper implementation * * Copyright (C) 2003-2019 Federico Di Gregorio + * Copyright (C) 2020 The Psycopg Team * * This file is part of psycopg. * diff -Nru psycopg2-2.8.4/psycopg/adapter_pboolean.h psycopg2-2.8.5/psycopg/adapter_pboolean.h --- psycopg2-2.8.4/psycopg/adapter_pboolean.h 2019-10-20 00:45:30.000000000 +0000 +++ psycopg2-2.8.5/psycopg/adapter_pboolean.h 2020-04-06 05:35:09.000000000 +0000 @@ -1,6 +1,7 @@ /* adapter_pboolean.h - definition for the psycopg boolean type wrapper * * Copyright (C) 2003-2019 Federico Di Gregorio + * Copyright (C) 2020 The Psycopg Team * * This file is part of psycopg. * diff -Nru psycopg2-2.8.4/psycopg/adapter_pdecimal.c psycopg2-2.8.5/psycopg/adapter_pdecimal.c --- psycopg2-2.8.4/psycopg/adapter_pdecimal.c 2019-10-20 00:45:30.000000000 +0000 +++ psycopg2-2.8.5/psycopg/adapter_pdecimal.c 2020-04-06 05:35:09.000000000 +0000 @@ -1,6 +1,7 @@ /* adapter_pdecimal.c - psycopg Decimal type wrapper implementation * * Copyright (C) 2003-2019 Federico Di Gregorio + * Copyright (C) 2020 The Psycopg Team * * This file is part of psycopg. * diff -Nru psycopg2-2.8.4/psycopg/adapter_pdecimal.h psycopg2-2.8.5/psycopg/adapter_pdecimal.h --- psycopg2-2.8.4/psycopg/adapter_pdecimal.h 2019-10-20 00:45:30.000000000 +0000 +++ psycopg2-2.8.5/psycopg/adapter_pdecimal.h 2020-04-06 05:35:09.000000000 +0000 @@ -1,6 +1,7 @@ /* adapter_pdecimal.h - definition for the psycopg Decimal type wrapper * * Copyright (C) 2003-2019 Federico Di Gregorio + * Copyright (C) 2020 The Psycopg Team * * This file is part of psycopg. * diff -Nru psycopg2-2.8.4/psycopg/adapter_pfloat.c psycopg2-2.8.5/psycopg/adapter_pfloat.c --- psycopg2-2.8.4/psycopg/adapter_pfloat.c 2019-10-20 00:45:30.000000000 +0000 +++ psycopg2-2.8.5/psycopg/adapter_pfloat.c 2020-04-06 05:35:09.000000000 +0000 @@ -1,6 +1,7 @@ /* adapter_float.c - psycopg pfloat type wrapper implementation * * Copyright (C) 2003-2019 Federico Di Gregorio + * Copyright (C) 2020 The Psycopg Team * * This file is part of psycopg. * diff -Nru psycopg2-2.8.4/psycopg/adapter_pfloat.h psycopg2-2.8.5/psycopg/adapter_pfloat.h --- psycopg2-2.8.4/psycopg/adapter_pfloat.h 2019-10-20 00:45:30.000000000 +0000 +++ psycopg2-2.8.5/psycopg/adapter_pfloat.h 2020-04-06 05:35:09.000000000 +0000 @@ -1,6 +1,7 @@ /* adapter_pfloat.h - definition for the psycopg float type wrapper * * Copyright (C) 2003-2019 Federico Di Gregorio + * Copyright (C) 2020 The Psycopg Team * * This file is part of psycopg. * diff -Nru psycopg2-2.8.4/psycopg/adapter_pint.c psycopg2-2.8.5/psycopg/adapter_pint.c --- psycopg2-2.8.4/psycopg/adapter_pint.c 2019-10-20 00:45:30.000000000 +0000 +++ psycopg2-2.8.5/psycopg/adapter_pint.c 2020-04-06 05:35:09.000000000 +0000 @@ -1,6 +1,7 @@ /* adapter_int.c - psycopg pint type wrapper implementation * * Copyright (C) 2011-2019 Daniele Varrazzo + * Copyright (C) 2020 The Psycopg Team * * This file is part of psycopg. * diff -Nru psycopg2-2.8.4/psycopg/adapter_pint.h psycopg2-2.8.5/psycopg/adapter_pint.h --- psycopg2-2.8.4/psycopg/adapter_pint.h 2019-10-20 00:45:30.000000000 +0000 +++ psycopg2-2.8.5/psycopg/adapter_pint.h 2020-04-06 05:35:09.000000000 +0000 @@ -1,6 +1,7 @@ /* adapter_pint.h - definition for the psycopg int type wrapper * * Copyright (C) 2011-2019 Daniele Varrazzo + * Copyright (C) 2020 The Psycopg Team * * This file is part of psycopg. * diff -Nru psycopg2-2.8.4/psycopg/adapter_qstring.c psycopg2-2.8.5/psycopg/adapter_qstring.c --- psycopg2-2.8.4/psycopg/adapter_qstring.c 2019-10-20 00:45:30.000000000 +0000 +++ psycopg2-2.8.5/psycopg/adapter_qstring.c 2020-04-06 05:35:09.000000000 +0000 @@ -1,6 +1,7 @@ /* adapter_qstring.c - QuotedString objects * * Copyright (C) 2003-2019 Federico Di Gregorio + * Copyright (C) 2020 The Psycopg Team * * This file is part of psycopg. * diff -Nru psycopg2-2.8.4/psycopg/adapter_qstring.h psycopg2-2.8.5/psycopg/adapter_qstring.h --- psycopg2-2.8.4/psycopg/adapter_qstring.h 2019-10-20 00:45:30.000000000 +0000 +++ psycopg2-2.8.5/psycopg/adapter_qstring.h 2020-04-06 05:35:09.000000000 +0000 @@ -1,6 +1,7 @@ /* adapter_qstring.h - definition for the QuotedString type * * Copyright (C) 2003-2019 Federico Di Gregorio + * Copyright (C) 2020 The Psycopg Team * * This file is part of psycopg. * diff -Nru psycopg2-2.8.4/psycopg/aix_support.c psycopg2-2.8.5/psycopg/aix_support.c --- psycopg2-2.8.4/psycopg/aix_support.c 1970-01-01 00:00:00.000000000 +0000 +++ psycopg2-2.8.5/psycopg/aix_support.c 2020-04-06 05:35:09.000000000 +0000 @@ -0,0 +1,58 @@ +/* aix_support.c - emulate functions missing on AIX + * + * Copyright (C) 2017 My Karlsson + * Copyright (c) 2018, Joyent, Inc. + * Copyright (C) 2020 The Psycopg Team + * + * This file is part of psycopg. + * + * psycopg2 is free software: you can redistribute it and/or modify it + * under the terms of the GNU Lesser General Public License as published + * by the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * In addition, as a special exception, the copyright holders give + * permission to link this program with the OpenSSL library (or with + * modified versions of OpenSSL that use the same license as OpenSSL), + * and distribute linked combinations including the two. + * + * You must obey the GNU Lesser General Public License in all respects for + * all of the code used other than OpenSSL. + * + * psycopg2 is distributed in the hope that it will be useful, but WITHOUT + * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or + * FITNESS FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public + * License for more details. + */ + +#define PSYCOPG_MODULE +#include "psycopg/psycopg.h" +#include "psycopg/aix_support.h" + +#if defined(_AIX) +/* timeradd is missing on AIX */ +#ifndef timeradd +void +timeradd(struct timeval *a, struct timeval *b, struct timeval *c) +{ + c->tv_sec = a->tv_sec + b->tv_sec; + c->tv_usec = a->tv_usec + b->tv_usec; + if (c->tv_usec >= 1000000) { + c->tv_usec -= 1000000; + c->tv_sec += 1; + } +} + +/* timersub is missing on AIX */ +void +timersub(struct timeval *a, struct timeval *b, struct timeval *c) +{ + c->tv_sec = a->tv_sec - b->tv_sec; + c->tv_usec = a->tv_usec - b->tv_usec; + if (c->tv_usec < 0) { + c->tv_usec += 1000000; + c->tv_sec -= 1; + } +} +#endif /* timeradd */ +#endif /* defined(_AIX)*/ diff -Nru psycopg2-2.8.4/psycopg/aix_support.h psycopg2-2.8.5/psycopg/aix_support.h --- psycopg2-2.8.4/psycopg/aix_support.h 1970-01-01 00:00:00.000000000 +0000 +++ psycopg2-2.8.5/psycopg/aix_support.h 2020-04-06 05:35:09.000000000 +0000 @@ -0,0 +1,48 @@ +/* aix_support.h - definitions for aix_support.c + * + * Copyright (C) 2017 My Karlsson + * Copyright (c) 2018-2019, Joyent, Inc. + * Copyright (C) 2020 The Psycopg Team + * + * This file is part of psycopg. + * + * psycopg2 is free software: you can redistribute it and/or modify it + * under the terms of the GNU Lesser General Public License as published + * by the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * In addition, as a special exception, the copyright holders give + * permission to link this program with the OpenSSL library (or with + * modified versions of OpenSSL that use the same license as OpenSSL), + * and distribute linked combinations including the two. + * + * You must obey the GNU Lesser General Public License in all respects for + * all of the code used other than OpenSSL. + * + * psycopg2 is distributed in the hope that it will be useful, but WITHOUT + * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or + * FITNESS FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public + * License for more details. + */ +#ifndef PSYCOPG_AIX_SUPPORT_H +#define PSYCOPG_AIX_SUPPORT_H + +#include "psycopg/config.h" + +#ifdef _AIX +#include + +#ifndef timeradd +extern HIDDEN void timeradd(struct timeval *a, struct timeval *b, struct timeval *c); +extern HIDDEN void timersub(struct timeval *a, struct timeval *b, struct timeval *c); +#endif + +#ifndef timercmp +#define timercmp(a, b, cmp) \ + (((a)->tv_sec == (b)->tv_sec) ? \ + ((a)->tv_usec cmp (b)->tv_usec) : \ + ((a)->tv_sec cmp (b)->tv_sec)) +#endif +#endif + +#endif /* !defined(PSYCOPG_AIX_SUPPORT_H) */ diff -Nru psycopg2-2.8.4/psycopg/bytes_format.c psycopg2-2.8.5/psycopg/bytes_format.c --- psycopg2-2.8.4/psycopg/bytes_format.c 2019-10-20 00:45:30.000000000 +0000 +++ psycopg2-2.8.5/psycopg/bytes_format.c 2020-04-06 05:35:09.000000000 +0000 @@ -1,6 +1,7 @@ /* bytes_format.c - bytes-oriented version of PyString_Format * * Copyright (C) 2010-2019 Daniele Varrazzo + * Copyright (C) 2020 The Psycopg Team * * This file is part of psycopg. * diff -Nru psycopg2-2.8.4/psycopg/column.h psycopg2-2.8.5/psycopg/column.h --- psycopg2-2.8.4/psycopg/column.h 2019-10-20 00:45:30.000000000 +0000 +++ psycopg2-2.8.5/psycopg/column.h 2020-04-06 05:35:09.000000000 +0000 @@ -1,6 +1,7 @@ /* column.h - definition for a column in cursor.description type * * Copyright (C) 2018-2019 Daniele Varrazzo + * Copyright (C) 2020 The Psycopg Team * * This file is part of psycopg. * diff -Nru psycopg2-2.8.4/psycopg/column_type.c psycopg2-2.8.5/psycopg/column_type.c --- psycopg2-2.8.4/psycopg/column_type.c 2019-10-20 00:45:30.000000000 +0000 +++ psycopg2-2.8.5/psycopg/column_type.c 2020-04-06 05:35:09.000000000 +0000 @@ -1,6 +1,7 @@ /* column_type.c - python interface to cursor.description objects * * Copyright (C) 2018-2019 Daniele Varrazzo + * Copyright (C) 2020 The Psycopg Team * * This file is part of psycopg. * @@ -232,6 +233,32 @@ } +static PyObject* +column_subscript(columnObject* self, PyObject* item) +{ + PyObject *t = NULL; + PyObject *rv = NULL; + + /* t = tuple(self) */ + if (!(t = PyObject_CallFunctionObjArgs( + (PyObject *)&PyTuple_Type, (PyObject *)self, NULL))) { + goto exit; + } + + /* rv = t[item] */ + rv = PyObject_GetItem(t, item); + +exit: + Py_XDECREF(t); + return rv; +} + +static PyMappingMethods column_mapping = { + (lenfunc)column_len, /* mp_length */ + (binaryfunc)column_subscript, /* mp_subscript */ + 0 /* mp_ass_subscript */ +}; + static PySequenceMethods column_sequence = { (lenfunc)column_len, /* sq_length */ 0, /* sq_concat */ @@ -345,7 +372,7 @@ (reprfunc)column_repr, /*tp_repr*/ 0, /*tp_as_number*/ &column_sequence, /*tp_as_sequence*/ - 0, /*tp_as_mapping*/ + &column_mapping, /*tp_as_mapping*/ 0, /*tp_hash */ 0, /*tp_call*/ 0, /*tp_str*/ diff -Nru psycopg2-2.8.4/psycopg/config.h psycopg2-2.8.5/psycopg/config.h --- psycopg2-2.8.4/psycopg/config.h 2019-10-20 00:45:30.000000000 +0000 +++ psycopg2-2.8.5/psycopg/config.h 2020-04-06 05:35:09.000000000 +0000 @@ -1,6 +1,7 @@ /* config.h - general config and Dprintf macro * * Copyright (C) 2003-2019 Federico Di Gregorio + * Copyright (C) 2020 The Psycopg Team * * This file is part of psycopg. * diff -Nru psycopg2-2.8.4/psycopg/connection.h psycopg2-2.8.5/psycopg/connection.h --- psycopg2-2.8.4/psycopg/connection.h 2019-10-20 00:45:30.000000000 +0000 +++ psycopg2-2.8.5/psycopg/connection.h 2020-04-06 05:35:09.000000000 +0000 @@ -1,6 +1,7 @@ /* connection.h - definition for the psycopg connection type * * Copyright (C) 2003-2019 Federico Di Gregorio + * Copyright (C) 2020 The Psycopg Team * * This file is part of psycopg. * diff -Nru psycopg2-2.8.4/psycopg/connection_int.c psycopg2-2.8.5/psycopg/connection_int.c --- psycopg2-2.8.4/psycopg/connection_int.c 2019-10-20 00:45:30.000000000 +0000 +++ psycopg2-2.8.5/psycopg/connection_int.c 2020-04-06 05:35:09.000000000 +0000 @@ -1,6 +1,7 @@ /* connection_int.c - code used by the connection object * * Copyright (C) 2003-2019 Federico Di Gregorio + * Copyright (C) 2020 The Psycopg Team * * This file is part of psycopg. * diff -Nru psycopg2-2.8.4/psycopg/connection_type.c psycopg2-2.8.5/psycopg/connection_type.c --- psycopg2-2.8.4/psycopg/connection_type.c 2019-10-20 00:45:30.000000000 +0000 +++ psycopg2-2.8.5/psycopg/connection_type.c 2020-04-06 05:35:09.000000000 +0000 @@ -1,6 +1,7 @@ /* connection_type.c - python interface to connection objects * * Copyright (C) 2003-2019 Federico Di Gregorio + * Copyright (C) 2020 The Psycopg Team * * This file is part of psycopg. * diff -Nru psycopg2-2.8.4/psycopg/conninfo.h psycopg2-2.8.5/psycopg/conninfo.h --- psycopg2-2.8.4/psycopg/conninfo.h 2019-10-20 00:45:30.000000000 +0000 +++ psycopg2-2.8.5/psycopg/conninfo.h 2020-04-06 05:35:09.000000000 +0000 @@ -1,6 +1,7 @@ /* connection.h - definition for the psycopg ConnectionInfo type * * Copyright (C) 2018-2019 Daniele Varrazzo + * Copyright (C) 2020 The Psycopg Team * * This file is part of psycopg. * diff -Nru psycopg2-2.8.4/psycopg/conninfo_type.c psycopg2-2.8.5/psycopg/conninfo_type.c --- psycopg2-2.8.4/psycopg/conninfo_type.c 2019-10-20 00:45:30.000000000 +0000 +++ psycopg2-2.8.5/psycopg/conninfo_type.c 2020-04-06 05:35:09.000000000 +0000 @@ -1,6 +1,7 @@ /* conninfo_type.c - present information about the libpq connection * * Copyright (C) 2018-2019 Daniele Varrazzo + * Copyright (C) 2020 The Psycopg Team * * This file is part of psycopg. * diff -Nru psycopg2-2.8.4/psycopg/cursor.h psycopg2-2.8.5/psycopg/cursor.h --- psycopg2-2.8.4/psycopg/cursor.h 2019-10-20 00:45:30.000000000 +0000 +++ psycopg2-2.8.5/psycopg/cursor.h 2020-04-06 05:35:09.000000000 +0000 @@ -1,6 +1,7 @@ /* cursor.h - definition for the psycopg cursor type * * Copyright (C) 2003-2019 Federico Di Gregorio + * Copyright (C) 2020 The Psycopg Team * * This file is part of psycopg. * diff -Nru psycopg2-2.8.4/psycopg/cursor_int.c psycopg2-2.8.5/psycopg/cursor_int.c --- psycopg2-2.8.4/psycopg/cursor_int.c 2019-10-20 00:45:30.000000000 +0000 +++ psycopg2-2.8.5/psycopg/cursor_int.c 2020-04-06 05:35:09.000000000 +0000 @@ -1,6 +1,7 @@ /* cursor_int.c - code used by the cursor object * * Copyright (C) 2003-2019 Federico Di Gregorio + * Copyright (C) 2020 The Psycopg Team * * This file is part of psycopg. * diff -Nru psycopg2-2.8.4/psycopg/cursor_type.c psycopg2-2.8.5/psycopg/cursor_type.c --- psycopg2-2.8.4/psycopg/cursor_type.c 2019-10-20 00:45:30.000000000 +0000 +++ psycopg2-2.8.5/psycopg/cursor_type.c 2020-04-06 05:35:09.000000000 +0000 @@ -1,6 +1,7 @@ /* cursor_type.c - python interface to cursor objects * * Copyright (C) 2003-2019 Federico Di Gregorio + * Copyright (C) 2020 The Psycopg Team * * This file is part of psycopg. * @@ -317,7 +318,7 @@ { PyObject *fquery; - /* if PyString_Format() return NULL an error occured: if the error is + /* if PyString_Format() return NULL an error occurred: if the error is a TypeError we need to check the exception.args[0] string for the values: diff -Nru psycopg2-2.8.4/psycopg/diagnostics.h psycopg2-2.8.5/psycopg/diagnostics.h --- psycopg2-2.8.4/psycopg/diagnostics.h 2019-10-20 00:45:30.000000000 +0000 +++ psycopg2-2.8.5/psycopg/diagnostics.h 2020-04-06 05:35:09.000000000 +0000 @@ -1,6 +1,7 @@ /* diagnostics.c - definition for the psycopg Diagnostics type * * Copyright (C) 2013-2019 Matthew Woodcraft + * Copyright (C) 2020 The Psycopg Team * * This file is part of psycopg. * diff -Nru psycopg2-2.8.4/psycopg/diagnostics_type.c psycopg2-2.8.5/psycopg/diagnostics_type.c --- psycopg2-2.8.4/psycopg/diagnostics_type.c 2019-10-20 00:45:30.000000000 +0000 +++ psycopg2-2.8.5/psycopg/diagnostics_type.c 2020-04-06 05:35:09.000000000 +0000 @@ -1,6 +1,7 @@ /* diagnostics.c - present information from libpq error responses * * Copyright (C) 2013-2019 Matthew Woodcraft + * Copyright (C) 2020 The Psycopg Team * * This file is part of psycopg. * diff -Nru psycopg2-2.8.4/psycopg/error.h psycopg2-2.8.5/psycopg/error.h --- psycopg2-2.8.4/psycopg/error.h 2019-10-20 00:45:30.000000000 +0000 +++ psycopg2-2.8.5/psycopg/error.h 2020-04-06 05:35:09.000000000 +0000 @@ -1,6 +1,7 @@ /* error.h - definition for the psycopg base Error type * * Copyright (C) 2013-2019 Daniele Varrazzo + * Copyright (C) 2020 The Psycopg Team * * This file is part of psycopg. * diff -Nru psycopg2-2.8.4/psycopg/error_type.c psycopg2-2.8.5/psycopg/error_type.c --- psycopg2-2.8.4/psycopg/error_type.c 2019-10-20 00:45:30.000000000 +0000 +++ psycopg2-2.8.5/psycopg/error_type.c 2020-04-06 05:35:09.000000000 +0000 @@ -1,6 +1,7 @@ /* error_type.c - python interface to the Error objects * * Copyright (C) 2013-2019 Daniele Varrazzo + * Copyright (C) 2020 The Psycopg Team * * This file is part of psycopg. * diff -Nru psycopg2-2.8.4/psycopg/green.c psycopg2-2.8.5/psycopg/green.c --- psycopg2-2.8.4/psycopg/green.c 2019-10-20 00:45:30.000000000 +0000 +++ psycopg2-2.8.5/psycopg/green.c 2020-04-06 05:35:09.000000000 +0000 @@ -1,6 +1,7 @@ /* green.c - cooperation with coroutine libraries. * * Copyright (C) 2010-2019 Daniele Varrazzo + * Copyright (C) 2020 The Psycopg Team * * This file is part of psycopg. * diff -Nru psycopg2-2.8.4/psycopg/green.h psycopg2-2.8.5/psycopg/green.h --- psycopg2-2.8.4/psycopg/green.h 2019-10-20 00:45:30.000000000 +0000 +++ psycopg2-2.8.5/psycopg/green.h 2020-04-06 05:35:09.000000000 +0000 @@ -1,6 +1,7 @@ /* green.c - cooperation with coroutine libraries. * * Copyright (C) 2010-2019 Daniele Varrazzo + * Copyright (C) 2020 The Psycopg Team * * This file is part of psycopg. * diff -Nru psycopg2-2.8.4/psycopg/libpq_support.c psycopg2-2.8.5/psycopg/libpq_support.c --- psycopg2-2.8.4/psycopg/libpq_support.c 2019-10-20 00:45:30.000000000 +0000 +++ psycopg2-2.8.5/psycopg/libpq_support.c 2020-04-06 05:35:09.000000000 +0000 @@ -3,6 +3,7 @@ * streaming replication * * Copyright (C) 2003-2019 Federico Di Gregorio + * Copyright (C) 2020 The Psycopg Team * * This file is part of psycopg. * diff -Nru psycopg2-2.8.4/psycopg/libpq_support.h psycopg2-2.8.5/psycopg/libpq_support.h --- psycopg2-2.8.4/psycopg/libpq_support.h 2019-10-20 00:45:30.000000000 +0000 +++ psycopg2-2.8.5/psycopg/libpq_support.h 2020-04-06 05:35:09.000000000 +0000 @@ -1,6 +1,7 @@ /* libpq_support.h - definitions for libpq_support.c * * Copyright (C) 2003-2019 Federico Di Gregorio + * Copyright (C) 2020 The Psycopg Team * * This file is part of psycopg. * diff -Nru psycopg2-2.8.4/psycopg/lobject.h psycopg2-2.8.5/psycopg/lobject.h --- psycopg2-2.8.4/psycopg/lobject.h 2019-10-20 00:45:30.000000000 +0000 +++ psycopg2-2.8.5/psycopg/lobject.h 2020-04-06 05:35:09.000000000 +0000 @@ -1,6 +1,7 @@ /* lobject.h - definition for the psycopg lobject type * * Copyright (C) 2006-2019 Federico Di Gregorio + * Copyright (C) 2020 The Psycopg Team * * This file is part of psycopg. * diff -Nru psycopg2-2.8.4/psycopg/lobject_int.c psycopg2-2.8.5/psycopg/lobject_int.c --- psycopg2-2.8.4/psycopg/lobject_int.c 2019-10-20 00:45:30.000000000 +0000 +++ psycopg2-2.8.5/psycopg/lobject_int.c 2020-04-06 05:35:09.000000000 +0000 @@ -1,6 +1,7 @@ /* lobject_int.c - code used by the lobject object * * Copyright (C) 2006-2019 Federico Di Gregorio + * Copyright (C) 2020 The Psycopg Team * * This file is part of psycopg. * diff -Nru psycopg2-2.8.4/psycopg/lobject_type.c psycopg2-2.8.5/psycopg/lobject_type.c --- psycopg2-2.8.4/psycopg/lobject_type.c 2019-10-20 00:45:30.000000000 +0000 +++ psycopg2-2.8.5/psycopg/lobject_type.c 2020-04-06 05:35:09.000000000 +0000 @@ -1,6 +1,7 @@ /* lobject_type.c - python interface to lobject objects * * Copyright (C) 2006-2019 Federico Di Gregorio + * Copyright (C) 2020 The Psycopg Team * * This file is part of psycopg. * diff -Nru psycopg2-2.8.4/psycopg/microprotocols.c psycopg2-2.8.5/psycopg/microprotocols.c --- psycopg2-2.8.4/psycopg/microprotocols.c 2019-10-20 00:45:30.000000000 +0000 +++ psycopg2-2.8.5/psycopg/microprotocols.c 2020-04-06 05:35:09.000000000 +0000 @@ -1,6 +1,7 @@ /* microprotocols.c - minimalist and non-validating protocols implementation * * Copyright (C) 2003-2019 Federico Di Gregorio + * Copyright (C) 2020 The Psycopg Team * * This file is part of psycopg. * diff -Nru psycopg2-2.8.4/psycopg/microprotocols.h psycopg2-2.8.5/psycopg/microprotocols.h --- psycopg2-2.8.4/psycopg/microprotocols.h 2019-10-20 00:45:30.000000000 +0000 +++ psycopg2-2.8.5/psycopg/microprotocols.h 2020-04-06 05:35:09.000000000 +0000 @@ -1,6 +1,7 @@ /* microprotocols.c - definitions for minimalist and non-validating protocols * * Copyright (C) 2003-2019 Federico Di Gregorio + * Copyright (C) 2020 The Psycopg Team * * This file is part of psycopg. * diff -Nru psycopg2-2.8.4/psycopg/microprotocols_proto.c psycopg2-2.8.5/psycopg/microprotocols_proto.c --- psycopg2-2.8.4/psycopg/microprotocols_proto.c 2019-10-20 00:45:30.000000000 +0000 +++ psycopg2-2.8.5/psycopg/microprotocols_proto.c 2020-04-06 05:35:09.000000000 +0000 @@ -1,6 +1,7 @@ /* microprotocol_proto.c - psycopg protocols * * Copyright (C) 2003-2019 Federico Di Gregorio + * Copyright (C) 2020 The Psycopg Team * * This file is part of psycopg. * diff -Nru psycopg2-2.8.4/psycopg/microprotocols_proto.h psycopg2-2.8.5/psycopg/microprotocols_proto.h --- psycopg2-2.8.4/psycopg/microprotocols_proto.h 2019-10-20 00:45:30.000000000 +0000 +++ psycopg2-2.8.5/psycopg/microprotocols_proto.h 2020-04-06 05:35:09.000000000 +0000 @@ -1,6 +1,7 @@ /* microporotocols_proto.h - definition for psycopg's protocols * * Copyright (C) 2003-2019 Federico Di Gregorio + * Copyright (C) 2020 The Psycopg Team * * This file is part of psycopg. * diff -Nru psycopg2-2.8.4/psycopg/notify.h psycopg2-2.8.5/psycopg/notify.h --- psycopg2-2.8.4/psycopg/notify.h 2019-10-20 00:45:30.000000000 +0000 +++ psycopg2-2.8.5/psycopg/notify.h 2020-04-06 05:35:09.000000000 +0000 @@ -1,6 +1,7 @@ /* notify.h - definition for the psycopg Notify type * * Copyright (C) 2010-2019 Daniele Varrazzo + * Copyright (C) 2020 The Psycopg Team * * This file is part of psycopg. * diff -Nru psycopg2-2.8.4/psycopg/notify_type.c psycopg2-2.8.5/psycopg/notify_type.c --- psycopg2-2.8.4/psycopg/notify_type.c 2019-10-20 00:45:30.000000000 +0000 +++ psycopg2-2.8.5/psycopg/notify_type.c 2020-04-06 05:35:09.000000000 +0000 @@ -1,6 +1,7 @@ /* notify_type.c - python interface to Notify objects * * Copyright (C) 2010-2019 Daniele Varrazzo + * Copyright (C) 2020 The Psycopg Team * * This file is part of psycopg. * diff -Nru psycopg2-2.8.4/psycopg/pqpath.c psycopg2-2.8.5/psycopg/pqpath.c --- psycopg2-2.8.4/psycopg/pqpath.c 2019-10-20 00:45:30.000000000 +0000 +++ psycopg2-2.8.5/psycopg/pqpath.c 2020-04-06 05:35:09.000000000 +0000 @@ -1,6 +1,7 @@ /* pqpath.c - single path into libpq * * Copyright (C) 2003-2019 Federico Di Gregorio + * Copyright (C) 2020 The Psycopg Team * * This file is part of psycopg. * @@ -53,6 +54,8 @@ #include "win32_support.h" #elif defined(__sun) && defined(__SVR4) #include "solaris_support.h" +#elif defined(_AIX) +#include "aix_support.h" #else #include #endif diff -Nru psycopg2-2.8.4/psycopg/pqpath.h psycopg2-2.8.5/psycopg/pqpath.h --- psycopg2-2.8.4/psycopg/pqpath.h 2019-10-20 00:45:30.000000000 +0000 +++ psycopg2-2.8.5/psycopg/pqpath.h 2020-04-06 05:35:09.000000000 +0000 @@ -1,6 +1,7 @@ /* pqpath.h - definitions for pqpath.c * * Copyright (C) 2003-2019 Federico Di Gregorio + * Copyright (C) 2020 The Psycopg Team * * This file is part of psycopg. * diff -Nru psycopg2-2.8.4/psycopg/psycopg.h psycopg2-2.8.5/psycopg/psycopg.h --- psycopg2-2.8.4/psycopg/psycopg.h 2019-10-20 00:45:30.000000000 +0000 +++ psycopg2-2.8.5/psycopg/psycopg.h 2020-04-06 05:35:09.000000000 +0000 @@ -1,6 +1,7 @@ /* psycopg.h - definitions for the psycopg python module * * Copyright (C) 2003-2019 Federico Di Gregorio + * Copyright (C) 2020 The Psycopg Team * * This file is part of psycopg. * diff -Nru psycopg2-2.8.4/psycopg/psycopgmodule.c psycopg2-2.8.5/psycopg/psycopgmodule.c --- psycopg2-2.8.4/psycopg/psycopgmodule.c 2019-10-20 00:45:30.000000000 +0000 +++ psycopg2-2.8.5/psycopg/psycopgmodule.c 2020-04-06 05:35:09.000000000 +0000 @@ -1,6 +1,7 @@ /* psycopgmodule.c - psycopg module (will import other C classes) * * Copyright (C) 2003-2019 Federico Di Gregorio + * Copyright (C) 2020 The Psycopg Team * * This file is part of psycopg. * diff -Nru psycopg2-2.8.4/psycopg/python.h psycopg2-2.8.5/psycopg/python.h --- psycopg2-2.8.4/psycopg/python.h 2019-10-20 00:45:30.000000000 +0000 +++ psycopg2-2.8.5/psycopg/python.h 2020-04-06 05:35:09.000000000 +0000 @@ -1,6 +1,7 @@ /* python.h - python version compatibility stuff * * Copyright (C) 2003-2019 Federico Di Gregorio + * Copyright (C) 2020 The Psycopg Team * * This file is part of psycopg. * diff -Nru psycopg2-2.8.4/psycopg/replication_connection.h psycopg2-2.8.5/psycopg/replication_connection.h --- psycopg2-2.8.4/psycopg/replication_connection.h 2019-10-20 00:45:30.000000000 +0000 +++ psycopg2-2.8.5/psycopg/replication_connection.h 2020-04-06 05:35:09.000000000 +0000 @@ -1,6 +1,7 @@ /* replication_connection.h - definition for the psycopg replication connection type * * Copyright (C) 2015-2019 Daniele Varrazzo + * Copyright (C) 2020 The Psycopg Team * * This file is part of psycopg. * diff -Nru psycopg2-2.8.4/psycopg/replication_connection_type.c psycopg2-2.8.5/psycopg/replication_connection_type.c --- psycopg2-2.8.4/psycopg/replication_connection_type.c 2019-10-20 00:45:30.000000000 +0000 +++ psycopg2-2.8.5/psycopg/replication_connection_type.c 2020-04-06 05:35:09.000000000 +0000 @@ -1,6 +1,7 @@ /* replication_connection_type.c - python interface to replication connection objects * * Copyright (C) 2015-2019 Daniele Varrazzo + * Copyright (C) 2020 The Psycopg Team * * This file is part of psycopg. * diff -Nru psycopg2-2.8.4/psycopg/replication_cursor.h psycopg2-2.8.5/psycopg/replication_cursor.h --- psycopg2-2.8.4/psycopg/replication_cursor.h 2019-10-20 00:45:30.000000000 +0000 +++ psycopg2-2.8.5/psycopg/replication_cursor.h 2020-04-06 05:35:09.000000000 +0000 @@ -1,6 +1,7 @@ /* replication_cursor.h - definition for the psycopg replication cursor type * * Copyright (C) 2015-2019 Daniele Varrazzo + * Copyright (C) 2020 The Psycopg Team * * This file is part of psycopg. * diff -Nru psycopg2-2.8.4/psycopg/replication_cursor_type.c psycopg2-2.8.5/psycopg/replication_cursor_type.c --- psycopg2-2.8.4/psycopg/replication_cursor_type.c 2019-10-20 00:45:30.000000000 +0000 +++ psycopg2-2.8.5/psycopg/replication_cursor_type.c 2020-04-06 05:35:09.000000000 +0000 @@ -1,6 +1,7 @@ /* replication_cursor_type.c - python interface to replication cursor objects * * Copyright (C) 2015-2019 Daniele Varrazzo + * Copyright (C) 2020 The Psycopg Team * * This file is part of psycopg. * diff -Nru psycopg2-2.8.4/psycopg/replication_message.h psycopg2-2.8.5/psycopg/replication_message.h --- psycopg2-2.8.4/psycopg/replication_message.h 2019-10-20 00:45:30.000000000 +0000 +++ psycopg2-2.8.5/psycopg/replication_message.h 2020-04-06 05:35:09.000000000 +0000 @@ -1,6 +1,7 @@ /* replication_message.h - definition for the psycopg ReplicationMessage type * * Copyright (C) 2003-2019 Federico Di Gregorio + * Copyright (C) 2020 The Psycopg Team * * This file is part of psycopg. * diff -Nru psycopg2-2.8.4/psycopg/replication_message_type.c psycopg2-2.8.5/psycopg/replication_message_type.c --- psycopg2-2.8.4/psycopg/replication_message_type.c 2019-10-20 00:45:30.000000000 +0000 +++ psycopg2-2.8.5/psycopg/replication_message_type.c 2020-04-06 05:35:09.000000000 +0000 @@ -1,6 +1,7 @@ /* replication_message_type.c - python interface to ReplcationMessage objects * * Copyright (C) 2003-2019 Federico Di Gregorio + * Copyright (C) 2020 The Psycopg Team * * This file is part of psycopg. * diff -Nru psycopg2-2.8.4/psycopg/solaris_support.c psycopg2-2.8.5/psycopg/solaris_support.c --- psycopg2-2.8.4/psycopg/solaris_support.c 2019-10-20 00:45:30.000000000 +0000 +++ psycopg2-2.8.5/psycopg/solaris_support.c 2020-04-06 05:35:09.000000000 +0000 @@ -2,6 +2,7 @@ * * Copyright (C) 2017 My Karlsson * Copyright (c) 2018, Joyent, Inc. + * Copyright (C) 2020 The Psycopg Team * * This file is part of psycopg. * diff -Nru psycopg2-2.8.4/psycopg/solaris_support.h psycopg2-2.8.5/psycopg/solaris_support.h --- psycopg2-2.8.4/psycopg/solaris_support.h 2019-10-20 00:45:30.000000000 +0000 +++ psycopg2-2.8.5/psycopg/solaris_support.h 2020-04-06 05:35:09.000000000 +0000 @@ -2,6 +2,7 @@ * * Copyright (C) 2017 My Karlsson * Copyright (c) 2018-2019, Joyent, Inc. + * Copyright (C) 2020 The Psycopg Team * * This file is part of psycopg. * diff -Nru psycopg2-2.8.4/psycopg/typecast_array.c psycopg2-2.8.5/psycopg/typecast_array.c --- psycopg2-2.8.4/psycopg/typecast_array.c 2019-10-20 00:45:31.000000000 +0000 +++ psycopg2-2.8.5/psycopg/typecast_array.c 2020-04-06 05:35:09.000000000 +0000 @@ -1,6 +1,7 @@ /* typecast_array.c - array typecasters * * Copyright (C) 2005-2019 Federico Di Gregorio + * Copyright (C) 2020 The Psycopg Team * * This file is part of psycopg. * diff -Nru psycopg2-2.8.4/psycopg/typecast_basic.c psycopg2-2.8.5/psycopg/typecast_basic.c --- psycopg2-2.8.4/psycopg/typecast_basic.c 2019-10-20 00:45:31.000000000 +0000 +++ psycopg2-2.8.5/psycopg/typecast_basic.c 2020-04-06 05:35:09.000000000 +0000 @@ -1,6 +1,7 @@ /* pgcasts_basic.c - basic typecasting functions to python types * * Copyright (C) 2001-2019 Federico Di Gregorio + * Copyright (C) 2020 The Psycopg Team * * This file is part of psycopg. * diff -Nru psycopg2-2.8.4/psycopg/typecast_binary.c psycopg2-2.8.5/psycopg/typecast_binary.c --- psycopg2-2.8.4/psycopg/typecast_binary.c 2019-10-20 00:45:31.000000000 +0000 +++ psycopg2-2.8.5/psycopg/typecast_binary.c 2020-04-06 05:35:09.000000000 +0000 @@ -1,6 +1,7 @@ /* typecast_binary.c - binary typecasting functions to python types * * Copyright (C) 2001-2019 Federico Di Gregorio + * Copyright (C) 2020 The Psycopg Team * * This file is part of psycopg. * diff -Nru psycopg2-2.8.4/psycopg/typecast_binary.h psycopg2-2.8.5/psycopg/typecast_binary.h --- psycopg2-2.8.4/psycopg/typecast_binary.h 2019-10-20 00:45:31.000000000 +0000 +++ psycopg2-2.8.5/psycopg/typecast_binary.h 2020-04-06 05:35:09.000000000 +0000 @@ -1,6 +1,7 @@ /* typecast_binary.h - definitions for binary typecaster * * Copyright (C) 2003-2019 Federico Di Gregorio + * Copyright (C) 2020 The Psycopg Team * * This file is part of psycopg. * diff -Nru psycopg2-2.8.4/psycopg/typecast.c psycopg2-2.8.5/psycopg/typecast.c --- psycopg2-2.8.4/psycopg/typecast.c 2019-10-20 00:45:30.000000000 +0000 +++ psycopg2-2.8.5/psycopg/typecast.c 2020-04-06 05:35:09.000000000 +0000 @@ -1,6 +1,7 @@ /* typecast.c - basic utility functions related to typecasting * * Copyright (C) 2003-2019 Federico Di Gregorio + * Copyright (C) 2020 The Psycopg Team * * This file is part of psycopg. * diff -Nru psycopg2-2.8.4/psycopg/typecast_datetime.c psycopg2-2.8.5/psycopg/typecast_datetime.c --- psycopg2-2.8.4/psycopg/typecast_datetime.c 2019-10-20 00:45:31.000000000 +0000 +++ psycopg2-2.8.5/psycopg/typecast_datetime.c 2020-04-06 05:35:09.000000000 +0000 @@ -1,6 +1,7 @@ /* typecast_datetime.c - date and time typecasting functions to python types * * Copyright (C) 2001-2019 Federico Di Gregorio + * Copyright (C) 2020 The Psycopg Team * * This file is part of psycopg. * diff -Nru psycopg2-2.8.4/psycopg/typecast.h psycopg2-2.8.5/psycopg/typecast.h --- psycopg2-2.8.4/psycopg/typecast.h 2019-10-20 00:45:30.000000000 +0000 +++ psycopg2-2.8.5/psycopg/typecast.h 2020-04-06 05:35:09.000000000 +0000 @@ -1,6 +1,7 @@ /* typecast.h - definitions for typecasters * * Copyright (C) 2003-2019 Federico Di Gregorio + * Copyright (C) 2020 The Psycopg Team * * This file is part of psycopg. * diff -Nru psycopg2-2.8.4/psycopg/typecast_mxdatetime.c psycopg2-2.8.5/psycopg/typecast_mxdatetime.c --- psycopg2-2.8.4/psycopg/typecast_mxdatetime.c 2019-10-20 00:45:31.000000000 +0000 +++ psycopg2-2.8.5/psycopg/typecast_mxdatetime.c 2020-04-06 05:35:09.000000000 +0000 @@ -1,6 +1,7 @@ /* typecast_mxdatetime.c - date and time typecasting functions to mx types * * Copyright (C) 2001-2019 Federico Di Gregorio + * Copyright (C) 2020 The Psycopg Team * * This file is part of psycopg. * diff -Nru psycopg2-2.8.4/psycopg/utils.c psycopg2-2.8.5/psycopg/utils.c --- psycopg2-2.8.4/psycopg/utils.c 2019-10-20 00:45:31.000000000 +0000 +++ psycopg2-2.8.5/psycopg/utils.c 2020-04-06 05:35:09.000000000 +0000 @@ -1,6 +1,7 @@ /* utils.c - miscellaneous utility functions * * Copyright (C) 2008-2019 Federico Di Gregorio + * Copyright (C) 2020 The Psycopg Team * * This file is part of psycopg. * diff -Nru psycopg2-2.8.4/psycopg/utils.h psycopg2-2.8.5/psycopg/utils.h --- psycopg2-2.8.4/psycopg/utils.h 2019-10-20 00:45:31.000000000 +0000 +++ psycopg2-2.8.5/psycopg/utils.h 2020-04-06 05:35:09.000000000 +0000 @@ -1,6 +1,7 @@ /* utils.h - function definitions for utility file * * Copyright (C) 2018-2019 Daniele Varrazzo + * Copyright (C) 2020 The Psycopg Team * * This file is part of psycopg. * diff -Nru psycopg2-2.8.4/psycopg/win32_support.c psycopg2-2.8.5/psycopg/win32_support.c --- psycopg2-2.8.4/psycopg/win32_support.c 2019-10-20 00:45:31.000000000 +0000 +++ psycopg2-2.8.5/psycopg/win32_support.c 2020-04-06 05:35:09.000000000 +0000 @@ -1,6 +1,7 @@ /* win32_support.c - emulate some functions missing on Win32 * * Copyright (C) 2003-2019 Federico Di Gregorio + * Copyright (C) 2020 The Psycopg Team * * This file is part of psycopg. * diff -Nru psycopg2-2.8.4/psycopg/win32_support.h psycopg2-2.8.5/psycopg/win32_support.h --- psycopg2-2.8.4/psycopg/win32_support.h 2019-10-20 00:45:31.000000000 +0000 +++ psycopg2-2.8.5/psycopg/win32_support.h 2020-04-06 05:35:09.000000000 +0000 @@ -1,6 +1,7 @@ /* win32_support.h - definitions for win32_support.c * * Copyright (C) 2003-2019 Federico Di Gregorio + * Copyright (C) 2020 The Psycopg Team * * This file is part of psycopg. * diff -Nru psycopg2-2.8.4/psycopg/xid.h psycopg2-2.8.5/psycopg/xid.h --- psycopg2-2.8.4/psycopg/xid.h 2019-10-20 00:45:31.000000000 +0000 +++ psycopg2-2.8.5/psycopg/xid.h 2020-04-06 05:35:09.000000000 +0000 @@ -2,6 +2,7 @@ * * Copyright (C) 2008-2019 James Henstridge * Copyright (C) 2010-2019 Daniele Varrazzo + * Copyright (C) 2020 The Psycopg Team * * This file is part of psycopg. * diff -Nru psycopg2-2.8.4/psycopg/xid_type.c psycopg2-2.8.5/psycopg/xid_type.c --- psycopg2-2.8.4/psycopg/xid_type.c 2019-10-20 00:45:31.000000000 +0000 +++ psycopg2-2.8.5/psycopg/xid_type.c 2020-04-06 05:35:09.000000000 +0000 @@ -2,6 +2,7 @@ * * Copyright (C) 2008 Canonical Ltd. * Copyright (C) 2010-2019 Daniele Varrazzo + * Copyright (C) 2020 The Psycopg Team * * This file is part of psycopg. * diff -Nru psycopg2-2.8.4/psycopg2.egg-info/PKG-INFO psycopg2-2.8.5/psycopg2.egg-info/PKG-INFO --- psycopg2-2.8.4/psycopg2.egg-info/PKG-INFO 2019-10-20 00:45:39.000000000 +0000 +++ psycopg2-2.8.5/psycopg2.egg-info/PKG-INFO 2020-04-06 05:35:16.000000000 +0000 @@ -1,11 +1,11 @@ Metadata-Version: 1.2 Name: psycopg2 -Version: 2.8.4 +Version: 2.8.5 Summary: psycopg2 - Python-PostgreSQL Database Adapter -Home-page: http://initd.org/psycopg/ -Author: Federico Di Gregorio -Author-email: fog@initd.org -License: LGPL with exceptions or ZPL +Home-page: https://psycopg.org/ +Author: Daniele Varrazzo +Author-email: daniele.varrazzo@gmail.org +License: LGPL with exceptions Description-Content-Type: UNKNOWN Description: Psycopg is the most popular PostgreSQL database adapter for the Python programming language. Its main features are the complete implementation of @@ -29,11 +29,13 @@ Documentation is included in the ``doc`` directory and is `available online`__. - .. __: http://initd.org/psycopg/docs/ + .. __: https://www.psycopg.org/docs/ For any other resource (source code repository, bug tracker, mailing list) please check the `project homepage`__. + .. __: https://psycopg.org/ + Installation ------------ @@ -62,11 +64,8 @@ .. _PyPI: https://pypi.org/project/psycopg2/ .. _psycopg2-binary: https://pypi.org/project/psycopg2-binary/ - .. _install: http://initd.org/psycopg/docs/install.html#install-from-source - .. _faq: http://initd.org/psycopg/docs/faq.html#faq-compile - - .. __: http://initd.org/psycopg/ - + .. _install: https://www.psycopg.org/docs/install.html#install-from-source + .. _faq: https://www.psycopg.org/docs/faq.html#faq-compile :Linux/OSX: |travis| :Windows: |appveyor| diff -Nru psycopg2-2.8.4/psycopg2.egg-info/SOURCES.txt psycopg2-2.8.5/psycopg2.egg-info/SOURCES.txt --- psycopg2-2.8.4/psycopg2.egg-info/SOURCES.txt 2019-10-20 00:45:39.000000000 +0000 +++ psycopg2-2.8.5/psycopg2.egg-info/SOURCES.txt 2020-04-06 05:35:16.000000000 +0000 @@ -72,6 +72,8 @@ psycopg/adapter_pint.h psycopg/adapter_qstring.c psycopg/adapter_qstring.h +psycopg/aix_support.c +psycopg/aix_support.h psycopg/bytes_format.c psycopg/column.h psycopg/column_type.c @@ -141,6 +143,7 @@ scripts/refcounter.py scripts/travis_prepare.sh scripts/travis_test.sh +scripts/travis_update_docs.sh tests/__init__.py tests/dbapi20.py tests/dbapi20_tpc.py diff -Nru psycopg2-2.8.4/README.rst psycopg2-2.8.5/README.rst --- psycopg2-2.8.4/README.rst 2019-10-20 00:45:30.000000000 +0000 +++ psycopg2-2.8.5/README.rst 2020-04-06 05:35:09.000000000 +0000 @@ -23,11 +23,13 @@ Documentation is included in the ``doc`` directory and is `available online`__. -.. __: http://initd.org/psycopg/docs/ +.. __: https://www.psycopg.org/docs/ For any other resource (source code repository, bug tracker, mailing list) please check the `project homepage`__. +.. __: https://psycopg.org/ + Installation ------------ @@ -56,11 +58,8 @@ .. _PyPI: https://pypi.org/project/psycopg2/ .. _psycopg2-binary: https://pypi.org/project/psycopg2-binary/ -.. _install: http://initd.org/psycopg/docs/install.html#install-from-source -.. _faq: http://initd.org/psycopg/docs/faq.html#faq-compile - -.. __: http://initd.org/psycopg/ - +.. _install: https://www.psycopg.org/docs/install.html#install-from-source +.. _faq: https://www.psycopg.org/docs/faq.html#faq-compile :Linux/OSX: |travis| :Windows: |appveyor| diff -Nru psycopg2-2.8.4/scripts/appveyor.py psycopg2-2.8.5/scripts/appveyor.py --- psycopg2-2.8.4/scripts/appveyor.py 2019-10-20 00:45:31.000000000 +0000 +++ psycopg2-2.8.5/scripts/appveyor.py 2020-04-06 05:35:09.000000000 +0000 @@ -497,7 +497,7 @@ # Write SSH Private Key file from environment variable pkey = pkey.replace(' ', '\n') - with (opt.clone_dir / 'id_rsa').open('w') as f: + with (opt.clone_dir / 'data/id_rsa-psycopg-upload').open('w') as f: f.write( f"""\ -----BEGIN RSA PRIVATE KEY----- @@ -516,15 +516,11 @@ # Upload built artifacts logger.info("uploading artifacts") - ssh_cmd = r"C:\MinGW\msys\1.0\bin\ssh -i %s -o UserKnownHostsFile=%s" % ( - opt.clone_dir / "id_rsa", - opt.clone_dir / 'known_hosts', - ) - - os.chdir(opt.package_dir) + os.chdir(opt.clone_dir) run_command( [r"C:\MinGW\msys\1.0\bin\rsync", "-avr"] - + ["-e", ssh_cmd, "dist/", "upload@initd.org:"] + + ["-e", r"C:\MinGW\msys\1.0\bin\ssh -F data/ssh_config"] + + ["psycopg2/dist/", "upload:"] ) diff -Nru psycopg2-2.8.4/scripts/make_errorcodes.py psycopg2-2.8.5/scripts/make_errorcodes.py --- psycopg2-2.8.4/scripts/make_errorcodes.py 2019-10-20 00:45:31.000000000 +0000 +++ psycopg2-2.8.5/scripts/make_errorcodes.py 2020-04-06 05:35:09.000000000 +0000 @@ -5,6 +5,7 @@ """ # Copyright (C) 2010-2019 Daniele Varrazzo +# Copyright (C) 2020 The Psycopg Team # # psycopg2 is free software: you can redistribute it and/or modify it # under the terms of the GNU Lesser General Public License as published diff -Nru psycopg2-2.8.4/scripts/make_errors.py psycopg2-2.8.5/scripts/make_errors.py --- psycopg2-2.8.4/scripts/make_errors.py 2019-10-20 00:45:31.000000000 +0000 +++ psycopg2-2.8.5/scripts/make_errors.py 2020-04-06 05:35:09.000000000 +0000 @@ -5,6 +5,7 @@ """ # Copyright (C) 2018-2019 Daniele Varrazzo +# Copyright (C) 2020 The Psycopg Team # # psycopg2 is free software: you can redistribute it and/or modify it # under the terms of the GNU Lesser General Public License as published diff -Nru psycopg2-2.8.4/scripts/refcounter.py psycopg2-2.8.5/scripts/refcounter.py --- psycopg2-2.8.4/scripts/refcounter.py 2019-10-20 00:45:31.000000000 +0000 +++ psycopg2-2.8.5/scripts/refcounter.py 2020-04-06 05:35:09.000000000 +0000 @@ -7,6 +7,7 @@ """ # Copyright (C) 2011-2019 Daniele Varrazzo +# Copyright (C) 2020 The Psycopg Team # # psycopg2 is free software: you can redistribute it and/or modify it # under the terms of the GNU Lesser General Public License as published diff -Nru psycopg2-2.8.4/scripts/travis_prepare.sh psycopg2-2.8.5/scripts/travis_prepare.sh --- psycopg2-2.8.4/scripts/travis_prepare.sh 2019-10-20 00:45:31.000000000 +0000 +++ psycopg2-2.8.5/scripts/travis_prepare.sh 2020-04-06 05:35:09.000000000 +0000 @@ -50,7 +50,7 @@ else # A dinosaur wget -O - \ - http://initd.org/psycopg/upload/postgresql/postgresql-${PACKAGE}-$(lsb_release -cs).tar.bz2 \ + https://upload.psycopg.org/postgresql/postgresql-${PACKAGE}-$(lsb_release -cs).tar.bz2 \ | sudo tar xjf - -C /usr/lib/postgresql fi fi diff -Nru psycopg2-2.8.4/scripts/travis_update_docs.sh psycopg2-2.8.5/scripts/travis_update_docs.sh --- psycopg2-2.8.4/scripts/travis_update_docs.sh 1970-01-01 00:00:00.000000000 +0000 +++ psycopg2-2.8.5/scripts/travis_update_docs.sh 2020-04-06 05:35:09.000000000 +0000 @@ -0,0 +1,30 @@ +#!/bin/bash + +# Trigger a rebuild of the psycopg.org website to update the documentation. +# The script is meant to run by Travis CI. + +set -euo pipefail + +# The travis token can be set at https://travis-ci.org/psycopg/psycopg2/settings +# and can be set on a selected branch only (which should match the DOC_BRANCH +# in the psycopg-website Makefile, or it won't refresh a thing). +if [ -z "${TRAVIS_TOKEN:-}" ]; then + echo "skipping docs update: travis token not set" >&2 + exit 0 +fi + +# Avoid to rebuild the website for each matrix entry. +want_python="3.6" +if [ "${TRAVIS_PYTHON_VERSION}" != "${want_python}" ]; then + echo "skipping docs update: only updated on Python ${want_python} build" >&2 + exit 0 +fi + +echo "triggering psycopg-website rebuild" >&2 +curl -s -X POST \ + -H "Content-Type: application/json" \ + -H "Accept: application/json" \ + -H "Travis-API-Version: 3" \ + -H "Authorization: token ${TRAVIS_TOKEN}" \ + -d '{ "request": { "branch":"master" }}' \ + https://api.travis-ci.org/repo/psycopg%2Fpsycopg-website/requests diff -Nru psycopg2-2.8.4/setup.py psycopg2-2.8.5/setup.py --- psycopg2-2.8.4/setup.py 2019-10-20 00:45:31.000000000 +0000 +++ psycopg2-2.8.5/setup.py 2020-04-06 05:35:09.000000000 +0000 @@ -1,6 +1,7 @@ # setup.py - distutils packaging # # Copyright (C) 2003-2019 Federico Di Gregorio +# Copyright (C) 2020 The Psycopg Team # # psycopg2 is free software: you can redistribute it and/or modify it # under the terms of the GNU Lesser General Public License as published @@ -47,7 +48,7 @@ # Take a look at https://www.python.org/dev/peps/pep-0440/ # for a consistent versioning pattern. -PSYCOPG_VERSION = '2.8.4' +PSYCOPG_VERSION = '2.8.5' # note: if you are changing the list of supported Python version please fix @@ -104,7 +105,7 @@ 'psycopg2-binary' package instead. For further information please check the 'doc/src/install.rst' file (also at -). +). """) sys.exit(1) @@ -303,7 +304,7 @@ required for the build and try again. For further information please check the 'doc/src/install.rst' file (also at -). +). """) raise @@ -482,7 +483,7 @@ sources = [ 'psycopgmodule.c', 'green.c', 'pqpath.c', 'utils.c', 'bytes_format.c', - 'libpq_support.c', 'win32_support.c', 'solaris_support.c', + 'libpq_support.c', 'win32_support.c', 'solaris_support.c', 'aix_support.c', 'connection_int.c', 'connection_type.c', 'cursor_int.c', 'cursor_type.c', 'column_type.c', @@ -590,12 +591,12 @@ setup(name="psycopg2", version=PSYCOPG_VERSION, - maintainer="Federico Di Gregorio", - maintainer_email="fog@initd.org", author="Federico Di Gregorio", author_email="fog@initd.org", - url="http://initd.org/psycopg/", - license="LGPL with exceptions or ZPL", + maintainer="Daniele Varrazzo", + maintainer_email="daniele.varrazzo@gmail.org", + url="https://psycopg.org/", + license="LGPL with exceptions", platforms=["any"], python_requires='>=2.7,!=3.0.*,!=3.1.*,!=3.2.*,!=3.3.*', description=readme.split("\n")[0], @@ -607,6 +608,9 @@ cmdclass={'build_ext': psycopg_build_ext}, ext_modules=ext, project_urls={ - 'Source': 'https://github.com/psycopg/psycopg2', - 'Documentation': 'http://initd.org/psycopg/docs/', + 'Homepage': 'https://psycopg.org/', + 'Documentation': 'https://www.psycopg.org/docs/', + 'Code': 'https://github.com/psycopg/psycopg2', + 'Issue Tracker': 'https://github.com/psycopg/psycopg2/issues', + 'Download': 'https://pypi.org/project/psycopg2/', }) diff -Nru psycopg2-2.8.4/tests/__init__.py psycopg2-2.8.5/tests/__init__.py --- psycopg2-2.8.4/tests/__init__.py 2019-10-20 00:45:31.000000000 +0000 +++ psycopg2-2.8.5/tests/__init__.py 2020-04-06 05:35:09.000000000 +0000 @@ -3,6 +3,7 @@ # psycopg2 test suite # # Copyright (C) 2007-2019 Federico Di Gregorio +# Copyright (C) 2020 The Psycopg Team # # psycopg2 is free software: you can redistribute it and/or modify it # under the terms of the GNU Lesser General Public License as published diff -Nru psycopg2-2.8.4/tests/test_async_keyword.py psycopg2-2.8.5/tests/test_async_keyword.py --- psycopg2-2.8.4/tests/test_async_keyword.py 2019-10-20 00:45:31.000000000 +0000 +++ psycopg2-2.8.5/tests/test_async_keyword.py 2020-04-06 05:35:09.000000000 +0000 @@ -4,6 +4,7 @@ # test_async_keyword.py - test for objects using 'async' as attribute/param # # Copyright (C) 2017-2019 Daniele Varrazzo +# Copyright (C) 2020 The Psycopg Team # # psycopg2 is free software: you can redistribute it and/or modify it # under the terms of the GNU Lesser General Public License as published diff -Nru psycopg2-2.8.4/tests/test_async.py psycopg2-2.8.5/tests/test_async.py --- psycopg2-2.8.4/tests/test_async.py 2019-10-20 00:45:31.000000000 +0000 +++ psycopg2-2.8.5/tests/test_async.py 2020-04-06 05:35:09.000000000 +0000 @@ -4,6 +4,7 @@ # test_async.py - unit test for asynchronous API # # Copyright (C) 2010-2019 Jan Urbański +# Copyright (C) 2020 The Psycopg Team # # psycopg2 is free software: you can redistribute it and/or modify it # under the terms of the GNU Lesser General Public License as published diff -Nru psycopg2-2.8.4/tests/test_bug_gc.py psycopg2-2.8.5/tests/test_bug_gc.py --- psycopg2-2.8.4/tests/test_bug_gc.py 2019-10-20 00:45:31.000000000 +0000 +++ psycopg2-2.8.5/tests/test_bug_gc.py 2020-04-06 05:35:09.000000000 +0000 @@ -3,6 +3,7 @@ # bug_gc.py - test for refcounting/GC bug # # Copyright (C) 2010-2019 Federico Di Gregorio +# Copyright (C) 2020 The Psycopg Team # # psycopg2 is free software: you can redistribute it and/or modify it # under the terms of the GNU Lesser General Public License as published diff -Nru psycopg2-2.8.4/tests/test_bugX000.py psycopg2-2.8.5/tests/test_bugX000.py --- psycopg2-2.8.4/tests/test_bugX000.py 2019-10-20 00:45:31.000000000 +0000 +++ psycopg2-2.8.5/tests/test_bugX000.py 2020-04-06 05:35:09.000000000 +0000 @@ -3,6 +3,7 @@ # bugX000.py - test for DateTime object allocation bug # # Copyright (C) 2007-2019 Federico Di Gregorio +# Copyright (C) 2020 The Psycopg Team # # psycopg2 is free software: you can redistribute it and/or modify it # under the terms of the GNU Lesser General Public License as published diff -Nru psycopg2-2.8.4/tests/test_cancel.py psycopg2-2.8.5/tests/test_cancel.py --- psycopg2-2.8.4/tests/test_cancel.py 2019-10-20 00:45:31.000000000 +0000 +++ psycopg2-2.8.5/tests/test_cancel.py 2020-04-06 05:35:09.000000000 +0000 @@ -4,6 +4,7 @@ # test_cancel.py - unit test for query cancellation # # Copyright (C) 2010-2019 Jan Urbański +# Copyright (C) 2020 The Psycopg Team # # psycopg2 is free software: you can redistribute it and/or modify it # under the terms of the GNU Lesser General Public License as published diff -Nru psycopg2-2.8.4/tests/test_connection.py psycopg2-2.8.5/tests/test_connection.py --- psycopg2-2.8.4/tests/test_connection.py 2019-10-20 00:45:31.000000000 +0000 +++ psycopg2-2.8.5/tests/test_connection.py 2020-04-06 05:35:09.000000000 +0000 @@ -3,6 +3,7 @@ # test_connection.py - unit test for connection attributes # # Copyright (C) 2008-2019 James Henstridge +# Copyright (C) 2020 The Psycopg Team # # psycopg2 is free software: you can redistribute it and/or modify it # under the terms of the GNU Lesser General Public License as published diff -Nru psycopg2-2.8.4/tests/test_copy.py psycopg2-2.8.5/tests/test_copy.py --- psycopg2-2.8.4/tests/test_copy.py 2019-10-20 00:45:31.000000000 +0000 +++ psycopg2-2.8.5/tests/test_copy.py 2020-04-06 05:35:09.000000000 +0000 @@ -3,6 +3,7 @@ # test_copy.py - unit test for COPY support # # Copyright (C) 2010-2019 Daniele Varrazzo +# Copyright (C) 2020 The Psycopg Team # # psycopg2 is free software: you can redistribute it and/or modify it # under the terms of the GNU Lesser General Public License as published diff -Nru psycopg2-2.8.4/tests/test_cursor.py psycopg2-2.8.5/tests/test_cursor.py --- psycopg2-2.8.4/tests/test_cursor.py 2019-10-20 00:45:31.000000000 +0000 +++ psycopg2-2.8.5/tests/test_cursor.py 2020-04-06 05:35:09.000000000 +0000 @@ -3,6 +3,7 @@ # test_cursor.py - unit test for cursor attributes # # Copyright (C) 2010-2019 Daniele Varrazzo +# Copyright (C) 2020 The Psycopg Team # # psycopg2 is free software: you can redistribute it and/or modify it # under the terms of the GNU Lesser General Public License as published @@ -432,6 +433,11 @@ self.assertEqual(curs.description[2].table_oid, None) self.assertEqual(curs.description[2].table_column, None) + def test_description_slice(self): + curs = self.conn.cursor() + curs.execute("select 1::int as a") + self.assertEqual(curs.description[0][0:2], ('a', 23)) + def test_pickle_description(self): curs = self.conn.cursor() curs.execute('SELECT 1 AS foo') diff -Nru psycopg2-2.8.4/tests/test_dates.py psycopg2-2.8.5/tests/test_dates.py --- psycopg2-2.8.4/tests/test_dates.py 2019-10-20 00:45:31.000000000 +0000 +++ psycopg2-2.8.5/tests/test_dates.py 2020-04-06 05:35:09.000000000 +0000 @@ -3,6 +3,7 @@ # test_dates.py - unit test for dates handling # # Copyright (C) 2008-2019 James Henstridge +# Copyright (C) 2020 The Psycopg Team # # psycopg2 is free software: you can redistribute it and/or modify it # under the terms of the GNU Lesser General Public License as published diff -Nru psycopg2-2.8.4/tests/test_errcodes.py psycopg2-2.8.5/tests/test_errcodes.py --- psycopg2-2.8.4/tests/test_errcodes.py 2019-10-20 00:45:31.000000000 +0000 +++ psycopg2-2.8.5/tests/test_errcodes.py 2020-04-06 05:35:09.000000000 +0000 @@ -3,6 +3,7 @@ # test_errcodes.py - unit test for psycopg2.errcodes module # # Copyright (C) 2015-2019 Daniele Varrazzo +# Copyright (C) 2020 The Psycopg Team # # psycopg2 is free software: you can redistribute it and/or modify it # under the terms of the GNU Lesser General Public License as published diff -Nru psycopg2-2.8.4/tests/test_errors.py psycopg2-2.8.5/tests/test_errors.py --- psycopg2-2.8.4/tests/test_errors.py 2019-10-20 00:45:31.000000000 +0000 +++ psycopg2-2.8.5/tests/test_errors.py 2020-04-06 05:35:09.000000000 +0000 @@ -3,6 +3,7 @@ # test_errors.py - unit test for psycopg2.errors module # # Copyright (C) 2018-2019 Daniele Varrazzo +# Copyright (C) 2020 The Psycopg Team # # psycopg2 is free software: you can redistribute it and/or modify it # under the terms of the GNU Lesser General Public License as published diff -Nru psycopg2-2.8.4/tests/test_extras_dictcursor.py psycopg2-2.8.5/tests/test_extras_dictcursor.py --- psycopg2-2.8.4/tests/test_extras_dictcursor.py 2019-10-20 00:45:31.000000000 +0000 +++ psycopg2-2.8.5/tests/test_extras_dictcursor.py 2020-04-06 05:35:09.000000000 +0000 @@ -3,6 +3,7 @@ # extras_dictcursor - test if DictCursor extension class works # # Copyright (C) 2004-2019 Federico Di Gregorio +# Copyright (C) 2020 The Psycopg Team # # psycopg2 is free software: you can redistribute it and/or modify it # under the terms of the GNU Lesser General Public License as published @@ -14,6 +15,7 @@ # FITNESS FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public # License for more details. +import copy import time import pickle import unittest @@ -157,6 +159,20 @@ self.assertEqual(r['b'], r1['b']) self.assertEqual(r._index, r1._index) + def test_copy(self): + curs = self.conn.cursor(cursor_factory=psycopg2.extras.DictCursor) + curs.execute("select 10 as foo, 'hi' as bar") + rv = curs.fetchone() + self.assertEqual(len(rv), 2) + + rv2 = copy.copy(rv) + self.assertEqual(len(rv2), 2) + self.assertEqual(len(rv), 2) + + rv3 = copy.deepcopy(rv) + self.assertEqual(len(rv3), 2) + self.assertEqual(len(rv), 2) + @skip_from_python(3) def test_iter_methods_2(self): curs = self.conn.cursor(cursor_factory=psycopg2.extras.DictCursor) @@ -266,6 +282,20 @@ self.assertEqual(r['a'], r1['a']) self.assertEqual(r['b'], r1['b']) + def test_copy(self): + curs = self.conn.cursor(cursor_factory=psycopg2.extras.RealDictCursor) + curs.execute("select 10 as foo, 'hi' as bar") + rv = curs.fetchone() + self.assertEqual(len(rv), 2) + + rv2 = copy.copy(rv) + self.assertEqual(len(rv2), 2) + self.assertEqual(len(rv), 2) + + rv3 = copy.deepcopy(rv) + self.assertEqual(len(rv3), 2) + self.assertEqual(len(rv), 2) + def testDictCursorRealWithNamedCursorFetchOne(self): self._testWithNamedCursorReal(lambda curs: curs.fetchone()) diff -Nru psycopg2-2.8.4/tests/test_fast_executemany.py psycopg2-2.8.5/tests/test_fast_executemany.py --- psycopg2-2.8.4/tests/test_fast_executemany.py 2019-10-20 00:45:31.000000000 +0000 +++ psycopg2-2.8.5/tests/test_fast_executemany.py 2020-04-06 05:35:09.000000000 +0000 @@ -3,6 +3,7 @@ # test_fast_executemany.py - tests for fast executemany implementations # # Copyright (C) 2017-2019 Daniele Varrazzo +# Copyright (C) 2020 The Psycopg Team # # psycopg2 is free software: you can redistribute it and/or modify it # under the terms of the GNU Lesser General Public License as published diff -Nru psycopg2-2.8.4/tests/test_green.py psycopg2-2.8.5/tests/test_green.py --- psycopg2-2.8.4/tests/test_green.py 2019-10-20 00:45:31.000000000 +0000 +++ psycopg2-2.8.5/tests/test_green.py 2020-04-06 05:35:09.000000000 +0000 @@ -3,6 +3,7 @@ # test_green.py - unit test for async wait callback # # Copyright (C) 2010-2019 Daniele Varrazzo +# Copyright (C) 2020 The Psycopg Team # # psycopg2 is free software: you can redistribute it and/or modify it # under the terms of the GNU Lesser General Public License as published diff -Nru psycopg2-2.8.4/tests/test_ipaddress.py psycopg2-2.8.5/tests/test_ipaddress.py --- psycopg2-2.8.4/tests/test_ipaddress.py 2019-10-20 00:45:31.000000000 +0000 +++ psycopg2-2.8.5/tests/test_ipaddress.py 2020-04-06 05:35:09.000000000 +0000 @@ -3,6 +3,7 @@ # test_ipaddress.py - tests for ipaddress support # # Copyright (C) 2016-2019 Daniele Varrazzo +# Copyright (C) 2020 The Psycopg Team # # psycopg2 is free software: you can redistribute it and/or modify it # under the terms of the GNU Lesser General Public License as published diff -Nru psycopg2-2.8.4/tests/test_lobject.py psycopg2-2.8.5/tests/test_lobject.py --- psycopg2-2.8.4/tests/test_lobject.py 2019-10-20 00:45:31.000000000 +0000 +++ psycopg2-2.8.5/tests/test_lobject.py 2020-04-06 05:35:09.000000000 +0000 @@ -3,6 +3,7 @@ # test_lobject.py - unit test for large objects support # # Copyright (C) 2008-2019 James Henstridge +# Copyright (C) 2020 The Psycopg Team # # psycopg2 is free software: you can redistribute it and/or modify it # under the terms of the GNU Lesser General Public License as published diff -Nru psycopg2-2.8.4/tests/test_module.py psycopg2-2.8.5/tests/test_module.py --- psycopg2-2.8.4/tests/test_module.py 2019-10-20 00:45:31.000000000 +0000 +++ psycopg2-2.8.5/tests/test_module.py 2020-04-06 05:35:09.000000000 +0000 @@ -3,6 +3,7 @@ # test_module.py - unit test for the module interface # # Copyright (C) 2011-2019 Daniele Varrazzo +# Copyright (C) 2020 The Psycopg Team # # psycopg2 is free software: you can redistribute it and/or modify it # under the terms of the GNU Lesser General Public License as published diff -Nru psycopg2-2.8.4/tests/test_notify.py psycopg2-2.8.5/tests/test_notify.py --- psycopg2-2.8.4/tests/test_notify.py 2019-10-20 00:45:31.000000000 +0000 +++ psycopg2-2.8.5/tests/test_notify.py 2020-04-06 05:35:09.000000000 +0000 @@ -3,6 +3,7 @@ # test_notify.py - unit test for async notifications # # Copyright (C) 2010-2019 Daniele Varrazzo +# Copyright (C) 2020 The Psycopg Team # # psycopg2 is free software: you can redistribute it and/or modify it # under the terms of the GNU Lesser General Public License as published diff -Nru psycopg2-2.8.4/tests/test_psycopg2_dbapi20.py psycopg2-2.8.5/tests/test_psycopg2_dbapi20.py --- psycopg2-2.8.4/tests/test_psycopg2_dbapi20.py 2019-10-20 00:45:31.000000000 +0000 +++ psycopg2-2.8.5/tests/test_psycopg2_dbapi20.py 2020-04-06 05:35:09.000000000 +0000 @@ -3,6 +3,7 @@ # test_psycopg2_dbapi20.py - DB API conformance test for psycopg2 # # Copyright (C) 2006-2019 Federico Di Gregorio +# Copyright (C) 2020 The Psycopg Team # # psycopg2 is free software: you can redistribute it and/or modify it # under the terms of the GNU Lesser General Public License as published diff -Nru psycopg2-2.8.4/tests/test_quote.py psycopg2-2.8.5/tests/test_quote.py --- psycopg2-2.8.4/tests/test_quote.py 2019-10-20 00:45:31.000000000 +0000 +++ psycopg2-2.8.5/tests/test_quote.py 2020-04-06 05:35:09.000000000 +0000 @@ -3,6 +3,7 @@ # test_quote.py - unit test for strings quoting # # Copyright (C) 2007-2019 Daniele Varrazzo +# Copyright (C) 2020 The Psycopg Team # # psycopg2 is free software: you can redistribute it and/or modify it # under the terms of the GNU Lesser General Public License as published diff -Nru psycopg2-2.8.4/tests/test_replication.py psycopg2-2.8.5/tests/test_replication.py --- psycopg2-2.8.4/tests/test_replication.py 2019-10-20 00:45:31.000000000 +0000 +++ psycopg2-2.8.5/tests/test_replication.py 2020-04-06 05:35:09.000000000 +0000 @@ -3,6 +3,7 @@ # test_replication.py - unit test for replication protocol # # Copyright (C) 2015-2019 Daniele Varrazzo +# Copyright (C) 2020 The Psycopg Team # # psycopg2 is free software: you can redistribute it and/or modify it # under the terms of the GNU Lesser General Public License as published diff -Nru psycopg2-2.8.4/tests/test_sql.py psycopg2-2.8.5/tests/test_sql.py --- psycopg2-2.8.4/tests/test_sql.py 2019-10-20 00:45:31.000000000 +0000 +++ psycopg2-2.8.5/tests/test_sql.py 2020-04-06 05:35:09.000000000 +0000 @@ -3,6 +3,7 @@ # test_sql.py - tests for the psycopg2.sql module # # Copyright (C) 2016-2019 Daniele Varrazzo +# Copyright (C) 2020 The Psycopg Team # # psycopg2 is free software: you can redistribute it and/or modify it # under the terms of the GNU Lesser General Public License as published diff -Nru psycopg2-2.8.4/tests/test_transaction.py psycopg2-2.8.5/tests/test_transaction.py --- psycopg2-2.8.4/tests/test_transaction.py 2019-10-20 00:45:31.000000000 +0000 +++ psycopg2-2.8.5/tests/test_transaction.py 2020-04-06 05:35:09.000000000 +0000 @@ -3,6 +3,7 @@ # test_transaction - unit test on transaction behaviour # # Copyright (C) 2007-2019 Federico Di Gregorio +# Copyright (C) 2020 The Psycopg Team # # psycopg2 is free software: you can redistribute it and/or modify it # under the terms of the GNU Lesser General Public License as published diff -Nru psycopg2-2.8.4/tests/test_types_basic.py psycopg2-2.8.5/tests/test_types_basic.py --- psycopg2-2.8.4/tests/test_types_basic.py 2019-10-20 00:45:31.000000000 +0000 +++ psycopg2-2.8.5/tests/test_types_basic.py 2020-04-06 05:35:09.000000000 +0000 @@ -3,6 +3,7 @@ # types_basic.py - tests for basic types conversions # # Copyright (C) 2004-2019 Federico Di Gregorio +# Copyright (C) 2020 The Psycopg Team # # psycopg2 is free software: you can redistribute it and/or modify it # under the terms of the GNU Lesser General Public License as published diff -Nru psycopg2-2.8.4/tests/test_types_extras.py psycopg2-2.8.5/tests/test_types_extras.py --- psycopg2-2.8.4/tests/test_types_extras.py 2019-10-20 00:45:31.000000000 +0000 +++ psycopg2-2.8.5/tests/test_types_extras.py 2020-04-06 05:35:09.000000000 +0000 @@ -3,6 +3,7 @@ # types_extras.py - tests for extras types conversions # # Copyright (C) 2008-2019 Federico Di Gregorio +# Copyright (C) 2020 The Psycopg Team # # psycopg2 is free software: you can redistribute it and/or modify it # under the terms of the GNU Lesser General Public License as published diff -Nru psycopg2-2.8.4/tests/testutils.py psycopg2-2.8.5/tests/testutils.py --- psycopg2-2.8.4/tests/testutils.py 2019-10-20 00:45:31.000000000 +0000 +++ psycopg2-2.8.5/tests/testutils.py 2020-04-06 05:35:09.000000000 +0000 @@ -2,6 +2,7 @@ # # Copyright (C) 2010-2019 Daniele Varrazzo +# Copyright (C) 2020 The Psycopg Team # # psycopg2 is free software: you can redistribute it and/or modify it # under the terms of the GNU Lesser General Public License as published diff -Nru psycopg2-2.8.4/tests/test_with.py psycopg2-2.8.5/tests/test_with.py --- psycopg2-2.8.4/tests/test_with.py 2019-10-20 00:45:31.000000000 +0000 +++ psycopg2-2.8.5/tests/test_with.py 2020-04-06 05:35:09.000000000 +0000 @@ -3,6 +3,7 @@ # test_ctxman.py - unit test for connection and cursor used as context manager # # Copyright (C) 2012-2019 Daniele Varrazzo +# Copyright (C) 2020 The Psycopg Team # # psycopg2 is free software: you can redistribute it and/or modify it # under the terms of the GNU Lesser General Public License as published