code: def _get_info(self, fullmodname):
          
          parts = fullmodname.split('.')
          submodname = parts[-1]
          for f in self._files:
              for prefix in self._prefixes[id(f)]:
                  for suffix, is_package in _SEARCH_ORDER:
                      l = [prefix] + parts[:-1] + [submodname + suffix.replace('/', os.sep)]
                      relpath = os.path.join(*l)
                      try:
                          relpath = relpath.replace(os.sep, '/')
                          if isinstance(f, zipfile.ZipFile):
                              f.getinfo(relpath)
                          elif isinstance(f, tarfile.TarFile):
                              f.getmember(relpath)
                          else:
                              if relpath not in f:
                                  raise KeyError
                      except KeyError:
                          pass
                      else:
                          return submodname, is_package, relpath, f
  
          msg = 'Can\'t find module %s' % fullmodname
          raise CompressImportError(msg)
docs: Internal helper for find_module() and load_module().
  
          Args:
            fullmodname: The dot-separated full module name, e.g. 'django.core.mail'.
  
          Returns:
            A tuple (submodname, is_package, relpath, fileobj) where:
              submodname: The final component of the module name, e.g. 'mail'.
              is_package: A bool indicating whether this is a package.
              relpath: The path to the module's source code within to the zipfile or tarfile.
              fileobj: The file object
  
          Raises:
            ImportError if the module is not found in the archive.