Fix pydantic issues impacting autodoc

This commit is contained in:
Mark Backman
2026-01-15 17:02:30 -05:00
parent 60216048a8
commit 21aaa48e62
3 changed files with 16 additions and 15 deletions

View File

@@ -1002,17 +1002,15 @@ class TokenDetails(BaseModel):
image_tokens: Number of image tokens used (for input only). image_tokens: Number of image tokens used (for input only).
""" """
model_config = ConfigDict(extra="allow")
__pydantic_extra__: dict[str, Any]
cached_tokens: Optional[int] = 0 cached_tokens: Optional[int] = 0
text_tokens: Optional[int] = 0 text_tokens: Optional[int] = 0
audio_tokens: Optional[int] = 0 audio_tokens: Optional[int] = 0
cached_tokens_details: Optional[CachedTokensDetails] = None cached_tokens_details: Optional[CachedTokensDetails] = None
image_tokens: Optional[int] = 0 image_tokens: Optional[int] = 0
class Config:
"""Pydantic configuration for TokenDetails."""
extra = "allow"
class Usage(BaseModel): class Usage(BaseModel):
"""Token usage statistics for a response. """Token usage statistics for a response.

View File

@@ -877,15 +877,13 @@ class TokenDetails(BaseModel):
audio_tokens: Number of audio tokens used. Defaults to 0. audio_tokens: Number of audio tokens used. Defaults to 0.
""" """
model_config = ConfigDict(extra="allow")
__pydantic_extra__: dict[str, Any]
cached_tokens: Optional[int] = 0 cached_tokens: Optional[int] = 0
text_tokens: Optional[int] = 0 text_tokens: Optional[int] = 0
audio_tokens: Optional[int] = 0 audio_tokens: Optional[int] = 0
class Config:
"""Pydantic configuration for TokenDetails."""
extra = "allow"
class Usage(BaseModel): class Usage(BaseModel):
"""Token usage statistics for a response. """Token usage statistics for a response.

View File

@@ -10,11 +10,11 @@ Methods that wrap the Daily API to create rooms, check room URLs, and get meetin
""" """
import time import time
from typing import Dict, List, Literal, Optional from typing import Any, Dict, List, Literal, Optional
from urllib.parse import urlparse from urllib.parse import urlparse
import aiohttp import aiohttp
from pydantic import BaseModel, Field, ValidationError from pydantic import BaseModel, ConfigDict, Field, ValidationError
class DailyRoomSipParams(BaseModel): class DailyRoomSipParams(BaseModel):
@@ -77,7 +77,7 @@ class TranscriptionBucketConfig(BaseModel):
allow_api_access: bool = False allow_api_access: bool = False
class DailyRoomProperties(BaseModel, extra="allow"): class DailyRoomProperties(BaseModel):
"""Properties for configuring a Daily room. """Properties for configuring a Daily room.
Reference: https://docs.daily.co/reference/rest-api/rooms/create-room#properties Reference: https://docs.daily.co/reference/rest-api/rooms/create-room#properties
@@ -100,6 +100,11 @@ class DailyRoomProperties(BaseModel, extra="allow"):
start_video_off: Whether video is off by default. start_video_off: Whether video is off by default.
""" """
model_config = ConfigDict(extra="allow")
# Pydantic v2.12+ requires explicit annotation for extra fields
__pydantic_extra__: dict[str, Any]
exp: Optional[float] = None exp: Optional[float] = None
enable_chat: bool = False enable_chat: bool = False
enable_prejoin_ui: bool = False enable_prejoin_ui: bool = False
@@ -113,7 +118,7 @@ class DailyRoomProperties(BaseModel, extra="allow"):
recordings_bucket: Optional[RecordingsBucketConfig] = None recordings_bucket: Optional[RecordingsBucketConfig] = None
transcription_bucket: Optional[TranscriptionBucketConfig] = None transcription_bucket: Optional[TranscriptionBucketConfig] = None
sip: Optional[DailyRoomSipParams] = None sip: Optional[DailyRoomSipParams] = None
sip_uri: Optional[dict] = None sip_uri: Optional[Dict[str, Any]] = None
start_video_off: bool = False start_video_off: bool = False
@property @property
@@ -203,7 +208,7 @@ class DailyMeetingTokenProperties(BaseModel):
enable_recording: Optional[Literal["cloud", "local", "raw-tracks"]] = None enable_recording: Optional[Literal["cloud", "local", "raw-tracks"]] = None
enable_prejoin_ui: Optional[bool] = None enable_prejoin_ui: Optional[bool] = None
start_cloud_recording: Optional[bool] = None start_cloud_recording: Optional[bool] = None
permissions: Optional[dict] = None permissions: Optional[Dict[str, Any]] = None
class DailyMeetingTokenParams(BaseModel): class DailyMeetingTokenParams(BaseModel):