Kaydet (Commit) 0ec1ddcd authored tarafından Tim Peters's avatar Tim Peters

_update(): Commented the new obscurity. Materialized into a tuple

instead of into a list for a bit of speed/space savings.  Reopened the
bug report too (628246), as I'm unclear on why we don't sort out the
cause of the TypeError instead.
üst 1eb1fb81
......@@ -319,10 +319,16 @@ class BaseSet(object):
data.update(iterable)
return
value = True
# If the mere process of iterating may raise TypeError, materialize
# the iterable into a tuple first. Then the TypeError will get
# raised here and propagated back to the caller. Once we get into
# the loop following, TypeError is assumed to mean that element
# can't be used as a dict key.
if type(iterable) not in (list, tuple, dict, file, xrange, str):
iterable = list(iterable)
iterable = tuple(iterable)
it = iter(iterable)
value = True
while True:
try:
for element in it:
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment