Leftovers isn't lazy enough
1) initialize seen to empty 2) get all posts not in seen 3) add posts to seen because the generator was iterated over lazily 4) wonder why it looks like there weren't any posts in seen yeah... leftovers has to be lazy too.
This commit is contained in:
parent
2d514ba7ca
commit
356742febf
|
@ -33,8 +33,10 @@ def maketree(descendants):
|
||||||
yield lookup[rep], onelevel(subreps)
|
yield lookup[rep], onelevel(subreps)
|
||||||
else:
|
else:
|
||||||
yield lookup[rep], ()
|
yield lookup[rep], ()
|
||||||
leftovers = set(lookup.keys()) - seen
|
def leftovers():
|
||||||
return onelevel(roots), (lookup[leftover] for leftover in leftovers)
|
for leftover in set(lookup.keys()) - seen:
|
||||||
|
yield lookup[leftover]
|
||||||
|
return onelevel(roots), leftovers
|
||||||
|
|
||||||
# returns (status, gen[(status, gen[(status, ...), (status, ())]), ...])
|
# returns (status, gen[(status, gen[(status, ...), (status, ())]), ...])
|
||||||
|
|
||||||
|
@ -60,12 +62,13 @@ def unmaketree(tree):
|
||||||
|
|
||||||
def build(descendants):
|
def build(descendants):
|
||||||
herp, derp = maketree(descendants)
|
herp, derp = maketree(descendants)
|
||||||
derp = tuple(derp)
|
|
||||||
pprint(("derp?", derp))
|
|
||||||
yield IN
|
yield IN
|
||||||
yield from unmaketree(herp)
|
yield from unmaketree(herp)
|
||||||
yield OUT
|
yield OUT
|
||||||
yield IN
|
yield IN
|
||||||
|
derp = tuple(derp())
|
||||||
|
pprint("derp", derp)
|
||||||
for post in derp:
|
for post in derp:
|
||||||
yield POST(derp)
|
pprint(("derp?", post))
|
||||||
|
yield POST(post)
|
||||||
yield OUT
|
yield OUT
|
||||||
|
|
Loading…
Reference in New Issue