[PATCH] byteify-strings: prevent "__name__ == '__main__'" from being transformed

Yuya Nishihara yuya at tcha.org
Sun Aug 12 05:10:48 UTC 2018


# HG changeset patch
# User Yuya Nishihara <yuya at tcha.org>
# Date 1534050202 -32400
#      Sun Aug 12 14:03:22 2018 +0900
# Node ID 6ee5e64e124c87b356874367dbf6355707d00883
# Parent  1c137e0a33afe4d7e61325513d2518af8b93434a
byteify-strings: prevent "__name__ == '__main__'" from being transformed

This was okay for import-time code transformer, but shouldn't be applied to
source code.

diff --git a/contrib/byteify-strings.py b/contrib/byteify-strings.py
--- a/contrib/byteify-strings.py
+++ b/contrib/byteify-strings.py
@@ -169,6 +169,11 @@ def replacetokens(tokens, opts):
                 yield adjusttokenpos(t._replace(string=fn[4:]), coloffset)
                 continue
 
+        # Looks like "if __name__ == '__main__'".
+        if (t.type == token.NAME and t.string == '__name__'
+            and _isop(i + 1, '==')):
+            _ensuresysstr(i + 2)
+
         # Emit unmodified token.
         yield adjusttokenpos(t, coloffset)
 


More information about the Mercurial-devel mailing list