mirror of
https://github.com/comfyanonymous/ComfyUI.git
synced 2026-02-07 03:52:32 +08:00
64 lines
1.5 KiB
Python
64 lines
1.5 KiB
Python
from dataclasses import dataclass
|
|
from datetime import datetime
|
|
|
|
|
|
@dataclass(frozen=True)
|
|
class AssetData:
|
|
"""Plain data extracted from an Asset ORM object."""
|
|
hash: str
|
|
size_bytes: int | None
|
|
mime_type: str | None
|
|
|
|
|
|
@dataclass(frozen=True)
|
|
class AssetInfoData:
|
|
"""Plain data extracted from an AssetInfo ORM object."""
|
|
id: str
|
|
name: str
|
|
user_metadata: dict | None
|
|
preview_id: str | None
|
|
created_at: datetime
|
|
updated_at: datetime
|
|
last_access_time: datetime | None
|
|
|
|
|
|
@dataclass(frozen=True)
|
|
class AssetDetailResult:
|
|
"""Result from get_asset_detail and similar operations."""
|
|
info: AssetInfoData
|
|
asset: AssetData | None
|
|
tags: list[str]
|
|
|
|
|
|
@dataclass(frozen=True)
|
|
class RegisterAssetResult:
|
|
"""Result from register_existing_asset."""
|
|
info: AssetInfoData
|
|
asset: AssetData
|
|
tags: list[str]
|
|
created: bool
|
|
|
|
|
|
def extract_info_data(info) -> AssetInfoData:
|
|
"""Extract plain data from an AssetInfo ORM object."""
|
|
return AssetInfoData(
|
|
id=info.id,
|
|
name=info.name,
|
|
user_metadata=info.user_metadata,
|
|
preview_id=info.preview_id,
|
|
created_at=info.created_at,
|
|
updated_at=info.updated_at,
|
|
last_access_time=info.last_access_time,
|
|
)
|
|
|
|
|
|
def extract_asset_data(asset) -> AssetData | None:
|
|
"""Extract plain data from an Asset ORM object."""
|
|
if asset is None:
|
|
return None
|
|
return AssetData(
|
|
hash=asset.hash,
|
|
size_bytes=asset.size_bytes,
|
|
mime_type=asset.mime_type,
|
|
)
|