* [gentoo-commits] repo/gentoo:master commit in: dev-python/logutils/, dev-python/logutils/files/
@ 2025-03-17 9:07 Michał Górny
0 siblings, 0 replies; only message in thread
From: Michał Górny @ 2025-03-17 9:07 UTC (permalink / raw
To: gentoo-commits
commit: 2c886f9b9d4e373c7adb0df48742d9aac4af1d5c
Author: Michał Górny <mgorny <AT> gentoo <DOT> org>
AuthorDate: Mon Mar 17 09:00:49 2025 +0000
Commit: Michał Górny <mgorny <AT> gentoo <DOT> org>
CommitDate: Mon Mar 17 09:07:34 2025 +0000
URL: https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=2c886f9b
dev-python/logutils: Enable py3.13
Signed-off-by: Michał Górny <mgorny <AT> gentoo.org>
.../logutils/files/logutils-0.3.5-py313.patch | 90 ++++++++++++++++++++++
dev-python/logutils/logutils-0.3.5-r1.ebuild | 20 ++++-
2 files changed, 107 insertions(+), 3 deletions(-)
diff --git a/dev-python/logutils/files/logutils-0.3.5-py313.patch b/dev-python/logutils/files/logutils-0.3.5-py313.patch
new file mode 100644
index 000000000000..e6b804f2e042
--- /dev/null
+++ b/dev-python/logutils/files/logutils-0.3.5-py313.patch
@@ -0,0 +1,90 @@
+From f33a518fc04bcb4f875b2c741c7bbee8db9e01d8 Mon Sep 17 00:00:00 2001
+From: Arne Keller <arne.keller@posteo.de>
+Date: Sat, 11 Jan 2025 11:27:21 +0100
+Subject: [PATCH] Fix Python 3.13 compatibility
+
+---
+ logutils/dictconfig.py | 9 +++++++--
+ tests/test_dictconfig.py | 14 ++++++++++----
+ 2 files changed, 17 insertions(+), 6 deletions(-)
+
+diff --git a/logutils/dictconfig.py b/logutils/dictconfig.py
+index c774552..2e33031 100644
+--- a/logutils/dictconfig.py
++++ b/logutils/dictconfig.py
+@@ -290,7 +290,12 @@ class DictConfigurator(BaseConfigurator):
+ raise ValueError("Unsupported version: %s" % config['version'])
+ incremental = config.pop('incremental', False)
+ EMPTY_DICT = {}
+- logging._acquireLock()
++ # Python 3.13+ renamed these functions
++ try:
++ acquire, release = logging._prepareFork, logging._afterFork
++ except AttributeError:
++ acquire, release = logging._acquireLock, logging._releaseLock
++ acquire()
+ try:
+ if incremental:
+ handlers = config.get('handlers', EMPTY_DICT)
+@@ -431,7 +436,7 @@ class DictConfigurator(BaseConfigurator):
+ raise ValueError('Unable to configure root '
+ 'logger: %s' % e)
+ finally:
+- logging._releaseLock()
++ release()
+
+ def configure_formatter(self, config):
+ """Configure a formatter from a dictionary."""
+diff --git a/tests/test_dictconfig.py b/tests/test_dictconfig.py
+index 3aee984..e56d267 100644
+--- a/tests/test_dictconfig.py
++++ b/tests/test_dictconfig.py
+@@ -30,6 +30,12 @@ def handlerFunc():
+ class CustomHandler(logging.StreamHandler):
+ pass
+
++# Python 3.13+ renamed these functions
++try:
++ acquire, release = logging._prepareFork, logging._afterFork
++except AttributeError:
++ acquire, release = logging._acquireLock, logging._releaseLock
++
+ class ConfigDictTest(unittest.TestCase):
+
+ """Reading logging config from a dictionary."""
+@@ -39,7 +45,7 @@ class ConfigDictTest(unittest.TestCase):
+ self.adapter = LoggerAdapter(l, {})
+
+ logger_dict = logging.getLogger().manager.loggerDict
+- logging._acquireLock()
++ acquire()
+ try:
+ self.saved_handlers = logging._handlers.copy()
+ self.saved_handler_list = logging._handlerList[:]
+@@ -50,7 +56,7 @@ class ConfigDictTest(unittest.TestCase):
+ self.saved_level_to_name = logging._levelToName.copy()
+ self.saved_name_to_level = logging._nameToLevel.copy()
+ finally:
+- logging._releaseLock()
++ release()
+
+ self.root_logger = logging.getLogger("")
+ self.original_logging_level = self.root_logger.getEffectiveLevel()
+@@ -58,7 +64,7 @@ class ConfigDictTest(unittest.TestCase):
+
+ def tearDown(self):
+ self.root_logger.setLevel(self.original_logging_level)
+- logging._acquireLock()
++ acquire()
+ try:
+ if hasattr(logging, '_levelNames'):
+ logging._levelNames.clear()
+@@ -75,7 +81,7 @@ class ConfigDictTest(unittest.TestCase):
+ loggerDict.clear()
+ loggerDict.update(self.saved_loggers)
+ finally:
+- logging._releaseLock()
++ release()
+
+ message_num = 0
+
diff --git a/dev-python/logutils/logutils-0.3.5-r1.ebuild b/dev-python/logutils/logutils-0.3.5-r1.ebuild
index fd886838498d..230f6aeac8f5 100644
--- a/dev-python/logutils/logutils-0.3.5-r1.ebuild
+++ b/dev-python/logutils/logutils-0.3.5-r1.ebuild
@@ -1,15 +1,18 @@
-# Copyright 1999-2024 Gentoo Authors
+# Copyright 1999-2025 Gentoo Authors
# Distributed under the terms of the GNU General Public License v2
EAPI=8
DISTUTILS_USE_PEP517=setuptools
-PYTHON_COMPAT=( python3_{9..12} )
+PYTHON_COMPAT=( python3_{10..13} )
inherit distutils-r1 pypi
DESCRIPTION="The logutils package provides a set of handlers for the Python standard"
-HOMEPAGE="https://bitbucket.org/vinay.sajip/logutils"
+HOMEPAGE="
+ https://bitbucket.org/vinay.sajip/logutils/
+ https://pypi.org/project/logutils/
+"
LICENSE="BSD"
SLOT="0"
@@ -24,6 +27,17 @@ BDEPEND="
distutils_enable_tests unittest
+PATCHES=(
+ # https://bitbucket.org/vinay.sajip/logutils/pull-requests/5
+ "${FILESDIR}/${P}-py313.patch"
+)
+
+src_prepare() {
+ distutils-r1_src_prepare
+
+ sed -i -e 's:assertEquals:assertEqual:' tests/*.py || die
+}
+
python_test() {
eunittest -s tests
}
^ permalink raw reply related [flat|nested] only message in thread
only message in thread, other threads:[~2025-03-17 9:08 UTC | newest]
Thread overview: (only message) (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2025-03-17 9:07 [gentoo-commits] repo/gentoo:master commit in: dev-python/logutils/, dev-python/logutils/files/ Michał Górny
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox