1# Copyright (c) 2013 The Chromium OS Authors. All rights reserved.
2# Use of this source code is governed by a BSD-style license that can be
3# found in the LICENSE file.
4
5[MASTER]
6
7# Specify a configuration file.
8#rcfile=
9
10# Python code to execute, usually for sys.path manipulation such as
11# pygtk.require().
12#init-hook=
13
14# Profiled execution.
15#profile=no
16
17# Add <file or directory> to the black list. It should be a base name, not a
18# path. You may set this option multiple times.
19#ignore=CVS
20
21# Pickle collected data for later comparisons.
22#persistent=yes
23
24# List of plugins (as comma separated values of python modules names) to load,
25# usually to register additional checkers.
26#load-plugins=
27
28
29[MESSAGES CONTROL]
30
31# Disable the message, report, category or checker with the given id(s). You
32# can either give multiple identifier separated by comma (,) or put this option
33# multiple times (only on the command line, not in the configuration file where
34# it should appear only once).
35# C0103: Invalid name ""
36# C0111: Missing docstring
37# C0302: Too many lines in module (N)
38# C0321: More than one statement on a single line
39# E1103: Instance has no '*' member (but some types could not be inferred)
40# I0011: Locally disabling warning.
41# R0201: Method could be a function
42# R0902: Too many instance attributes (N/7)
43# R0903: Too few public methods (N/2)
44# R0911: Too many return statements (N/6)
45# R0912: Too many branches (N/12)
46# R0913: Too many arguments (N/5)
47# R0914: Too many local variables (N/15)
48# R0915: Too many statements (N/50)
49# W0122: Use of the exec statement
50# W0141: Used builtin function ''
51# W0142: Used * or ** magic
52# W0403: Relative import 'constants', should be 'chromite.cbuildbot.constants'
53# W0511: Used when a warning note as FIXME or XXX is detected.
54# W0703: Catching too general exception Exception.
55# R0904: Too many public methods
56# R0921: Abstract class not referenced.
57# R0922: Abstract class is only referenced N times.
58# CHANGE: actual disable string is in run_pylint since the rc file seems to
59# have trouble with disabling everything then enabling just one check.
60#disable=C0103,C0111,C0302,C0321,E1103,I0011,R0201,R0902,R0903,R0911,R0912,
61#R0913,R0914,R0915,W0122,W0141,W0142,W0403,W0511,W0703,R0904,R0921,R0922
62
63# Enable the message, report, category or checker with the given id(s). You can
64# either give multiple identifier separated by comma (,) or put this option
65# multiple times.
66#enable=W0611
67
68
69[REPORTS]
70
71# Set the output format. Available formats are text, parseable, colorized, msvs
72# (visual studio) and html
73#output-format=text
74
75# Include message's id in output
76# CHANGE: Include message ids in output.
77include-ids=yes
78
79# Put messages in a separate file for each module / package specified on the
80# command line instead of printing them on stdout. Reports (if any) will be
81# written in a file name "pylint_global.[txt|html]".
82#files-output=no
83
84# Tells whether to display a full report or only the messages
85# CHANGE: No report.
86reports=no
87
88# Python expression which should return a note less than 10 (10 is the highest
89# note). You have access to the variables errors warning, statement which
90# respectively contain the number of errors / warnings messages and the total
91# number of statements analyzed. This is used by the global evaluation report
92# (RP0004).
93# all_failures = error + warning + refactor + convention
94# evaluation = 10.0 - ((float(5 * all_failures) / statement) * 10)
95
96# Add a comment according to your evaluation note. This is used by the global
97# evaluation report (RP0004).
98#comment=no
99
100
101[MISCELLANEOUS]
102
103# List of note tags to take in consideration, separated by a comma.
104#notes=FIXME,XXX,TODO
105
106
107[FORMAT]
108
109# Maximum number of characters on a single line.
110#max-line-length=80
111
112# Maximum number of lines in a module
113#max-module-lines=1000
114
115# String used as indentation unit. This is usually "    " (4 spaces) or "\t" (1
116# tab).
117indent-string="    "
118
119
120[TYPECHECK]
121
122# Tells whether missing members accessed in mixin class should be ignored. A
123# mixin class is detected if its name ends with "mixin" (case insensitive).
124#ignore-mixin-members=yes
125
126# List of classes names for which member attributes should not be checked
127# (useful for classes with attributes dynamically set).
128#ignored-classes=SQLObject
129
130# When zope mode is activated, add a predefined set of Zope acquired attributes
131# to generated-members.
132#zope=no
133
134# List of members which are set dynamically and missed by pylint inference
135# system, and so shouldn't trigger E0201 when accessed.
136# CHANGE: Added 'AndRaise', 'AndReturn', 'InAnyOrder' and 'MultipleTimes'
137#         for pymox.
138# CHANGE: Added tempdir for @osutils.TempDirDecorator.
139generated-members=REQUEST,acl_users,aq_parent,AndRaise,AndReturn,
140                  InAnyOrder,MultipleTimes,tempdir
141
142
143[BASIC]
144
145# Required attributes for module, separated by a comma
146#required-attributes=
147
148# List of builtins function names that should not be used, separated by a comma
149#bad-functions=map,filter,apply,input
150
151# Regular expression which should only match correct module names
152#module-rgx=(([a-z_][a-z0-9_]*)|([A-Z][a-zA-Z0-9]+))$
153
154# Regular expression which should only match correct module level names
155#const-rgx=(([A-Z_][A-Z0-9_]*)|(__.*__))$
156
157# Regular expression which should only match correct class names
158#class-rgx=[A-Z_][a-zA-Z0-9]+$
159
160# Regular expression which should only match correct function names
161#
162# CHANGE: The ChromiumOS standard is different than PEP-8, so we need to
163# redefine this.
164#
165# Common exceptions to ChromiumOS standard:
166# - main: Standard for main function
167function-rgx=([A-Z_][a-zA-Z0-9]{2,30}|main)$
168
169# Regular expression which should only match correct method names
170#
171# CHANGE: The ChromiumOS standard is different than PEP-8, so we need to
172# redefine this. Here's what we allow:
173# - CamelCaps, starting with a capital letter.  No underscores in function
174#   names.  Can also have a "_" prefix (private method) or a "test" prefix
175#   (unit test).
176# - Methods that look like __xyz__, which are used to do things like
177#   __init__, __del__, etc.
178# - setUp, tearDown: For unit tests.
179method-rgx=((_|test)?[A-Z][a-zA-Z0-9]{2,30}|__[a-z]+__|setUp|tearDown)$
180
181# Regular expression which should only match correct instance attribute names
182#attr-rgx=[a-z_][a-z0-9_]{2,30}$
183
184# Regular expression which should only match correct argument names
185#argument-rgx=[a-z_][a-z0-9_]{2,30}$
186
187# Regular expression which should only match correct variable names
188#variable-rgx=[a-z_][a-z0-9_]{2,30}$
189
190# Regular expression which should only match correct list comprehension /
191# generator expression variable names
192#inlinevar-rgx=[A-Za-z_][A-Za-z0-9_]*$
193
194# Good variable names which should always be accepted, separated by a comma
195#good-names=i,j,k,ex,Run,_
196
197# Bad variable names which should always be refused, separated by a comma
198#bad-names=foo,bar,baz,toto,tutu,tata
199
200# Regular expression which should only match functions or classes name which do
201# not require a docstring
202#no-docstring-rgx=__.*__
203
204
205[SIMILARITIES]
206
207# Minimum lines number of a similarity.
208min-similarity-lines=8
209
210# Ignore comments when computing similarities.
211#ignore-comments=yes
212
213# Ignore docstrings when computing similarities.
214#ignore-docstrings=yes
215
216
217[VARIABLES]
218
219# Tells whether we should check for unused import in __init__ files.
220#init-import=no
221
222# A regular expression matching the beginning of the name of dummy variables
223# (i.e. not used).
224#dummy-variables-rgx=_|dummy
225
226# List of additional names supposed to be defined in builtins. Remember that
227# you should avoid to define new builtins when possible.
228#additional-builtins=
229
230
231[CLASSES]
232
233# List of interface methods to ignore, separated by a comma. This is used for
234# instance to not check methods defines in Zope's Interface base class.
235#ignore-iface-methods=isImplementedBy,deferred,extends,names,
236#namesAndDescriptions,queryDescriptionFor,getBases,getDescriptionFor,getDoc,
237#getName,getTaggedValue,getTaggedValueTags,isEqualOrExtendedBy,setTaggedValue,
238#isImplementedByInstancesOf,adaptWith,is_implemented_by
239
240# List of method names used to declare (i.e. assign) instance attributes.
241#defining-attr-methods=__init__,__new__,setUp
242
243
244[DESIGN]
245
246# Maximum number of arguments for function / method
247#max-args=5
248
249# Argument names that match this expression will be ignored. Default to name
250# with leading underscore
251#ignored-argument-names=_.*
252
253# Maximum number of locals for function / method body
254#max-locals=15
255
256# Maximum number of return / yield for function / method body
257#max-returns=6
258
259# Maximum number of branch for function / method body
260#max-branchs=12
261
262# Maximum number of statements in function / method body
263#max-statements=50
264
265# Maximum number of parents for a class (see R0901).
266max-parents=10
267
268# Maximum number of attributes for a class (see R0902).
269#max-attributes=7
270
271# Minimum number of public methods for a class (see R0903).
272#min-public-methods=2
273
274# Maximum number of public methods for a class (see R0904).
275#max-public-methods=20
276
277
278[IMPORTS]
279
280# Deprecated modules which should not be used, separated by a comma
281#deprecated-modules=regsub,string,TERMIOS,Bastion,rexec
282
283# Create a graph of every (i.e. internal and external) dependencies in the
284# given file (report RP0402 must not be disabled)
285#import-graph=
286
287# Create a graph of external dependencies in the given file (report RP0402 must
288# not be disabled)
289#ext-import-graph=
290
291# Create a graph of internal dependencies in the given file (report RP0402 must
292# not be disabled)
293#int-import-graph=
294