Esempio n. 1
0
    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.")
Esempio n. 2
0
    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)
Esempio n. 3
0
 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)