Skip to content

patch_get_parameter_type

fastagency.api.openapi.fastapi_code_generator_helpers.patch_get_parameter_type #

patch_get_parameter_type() -> Iterator[None]
Source code in fastagency/api/openapi/fastapi_code_generator_helpers.py
@contextmanager
def patch_get_parameter_type() -> Iterator[None]:
    original_get_parameter_type = OpenAPIParser.get_parameter_type

    def get_parameter_type(
        self: OpenAPIParser,
        parameters: Union[ReferenceObject, ParameterObject],
        snake_case: bool,
        path: list[str],
    ) -> Optional[Argument]:
        # get the original argument
        argument = original_get_parameter_type(self, parameters, snake_case, path)

        # add description to the argument
        parameters = self.resolve_object(parameters, ParameterObject)
        argument_with_description = ArgumentWithDescription(
            description=parameters.description, **argument.model_dump()
        )
        return argument_with_description

    OpenAPIParser.get_parameter_type = get_parameter_type

    try:
        yield
    finally:
        OpenAPIParser.get_parameter_type = original_get_parameter_type