def from_http_code()

in src/dubbo/protocol/triple/status.py [0:0]


    def from_http_code(cls, code: Union[int, HttpStatus]):
        http_status = HttpStatus.from_code(code) if isinstance(code, int) else code
        rpc_code = GRpcCode.UNKNOWN
        if HttpStatus.is_1xx(http_status) or http_status in [
            HttpStatus.BAD_REQUEST,
            HttpStatus.REQUEST_HEADER_FIELDS_TOO_LARGE,
        ]:
            rpc_code = GRpcCode.INTERNAL
        elif http_status == HttpStatus.UNAUTHORIZED:
            rpc_code = GRpcCode.UNAUTHENTICATED
        elif http_status == HttpStatus.FORBIDDEN:
            rpc_code = GRpcCode.PERMISSION_DENIED
        elif http_status == HttpStatus.NOT_FOUND:
            rpc_code = GRpcCode.NOT_FOUND
        elif http_status in [
            HttpStatus.BAD_GATEWAY,
            HttpStatus.TOO_MANY_REQUESTS,
            HttpStatus.SERVICE_UNAVAILABLE,
            HttpStatus.GATEWAY_TIMEOUT,
        ]:
            rpc_code = GRpcCode.UNAVAILABLE

        return cls(rpc_code)