# HG changeset patch # User Laura Médioni # Date 1453200232 -3600 # Node ID 1f686f55ef3db2b365fc3eb6e6d9c4faa620da6b # Parent efecb78bf9295b57b488280f39349ba0adc0ea67 [pylint] upgrade pylintext plugin diff -r efecb78bf929 -r 1f686f55ef3d cubicweb/pylintext.py --- a/cubicweb/pylintext.py Tue Jan 19 13:24:44 2016 +0100 +++ b/cubicweb/pylintext.py Tue Jan 19 11:43:52 2016 +0100 @@ -1,11 +1,12 @@ -"""https://pastebin.logilab.fr/show/860/""" +"""Pylint plugin for cubicweb""" -from astroid import MANAGER, InferenceError, nodes, scoped_nodes +from astroid import MANAGER, InferenceError, nodes, scoped_nodes, ClassDef, FunctionDef from astroid.builder import AstroidBuilder + def turn_function_to_class(node): """turn a Function node into a Class node (in-place)""" - node.__class__ = scoped_nodes.Class + node.__class__ = ClassDef node.bases = () # remove return nodes so that we don't get warned about 'return outside # function' by pylint @@ -19,7 +20,7 @@ # is kept). Only look at module level functions, should be enough. for assnodes in module.locals.values(): for node in assnodes: - if isinstance(node, scoped_nodes.Function) and node.decorators: + if isinstance(node, FunctionDef) and node.decorators: for decorator in node.decorators.nodes: try: for infered in decorator.infer(): @@ -45,6 +46,7 @@ ''') module.locals['data'] = fake.locals['data'] + def register(linter): """called when loaded by pylint --load-plugins, nothing to do here""" MANAGER.register_transform(nodes.Module, cubicweb_transform)