comparison mercurial/pycompat.py @ 43085:eef9a2d67051

py3: manually import pycompat.open into files that need it We want to eliminate the source transformer. Currently it inserts a `from mercurial.pycompat import ...` at the top of files to alias some builtins. This commit replaces the implicit import of `open` with an explicit import on files that need it and changes the source transformer to no longer import `open`. As part of this, we needed to store an explicit local for `open` in the Python 2 code path in `pycompat` so the import works. (Builtins that are automatically in scope cannot be imported.) Differential Revision: https://phab.mercurial-scm.org/D7005
author Gregory Szorc <gregory.szorc@gmail.com>
date Sun, 06 Oct 2019 13:28:56 -0400
parents 687b865b95ad
children 66f2cc210a29
comparison
equal deleted inserted replaced
43084:c2e284cee333 43085:eef9a2d67051
352 maybebytestr = identity 352 maybebytestr = identity
353 sysbytes = identity 353 sysbytes = identity
354 sysstr = identity 354 sysstr = identity
355 strurl = identity 355 strurl = identity
356 bytesurl = identity 356 bytesurl = identity
357 open = open
357 358
358 # this can't be parsed on Python 3 359 # this can't be parsed on Python 3
359 exec(b'def raisewithtb(exc, tb):\n' b' raise exc, None, tb\n') 360 exec(b'def raisewithtb(exc, tb):\n' b' raise exc, None, tb\n')
360 361
361 def fsencode(filename): 362 def fsencode(filename):