title: Compile python source without constant folding optimization
body: <p>I have a python snippet as follows</p>
  
  <pre><code>5 + 6 * 8
  </code></pre>
  
  <p>Compiling this to AST gives:</p>
  
  <pre><code>&gt;&gt;&gt; ast.dump(compile('5+6*8', '', 'eval', ast.PyCF_ONLY_AST))    
  Expression(body=BinOp(left=Num(n=5), op=Add(), right=BinOp(left=Num(n=6), op=Mult(), right=Num(n=8))))
  </code></pre>
  
  <p>Note that in the generated AST <code>6 * 8</code> is <strong>not</strong> optimized into 48. </p>
  
  <p>However, if I compile this generated AST and disassemble, <code>6 * 8</code> is replaced by <code>48</code>.</p>
  
  <pre><code>&gt;&gt;&gt; astree = compile('5+6*8', '', 'eval', ast.PyCF_ONLY_AST)
  &gt;&gt;&gt; dis.disco(compile(astree, '', 'eval'))
    1           0 LOAD_CONST               0 (5)
                3 LOAD_CONST               3 (48)
                6 BINARY_ADD          
                7 RETURN_VALUE 
  </code></pre>
  
  <p><strong>My question</strong></p>
  
  <p>How to compile the code to bytecode without the constant folding optimization? I need to do this for developing an obfuscator.</p>