__init__.py (1258B)
1 #Embedded file name: C:\BuildAgent\work\20d73f1b24eed06e\eve\release\V24.01\packages\behaviors\utility\__init__.py 2 import __builtin__ 3 import inspect 4 from types import ModuleType 5 from behaviors.tasks import Task 6 7 def get_full_class_name(task): 8 return task.__module__ + '.' + task.__name__ 9 10 11 def get_tasks_in_module(module): 12 return [ cls for name, cls in inspect.getmembers(module) if inspect.isclass(cls) and issubclass(cls, Task) ] 13 14 15 def get_modules_in_module(module): 16 return [ member for name, member in inspect.getmembers(module) if inspect.ismodule(member) ] 17 18 19 class DummyModule(ModuleType): 20 __all__ = [] 21 22 def __getattr__(self, _): 23 return None 24 25 26 class ImportFaker(object): 27 28 def __init__(self): 29 self.real_import = None 30 31 def try_import(self, name, globals = {}, locals = {}, fromlist = [], level = -1): 32 try: 33 return self.real_import(name, globals, locals, fromlist, level) 34 except (ImportError, TypeError, AttributeError): 35 return DummyModule(name) 36 37 def __enter__(self): 38 self.real_import = __builtin__.__import__ 39 __builtin__.__import__ = self.try_import 40 41 def __exit__(self, exc_type, exc_val, exc_tb): 42 __builtin__.__import__ = self.real_import