--- a/mercurial/__init__.py Sun Oct 09 17:02:34 2016 +0200
+++ b/mercurial/__init__.py Sun Oct 09 14:10:01 2016 +0200
@@ -305,6 +305,24 @@
except IndexError:
pass
+ # Bare open call (not an attribute on something else)
+ if (fn == 'open' and not (prevtoken.type == token.OP and
+ prevtoken.string == '.')):
+ try:
+ # (NAME, 'open')
+ # (OP, '(')
+ # (NAME|STRING, 'filename')
+ # (OP, ',')
+ # (NAME|STRING, mode)
+ st = tokens[i + 4]
+ if (st.type == token.STRING and
+ st.string[0] in ("'", '"')):
+ rt = tokenize.TokenInfo(st.type, 'u%s' % st.string,
+ st.start, st.end, st.line)
+ tokens[i + 4] = rt
+ except IndexError:
+ pass
+
# It changes iteritems to items as iteritems is not
# present in Python 3 world.
if fn == 'iteritems':
@@ -319,7 +337,7 @@
# ``replacetoken`` or any mechanism that changes semantics of module
# loading is changed. Otherwise cached bytecode may get loaded without
# the new transformation mechanisms applied.
- BYTECODEHEADER = b'HG\x00\x04'
+ BYTECODEHEADER = b'HG\x00\x05'
class hgloader(importlib.machinery.SourceFileLoader):
"""Custom module loader that transforms source code.