1# lint Python modules using external checkers. 2# 3# This is the main checker controling the other ones and the reports 4# generation. It is itself both a raw checker and an astng checker in order 5# to: 6# * handle message activation / deactivation at the module level 7# * handle some basic but necessary stats'data (number of classes, methods...) 8# 9# This checker also defines the following reports: 10# * R0001: Total errors / warnings 11# * R0002: % errors / warnings by module 12# * R0003: Messages 13# * R0004: Global evaluation 14# 15[MASTER] 16# Add <file or directory> to the black list. It should be a base name, not a 17# path. You may set this option multiple times. 18ignore=CVS 19 20# Pickle collected data for later comparisons. 21persistent=yes 22 23# Set the cache size for astng objects. 24cache-size=500 25 26 27 28[REPORTS] 29# Tells wether to display a full report or only the messages 30reports=yes 31 32# Use HTML as output format instead of text 33html=no 34 35# Use a parseable text output format, so your favorite text editor will be able 36# to jump to the line corresponding to a message. 37parseable=no 38 39# Colorizes text output using ansi escape codes 40color=no 41 42# Put messages in a separate file for each module / package specified on the 43# command line instead of printing them on stdout. Reports (if any) will be 44# written in a file name "pylint_global.[txt|html]". 45files-output=no 46 47# Python expression which should return a note less than 10 (10 is the highest 48# note).You have access to the variables errors warning, statement which 49# respectivly contain the number of errors / warnings messages and the total 50# number of statements analyzed. This is used by the global evaluation report 51# (R0004). 52evaluation=10.0 - ((float(5 * error + warning + refactor + convention) / statement) * 10) 53 54# Add a comment according to your evaluation note. This is used by the global 55# evaluation report (R0004). 56comment=no 57 58# Include message's id in output 59include-ids=yes 60 61 62 63# checks for 64# * unused variables / imports 65# * undefined variables 66# * redefinition of variable from builtins or from an outer scope 67# * use of variable before assigment 68# 69[VARIABLES] 70# Enable / disable this checker 71enable-variables=yes 72 73# Tells wether we should check for unused import in __init__ files. 74init-import=no 75 76# List of variable names used for dummy variables (i.e. not used). 77dummy-variables=_,_1,_2,_3,_4,_5,dummy 78 79 80 81# checks for : 82# * doc strings 83# * modules / classes / functions / methods / arguments / variables name 84# * number of arguments, local variables, branchs, returns and statements in 85# functions, methods 86# * required module attributes 87# * dangerous default values as arguments 88# * redefinition of function / method / class 89# * uses of the global statement 90# 91# This checker also defines the following reports: 92# * R0101: Statistics by type 93# 94[BASIC] 95# Enable / disable this checker 96enable-basic=yes 97 98# Required attributes for module, separated by a comma 99required-attributes= 100 101# Regular expression which should only match functions or classes name which do 102# not require a docstring 103no-docstring-rgx=.* 104 105# Minimal length for module / class / function / method / argument / variable 106# names 107min-name-length=1 108 109# Regular expression which should only match correct module names 110module-rgx=(([a-z_][a-z0-9_]*)|([A-Z][a-zA-Z0-9]+))$ 111 112# Regular expression which should only match correct class names 113class-rgx=[A-Z_][a-zA-Z0-9]+$ 114 115# Regular expression which should only match correct function names 116function-rgx=[a-z_][A-Za-z0-9_]*$ 117 118# Regular expression which should only match correct method names 119method-rgx=[a-z_][A-Za-z0-9_]*$ 120 121# Regular expression which should only match correct argument names 122argument-rgx=[a-z_][A-Za-z0-9_]*$ 123 124# Regular expression which should only match correct variable names 125variable-rgx=[a-z_][A-Za-z0-9_]*$ 126 127# Good variable names which should always be accepted, separated by a comma 128good-names=i,j,k,ex,Run,_ 129 130# Bad variable names which should always be refused, separated by a comma 131bad-names=foo,bar,baz,toto,tutu,tata 132 133# List of builtins function names that should not be used, separated by a comma 134bad-functions=apply,input 135 136 137 138# checks for sign of poor/misdesign: 139# * number of methods, attributes, local variables... 140# * size, complexity of functions, methods 141# 142[DESIGN] 143# Enable / disable this checker 144enable-design=yes 145 146# Maximum number of arguments for function / method 147max-args=15 148 149# Maximum number of locals for function / method body 150max-locals=15 151 152# Maximum number of return / yield for function / method body 153max-returns=6 154 155# Maximum number of branch for function / method body 156max-branchs=12 157 158# Maximum number of statements in function / method body 159max-statements=50 160 161# Maximum number of parents for a class (see R0901). 162max-parents=7 163 164# Maximum number of attributes for a class (see R0902). 165max-attributes=7 166 167# Minimum number of public methods for a class (see R0903). 168min-public-methods=2 169 170# Maximum number of public methods for a class (see R0904). 171max-public-methods=20 172 173 174 175# checks for : 176# * methods without self as first argument 177# * overriden methods signature 178# * access only to existant members via self 179# * attributes not defined in the __init__ method 180# * supported interfaces implementation 181# * unreachable code 182# 183[CLASSES] 184# Enable / disable this checker 185enable-classes=yes 186 187# List of interface methods to ignore, separated by a comma. This is used for 188# instance to not check methods defines in Zope's Interface base class. 189ignore-iface-methods=isImplementedBy,deferred,extends,names,namesAndDescriptions,queryDescriptionFor,getBases,getDescriptionFor,getDoc,getName,getTaggedValue,getTaggedValueTags,isEqualOrExtendedBy,setTaggedValue,isImplementedByInstancesOf,adaptWith,is_implemented_by 190 191# Tells wether missing members accessed in mixin class should be ignored. A 192# mixin class is detected if its name ends with "mixin" (case insensitive). 193ignore-mixin-members=yes 194 195 196 197# checks for 198# * external modules dependencies 199# * relative / wildcard imports 200# * cyclic imports 201# * uses of deprecated modules 202# 203# This checker also defines the following reports: 204# * R0401: External dependencies 205# * R0402: Modules dependencies graph 206# 207[IMPORTS] 208# Enable / disable this checker 209enable-imports=no 210 211# Deprecated modules which should not be used, separated by a comma 212deprecated-modules=regsub,string,TERMIOS,Bastion,rexec 213 214# Create a graph of every (i.e. internal and external) dependencies in the given 215# file (report R0402 must not be disabled) 216import-graph= 217 218# Create a graph of external dependencies in the given file (report R0402 must 219# not be disabled) 220ext-import-graph= 221 222# Create a graph of internal dependencies in the given file (report R0402 must 223# not be disabled) 224int-import-graph= 225 226 227 228# checks for 229# * excepts without exception filter 230# * string exceptions 231# 232[EXCEPTIONS] 233# Enable / disable this checker 234enable-exceptions=yes 235 236 237 238# checks for : 239# * unauthorized constructions 240# * strict indentation 241# * line length 242# * use of <> instead of != 243# 244[FORMAT] 245# Enable / disable this checker 246enable-format=no 247 248# Maximum number of characters on a single line. 249max-line-length=80 250 251# Maximum number of lines in a module 252max-module-lines=1000 253 254# String used as indentation unit. This is usually " " (4 spaces) or "\t" (1 tab). 255indent-string=' ' 256 257 258 259# does not check anything but gives some raw metrics : 260# * total number of lines 261# * total number of code lines 262# * total number of docstring lines 263# * total number of comments lines 264# * total number of empty lines 265# 266# This checker also defines the following reports: 267# * R0701: Raw metrics 268# 269[METRICS] 270# Enable / disable this checker 271enable-metrics=yes 272 273 274 275# checks for: 276# * warning notes in the code like FIXME, XXX 277# * PEP 263: source code with non ascii character but no encoding declaration 278# 279[MISCELLANEOUS] 280# Enable / disable this checker 281enable-miscellaneous=yes 282 283# List of note tags to take in consideration, separated by a comma. Default to 284# FIXME, XXX, TODO 285notes=FIXME,XXX,TODO 286 287 288 289# checks for similarities and duplicated code. This computation may be 290# memory / CPU intensive, so you should disable it if you experiments some 291# problems. 292# 293# This checker also defines the following reports: 294# * R0801: Duplication 295# 296[SIMILARITIES] 297# Enable / disable this checker 298enable-similarities=yes 299 300# Minimum lines number of a similarity. 301min-similarity-lines=4 302 303# Ignore comments when computing similarities. 304ignore-comments=yes 305 306 307 308