<SYSTEM_TASK:>
Solve the following problem using Python, implementing the functions described below, one line at a time
<END_TASK>
<USER_TASK:>
Description:
 def historical(self, date, base='USD'):
 """Fetches historical exchange rate data from service :Example Data: { disclaimer: "<Disclaimer data>", license: "<License data>", timestamp: 1358150409, base: "USD", rates: { AED: 3.666311, AFN: 51.2281, ALL: 104.748751, AMD: 406.919999, ANG: 1.7831, } } """

        try:
            resp = self.client.get(self.ENDPOINT_HISTORICAL %
                                   date.strftime("%Y-%m-%d"),
                                   params={'base': base})
            resp.raise_for_status()
        except requests.exceptions.RequestException as e:
            raise OpenExchangeRatesClientException(e)
        return resp.json(parse_int=decimal.Decimal,
                         parse_float=decimal.Decimal)