mirror of
https://github.com/meta-llama/llama-stack.git
synced 2025-10-03 19:57:35 +00:00
mypy
This commit is contained in:
parent
3b7982c59f
commit
44c702f9ca
2 changed files with 7 additions and 5 deletions
|
@ -570,15 +570,17 @@ def get_class_properties(typ: type) -> Iterable[Tuple[str, type | str]]:
|
||||||
elif hasattr(typ, "model_fields"):
|
elif hasattr(typ, "model_fields"):
|
||||||
# Pydantic BaseModel - use model_fields to exclude ClassVar and other non-field attributes
|
# Pydantic BaseModel - use model_fields to exclude ClassVar and other non-field attributes
|
||||||
# Reconstruct Annotated type if discriminator exists to preserve metadata
|
# Reconstruct Annotated type if discriminator exists to preserve metadata
|
||||||
from typing import Annotated
|
from typing import Annotated, Any, cast
|
||||||
from pydantic.fields import FieldInfo
|
from pydantic.fields import FieldInfo
|
||||||
|
|
||||||
def get_field_type(name: str, field) -> type | str:
|
def get_field_type(name: str, field: Any) -> type | str:
|
||||||
# If field has discriminator, wrap in Annotated to preserve it for schema generation
|
# If field has discriminator, wrap in Annotated to preserve it for schema generation
|
||||||
if field.discriminator:
|
if field.discriminator:
|
||||||
field_info = FieldInfo(annotation=None, discriminator=field.discriminator)
|
field_info = FieldInfo(annotation=None, discriminator=field.discriminator)
|
||||||
return Annotated[field.annotation, field_info]
|
# Annotated returns _AnnotatedAlias which isn't a type but is valid here
|
||||||
return field.annotation
|
return Annotated[field.annotation, field_info] # type: ignore[return-value]
|
||||||
|
# field.annotation can be Union types, Annotated, etc. which aren't type but are valid
|
||||||
|
return field.annotation # type: ignore[return-value,no-any-return]
|
||||||
|
|
||||||
return ((name, get_field_type(name, field)) for name, field in typ.model_fields.items())
|
return ((name, get_field_type(name, field)) for name, field in typ.model_fields.items())
|
||||||
else:
|
else:
|
||||||
|
|
|
@ -92,7 +92,7 @@ def get_class_property_docstrings(
|
||||||
:returns: A dictionary mapping property names to descriptions.
|
:returns: A dictionary mapping property names to descriptions.
|
||||||
"""
|
"""
|
||||||
|
|
||||||
result = {}
|
result: Dict[str, str] = {}
|
||||||
# Only try to get MRO if data_type is actually a class
|
# Only try to get MRO if data_type is actually a class
|
||||||
# Special types like Literal, Union, etc. don't have MRO
|
# Special types like Literal, Union, etc. don't have MRO
|
||||||
if not inspect.isclass(data_type):
|
if not inspect.isclass(data_type):
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue