blob: 1f01cfa1d04f36a59d0e7b64af0ab6f225acb87c [file] [log] [blame]
Jon Wayne Parrott377f2932016-10-04 10:20:36 -07001[MASTER]
2# Add files or directories to the blacklist. They should be base names, not
3# paths.
4ignore=CVS,.git,.cache,.tox,.nox
5
6# List of plugins (as comma separated values of python modules names) to load,
7# usually to register additional checkers.
8# DEFAULT: load-plugins=
9# RATIONALE: We want to make sure our docstrings match the objects
10# they document.
11load-plugins=pylint.extensions.check_docs
12
13[MESSAGES CONTROL]
14# Disable the message, report, category or checker with the given id(s). You
15# can either give multiple identifiers separated by comma (,) or put this
16# option multiple times (only on the command line, not in the configuration
17# file where it should appear only once).You can also use "--disable=all" to
18# disable everything first and then reenable specific checks. For example, if
19# you want to run only the similarities checker, you can use "--disable=all
20# --enable=similarities". If you want to run only the classes checker, but have
21# no Warning level messages displayed, use"--disable=all --enable=classes
22# --disable=W"
23#
24# RATIONALE:
25# - maybe-no-member: bi-modal functions confuse pylint type inference.
26# - no-member: indirections in protobuf-generated code
27# - protected-access: helpers use '_foo' of classes from generated code.
28# - similarities: 'Bucket' and 'Blob' define 'metageneration' and 'owner' with
29# identical implementation but different docstrings.
30# - star-args: standard Python idioms for varargs:
31# ancestor = Query().filter(*order_props)
32# - redefined-variable-type: This error is overzealous and complains at e.g.
33# if some_prop:
34# return int(value)
35# else:
36# return float(value)
37# - import-error: imports are checked via tests.
38# - wrong-import-position: This error is overzealous. It assumes imports are
39# completed whenever something non-trivial is
40# defined, e.g.
41# try:
42# from foo import Bar
43# except ImportError:
44# class Bar(object):
45# """Hi everyone"""
46# and thus causes subsequent imports to be
47# diagnosed as out-of-order.
48# - no-name-in-module: Error gives a lot of false positives for names which
49# are defined dynamically. Also, any truly missing names
50# will be detected by our 100% code coverage.
51# - locally-disabled: Allow us to make exceptions in edge cases, notably where
52# pylint doesn't recognize inherited properties and methods
53# and gives unused-argument errors.
54# TEMPORARILY DISABLE AND SHOULD BE REMOVED:
55# - fixme: disabled until 1.0
56#
57disable =
58 import-star-module-level,
59 old-octal-literal,
60 oct-method,
61 print-statement,
62 unpacking-in-except,
63 parameter-unpacking,
64 backtick,
65 old-raise-syntax,
66 old-ne-operator,
67 long-suffix,
68 dict-view-method,
69 dict-iter-method,
70 metaclass-assignment,
71 next-method-called,
72 raising-string,
73 indexing-exception,
74 raw_input-builtin,
75 long-builtin,
76 file-builtin,
77 execfile-builtin,
78 coerce-builtin,
79 cmp-builtin,
80 buffer-builtin,
81 basestring-builtin,
82 apply-builtin,
83 filter-builtin-not-iterating,
84 using-cmp-argument,
85 useless-suppression,
86 range-builtin-not-iterating,
87 suppressed-message,
88 no-absolute-import,
89 old-division,
90 cmp-method,
91 reload-builtin,
92 zip-builtin-not-iterating,
93 intern-builtin,
94 unichr-builtin,
95 reduce-builtin,
96 standarderror-builtin,
97 unicode-builtin,
98 xrange-builtin,
99 coerce-method,
100 delslice-method,
101 getslice-method,
102 setslice-method,
103 input-builtin,
104 round-builtin,
105 hex-method,
106 nonzero-method,
107 map-builtin-not-iterating,
108 maybe-no-member,
109 no-member,
110 protected-access,
111 similarities,
112 star-args,
113 redefined-variable-type,
114 import-error,
115 wrong-import-position,
116 no-name-in-module,
117 locally-disabled,
Jon Wayne Parrott01782462016-10-07 14:05:31 -0700118 locally-enabled,
Jon Wayne Parrott377f2932016-10-04 10:20:36 -0700119 fixme
120
121
122[REPORTS]
123# Tells whether to display a full report or only the messages
124# RATIONALE: noisy
125reports=no
126
127[BASIC]
128# Regular expression matching correct method names
129# DEFAULT: method-rgx=[a-z_][a-z0-9_]{2,30}$
130# RATIONALE: Some methods have longer names to be more descriptive or precise,
131# especially those that implemented wordy RFCs.
132method-rgx=[a-z_][a-z0-9_]{2,40}$
133
134# Regular expression matching correct function names
135# DEFAULT function-rgx=[a-z_][a-z0-9_]{2,30}$
136# RATIONALE: Some methods have longer names to be more descriptive or precise,
137# especially those that implemented wordy RFCs.
138function-rgx=[a-z_][a-z0-9_]{2,40}$
139
140[TYPECHECK]
141# List of module names for which member attributes should not be checked
142# (useful for modules/projects where namespaces are manipulated during runtime
143# and thus existing member attributes cannot be deduced by static analysis. It
144# supports qualified module names, as well as Unix pattern matching.
145# DEFAULT: ignored-modules=
146# RATIONALE: six aliases stuff for compatibility.
147# google.protobuf fixes up namespace package "late".
148ignored-modules = six, google.protobuf
149
150
151[DESIGN]
152# Minimum number of public methods for a class (see R0903).
153# DEFAULT: min-public-methods=2
154# RATIONALE: context mgrs may have *no* public methods
155min-public-methods=0
156
157# Maximum number of arguments for function / method
158# DEFAULT: max-args=5
159# RATIONALE: Many credentials classes take a lot of parameters.
160max-args = 10
161
162# Maximum number of attributes for a class (see R0902).
163# DEFAULT: max-attributes=7
164# RATIONALE: Many credentials need to track lots of properties.
165max-attributes=15