diff --git a/.zuul.yaml b/.zuul.yaml index 9836f128..35f2dc4a 100644 --- a/.zuul.yaml +++ b/.zuul.yaml @@ -6,11 +6,11 @@ jobs: - build-openstack-api-ref - build-openstack-releasenotes - - openstack-tox-pep8: - voting: false + - openstack-tox-pep8 - openstack-tox-linters gate: jobs: - build-openstack-api-ref - build-openstack-releasenotes + - openstack-tox-pep8 - openstack-tox-linters diff --git a/tox.ini b/tox.ini index 0943253c..46f34bee 100644 --- a/tox.ini +++ b/tox.ini @@ -1,5 +1,5 @@ [tox] -envlist = linters +envlist = linters,pep8 minversion = 2.3 skipsdist = True @@ -29,13 +29,94 @@ commands = -o -type f -name '*.yaml' \ -print0 | xargs -0 yamllint" +[flake8] +# The following are being suppressed for now +# E114 indentation is not a multiple of four (comment) +# E116 unexpected indentation (comment) +# E121 continuation line under-indented for hanging indent +# E122 continuation line missing indentation or outdented +# E123 closing bracket does not match indentation of opening bracket's line +# E124 closing bracket does not match visual indentation +# E125 continuation line with same indent as next logical line +# E126 continuation line over-indented for hanging indent +# E127 continuation line over-indented for visual indent +# E128 continuation line under-indented for visual indent +# E129 visually indented line with same indent as next logical line +# E131 continuation line unaligned for hanging indent +# E201 whitespace after '(' +# E228 missing whitespace around modulo operator +# E231 missing whitespace after ',' +# E241 multiple spaces after ':' +# E251 unexpected spaces around keyword / parameter equals +# E265 block comment should start with '#' +# E271 multiple spaces after keyword +# E302 expected 2 blank lines, found 1 +# E303 too many blank lines +# E305 expected 2 blank lines after class or function definition, found 1 +# E402 module level import not at top of file +# E713 test for membership should be 'not in' +# E714 test for object identity should be 'is not' +# E722 do not use bare except' +# E731 do not assign a lambda expression, use a def +# E999 SyntaxError: invalid syntax (this is likely python3) +# - hacking codes - +# H102: license header not found +# H104: File contains nothing but comments +# H105: Don't use author tags +# H201: no 'except:' +# H231: Python 3.x incompatible 'except x,y:' construct +# H233: Python 3.x incompatible use of print operator +# H236: Python 3.x incompatible __metaclass__, use six.add_metaclass() +# H306: imports not in alphabetical order +# H401: docstring should not start with a space +# H403: multi line docstrings should end on a new line +# H404: multi line docstring should start without a leading new line +# H405: multi line docstring summary not separated with an empty line +# H501: Do not use locals() for string formatting +# - other warnings +# W291 trailing whitespace +# W292 no newline at end of file +# W391 blank line at end of file +# W503 line break before binary operator +# W601 .has_key() is deprecated, use 'in' +# - errors - +# F401 imported but unused +# F811 redefinition of unused '' from line +# F821 undefined name 'e' +# F841 local variable 'foo' is assigned to but never used +# - bugbear - +# B001 Do not use bare `except:`. Prefer `except Exception:`. If you're sure what you're doing, be explicit and write `except BaseException:`. +# B004 Using `hasattr(x, '__call__')` to test if `x` is callable is unreliable. +# B006 Do not use mutable data structures for argument defaults. (python3) +# B007 Loop control variable 'key' not used within the loop body. If this is intended, start the name with an underscore. +# B008 Do not perform calls in argument defaults. The call is performed only once at function definition time. +# B301 Python 3 does not include `.iter*` methods on dictionaries. +# B303 `__metaclass__` does nothing on Python 3. For Python 2 compatibility, use `six.add_metaclass`. +# B305 `.next()` is not a thing on Python 3. Use the `next()` builtin. For Python 2 compatibility, use `six.next()`. +# B306 `BaseException.message` has been deprecated as of Python 2.6 and is removed in Python 3. +ignore= E114,E116,E121,E122,E123,E124,E125,E126,E127,E128,E129,E131,E201,E228,E231,E241,E251,E265,E271, + E302,E303,E305,E402,E713,E714,E722,E731,E999, + H102,H104,H105,H106,H201,H231,H233,H236,H306,H401,H403,H404,H405,H501, + W291,W292,W391,W503,W601, + F401,F811,F821,F841, + B001,B004,B006,B007,B008,B301,B303,B305,B306 +# Enable checks which are off by default +# H106 Don’t put vim configuration in source files (off by default). SHOULD BE ENABLED. +# H203 Use assertIs(Not)None to check for None (off by default). +# H904 Delay string interpolations at logging calls (off by default). SHOULD BE ENABLED. +enable-extensions = H203 +max-line-length = 110 + + [testenv:pep8] usedevelop = False skip_install = True deps = - pep8 + hacking + flake8-bugbear + flake8 commands = - pep8 + flake8 [testenv:venv] commands = {posargs}