D7007: py3: manually import pycompat.setattr where it is needed
Closed by commit rHG66f2cc210a29: py3: manually import pycompat.setattr where it is needed (authored by indygreg). This revision was automatically updated to reflect the committed changes. This revision was not accepted when it landed; it landed in state "Needs Review". REPOSITORY rHG Mercurial CHANGES SINCE LAST UPDATE https://phab.mercurial-scm.org/D7007?vs=16922=16930 CHANGES SINCE LAST ACTION https://phab.mercurial-scm.org/D7007/new/ REVISION DETAIL https://phab.mercurial-scm.org/D7007 AFFECTED FILES hgext/factotum.py hgext/fastannotate/context.py hgext/fix.py hgext/lfs/wrapper.py hgext/sparse.py hgext/win32mbcs.py mercurial/__init__.py mercurial/chgserver.py mercurial/cmdutil.py mercurial/extensions.py mercurial/hgweb/webutil.py mercurial/mdiff.py mercurial/phases.py mercurial/pycompat.py mercurial/repoview.py mercurial/ui.py mercurial/util.py mercurial/vfs.py mercurial/wireprotov1peer.py CHANGE DETAILS diff --git a/mercurial/wireprotov1peer.py b/mercurial/wireprotov1peer.py --- a/mercurial/wireprotov1peer.py +++ b/mercurial/wireprotov1peer.py @@ -13,6 +13,7 @@ from .i18n import _ from .node import bin +from .pycompat import setattr from . import ( bundle2, changegroup as changegroupmod, diff --git a/mercurial/vfs.py b/mercurial/vfs.py --- a/mercurial/vfs.py +++ b/mercurial/vfs.py @@ -14,6 +14,7 @@ import threading from .i18n import _ +from .pycompat import setattr from . import ( encoding, error, diff --git a/mercurial/util.py b/mercurial/util.py --- a/mercurial/util.py +++ b/mercurial/util.py @@ -35,7 +35,10 @@ import warnings from .thirdparty import attr -from .pycompat import open +from .pycompat import ( +open, +setattr, +) from hgdemandimport import tracing from . import ( encoding, diff --git a/mercurial/ui.py b/mercurial/ui.py --- a/mercurial/ui.py +++ b/mercurial/ui.py @@ -22,7 +22,10 @@ from .i18n import _ from .node import hex -from .pycompat import open +from .pycompat import ( +open, +setattr, +) from . import ( color, diff --git a/mercurial/repoview.py b/mercurial/repoview.py --- a/mercurial/repoview.py +++ b/mercurial/repoview.py @@ -12,6 +12,7 @@ import weakref from .node import nullrev +from .pycompat import setattr from . import ( obsolete, phases, diff --git a/mercurial/pycompat.py b/mercurial/pycompat.py --- a/mercurial/pycompat.py +++ b/mercurial/pycompat.py @@ -355,6 +355,7 @@ strurl = identity bytesurl = identity open = open +setattr = setattr # this can't be parsed on Python 3 exec(b'def raisewithtb(exc, tb):\n' b'raise exc, None, tb\n') diff --git a/mercurial/phases.py b/mercurial/phases.py --- a/mercurial/phases.py +++ b/mercurial/phases.py @@ -113,6 +113,7 @@ nullrev, short, ) +from .pycompat import setattr from . import ( error, pycompat, diff --git a/mercurial/mdiff.py b/mercurial/mdiff.py --- a/mercurial/mdiff.py +++ b/mercurial/mdiff.py @@ -12,6 +12,7 @@ import zlib from .i18n import _ +from .pycompat import setattr from . import ( encoding, error, diff --git a/mercurial/hgweb/webutil.py b/mercurial/hgweb/webutil.py --- a/mercurial/hgweb/webutil.py +++ b/mercurial/hgweb/webutil.py @@ -15,6 +15,7 @@ from ..i18n import _ from ..node import hex, nullid, short +from ..pycompat import setattr from .common import ( ErrorResponse, diff --git a/mercurial/extensions.py b/mercurial/extensions.py --- a/mercurial/extensions.py +++ b/mercurial/extensions.py @@ -18,7 +18,10 @@ _, gettext, ) -from .pycompat import open +from .pycompat import ( +open, +setattr, +) from . import ( cmdutil, diff --git a/mercurial/cmdutil.py b/mercurial/cmdutil.py --- a/mercurial/cmdutil.py +++ b/mercurial/cmdutil.py @@ -19,7 +19,10 @@ nullrev, short, ) -from .pycompat import open +from .pycompat import ( +open, +setattr, +) from . import ( bookmarks, diff --git a/mercurial/chgserver.py b/mercurial/chgserver.py --- a/mercurial/chgserver.py +++ b/mercurial/chgserver.py @@ -51,6 +51,7 @@ import time from .i18n import _ +from .pycompat import setattr from . import ( commandserver, diff --git a/mercurial/__init__.py b/mercurial/__init__.py --- a/mercurial/__init__.py +++ b/mercurial/__init__.py @@ -171,7 +171,7 @@ r, c = t.start l = ( b'; from mercurial.pycompat import ' -b'delattr, getattr, hasattr, setattr\n' +b'delattr, getattr, hasattr\n' ) for u in tokenize.tokenize(io.BytesIO(l).readline): if u.type in (tokenize.ENCODING, token.ENDMARKER): @@ -220,7 +220,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. -
D7007: py3: manually import pycompat.setattr where it is needed
indygreg created this revision. Herald added a subscriber: mercurial-devel. Herald added a reviewer: hg-reviewers. REVISION SUMMARY Continuing to eliminate the implicit import of symbols in the Python 3 source transformer so we can eliminate it. REPOSITORY rHG Mercurial REVISION DETAIL https://phab.mercurial-scm.org/D7007 AFFECTED FILES hgext/factotum.py hgext/fastannotate/context.py hgext/fix.py hgext/lfs/wrapper.py hgext/sparse.py hgext/win32mbcs.py mercurial/__init__.py mercurial/chgserver.py mercurial/cmdutil.py mercurial/extensions.py mercurial/hgweb/webutil.py mercurial/mdiff.py mercurial/phases.py mercurial/pycompat.py mercurial/repoview.py mercurial/ui.py mercurial/util.py mercurial/vfs.py mercurial/wireprotov1peer.py CHANGE DETAILS diff --git a/mercurial/wireprotov1peer.py b/mercurial/wireprotov1peer.py --- a/mercurial/wireprotov1peer.py +++ b/mercurial/wireprotov1peer.py @@ -13,6 +13,7 @@ from .i18n import _ from .node import bin +from .pycompat import setattr from . import ( bundle2, changegroup as changegroupmod, diff --git a/mercurial/vfs.py b/mercurial/vfs.py --- a/mercurial/vfs.py +++ b/mercurial/vfs.py @@ -14,6 +14,7 @@ import threading from .i18n import _ +from .pycompat import setattr from . import ( encoding, error, diff --git a/mercurial/util.py b/mercurial/util.py --- a/mercurial/util.py +++ b/mercurial/util.py @@ -35,7 +35,10 @@ import warnings from .thirdparty import attr -from .pycompat import open +from .pycompat import ( +open, +setattr, +) from hgdemandimport import tracing from . import ( encoding, diff --git a/mercurial/ui.py b/mercurial/ui.py --- a/mercurial/ui.py +++ b/mercurial/ui.py @@ -22,7 +22,10 @@ from .i18n import _ from .node import hex -from .pycompat import open +from .pycompat import ( +open, +setattr, +) from . import ( color, diff --git a/mercurial/repoview.py b/mercurial/repoview.py --- a/mercurial/repoview.py +++ b/mercurial/repoview.py @@ -12,6 +12,7 @@ import weakref from .node import nullrev +from .pycompat import setattr from . import ( obsolete, phases, diff --git a/mercurial/pycompat.py b/mercurial/pycompat.py --- a/mercurial/pycompat.py +++ b/mercurial/pycompat.py @@ -355,6 +355,7 @@ strurl = identity bytesurl = identity open = open +setattr = setattr # this can't be parsed on Python 3 exec(b'def raisewithtb(exc, tb):\n' b'raise exc, None, tb\n') diff --git a/mercurial/phases.py b/mercurial/phases.py --- a/mercurial/phases.py +++ b/mercurial/phases.py @@ -113,6 +113,7 @@ nullrev, short, ) +from .pycompat import setattr from . import ( error, pycompat, diff --git a/mercurial/mdiff.py b/mercurial/mdiff.py --- a/mercurial/mdiff.py +++ b/mercurial/mdiff.py @@ -12,6 +12,7 @@ import zlib from .i18n import _ +from .pycompat import setattr from . import ( encoding, error, diff --git a/mercurial/hgweb/webutil.py b/mercurial/hgweb/webutil.py --- a/mercurial/hgweb/webutil.py +++ b/mercurial/hgweb/webutil.py @@ -15,6 +15,7 @@ from ..i18n import _ from ..node import hex, nullid, short +from ..pycompat import setattr from .common import ( ErrorResponse, diff --git a/mercurial/extensions.py b/mercurial/extensions.py --- a/mercurial/extensions.py +++ b/mercurial/extensions.py @@ -18,7 +18,10 @@ _, gettext, ) -from .pycompat import open +from .pycompat import ( +open, +setattr, +) from . import ( cmdutil, diff --git a/mercurial/cmdutil.py b/mercurial/cmdutil.py --- a/mercurial/cmdutil.py +++ b/mercurial/cmdutil.py @@ -19,7 +19,10 @@ nullrev, short, ) -from .pycompat import open +from .pycompat import ( +open, +setattr, +) from . import ( bookmarks, diff --git a/mercurial/chgserver.py b/mercurial/chgserver.py --- a/mercurial/chgserver.py +++ b/mercurial/chgserver.py @@ -51,6 +51,7 @@ import time from .i18n import _ +from .pycompat import setattr from . import ( commandserver, diff --git a/mercurial/__init__.py b/mercurial/__init__.py --- a/mercurial/__init__.py +++ b/mercurial/__init__.py @@ -171,7 +171,7 @@ r, c = t.start l = ( b'; from mercurial.pycompat import ' -b'delattr, getattr, hasattr, setattr\n' +b'delattr, getattr, hasattr\n' ) for u in tokenize.tokenize(io.BytesIO(l).readline): if u.type in (tokenize.ENCODING, token.ENDMARKER): @@ -220,7 +220,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\x0e' +BYTECODEHEADER = b'HG\x00\x0f' class hgloader(importlib.machinery.SourceFileLoader): """Custom module loader that transforms source