<SYSTEM_TASK:>
Solve the following problem using Python, implementing the functions described below, one line at a time
<END_TASK>
<USER_TASK:>
Description:
 def pipe_exchangerate(context=None, _INPUT=None, conf=None, **kwargs):
 """A string module that retrieves the current exchange rate for a given currency pair. Loopable. Parameters context : pipe2py.Context object _INPUT : iterable of items or strings (base currency) conf : { 'quote': {'value': <'USD'>}, 'default': {'value': <'USD'>}, 'offline': {'type': 'bool', 'value': '0'}, } Returns ------- _OUTPUT : generator of hashed strings """

    offline = conf.get('offline', {}).get('value')
    rate_data = get_offline_rate_data(err=False) if offline else get_rate_data()
    rates = parse_request(rate_data)
    splits = get_splits(_INPUT, conf, **cdicts(opts, kwargs))
    parsed = utils.dispatch(splits, *get_dispatch_funcs())
    _OUTPUT = starmap(partial(parse_result, rates=rates), parsed)
    return _OUTPUT