More normalizer Rule refactoring.

This commit is contained in:
Dave Halter
2017-08-16 22:13:11 +02:00
parent 412da07893
commit fc80cebfb8
2 changed files with 16 additions and 9 deletions
+14 -8
View File
@@ -102,19 +102,22 @@ class Issue(object):
class Rule(object): class Rule(object):
error_code = None code = None
message = None message = None
def check(self, node): def __init__(self, normalizer):
self._normalizer = normalizer
def is_issue(self, node):
raise NotImplementedError() raise NotImplementedError()
def get_error_node(self, node): def get_node(self, node):
return node return node
def add_error(self, error_code=None, message=None): def add_issue(self, node, code=None, message=None):
if error_code is None: if code is None:
error_code = self.error_code code = self.code
if error_code is None: if code is None:
raise ValueError("The error code on the class is not set.") raise ValueError("The error code on the class is not set.")
if message is None: if message is None:
@@ -122,6 +125,9 @@ class Rule(object):
if message is None: if message is None:
raise ValueError("The message on the class is not set.") raise ValueError("The message on the class is not set.")
self._normalizer.add_issue(code, message, node)
def feed_node(self, node): def feed_node(self, node):
if self.check(node): if self.check(node):
error_node = self.get_error_node(node) issue_node = self.get_node(node)
self.add_issue(issue_node)
+2 -1
View File
@@ -798,4 +798,5 @@ class AwaitOutsideAsync(SyntaxRule):
return not self._context.is_async_funcdef() return not self._context.is_async_funcdef()
def get_error_node(self, node): def get_error_node(self, node):
return node.parent # Return the whole await statement. # Return the whole await statement.
return node.parent