80 lines
2.7 KiB
Diff
80 lines
2.7 KiB
Diff
diff --git a/psycopg/utils.c b/psycopg/utils.c
|
|
index 16be9062..1dfb87d0 100644
|
|
--- a/psycopg/utils.c
|
|
+++ b/psycopg/utils.c
|
|
@@ -392,7 +392,10 @@ psyco_set_error(PyObject *exc, cursorObject *curs, const char *msg)
|
|
static int
|
|
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 */
|
|
return _PyInterpreterState_Get() == PyInterpreterState_Main();
|
|
#else
|
|
diff --git a/setup.py b/setup.py
|
|
index 37f6b5c0..7d1e30ba 100644
|
|
--- a/setup.py
|
|
+++ b/setup.py
|
|
@@ -58,6 +58,7 @@ Programming Language :: Python :: 3.9
|
|
Programming Language :: Python :: 3.10
|
|
Programming Language :: Python :: 3.11
|
|
Programming Language :: Python :: 3.12
|
|
+Programming Language :: Python :: 3.13
|
|
Programming Language :: Python :: 3 :: Only
|
|
Programming Language :: Python :: Implementation :: CPython
|
|
Programming Language :: C
|
|
diff --git a/tests/test_ipaddress.py b/tests/test_ipaddress.py
|
|
index 4a2339ef..3f803690 100755
|
|
--- a/tests/test_ipaddress.py
|
|
+++ b/tests/test_ipaddress.py
|
|
@@ -18,6 +18,7 @@
|
|
|
|
from . import testutils
|
|
import unittest
|
|
+import sys
|
|
|
|
import psycopg2
|
|
import psycopg2.extras
|
|
@@ -68,7 +69,12 @@ class NetworkingTestCase(testutils.ConnectingTestCase):
|
|
self.assertEquals(cur.fetchone()[0], '127.0.0.1/24')
|
|
|
|
cur.execute("select %s", [ip.ip_interface('::ffff:102:300/128')])
|
|
- self.assertEquals(cur.fetchone()[0], '::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')
|
|
|
|
@testutils.skip_if_crdb("cidr")
|
|
def test_cidr_cast(self):
|
|
@@ -109,7 +115,12 @@ class NetworkingTestCase(testutils.ConnectingTestCase):
|
|
self.assertEquals(cur.fetchone()[0], '127.0.0.0/24')
|
|
|
|
cur.execute("select %s", [ip.ip_network('::ffff:102:300/128')])
|
|
- self.assertEquals(cur.fetchone()[0], '::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')
|
|
|
|
|
|
def test_suite():
|
|
diff --git a/tox.ini b/tox.ini
|
|
index 52ed80e3..ce450d3d 100644
|
|
--- a/tox.ini
|
|
+++ b/tox.ini
|
|
@@ -1,5 +1,5 @@
|
|
[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]
|
|
commands = make check
|