[PATCH 5 of 5] check-code: handle py3 open divergence

timeless timeless at fmr.im
Wed May 11 00:12:50 EDT 2016


# HG changeset patch
# User timeless <timeless at mozdev.org>
# 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


More information about the Mercurial-devel mailing list