1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39
|
from datetime import timedelta
from typing import Any, Dict, Optional, Type
from pydantic import BaseModel, Field
from pymongo.asynchronous.collection import AsyncCollection
from pymongo.asynchronous.database import AsyncDatabase
from beanie.odm.utils.pydantic import IS_PYDANTIC_V2
if IS_PYDANTIC_V2:
from pydantic import ConfigDict
class ItemSettings(BaseModel):
name: Optional[str] = None
use_cache: bool = False
cache_capacity: int = 32
cache_expiration_time: timedelta = timedelta(minutes=10)
bson_encoders: Dict[Any, Any] = Field(default_factory=dict)
projection: Optional[Dict[str, Any]] = None
pymongo_db: Optional[AsyncDatabase] = None
pymongo_collection: Optional[AsyncCollection] = None
union_doc: Optional[Type] = None
union_doc_alias: Optional[str] = None
class_id: str = "_class_id"
is_root: bool = False
if IS_PYDANTIC_V2:
model_config = ConfigDict(
arbitrary_types_allowed=True,
)
else:
class Config:
arbitrary_types_allowed = True
|