# HG changeset patch # User Augie Fackler # Date 1519624301 18000 # Node ID 1ca4e86c7265f6fb9396ac9a95cf5585596c0ed1 # Parent ec43960b03e8c8c8c72cc2c73b2b3ca00d6743d5 util: handle fileno() on Python 3 throwing io.UnsupportedOperation Fortunately, the exception exists on Python 2 so we don't have to do something weirder than this. Differential Revision: https://phab.mercurial-scm.org/D2450 diff -r ec43960b03e8 -r 1ca4e86c7265 mercurial/util.py --- a/mercurial/util.py Mon Feb 26 00:50:57 2018 -0500 +++ b/mercurial/util.py Mon Feb 26 00:51:41 2018 -0500 @@ -26,6 +26,7 @@ import gc import hashlib import imp +import io import itertools import mmap import os @@ -1178,7 +1179,10 @@ def _isstdout(f): fileno = getattr(f, 'fileno', None) - return fileno and fileno() == sys.__stdout__.fileno() + try: + return fileno and fileno() == sys.__stdout__.fileno() + except io.UnsupportedOperation: + return False # fileno() raised UnsupportedOperation def shellenviron(environ=None): """return environ with optional override, useful for shelling out"""