def setUp(self): transformers = sys.get_code_transformers() self.addCleanup(sys.set_code_transformers, transformers) # Disable all code tranformers, we specialized functions # manually in tests sys.set_code_transformers([])
def _register(): # First, import the fat module to create the copy of the builtins dict import fat import sys config = Config() config.enable_all() if sys.flags.verbose: config.logger = sys.stderr transformers = sys.get_code_transformers() # add the FAT optimizer before the peephole optimizer transformers.insert(0, FATOptimizer(config)) sys.set_code_transformers(transformers)
import sys import textwrap import unittest # Disable the AST optimizer on this module __fatoptimizer__ = {'enabled': False} def create_optimizer(): config = fatoptimizer.Config() config.strict = False config.copy_builtin_to_constant = {'chr'} return fatoptimizer.FATOptimizer(config) # Replace existing AST transformers with our optimizer sys.set_code_transformers([create_optimizer()]) def disassemble(obj): output = io.StringIO() dis.dis(obj, file=output) return output.getvalue() class CopyGlobalToLocal(unittest.TestCase): def test_builtin(self): ns = {} exec(textwrap.dedent(""" def func(x): return chr(x) """), ns, ns)