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:
autocommit 2020-06-01 02:11:47 +00:00 committed by Cy
parent 2d514ba7ca
commit 356742febf
No known key found for this signature in database
GPG Key ID: F66D599380F88521
1 changed files with 8 additions and 5 deletions

View File

@ -33,8 +33,10 @@ def maketree(descendants):
yield lookup[rep], onelevel(subreps)
else:
yield lookup[rep], ()
leftovers = set(lookup.keys()) - seen
return onelevel(roots), (lookup[leftover] for leftover in leftovers)
def leftovers():
for leftover in set(lookup.keys()) - seen:
yield lookup[leftover]
return onelevel(roots), leftovers
# returns (status, gen[(status, gen[(status, ...), (status, ())]), ...])
@ -60,12 +62,13 @@ def unmaketree(tree):
def build(descendants):
herp, derp = maketree(descendants)
derp = tuple(derp)
pprint(("derp?", derp))
yield IN
yield from unmaketree(herp)
yield OUT
yield IN
derp = tuple(derp())
pprint("derp", derp)
for post in derp:
yield POST(derp)
pprint(("derp?", post))
yield POST(post)
yield OUT