from itertools import filterfalse from typing import ( Callable, Iterable, Iterator, Optional, Set, TypeVar, Union, ) # Type and type variable definitions _T = TypeVar('_T') _U = TypeVar('_U') def unique_everseen( iterable: Iterable[_T], key: Optional[Callable[[_T], _U]] = None ) -> Iterator[_T]: "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[Union[_T, _U]] = 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
Name | Type | Size | Permission | Actions |
---|---|---|---|---|
__pycache__ | Folder | 0755 |
|
|
__init__.py | File | 506 B | 0644 |
|
_adapters.py | File | 4.4 KB | 0644 |
|
_common.py | File | 2.82 KB | 0644 |
|
_itertools.py | File | 884 B | 0644 |
|
_legacy.py | File | 3.41 KB | 0644 |
|
abc.py | File | 4.46 KB | 0644 |
|
readers.py | File | 3.47 KB | 0644 |
|
simple.py | File | 3.05 KB | 0644 |
|