https://github.com/python/cpython/commit/c10ec48bb9e791e416f5670ae8a415f5bfac5419
commit: c10ec48bb9e791e416f5670ae8a415f5bfac5419
branch: main
author: Hugo van Kemenade <[email protected]>
committer: hugovk <[email protected]>
date: 2025-12-16T14:08:51+02:00
summary:
gh-76007: Deprecate `__version__` attribute in `wsgiref.simple_server` (#142675)
files:
A Misc/NEWS.d/next/Library/2025-12-13-19-17-01.gh-issue-76007.-OSQU3.rst
M Doc/deprecations/pending-removal-in-3.20.rst
M Doc/whatsnew/3.15.rst
M Lib/test/test_wsgiref.py
M Lib/wsgiref/simple_server.py
diff --git a/Doc/deprecations/pending-removal-in-3.20.rst
b/Doc/deprecations/pending-removal-in-3.20.rst
index 4a6a6c3c43a722..185f20fbc6d125 100644
--- a/Doc/deprecations/pending-removal-in-3.20.rst
+++ b/Doc/deprecations/pending-removal-in-3.20.rst
@@ -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`.)
diff --git a/Doc/whatsnew/3.15.rst b/Doc/whatsnew/3.15.rst
index a67b7153e238de..24a51f87c0f410 100644
--- a/Doc/whatsnew/3.15.rst
+++ b/Doc/whatsnew/3.15.rst
@@ -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`.)
diff --git a/Lib/test/test_wsgiref.py b/Lib/test/test_wsgiref.py
index e04a4d2c2218a3..a8f71c636f9cca 100644
--- a/Lib/test/test_wsgiref.py
+++ b/Lib/test/test_wsgiref.py
@@ -109,7 +109,7 @@ def check_hello(self, out, has_length=True):
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 @@ def app(e, s):
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 @@ def write(self, b):
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()
diff --git a/Lib/wsgiref/simple_server.py b/Lib/wsgiref/simple_server.py
index a0f2397fcf0006..31efd8c9baea0d 100644
--- a/Lib/wsgiref/simple_server.py
+++ b/Lib/wsgiref/simple_server.py
@@ -16,11 +16,10 @@
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 @@ def set_app(self,application):
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
index 00000000000000..310c438c2de6f8
--- /dev/null
+++ b/Misc/NEWS.d/next/Library/2025-12-13-19-17-01.gh-issue-76007.-OSQU3.rst
@@ -0,0 +1,2 @@
+Deprecate ``__version__`` from :mod:`wsgiref.simple_server`. Patch by Hugo
+van Kemenade.
_______________________________________________
Python-checkins mailing list -- [email protected]
To unsubscribe send an email to [email protected]
https://mail.python.org/mailman3//lists/python-checkins.python.org
Member address: [email protected]