2020-08-03 11:24:38 -07:00

114 lines
3.1 KiB
INI

[MASTER]
jobs=1
load-plugins=efrotools.pylintplugins
persistent=no
__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)
max-line-length=79
# We're using yapf to handle formatting and pylint doesn't always agree with it.
disable=bad-continuation
[MESSAGES CONTROL]
# broad-except:
# I tend to catch Exception (*not* BaseException) as a broad safety net.
# This is not disallowed in PEP-8 and I feel its
# not a bad practice as long as they are not silently ignored.
# too-few-public-methods:
# Yes I often use little classes just to carry around one or two named attrs
# or as simple messages to send to each other.
# Can look into Data Classes perhaps once 3.7 is well distributed,
# but for now I'm gonna say this is ok.
# no-self-use
# I find a lot of things still make sense organizationally as methods
# even if they do not technically use self at the current time
# too-many-instance-attributes
# Honestly just don't feel this is bad. If anything, the limit encourages
# me to stuff things in dicts or whatnot which loses the bit of
# type safety that pylint provides with attrs
# 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.
# 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,
no-self-use,
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 temporary variables.
good-names=i,
j,
k,
x,
y,
z,
h,
v,
s,
ui,
h2,
v2,
ex,
Run,
id,
S,
T,
U,
_
[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 over that fact.
notes=
[DESIGN]
# We're going a bit over the recommended max of 7 ancestors when
# in some bafoundation mixin classes; I don't feel like that's
# unreasonable.
max-parents=10
[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