freeleaps-ops/venv/lib/python3.12/site-packages/beanie/odm/settings/base.py

40 lines
1.0 KiB
Python

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