'Process given jobs from config for an entry.
:param entry: Entry to modify
:param jobs: Config items to run on this entry
:return: True if any fields were modified'

def process(self, entry, jobs):

    modified = False
    for item in jobs:
        for (field, config) in item.items():
            from_field = field
            if (u'from' in config):
                from_field = config[u'from']
            field_value = entry.get(from_field)
            log.debug((u'field:    `%s`    from_field:    `%s`    field_value:    `%s`' % (field, from_field, field_value)))
            if config.get(u'remove'):
                if (field in entry):
                    del entry[field]
                    modified = True
                continue
            if (u'extract' in config):
                if (not field_value):
                    log.warning((u'Cannot    extract,    field    `%s`    is    not    present' % from_field))
                    continue
                match = re.search(config[u'extract'], field_value, (re.I | re.U))
                if match:
                    groups = [x for x in match.groups() if (x is not None)]
                    log.debug((u'groups:    %s' % groups))
                    field_value = config.get(u'separator', u'    ').join(groups).strip()
                    log.debug((u'field    `%s`    after    extract:    `%s`' % (field, field_value)))
            if (u'replace' in config):
                if (not field_value):
                    log.warning((u'Cannot    replace,    field    `%s`    is    not    present' % from_field))
                    continue
                replace_config = config[u'replace']
                regexp = re.compile(replace_config[u'regexp'], flags=(re.I | re.U))
                field_value = regexp.sub(replace_config[u'format'], field_value).strip()
                log.debug((u'field    `%s`    after    replace:    `%s`' % (field, field_value)))
            if ((from_field != field) or (entry[field] != field_value)):
                log.verbose((u'Field    `%s`    is    now    `%s`' % (field, field_value)))
                modified = True
            entry[field] = field_value
    return modified
