[code-quality] assigning node type with function annotations?

Claudiu Popa pcmanticore at gmail.com
Thu May 7 17:39:59 CEST 2015


On Thu, May 7, 2015 at 6:02 PM, Jarrad Hope <me at jarradhope.com> wrote:
> This is how far I got with this,
> https://gist.github.com/jarradh/02dd8f5ad07527c9fd10
>
> In the example go through Arguments(i imagine I'll have to apply
> transform on functiondef later) and apply an explicit transformation,
> and I manage to apply a Const type to all of them but I got stuck at
> how to switch based on node._annotype.name
> since Const instantiates with the name as a value and therefore it's a
> string type.
>
> How can I switch the Const type based on node._annotype.name ?
> Or is there a better way of going about this?
>
>


You'll have to infer node._annontype.name (which can be a Class) and
get its name. Then retrieving the name from builtins and try to go from there.
Something along these lines:

    import builtins

    type = next(node._annotype.infer())
    const = Const(vars(builtins)[type.name]())


More information about the code-quality mailing list