From 903611668fe767fe400c304686d6cbca20a4981f Mon Sep 17 00:00:00 2001 From: Cyril Jouve Date: Sun, 17 Oct 2021 23:19:43 +0200 Subject: [PATCH] support for python 3.11 --- .github/workflows/tests.yml | 10 +++++++--- psycopg/connection_int.c | 1 + psycopg/connection_type.c | 1 + psycopg/pqpath.c | 1 + psycopg/psycopgmodule.c | 2 ++ psycopg/replication_connection_type.c | 7 ++++++- psycopg/replication_cursor_type.c | 7 ++++++- tox.ini | 3 ++- 8 files changed, 26 insertions(+), 6 deletions(-) diff --git a/.github/workflows/tests.yml b/.github/workflows/tests.yml index a913cf550..15b6eec8c 100644 --- a/.github/workflows/tests.yml +++ b/.github/workflows/tests.yml @@ -18,6 +18,7 @@ jobs: - {python: "3.8", postgres: "12"} - {python: "3.9", postgres: "13"} - {python: "3.10", postgres: "14"} + - {python: "3.11-dev", postgres: "14"} # Opposite extremes of the supported Py/PG range, other architecture - {python: "3.6", postgres: "14", architecture: "x86"} @@ -25,6 +26,7 @@ jobs: - {python: "3.8", postgres: "12", architecture: "x86"} - {python: "3.9", postgres: "11", architecture: "x86"} - {python: "3.10", postgres: "10", architecture: "x86"} + - {python: "3.11-dev", postgres: "10", architecture: "x86"} env: PSYCOPG2_TESTDB: postgres @@ -48,11 +50,13 @@ jobs: steps: - uses: actions/checkout@v2 + - name: Install tox + run: pip install tox - uses: actions/setup-python@v2 with: python-version: ${{ matrix.python }} - - name: Install tox - run: pip install tox - name: Run tests - run: tox -e ${{ matrix.python }} + env: + MATRIX_PYTHON: ${{ matrix.python }} + run: tox -e ${MATRIX_PYTHON%-dev} timeout-minutes: 5 diff --git a/psycopg/connection_int.c b/psycopg/connection_int.c index 34c695747..8365e048b 100644 --- a/psycopg/connection_int.c +++ b/psycopg/connection_int.c @@ -33,6 +33,7 @@ #include "psycopg/green.h" #include "psycopg/notify.h" +#include #include /* String indexes match the ISOLATION_LEVEL_* consts */ diff --git a/psycopg/connection_type.c b/psycopg/connection_type.c index 92d5a8616..339f7f181 100644 --- a/psycopg/connection_type.c +++ b/psycopg/connection_type.c @@ -35,6 +35,7 @@ #include "psycopg/green.h" #include "psycopg/xid.h" +#include #include #include diff --git a/psycopg/pqpath.c b/psycopg/pqpath.c index ec0206732..83ab91f20 100644 --- a/psycopg/pqpath.c +++ b/psycopg/pqpath.c @@ -47,6 +47,7 @@ #include "psycopg/libpq_support.h" #include "libpq-fe.h" +#include #ifdef _WIN32 /* select() */ #include diff --git a/psycopg/psycopgmodule.c b/psycopg/psycopgmodule.c index 5ab6f5fdd..0d284f8f5 100644 --- a/psycopg/psycopgmodule.c +++ b/psycopg/psycopgmodule.c @@ -57,6 +57,8 @@ #include #include "psycopg/adapter_datetime.h" +#include + HIDDEN PyObject *psycoEncodings = NULL; HIDDEN PyObject *sqlstate_errors = NULL; diff --git a/psycopg/replication_connection_type.c b/psycopg/replication_connection_type.c index b8c1d2deb..7e5190478 100644 --- a/psycopg/replication_connection_type.c +++ b/psycopg/replication_connection_type.c @@ -129,6 +129,11 @@ replicationConnection_repr(replicationConnectionObject *self) self, self->conn.dsn, self->conn.closed); } +static int +replicationConnectionType_traverse(PyObject *self, visitproc visit, void *arg) +{ + return connectionType.tp_traverse(self, visit, arg); +} /* object calculated member list */ @@ -173,7 +178,7 @@ PyTypeObject replicationConnectionType = { Py_TPFLAGS_DEFAULT | Py_TPFLAGS_BASETYPE | Py_TPFLAGS_HAVE_ITER | Py_TPFLAGS_HAVE_GC, /*tp_flags*/ replicationConnectionType_doc, /*tp_doc*/ - 0, /*tp_traverse*/ + replicationConnectionType_traverse, /*tp_traverse*/ 0, /*tp_clear*/ 0, /*tp_richcompare*/ 0, /*tp_weaklistoffset*/ diff --git a/psycopg/replication_cursor_type.c b/psycopg/replication_cursor_type.c index 689a131cf..ab3ad3c4e 100644 --- a/psycopg/replication_cursor_type.c +++ b/psycopg/replication_cursor_type.c @@ -346,6 +346,11 @@ replicationCursor_repr(replicationCursorObject *self) "", self, self->cur.closed); } +static int +replicationCursorType_traverse(PyObject *self, visitproc visit, void *arg) +{ + return cursorType.tp_traverse(self, visit, arg); +} /* object type */ @@ -374,7 +379,7 @@ PyTypeObject replicationCursorType = { Py_TPFLAGS_DEFAULT | Py_TPFLAGS_BASETYPE | Py_TPFLAGS_HAVE_ITER | Py_TPFLAGS_HAVE_GC, /*tp_flags*/ replicationCursorType_doc, /*tp_doc*/ - 0, /*tp_traverse*/ + replicationCursorType_traverse, /*tp_traverse*/ 0, /*tp_clear*/ 0, /*tp_richcompare*/ 0, /*tp_weaklistoffset*/ diff --git a/tox.ini b/tox.ini index 8bb56694d..267552738 100644 --- a/tox.ini +++ b/tox.ini @@ -1,10 +1,11 @@ [tox] -envlist = {3.6,3.7,3.8,3.9,3.10} +envlist = {3.6,3.7,3.8,3.9,3.10,3.11} [testenv] commands = make check whitelist_externals = make passenv = PG* PSYCOPG2_TEST* +basepython = python{envname} [flake8] max-line-length = 85