[Python-projects] __init__ method from a non direct base class <logilab.astng.Yes object at 0xb7f8392c> is called
Barry Scott
barry.scott at onelan.co.uk
Tue Nov 21 19:08:07 CET 2006
Sylvain Thénault wrote:
> On Tuesday 21 November à 12:34, Barry Scott wrote:
>
>> Sylvain Thénault wrote:
>>
>>>> I get around 200 errors out of the first module that I run pylint on. I
>>>> cannot release
>>>> this source for you to test against. I will have to build a smaller
>>>> example
>>>> that breaks otherwise we will have nothing concrete to work with.
>>>>
>>>> My first attempt at a small example did not have the problem with this
>>>> class.
>>>> However when I forgot to copy a __init__.py I did see the message:
>>>>
>>>> __init__ method from a non direct base class <logilab.astng.Yes
>>>> object at 0xb7f8392c> is called
>>>>
>>>> So a missing __init__.py is another way to get this message.
>>>>
>>>> Am I right in guessing that this message means pylint/ast failed to find
>>>> information? Is it
>>>> a place holder in the code?
>>>>
>>>>
>>> you're right, and the easiest way to get ride of W0233 false positive is
>>> to skip YES object where this message is issued, as done by the patch
>>> below. Getting warning for inference problem is harder since this
>>> problem is tied to astng which shouldn't contain pylint specific code.
>>> I plan to use the logging module at some point to allow astng > pylint
>>> communication, but this is really not a priority for me at least, so...
>>>
>>> diff -r a6d5c4daf255 checkers/classes.py
>>> --- a/checkers/classes.py Wed Nov 15 19:43:01 2006 +0100
>>> +++ b/checkers/classes.py Mon Nov 20 16:47:00 2006 +0100
>>> @@ -442,6 +440,8 @@ instance attributes.'}
>>> return
>>> try:
>>> klass = expr.expr.infer().next()
>>> + if klass is astng.YES:
>>> + continue
>>> try:
>>> del to_call[klass]
>>> except KeyError:
>>>
>>>
>>>
>> This is a bad idea right? At least with the __init__ message I now know
>> why the
>> following "method not defined" messages occur.
>>
>> The problem is that because of the failure to find out about base
>> classes there are huge
>> number of false positive messages.
>>
>
> you mean that with this patch applied you get some other false positive?
>
With the patch applied I get false positives. What I had to do was fix
up the PYTHONPATH
to allow every module to be found.
Where as pychecker will give me an error telling me that it cannot find
a module pylint
is silent on the matter. You mentioned logging in astng. Once that
happens astng will
be able to report to pylint that it cannot find a module and pylint can
then report to the
user?
Barry
More information about the Python-Projects
mailing list