[IPython-dev] AST transformations - ready for review

Aaron Meurer asmeurer at gmail.com
Sat Sep 29 19:07:08 EDT 2012


I noted this on the pull request too, but in case anyone reads it
here, the code for that transformer is wrong.  It should be

class IntegerWrapper(ast.NodeTransformer):
    """Wraps all integers in a call to Integer()"""
    def visit_Num(self, node):
        if isinstance(node.n, int):
            return ast.Call(func=ast.Name(id='Integer', ctx=ast.Load()),
                            args=[node], keywords=[])
        return node


Otherwise, it will fail for expressions containing floating point numbers.

Aaron Meurer

On Sat, Sep 29, 2012 at 3:22 AM, Thomas Kluyver <takowl at gmail.com> wrote:
> Hi all,
>
> I think the AST transformation hook in PR #2301 is ready for review.
> https://github.com/ipython/ipython/pull/2301
>
> I've made sure that it works with %timeit, %time and macros. I've also
> added a test for the Integer() wrapper that Sage and Sympy both want
> to apply. The code for that is:
>
> class IntegerWrapper(ast.NodeTransformer):
>     """Wraps all integers in a call to Integer()"""
>     def visit_Num(self, node):
>         if isinstance(node.n, int):
>             return ast.Call(func=ast.Name(id='Integer', ctx=ast.Load()),
>                             args=[node], keywords=[])
>
>
> Thanks,
> Thomas
> _______________________________________________
> IPython-dev mailing list
> IPython-dev at scipy.org
> http://mail.scipy.org/mailman/listinfo/ipython-dev



More information about the IPython-dev mailing list