I have no idea if this interpretation is right, but here's what I think is going on?
in pylint/checkers/base.py, there's a redefined_by_decorator method, like def redefined_by_decorator(node): if node.decorators: for decorator in node.decorators.nodes: if (isinstance(decorator, astng.Getattr) and decorator.expr.name == node.name): return True return False I think the "and" should be an "or". True? On Fri, Aug 17, 2012 at 3:06 PM, JT Olds <jto...@xnet5.com> wrote: > Hey all, > > I'm getting a weird error from pylint. I've reduced the code that > makes pylint choke to a small test case. When I run pylint on > > class Thing2(object): > def decorator(self, method): > def wrapper(*args, **kwargs): > return method(*args, **kwargs) > return wrapper > > class Thing1(object): > def __getattr__(self, name): > return Thing2() > > thing = Thing1() > > @thing.my_param.decorator > def test(): > print "hi" > > I get: > > Traceback (most recent call last): > File "/home/jt/.virtualenvs/default/bin/pylint", line 4, in <module> > lint.Run(sys.argv[1:]) > File > "/home/jt/.virtualenvs/default/local/lib/python2.7/site-packages/pylint/lint.py", > line 879, in __init__ > linter.check(args) > File > "/home/jt/.virtualenvs/default/local/lib/python2.7/site-packages/pylint/lint.py", > line 502, in check > self.check_astng_module(astng, walker, rawcheckers) > File > "/home/jt/.virtualenvs/default/local/lib/python2.7/site-packages/pylint/lint.py", > line 574, in check_astng_module > walker.walk(astng) > File > "/home/jt/.virtualenvs/default/local/lib/python2.7/site-packages/pylint/utils.py", > line 528, in walk > self.walk(child) > File > "/home/jt/.virtualenvs/default/local/lib/python2.7/site-packages/pylint/utils.py", > line 525, in walk > cb(astng) > File > "/home/jt/.virtualenvs/default/local/lib/python2.7/site-packages/pylint/checkers/base.py", > line 161, in visit_function > if not redefined_by_decorator(node): > File > "/home/jt/.virtualenvs/default/local/lib/python2.7/site-packages/pylint/checkers/base.py", > line 116, in redefined_by_decorator > decorator.expr.name == node.name): > AttributeError: 'Getattr' object has no attribute 'name' > > Any ideas? _______________________________________________ Python-Projects mailing list Python-Projects@lists.logilab.org http://lists.logilab.org/mailman/listinfo/python-projects