''' 插件工具函数 ''' import os import inspect # 找出模块里所有的类名 def get_classes(p_name, arg): classes = [] clsmembers = inspect.getmembers(arg, inspect.isclass) for (name, _) in clsmembers: # print(name, p_name) if p_name.lower() == name.lower()[:-6] or name.lower() == "main": classes.append(name) break return classes # 获取一个文件夹下所有的模块, 文件名和文件夹名相同 def get_modules(path): modules = [] for root, dirs, files in os.walk(path): # 获得所在目录名 p_name = os.path.basename(root) for file in files: """ 与文件夹名(不计大小写)相同或者是main.py的,都算启动模块 """ if file.endswith(".py") and not file.startswith("__") and (p_name.lower() == file[:-3].lower() or file[:-3].lower() == "main"): modules.append({ "pname": p_name, "module": file[:-3], }) return modules