src/eric7/Plugins/CheckerPlugins/CodeStyleChecker/Security/SecurityNodeVisitor.py

branch
eric7
changeset 10996
a3dc181d14e1
parent 10507
d1c6608155ef
child 11090
f5f5f5803935
equal deleted inserted replaced
10995:f94a27bbf6c4 10996:a3dc181d14e1
16 class SecurityNodeVisitor: 16 class SecurityNodeVisitor:
17 """ 17 """
18 Class implementing an AST node visitor for security checks. 18 Class implementing an AST node visitor for security checks.
19 """ 19 """
20 20
21 def __init__(self, checker, secCheckers, filename): 21 def __init__(self, checker, secCheckers, filename, fileData):
22 """ 22 """
23 Constructor 23 Constructor
24 24
25 @param checker reference to the main security checker object 25 @param checker reference to the main security checker object
26 @type SecurityChecker 26 @type SecurityChecker
27 @param secCheckers dictionary containing the available checker routines 27 @param secCheckers dictionary containing the available checker routines
28 @type dict 28 @type dict
29 @param filename name of the checked file 29 @param filename name of the checked file
30 @type str 30 @type str
31 @param fileData contents of the checked file
32 @type str
31 """ 33 """
32 self.__checker = checker 34 self.__checker = checker
33 self.__securityCheckers = secCheckers 35 self.__securityCheckers = secCheckers
34 36
35 self.seen = 0
36 self.depth = 0 37 self.depth = 0
37 self.filename = filename 38 self.filename = filename
39 self.fileData = fileData
38 self.imports = set() 40 self.imports = set()
39 self.import_aliases = {} 41 self.import_aliases = {}
40 42
41 # in some cases we can't determine a qualified name 43 # in some cases we can't determine a qualified name
42 try: 44 try:
219 self.__context["end_col_offset"] = node.end_col_offset 221 self.__context["end_col_offset"] = node.end_col_offset
220 222
221 self.__context["node"] = node 223 self.__context["node"] = node
222 self.__context["linerange"] = SecurityUtils.linerange(node) 224 self.__context["linerange"] = SecurityUtils.linerange(node)
223 self.__context["filename"] = self.filename 225 self.__context["filename"] = self.filename
224 226 self.__context["filedata"] = self.fileData
225 self.seen += 1 227
226 self.depth += 1 228 self.depth += 1
227 229
228 return True 230 return True
229 231
230 def visit(self, node): 232 def visit(self, node):
283 value._securityParent = node 285 value._securityParent = node
284 if self.__preVisit(value): 286 if self.__preVisit(value):
285 self.visit(value) 287 self.visit(value)
286 self.generic_visit(value) 288 self.generic_visit(value)
287 self.__postVisit(value) 289 self.__postVisit(value)
290
291 def checkFile(self):
292 """
293 Public method to run File type checks, that don't operate on the AST.
294 """
295 self.__runChecks("File")

eric ide

mercurial