#!/usr/bin/env python # -*- coding: utf-8 -*- import os from DynLoader.modInfo import modInfo class DynLoaderMod(object): instance = dict() @staticmethod def getInstance(): return DynLoaderMod.instance def __init__(self,dir:str,method_prefix:str=""): self._modules = [] files = os.listdir(dir) self._prefix = method_prefix _mod = modInfo for f in files: if f!='__pycache__' and f.endswith(".py"): self._modules.append({ "file": f, "modInfo": modInfo(dir+f, os.path.splitext(f)[0], "mods"), "path": dir+f }) elif f!='__pycache__' and os.path.exists(dir+f+"/__init__.py"): self._modules.append({ "file": f+"/__init__.py", "modInfo": modInfo(dir+f+"/__init__.py", os.path.splitext(f)[0], "mods"), "path": dir+f+"/__init__.py" }) DynLoaderMod.instance = self def __del__(self): #for x in range(self._modules): # del self._modules[x] #del self._modules for m in self._modules: del m del self._modules def execute(self, method, arg1 = None, arg2 = None, arg3 = None): for m in self._modules: if m["modInfo"].Loaded: m["modInfo"].Execute(self._prefix + method, arg1, arg2, arg3)