Sha256: e53523fc03c91eade9be39f4e219cfda860179b3f6368ec798d1ff864386c0b4

Contents?: true

Size: 607 Bytes

Versions: 3

Compression:

Stored size: 607 Bytes

Contents

from itertools import filterfalse


def unique_everseen(iterable, key=None):
    "List unique elements, preserving order. Remember all elements ever seen."
    # unique_everseen('AAAABBBCCDAABBB') --> A B C D
    # unique_everseen('ABBCcAD', str.lower) --> A B C D
    seen = set()
    seen_add = seen.add
    if key is None:
        for element in filterfalse(seen.__contains__, iterable):
            seen_add(element)
            yield element
    else:
        for element in iterable:
            k = key(element)
            if k not in seen:
                seen_add(k)
                yield element

Version data entries

3 entries across 3 versions & 1 rubygems

Version Path
LilyPond-Ruby-0.1.5.3 lilypond-2.24.1/lib/python3.10/importlib/metadata/_itertools.py
LilyPond-Ruby-0.1.5.2 lilypond-2.24.1/lib/python3.10/importlib/metadata/_itertools.py
LilyPond-Ruby-0.1.5 lilypond-2.24.1/lib/python3.10/importlib/metadata/_itertools.py