]> git.ipfire.org Git - thirdparty/Python/cpython.git/commitdiff
gh-76007: Deprecate `__version__` attribute in `wsgiref.simple_server` (#142675)
authorHugo van Kemenade <1324225+hugovk@users.noreply.github.com>
Tue, 16 Dec 2025 12:08:51 +0000 (14:08 +0200)
committerGitHub <noreply@github.com>
Tue, 16 Dec 2025 12:08:51 +0000 (14:08 +0200)
Doc/deprecations/pending-removal-in-3.20.rst
Doc/whatsnew/3.15.rst
Lib/test/test_wsgiref.py
Lib/wsgiref/simple_server.py
Misc/NEWS.d/next/Library/2025-12-13-19-17-01.gh-issue-76007.-OSQU3.rst [new file with mode: 0644]

index 4a6a6c3c43a7229923dd91a4e521f9fec3028827..185f20fbc6d125af5e613dd8df6ee90ff4a88020 100644 (file)
@@ -23,6 +23,7 @@ Pending removal in Python 3.20
   - :mod:`tabnanny`
   - :mod:`tkinter.font`
   - :mod:`tkinter.ttk`
+  - :mod:`wsgiref.simple_server`
   - :mod:`zlib`
 
   (Contributed by Hugo van Kemenade and Stan Ulbrych in :gh:`76007`.)
index a67b7153e238de8ad3cfa85cfad192c92d0cbd8b..24a51f87c0f410954c702bfcabb34e4ed800a19d 100644 (file)
@@ -1040,6 +1040,7 @@ New deprecations
     - :mod:`tabnanny`
     - :mod:`tkinter.font`
     - :mod:`tkinter.ttk`
+    - :mod:`wsgiref.simple_server`
     - :mod:`zlib`
 
     (Contributed by Hugo van Kemenade and Stan Ulbrych in :gh:`76007`.)
index e04a4d2c2218a3d331b9021f59b8d4d027da0ab4..a8f71c636f9ccaf7e2efbfa6ee7102682543dd59 100644 (file)
@@ -109,7 +109,7 @@ class IntegrationTests(TestCase):
                 sys.version.split()[0])
         self.assertEqual(out,
             ("HTTP/1.0 200 OK\r\n"
-            "Server: WSGIServer/0.2 " + pyver +"\r\n"
+            "Server: WSGIServer " + pyver + "\r\n"
             "Content-Type: text/plain\r\n"
             "Date: Mon, 05 Jun 2006 18:49:54 GMT\r\n" +
             (has_length and  "Content-Length: 13\r\n" or "") +
@@ -206,7 +206,7 @@ class IntegrationTests(TestCase):
         pyver = py + b"/" + ver
         self.assertEqual(
                 b"HTTP/1.0 200 OK\r\n"
-                b"Server: WSGIServer/0.2 "+ pyver + b"\r\n"
+                b"Server: WSGIServer " + pyver + b"\r\n"
                 b"Content-Type: text/plain; charset=utf-8\r\n"
                 b"Date: Wed, 24 Dec 2008 13:29:32 GMT\r\n"
                 b"\r\n"
@@ -840,5 +840,17 @@ class HandlerTests(TestCase):
         self.assertIsNotNone(h.environ)
 
 
+class TestModule(unittest.TestCase):
+    def test_deprecated__version__(self):
+        from wsgiref import simple_server
+
+        with self.assertWarnsRegex(
+            DeprecationWarning,
+            "'__version__' is deprecated and slated for removal in Python 3.20",
+        ) as cm:
+            getattr(simple_server, "__version__")
+        self.assertEqual(cm.filename, __file__)
+
+
 if __name__ == "__main__":
     unittest.main()
index a0f2397fcf0006430534324fe679de3c78491ffa..31efd8c9baea0d33729874d0b776c31d4fa73057 100644 (file)
@@ -16,11 +16,10 @@ import urllib.parse
 from wsgiref.handlers import SimpleHandler
 from platform import python_implementation
 
-__version__ = "0.2"
 __all__ = ['WSGIServer', 'WSGIRequestHandler', 'demo_app', 'make_server']
 
 
-server_version = "WSGIServer/" + __version__
+server_version = "WSGIServer"
 sys_version = python_implementation() + "/" + sys.version.split()[0]
 software_version = server_version + ' ' + sys_version
 
@@ -70,7 +69,7 @@ class WSGIServer(HTTPServer):
 
 class WSGIRequestHandler(BaseHTTPRequestHandler):
 
-    server_version = "WSGIServer/" + __version__
+    server_version = "WSGIServer"
 
     def get_environ(self):
         env = self.server.base_environ.copy()
@@ -152,6 +151,15 @@ def make_server(
     return server
 
 
+def __getattr__(name):
+    if name == "__version__":
+        from warnings import _deprecated
+
+        _deprecated("__version__", remove=(3, 20))
+        return "0.2"  # Do not change
+    raise AttributeError(f"module {__name__!r} has no attribute {name!r}")
+
+
 if __name__ == '__main__':
     with make_server('', 8000, demo_app) as httpd:
         sa = httpd.socket.getsockname()
diff --git a/Misc/NEWS.d/next/Library/2025-12-13-19-17-01.gh-issue-76007.-OSQU3.rst b/Misc/NEWS.d/next/Library/2025-12-13-19-17-01.gh-issue-76007.-OSQU3.rst
new file mode 100644 (file)
index 0000000..310c438
--- /dev/null
@@ -0,0 +1,2 @@
+Deprecate ``__version__`` from :mod:`wsgiref.simple_server`. Patch by Hugo
+van Kemenade.