Skip to content

Commit

Permalink
Merge pull request #57 from jurasofish/Avoid-new-try_eval_type-unavai…
Browse files Browse the repository at this point in the history
…lable-on-older-pydantic

Avoid new try_eval_type unavailable with older pydantic
  • Loading branch information
jlowin authored Dec 9, 2024
2 parents 8518816 + 2c89684 commit fa5ebd7
Showing 1 changed file with 2 additions and 7 deletions.
9 changes: 2 additions & 7 deletions src/fastmcp/utilities/func_metadata.py
Original file line number Diff line number Diff line change
Expand Up @@ -8,7 +8,7 @@
)
from pydantic import Field
from fastmcp.exceptions import InvalidSignature
from pydantic._internal._typing_extra import try_eval_type
from pydantic._internal._typing_extra import eval_type_lenient
import json
from pydantic import BaseModel
from pydantic.fields import FieldInfo
Expand Down Expand Up @@ -178,12 +178,7 @@ def func_metadata(func: Callable, skip_names: Sequence[str] = ()) -> FuncMetadat
def _get_typed_annotation(annotation: Any, globalns: Dict[str, Any]) -> Any:
if isinstance(annotation, str):
annotation = ForwardRef(annotation)
annotation, status = try_eval_type(annotation, globalns, globalns)

# This check and raise could perhaps be skipped, and we (FastMCP) just call
# model_rebuild right before using it 🤷
if status is False:
raise InvalidSignature(f"Unable to evaluate type annotation {annotation}")
annotation = eval_type_lenient(annotation, globalns, globalns)

return annotation

Expand Down

0 comments on commit fa5ebd7

Please sign in to comment.