windows: handle file-like objects without isatty() method
Copying the function is not nice, but moving around stuff to avoid the
circular import didn’t seem to be worth the effort.
--- a/mercurial/windows.py Fri Jul 17 08:21:31 2020 +0200
+++ b/mercurial/windows.py Fri Jul 17 14:58:22 2020 +0200
@@ -186,6 +186,14 @@
listdir = osutil.listdir
+# copied from .utils.procutil, remove after Python 2 support was dropped
+def _isatty(fp):
+ try:
+ return fp.isatty()
+ except AttributeError:
+ return False
+
+
class winstdout(object):
'''Some files on Windows misbehave.
@@ -197,7 +205,7 @@
def __init__(self, fp):
self.fp = fp
- self.throttle = not pycompat.ispy3 and fp.isatty()
+ self.throttle = not pycompat.ispy3 and _isatty(fp)
def __getattr__(self, key):
return getattr(self.fp, key)