Bruno Desthuilliers wrote:
Pat a écrit :
I've been searching for a good multi-module lint checker for Python and I haven't found one yet.

Pylint does a decent job at checking for errors only within a single module.

Here's one of my problems.  I have two modules.

In module one, I have a function:

def foo( host, userid, password ):
    pass

In module two, I call that function:

foo( userid, password)

lint doesn't find that error

Nope, but even the most simple manual test should find it pretty quick.

and it won't be caught until it's called while the program is running. I don't want that error found at 3AM.

Don't you ever test your code ???

I've never used a language that didn't catch that type of error.

It does. Just try to run your code, and you'll have a nice traceback. Unless of course 'foo' is rebound in module two to another callable expecting only two parameters...

I'm quite surprised that Python is being used by a number of major companies.

Perhaps do they rely more on testing and less on the compiler ? FWIW, I've seen my share of bugs in declarativly statically typed languages, and most of them were way nastier (and way less obvious) than the above one.

 How you catch these types of errors?

Just like any other type of errors : testing, testing, and then add some more tests.


I haven't gotten into unittesting.  I've just started learning Python.

It also dawned on me why my original question is a bit lame. Python supports default arguments; something that is new to me. How could lint possibly know the correct number of arguments passed to it? Unless, of course, lint knew which functions had default arguments or not.

I'll come back with more intelligent questions after I've actually learned some Python.
--
http://mail.python.org/mailman/listinfo/python-list

Reply via email to