Add in a helper that is useful for running pep8/pylint

This commit is contained in:
Joshua Harlow
2012-06-07 12:49:07 -07:00
parent 7f4fb74d06
commit 8acd6d3900
2 changed files with 95 additions and 0 deletions

53
checks.sh Executable file
View File

@@ -0,0 +1,53 @@
#!/bin/bash
set -u
function find_src {
files=`find bin cloudinit -type f | grep "py\$"`
echo $files
}
function run_pep8 {
echo "Running pep8 ..."
files=$(find_src)
ignores="E202,E501"
output_filename="pep8.log"
opts="--ignore=$ignores --repeat"
pep8 ${opts} ${files} 2>&1 > $output_filename
if [ "$?" -ne "0" ]; then
echo "Some badness was found!"
fi
echo "Check '$output_filename' for a full report."
}
function run_pylint {
echo "Running pylint ..."
opts="--rcfile=pylintrc --output-format=parseable"
files=$(find_src)
output_filename="pylint.log"
pylint ${opts} ${files} 2>&1 > $output_filename
if [ "$?" -eq "1" ]; then
# pylint --long-help
# * 0 if everything went fine
# * 1 if a fatal message was issued
# * 2 if an error message was issued
# * 4 if a warning message was issued
# * 8 if a refactor message was issued
# * 16 if a convention message was issued
# * 32 on usage error
echo "A fatal pylint error occurred!"
else
if [ "$?" -eq "0" ]; then
echo "Your code is perfect you code master!"
else
echo "You are not yet a code master."
grep -i "Your code" $output_filename
fi
fi
echo "Check '$output_filename' for a full report."
}
run_pep8
run_pylint

42
pylintrc Normal file
View File

@@ -0,0 +1,42 @@
# The format of this file isn't really documented; just use --generate-rcfile
[Master]
[Messages Control]
# http://pylint-messages.wikidot.com/all-codes
# NOTE(justinsb): We might want to have a 2nd strict pylintrc in future
# C0111: Don't require docstrings on every method
# R0912: Too many branches (huh)
# R0914: Too many local variables is odd.
# W0142: *args and **kwargs are fine.
# W0511: TODOs in code comments are fine.
# W0613: Unused argument '??' should be ok (they are useful sometimes to know intention of variable)
# W0622: Redefining id is fine.
disable=C0111,W0142,W0622,C0301,R0902,R0201,R0914,W0613,R0912,R0801
[Basic]
# Variable names can be 1 to 31 characters long, with lowercase and underscores
variable-rgx=[a-z_][a-z0-9_]{0,30}$
# Argument names can be 2 to 31 characters long, with lowercase and underscores
argument-rgx=[a-z_][a-z0-9_]{1,30}$
# Method names should be at least 3 characters long
# and be lowercased with underscores
method-rgx=([a-z_][a-z0-9_]{2,50}|setUp|tearDown)$
# Don't require docstrings on tests.
no-docstring-rgx=((__.*__)|([tT]est.*)|setUp|tearDown)$
[Design]
max-public-methods=100
min-public-methods=0
max-args=6
[Variables]
# List of additional names supposed to be defined in builtins. Remember that
# you should avoid to define new builtins when possible.