Add in a helper that is useful for running pep8/pylint
This commit is contained in:
53
checks.sh
Executable file
53
checks.sh
Executable 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
42
pylintrc
Normal 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.
|
||||
Reference in New Issue
Block a user