| 12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849 |
- #!/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)
-
|