2024-07-01 17:30:17 -07:00

111 lines
3.1 KiB
INI

[MASTER]
jobs=1
# PIL seems to throw pylint for a loop (possibly related to our plugins?)
ignored-modules=PIL
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