From patchwork Wed May 11 04:12:50 2016 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit Subject: [5,of,5] check-code: handle py3 open divergence From: timeless X-Patchwork-Id: 14991 Message-Id: To: mercurial-devel@mercurial-scm.org Date: Wed, 11 May 2016 04:12:50 +0000 # HG changeset patch # User timeless # Date 1462931171 0 # Wed May 11 01:46:11 2016 +0000 # Node ID c5dfd864d81f5d1f435ff376ea44b3ea82b12575 # Parent ed2dbfec165a0de79c93d7fa1ea9cb5f36b10c29 # EXP-Topic runtests # Available At bb://timeless/mercurial-crew # hg pull bb://timeless/mercurial-crew -r c5dfd864d81f check-code: handle py3 open divergence open() really wants an encoding attribute diff -r ed2dbfec165a -r c5dfd864d81f contrib/check-code.py --- a/contrib/check-code.py Wed May 11 01:44:39 2016 +0000 +++ b/contrib/check-code.py Wed May 11 01:46:11 2016 +0000 @@ -26,6 +26,11 @@ import os import re import sys +if sys.version_info[0] < 3: + opentext = open +else: + def opentext(f): + return open(f, encoding='ascii') try: xrange except NameError: @@ -493,8 +498,12 @@ result = True try: - with open(f) as fp: - pre = post = fp.read() + with opentext(f) as fp: + try: + pre = post = fp.read() + except UnicodeDecodeError as e: + print("%s while reading %s" % (e, f)) + return result except IOError as e: print("Skipping %s, %s" % (f, str(e).split(':', 1)[0])) return result