[Python-3000-checkins] r59614 - python/branches/py3k/Lib/site.py

christian.heimes python-3000-checkins at python.org
Mon Dec 31 04:07:24 CET 2007


Author: christian.heimes
Date: Mon Dec 31 04:07:24 2007
New Revision: 59614

Modified:
   python/branches/py3k/Lib/site.py
Log:
Don't close sys.stdin with quit() if sys.stdin wraps fd 0. Otherwise it will raise a warning: Lib/io.py:1221: RuntimeWarning: Trying to close unclosable fd

Modified: python/branches/py3k/Lib/site.py
==============================================================================
--- python/branches/py3k/Lib/site.py	(original)
+++ python/branches/py3k/Lib/site.py	Mon Dec 31 04:07:24 2007
@@ -247,7 +247,12 @@
             # Shells like IDLE catch the SystemExit, but listen when their
             # stdin wrapper is closed.
             try:
-                sys.stdin.close()
+                fd = -1
+                if hasattr(sys.stdin, "fileno"):
+                    fd = sys.stdin.fileno()
+                if fd != 0:
+                    # Don't close stdin if it wraps fd 0
+                    sys.stdin.close()
             except:
                 pass
             raise SystemExit(code)


More information about the Python-3000-checkins mailing list