aboutsummaryrefslogtreecommitdiffhomepage
diff options
context:
space:
mode:
authorGravatar Nathaniel Manista <nathaniel@google.com>2017-06-24 21:16:53 +0000
committerGravatar Nathaniel Manista <nathaniel@google.com>2017-06-24 21:25:44 +0000
commit9104884a1903606831b15476b01ef9f87a89b29b (patch)
tree20ab10a3a2d3e509193b7e23a8d417c1bf9101cf
parent6613f601660e7cf58db2a5dd1e11556378955910 (diff)
Clean up and opinionate .pylintrc
-rw-r--r--.pylintrc68
1 files changed, 50 insertions, 18 deletions
diff --git a/.pylintrc b/.pylintrc
index 188b7d7058..8447821b4e 100644
--- a/.pylintrc
+++ b/.pylintrc
@@ -1,15 +1,18 @@
[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.
@@ -17,21 +20,50 @@ notes=FIXME,XXX
[MESSAGES CONTROL]
-#TODO: Enable missing-docstring
-#TODO: Enable too-few-public-methods
-#TODO: Enable no-init
-#TODO: Enable duplicate-code
-#TODO: Enable invalid-name
-#TODO: Enable locally-disabled
-#TODO: Enable protected-access
-#TODO: Enable no-name-in-module
-# 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.
-#TODO: Enable too-many-instance-attributes
-#TODO: Enable too-many-lines
-#TODO: Enable import-error
-#TODO: Enable useless-else-on-loop
-#TODO: Enable too-many-nested-blocks
-
-disable=missing-docstring,too-few-public-methods,no-init,duplicate-code,invalid-name,locally-disabled,protected-access,no-name-in-module,cyclic-import,too-many-instance-attributes,too-many-lines,import-error,useless-else-on-loop,too-many-nested-blocks
+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): We don't write doc strings for most private code
+ # elements.
+ missing-docstring,
+ # 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,
+ # NOTE(nathaniel): I have disputed the premise of this inspection from
+ # the beginning and will continue to do so until it goes away for good.
+ useless-else-on-loop,