diff options
| -rw-r--r-- | .github/workflows/ci-tests.yml | 1 | ||||
| -rw-r--r-- | CHANGES.rst | 5 | ||||
| -rw-r--r-- | CONTRIBUTORS.txt | 2 | ||||
| -rw-r--r-- | HACKING.txt | 3 | ||||
| -rw-r--r-- | docs/narr/install.rst | 4 | ||||
| -rw-r--r-- | docs/narr/upgrading.rst | 9 | ||||
| -rw-r--r-- | setup.py | 1 | ||||
| -rw-r--r-- | src/pyramid/i18n.py | 12 | ||||
| -rw-r--r-- | tests/test_i18n.py | 12 | ||||
| -rw-r--r-- | tox.ini | 2 |
10 files changed, 19 insertions, 32 deletions
diff --git a/.github/workflows/ci-tests.yml b/.github/workflows/ci-tests.yml index 8eeb366fd..9b989d69d 100644 --- a/.github/workflows/ci-tests.yml +++ b/.github/workflows/ci-tests.yml @@ -19,6 +19,7 @@ jobs: - "3.8" - "3.9" - "3.10" + - "3.11" - "pypy-3.8" os: - "ubuntu-20.04" diff --git a/CHANGES.rst b/CHANGES.rst index 0ee6fd30d..b9eacd894 100644 --- a/CHANGES.rst +++ b/CHANGES.rst @@ -4,6 +4,8 @@ unreleased Features -------- +- Pyramid adds support for Python 3.11. + Bug Fixes --------- @@ -11,6 +13,9 @@ Backward Incompatibilities -------------------------- - Pyramid is no longer tested on, nor supports Python 3.6 +- Pyramid drops support for l*gettext() methods in the i18n module. + These have been deprecated in Python's gettext module since 3.8, and + removed in Python 3.11. Documentation Changes --------------------- diff --git a/CONTRIBUTORS.txt b/CONTRIBUTORS.txt index a2dc79e9d..9b7f3819f 100644 --- a/CONTRIBUTORS.txt +++ b/CONTRIBUTORS.txt @@ -360,3 +360,5 @@ Contributors - Karthikeyan Singaravelan, 2021/08/24 - Camill Kaipf, 2022/08/12 + +- Stefano Rivera, 2022/12/29
\ No newline at end of file diff --git a/HACKING.txt b/HACKING.txt index 9cc2e8edb..bb7045ed6 100644 --- a/HACKING.txt +++ b/HACKING.txt @@ -50,7 +50,8 @@ In order to add a feature to Pyramid: - The feature must be documented in both the API and narrative documentation (in `docs/`). -- The feature must work fully on the following CPython versions: 3.7, 3.8, 3.9, and 3.10 on both UNIX and Windows. +- The feature must work fully on the following CPython versions: 3.7, 3.8, 3.9, + 3.10, and 3.11 on both UNIX and Windows. - The feature must work on the latest version of PyPy3. diff --git a/docs/narr/install.rst b/docs/narr/install.rst index 882b40d10..d07692d86 100644 --- a/docs/narr/install.rst +++ b/docs/narr/install.rst @@ -21,8 +21,8 @@ the following sections. .. sidebar:: Python Versions - As of this writing, :app:`Pyramid` is tested against Python 3.7, 3.8, 3.9, - and 3.10 and PyPy (matches CPython version 3.8). + As of this writing, :app:`Pyramid` is tested against Python 3.7, + 3.8, 3.9, 3.10, 3.11 and PyPy (matches CPython version 3.8). :app:`Pyramid` is known to run on all popular Unix-like systems such as Linux, macOS, and FreeBSD, as well as on Windows platforms. It is also known to diff --git a/docs/narr/upgrading.rst b/docs/narr/upgrading.rst index 020f2ed37..5fc3dc9fa 100644 --- a/docs/narr/upgrading.rst +++ b/docs/narr/upgrading.rst @@ -86,10 +86,11 @@ At the time of a Pyramid version release, each supports all versions of Python through the end of their lifespans. The end-of-life for a given version of Python is when security updates are no longer released. -- `Python 3.7 Lifespan <https://devguide.python.org/#status-of-python-branches>`_ 2023-06-27. -- `Python 3.8 Lifespan <https://devguide.python.org/#status-of-python-branches>`_ 2024-10. -- `Python 3.9 Lifespan <https://devguide.python.org/#status-of-python-branches>`_ 2025-10. -- `Python 3.10 Lifespan <https://devguide.python.org/#status-of-python-branches>`_ 2026-10. +- `Python 3.7 Lifespan <https://devguide.python.org/versions/#versions>`_ 2023-06-27. +- `Python 3.8 Lifespan <https://devguide.python.org/versions/#versions>`_ 2024-10. +- `Python 3.9 Lifespan <https://devguide.python.org/versions/#versions>`_ 2025-10. +- `Python 3.10 Lifespan <https://devguide.python.org/versions/#versions>`_ 2026-10. +- `Python 3.11 Lifespan <https://devguide.python.org/versions/#versions>`_ 2027-10. To determine the Python support for a specific release of Pyramid, view its ``tox.ini`` file at the root of the repository's version. @@ -78,6 +78,7 @@ setup( "Programming Language :: Python :: 3.8", "Programming Language :: Python :: 3.9", "Programming Language :: Python :: 3.10", + "Programming Language :: Python :: 3.11", "Programming Language :: Python :: Implementation :: CPython", "Programming Language :: Python :: Implementation :: PyPy", "Framework :: Pyramid", diff --git a/src/pyramid/i18n.py b/src/pyramid/i18n.py index cded99ca5..e7710f08d 100644 --- a/src/pyramid/i18n.py +++ b/src/pyramid/i18n.py @@ -335,12 +335,6 @@ class Translations(gettext.GNUTranslations): """ return self._domains.get(domain, self).gettext(message) - def ldgettext(self, domain, message): - """Like ``lgettext()``, but look the message up in the specified - domain. - """ - return self._domains.get(domain, self).lgettext(message) - def dugettext(self, domain, message): """Like ``ugettext()``, but look the message up in the specified domain. @@ -353,12 +347,6 @@ class Translations(gettext.GNUTranslations): """ return self._domains.get(domain, self).ngettext(singular, plural, num) - def ldngettext(self, domain, singular, plural, num): - """Like ``lngettext()``, but look the message up in the specified - domain. - """ - return self._domains.get(domain, self).lngettext(singular, plural, num) - def dungettext(self, domain, singular, plural, num): """Like ``ungettext()`` but look the message up in the specified domain. diff --git a/tests/test_i18n.py b/tests/test_i18n.py index 206eea290..a4834cedc 100644 --- a/tests/test_i18n.py +++ b/tests/test_i18n.py @@ -421,11 +421,6 @@ class TestTranslations(unittest.TestCase): self.assertEqual(t.dgettext('messages', 'foo'), 'Voh') self.assertEqual(t.dgettext('messages1', 'foo'), 'VohD') - def test_ldgettext(self): - t = self._makeOne() - self.assertEqual(t.ldgettext('messages', 'foo'), b'Voh') - self.assertEqual(t.ldgettext('messages1', 'foo'), b'VohD') - def test_dugettext(self): t = self._makeOne() self.assertEqual(t.dugettext('messages', 'foo'), 'Voh') @@ -436,13 +431,6 @@ class TestTranslations(unittest.TestCase): self.assertEqual(t.dngettext('messages', 'foo1', 'foos1', 1), 'Voh1') self.assertEqual(t.dngettext('messages1', 'foo1', 'foos1', 1), 'VohD1') - def test_ldngettext(self): - t = self._makeOne() - self.assertEqual(t.ldngettext('messages', 'foo1', 'foos1', 1), b'Voh1') - self.assertEqual( - t.ldngettext('messages1', 'foo1', 'foos1', 1), b'VohD1' - ) - def test_dungettext(self): t = self._makeOne() self.assertEqual(t.dungettext('messages', 'foo1', 'foos1', 1), 'Voh1') @@ -1,7 +1,7 @@ [tox] envlist = lint, - py37,py38,py39,py310,pypy3, + py37,py38,py39,py310,py311,pypy3, py38-cover,coverage, docs |
