def accept_module(self, fpth_mod): if not super(LangletModuleFilter, self).accept_module(fpth_mod): if self.dbg: dbg_import("module not covered: " + fpth_mod) return if self.is_mainmodule(fpth_mod): m = self._pattern_default.match(fpth_mod.basename()) if m: self._default_groups.append(m.group(2).lower()) self.langlet.transformer.set_module( self.langlet.importer.module_descr) return self if fpth_mod.basename() in self.module_blacklist: return if self.dbg: dbg_import("module_path: %s\n" % fpth_mod) if not self._deactivate_default: m = self._pattern_default.match(fpth_mod.basename()) if m: md = LangletModuleDescriptor() md.fpth_mod_full = fpth_mod self._default_groups.append(m.group(2).lower()) self.langlet.transformer.set_module(md) return self else: module_name = fpth_mod.splitext()[0].basename() if module_name in self._default_groups: self._default_groups.remove(module_name) md = LangletModuleDescriptor() md.fpth_mod_full = fpth_mod self.langlet.transformer.set_module(md) return self
def __init__(self, langlet, modfilter=ModuleFilter): ''' :param langlet: langlet module object ''' self.langlet = langlet self.fpth_langlet = self.langlet_path() self.loader = self.module_loader() self.dbg = langlet.options.get("debug_importer") self.modulefilter = modfilter(langlet) md = LangletModuleDescriptor() md.fpth_mod_input = path(langlet.config.__file__) md.compute_module_path() self.module_descr = md
def run_module(self, cmdline_module_path): ''' :param cmdline_module_path: command line module path data e.g. ``mod.py`` or ``tests/foo/mod.py``. ''' try: sys.argv = sys.argv[sys.argv.index(cmdline_module_path):] except ValueError: pass md = LangletModuleDescriptor() md.is_main = True md.fpth_mod_input = path(cmdline_module_path) md.compute_module_path() self.importer.set_module_descriptor(md) self.importer.register_importer() self.target.register_excepthook(self) __import__(md.module_path)