__init__.py
来自「ace开发环境 用来开发网络程序 其运用了设计模式、多平台、C++等多种知识」· Python 代码 · 共 98 行
PY
98 行
""" This init script loads all python modules in the current directory that do not start with an '_', loads them as a module"""file_type_handlers = dict ()def register_handler (module): for item in module.type_list: if file_type_handlers.has_key (item): file_type_handlers[item].append (module.handler) else: handlers = list () handlers.append (module.handler) file_type_handlers[item] = handlersimport reextension_re = re.compile(".+\.([^.]+)$")# The following is the initialization logic that is executed# when the fuzz module is loadedfrom os import listdir, chdir, getcwdfrom sys import stderr, patholdwd = getcwd ()try: # The following is a trick to get the directory THIS SCRIPT - note, not necessarily the CWD - # is located. We use this path later to load all of the available fuzz checks. import _path script_path = str (_path).split ()[3][1:-11] if script_path == "": script_path = "." chdir (script_path) path.append (getcwd ()) files = listdir (".") modules = list () # We need to import the warning handler here. If we use a traditional import elsewhere, # we get all kinds of problems with the warning_handler being imported twice - once as # fuzz._warning_handler and again as _warning_handler - making the singleton instances # NOT the same. _warning_handler = __import__ ("_warning_handler") Warning_Handler = _warning_handler.Warning_Handler STDERR = _warning_handler.STDERR MAILER = _warning_handler.MAILER for item in files: if (item[0] != '_') and (item[-3:] == ".py"): print "Registering " + item [:-3] try: module = __import__ (item[:-3]) register_handler (module) except: stderr.write ("FUZZ ERROR: Unable to load the " + item[:-3] + " module, please notify the build czar\n")finally: chdir (oldwd)def fuzz_check (file_name, file_content): # If the user of the module has not instanciated the warning handler, # lets do it here if not Warning_Handler._isInstantiated (): Warning_Handler.getInstance (STDERR) # get the file extension ext_match = extension_re.search (file_name) if ext_match == None: # we don't have no stinking file extension! ext = "" else: ext = ext_match.group (1) retval = 0 if file_type_handlers.has_key (ext): for handler in file_type_handlers[ext]: try: # We don't want one misbehaving handler to screw up the whole sustem retval += handler (file_name, file_content) except: stderr.write ("An unknown exception was thrown while trying to run one of the handlers\n") # Run the generic handlers for handler in file_type_handlers["*"]: try: # We don't want one misbehaving handler to screw up the whole sustem retval += handler (file_name, file_content) except: stderr.write ("An unknown exception was thrown while trying to run one of the handlers\n") return retval
⌨️ 快捷键说明
复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?