11import logging
22import time
3- from typing import Dict , List , Optional
43
54import httpx
65
@@ -17,7 +16,7 @@ class ModelRegistry:
1716 """
1817
1918 # Model capabilities database (fallback for known models)
20- KNOWN_CAPABILITIES : Dict [str , ModelCapabilities ] = {
19+ KNOWN_CAPABILITIES : dict [str , ModelCapabilities ] = {
2120 "dall-e-2" : ModelCapabilities (
2221 supports_quality = False , supports_aspect_ratios = ["1:1" ], max_images = 4
2322 ),
@@ -40,8 +39,8 @@ class ModelRegistry:
4039 }
4140
4241 def __init__ (self ):
43- self ._models : List [ModelInfo ] = []
44- self ._cache_timestamp : Optional [ float ] = None
42+ self ._models : list [ModelInfo ] = []
43+ self ._cache_timestamp : float | None = None
4544
4645 @property
4746 def cache_valid (self ) -> bool :
@@ -52,14 +51,14 @@ def cache_valid(self) -> bool:
5251 return age < settings .MODEL_CACHE_TTL
5352
5453 @property
55- def cache_age (self ) -> Optional [ int ] :
54+ def cache_age (self ) -> int | None :
5655 """Get cache age in seconds."""
5756 if not self ._cache_timestamp :
5857 return None
5958 return int (time .time () - self ._cache_timestamp )
6059
6160 @property
62- def cache_expires_in (self ) -> Optional [ int ] :
61+ def cache_expires_in (self ) -> int | None :
6362 """Get seconds until cache expiration."""
6463 if not self ._cache_timestamp :
6564 return None
@@ -69,7 +68,7 @@ def cache_expires_in(self) -> Optional[int]:
6968 remaining = settings .MODEL_CACHE_TTL - age
7069 return max (0 , remaining )
7170
72- async def load_models (self , force : bool = False ) -> List [ModelInfo ]:
71+ async def load_models (self , force : bool = False ) -> list [ModelInfo ]:
7372 """
7473 Load available models from LiteLLM or fallback to static list.
7574
@@ -104,7 +103,7 @@ async def load_models(self, force: bool = False) -> List[ModelInfo]:
104103
105104 return self ._models
106105
107- async def _load_from_litellm (self ) -> List [ModelInfo ]:
106+ async def _load_from_litellm (self ) -> list [ModelInfo ]:
108107 """
109108 Load models from LiteLLM /v1/models endpoint.
110109 """
@@ -135,7 +134,7 @@ async def _load_from_litellm(self) -> List[ModelInfo]:
135134
136135 return models
137136
138- def _get_static_models (self ) -> List [ModelInfo ]:
137+ def _get_static_models (self ) -> list [ModelInfo ]:
139138 """
140139 Return static list of known models based on available API keys.
141140 """
@@ -201,13 +200,13 @@ def _get_capabilities(self, model_id: str) -> ModelCapabilities:
201200 max_images = 4 ,
202201 )
203202
204- def get_models (self ) -> List [ModelInfo ]:
203+ def get_models (self ) -> list [ModelInfo ]:
205204 """
206205 Get cached models (non-async).
207206 """
208207 return self ._models
209208
210- def get_model (self , model_id : str ) -> Optional [ ModelInfo ] :
209+ def get_model (self , model_id : str ) -> ModelInfo | None :
211210 """
212211 Get specific model info.
213212 """
0 commit comments