Pylint Plugin help: Transform class locals to instances of provided types

I've got a class that does some metaclass magic. Some class members are passed a type, and the metaclass turns those objects into instances of the type. How can I set that up in a pylint plugin? I've made it as far as identifying the members and the type names, but I have no idea what to do next. Any help would be greatly appreciated (If this doesn't work, maybe there's a way to just remove the type inference for those members? No idea how to do that either) from astroid import MANAGER from astroid import nodes, node_classes # Removed a bunch of safety code for the sake of brevity and clarity def transform_myClass(node): for key, value in node.locals.items(): val = value[0] s = val.statement().value # ArgumentObj is the class that stores the types if s.func.name == 'ArgumentObj': for child in s.get_children(): if isinstance(child, node_classes.Keyword): # allowedTypes is the kwarg that recieves a *TUPLE* of types # The first one gets instantiated, but the others are allowed if child.arg == 'allowedTypes': typeNames = child.value # A tuple of names of type objects #### And here is where I have no idea what to do next #### MANAGER.register_transform(nodes.ClassDef, transform_myClass) ~T.Fox
participants (1)
-
Tyler Fox