wfexs_backend.fetchers#
Subpackages#
Submodules#
wfexs_backend.fetchers.b2sharewfexs_backend.fetchers.sftpwfexs_backend.fetchers.httpwfexs_backend.fetchers.drswfexs_backend.fetchers.gitwfexs_backend.fetchers.osf_iowfexs_backend.fetchers.faspwfexs_backend.fetchers.wiktionarywfexs_backend.fetchers.gswfexs_backend.fetchers.s3wfexs_backend.fetchers.trs_fileswfexs_backend.fetchers.filewfexs_backend.fetchers.doiwfexs_backend.fetchers.zenodowfexs_backend.fetchers.pridewfexs_backend.fetchers.datawfexs_backend.fetchers.ftpwfexs_backend.fetchers.swh
Package Contents#
Classes#
Abstract class to model stateful fetchers |
|
Remote repository description |
|
Data#
API#
- class wfexs_backend.fetchers.ProtocolFetcherReturn#
Bases:
typing.NamedTuple- kind_or_resolved: AnyURI | ContentKind | Sequence[AnyURI] = None#
- metadata_array: Sequence[URIWithMetadata] = None#
- class wfexs_backend.fetchers.DocumentedProtocolFetcher#
Bases:
typing.NamedTuple- fetcher: wfexs_backend.fetchers.ProtocolFetcher = None#
- class wfexs_backend.fetchers.DocumentedStatefulProtocolFetcher#
Bases:
typing.NamedTuple- fetcher_class: Type[AbstractStatefulFetcher] = None#
- exception wfexs_backend.fetchers.FetcherException(msg: str, code: str | int | None = None, reason: str | None = None)#
- exception wfexs_backend.fetchers.InvalidFetcherException(msg: str, code: str | int | None = None, reason: str | None = None)#
- exception wfexs_backend.fetchers.FetcherInstanceException(msg: str, code: str | int | None = None, reason: str | None = None)#
- class wfexs_backend.fetchers.AbstractStatefulFetcher(progs: wfexs_backend.common.ProgsMapping = dict(), setup_block: Mapping[str, Any] | None = None)#
Bases:
abc.ABCAbstract class to model stateful fetchers
Initialization
- abstract fetch(remote_file: wfexs_backend.common.URIType, cachedFilename: wfexs_backend.common.PathLikePath, secContext: SecurityContextConfig | None = None) wfexs_backend.fetchers.ProtocolFetcherReturn#
This is the method to be implemented by the stateful fetcher
- abstract classmethod GetSchemeHandlers() Mapping[str, DocumentedStatefulProtocolFetcher]#
- abstract classmethod GetNeededPrograms() Sequence[SymbolicName]#
- static ParseAndRemoveCredentials(remote_file: wfexs_backend.common.URIType) Tuple[parse.ParseResult, URIType]#
- exception wfexs_backend.fetchers.RepoGuessException(msg: str, code: str | int | None = None, reason: str | None = None)#
- class wfexs_backend.fetchers.RepoType(*args, **kwds)#
Bases:
enum.Enum- Git = 'git'#
- Raw = 'raw'#
- Other = 'other'#
- SoftwareHeritage = 'swh'#
- TRS = 'trs'#
- class wfexs_backend.fetchers.RepoGuessFlavor(*args, **kwds)#
Bases:
enum.Enum- GitHub = 'github'#
- GitLab = 'gitlab'#
- BitBucket = 'bitbucket'#
- class wfexs_backend.fetchers.RemoteRepo#
Bases:
typing.NamedTupleRemote repository description
- repo_url: wfexs_backend.common.RepoURL = None#
- guess_flavor: RepoGuessFlavor | None = None#
- get_checkout() wfexs_backend.common.RepoTag#
- class wfexs_backend.fetchers.AbstractRepoFetcher(progs: wfexs_backend.common.ProgsMapping = dict(), setup_block: Mapping[str, Any] | None = None)#
Bases:
wfexs_backend.fetchers.AbstractStatefulFetcher- abstract materialize_repo(repoURL: wfexs_backend.common.RepoURL, repoTag: RepoTag | None = None, repo_tag_destdir: PathLikePath | None = None, base_repo_destdir: PathLikePath | None = None, doUpdate: bool | None = True) Tuple[pathlib.Path, RemoteRepo, Sequence[URIWithMetadata]]#
- abstract build_pid_from_repo(remote_repo: wfexs_backend.fetchers.RemoteRepo) str | None#
This method is required to generate a PID which usually represents an element (usually a workflow) in a repository. If the fetcher does not recognize the type of repo, it should return None
- abstract classmethod GuessRepoParams(orig_wf_url: URIType | parse.ParseResult, logger: logging.Logger | None = None, fail_ok: bool = False) RemoteRepo | None#
- class wfexs_backend.fetchers.AbstractStatefulStreamingFetcher(progs: wfexs_backend.common.ProgsMapping = dict(), setup_block: Mapping[str, Any] | None = None)#
Bases:
wfexs_backend.fetchers.AbstractStatefulFetcher- fetch(remote_file: wfexs_backend.common.URIType, cachedFilename: wfexs_backend.common.PathLikePath, secContext: SecurityContextConfig | None = None) wfexs_backend.fetchers.ProtocolFetcherReturn#
- abstract streamfetch(remote_file: wfexs_backend.common.URIType, dest_stream: IO[bytes], secContext: SecurityContextConfig | None = None) wfexs_backend.fetchers.ProtocolFetcherReturn#
This is the method to be implemented by the stateful streaming fetcher which can receive as destination either a file