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

.. py:module:: wfexs_backend.utils.digests

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

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

Functions
~~~~~~~~~

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

   * - :py:obj:`stringifyDigest <wfexs_backend.utils.digests.stringifyDigest>`
     - .. autodoc2-docstring:: wfexs_backend.utils.digests.stringifyDigest
          :summary:
   * - :py:obj:`unstringifyDigest <wfexs_backend.utils.digests.unstringifyDigest>`
     - .. autodoc2-docstring:: wfexs_backend.utils.digests.unstringifyDigest
          :summary:
   * - :py:obj:`hexDigest <wfexs_backend.utils.digests.hexDigest>`
     - .. autodoc2-docstring:: wfexs_backend.utils.digests.hexDigest
          :summary:
   * - :py:obj:`stringifyFilenameDigest <wfexs_backend.utils.digests.stringifyFilenameDigest>`
     - .. autodoc2-docstring:: wfexs_backend.utils.digests.stringifyFilenameDigest
          :summary:
   * - :py:obj:`nullProcessDigest <wfexs_backend.utils.digests.nullProcessDigest>`
     - .. autodoc2-docstring:: wfexs_backend.utils.digests.nullProcessDigest
          :summary:
   * - :py:obj:`nihDigester <wfexs_backend.utils.digests.nihDigester>`
     - .. autodoc2-docstring:: wfexs_backend.utils.digests.nihDigester
          :summary:
   * - :py:obj:`ComputeDigestFromObject <wfexs_backend.utils.digests.ComputeDigestFromObject>`
     - .. autodoc2-docstring:: wfexs_backend.utils.digests.ComputeDigestFromObject
          :summary:
   * - :py:obj:`ComputeDigestFromFileLike <wfexs_backend.utils.digests.ComputeDigestFromFileLike>`
     - .. autodoc2-docstring:: wfexs_backend.utils.digests.ComputeDigestFromFileLike
          :summary:
   * - :py:obj:`ComputeDigestFromFile <wfexs_backend.utils.digests.ComputeDigestFromFile>`
     - .. autodoc2-docstring:: wfexs_backend.utils.digests.ComputeDigestFromFile
          :summary:
   * - :py:obj:`compute_sha1_git_from_stream <wfexs_backend.utils.digests.compute_sha1_git_from_stream>`
     - .. autodoc2-docstring:: wfexs_backend.utils.digests.compute_sha1_git_from_stream
          :summary:
   * - :py:obj:`compute_sha1_git_from_file <wfexs_backend.utils.digests.compute_sha1_git_from_file>`
     - .. autodoc2-docstring:: wfexs_backend.utils.digests.compute_sha1_git_from_file
          :summary:
   * - :py:obj:`compute_sha1_git_from_bytes <wfexs_backend.utils.digests.compute_sha1_git_from_bytes>`
     - .. autodoc2-docstring:: wfexs_backend.utils.digests.compute_sha1_git_from_bytes
          :summary:
   * - :py:obj:`compute_sha1_git_from_string <wfexs_backend.utils.digests.compute_sha1_git_from_string>`
     - .. autodoc2-docstring:: wfexs_backend.utils.digests.compute_sha1_git_from_string
          :summary:
   * - :py:obj:`process_dir_entries <wfexs_backend.utils.digests.process_dir_entries>`
     - .. autodoc2-docstring:: wfexs_backend.utils.digests.process_dir_entries
          :summary:
   * - :py:obj:`compute_sha1_git_from_dir <wfexs_backend.utils.digests.compute_sha1_git_from_dir>`
     - .. autodoc2-docstring:: wfexs_backend.utils.digests.compute_sha1_git_from_dir
          :summary:
   * - :py:obj:`compute_sha1_git_from_any <wfexs_backend.utils.digests.compute_sha1_git_from_any>`
     - .. autodoc2-docstring:: wfexs_backend.utils.digests.compute_sha1_git_from_any
          :summary:
   * - :py:obj:`scantree <wfexs_backend.utils.digests.scantree>`
     - .. autodoc2-docstring:: wfexs_backend.utils.digests.scantree
          :summary:
   * - :py:obj:`ComputeDigestFromDirectory <wfexs_backend.utils.digests.ComputeDigestFromDirectory>`
     - .. autodoc2-docstring:: wfexs_backend.utils.digests.ComputeDigestFromDirectory
          :summary:
   * - :py:obj:`ComputeDigestFromGeneratedContentList <wfexs_backend.utils.digests.ComputeDigestFromGeneratedContentList>`
     - .. autodoc2-docstring:: wfexs_backend.utils.digests.ComputeDigestFromGeneratedContentList
          :summary:

Data
~~~~

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

   * - :py:obj:`DEFAULT_DIGEST_ALGORITHM <wfexs_backend.utils.digests.DEFAULT_DIGEST_ALGORITHM>`
     - .. autodoc2-docstring:: wfexs_backend.utils.digests.DEFAULT_DIGEST_ALGORITHM
          :summary:
   * - :py:obj:`DEFAULT_DIGEST_BUFFER_SIZE <wfexs_backend.utils.digests.DEFAULT_DIGEST_BUFFER_SIZE>`
     - .. autodoc2-docstring:: wfexs_backend.utils.digests.DEFAULT_DIGEST_BUFFER_SIZE
          :summary:
   * - :py:obj:`VALID_NI_ALGOS <wfexs_backend.utils.digests.VALID_NI_ALGOS>`
     - .. autodoc2-docstring:: wfexs_backend.utils.digests.VALID_NI_ALGOS
          :summary:

API
~~~

.. py:data:: DEFAULT_DIGEST_ALGORITHM
   :canonical: wfexs_backend.utils.digests.DEFAULT_DIGEST_ALGORITHM
   :value: 'sha256'

   .. autodoc2-docstring:: wfexs_backend.utils.digests.DEFAULT_DIGEST_ALGORITHM

.. py:data:: DEFAULT_DIGEST_BUFFER_SIZE
   :canonical: wfexs_backend.utils.digests.DEFAULT_DIGEST_BUFFER_SIZE
   :value: 65536

   .. autodoc2-docstring:: wfexs_backend.utils.digests.DEFAULT_DIGEST_BUFFER_SIZE

.. py:function:: stringifyDigest(digestAlgorithm: str, digest: bytes) -> wfexs_backend.common.Fingerprint
   :canonical: wfexs_backend.utils.digests.stringifyDigest

   .. autodoc2-docstring:: wfexs_backend.utils.digests.stringifyDigest

.. py:function:: unstringifyDigest(digestion: wfexs_backend.common.Fingerprint) -> Tuple[bytes, str]
   :canonical: wfexs_backend.utils.digests.unstringifyDigest

   .. autodoc2-docstring:: wfexs_backend.utils.digests.unstringifyDigest

.. py:function:: hexDigest(digestAlgorithm: str, digest: wfexs_backend.utils.digests.Hexable) -> wfexs_backend.common.Fingerprint
   :canonical: wfexs_backend.utils.digests.hexDigest

   .. autodoc2-docstring:: wfexs_backend.utils.digests.hexDigest

.. py:function:: stringifyFilenameDigest(digestAlgorithm: str, digest: bytes) -> wfexs_backend.common.Fingerprint
   :canonical: wfexs_backend.utils.digests.stringifyFilenameDigest

   .. autodoc2-docstring:: wfexs_backend.utils.digests.stringifyFilenameDigest

.. py:function:: nullProcessDigest(digestAlgorithm: str, digest: bytes) -> bytes
   :canonical: wfexs_backend.utils.digests.nullProcessDigest

   .. autodoc2-docstring:: wfexs_backend.utils.digests.nullProcessDigest

.. py:data:: VALID_NI_ALGOS
   :canonical: wfexs_backend.utils.digests.VALID_NI_ALGOS
   :type: Mapping[str, str]
   :value: None

   .. autodoc2-docstring:: wfexs_backend.utils.digests.VALID_NI_ALGOS

.. py:function:: nihDigester(digestAlgorithm: str, digest: bytes) -> wfexs_backend.common.Fingerprint
   :canonical: wfexs_backend.utils.digests.nihDigester

   .. autodoc2-docstring:: wfexs_backend.utils.digests.nihDigester

.. py:function:: ComputeDigestFromObject(obj: typing.Any, digestAlgorithm: str = DEFAULT_DIGEST_ALGORITHM, repMethod: Union[FingerprintMethod, RawFingerprintMethod] = stringifyDigest) -> Union[Fingerprint, bytes]
   :canonical: wfexs_backend.utils.digests.ComputeDigestFromObject

   .. autodoc2-docstring:: wfexs_backend.utils.digests.ComputeDigestFromObject

.. py:function:: ComputeDigestFromFileLike(filelike: IO[bytes], digestAlgorithm: str = DEFAULT_DIGEST_ALGORITHM, bufferSize: int = DEFAULT_DIGEST_BUFFER_SIZE, repMethod: Union[FingerprintMethod, RawFingerprintMethod] = stringifyDigest) -> Union[Fingerprint, bytes]
   :canonical: wfexs_backend.utils.digests.ComputeDigestFromFileLike

   .. autodoc2-docstring:: wfexs_backend.utils.digests.ComputeDigestFromFileLike

.. py:function:: ComputeDigestFromFile(filename: wfexs_backend.common.PathLikePath, digestAlgorithm: str = DEFAULT_DIGEST_ALGORITHM, bufferSize: int = DEFAULT_DIGEST_BUFFER_SIZE, repMethod: Union[FingerprintMethod, RawFingerprintMethod] = stringifyDigest) -> Optional[Union[Fingerprint, bytes]]
   :canonical: wfexs_backend.utils.digests.ComputeDigestFromFile

   .. autodoc2-docstring:: wfexs_backend.utils.digests.ComputeDigestFromFile

.. py:function:: compute_sha1_git_from_stream(stream: IO[bytes], length: int, buffer_size: int = DEFAULT_DIGEST_BUFFER_SIZE) -> hashlib._Hash
   :canonical: wfexs_backend.utils.digests.compute_sha1_git_from_stream

   .. autodoc2-docstring:: wfexs_backend.utils.digests.compute_sha1_git_from_stream

.. py:function:: compute_sha1_git_from_file(filename: str) -> hashlib._Hash
   :canonical: wfexs_backend.utils.digests.compute_sha1_git_from_file

   .. autodoc2-docstring:: wfexs_backend.utils.digests.compute_sha1_git_from_file

.. py:function:: compute_sha1_git_from_bytes(the_bytes: bytes) -> hashlib._Hash
   :canonical: wfexs_backend.utils.digests.compute_sha1_git_from_bytes

   .. autodoc2-docstring:: wfexs_backend.utils.digests.compute_sha1_git_from_bytes

.. py:function:: compute_sha1_git_from_string(the_string: str) -> hashlib._Hash
   :canonical: wfexs_backend.utils.digests.compute_sha1_git_from_string

   .. autodoc2-docstring:: wfexs_backend.utils.digests.compute_sha1_git_from_string

.. py:function:: process_dir_entries(dirname: str) -> Iterator[Tuple[bytes, hashlib._Hash, bytes, bool]]
   :canonical: wfexs_backend.utils.digests.process_dir_entries

   .. autodoc2-docstring:: wfexs_backend.utils.digests.process_dir_entries

.. py:function:: compute_sha1_git_from_dir(dirname: str) -> hashlib._Hash
   :canonical: wfexs_backend.utils.digests.compute_sha1_git_from_dir

   .. autodoc2-docstring:: wfexs_backend.utils.digests.compute_sha1_git_from_dir

.. py:function:: compute_sha1_git_from_any(path: str) -> Tuple[str, str]
   :canonical: wfexs_backend.utils.digests.compute_sha1_git_from_any

   .. autodoc2-docstring:: wfexs_backend.utils.digests.compute_sha1_git_from_any

.. py:function:: scantree(path: wfexs_backend.common.PathLikePath) -> Iterator[os.DirEntry[str]]
   :canonical: wfexs_backend.utils.digests.scantree

   .. autodoc2-docstring:: wfexs_backend.utils.digests.scantree

.. py:function:: ComputeDigestFromDirectory(dirname: wfexs_backend.common.PathLikePath, digestAlgorithm: str = DEFAULT_DIGEST_ALGORITHM, bufferSize: int = DEFAULT_DIGEST_BUFFER_SIZE, repMethod: wfexs_backend.utils.digests.FingerprintMethod = stringifyDigest) -> wfexs_backend.common.Fingerprint
   :canonical: wfexs_backend.utils.digests.ComputeDigestFromDirectory

   .. autodoc2-docstring:: wfexs_backend.utils.digests.ComputeDigestFromDirectory

.. py:function:: ComputeDigestFromGeneratedContentList(dirname: wfexs_backend.common.PathLikePath, theValues: Sequence[AbstractGeneratedContent], digestAlgorithm: str = DEFAULT_DIGEST_ALGORITHM, bufferSize: int = DEFAULT_DIGEST_BUFFER_SIZE, repMethod: wfexs_backend.utils.digests.FingerprintMethod = stringifyDigest) -> wfexs_backend.common.Fingerprint
   :canonical: wfexs_backend.utils.digests.ComputeDigestFromGeneratedContentList

   .. autodoc2-docstring:: wfexs_backend.utils.digests.ComputeDigestFromGeneratedContentList
