diff --git a/.github/workflows/tests.yml b/.github/workflows/tests.yml index 7e2d1fb..14ebf1b 100644 --- a/.github/workflows/tests.yml +++ b/.github/workflows/tests.yml @@ -28,6 +28,7 @@ jobs: - ["3.10", "py310"] - ["3.11", "py311"] - ["3.12", "py312"] + - ["3.13", "py313"] - ["pypy-3.10", "pypy3"] - ["3.9", "docs"] - ["3.9", "coverage"] @@ -41,6 +42,7 @@ jobs: uses: actions/setup-python@v5 with: python-version: ${{ matrix.config[0] }} + allow-prereleases: true - name: Pip cache uses: actions/cache@v4 with: diff --git a/.meta.toml b/.meta.toml index f5a50fb..9904c8b 100644 --- a/.meta.toml +++ b/.meta.toml @@ -2,12 +2,12 @@ # https://github.com/zopefoundation/meta/tree/master/config/pure-python [meta] template = "pure-python" -commit-id = "7713fd86" +commit-id = "e7051a16" [python] with-windows = false with-pypy = true -with-future-python = false +with-future-python = true with-docs = true with-sphinx-doctests = false with-macos = false diff --git a/CHANGES.rst b/CHANGES.rst index baa0ce4..2d0c9b6 100644 --- a/CHANGES.rst +++ b/CHANGES.rst @@ -5,6 +5,8 @@ 4.2 (unreleased) ================ +- Add support for Python 3.13. + 4.1 (2024-05-03) ================ diff --git a/setup.py b/setup.py index d5fa795..c272965 100644 --- a/setup.py +++ b/setup.py @@ -68,6 +68,7 @@ 'Programming Language :: Python :: 3.10', 'Programming Language :: Python :: 3.11', 'Programming Language :: Python :: 3.12', + 'Programming Language :: Python :: 3.13', 'Programming Language :: Python :: Implementation :: CPython', 'Programming Language :: Python :: Implementation :: PyPy', 'Operating System :: OS Independent', diff --git a/src/ZConfig/components/logger/tests/test_logger.py b/src/ZConfig/components/logger/tests/test_logger.py index b81bdfc..ce8b446 100644 --- a/src/ZConfig/components/logger/tests/test_logger.py +++ b/src/ZConfig/components/logger/tests/test_logger.py @@ -699,8 +699,19 @@ def test_filehandler_reopen_thread_safety(self): h = self.handler_factory(fn) calls = [] - h.acquire = lambda: calls.append("acquire") - h.release = lambda: calls.append("release") + + class _LockMockup: + def acquire(*args, **kw): + calls.append("acquire") + + __enter__ = acquire + + def release(*args, **kw): + calls.append("release") + + __exit__ = release + + h.lock = _LockMockup() h.reopen() self.assertEqual(calls, ["acquire", "release"]) diff --git a/tox.ini b/tox.ini index 040f33c..29ffc2d 100644 --- a/tox.ini +++ b/tox.ini @@ -11,6 +11,7 @@ envlist = py310 py311 py312 + py313 pypy3 docs coverage @@ -19,6 +20,7 @@ envlist = usedevelop = true package = wheel wheel_build_env = .pkg +pip_pre = py313: true deps = setenv = py312: VIRTUALENV_PIP=23.1.2