Skip to content

Commit

Permalink
Fix issue when params field name is keyword (#1112)
Browse files Browse the repository at this point in the history
  • Loading branch information
uriyyo authored Apr 3, 2024
1 parent 1475991 commit d52fe53
Showing 1 changed file with 11 additions and 6 deletions.
17 changes: 11 additions & 6 deletions fastapi_pagination/api.py
Original file line number Diff line number Diff line change
Expand Up @@ -284,12 +284,17 @@ async def _pagination_params(*args: Any, **kwargs: Any) -> AsyncIterator[TAbstra
if IS_PYDANTIC_V2:
with suppress(ValueError, TypeError):
if issubclass(params, BaseModel):
sign_params = {**sign.parameters}
for name, field in params.model_fields.items():
name = field.alias or name
sign_params[name] = sign_params[name].replace(default=field)

sign = sign.replace(parameters=[*sign_params.values()])
sign_params = [
inspect.Parameter(
name=name,
kind=inspect.Parameter.KEYWORD_ONLY,
annotation=field.annotation,
default=field,
)
for name, field in params.model_fields.items()
]

sign = sign.replace(parameters=sign_params)

_pagination_params.__signature__ = sign # type: ignore[attr-defined]

Expand Down

0 comments on commit d52fe53

Please sign in to comment.