'Parse ``Accept-*`` style header.
Return iterator of ``(value, quality)`` pairs.
``quality`` defaults to 1.'

@staticmethod
def parse(value):

    for match in part_re.finditer((',' + value)):
        name = match.group(1)
        if (name == 'q'):
            continue
        quality = (match.group(2) or '')
        if quality:
            try:
                quality = max(min(float(quality), 1), 0)
                (yield (name, quality))
                continue
            except ValueError:
                pass
        (yield (name, 1))
