:py:mod:`wfexs_backend.utils.zipfile_path`
==========================================

.. py:module:: wfexs_backend.utils.zipfile_path

.. autodoc2-docstring:: wfexs_backend.utils.zipfile_path
   :allowtitles:

Module Contents
---------------

Classes
~~~~~~~

.. list-table::
   :class: autosummary longtable
   :align: left

   * - :py:obj:`CompleteDirs <wfexs_backend.utils.zipfile_path.CompleteDirs>`
     - .. autodoc2-docstring:: wfexs_backend.utils.zipfile_path.CompleteDirs
          :summary:
   * - :py:obj:`FastLookup <wfexs_backend.utils.zipfile_path.FastLookup>`
     - .. autodoc2-docstring:: wfexs_backend.utils.zipfile_path.FastLookup
          :summary:
   * - :py:obj:`ZipfilePath <wfexs_backend.utils.zipfile_path.ZipfilePath>`
     - .. autodoc2-docstring:: wfexs_backend.utils.zipfile_path.ZipfilePath
          :summary:

Functions
~~~~~~~~~

.. list-table::
   :class: autosummary longtable
   :align: left

   * - :py:obj:`_parents <wfexs_backend.utils.zipfile_path._parents>`
     - .. autodoc2-docstring:: wfexs_backend.utils.zipfile_path._parents
          :summary:
   * - :py:obj:`_ancestry <wfexs_backend.utils.zipfile_path._ancestry>`
     - .. autodoc2-docstring:: wfexs_backend.utils.zipfile_path._ancestry
          :summary:
   * - :py:obj:`_difference <wfexs_backend.utils.zipfile_path._difference>`
     - .. autodoc2-docstring:: wfexs_backend.utils.zipfile_path._difference
          :summary:
   * - :py:obj:`path_relative_to <wfexs_backend.utils.zipfile_path.path_relative_to>`
     - .. autodoc2-docstring:: wfexs_backend.utils.zipfile_path.path_relative_to
          :summary:

Data
~~~~

.. list-table::
   :class: autosummary longtable
   :align: left

   * - :py:obj:`_dedupe <wfexs_backend.utils.zipfile_path._dedupe>`
     - .. autodoc2-docstring:: wfexs_backend.utils.zipfile_path._dedupe
          :summary:

API
~~~

.. py:function:: _parents(path: str) -> Iterator[str]
   :canonical: wfexs_backend.utils.zipfile_path._parents

   .. autodoc2-docstring:: wfexs_backend.utils.zipfile_path._parents

.. py:function:: _ancestry(path: str) -> Iterator[str]
   :canonical: wfexs_backend.utils.zipfile_path._ancestry

   .. autodoc2-docstring:: wfexs_backend.utils.zipfile_path._ancestry

.. py:data:: _dedupe
   :canonical: wfexs_backend.utils.zipfile_path._dedupe
   :value: None

   .. autodoc2-docstring:: wfexs_backend.utils.zipfile_path._dedupe

.. py:function:: _difference(minuend: Iterable[str], subtrahend: Iterable[str]) -> Iterator[str]
   :canonical: wfexs_backend.utils.zipfile_path._difference

   .. autodoc2-docstring:: wfexs_backend.utils.zipfile_path._difference

.. py:class:: CompleteDirs(file, mode='r', compression=ZIP_STORED, allowZip64=True, compresslevel=None, *, strict_timestamps=True, metadata_encoding=None)
   :canonical: wfexs_backend.utils.zipfile_path.CompleteDirs

   Bases: :py:obj:`zipfile.ZipFile`

   .. autodoc2-docstring:: wfexs_backend.utils.zipfile_path.CompleteDirs

   .. rubric:: Initialization

   .. autodoc2-docstring:: wfexs_backend.utils.zipfile_path.CompleteDirs.__init__

   .. py:method:: _implied_dirs(names: Sequence[str]) -> Mapping[str, Optional[str]]
      :canonical: wfexs_backend.utils.zipfile_path.CompleteDirs._implied_dirs
      :staticmethod:

      .. autodoc2-docstring:: wfexs_backend.utils.zipfile_path.CompleteDirs._implied_dirs

   .. py:method:: namelist() -> List[str]
      :canonical: wfexs_backend.utils.zipfile_path.CompleteDirs.namelist

   .. py:method:: _name_set() -> Set[str]
      :canonical: wfexs_backend.utils.zipfile_path.CompleteDirs._name_set

      .. autodoc2-docstring:: wfexs_backend.utils.zipfile_path.CompleteDirs._name_set

   .. py:method:: resolve_dir(name: str) -> str
      :canonical: wfexs_backend.utils.zipfile_path.CompleteDirs.resolve_dir

      .. autodoc2-docstring:: wfexs_backend.utils.zipfile_path.CompleteDirs.resolve_dir

   .. py:method:: getinfo(name: str) -> zipfile.ZipInfo
      :canonical: wfexs_backend.utils.zipfile_path.CompleteDirs.getinfo

      .. autodoc2-docstring:: wfexs_backend.utils.zipfile_path.CompleteDirs.getinfo

   .. py:method:: make(source: Union[CompleteDirs, zipfile.ZipFile, str, os.PathLike[str]]) -> wfexs_backend.utils.zipfile_path.CompleteDirs
      :canonical: wfexs_backend.utils.zipfile_path.CompleteDirs.make
      :classmethod:

      .. autodoc2-docstring:: wfexs_backend.utils.zipfile_path.CompleteDirs.make

.. py:class:: FastLookup(file, mode='r', compression=ZIP_STORED, allowZip64=True, compresslevel=None, *, strict_timestamps=True, metadata_encoding=None)
   :canonical: wfexs_backend.utils.zipfile_path.FastLookup

   Bases: :py:obj:`wfexs_backend.utils.zipfile_path.CompleteDirs`

   .. autodoc2-docstring:: wfexs_backend.utils.zipfile_path.FastLookup

   .. rubric:: Initialization

   .. autodoc2-docstring:: wfexs_backend.utils.zipfile_path.FastLookup.__init__

   .. py:method:: namelist() -> List[str]
      :canonical: wfexs_backend.utils.zipfile_path.FastLookup.namelist

   .. py:method:: _name_set() -> Set[str]
      :canonical: wfexs_backend.utils.zipfile_path.FastLookup._name_set

      .. autodoc2-docstring:: wfexs_backend.utils.zipfile_path.FastLookup._name_set

.. py:function:: path_relative_to(path: pathlib.Path, other: pathlib.Path, *extra: Union[str, os.PathLike[str]]) -> str
   :canonical: wfexs_backend.utils.zipfile_path.path_relative_to

   .. autodoc2-docstring:: wfexs_backend.utils.zipfile_path.path_relative_to

.. py:class:: ZipfilePath(root: Union[str, CompleteDirs, os.PathLike[str], zipfile.ZipFile], at: str = '')
   :canonical: wfexs_backend.utils.zipfile_path.ZipfilePath

   Bases: :py:obj:`pathlib.Path`

   .. autodoc2-docstring:: wfexs_backend.utils.zipfile_path.ZipfilePath

   .. rubric:: Initialization

   .. autodoc2-docstring:: wfexs_backend.utils.zipfile_path.ZipfilePath.__init__

   .. py:attribute:: __repr
      :canonical: wfexs_backend.utils.zipfile_path.ZipfilePath.__repr
      :value: '{self.__class__.__name__}({self._root.filename!r}, {self._at!r})'

      .. autodoc2-docstring:: wfexs_backend.utils.zipfile_path.ZipfilePath.__repr

   .. py:method:: __new__(*args: typing.Any, **kwargs: typing.Any) -> wfexs_backend.utils.zipfile_path.ZipfilePath
      :canonical: wfexs_backend.utils.zipfile_path.ZipfilePath.__new__

   .. py:method:: open(mode: str = 'r', pwd: Optional[bytes] = None, buffering: int = -1, encoding: Optional[str] = None, newline: Optional[str] = None) -> Union[IO[str], IO[bytes]]
      :canonical: wfexs_backend.utils.zipfile_path.ZipfilePath.open

      .. autodoc2-docstring:: wfexs_backend.utils.zipfile_path.ZipfilePath.open

   .. py:property:: name
      :canonical: wfexs_backend.utils.zipfile_path.ZipfilePath.name
      :type: str

   .. py:property:: filename
      :canonical: wfexs_backend.utils.zipfile_path.ZipfilePath.filename
      :type: pathlib.Path

      .. autodoc2-docstring:: wfexs_backend.utils.zipfile_path.ZipfilePath.filename

   .. py:method:: read_text(*args: typing.Any, **kwargs: typing.Any) -> str
      :canonical: wfexs_backend.utils.zipfile_path.ZipfilePath.read_text

   .. py:method:: read_bytes() -> bytes
      :canonical: wfexs_backend.utils.zipfile_path.ZipfilePath.read_bytes

   .. py:method:: _is_child(path: wfexs_backend.utils.zipfile_path.ZipfilePath) -> bool
      :canonical: wfexs_backend.utils.zipfile_path.ZipfilePath._is_child

      .. autodoc2-docstring:: wfexs_backend.utils.zipfile_path.ZipfilePath._is_child

   .. py:method:: _next(at: str) -> wfexs_backend.utils.zipfile_path.ZipfilePath
      :canonical: wfexs_backend.utils.zipfile_path.ZipfilePath._next

      .. autodoc2-docstring:: wfexs_backend.utils.zipfile_path.ZipfilePath._next

   .. py:method:: is_dir() -> bool
      :canonical: wfexs_backend.utils.zipfile_path.ZipfilePath.is_dir

   .. py:method:: is_file() -> bool
      :canonical: wfexs_backend.utils.zipfile_path.ZipfilePath.is_file

   .. py:method:: exists(*, follow_symlinks: bool = False) -> bool
      :canonical: wfexs_backend.utils.zipfile_path.ZipfilePath.exists

   .. py:method:: iterdir() -> Generator[ZipfilePath, None, None]
      :canonical: wfexs_backend.utils.zipfile_path.ZipfilePath.iterdir

   .. py:method:: __str__() -> str
      :canonical: wfexs_backend.utils.zipfile_path.ZipfilePath.__str__

   .. py:method:: __repr__() -> str
      :canonical: wfexs_backend.utils.zipfile_path.ZipfilePath.__repr__

   .. py:method:: joinpath(*other: Union[str, os.PathLike[str]]) -> wfexs_backend.utils.zipfile_path.ZipfilePath
      :canonical: wfexs_backend.utils.zipfile_path.ZipfilePath.joinpath

   .. py:attribute:: __truediv__
      :canonical: wfexs_backend.utils.zipfile_path.ZipfilePath.__truediv__
      :value: None

      .. autodoc2-docstring:: wfexs_backend.utils.zipfile_path.ZipfilePath.__truediv__

   .. py:property:: parent
      :canonical: wfexs_backend.utils.zipfile_path.ZipfilePath.parent
      :type: wfexs_backend.utils.zipfile_path.ZipfilePath

   .. py:property:: zip_root
      :canonical: wfexs_backend.utils.zipfile_path.ZipfilePath.zip_root
      :type: zipfile.ZipFile

      .. autodoc2-docstring:: wfexs_backend.utils.zipfile_path.ZipfilePath.zip_root

   .. py:method:: relative_to(other: Union[str, os.PathLike[str]], *_deprecated: Union[str, os.PathLike[str]], walk_up: bool = False) -> pathlib.Path
      :canonical: wfexs_backend.utils.zipfile_path.ZipfilePath.relative_to

   .. py:method:: resolve(strict: bool = False) -> wfexs_backend.utils.zipfile_path.ZipfilePath
      :canonical: wfexs_backend.utils.zipfile_path.ZipfilePath.resolve

   .. py:method:: _extract_member(member: Union[zipfile.ZipInfo, str], targetpath: Union[str, os.PathLike[str]], pwd: Optional[bytes] = None, preserve_attrs: bool = True, aggresive_attrs: bool = False) -> str
      :canonical: wfexs_backend.utils.zipfile_path.ZipfilePath._extract_member

      .. autodoc2-docstring:: wfexs_backend.utils.zipfile_path.ZipfilePath._extract_member

   .. py:method:: copy_to(dest: pathlib.Path, preserve_attrs: bool = True, aggresive_attrs: bool = False) -> None
      :canonical: wfexs_backend.utils.zipfile_path.ZipfilePath.copy_to

      .. autodoc2-docstring:: wfexs_backend.utils.zipfile_path.ZipfilePath.copy_to

   .. py:method:: with_name(name: Union[str, os.PathLike[str]]) -> wfexs_backend.utils.zipfile_path.ZipfilePath
      :canonical: wfexs_backend.utils.zipfile_path.ZipfilePath.with_name
