Update hacking for Python3
The repo is Python 3 now, so update hacking to version 3.0 which supports Python 3. Update local hacking checks for new flake8. Remove hacking and friends from lower-constraints, they are not needed in installations. Change-Id: Ia4740a1dc343d7a4a303674d9377bc64f6df762b
This commit is contained in:
parent
869cac9def
commit
2c99ddc3ef
@ -7,8 +7,6 @@ doc8==0.6.0
|
|||||||
dogpile.cache==0.6.2
|
dogpile.cache==0.6.2
|
||||||
eventlet==0.20.0
|
eventlet==0.20.0
|
||||||
fixtures==3.0.0
|
fixtures==3.0.0
|
||||||
flake8==2.6.2
|
|
||||||
hacking==1.1.0
|
|
||||||
Jinja2==2.10
|
Jinja2==2.10
|
||||||
jsonschema==2.6.0
|
jsonschema==2.6.0
|
||||||
keystonemiddleware==4.18.0
|
keystonemiddleware==4.18.0
|
||||||
|
@ -26,12 +26,14 @@ import ast
|
|||||||
import re
|
import re
|
||||||
import six
|
import six
|
||||||
|
|
||||||
|
from hacking import core
|
||||||
|
|
||||||
oslo_namespace_imports_dot = re.compile(r"import[\s]+oslo[.][^\s]+")
|
oslo_namespace_imports_dot = re.compile(r"import[\s]+oslo[.][^\s]+")
|
||||||
oslo_namespace_imports_from_dot = re.compile(r"from[\s]+oslo[.]")
|
oslo_namespace_imports_from_dot = re.compile(r"from[\s]+oslo[.]")
|
||||||
oslo_namespace_imports_from_root = re.compile(r"from[\s]+oslo[\s]+import[\s]+")
|
oslo_namespace_imports_from_root = re.compile(r"from[\s]+oslo[\s]+import[\s]+")
|
||||||
|
|
||||||
|
|
||||||
|
@core.flake8ext
|
||||||
def no_assert_equal_true_false(logical_line):
|
def no_assert_equal_true_false(logical_line):
|
||||||
"""Check for assertTrue/assertFalse sentences
|
"""Check for assertTrue/assertFalse sentences
|
||||||
|
|
||||||
@ -47,6 +49,7 @@ def no_assert_equal_true_false(logical_line):
|
|||||||
"Use assertTrue(A) or assertFalse(A) instead")
|
"Use assertTrue(A) or assertFalse(A) instead")
|
||||||
|
|
||||||
|
|
||||||
|
@core.flake8ext
|
||||||
def no_assert_true_false_is_not(logical_line):
|
def no_assert_true_false_is_not(logical_line):
|
||||||
"""Check for assertIs/assertIsNot sentences
|
"""Check for assertIs/assertIsNot sentences
|
||||||
|
|
||||||
@ -60,6 +63,7 @@ def no_assert_true_false_is_not(logical_line):
|
|||||||
"Use assertIs(A, B) or assertIsNot(A, B) instead")
|
"Use assertIs(A, B) or assertIsNot(A, B) instead")
|
||||||
|
|
||||||
|
|
||||||
|
@core.flake8ext
|
||||||
def check_oslo_namespace_imports(logical_line):
|
def check_oslo_namespace_imports(logical_line):
|
||||||
if re.match(oslo_namespace_imports_from_dot, logical_line):
|
if re.match(oslo_namespace_imports_from_dot, logical_line):
|
||||||
msg = ("O323: '%s' must be used instead of '%s'.") % (
|
msg = ("O323: '%s' must be used instead of '%s'.") % (
|
||||||
@ -78,12 +82,14 @@ def check_oslo_namespace_imports(logical_line):
|
|||||||
yield(0, msg)
|
yield(0, msg)
|
||||||
|
|
||||||
|
|
||||||
|
@core.flake8ext
|
||||||
def check_python3_xrange(logical_line):
|
def check_python3_xrange(logical_line):
|
||||||
if re.search(r"\bxrange\s*\(", logical_line):
|
if re.search(r"\bxrange\s*\(", logical_line):
|
||||||
yield(0, "M327: Do not use xrange(). 'xrange()' is not compatible "
|
yield(0, "M327: Do not use xrange(). 'xrange()' is not compatible "
|
||||||
"with Python 3. Use range() or six.moves.range() instead.")
|
"with Python 3. Use range() or six.moves.range() instead.")
|
||||||
|
|
||||||
|
|
||||||
|
@core.flake8ext
|
||||||
def check_python3_no_iteritems(logical_line):
|
def check_python3_no_iteritems(logical_line):
|
||||||
msg = ("M328: Use six.iteritems() instead of dict.iteritems().")
|
msg = ("M328: Use six.iteritems() instead of dict.iteritems().")
|
||||||
|
|
||||||
@ -91,6 +97,7 @@ def check_python3_no_iteritems(logical_line):
|
|||||||
yield(0, msg)
|
yield(0, msg)
|
||||||
|
|
||||||
|
|
||||||
|
@core.flake8ext
|
||||||
def check_python3_no_iterkeys(logical_line):
|
def check_python3_no_iterkeys(logical_line):
|
||||||
msg = ("M329: Use six.iterkeys() instead of dict.iterkeys().")
|
msg = ("M329: Use six.iterkeys() instead of dict.iterkeys().")
|
||||||
|
|
||||||
@ -98,6 +105,7 @@ def check_python3_no_iterkeys(logical_line):
|
|||||||
yield(0, msg)
|
yield(0, msg)
|
||||||
|
|
||||||
|
|
||||||
|
@core.flake8ext
|
||||||
def check_python3_no_itervalues(logical_line):
|
def check_python3_no_itervalues(logical_line):
|
||||||
msg = ("M330: Use six.itervalues() instead of dict.itervalues().")
|
msg = ("M330: Use six.itervalues() instead of dict.itervalues().")
|
||||||
|
|
||||||
@ -144,6 +152,9 @@ class BaseASTChecker(ast.NodeVisitor):
|
|||||||
|
|
||||||
|
|
||||||
class CheckForLoggingIssues(BaseASTChecker):
|
class CheckForLoggingIssues(BaseASTChecker):
|
||||||
|
|
||||||
|
name = "check_for_logging_issues"
|
||||||
|
version = "1.0"
|
||||||
CHECK_DESC = ('M001 Using the deprecated Logger.warn')
|
CHECK_DESC = ('M001 Using the deprecated Logger.warn')
|
||||||
LOG_MODULES = ('logging', 'oslo_log.log')
|
LOG_MODULES = ('logging', 'oslo_log.log')
|
||||||
|
|
||||||
@ -262,14 +273,3 @@ class CheckForLoggingIssues(BaseASTChecker):
|
|||||||
self.add_error(node.args[0])
|
self.add_error(node.args[0])
|
||||||
|
|
||||||
return super(CheckForLoggingIssues, self).generic_visit(node)
|
return super(CheckForLoggingIssues, self).generic_visit(node)
|
||||||
|
|
||||||
|
|
||||||
def factory(register):
|
|
||||||
register(no_assert_equal_true_false)
|
|
||||||
register(no_assert_true_false_is_not)
|
|
||||||
register(check_oslo_namespace_imports)
|
|
||||||
register(CheckForLoggingIssues)
|
|
||||||
register(check_python3_no_iteritems)
|
|
||||||
register(check_python3_no_iterkeys)
|
|
||||||
register(check_python3_no_itervalues)
|
|
||||||
register(check_python3_xrange)
|
|
||||||
|
@ -1,7 +1,7 @@
|
|||||||
# The order of packages is significant, because pip processes them in the order
|
# The order of packages is significant, because pip processes them in the order
|
||||||
# of appearance. Changing the order has an impact on the overall integration
|
# of appearance. Changing the order has an impact on the overall integration
|
||||||
# process, which may cause wedges in the gate later.
|
# process, which may cause wedges in the gate later.
|
||||||
hacking>=1.1.0 # Apache-2.0
|
hacking>=3.0,<3.1.0 # Apache-2.0
|
||||||
|
|
||||||
coverage!=4.4,>=4.0 # Apache-2.0
|
coverage!=4.4,>=4.0 # Apache-2.0
|
||||||
doc8>=0.6.0 # Apache-2.0
|
doc8>=0.6.0 # Apache-2.0
|
||||||
|
13
tox.ini
13
tox.ini
@ -112,9 +112,20 @@ extensions = .rst, .yaml, .mistral
|
|||||||
max-line-length = 80
|
max-line-length = 80
|
||||||
|
|
||||||
[hacking]
|
[hacking]
|
||||||
local-check-factory = mistral.hacking.checks.factory
|
|
||||||
import_exceptions = mistral._i18n
|
import_exceptions = mistral._i18n
|
||||||
|
|
||||||
|
[flake8:local-plugins]
|
||||||
|
extension =
|
||||||
|
M001 = checks:CheckForLoggingIssues
|
||||||
|
M319 = checks:no_assert_equal_true_false
|
||||||
|
M320 = checks:no_assert_true_false_is_not
|
||||||
|
M327 = checks:check_python3_xrange
|
||||||
|
M328 = checks:check_python3_no_iteritems
|
||||||
|
M329 = checks:check_python3_no_iterkeys
|
||||||
|
M330 = checks:check_python3_no_itervalues
|
||||||
|
O323 = checks:check_oslo_namespace_imports
|
||||||
|
paths = ./mistral/hacking
|
||||||
|
|
||||||
[testenv:lower-constraints]
|
[testenv:lower-constraints]
|
||||||
deps =
|
deps =
|
||||||
-c{toxinidir}/lower-constraints.txt
|
-c{toxinidir}/lower-constraints.txt
|
||||||
|
Loading…
x
Reference in New Issue
Block a user