On 24Jul2019 11:47, DL Neil <pythonl...@danceswithmice.info> wrote:
On 24/07/19 10:07 AM, Cameron Simpson wrote:
On 24Jul2019 07:21, DL Neil <pythonl...@danceswithmice.info> wrote:
...
Get some linting tools. They're great for catching this kind of error.

SublimeText has SublimeLinter and PycodeStyle installed, but I'm still familiarising myself with ST. Nothing is reported.

Any advice/correction/improvement would be most welcome...

Hmm. I'd expect a linter to catch this:

 # forgot FooException
 from foo import FooClass
 def f():
   raise FooException

Can you test that with a small script at your end (with real imports and names of course)?

I lint from the command line with this script:

 https://bitbucket.org/cameron_simpson/css/src/tip/bin-cs/lint

which runs a few Python linters for Python.

WRT SublimeText, PycodeStyle likely only checks style (I've now shifted to an automatic formatter for this) and SublimeLinter's PythonLinter page is... silent; it looks like a base class for other actual linters. You might need to do some more digging. Maybe you need some addition lint stuff for SublimeText.

The tricky bit with dynamic language like Python is that some naming errors (missed imports) aren't apparent until the code passes through that path. Linters can cover a lot of this with static analysis.

Exactly!
(PyTest and coverage tools were no help - they import correctly (and test adequately), but I didn't open those (separate) modules to notice the multiple import-s)

Hope springs eternal ... there must be a better way???

A good linter is usually decent at complaining about code using names that aren't defined (not imports, not otherwise defined such as a function or a variable assignment).

(well yes, not wishing to 'flog a dead horse' (nor any horse for that matter) I'm pleased at the (lack of negative) response to my allied question about nested classes, which would solve the original problem)

There's nothing "wrong" with it. It is uncommon. But like a lot of things, the value (or cost/pitfalls) come with how things are to be used.

Cheers,
Cameron Simpson <c...@cskk.id.au>
--
https://mail.python.org/mailman/listinfo/python-list

Reply via email to