Python importlib.abc() Examples
The following are 4
code examples of importlib.abc().
You can vote up the ones you like or vote down the ones you don't like,
and go to the original project or source file by following the links above each example.
You may also want to check out all available functions/classes of the module
importlib
, or try the search function
.
Example #1
Source File: modules.py From Nest with MIT License | 6 votes |
def _add_module_finder(self) -> None: """Add a custom finder to support Nest module import syntax. """ module_manager = self class NamespaceLoader(importlib.abc.Loader): def create_module(self, spec): _, namespace = spec.name.split('.') module = ModuleType(spec.name) module_manager._update_namespaces() meta = module_manager.namespaces.get(namespace) module.__path__ = [meta['module_path']] if meta else [] return module def exec_module(self, module): pass class NestModuleFinder(importlib.abc.MetaPathFinder): def __init__(self): super(NestModuleFinder, self).__init__() self.reserved_namespaces = [ v[:-3] for v in os.listdir(os.path.dirname(os.path.realpath(__file__))) if v.endswith('.py')] def find_spec(self, fullname, path, target=None): if fullname.startswith('nest.'): name = fullname.split('.') if len(name) == 2: if not name[1] in self.reserved_namespaces: return importlib.machinery.ModuleSpec(fullname, NamespaceLoader()) sys.meta_path.insert(0, NestModuleFinder())
Example #2
Source File: EditorWindow.py From Fluid-Designer with GNU General Public License v3.0 | 4 votes |
def open_module(self, event=None): # XXX Shouldn't this be in IOBinding? try: name = self.text.get("sel.first", "sel.last") except TclError: name = "" else: name = name.strip() name = tkSimpleDialog.askstring("Module", "Enter the name of a Python module\n" "to search on sys.path and open:", parent=self.text, initialvalue=name) if name: name = name.strip() if not name: return # XXX Ought to insert current file's directory in front of path try: spec = importlib.util.find_spec(name) except (ValueError, ImportError) as msg: tkMessageBox.showerror("Import error", str(msg), parent=self.text) return if spec is None: tkMessageBox.showerror("Import error", "module not found", parent=self.text) return if not isinstance(spec.loader, importlib.abc.SourceLoader): tkMessageBox.showerror("Import error", "not a source-based module", parent=self.text) return try: file_path = spec.loader.get_filename(name) except AttributeError: tkMessageBox.showerror("Import error", "loader does not support get_filename", parent=self.text) return if self.flist: self.flist.open(file_path) else: self.io.loadfile(file_path) return file_path
Example #3
Source File: EditorWindow.py From ironpython3 with Apache License 2.0 | 4 votes |
def open_module(self, event=None): # XXX Shouldn't this be in IOBinding? try: name = self.text.get("sel.first", "sel.last") except TclError: name = "" else: name = name.strip() name = tkSimpleDialog.askstring("Module", "Enter the name of a Python module\n" "to search on sys.path and open:", parent=self.text, initialvalue=name) if name: name = name.strip() if not name: return # XXX Ought to insert current file's directory in front of path try: spec = importlib.util.find_spec(name) except (ValueError, ImportError) as msg: tkMessageBox.showerror("Import error", str(msg), parent=self.text) return if spec is None: tkMessageBox.showerror("Import error", "module not found", parent=self.text) return if not isinstance(spec.loader, importlib.abc.SourceLoader): tkMessageBox.showerror("Import error", "not a source-based module", parent=self.text) return try: file_path = spec.loader.get_filename(name) except AttributeError: tkMessageBox.showerror("Import error", "loader does not support get_filename", parent=self.text) return if self.flist: self.flist.open(file_path) else: self.io.loadfile(file_path) return file_path
Example #4
Source File: EditorWindow.py From Project-New-Reign---Nemesis-Main with GNU General Public License v3.0 | 4 votes |
def open_module(self, event=None): # XXX Shouldn't this be in IOBinding? try: name = self.text.get("sel.first", "sel.last") except TclError: name = "" else: name = name.strip() name = tkSimpleDialog.askstring("Module", "Enter the name of a Python module\n" "to search on sys.path and open:", parent=self.text, initialvalue=name) if name: name = name.strip() if not name: return # XXX Ought to insert current file's directory in front of path try: spec = importlib.util.find_spec(name) except (ValueError, ImportError) as msg: tkMessageBox.showerror("Import error", str(msg), parent=self.text) return if spec is None: tkMessageBox.showerror("Import error", "module not found", parent=self.text) return if not isinstance(spec.loader, importlib.abc.SourceLoader): tkMessageBox.showerror("Import error", "not a source-based module", parent=self.text) return try: file_path = spec.loader.get_filename(name) except AttributeError: tkMessageBox.showerror("Import error", "loader does not support get_filename", parent=self.text) return if self.flist: self.flist.open(file_path) else: self.io.loadfile(file_path) return file_path