<SYSTEM_TASK:>
Solve the following problem using Python, implementing the functions described below, one line at a time
<END_TASK>
<USER_TASK:>
Description:
 def fields(iterable, fields=None):
 """ Add a set of fields to each item in ``iterable``. The set of fields have a key=value format. '@' are added to the front of each key. """

    if not fields:
        for item in iterable:
            yield item

    prepared_fields = _prepare_fields(fields)

    for item in iterable:
        yield _process_fields(item, prepared_fields)