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