From e2e0602114ccdf142b3ef0f30c67d2cb7a58ef7e Mon Sep 17 00:00:00 2001 From: Bryan Newbold Date: Mon, 4 Oct 2021 13:01:58 -0700 Subject: progress on fileset/dataset ingest --- python/sandcrawler/fileset_types.py | 43 +++++++++++++++++++++++++++++++++++++ 1 file changed, 43 insertions(+) create mode 100644 python/sandcrawler/fileset_types.py (limited to 'python/sandcrawler/fileset_types.py') diff --git a/python/sandcrawler/fileset_types.py b/python/sandcrawler/fileset_types.py new file mode 100644 index 0000000..f0f03db --- /dev/null +++ b/python/sandcrawler/fileset_types.py @@ -0,0 +1,43 @@ + +from enum import Enum + +from pydantic import BaseModel + +class IngestStrategy(str, Enum): + WebFile = "web-file" + WebFileset = "web-fileset" + WebFilesetBundled = "web-fileset-bundled" + ArchiveorgFile = "archiveorg-file" + ArchiveorgFileset = "archiveorg-fileset" + ArchiveorgFilesetBundled = "archiveorg-fileset-bundled" + +class FilesetManifestFile(BaseModel): + path: str + size: Optional[int] + md5: Optional[str] + sha1: Optional[str] + sha256: Optional[str] + mimetype: Optional[str] + + status: Optional[str] + platform_url: Optional[str] + terminal_url: Optional[str] + terminal_dt: Optional[str] + extra: Optional[Dict[str, Any]] + +class DatasetPlatformItem(BaseModel): + platform_name: str + platform_status: str + manifest: Optional[List[FilesetManifestFile]] + + platform_domain: Optional[str] + platform_id: Optional[str] + archiveorg_item_name: Optional[str] + archiveorg_collection: Optional[str] + web_base_url: Optional[str] + web_bundle_url: Optional[str] + +class ArchiveStrategyResult(BaseModel): + ingest_strategy: str + status: str + manifest: List[FilesetManifestFile] -- cgit v1.2.3