Replaced Optional with | None in schemas_in.py and schemas_out.py

This commit is contained in:
Jedrzej Kosinski 2025-12-13 15:14:19 -08:00
parent b3ec1b3f05
commit 098b3dd5d7
2 changed files with 22 additions and 22 deletions

View File

@ -1,6 +1,6 @@
import json import json
import uuid import uuid
from typing import Any, Literal, Optional from typing import Any, Literal
from pydantic import ( from pydantic import (
BaseModel, BaseModel,
@ -14,10 +14,10 @@ from pydantic import (
class ListAssetsQuery(BaseModel): class ListAssetsQuery(BaseModel):
include_tags: list[str] = Field(default_factory=list) include_tags: list[str] = Field(default_factory=list)
exclude_tags: list[str] = Field(default_factory=list) exclude_tags: list[str] = Field(default_factory=list)
name_contains: Optional[str] = None name_contains: str | None = None
# Accept either a JSON string (query param) or a dict # Accept either a JSON string (query param) or a dict
metadata_filter: Optional[dict[str, Any]] = None metadata_filter: dict[str, Any] | None = None
limit: conint(ge=1, le=500) = 20 limit: conint(ge=1, le=500) = 20
offset: conint(ge=0) = 0 offset: conint(ge=0) = 0
@ -60,7 +60,7 @@ class ListAssetsQuery(BaseModel):
class TagsListQuery(BaseModel): class TagsListQuery(BaseModel):
model_config = ConfigDict(extra="ignore", str_strip_whitespace=True) model_config = ConfigDict(extra="ignore", str_strip_whitespace=True)
prefix: Optional[str] = Field(None, min_length=1, max_length=256) prefix: str | None = Field(None, min_length=1, max_length=256)
limit: int = Field(100, ge=1, le=1000) limit: int = Field(100, ge=1, le=1000)
offset: int = Field(0, ge=0, le=10_000_000) offset: int = Field(0, ge=0, le=10_000_000)
order: Literal["count_desc", "name_asc"] = "count_desc" order: Literal["count_desc", "name_asc"] = "count_desc"
@ -68,7 +68,7 @@ class TagsListQuery(BaseModel):
@field_validator("prefix") @field_validator("prefix")
@classmethod @classmethod
def normalize_prefix(cls, v: Optional[str]) -> Optional[str]: def normalize_prefix(cls, v: str | None) -> str | None:
if v is None: if v is None:
return v return v
v = v.strip() v = v.strip()
@ -77,7 +77,7 @@ class TagsListQuery(BaseModel):
class SetPreviewBody(BaseModel): class SetPreviewBody(BaseModel):
"""Set or clear the preview for an AssetInfo. Provide an Asset.id or null.""" """Set or clear the preview for an AssetInfo. Provide an Asset.id or null."""
preview_id: Optional[str] = None preview_id: str | None = None
@field_validator("preview_id", mode="before") @field_validator("preview_id", mode="before")
@classmethod @classmethod

View File

@ -1,5 +1,5 @@
from datetime import datetime from datetime import datetime
from typing import Any, Optional from typing import Any
from pydantic import BaseModel, ConfigDict, Field, field_serializer from pydantic import BaseModel, ConfigDict, Field, field_serializer
@ -7,19 +7,19 @@ from pydantic import BaseModel, ConfigDict, Field, field_serializer
class AssetSummary(BaseModel): class AssetSummary(BaseModel):
id: str id: str
name: str name: str
asset_hash: Optional[str] asset_hash: str | None = None
size: Optional[int] = None size: int | None = None
mime_type: Optional[str] = None mime_type: str | None = None
tags: list[str] = Field(default_factory=list) tags: list[str] = Field(default_factory=list)
preview_url: Optional[str] = None preview_url: str | None = None
created_at: Optional[datetime] = None created_at: datetime | None = None
updated_at: Optional[datetime] = None updated_at: datetime | None = None
last_access_time: Optional[datetime] = None last_access_time: datetime | None = None
model_config = ConfigDict(from_attributes=True) model_config = ConfigDict(from_attributes=True)
@field_serializer("created_at", "updated_at", "last_access_time") @field_serializer("created_at", "updated_at", "last_access_time")
def _ser_dt(self, v: Optional[datetime], _info): def _ser_dt(self, v: datetime | None, _info):
return v.isoformat() if v else None return v.isoformat() if v else None
@ -32,19 +32,19 @@ class AssetsList(BaseModel):
class AssetDetail(BaseModel): class AssetDetail(BaseModel):
id: str id: str
name: str name: str
asset_hash: Optional[str] asset_hash: str | None = None
size: Optional[int] = None size: int | None = None
mime_type: Optional[str] = None mime_type: str | None = None
tags: list[str] = Field(default_factory=list) tags: list[str] = Field(default_factory=list)
user_metadata: dict[str, Any] = Field(default_factory=dict) user_metadata: dict[str, Any] = Field(default_factory=dict)
preview_id: Optional[str] = None preview_id: str | None = None
created_at: Optional[datetime] = None created_at: datetime | None = None
last_access_time: Optional[datetime] = None last_access_time: datetime | None = None
model_config = ConfigDict(from_attributes=True) model_config = ConfigDict(from_attributes=True)
@field_serializer("created_at", "last_access_time") @field_serializer("created_at", "last_access_time")
def _ser_dt(self, v: Optional[datetime], _info): def _ser_dt(self, v: datetime | None, _info):
return v.isoformat() if v else None return v.isoformat() if v else None