Imported Upstream version 1.18.0
[platform/upstream/grpc.git] / .pylintrc-tests
1 [MASTER]
2 ignore=
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,
7
8 [VARIABLES]
9
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_
13
14 [DESIGN]
15
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
18 # API).
19 max-args=6
20
21 [MISCELLANEOUS]
22
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.
26 notes=FIXME,XXX
27
28 [MESSAGES CONTROL]
29
30 extension-pkg-whitelist=grpc._cython.cygrpc
31
32 disable=
33         # These suppressions are specific to tests:
34         #
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.
40         pointless-statement,
41         no-member,
42         no-self-use,
43         attribute-defined-outside-init,
44         unused-argument,
45         unused-variable,
46         unused-import,
47         redefined-builtin,
48         too-many-public-methods,
49         too-many-locals,
50         redefined-variable-type,
51         redefined-outer-name,
52         ungrouped-imports,
53         too-many-branches,
54         too-many-arguments,
55         too-many-format-args,
56         too-many-return-statements,
57         too-many-statements,
58         line-too-long,
59         wrong-import-position,
60         wrong-import-order,
61         # -- END OF TEST-SPECIFIC SUPPRESSIONS --
62
63
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.
67         cyclic-import,
68         # TODO(https://github.com/grpc/grpc/issues/8622): Enable this after the
69         # Beta API is removed.
70         duplicate-code,
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.
74         import-error,
75         # TODO(https://github.com/grpc/grpc/issues/261): Enable this one.
76         # Should take a little configuration but not much.
77         invalid-name,
78         # TODO(https://github.com/grpc/grpc/issues/261): This doesn't seem to
79         # work for now? Try with a later pylint?
80         locally-disabled,
81         # NOTE(nathaniel): What even is this? *Enabling* an inspection results
82         # in a warning? How does that encourage more analysis and coverage?
83         locally-enabled,
84         # NOTE(nathaniel): We don't write doc strings for most private code
85         # elements.
86         missing-docstring,
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
93         # constructors.
94         no-init,
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
97         # later version?
98         no-name-in-module,
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.
102         protected-access,
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.
111         too-many-lines,
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,
124         no-else-return,
125         # NOTE(lidiz): Python 3 make object inheritance default, but not PY2
126         useless-object-inheritance,