Home | History | Annotate | Download | only in grpc-grpc
      1 [VARIABLES]
      2 
      3 # TODO(https://github.com/PyCQA/pylint/issues/1345): How does the inspection
      4 # not include "unused_" and "ignored_" by default?
      5 dummy-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).
     12 max-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.
     19 notes=FIXME,XXX
     20 
     21 [MESSAGES CONTROL]
     22 
     23 extension-pkg-whitelist=grpc._cython.cygrpc
     24 
     25 disable=
     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