xref: /aosp_15_r20/external/grpc-grpc/.pylintrc-tests (revision cc02d7e222339f7a4f6ba5f422e6413f4bd931f2)
1*cc02d7e2SAndroid Build Coastguard Worker[MASTER]
2*cc02d7e2SAndroid Build Coastguard Workerignore=
3*cc02d7e2SAndroid Build Coastguard Worker	src/python/grpcio_tests/tests/unit/beta,
4*cc02d7e2SAndroid Build Coastguard Worker	src/python/grpcio_tests/tests/unit/framework,
5*cc02d7e2SAndroid Build Coastguard Worker	src/python/grpcio_tests/tests/unit/framework/common,
6*cc02d7e2SAndroid Build Coastguard Worker	src/python/grpcio_tests/tests/unit/framework/foundation,
7*cc02d7e2SAndroid Build Coastguard Worker
8*cc02d7e2SAndroid Build Coastguard Worker[VARIABLES]
9*cc02d7e2SAndroid Build Coastguard Worker
10*cc02d7e2SAndroid Build Coastguard Worker# TODO(https://github.com/PyCQA/pylint/issues/1345): How does the inspection
11*cc02d7e2SAndroid Build Coastguard Worker# not include "unused_" and "ignored_" by default?
12*cc02d7e2SAndroid Build Coastguard Workerdummy-variables-rgx=^ignored_|^unused_
13*cc02d7e2SAndroid Build Coastguard Worker
14*cc02d7e2SAndroid Build Coastguard Worker[DESIGN]
15*cc02d7e2SAndroid Build Coastguard Worker
16*cc02d7e2SAndroid Build Coastguard Worker# NOTE(nathaniel): Not particularly attached to this value; it just seems to
17*cc02d7e2SAndroid Build Coastguard Worker# be what works for us at the moment (excepting the dead-code-walking Beta
18*cc02d7e2SAndroid Build Coastguard Worker# API).
19*cc02d7e2SAndroid Build Coastguard Workermax-args=6
20*cc02d7e2SAndroid Build Coastguard Worker
21*cc02d7e2SAndroid Build Coastguard Worker[MISCELLANEOUS]
22*cc02d7e2SAndroid Build Coastguard Worker
23*cc02d7e2SAndroid Build Coastguard Worker# NOTE(nathaniel): We are big fans of "TODO(<issue link>): " and
24*cc02d7e2SAndroid Build Coastguard Worker# "NOTE(<username or issue link>): ". We do not allow "TODO:",
25*cc02d7e2SAndroid Build Coastguard Worker# "TODO(<username>):", "FIXME:", or anything else.
26*cc02d7e2SAndroid Build Coastguard Workernotes=FIXME,XXX
27*cc02d7e2SAndroid Build Coastguard Worker
28*cc02d7e2SAndroid Build Coastguard Worker[MESSAGES CONTROL]
29*cc02d7e2SAndroid Build Coastguard Worker
30*cc02d7e2SAndroid Build Coastguard Workerextension-pkg-whitelist=grpc._cython.cygrpc
31*cc02d7e2SAndroid Build Coastguard Worker
32*cc02d7e2SAndroid Build Coastguard Workerdisable=
33*cc02d7e2SAndroid Build Coastguard Worker	# These suppressions are specific to tests:
34*cc02d7e2SAndroid Build Coastguard Worker	#
35*cc02d7e2SAndroid Build Coastguard Worker	# TODO(https://github.com/grpc/grpc/issues/261): investigate
36*cc02d7e2SAndroid Build Coastguard Worker	# each of the following one by one and consider eliminating
37*cc02d7e2SAndroid Build Coastguard Worker	# the suppression category.
38*cc02d7e2SAndroid Build Coastguard Worker	# Eventually, the hope is to eliminate the .pylintrc-tests
39*cc02d7e2SAndroid Build Coastguard Worker	# altogether and rely on .pylintrc for everything.
40*cc02d7e2SAndroid Build Coastguard Worker	pointless-statement,
41*cc02d7e2SAndroid Build Coastguard Worker	no-member,
42*cc02d7e2SAndroid Build Coastguard Worker	no-self-use,
43*cc02d7e2SAndroid Build Coastguard Worker	attribute-defined-outside-init,
44*cc02d7e2SAndroid Build Coastguard Worker	unused-argument,
45*cc02d7e2SAndroid Build Coastguard Worker	unused-variable,
46*cc02d7e2SAndroid Build Coastguard Worker	unused-import,
47*cc02d7e2SAndroid Build Coastguard Worker	redefined-builtin,
48*cc02d7e2SAndroid Build Coastguard Worker	too-many-public-methods,
49*cc02d7e2SAndroid Build Coastguard Worker	too-many-locals,
50*cc02d7e2SAndroid Build Coastguard Worker	redefined-variable-type,
51*cc02d7e2SAndroid Build Coastguard Worker	redefined-outer-name,
52*cc02d7e2SAndroid Build Coastguard Worker	ungrouped-imports,
53*cc02d7e2SAndroid Build Coastguard Worker	too-many-branches,
54*cc02d7e2SAndroid Build Coastguard Worker	too-many-arguments,
55*cc02d7e2SAndroid Build Coastguard Worker	too-many-format-args,
56*cc02d7e2SAndroid Build Coastguard Worker	too-many-return-statements,
57*cc02d7e2SAndroid Build Coastguard Worker	too-many-statements,
58*cc02d7e2SAndroid Build Coastguard Worker	line-too-long,
59*cc02d7e2SAndroid Build Coastguard Worker	wrong-import-position,
60*cc02d7e2SAndroid Build Coastguard Worker	wrong-import-order,
61*cc02d7e2SAndroid Build Coastguard Worker	# -- END OF TEST-SPECIFIC SUPPRESSIONS --
62*cc02d7e2SAndroid Build Coastguard Worker
63*cc02d7e2SAndroid Build Coastguard Worker
64*cc02d7e2SAndroid Build Coastguard Worker	# TODO(https://github.com/PyCQA/pylint/issues/59#issuecomment-283774279):
65*cc02d7e2SAndroid Build Coastguard Worker	# Enable cyclic-import after a 1.7-or-later pylint release that
66*cc02d7e2SAndroid Build Coastguard Worker	# recognizes our disable=cyclic-import suppressions.
67*cc02d7e2SAndroid Build Coastguard Worker	cyclic-import,
68*cc02d7e2SAndroid Build Coastguard Worker	# TODO(https://github.com/grpc/grpc/issues/8622): Enable this after the
69*cc02d7e2SAndroid Build Coastguard Worker	# Beta API is removed.
70*cc02d7e2SAndroid Build Coastguard Worker	duplicate-code,
71*cc02d7e2SAndroid Build Coastguard Worker	# TODO(https://github.com/grpc/grpc/issues/261): Doesn't seem to
72*cc02d7e2SAndroid Build Coastguard Worker	# understand enum and concurrent.futures; look into this later with the
73*cc02d7e2SAndroid Build Coastguard Worker	# latest pylint version.
74*cc02d7e2SAndroid Build Coastguard Worker	import-error,
75*cc02d7e2SAndroid Build Coastguard Worker	# TODO(https://github.com/grpc/grpc/issues/261): Enable this one.
76*cc02d7e2SAndroid Build Coastguard Worker	# Should take a little configuration but not much.
77*cc02d7e2SAndroid Build Coastguard Worker	invalid-name,
78*cc02d7e2SAndroid Build Coastguard Worker	# TODO(https://github.com/grpc/grpc/issues/261): This doesn't seem to
79*cc02d7e2SAndroid Build Coastguard Worker	# work for now? Try with a later pylint?
80*cc02d7e2SAndroid Build Coastguard Worker	locally-disabled,
81*cc02d7e2SAndroid Build Coastguard Worker	# NOTE(nathaniel): What even is this? *Enabling* an inspection results
82*cc02d7e2SAndroid Build Coastguard Worker	# in a warning? How does that encourage more analysis and coverage?
83*cc02d7e2SAndroid Build Coastguard Worker	locally-enabled,
84*cc02d7e2SAndroid Build Coastguard Worker	# NOTE(nathaniel): We don't write doc strings for most private code
85*cc02d7e2SAndroid Build Coastguard Worker	# elements.
86*cc02d7e2SAndroid Build Coastguard Worker	missing-docstring,
87*cc02d7e2SAndroid Build Coastguard Worker	# NOTE(nathaniel): In numeric comparisons it is better to have the
88*cc02d7e2SAndroid Build Coastguard Worker	# lesser (or lesser-or-equal-to) quantity on the left when the
89*cc02d7e2SAndroid Build Coastguard Worker	# expression is true than it is to worry about which is an identifier
90*cc02d7e2SAndroid Build Coastguard Worker	# and which a literal value.
91*cc02d7e2SAndroid Build Coastguard Worker	misplaced-comparison-constant,
92*cc02d7e2SAndroid Build Coastguard Worker	# NOTE(nathaniel): Our completely abstract interface classes don't have
93*cc02d7e2SAndroid Build Coastguard Worker	# constructors.
94*cc02d7e2SAndroid Build Coastguard Worker	no-init,
95*cc02d7e2SAndroid Build Coastguard Worker	# TODO(https://github.com/grpc/grpc/issues/261): Doesn't yet play
96*cc02d7e2SAndroid Build Coastguard Worker	# nicely with some of our code being implemented in Cython. Maybe in a
97*cc02d7e2SAndroid Build Coastguard Worker	# later version?
98*cc02d7e2SAndroid Build Coastguard Worker	no-name-in-module,
99*cc02d7e2SAndroid Build Coastguard Worker	# TODO(https://github.com/grpc/grpc/issues/261): Suppress these where
100*cc02d7e2SAndroid Build Coastguard Worker	# the odd shape of the authentication portion of the API forces them on
101*cc02d7e2SAndroid Build Coastguard Worker	# us and enable everywhere else.
102*cc02d7e2SAndroid Build Coastguard Worker	protected-access,
103*cc02d7e2SAndroid Build Coastguard Worker	# NOTE(nathaniel): Pylint and I will probably never agree on this.
104*cc02d7e2SAndroid Build Coastguard Worker	too-few-public-methods,
105*cc02d7e2SAndroid Build Coastguard Worker	# NOTE(nathaniel): Pylint and I wil probably never agree on this for
106*cc02d7e2SAndroid Build Coastguard Worker	# private classes. For public classes maybe?
107*cc02d7e2SAndroid Build Coastguard Worker	too-many-instance-attributes,
108*cc02d7e2SAndroid Build Coastguard Worker	# NOTE(nathaniel): Some of our modules have a lot of lines... of
109*cc02d7e2SAndroid Build Coastguard Worker	# specification and documentation. Maybe if this were
110*cc02d7e2SAndroid Build Coastguard Worker	# lines-of-code-based we would use it.
111*cc02d7e2SAndroid Build Coastguard Worker	too-many-lines,
112*cc02d7e2SAndroid Build Coastguard Worker	# TODO(https://github.com/grpc/grpc/issues/261): Maybe we could have
113*cc02d7e2SAndroid Build Coastguard Worker	# this one if we extracted just a few more helper functions...
114*cc02d7e2SAndroid Build Coastguard Worker	too-many-nested-blocks,
115*cc02d7e2SAndroid Build Coastguard Worker	# TODO(https://github.com/grpc/grpc/issues/261): Disable unnecessary
116*cc02d7e2SAndroid Build Coastguard Worker	# super-init requirement for abstract class implementations for now.
117*cc02d7e2SAndroid Build Coastguard Worker	super-init-not-called,
118*cc02d7e2SAndroid Build Coastguard Worker	# NOTE(nathaniel): A single statement that always returns program
119*cc02d7e2SAndroid Build Coastguard Worker	# control is better than two statements the first of which sometimes
120*cc02d7e2SAndroid Build Coastguard Worker	# returns program control and the second of which always returns
121*cc02d7e2SAndroid Build Coastguard Worker	# program control. Probably generally, but definitely in the cases of
122*cc02d7e2SAndroid Build Coastguard Worker	# if:/else: and for:/else:.
123*cc02d7e2SAndroid Build Coastguard Worker	useless-else-on-loop,
124*cc02d7e2SAndroid Build Coastguard Worker	no-else-return,
125*cc02d7e2SAndroid Build Coastguard Worker	# NOTE(lidiz): Python 3 make object inheritance default, but not PY2
126*cc02d7e2SAndroid Build Coastguard Worker	useless-object-inheritance,
127*cc02d7e2SAndroid Build Coastguard Worker	# NOTE(lidiz): the import order will be enforced by isort instead
128*cc02d7e2SAndroid Build Coastguard Worker	wrong-import-order,
129*cc02d7e2SAndroid Build Coastguard Worker	# TODO(https://github.com/PyCQA/pylint/issues/3882): Upgrade Pylint
130*cc02d7e2SAndroid Build Coastguard Worker	unsubscriptable-object,
131*cc02d7e2SAndroid Build Coastguard Worker  # NOTE(sergiitk): yapf compatibility, ref #25071
132*cc02d7e2SAndroid Build Coastguard Worker  bad-continuation,
133