def parse_etags(value):
    if not value:
        return ETags()
    strong = []
    weak = []
    end = len(value)
    pos = 0
    while pos < end:
        match = _etag_re.match(value, pos)
        if match is None:
            break
        is_weak, quoted, raw = match.groups()
        if raw == '*':
            return ETags(star_tag=True)
        elif quoted:
            raw = quoted
        if is_weak:
            weak.append(raw)
        else:
            strong.append(raw)
        pos = match.end()
    return ETags(strong, weak)
Slice-by-slice registration by translation of two segmentations.
dataset/ETHPy150Open Eforcers/gae-flask-todo/lib/werkzeug/http.py/parse_etags--crossover with--dataset/ETHPy150Open neuropoly/spinalcordtoolbox/scripts/msct_register.py/register2d_centermass