https://github.com/python/cpython/commit/3343fce05acb29a772599ce586abd43edf40bae6
commit: 3343fce05acb29a772599ce586abd43edf40bae6
branch: main
author: sobolevn <m...@sobolevn.me>
committer: sobolevn <m...@sobolevn.me>
date: 2025-07-11T15:31:59+03:00
summary:

gh-136434: Fix docs generation of `UnboundItem` in subinterpreters (#136435)

files:
A Misc/NEWS.d/next/Library/2025-07-08-20-58-01.gh-issue-136434.uuJsjS.rst
M Lib/concurrent/interpreters/_crossinterp.py

diff --git a/Lib/concurrent/interpreters/_crossinterp.py 
b/Lib/concurrent/interpreters/_crossinterp.py
index f47eb693ac861c..a5f46b20fbb4c5 100644
--- a/Lib/concurrent/interpreters/_crossinterp.py
+++ b/Lib/concurrent/interpreters/_crossinterp.py
@@ -40,16 +40,21 @@ class UnboundItem:
 
     @classonly
     def singleton(cls, kind, module, name='UNBOUND'):
-        doc = cls.__doc__.replace('cross-interpreter container', kind)
-        doc = doc.replace('cross-interpreter', kind)
+        doc = cls.__doc__
+        if doc:
+            doc = doc.replace(
+                'cross-interpreter container', kind,
+            ).replace(
+                'cross-interpreter', kind,
+            )
         subclass = type(
             f'Unbound{kind.capitalize()}Item',
             (cls,),
-            dict(
-                _MODULE=module,
-                _NAME=name,
-                __doc__=doc,
-            ),
+            {
+                "_MODULE": module,
+                "_NAME": name,
+                "__doc__": doc,
+            },
         )
         return object.__new__(subclass)
 
diff --git 
a/Misc/NEWS.d/next/Library/2025-07-08-20-58-01.gh-issue-136434.uuJsjS.rst 
b/Misc/NEWS.d/next/Library/2025-07-08-20-58-01.gh-issue-136434.uuJsjS.rst
new file mode 100644
index 00000000000000..951f57100b650c
--- /dev/null
+++ b/Misc/NEWS.d/next/Library/2025-07-08-20-58-01.gh-issue-136434.uuJsjS.rst
@@ -0,0 +1,2 @@
+Fix docs generation of ``UnboundItem`` in :mod:`concurrent.interpreters`
+when running with :option:`-OO`.

_______________________________________________
Python-checkins mailing list -- python-checkins@python.org
To unsubscribe send an email to python-checkins-le...@python.org
https://mail.python.org/mailman3//lists/python-checkins.python.org
Member address: arch...@mail-archive.com

Reply via email to