def find_spec(self, fullname, path, target=None): ext_dest_name = self.extensions_map.get(fullname) if ext_dest_name is not None: ext_path = _path_join(self.libdir, ext_dest_name) return ModuleSpec(fullname, ExtensionFileLoader(fullname, ext_path), origin=ext_path, is_package=False) if self.develop_mode_path: ans = self.find_spec_in_develop_mode(fullname, path, target=None) if ans is not None: return ans package_name = fullname + '.__init__' package_idx = self.index_for_python_name(package_name) is_package = package_idx > -1 if is_package: name = package_name idx = package_idx else: name = fullname idx = self.index_for_python_name(name) if is_package or idx > -1: offset, size = offsets_for_index(idx) fpath = self.dataloc + path_sep filename = fpath + name.replace('.', path_sep) + py_ext return ModuleSpec(fullname, FrozenByteCodeLoader(fullname, offset, size, name, is_package, self.filesystem_tree, filename), origin=filename, is_package=is_package)
def open_resource(self, name): q = '/'.join(self.resource_prefix) + '/' + name idx = index_for_name(q) if idx < 0: raise FileNotFoundError(f'{name} is not present in {self.name}') import io offset, size = offsets_for_index(idx) return io.BytesIO(get_data_at(offset, size))
def read_memoryview(self): if self.is_dir(): raise IsADirectoryError(f'Is a directory: {self.name}') q = '/'.join(self._path_entries) idx = index_for_name(q) if idx < 0: raise FileNotFoundError(f'{q} not found') offset, size = offsets_for_index(idx) return get_data_at(offset, size)