NovaBryan/EVE_Dump
Log | Files | 📦 下载最新源码 (.zip) | Refs | README

__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