Update 2025-04-13_16:26:56
This commit is contained in:
23
venv/lib/python3.11/site-packages/setuptools/_itertools.py
Normal file
23
venv/lib/python3.11/site-packages/setuptools/_itertools.py
Normal file
@ -0,0 +1,23 @@
|
||||
from setuptools.extern.more_itertools import consume # noqa: F401
|
||||
|
||||
|
||||
# copied from jaraco.itertools 6.1
|
||||
def ensure_unique(iterable, key=lambda x: x):
|
||||
"""
|
||||
Wrap an iterable to raise a ValueError if non-unique values are encountered.
|
||||
|
||||
>>> list(ensure_unique('abc'))
|
||||
['a', 'b', 'c']
|
||||
>>> consume(ensure_unique('abca'))
|
||||
Traceback (most recent call last):
|
||||
...
|
||||
ValueError: Duplicate element 'a' encountered.
|
||||
"""
|
||||
seen = set()
|
||||
seen_add = seen.add
|
||||
for element in iterable:
|
||||
k = key(element)
|
||||
if k in seen:
|
||||
raise ValueError(f"Duplicate element {element!r} encountered.")
|
||||
seen_add(k)
|
||||
yield element
|
Reference in New Issue
Block a user