Models¶
All models are importable directly from pycomad:
Enumerations¶
pycomad.models.AccessLevel
¶
Bases: str, Enum
Visibility level of a category.
pycomad.models.FieldType
¶
Bases: str, Enum
Data type of a custom field schema.
Auth¶
pycomad.models.LoginInfo
dataclass
¶
LoginInfo(token: str, user_id: str, email: str, username: str, roles: List[str], permissions: List[str])
Session information returned by a successful :meth:ComadClient.login call.
Assets¶
pycomad.models.Asset
dataclass
¶
Asset(id: UUID, owner_id: str, name: str, asset_type: str, size: int, storage_key: str, bucket: str, available: bool, is_locked: bool, is_private: bool, public_read: bool, public_download: bool, public_write: bool, created_at: datetime, updated_at: datetime, description: Optional[str] = None, caption: Optional[str] = None, keywords: Optional[str] = None, creator: Optional[str] = None, copyright_notice: Optional[str] = None, available_until: Optional[datetime] = None, team_id: Optional[str] = None, custom_fields: Optional[Any] = None)
A digital asset record.
pycomad.models.AssetWithCategories
dataclass
¶
An asset with its associated categories.
pycomad.models.AssetMetadata
dataclass
¶
AssetMetadata(asset_id: UUID, extracted_at: datetime, exif: Optional[Dict[str, Any]] = None, iptc: Optional[Dict[str, Any]] = None, xmp: Optional[Dict[str, Any]] = None)
Extracted EXIF, IPTC, and XMP metadata for an asset.
pycomad.models.AssetMetadataSummary
dataclass
¶
AssetMetadataSummary(extracted_at: datetime, exif: Optional[Dict[str, Any]] = None, iptc: Optional[Dict[str, Any]] = None, xmp: Optional[Dict[str, Any]] = None)
Subset of metadata returned inline with search results.
pycomad.models.AssetSearchResult
dataclass
¶
A single search hit: the asset record plus its extracted metadata (if any).
Categories¶
pycomad.models.Category
dataclass
¶
Category(id: UUID, name: str, access_level: AccessLevel, created_at: datetime, updated_at: datetime, description: Optional[str] = None, parent_id: Optional[UUID] = None, creator: Optional[str] = None)
A category used to organise assets.
pycomad.models.CategoryWithChildren
dataclass
¶
A category with its direct sub-categories.
Custom Fields¶
pycomad.models.CustomFieldSchema
dataclass
¶
CustomFieldSchema(id: UUID, team_id: str, key: str, name: str, field_type: FieldType, required: bool, created_at: datetime, updated_at: datetime)
A custom field schema defined for a team.
The key is an immutable slug used as the JSONB property key on assets.
The name is the editable human-readable display label.
Usage & ZIP¶
pycomad.models.UsageSummary
dataclass
¶
UsageSummary(used_bytes: int, asset_count: int, category_count: int, storage_limit_bytes: Optional[int] = None, asset_limit: Optional[int] = None, category_limit: Optional[int] = None)
pycomad.models.ZipUploadResult
dataclass
¶
ZipUploadResult(categories: List[Category], assets: List[Asset], asset_category_ids: Dict[str, List[str]], errors: List[str])
Result of a ZIP batch import.
The archive's directory tree is mirrored as a category hierarchy. Every file in the archive becomes an asset linked to its directory's category.