Revision 4a3dd52d lib/compat.py
b/lib/compat.py | ||
---|---|---|
146 | 146 |
else: |
147 | 147 |
return val |
148 | 148 |
|
149 |
|
|
150 |
def UniqueFrozenset(seq): |
|
151 |
"""Makes C{frozenset} from sequence after checking for duplicate elements. |
|
152 |
|
|
153 |
@raise ValueError: When there are duplicate elements |
|
154 |
|
|
155 |
""" |
|
156 |
if isinstance(seq, (list, tuple)): |
|
157 |
items = seq |
|
158 |
else: |
|
159 |
items = list(seq) |
|
160 |
|
|
161 |
result = frozenset(items) |
|
162 |
|
|
163 |
if len(items) != len(result): |
|
164 |
raise ValueError("Duplicate values found") |
|
165 |
|
|
166 |
return result |
|
167 |
|
|
168 |
|
|
149 | 169 |
#: returns the first element of a list-like value |
150 | 170 |
fst = operator.itemgetter(0) |
151 | 171 |
|
Also available in: Unified diff