Merge "Enable pylint 1.4.5"
This commit is contained in:
commit
e864508815
82
.pylintrc
Normal file
82
.pylintrc
Normal file
@ -0,0 +1,82 @@
|
|||||||
|
# The format of this file isn't really documented; just use --generate-rcfile
|
||||||
|
[MASTER]
|
||||||
|
# Add <file or directory> to the black list. It should be a base name, not a
|
||||||
|
# path. You may set this option multiple times.
|
||||||
|
ignore=.git,tests
|
||||||
|
|
||||||
|
[MESSAGES CONTROL]
|
||||||
|
# NOTE: This list is copied from neutron, the options which do not need to be
|
||||||
|
# suppressed have been removed.
|
||||||
|
disable=
|
||||||
|
# "F" Fatal errors that prevent further processing
|
||||||
|
# "I" Informational noise
|
||||||
|
# "E" Error for important programming issues (likely bugs)
|
||||||
|
no-member,
|
||||||
|
# "W" Warnings for stylistic problems or minor programming issues
|
||||||
|
arguments-differ,
|
||||||
|
attribute-defined-outside-init,
|
||||||
|
broad-except,
|
||||||
|
fixme,
|
||||||
|
protected-access,
|
||||||
|
redefined-outer-name,
|
||||||
|
unused-argument,
|
||||||
|
useless-super-delegation,
|
||||||
|
# "C" Coding convention violations
|
||||||
|
bad-continuation,
|
||||||
|
invalid-name,
|
||||||
|
missing-docstring,
|
||||||
|
# "R" Refactor recommendations
|
||||||
|
no-self-use,
|
||||||
|
too-few-public-methods,
|
||||||
|
too-many-ancestors,
|
||||||
|
too-many-arguments,
|
||||||
|
too-many-branches,
|
||||||
|
too-many-instance-attributes,
|
||||||
|
too-many-lines,
|
||||||
|
too-many-locals,
|
||||||
|
too-many-public-methods,
|
||||||
|
too-many-return-statements,
|
||||||
|
too-many-statements
|
||||||
|
|
||||||
|
[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,}|setUp|tearDown)$
|
||||||
|
|
||||||
|
# Module names matching
|
||||||
|
module-rgx=(([a-z_][a-z0-9_]*)|([A-Z][a-zA-Z0-9]+))$
|
||||||
|
|
||||||
|
# Don't require docstrings on tests.
|
||||||
|
no-docstring-rgx=((__.*__)|([tT]est.*)|setUp|tearDown)$
|
||||||
|
|
||||||
|
[FORMAT]
|
||||||
|
# Maximum number of characters on a single line.
|
||||||
|
max-line-length=79
|
||||||
|
|
||||||
|
[VARIABLES]
|
||||||
|
# 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.
|
||||||
|
ignore-iface-methods=
|
||||||
|
|
||||||
|
[IMPORTS]
|
||||||
|
# Deprecated modules which should not be used, separated by a comma
|
||||||
|
deprecated-modules=
|
||||||
|
|
||||||
|
[TYPECHECK]
|
||||||
|
# List of module names for which member attributes should not be checked
|
||||||
|
ignored-modules=six.moves,_MovedItems
|
||||||
|
|
||||||
|
[REPORTS]
|
||||||
|
# Tells whether to display a full report or only the messages
|
||||||
|
reports=no
|
||||||
|
|
@ -156,7 +156,7 @@ def get_column_value(row, col):
|
|||||||
val = getattr(row, col)
|
val = getattr(row, col)
|
||||||
|
|
||||||
# Idl returns lists of Rows where ovs-vsctl returns lists of UUIDs
|
# Idl returns lists of Rows where ovs-vsctl returns lists of UUIDs
|
||||||
if isinstance(val, list) and len(val):
|
if isinstance(val, list) and val:
|
||||||
if isinstance(val[0], idl.Row):
|
if isinstance(val[0], idl.Row):
|
||||||
val = [v.uuid for v in val]
|
val = [v.uuid for v in val]
|
||||||
col_type = row._table.columns[col].type
|
col_type = row._table.columns[col].type
|
||||||
@ -205,7 +205,7 @@ def condition_match(row, condition):
|
|||||||
if isinstance(match, dict):
|
if isinstance(match, dict):
|
||||||
for key in match:
|
for key in match:
|
||||||
if op == '=':
|
if op == '=':
|
||||||
if (key not in val or match[key] != val[key]):
|
if key not in val or match[key] != val[key]:
|
||||||
matched = False
|
matched = False
|
||||||
break
|
break
|
||||||
elif op == '!=':
|
elif op == '!=':
|
||||||
|
@ -23,7 +23,6 @@ def _connection_to_manager_uri(conn_uri):
|
|||||||
if ':' in addr:
|
if ':' in addr:
|
||||||
ip, port = addr.split(':', 1)
|
ip, port = addr.split(':', 1)
|
||||||
return 'p%s:%s:%s' % (proto, port, ip)
|
return 'p%s:%s:%s' % (proto, port, ip)
|
||||||
else:
|
|
||||||
return 'p%s:%s' % (proto, addr)
|
return 'p%s:%s' % (proto, addr)
|
||||||
|
|
||||||
|
|
||||||
|
@ -10,6 +10,7 @@ sphinx>=1.6.2 # BSD
|
|||||||
oslosphinx>=4.7.0 # Apache-2.0
|
oslosphinx>=4.7.0 # Apache-2.0
|
||||||
oslotest>=1.10.0 # Apache-2.0
|
oslotest>=1.10.0 # Apache-2.0
|
||||||
os-testr>=0.8.0 # Apache-2.0
|
os-testr>=0.8.0 # Apache-2.0
|
||||||
|
pylint==1.4.5 # GPLv2
|
||||||
testrepository>=0.0.18 # Apache-2.0/BSD
|
testrepository>=0.0.18 # Apache-2.0/BSD
|
||||||
testscenarios>=0.4 # Apache-2.0/BSD
|
testscenarios>=0.4 # Apache-2.0/BSD
|
||||||
testtools>=1.4.0 # MIT
|
testtools>=1.4.0 # MIT
|
||||||
|
66
tools/coding-checks.sh
Executable file
66
tools/coding-checks.sh
Executable file
@ -0,0 +1,66 @@
|
|||||||
|
#!/bin/sh
|
||||||
|
# This script is copied from neutron and adapted for ovsdbapp.
|
||||||
|
set -eu
|
||||||
|
|
||||||
|
usage () {
|
||||||
|
echo "Usage: $0 [OPTION]..."
|
||||||
|
echo "Run ovsdbapp's coding check(s)"
|
||||||
|
echo ""
|
||||||
|
echo " -Y, --pylint [<basecommit>] Run pylint check on the entire ovsdbapp module or just files changed in basecommit (e.g. HEAD~1)"
|
||||||
|
echo " -h, --help Print this usage message"
|
||||||
|
echo
|
||||||
|
exit 0
|
||||||
|
}
|
||||||
|
|
||||||
|
join_args() {
|
||||||
|
if [ -z "$scriptargs" ]; then
|
||||||
|
scriptargs="$opt"
|
||||||
|
else
|
||||||
|
scriptargs="$scriptargs $opt"
|
||||||
|
fi
|
||||||
|
}
|
||||||
|
|
||||||
|
process_options () {
|
||||||
|
i=1
|
||||||
|
while [ $i -le $# ]; do
|
||||||
|
eval opt=\$$i
|
||||||
|
case $opt in
|
||||||
|
-h|--help) usage;;
|
||||||
|
-Y|--pylint) pylint=1;;
|
||||||
|
*) join_args;;
|
||||||
|
esac
|
||||||
|
i=$((i+1))
|
||||||
|
done
|
||||||
|
}
|
||||||
|
|
||||||
|
run_pylint () {
|
||||||
|
local target="${scriptargs:-all}"
|
||||||
|
|
||||||
|
if [ "$target" = "all" ]; then
|
||||||
|
files="ovsdbapp"
|
||||||
|
else
|
||||||
|
case "$target" in
|
||||||
|
*HEAD~[0-9]*) files=$(git diff --diff-filter=AM --name-only $target -- "*.py");;
|
||||||
|
*) echo "$target is an unrecognized basecommit"; exit 1;;
|
||||||
|
esac
|
||||||
|
fi
|
||||||
|
|
||||||
|
echo "Running pylint..."
|
||||||
|
echo "You can speed this up by running it on 'HEAD~[0-9]' (e.g. HEAD~1, this change only)..."
|
||||||
|
if [ -n "${files}" ]; then
|
||||||
|
pylint --rcfile=.pylintrc --output-format=colorized ${files}
|
||||||
|
else
|
||||||
|
echo "No python changes in this commit, pylint check not required."
|
||||||
|
exit 0
|
||||||
|
fi
|
||||||
|
}
|
||||||
|
|
||||||
|
scriptargs=
|
||||||
|
pylint=1
|
||||||
|
|
||||||
|
process_options $@
|
||||||
|
|
||||||
|
if [ $pylint -eq 1 ]; then
|
||||||
|
run_pylint
|
||||||
|
exit 0
|
||||||
|
fi
|
1
tox.ini
1
tox.ini
@ -16,6 +16,7 @@ commands = python setup.py testr --slowest --testr-args='{posargs}'
|
|||||||
|
|
||||||
[testenv:pep8]
|
[testenv:pep8]
|
||||||
commands = flake8 {posargs}
|
commands = flake8 {posargs}
|
||||||
|
{toxinidir}/tools/coding-checks.sh --pylint '{posargs}'
|
||||||
|
|
||||||
[testenv:venv]
|
[testenv:venv]
|
||||||
commands = {posargs}
|
commands = {posargs}
|
||||||
|
Loading…
Reference in New Issue
Block a user