:py:mod:`wfexs_backend.fetchers.swh`
====================================

.. py:module:: wfexs_backend.fetchers.swh

.. autodoc2-docstring:: wfexs_backend.fetchers.swh
   :allowtitles:

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

Classes
~~~~~~~

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

   * - :py:obj:`SoftwareHeritageFetcher <wfexs_backend.fetchers.swh.SoftwareHeritageFetcher>`
     -

API
~~~

.. py:class:: SoftwareHeritageFetcher(progs: wfexs_backend.common.ProgsMapping = dict(), setup_block: Optional[Mapping[str, Any]] = None)
   :canonical: wfexs_backend.fetchers.swh.SoftwareHeritageFetcher

   Bases: :py:obj:`wfexs_backend.fetchers.AbstractRepoFetcher`

   .. py:attribute:: SOFTWARE_HERITAGE_SCHEME
      :canonical: wfexs_backend.fetchers.swh.SoftwareHeritageFetcher.SOFTWARE_HERITAGE_SCHEME
      :type: Final[str]
      :value: 'swh'

      .. autodoc2-docstring:: wfexs_backend.fetchers.swh.SoftwareHeritageFetcher.SOFTWARE_HERITAGE_SCHEME

   .. py:attribute:: SWH_API_REST
      :canonical: wfexs_backend.fetchers.swh.SoftwareHeritageFetcher.SWH_API_REST
      :type: Final[str]
      :value: 'https://archive.softwareheritage.org/api/1/'

      .. autodoc2-docstring:: wfexs_backend.fetchers.swh.SoftwareHeritageFetcher.SWH_API_REST

   .. py:attribute:: SWH_API_REST_KNOWN
      :canonical: wfexs_backend.fetchers.swh.SoftwareHeritageFetcher.SWH_API_REST_KNOWN
      :type: Final[URIType]
      :value: 'cast(...)'

      .. autodoc2-docstring:: wfexs_backend.fetchers.swh.SoftwareHeritageFetcher.SWH_API_REST_KNOWN

   .. py:attribute:: SWH_API_REST_RESOLVE
      :canonical: wfexs_backend.fetchers.swh.SoftwareHeritageFetcher.SWH_API_REST_RESOLVE
      :type: Final[str]
      :value: 'urljoin(...)'

      .. autodoc2-docstring:: wfexs_backend.fetchers.swh.SoftwareHeritageFetcher.SWH_API_REST_RESOLVE

   .. py:attribute:: SWH_API_REST_RELEASE
      :canonical: wfexs_backend.fetchers.swh.SoftwareHeritageFetcher.SWH_API_REST_RELEASE
      :type: Final[str]
      :value: 'urljoin(...)'

      .. autodoc2-docstring:: wfexs_backend.fetchers.swh.SoftwareHeritageFetcher.SWH_API_REST_RELEASE

   .. py:attribute:: SWH_API_REST_REVISION
      :canonical: wfexs_backend.fetchers.swh.SoftwareHeritageFetcher.SWH_API_REST_REVISION
      :type: Final[str]
      :value: 'urljoin(...)'

      .. autodoc2-docstring:: wfexs_backend.fetchers.swh.SoftwareHeritageFetcher.SWH_API_REST_REVISION

   .. py:attribute:: SWH_API_REST_VAULT_FLAT
      :canonical: wfexs_backend.fetchers.swh.SoftwareHeritageFetcher.SWH_API_REST_VAULT_FLAT
      :type: Final[str]
      :value: 'urljoin(...)'

      .. autodoc2-docstring:: wfexs_backend.fetchers.swh.SoftwareHeritageFetcher.SWH_API_REST_VAULT_FLAT

   .. py:attribute:: SWH_API_REST_CONTENT
      :canonical: wfexs_backend.fetchers.swh.SoftwareHeritageFetcher.SWH_API_REST_CONTENT
      :type: Final[str]
      :value: 'urljoin(...)'

      .. autodoc2-docstring:: wfexs_backend.fetchers.swh.SoftwareHeritageFetcher.SWH_API_REST_CONTENT

   .. py:attribute:: DIR_RETRIES
      :canonical: wfexs_backend.fetchers.swh.SoftwareHeritageFetcher.DIR_RETRIES
      :type: Final[int]
      :value: 60

      .. autodoc2-docstring:: wfexs_backend.fetchers.swh.SoftwareHeritageFetcher.DIR_RETRIES

   .. py:attribute:: WAIT_SECS
      :canonical: wfexs_backend.fetchers.swh.SoftwareHeritageFetcher.WAIT_SECS
      :type: Final[int]
      :value: 60

      .. autodoc2-docstring:: wfexs_backend.fetchers.swh.SoftwareHeritageFetcher.WAIT_SECS

   .. py:method:: GetSchemeHandlers() -> Mapping[str, DocumentedStatefulProtocolFetcher]
      :canonical: wfexs_backend.fetchers.swh.SoftwareHeritageFetcher.GetSchemeHandlers
      :classmethod:

      .. autodoc2-docstring:: wfexs_backend.fetchers.swh.SoftwareHeritageFetcher.GetSchemeHandlers

   .. py:property:: description
      :canonical: wfexs_backend.fetchers.swh.SoftwareHeritageFetcher.description
      :type: str

   .. py:method:: GetNeededPrograms() -> Sequence[SymbolicName]
      :canonical: wfexs_backend.fetchers.swh.SoftwareHeritageFetcher.GetNeededPrograms
      :classmethod:

      .. autodoc2-docstring:: wfexs_backend.fetchers.swh.SoftwareHeritageFetcher.GetNeededPrograms

   .. py:method:: _resolve_swh_id(the_id: wfexs_backend.common.URIType) -> Tuple[Mapping[str, Any], MutableSequence[URIWithMetadata]]
      :canonical: wfexs_backend.fetchers.swh.SoftwareHeritageFetcher._resolve_swh_id
      :classmethod:

      .. autodoc2-docstring:: wfexs_backend.fetchers.swh.SoftwareHeritageFetcher._resolve_swh_id

   .. py:method:: GuessRepoParams(orig_wf_url: Union[URIType, parse.ParseResult], logger: Optional[logging.Logger] = None, fail_ok: bool = False) -> Optional[RemoteRepo]
      :canonical: wfexs_backend.fetchers.swh.SoftwareHeritageFetcher.GuessRepoParams
      :classmethod:

      .. autodoc2-docstring:: wfexs_backend.fetchers.swh.SoftwareHeritageFetcher.GuessRepoParams

   .. py:method:: build_pid_from_repo(remote_repo: wfexs_backend.fetchers.RemoteRepo) -> Optional[str]
      :canonical: wfexs_backend.fetchers.swh.SoftwareHeritageFetcher.build_pid_from_repo

      .. autodoc2-docstring:: wfexs_backend.fetchers.swh.SoftwareHeritageFetcher.build_pid_from_repo

   .. py:method:: materialize_repo(repoURL: wfexs_backend.common.RepoURL, repoTag: Optional[RepoTag] = None, repo_tag_destdir: Optional[PathLikePath] = None, base_repo_destdir: Optional[PathLikePath] = None, doUpdate: Optional[bool] = True) -> Tuple[pathlib.Path, RemoteRepo, Sequence[URIWithMetadata]]
      :canonical: wfexs_backend.fetchers.swh.SoftwareHeritageFetcher.materialize_repo

      .. autodoc2-docstring:: wfexs_backend.fetchers.swh.SoftwareHeritageFetcher.materialize_repo

   .. py:method:: fetch(remote_file: wfexs_backend.common.URIType, cachedFilename: wfexs_backend.common.PathLikePath, secContext: Optional[SecurityContextConfig] = None) -> wfexs_backend.fetchers.ProtocolFetcherReturn
      :canonical: wfexs_backend.fetchers.swh.SoftwareHeritageFetcher.fetch
