Merge pull request #1695 from befeleme/py3.13

Add support for Python 3.13
This commit is contained in:
Daniele Varrazzo 2024-07-14 21:58:10 +02:00 committed by GitHub
commit dc5249ba01
No known key found for this signature in database
GPG Key ID: B5690EEEBB952194
6 changed files with 27 additions and 4 deletions

View File

@ -19,6 +19,7 @@ jobs:
- {python: "3.10", postgres: "14"} - {python: "3.10", postgres: "14"}
- {python: "3.11", postgres: "15"} - {python: "3.11", postgres: "15"}
- {python: "3.12", postgres: "16"} - {python: "3.12", postgres: "16"}
- {python: "3.13-dev", postgres: "16"}
# Opposite extremes of the supported Py/PG range, other architecture # Opposite extremes of the supported Py/PG range, other architecture
- {python: "3.7", postgres: "16", architecture: "x86"} - {python: "3.7", postgres: "16", architecture: "x86"}
@ -27,6 +28,7 @@ jobs:
- {python: "3.10", postgres: "13", architecture: "x86"} - {python: "3.10", postgres: "13", architecture: "x86"}
- {python: "3.11", postgres: "11", architecture: "x86"} - {python: "3.11", postgres: "11", architecture: "x86"}
- {python: "3.12", postgres: "10", architecture: "x86"} - {python: "3.12", postgres: "10", architecture: "x86"}
- {python: "3.13-dev", postgres: "10", architecture: "x86"}
env: env:
PSYCOPG2_TESTDB: postgres PSYCOPG2_TESTDB: postgres

6
NEWS
View File

@ -1,6 +1,12 @@
Current release Current release
--------------- ---------------
What's new in psycopg 2.9.10 (unreleased)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
- Add support for Python 3.13.
What's new in psycopg 2.9.9 What's new in psycopg 2.9.9
^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^

View File

@ -392,7 +392,10 @@ psyco_set_error(PyObject *exc, cursorObject *curs, const char *msg)
static int static int
psyco_is_main_interp(void) psyco_is_main_interp(void)
{ {
#if PY_VERSION_HEX >= 0x03080000 #if PY_VERSION_HEX >= 0x030d0000
/* tested with Python 3.13.0a6 */
return PyInterpreterState_Get() == PyInterpreterState_Main();
#elif PY_VERSION_HEX >= 0x03080000
/* tested with Python 3.8.0a2 */ /* tested with Python 3.8.0a2 */
return _PyInterpreterState_Get() == PyInterpreterState_Main(); return _PyInterpreterState_Get() == PyInterpreterState_Main();
#else #else

View File

@ -58,6 +58,7 @@ Programming Language :: Python :: 3.9
Programming Language :: Python :: 3.10 Programming Language :: Python :: 3.10
Programming Language :: Python :: 3.11 Programming Language :: Python :: 3.11
Programming Language :: Python :: 3.12 Programming Language :: Python :: 3.12
Programming Language :: Python :: 3.13
Programming Language :: Python :: 3 :: Only Programming Language :: Python :: 3 :: Only
Programming Language :: Python :: Implementation :: CPython Programming Language :: Python :: Implementation :: CPython
Programming Language :: C Programming Language :: C

View File

@ -18,6 +18,7 @@
from . import testutils from . import testutils
import unittest import unittest
import sys
import psycopg2 import psycopg2
import psycopg2.extras import psycopg2.extras
@ -68,6 +69,11 @@ class NetworkingTestCase(testutils.ConnectingTestCase):
self.assertEquals(cur.fetchone()[0], '127.0.0.1/24') self.assertEquals(cur.fetchone()[0], '127.0.0.1/24')
cur.execute("select %s", [ip.ip_interface('::ffff:102:300/128')]) cur.execute("select %s", [ip.ip_interface('::ffff:102:300/128')])
# The texual representation of addresses has changed in Python 3.13
if sys.version_info >= (3, 13):
self.assertEquals(cur.fetchone()[0], '::ffff:1.2.3.0/128')
else:
self.assertEquals(cur.fetchone()[0], '::ffff:102:300/128') self.assertEquals(cur.fetchone()[0], '::ffff:102:300/128')
@testutils.skip_if_crdb("cidr") @testutils.skip_if_crdb("cidr")
@ -109,6 +115,11 @@ class NetworkingTestCase(testutils.ConnectingTestCase):
self.assertEquals(cur.fetchone()[0], '127.0.0.0/24') self.assertEquals(cur.fetchone()[0], '127.0.0.0/24')
cur.execute("select %s", [ip.ip_network('::ffff:102:300/128')]) cur.execute("select %s", [ip.ip_network('::ffff:102:300/128')])
# The texual representation of addresses has changed in Python 3.13
if sys.version_info >= (3, 13):
self.assertEquals(cur.fetchone()[0], '::ffff:1.2.3.0/128')
else:
self.assertEquals(cur.fetchone()[0], '::ffff:102:300/128') self.assertEquals(cur.fetchone()[0], '::ffff:102:300/128')

View File

@ -1,5 +1,5 @@
[tox] [tox]
envlist = {3.7,3.8,3.9,3.10,3.11,3.12} envlist = {3.7,3.8,3.9,3.10,3.11,3.12,3.13}
[testenv] [testenv]
commands = make check commands = make check