    async def from_http_request(self, request: Request) -> ext.PdDataFrame:
        """
        Process incoming requests and convert incoming
        objects to `pd.DataFrame`

        Args:
            request (`starlette.requests.Requests`):
                Incoming Requests
        Returns:
            a `pd.DataFrame` object. This can then be used
             inside users defined logics.
        Raises:
            BadInput:
                Raised when the incoming requests are bad formatted.
        """

        serialization_format = _infer_serialization_format_from_request(
            request, self._default_format
        )
        _validate_serialization_format(serialization_format)

        obj = await request.body()
        dtype = self._dtype if self._enforce_dtype else None
        if serialization_format is SerializationFormat.JSON:
            if dtype is None:
                dtype = True  # infer dtype automatically
            res = pd.read_json(io.BytesIO(obj), dtype=dtype, orient=self._orient)
        elif serialization_format is SerializationFormat.PARQUET:
            res = pd.read_parquet(io.BytesIO(obj), engine=get_parquet_engine())
        elif serialization_format is SerializationFormat.CSV:
            res: ext.PdDataFrame = pd.read_csv(io.BytesIO(obj), dtype=dtype)
        else:
            raise InvalidArgument(
                f"Unknown serialization format ({serialization_format})."
            ) from None

        assert isinstance(res, pd.DataFrame)
        return self.validate_dataframe(res)
Process incoming requests and convert incoming
objects to `pd.DataFrame`

Args:
request (`starlette.requests.Requests`):
Incoming Requests
Returns:
a `pd.DataFrame` object. This can then be used
inside users defined logics.
Raises:
BadInput:
Raised when the incoming requests are bad formatted.
src/bentoml/_internal/io_descriptors/pandas.py