Archived
1
0
Fork 0

Update __init__.py

This commit is contained in:
yzhh 2023-06-29 19:19:49 +08:00
parent 88b053daf4
commit c839ed2336

View file

@ -112,10 +112,14 @@ class ModulesManager:
elif isinstance(meta, ScheduleMeta): elif isinstance(meta, ScheduleMeta):
cls.modules[bind_prefix].schedule_list.add(meta) cls.modules[bind_prefix].schedule_list.add(meta)
_return_cache = {}
@classmethod @classmethod
def return_modules_list(cls, targetFrom: str = None) -> \ def return_modules_list(cls, targetFrom: str = None) -> \
Dict[str, Module]: Dict[str, Module]:
if targetFrom is not None: if targetFrom is not None:
if targetFrom in cls._return_cache:
return cls._return_cache[targetFrom]
returns = {} returns = {}
for m in cls.modules: for m in cls.modules:
if isinstance(cls.modules[m], Module): if isinstance(cls.modules[m], Module):
@ -124,6 +128,7 @@ class ModulesManager:
available = cls.modules[m].available_for available = cls.modules[m].available_for
if targetFrom in available or '*' in available: if targetFrom in available or '*' in available:
returns.update({m: cls.modules[m]}) returns.update({m: cls.modules[m]})
cls._return_cache.update({targetFrom: returns})
return returns return returns
return cls.modules return cls.modules