[Python-Dev] Direction of PyChecker

Guido van Rossum guido@python.org
Thu, 09 Aug 2001 16:52:26 -0400


> I'd like to solicit feedback on what everyone thinks about PyChecker.

I love it when it works!

> Specifically, where should it go?  What should it include or not include?
> What should the default warnings be?

You'll never satisfy everyone.  Personally, I write too much code
without docstrings, so I find the complaints about missing docstrings
annoying.  I guess my preference would be to have the default mode ony
complain about things that have a high probability of being *coding*
errors -- undefined names and the like.  I forget if you're checking
string formatting conformance yet -- that would also be useful.

> I've seen some threads on c.l.p that checker might address.

Unfortunately the typical newbie doesn't have access to pychecker
yet...

> Do you think that there should be something added to the python 
> FAQ/doc about checker?  I'd be willing to write something.

Sure!  You can add a FAQ entry yourself -- the password is "Spam".

> I'm close to exhausting my list of warnings/checks, let me know
> if there are additional warnings/checks you can think of.

Python version compatibilities would be an interesting area to
explore.

I would like PyChecker to use a fundamentally different way of
scanning modules.  I believe that it currently imports the module and
then scans the module's __dict__ for classes and functions, and
analyses their bytecode.  That's fragile, dangerous (if you don't know
what a module does you may not want to import it), and sometimes
causes spurious errors, like when I have this at the global level:

    import foo
    foo.bar()

and no other references to the module foo anywhere in the code...  You
get an error about an unused foo module.

> Thanks for your input,
> Neal
> 
> PS I sent a patch to python-dev against 2.2a1, but it's 45k.  So
> it's awating moderator approval.  Sorry if this isn't the right
> venue for patches.

I've approved it, but in general, we'd all prefer it if you submitted
patches to the SourceForge patch manager -- that's what it's there
for.  If you want to discuss it here, post a URL. :-)

--Guido van Rossum (home page: http://www.python.org/~guido/)