[MASTER] jobs=1 load-plugins=efrotools.pylintplugins persistent=no extension-pkg-allow-list=math, readline, zlib, binascii __EFRO_PYLINT_INIT__ [REPORTS] # Don't want a score; aiming for perfection. score=no [VARIABLES] # By default pylint ignores unused imports in __init__.py, but # when flycheck checks it as flycheck___init__.py that doesn't apply. # Turning this off to keep things consistent. init-import=yes [FORMAT] # PEP-8 specifies 79 chars (that's right, not 80). # Update: switching to 80 to reclaim that extra char. There # seems to be a lot of wiggle room in line-lengths even by # good PEP-8 citizens (black code formatting defaults to 88). # Currently sticking with 80 across the board though since # wanting to support coding on phones and smaller devices as # much as possible. max-line-length=80 [MESSAGES CONTROL] # broad-except: # I tend to catch Exception (*not* BaseException) as a broad safety net # (always with a log call or something to ensure that the problem # gets noticed). This is not disallowed in PEP-8 and I feel it is # not a bad practice as long as they are not silently ignored. # too-few-public-methods: # I often use little classes just to carry around one or two named attrs # or as simple messages to send to each other. # Perhaps this is worth reconsidering now that dataclasses are widely used # for that purpose. # too-many-instance-attributes # This one may also be worth reconsidering now; perhaps with a raised # default? # too-many-arguments # This one is more understandable, but I still don't see the problem # with having a bunch of optional args in some cases. Perhaps also # a raised default would be appropriate? # similarities # Not gonna touch this for now. Maybe later. Bigger fish to fry. # not-callable # Seeming to get a number of false positives for this, and mypy covers # this case well. disable=broad-except, too-few-public-methods, too-many-instance-attributes, too-many-arguments, similarities, not-callable # We want to know whenever we can get rid of suppression statements. enable=useless-suppression [BASIC] # Allowing a handful of short names commonly understood to be iterators, # math concepts, or short-but-complete words. good-names=i, j, k, x, y, z, h, v, s, ui, h2, v2, S, T, U, id, _ [TYPECHECK] # Mypy does most all the type checking we need, and in some cases # Pylint has conflicting views about what types it thinks things are, # so let's just flip stuff off here. disable=no-member [MISCELLANEOUS] # We've got various TODO and FIXME notes in scripts, but don't want # lint to trigger errors over that fact. notes= [SIMILARITIES] [IMPORTS] # We do quite a bit of this. Perhaps can reconsider if its a good idea later. disable=import-outside-toplevel [STRING] # PEP-8 says to be consistent with quotes; let's remind ourself... check-quote-consistency=yes