def METHOD_NAME(
    self,
    path,
    mode="rb",
    block_size=None,
    autocommit=True,
    cache_options=None,
    **kwargs,
):
    path = self._strip_protocol(path)
    if "r" in mode and self.mode in set("wa"):
        if self.exists(path):
            raise IOError("ZipFS can only be open for reading or writing, not both")
        raise FileNotFoundError(path)
    if "r" in self.mode and "w" in mode:
        raise IOError("ZipFS can only be open for reading or writing, not both")
    out = self.zip.open(path, mode.strip("b"))
    if "r" in mode:
        info = self.info(path)
        out.size = info["size"]
        out.name = info["name"]
    return out