3 src/python/grpcio_tests/tests/unit/beta,
4 src/python/grpcio_tests/tests/unit/framework,
5 src/python/grpcio_tests/tests/unit/framework/common,
6 src/python/grpcio_tests/tests/unit/framework/foundation,
10 # TODO(https://github.com/PyCQA/pylint/issues/1345): How does the inspection
11 # not include "unused_" and "ignored_" by default?
12 dummy-variables-rgx=^ignored_|^unused_
16 # NOTE(nathaniel): Not particularly attached to this value; it just seems to
17 # be what works for us at the moment (excepting the dead-code-walking Beta
23 # NOTE(nathaniel): We are big fans of "TODO(<issue link>): " and
24 # "NOTE(<username or issue link>): ". We do not allow "TODO:",
25 # "TODO(<username>):", "FIXME:", or anything else.
30 extension-pkg-whitelist=grpc._cython.cygrpc
33 # These suppressions are specific to tests:
35 # TODO(https://github.com/grpc/grpc/issues/261): investigate
36 # each of the following one by one and consider eliminating
37 # the suppression category.
38 # Eventually, the hope is to eliminate the .pylintrc-tests
39 # altogether and rely on .pylintrc for everything.
43 attribute-defined-outside-init,
48 too-many-public-methods,
50 redefined-variable-type,
56 too-many-return-statements,
59 wrong-import-position,
61 # -- END OF TEST-SPECIFIC SUPPRESSIONS --
64 # TODO(https://github.com/PyCQA/pylint/issues/59#issuecomment-283774279):
65 # Enable cyclic-import after a 1.7-or-later pylint release that
66 # recognizes our disable=cyclic-import suppressions.
68 # TODO(https://github.com/grpc/grpc/issues/8622): Enable this after the
69 # Beta API is removed.
71 # TODO(https://github.com/grpc/grpc/issues/261): Doesn't seem to
72 # understand enum and concurrent.futures; look into this later with the
73 # latest pylint version.
75 # TODO(https://github.com/grpc/grpc/issues/261): Enable this one.
76 # Should take a little configuration but not much.
78 # TODO(https://github.com/grpc/grpc/issues/261): This doesn't seem to
79 # work for now? Try with a later pylint?
81 # NOTE(nathaniel): What even is this? *Enabling* an inspection results
82 # in a warning? How does that encourage more analysis and coverage?
84 # NOTE(nathaniel): We don't write doc strings for most private code
87 # NOTE(nathaniel): In numeric comparisons it is better to have the
88 # lesser (or lesser-or-equal-to) quantity on the left when the
89 # expression is true than it is to worry about which is an identifier
90 # and which a literal value.
91 misplaced-comparison-constant,
92 # NOTE(nathaniel): Our completely abstract interface classes don't have
95 # TODO(https://github.com/grpc/grpc/issues/261): Doesn't yet play
96 # nicely with some of our code being implemented in Cython. Maybe in a
99 # TODO(https://github.com/grpc/grpc/issues/261): Suppress these where
100 # the odd shape of the authentication portion of the API forces them on
101 # us and enable everywhere else.
103 # NOTE(nathaniel): Pylint and I will probably never agree on this.
104 too-few-public-methods,
105 # NOTE(nathaniel): Pylint and I wil probably never agree on this for
106 # private classes. For public classes maybe?
107 too-many-instance-attributes,
108 # NOTE(nathaniel): Some of our modules have a lot of lines... of
109 # specification and documentation. Maybe if this were
110 # lines-of-code-based we would use it.
112 # TODO(https://github.com/grpc/grpc/issues/261): Maybe we could have
113 # this one if we extracted just a few more helper functions...
114 too-many-nested-blocks,
115 # TODO(https://github.com/grpc/grpc/issues/261): Disable unnecessary
116 # super-init requirement for abstract class implementations for now.
117 super-init-not-called,
118 # NOTE(nathaniel): A single statement that always returns program
119 # control is better than two statements the first of which sometimes
120 # returns program control and the second of which always returns
121 # program control. Probably generally, but definitely in the cases of
122 # if:/else: and for:/else:.
123 useless-else-on-loop,
125 # NOTE(lidiz): Python 3 make object inheritance default, but not PY2
126 useless-object-inheritance,
127 # NOTE(sergiitk): yapf compatibility, ref #25071