[Python-checkins] (2.7): only do this sys.stderr replacing on CPython
benjamin.peterson
python-checkins at python.org
Mon Mar 7 00:15:39 CET 2011
http://hg.python.org/cpython/rev/8bea7b156485
changeset: 68309:8bea7b156485
branch: 2.7
parent: 68305:d121681ed1cc
user: Benjamin Peterson <benjamin at python.org>
date: Sun Mar 06 17:08:40 2011 -0600
summary:
only do this sys.stderr replacing on CPython
files:
Lib/lib2to3/pytree.py
diff --git a/Lib/lib2to3/pytree.py b/Lib/lib2to3/pytree.py
--- a/Lib/lib2to3/pytree.py
+++ b/Lib/lib2to3/pytree.py
@@ -743,9 +743,11 @@
else:
# The reason for this is that hitting the recursion limit usually
# results in some ugly messages about how RuntimeErrors are being
- # ignored.
- save_stderr = sys.stderr
- sys.stderr = StringIO()
+ # ignored. We don't do this on non-CPython implementation because
+ # they don't have this problem.
+ if hasattr(sys, "getrefcount"):
+ save_stderr = sys.stderr
+ sys.stderr = StringIO()
try:
for count, r in self._recursive_matches(nodes, 0):
if self.name:
@@ -759,7 +761,8 @@
r[self.name] = nodes[:count]
yield count, r
finally:
- sys.stderr = save_stderr
+ if hasattr(sys, "getrefcount"):
+ sys.stderr = save_stderr
def _iterative_matches(self, nodes):
"""Helper to iteratively yield the matches."""
--
Repository URL: http://hg.python.org/cpython
More information about the Python-checkins
mailing list