Hello
Sylvain Thénault wrote:
On 08 décembre 08:35, Robert wrote:
sometimes class members and module globals are computed
dynamically => lots of E0602 and so. As pylint doesn't import like
pychecker.
How is it possible to tell pylint about unseen globals/members?
See https://www.logilab.org/blogentry/78354
( http://www.logilab.org/blogentry/78354 )
[--load-plugins astng_hashlib ... MANAGER.register_transformer(...)]
looked at it.
Well this is a little heavy for getting it done on real projects.
Indeed this issue turns out to be most hindering me from getting
through with pylint and reasonable effort on bigger projects.
(I have a zero status checker requirement in the Makefiles -
otherwise its not possible to keep a Python app stable just with
tests)
I used class faking with pychecker by manipulating from python
executed .pycheckrc, and there was a more fine-grained
suppressions dict option. More practical, but also not optimal.
Here I miss significantly more comfort for such
beyond-one-line-but-not-whole-error-class suppressions.
First Ideas:
* allow cheap type-tolerant suppressions / declare mere existance
(for getting projects onto track without too much frustration)
#module xyz
#pylint:globals-exist=xx,yy
class XYZ: #pylint:members-exist=b,g
a = 1
def f(self):
pass
* point to full type fake mixins (which mixin-update after the
actual class/module parsing)
#pylint:fake-mixin-module=fake_import_path_a
class XYZ: #pylint:fake-mixin=fake_import_path_b.XYZ
a = 1
def f(self):
pass
Suppressions to be possible from remote via pylintrc as well (for
files which we can/shall not edit):
members-exist={'module_path.XYZ':'b,g', 'module_path.ABC': 'b,g'}
members-exist={'module_path.DEF':'b,g'} #accumulate multiple defs?
fake-mixin-modules={'module_path':'fake_import_path_a'}
fake-mixin-classes={'module_path.XYZ':'fake_import_path_b.XYZ'}
Is it also possible to tell pylint to really import (certain)
modules and respect the real beings ?
You can force some imports using --init-hooks, but this is usually
to avoid crash on certain libraries containing C-modules which break
if not imported the right way. Beside this, it won't affect the pylint's
way of doing things.
(thus this cannot be used so far to improve suppressions I assume?)
Best,
Robert
_______________________________________________
Python-Projects mailing list
[email protected]
http://lists.logilab.org/mailman/listinfo/python-projects