def start(self, ctx=None): logger.debug("Starting data engine...") self.datapath = os.path.join(environ.home_dir(), _DATA_FILE_DIR) logger.debug("Data path: %s", self.datapath) try: self.database = lmdb.Environment(self.datapath, max_dbs=32) except lmdb.Error: logger.exception("Failed to open database.", exc_info=True) raise logger.debug("Data engine started.")
def _load_modules(self, ctx): sys.path.append(environ.home_dir()) logger.debug("Modules directory: %s", self.modules_path) module_files = self._scan_modules() logger.debug("Found %d module(s)" % len(module_files)) for s in module_files: name = os.path.basename(s) if '__init__.py' == name: continue # gets the basename without extension part. name = os.path.splitext(name)[0] try: logger.debug("Loading module: %s", name) mod = import_module(_MODULE_PKG + name) mod_info = ModuleInfo(name, mod) self.modules[name] = mod_info ctx.send(signal=MODULE_LOADED, sender=self) except ImportError: logger.error("Failed to import module: %s", name, exc_info=True)
def __init__(self): self.modules = {} self.modules_path = os.path.join(environ.home_dir(), _MODULES_DIR, 'enabled') self.modules_path = os.path.abspath(self.modules_path)