[VARIABLES]

# TODO(https://github.com/PyCQA/pylint/issues/1345): How does the inspection
# not include "unused_" and "ignored_" by default?
dummy-variables-rgx=^ignored_|^unused_

[DESIGN]

# NOTE(nathaniel): Not particularly attached to this value; it just seems to
# be what works for us at the moment (excepting the dead-code-walking Beta
# API).
max-args=6

[MISCELLANEOUS]

# NOTE(nathaniel): We are big fans of "TODO(<issue link>): " and
# "NOTE(<username or issue link>): ". We do not allow "TODO:",
# "TODO(<username>):", "FIXME:", or anything else.
notes=FIXME,XXX

[MESSAGES CONTROL]

disable=
	# TODO(https://github.com/PyCQA/pylint/issues/59#issuecomment-283774279):
	# Enable cyclic-import after a 1.7-or-later pylint release that
	# recognizes our disable=cyclic-import suppressions.
	cyclic-import,
	# TODO(https://github.com/grpc/grpc/issues/8622): Enable this after the
	# Beta API is removed.
	duplicate-code,
	# TODO(https://github.com/grpc/grpc/issues/261): Doesn't seem to
	# understand enum and concurrent.futures; look into this later with the
	# latest pylint version.
	import-error,
	# TODO(https://github.com/grpc/grpc/issues/261): Enable this one.
	# Should take a little configuration but not much.
	invalid-name,
	# TODO(https://github.com/grpc/grpc/issues/261): This doesn't seem to
	# work for now? Try with a later pylint?
	locally-disabled,
	# NOTE(nathaniel): What even is this? *Enabling* an inspection results
	# in a warning? How does that encourage more analysis and coverage?
	locally-enabled,
	# NOTE(nathaniel): We don't write doc strings for most private code
	# elements.
	missing-docstring,
	# NOTE(nathaniel): In numeric comparisons it is better to have the
	# lesser (or lesser-or-equal-to) quantity on the left when the
	# expression is true than it is to worry about which is an identifier
	# and which a literal value.
	misplaced-comparison-constant,
	# NOTE(nathaniel): Our completely abstract interface classes don't have
	# constructors.
	no-init,
	# TODO(https://github.com/grpc/grpc/issues/261): Doesn't yet play
	# nicely with some of our code being implemented in Cython. Maybe in a
	# later version?
	no-name-in-module,
	# TODO(https://github.com/grpc/grpc/issues/261): Suppress these where
	# the odd shape of the authentication portion of the API forces them on
	# us and enable everywhere else.
	protected-access,
	# NOTE(nathaniel): Pylint and I will probably never agree on this.
	too-few-public-methods,
	# NOTE(nathaniel): Pylint and I wil probably never agree on this for
	# private classes. For public classes maybe?
	too-many-instance-attributes,
	# NOTE(nathaniel): Some of our modules have a lot of lines... of
	# specification and documentation. Maybe if this were
	# lines-of-code-based we would use it.
	too-many-lines,
	# TODO(https://github.com/grpc/grpc/issues/261): Maybe we could have
	# this one if we extracted just a few more helper functions...
	too-many-nested-blocks,
	# TODO(https://github.com/grpc/grpc/issues/261): Disable unnecessary
	# super-init requirement for abstract class implementations for now.
	super-init-not-called,
	# NOTE(nathaniel): A single statement that always returns program
	# control is better than two statements the first of which sometimes
	# returns program control and the second of which always returns
	# program control. Probably generally, but definitely in the cases of
	# if:/else: and for:/else:.
	useless-else-on-loop,
	no-else-return,
