Spaces:
Running
Running
Jeremiah Lowin commited on
Commit ·
94b1690
1
Parent(s): 8dcb38e
Add typing
Browse files
src/fastmcp/server/context.py
CHANGED
|
@@ -253,7 +253,9 @@ class Context:
|
|
| 253 |
|
| 254 |
return fastmcp.server.dependencies.get_http_request()
|
| 255 |
|
| 256 |
-
def _parse_model_preferences(
|
|
|
|
|
|
|
| 257 |
"""
|
| 258 |
Validates and converts user input for model_preferences into a ModelPreferences object.
|
| 259 |
|
|
@@ -273,12 +275,12 @@ class Context:
|
|
| 273 |
"""
|
| 274 |
if model_preferences is None:
|
| 275 |
return None
|
| 276 |
-
|
| 277 |
return model_preferences
|
| 278 |
-
|
| 279 |
# Single model hint
|
| 280 |
return ModelPreferences(hints=[ModelHint(name=model_preferences)])
|
| 281 |
-
|
| 282 |
# List of model hints (strings)
|
| 283 |
if not all(isinstance(h, str) for h in model_preferences):
|
| 284 |
raise ValueError(
|
|
@@ -288,6 +290,7 @@ class Context:
|
|
| 288 |
return ModelPreferences(
|
| 289 |
hints=[ModelHint(name=h) for h in model_preferences]
|
| 290 |
)
|
| 291 |
-
|
| 292 |
-
|
| 293 |
-
|
|
|
|
|
|
| 253 |
|
| 254 |
return fastmcp.server.dependencies.get_http_request()
|
| 255 |
|
| 256 |
+
def _parse_model_preferences(
|
| 257 |
+
self, model_preferences: ModelPreferences | str | list[str] | None
|
| 258 |
+
) -> ModelPreferences | None:
|
| 259 |
"""
|
| 260 |
Validates and converts user input for model_preferences into a ModelPreferences object.
|
| 261 |
|
|
|
|
| 275 |
"""
|
| 276 |
if model_preferences is None:
|
| 277 |
return None
|
| 278 |
+
elif isinstance(model_preferences, ModelPreferences):
|
| 279 |
return model_preferences
|
| 280 |
+
elif isinstance(model_preferences, str):
|
| 281 |
# Single model hint
|
| 282 |
return ModelPreferences(hints=[ModelHint(name=model_preferences)])
|
| 283 |
+
elif isinstance(model_preferences, list):
|
| 284 |
# List of model hints (strings)
|
| 285 |
if not all(isinstance(h, str) for h in model_preferences):
|
| 286 |
raise ValueError(
|
|
|
|
| 290 |
return ModelPreferences(
|
| 291 |
hints=[ModelHint(name=h) for h in model_preferences]
|
| 292 |
)
|
| 293 |
+
else:
|
| 294 |
+
raise ValueError(
|
| 295 |
+
"model_preferences must be one of: ModelPreferences, str, list[str], or None."
|
| 296 |
+
)
|