From a09d016342af404c42d8ffb0ec0ab6f39735f773 Mon Sep 17 00:00:00 2001 From: David James Date: Wed, 12 Dec 2012 19:45:11 -0800 Subject: Add PRESUBMIT hook for verifying pylint. TEST=Verify python files only pass checks if they're pylint clean. BUG=None Change-Id: I8df3c2f7fa181fd6d296472e8585938df1e9f193 Reviewed-on: https://gerrit.chromium.org/gerrit/39640 Commit-Ready: David James Reviewed-by: David James Tested-by: David James --- third_party/pylintrc | 289 +++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 289 insertions(+) create mode 100644 third_party/pylintrc (limited to 'third_party') diff --git a/third_party/pylintrc b/third_party/pylintrc new file mode 100644 index 000000000..a6874e3c3 --- /dev/null +++ b/third_party/pylintrc @@ -0,0 +1,289 @@ +# Copyright (c) 2011 The Chromium OS Authors. All rights reserved. +# Use of this source code is governed by a BSD-style license that can be +# found in the LICENSE file. + +[MASTER] + +# Specify a configuration file. +rcfile=../pylintrc + +# Python code to execute, usually for sys.path manipulation such as +# pygtk.require(). +#init-hook= + +# Profiled execution. +#profile=no + +# Add to the black list. It should be a base name, not a +# path. You may set this option multiple times. +#ignore=CVS + +# Pickle collected data for later comparisons. +#persistent=yes + +# List of plugins (as comma separated values of python modules names) to load, +# usually to register additional checkers. +#load-plugins= + + +[MESSAGES CONTROL] + +# Enable the message, report, category or checker with the given id(s). You can +# either give multiple identifier separated by comma (,) or put this option +# multiple times. +#enable= + +# Disable the message, report, category or checker with the given id(s). You +# can either give multiple identifier separated by comma (,) or put this option +# multiple times (only on the command line, not in the configuration file where +# it should appear only once). +# C0103: Invalid name "" +# C0111: Missing docstring +# C0301: Line too long. +# C0302: Too many lines in module (N) +# C0321: More than one statement on a single line +# E1103: Instance has no '*' member (but some types could not be inferred) +# I0011: Locally disabling warning. +# R0201: Method could be a function +# R0902: Too many instance attributes (N/7) +# R0903: Too few public methods (N/2) +# R0911: Too many return statements (N/6) +# R0912: Too many branches (N/12) +# R0913: Too many arguments (N/5) +# R0914: Too many local variables (N/15) +# R0915: Too many statements (N/50) +# W0122: Use of the exec statement +# W0102: Dangerous default value +# W0141: Used builtin function '' +# W0142: Used * or ** magic +# W0212: Access to protected member +# W0311: Bad indentation. +# W0312: Found indentation with tabs instead of spaces +# W0403: Relative import 'constants', should be 'chromite.buildbot.constants' +# W0511: Used when a warning note as FIXME or XXX is detected. +# W0622: Redefining built-in +# R0904: Too many public methods +# R0921: Abstract class not referenced. +disable=C0103,C0111,C0301,C0302,C0321,E1103,I0011,R0201,R0902,R0903,R0911,R0912,R0913,R0914,R0915,W0102,W0122,W0141,W0142,W0212,W0311,W0312,W0403,W0511,W0622,R0904,R0921 + + +[REPORTS] + +# Set the output format. Available formats are text, parseable, colorized, msvs +# (visual studio) and html +#output-format=text + +# Include message's id in output +# CHANGE: Include message ids in output. +include-ids=yes + +# Put messages in a separate file for each module / package specified on the +# command line instead of printing them on stdout. Reports (if any) will be +# written in a file name "pylint_global.[txt|html]". +#files-output=no + +# Tells whether to display a full report or only the messages +# CHANGE: No report. +reports=no + +# Python expression which should return a note less than 10 (10 is the highest +# note). You have access to the variables errors warning, statement which +# respectively contain the number of errors / warnings messages and the total +# number of statements analyzed. This is used by the global evaluation report +# (RP0004). +#evaluation=10.0 - ((float(5 * error + warning + refactor + convention) / statement) * 10) + +# Add a comment according to your evaluation note. This is used by the global +# evaluation report (RP0004). +#comment=no + + +[MISCELLANEOUS] + +# List of note tags to take in consideration, separated by a comma. +#notes=FIXME,XXX,TODO + + +[FORMAT] + +# Maximum number of characters on a single line. +#max-line-length=80 + +# Maximum number of lines in a module +#max-module-lines=1000 + +# String used as indentation unit. This is usually " " (4 spaces) or "\t" (1 +# tab). +# CHANGE: Use " " instead. +indent-string=' ' + + +[TYPECHECK] + +# Tells whether missing members accessed in mixin class should be ignored. A +# mixin class is detected if its name ends with "mixin" (case insensitive). +#ignore-mixin-members=yes + +# List of classes names for which member attributes should not be checked +# (useful for classes with attributes dynamically set). +#ignored-classes=SQLObject + +# When zope mode is activated, add a predefined set of Zope acquired attributes +# to generated-members. +#zope=no + +# List of members which are set dynamically and missed by pylint inference +# system, and so shouldn't trigger E0201 when accessed. +# CHANGE: Added 'AndReturn', 'InAnyOrder' and 'MultipleTimes' for pymox. +# CHANGE: Added tempdir for @osutils.TempDirDecorator. +generated-members=REQUEST,acl_users,aq_parent,AndReturn,InAnyOrder,MultipleTimes,tempdir + + +[BASIC] + +# Required attributes for module, separated by a comma +#required-attributes= + +# List of builtins function names that should not be used, separated by a comma +#bad-functions=map,filter,apply,input + +# Regular expression which should only match correct module names +#module-rgx=(([a-z_][a-z0-9_]*)|([A-Z][a-zA-Z0-9]+))$ + +# Regular expression which should only match correct module level names +#const-rgx=(([A-Z_][A-Z0-9_]*)|(__.*__))$ + +# Regular expression which should only match correct class names +#class-rgx=[A-Z_][a-zA-Z0-9]+$ + +# Regular expression which should only match correct function names +# +# CHANGE: The ChromiumOS standard is different than PEP-8, so we need to +# redefine this. +# +# Common exceptions to ChromiumOS standard: +# - main: Standard for main function +function-rgx=([A-Z_][a-zA-Z0-9]{2,30}|main)$ + +# Regular expression which should only match correct method names +# +# CHANGE: The ChromiumOS standard is different than PEP-8, so we need to +# redefine this. Here's what we allow: +# - CamelCaps, starting with a capital letter. No underscores in function +# names. Can also have a "_" prefix (private method) or a "test" prefix +# (unit test). +# - Methods that look like __xyz__, which are used to do things like +# __init__, __del__, etc. +# - setUp, tearDown: For unit tests. +method-rgx=((_|test)?[A-Z][a-zA-Z0-9]{2,30}|__[a-z]+__|setUp|tearDown)$ + +# Regular expression which should only match correct instance attribute names +#attr-rgx=[a-z_][a-z0-9_]{2,30}$ + +# Regular expression which should only match correct argument names +#argument-rgx=[a-z_][a-z0-9_]{2,30}$ + +# Regular expression which should only match correct variable names +#variable-rgx=[a-z_][a-z0-9_]{2,30}$ + +# Regular expression which should only match correct list comprehension / +# generator expression variable names +#inlinevar-rgx=[A-Za-z_][A-Za-z0-9_]*$ + +# Good variable names which should always be accepted, separated by a comma +#good-names=i,j,k,ex,Run,_ + +# Bad variable names which should always be refused, separated by a comma +#bad-names=foo,bar,baz,toto,tutu,tata + +# Regular expression which should only match functions or classes name which do +# not require a docstring +#no-docstring-rgx=__.*__ + + +[SIMILARITIES] + +# Minimum lines number of a similarity. +min-similarity-lines=8 + +# Ignore comments when computing similarities. +#ignore-comments=yes + +# Ignore docstrings when computing similarities. +#ignore-docstrings=yes + + +[VARIABLES] + +# Tells whether we should check for unused import in __init__ files. +#init-import=no + +# A regular expression matching the beginning of the name of dummy variables +# (i.e. not used). +#dummy-variables-rgx=_|dummy + +# List of additional names supposed to be defined in builtins. Remember that +# you should avoid to define new builtins when possible. +#additional-builtins= + + +[CLASSES] + +# List of interface methods to ignore, separated by a comma. This is used for +# instance to not check methods defines in Zope's Interface base class. +#ignore-iface-methods=isImplementedBy,deferred,extends,names,namesAndDescriptions,queryDescriptionFor,getBases,getDescriptionFor,getDoc,getName,getTaggedValue,getTaggedValueTags,isEqualOrExtendedBy,setTaggedValue,isImplementedByInstancesOf,adaptWith,is_implemented_by + +# List of method names used to declare (i.e. assign) instance attributes. +#defining-attr-methods=__init__,__new__,setUp + + +[DESIGN] + +# Maximum number of arguments for function / method +#max-args=5 + +# Argument names that match this expression will be ignored. Default to name +# with leading underscore +#ignored-argument-names=_.* + +# Maximum number of locals for function / method body +#max-locals=15 + +# Maximum number of return / yield for function / method body +#max-returns=6 + +# Maximum number of branch for function / method body +#max-branchs=12 + +# Maximum number of statements in function / method body +#max-statements=50 + +# Maximum number of parents for a class (see R0901). +#max-parents=7 + +# Maximum number of attributes for a class (see R0902). +#max-attributes=7 + +# Minimum number of public methods for a class (see R0903). +#min-public-methods=2 + +# Maximum number of public methods for a class (see R0904). +#max-public-methods=20 + + +[IMPORTS] + +# Deprecated modules which should not be used, separated by a comma +#deprecated-modules=regsub,string,TERMIOS,Bastion,rexec + +# Create a graph of every (i.e. internal and external) dependencies in the +# given file (report RP0402 must not be disabled) +#import-graph= + +# Create a graph of external dependencies in the given file (report RP0402 must +# not be disabled) +#ext-import-graph= + +# Create a graph of internal dependencies in the given file (report RP0402 must +# not be disabled) +#int-import-graph= -- cgit v1.2.3