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