From 9962a197e419d5417b6924af95e0bef539e4b745 Mon Sep 17 00:00:00 2001 From: Ridge Nairn Date: Thu, 22 Jan 2026 09:38:31 +1300 Subject: [PATCH 1/2] Add Python 3.13, 3.14 support, drop 3.9 support -Add 3.13, 3.14 to test matrix, remove 3.9 - Add `pip-tools` dev dependency - Upgrade `webob`, `zope.deprecation`, `zope.interface - Replace deprecated `pkg_resources` calls with `importlib.metadata` --- .github/workflows/test.yml | 2 +- docs/source/conf.py | 4 +- pyproject.toml | 1 + requirements.txt | 88 +++++++++++++++++++------------------- src/cornice/__init__.py | 4 +- 5 files changed, 49 insertions(+), 50 deletions(-) diff --git a/.github/workflows/test.yml b/.github/workflows/test.yml index 75193f86..6d993a7d 100644 --- a/.github/workflows/test.yml +++ b/.github/workflows/test.yml @@ -17,7 +17,7 @@ jobs: runs-on: ubuntu-latest strategy: matrix: - python-version: ["3.9", "3.10", "3.11", "3.12"] + python-version: ["3.10", "3.11", "3.12", "3.13", "3.14"] steps: - uses: actions/checkout@v4 diff --git a/docs/source/conf.py b/docs/source/conf.py index a96d0134..31f2ee55 100644 --- a/docs/source/conf.py +++ b/docs/source/conf.py @@ -3,7 +3,7 @@ import datetime import os import sys -import pkg_resources +from importlib import metadata try: import mozilla_sphinx_theme except ImportError: @@ -24,7 +24,7 @@ # built documents. # # The short X.Y version. -version = pkg_resources.get_distribution('cornice').version +version = metadata.version('cornice') # The full version, including alpha/beta/rc tags. release = version diff --git a/pyproject.toml b/pyproject.toml index c01ba907..d63861ec 100644 --- a/pyproject.toml +++ b/pyproject.toml @@ -40,6 +40,7 @@ dev = [ "WebTest<4", "marshmallow<4", "colander<3", + "pip-tools<8", ] [tool.pip-tools] diff --git a/requirements.txt b/requirements.txt index 775850cd..b8810d1a 100644 --- a/requirements.txt +++ b/requirements.txt @@ -1,5 +1,5 @@ # -# This file is autogenerated by pip-compile with Python 3.9 +# This file is autogenerated by pip-compile with Python 3.14 # by the following command: # # pip-compile --allow-unsafe --generate-hashes @@ -8,6 +8,10 @@ hupper==1.12.1 \ --hash=sha256:06bf54170ff4ecf4c84ad5f188dee3901173ab449c2608ad05b9bfd6b13e32eb \ --hash=sha256:e872b959f09d90be5fb615bd2e62de89a0b57efc037bdf9637fb09cdf8552b19 # via pyramid +legacy-cgi==2.6.4 \ + --hash=sha256:7e235ce58bf1e25d1fc9b2d299015e4e2cd37305eccafec1e6bac3fc04b878cd \ + --hash=sha256:abb9dfc7835772f7c9317977c63253fd22a7484b5c9bbcdca60a29dcce97c577 + # via webob pastedeploy==3.1.0 \ --hash=sha256:76388ad53a661448d436df28c798063108f70e994ddc749540d733cdbd1b38cf \ --hash=sha256:9ddbaf152f8095438a9fe81f82c78a6714b92ae8e066bed418b6a7ff6a095a95 @@ -34,51 +38,46 @@ venusian==3.1.0 \ --hash=sha256:d1fb1e49927f42573f6c9b7c4fcf61c892af8fdcaa2314daa01d9a560b23488d \ --hash=sha256:eb72cdca6f3139a15dc80f9c95d3c10f8a54a0ba881eeef8e2ec5b42d3ee3a95 # via pyramid -webob==1.8.8 \ - --hash=sha256:2abc1555e118fc251e705fc6dc66c7f5353bb9fbfab6d20e22f1c02b4b71bcee \ - --hash=sha256:b60ba63f05c0cf61e086a10c3781a41fcfe30027753a8ae6d819c77592ce83ea +webob==1.8.9 \ + --hash=sha256:45e34c58ed0c7e2ecd238ffd34432487ff13d9ad459ddfd77895e67abba7c1f9 \ + --hash=sha256:ad6078e2edb6766d1334ec3dee072ac6a7f95b1e32ce10def8ff7f0f02d56589 # via pyramid -zope-deprecation==5.0 \ - --hash=sha256:28c2ee983812efb4676d33c7a8c6ade0df191c1c6d652bbbfe6e2eeee067b2d4 \ - --hash=sha256:b7c32d3392036b2145c40b3103e7322db68662ab09b7267afe1532a9d93f640f +zope-deprecation==6.0 \ + --hash=sha256:18727ebda8e63a6d4bd28a290e8b46852e9f14473debb5cc40a0a2dccfadf15f \ + --hash=sha256:ff72d51c88b516b9ddf2cfb826381cc49f99a6a89b7d35c97faca7bee3b46da6 # via pyramid -zope-interface==6.1 \ - --hash=sha256:0c8cf55261e15590065039696607f6c9c1aeda700ceee40c70478552d323b3ff \ - --hash=sha256:13b7d0f2a67eb83c385880489dbb80145e9d344427b4262c49fbf2581677c11c \ - --hash=sha256:1f294a15f7723fc0d3b40701ca9b446133ec713eafc1cc6afa7b3d98666ee1ac \ - --hash=sha256:239a4a08525c080ff833560171d23b249f7f4d17fcbf9316ef4159f44997616f \ - --hash=sha256:2f8d89721834524a813f37fa174bac074ec3d179858e4ad1b7efd4401f8ac45d \ - --hash=sha256:2fdc7ccbd6eb6b7df5353012fbed6c3c5d04ceaca0038f75e601060e95345309 \ - --hash=sha256:34c15ca9248f2e095ef2e93af2d633358c5f048c49fbfddf5fdfc47d5e263736 \ - --hash=sha256:387545206c56b0315fbadb0431d5129c797f92dc59e276b3ce82db07ac1c6179 \ - --hash=sha256:43b576c34ef0c1f5a4981163b551a8781896f2a37f71b8655fd20b5af0386abb \ - --hash=sha256:57d0a8ce40ce440f96a2c77824ee94bf0d0925e6089df7366c2272ccefcb7941 \ - --hash=sha256:5a804abc126b33824a44a7aa94f06cd211a18bbf31898ba04bd0924fbe9d282d \ - --hash=sha256:67be3ca75012c6e9b109860820a8b6c9a84bfb036fbd1076246b98e56951ca92 \ - --hash=sha256:6af47f10cfc54c2ba2d825220f180cc1e2d4914d783d6fc0cd93d43d7bc1c78b \ - --hash=sha256:6dc998f6de015723196a904045e5a2217f3590b62ea31990672e31fbc5370b41 \ - --hash=sha256:70d2cef1bf529bff41559be2de9d44d47b002f65e17f43c73ddefc92f32bf00f \ - --hash=sha256:7ebc4d34e7620c4f0da7bf162c81978fce0ea820e4fa1e8fc40ee763839805f3 \ - --hash=sha256:964a7af27379ff4357dad1256d9f215047e70e93009e532d36dcb8909036033d \ - --hash=sha256:97806e9ca3651588c1baaebb8d0c5ee3db95430b612db354c199b57378312ee8 \ - --hash=sha256:9b9bc671626281f6045ad61d93a60f52fd5e8209b1610972cf0ef1bbe6d808e3 \ - --hash=sha256:9ffdaa5290422ac0f1688cb8adb1b94ca56cee3ad11f29f2ae301df8aecba7d1 \ - --hash=sha256:a0da79117952a9a41253696ed3e8b560a425197d4e41634a23b1507efe3273f1 \ - --hash=sha256:a41f87bb93b8048fe866fa9e3d0c51e27fe55149035dcf5f43da4b56732c0a40 \ - --hash=sha256:aa6fd016e9644406d0a61313e50348c706e911dca29736a3266fc9e28ec4ca6d \ - --hash=sha256:ad54ed57bdfa3254d23ae04a4b1ce405954969c1b0550cc2d1d2990e8b439de1 \ - --hash=sha256:b012d023b4fb59183909b45d7f97fb493ef7a46d2838a5e716e3155081894605 \ - --hash=sha256:b51b64432eed4c0744241e9ce5c70dcfecac866dff720e746d0a9c82f371dfa7 \ - --hash=sha256:bbe81def9cf3e46f16ce01d9bfd8bea595e06505e51b7baf45115c77352675fd \ - --hash=sha256:c9559138690e1bd4ea6cd0954d22d1e9251e8025ce9ede5d0af0ceae4a401e43 \ - --hash=sha256:e30506bcb03de8983f78884807e4fd95d8db6e65b69257eea05d13d519b83ac0 \ - --hash=sha256:e33e86fd65f369f10608b08729c8f1c92ec7e0e485964670b4d2633a4812d36b \ - --hash=sha256:e441e8b7d587af0414d25e8d05e27040d78581388eed4c54c30c0c91aad3a379 \ - --hash=sha256:e8bb9c990ca9027b4214fa543fd4025818dc95f8b7abce79d61dc8a2112b561a \ - --hash=sha256:ef43ee91c193f827e49599e824385ec7c7f3cd152d74cb1dfe02cb135f264d83 \ - --hash=sha256:ef467d86d3cfde8b39ea1b35090208b0447caaabd38405420830f7fd85fbdd56 \ - --hash=sha256:f89b28772fc2562ed9ad871c865f5320ef761a7fcc188a935e21fe8b31a38ca9 \ - --hash=sha256:fddbab55a2473f1d3b8833ec6b7ac31e8211b0aa608df5ab09ce07f3727326de +zope-interface==8.2 \ + --hash=sha256:0009d2d3c02ea783045d7804da4fd016245e5c5de31a86cebba66dd6914d59a2 \ + --hash=sha256:05a0e42d6d830f547e114de2e7cd15750dc6c0c78f8138e6c5035e51ddfff37c \ + --hash=sha256:0723507127f8269b8f3f22663168f717e9c9742107d1b6c9f419df561b71aa6d \ + --hash=sha256:16c69da19a06566664ddd4785f37cad5693a51d48df1515d264c20d005d322e2 \ + --hash=sha256:2499de92e8275d0dd68f84425b3e19e9268cd1fa8507997900fa4175f157733c \ + --hash=sha256:2bf9cf275468bafa3c72688aad8cfcbe3d28ee792baf0b228a1b2d93bd1d541a \ + --hash=sha256:34f877d1d3bb7565c494ed93828fa6417641ca26faf6e8f044e0d0d500807028 \ + --hash=sha256:3bf73a910bb27344def2d301a03329c559a79b308e1e584686b74171d736be4e \ + --hash=sha256:46c7e4e8cbc698398a67e56ca985d19cb92365b4aafbeb6a712e8c101090f4cb \ + --hash=sha256:532367553e4420c80c0fc0cabcc2c74080d495573706f66723edee6eae53361d \ + --hash=sha256:561ce42390bee90bae51cf1c012902a8033b2aaefbd0deed81e877562a116d48 \ + --hash=sha256:6068322004a0158c80dfd4708dfb103a899635408c67c3b10e9acec4dbacefec \ + --hash=sha256:624b6787fc7c3e45fa401984f6add2c736b70a7506518c3b537ffaacc4b29d4c \ + --hash=sha256:6f4b4dfcfdfaa9177a600bb31cebf711fdb8c8e9ed84f14c61c420c6aa398489 \ + --hash=sha256:788c293f3165964ec6527b2d861072c68eef53425213f36d3893ebee89a89623 \ + --hash=sha256:845d14e580220ae4544bd4d7eb800f0b6034fe5585fc2536806e0a26c2ee6640 \ + --hash=sha256:8f094bfb49179ec5dc9981cb769af1275702bd64720ef94874d9e34da1390d4c \ + --hash=sha256:9a4e785097e741a1c953b3970ce28f2823bd63c00adc5d276f2981dd66c96c15 \ + --hash=sha256:9b05a919fdb0ed6ea942e5a7800e09a8b6cdae6f98fee1bef1c9d1a3fc43aaa0 \ + --hash=sha256:a1ef4b43659e1348f35f38e7d1a6bbc1682efde239761f335ffc7e31e798b65b \ + --hash=sha256:a87fc7517f825a97ff4a4ca4c8a950593c59e0f8e7bfe1b6f898a38d5ba9f9cf \ + --hash=sha256:aae807efc7bd26302eb2fea05cd6de7d59269ed6ae23a6de1ee47add6de99b8c \ + --hash=sha256:afb20c371a601d261b4f6edb53c3c418c249db1a9717b0baafc9a9bb39ba1224 \ + --hash=sha256:bc9ded9e97a0ed17731d479596ed1071e53b18e6fdb2fc33af1e43f5fd2d3aaa \ + --hash=sha256:c31acfa3d7cde48bec45701b0e1f4698daffc378f559bfb296837d8c834732f6 \ + --hash=sha256:c65ade7ea85516e428651048489f5e689e695c79188761de8c622594d1e13322 \ + --hash=sha256:ccc62b5712dd7bd64cfba3ee63089fb11e840f5914b990033beeae3b2180b6cb \ + --hash=sha256:ccf52f7d44d669203c2096c1a0c2c15d52e36b2e7a9413df50f48392c7d4d080 \ + --hash=sha256:d2bb8e7364e18f083bf6744ccf30433b2a5f236c39c95df8514e3c13007098ce \ + --hash=sha256:dfc4f44e8de2ff4eba20af4f0a3ca42d3c43ab24a08e49ccd8558b7a4185b466 \ + --hash=sha256:f777e68c76208503609c83ca021a6864902b646530a1a39abb9ed310d1100664 # via pyramid # The following packages are considered to be unsafe in a requirements file: @@ -88,4 +87,3 @@ setuptools==77.0.3 \ # via # pyramid # zope-deprecation - # zope-interface diff --git a/src/cornice/__init__.py b/src/cornice/__init__.py index f77f1715..bb80bb70 100644 --- a/src/cornice/__init__.py +++ b/src/cornice/__init__.py @@ -3,8 +3,8 @@ # You can obtain one at http://mozilla.org/MPL/2.0/. import logging from functools import partial +from importlib.metadata import version -import pkg_resources from pyramid.events import NewRequest from pyramid.httpexceptions import HTTPForbidden, HTTPNotFound from pyramid.security import NO_PERMISSION_REQUIRED @@ -24,7 +24,7 @@ logger = logging.getLogger("cornice") # Module version, as defined in PEP-0396. -__version__ = pkg_resources.get_distribution(__package__).version +__version__ = version(__package__) def set_localizer_for_languages(event, available_languages, default_locale_name): From f72d3112a04ede5349ab78117861e01f0bad9503 Mon Sep 17 00:00:00 2001 From: Ridge Nairn Date: Thu, 22 Jan 2026 09:54:50 +1300 Subject: [PATCH 2/2] Add name to contributors, sort contributors --- CONTRIBUTORS.txt | 19 ++++++++++--------- 1 file changed, 10 insertions(+), 9 deletions(-) diff --git a/CONTRIBUTORS.txt b/CONTRIBUTORS.txt index b060da08..378a4bf7 100644 --- a/CONTRIBUTORS.txt +++ b/CONTRIBUTORS.txt @@ -3,20 +3,20 @@ Cornice: * Akim Sadaoui * Alessandro Amici +* Alex Marandon * Alexandre Bourget * Alexis Metaireau -* Alex Marandon * Anaël Beutot * Andilab +* Andre Caron * Andreas Motl * Andreas Zeidler -* Andre Caron +* Andrew Birnberg * Andrew Brookins * Antoine Leclair * Anton D * Areski * Ben Bangert -* Andrew Birnberg * Bruno Binet * Bryan Zegar * Christian Benke @@ -27,12 +27,12 @@ Cornice: * David Grant * Dion Peters * Elias +* G.Tjebbes * Gabriela Surita * Gael Pasgrimaud -* George V. Reilly * George Mamalakis +* George V. Reilly * Graham Higgins -* G.Tjebbes * Guillaume Gauvrit * Henddher Pedroza * James Arthur @@ -60,9 +60,9 @@ Cornice: * Markus Zapke-Gründemann * Mathieu Bridon * Mathieu Leplatre -* Matthias Lehmann -* Matthias * Matt Skinner +* Matthias +* Matthias Lehmann * Myroslav Opyr * Nicolas Dietrich * Niko Wenselowski @@ -70,13 +70,14 @@ Cornice: * Paul Smith * Ralph Bean * Ramana Rao -* Rémy HUBSCHER * rforkel * Rickert Mulder +* Ridge Nairn * Rob Miller * Rob van der Linde * Roman Kozlovskyi * Ryan Kelly +* Rémy HUBSCHER * Scott Bowers * Sebastian Hanula * Sergey Safonov @@ -90,6 +91,6 @@ Cornice: * tsauerwein * Victor Ng * Vincent Fretin -* Ymage * Volodymyr Maksymiv * Walter Danilo Galante +* Ymage