summaryrefslogtreecommitdiff
path: root/lib/python2.7/test/test_generators.pyo
blob: 46c6f4bc727c89bec8bbc185576c45e611485971 (plain)
ofshex dumpascii
0000 03 f3 0d 0a 2f 5c fc 55 63 00 00 00 00 00 00 00 00 03 00 00 00 40 00 00 00 73 e5 00 00 00 64 00 ..../\.Uc............@...s....d.
0020 00 5a 00 00 64 01 00 5a 01 00 64 02 00 5a 02 00 64 03 00 5a 03 00 64 04 00 5a 04 00 64 05 00 84 .Z..d..Z..d..Z..d..Z..d..Z..d...
0040 00 00 5a 05 00 64 06 00 84 00 00 5a 06 00 64 07 00 84 00 00 5a 07 00 64 08 00 66 00 00 64 09 00 ..Z..d.....Z..d.....Z..d..f..d..
0060 84 00 00 83 00 00 59 5a 08 00 64 0a 00 66 00 00 64 0b 00 84 00 00 83 00 00 59 5a 09 00 64 0c 00 ......YZ..d..f..d........YZ..d..
0080 5a 0a 00 64 0d 00 5a 0b 00 64 0e 00 5a 0c 00 64 0f 00 5a 0d 00 69 09 00 65 00 00 64 10 00 36 65 Z..d..Z..d..Z..d..Z..i..e..d..6e
00a0 01 00 64 11 00 36 65 02 00 64 12 00 36 65 03 00 64 13 00 36 65 04 00 64 14 00 36 65 0a 00 64 15 ..d..6e..d..6e..d..6e..d..6e..d.
00c0 00 36 65 0b 00 64 16 00 36 65 0c 00 64 17 00 36 65 0d 00 64 18 00 36 5a 0e 00 65 0f 00 64 19 00 .6e..d..6e..d..6e..d..6Z..e..d..
00e0 84 01 00 5a 10 00 65 11 00 64 1a 00 6b 02 00 72 e1 00 65 10 00 64 1b 00 83 01 00 01 6e 00 00 64 ...Z..e..d..k..r..e..d......n..d
0100 1c 00 53 28 1d 00 00 00 73 dc 09 00 00 0a 4c 65 74 27 73 20 74 72 79 20 61 20 73 69 6d 70 6c 65 ..S(....s.....Let's.try.a.simple
0120 20 67 65 6e 65 72 61 74 6f 72 3a 0a 0a 20 20 20 20 3e 3e 3e 20 64 65 66 20 66 28 29 3a 0a 20 20 .generator:......>>>.def.f():...
0140 20 20 2e 2e 2e 20 20 20 20 79 69 65 6c 64 20 31 0a 20 20 20 20 2e 2e 2e 20 20 20 20 79 69 65 6c .........yield.1............yiel
0160 64 20 32 0a 0a 20 20 20 20 3e 3e 3e 20 66 6f 72 20 69 20 69 6e 20 66 28 29 3a 0a 20 20 20 20 2e d.2......>>>.for.i.in.f():......
0180 2e 2e 20 20 20 20 20 70 72 69 6e 74 20 69 0a 20 20 20 20 31 0a 20 20 20 20 32 0a 20 20 20 20 3e .......print.i.....1.....2.....>
01a0 3e 3e 20 67 20 3d 20 66 28 29 0a 20 20 20 20 3e 3e 3e 20 67 2e 6e 65 78 74 28 29 0a 20 20 20 20 >>.g.=.f().....>>>.g.next().....
01c0 31 0a 20 20 20 20 3e 3e 3e 20 67 2e 6e 65 78 74 28 29 0a 20 20 20 20 32 0a 0a 22 46 61 6c 6c 69 1.....>>>.g.next().....2.."Falli
01e0 6e 67 20 6f 66 66 20 74 68 65 20 65 6e 64 22 20 73 74 6f 70 73 20 74 68 65 20 67 65 6e 65 72 61 ng.off.the.end".stops.the.genera
0200 74 6f 72 3a 0a 0a 20 20 20 20 3e 3e 3e 20 67 2e 6e 65 78 74 28 29 0a 20 20 20 20 54 72 61 63 65 tor:......>>>.g.next().....Trace
0220 62 61 63 6b 20 28 6d 6f 73 74 20 72 65 63 65 6e 74 20 63 61 6c 6c 20 6c 61 73 74 29 3a 0a 20 20 back.(most.recent.call.last):...
0240 20 20 20 20 46 69 6c 65 20 22 3c 73 74 64 69 6e 3e 22 2c 20 6c 69 6e 65 20 31 2c 20 69 6e 20 3f ....File."<stdin>",.line.1,.in.?
0260 0a 20 20 20 20 20 20 46 69 6c 65 20 22 3c 73 74 64 69 6e 3e 22 2c 20 6c 69 6e 65 20 32 2c 20 69 .......File."<stdin>",.line.2,.i
0280 6e 20 67 0a 20 20 20 20 53 74 6f 70 49 74 65 72 61 74 69 6f 6e 0a 0a 22 72 65 74 75 72 6e 22 20 n.g.....StopIteration.."return".
02a0 61 6c 73 6f 20 73 74 6f 70 73 20 74 68 65 20 67 65 6e 65 72 61 74 6f 72 3a 0a 0a 20 20 20 20 3e also.stops.the.generator:......>
02c0 3e 3e 20 64 65 66 20 66 28 29 3a 0a 20 20 20 20 2e 2e 2e 20 20 20 20 20 79 69 65 6c 64 20 31 0a >>.def.f():.............yield.1.
02e0 20 20 20 20 2e 2e 2e 20 20 20 20 20 72 65 74 75 72 6e 0a 20 20 20 20 2e 2e 2e 20 20 20 20 20 79 ............return.............y
0300 69 65 6c 64 20 32 20 23 20 6e 65 76 65 72 20 72 65 61 63 68 65 64 0a 20 20 20 20 2e 2e 2e 0a 20 ield.2.#.never.reached..........
0320 20 20 20 3e 3e 3e 20 67 20 3d 20 66 28 29 0a 20 20 20 20 3e 3e 3e 20 67 2e 6e 65 78 74 28 29 0a ...>>>.g.=.f().....>>>.g.next().
0340 20 20 20 20 31 0a 20 20 20 20 3e 3e 3e 20 67 2e 6e 65 78 74 28 29 0a 20 20 20 20 54 72 61 63 65 ....1.....>>>.g.next().....Trace
0360 62 61 63 6b 20 28 6d 6f 73 74 20 72 65 63 65 6e 74 20 63 61 6c 6c 20 6c 61 73 74 29 3a 0a 20 20 back.(most.recent.call.last):...
0380 20 20 20 20 46 69 6c 65 20 22 3c 73 74 64 69 6e 3e 22 2c 20 6c 69 6e 65 20 31 2c 20 69 6e 20 3f ....File."<stdin>",.line.1,.in.?
03a0 0a 20 20 20 20 20 20 46 69 6c 65 20 22 3c 73 74 64 69 6e 3e 22 2c 20 6c 69 6e 65 20 33 2c 20 69 .......File."<stdin>",.line.3,.i
03c0 6e 20 66 0a 20 20 20 20 53 74 6f 70 49 74 65 72 61 74 69 6f 6e 0a 20 20 20 20 3e 3e 3e 20 67 2e n.f.....StopIteration.....>>>.g.
03e0 6e 65 78 74 28 29 20 23 20 6f 6e 63 65 20 73 74 6f 70 70 65 64 2c 20 63 61 6e 27 74 20 62 65 20 next().#.once.stopped,.can't.be.
0400 72 65 73 75 6d 65 64 0a 20 20 20 20 54 72 61 63 65 62 61 63 6b 20 28 6d 6f 73 74 20 72 65 63 65 resumed.....Traceback.(most.rece
0420 6e 74 20 63 61 6c 6c 20 6c 61 73 74 29 3a 0a 20 20 20 20 20 20 46 69 6c 65 20 22 3c 73 74 64 69 nt.call.last):.......File."<stdi
0440 6e 3e 22 2c 20 6c 69 6e 65 20 31 2c 20 69 6e 20 3f 0a 20 20 20 20 53 74 6f 70 49 74 65 72 61 74 n>",.line.1,.in.?.....StopIterat
0460 69 6f 6e 0a 0a 22 72 61 69 73 65 20 53 74 6f 70 49 74 65 72 61 74 69 6f 6e 22 20 73 74 6f 70 73 ion.."raise.StopIteration".stops
0480 20 74 68 65 20 67 65 6e 65 72 61 74 6f 72 20 74 6f 6f 3a 0a 0a 20 20 20 20 3e 3e 3e 20 64 65 66 .the.generator.too:......>>>.def
04a0 20 66 28 29 3a 0a 20 20 20 20 2e 2e 2e 20 20 20 20 20 79 69 65 6c 64 20 31 0a 20 20 20 20 2e 2e .f():.............yield.1.......
04c0 2e 20 20 20 20 20 72 61 69 73 65 20 53 74 6f 70 49 74 65 72 61 74 69 6f 6e 0a 20 20 20 20 2e 2e ......raise.StopIteration.......
04e0 2e 20 20 20 20 20 79 69 65 6c 64 20 32 20 23 20 6e 65 76 65 72 20 72 65 61 63 68 65 64 0a 20 20 ......yield.2.#.never.reached...
0500 20 20 2e 2e 2e 0a 20 20 20 20 3e 3e 3e 20 67 20 3d 20 66 28 29 0a 20 20 20 20 3e 3e 3e 20 67 2e ..........>>>.g.=.f().....>>>.g.
0520 6e 65 78 74 28 29 0a 20 20 20 20 31 0a 20 20 20 20 3e 3e 3e 20 67 2e 6e 65 78 74 28 29 0a 20 20 next().....1.....>>>.g.next()...
0540 20 20 54 72 61 63 65 62 61 63 6b 20 28 6d 6f 73 74 20 72 65 63 65 6e 74 20 63 61 6c 6c 20 6c 61 ..Traceback.(most.recent.call.la
0560 73 74 29 3a 0a 20 20 20 20 20 20 46 69 6c 65 20 22 3c 73 74 64 69 6e 3e 22 2c 20 6c 69 6e 65 20 st):.......File."<stdin>",.line.
0580 31 2c 20 69 6e 20 3f 0a 20 20 20 20 53 74 6f 70 49 74 65 72 61 74 69 6f 6e 0a 20 20 20 20 3e 3e 1,.in.?.....StopIteration.....>>
05a0 3e 20 67 2e 6e 65 78 74 28 29 0a 20 20 20 20 54 72 61 63 65 62 61 63 6b 20 28 6d 6f 73 74 20 72 >.g.next().....Traceback.(most.r
05c0 65 63 65 6e 74 20 63 61 6c 6c 20 6c 61 73 74 29 3a 0a 20 20 20 20 20 20 46 69 6c 65 20 22 3c 73 ecent.call.last):.......File."<s
05e0 74 64 69 6e 3e 22 2c 20 6c 69 6e 65 20 31 2c 20 69 6e 20 3f 0a 20 20 20 20 53 74 6f 70 49 74 65 tdin>",.line.1,.in.?.....StopIte
0600 72 61 74 69 6f 6e 0a 0a 48 6f 77 65 76 65 72 2c 20 74 68 65 79 20 61 72 65 20 6e 6f 74 20 65 78 ration..However,.they.are.not.ex
0620 61 63 74 6c 79 20 65 71 75 69 76 61 6c 65 6e 74 3a 0a 0a 20 20 20 20 3e 3e 3e 20 64 65 66 20 67 actly.equivalent:......>>>.def.g
0640 31 28 29 3a 0a 20 20 20 20 2e 2e 2e 20 20 20 20 20 74 72 79 3a 0a 20 20 20 20 2e 2e 2e 20 20 20 1():.............try:...........
0660 20 20 20 20 20 20 72 65 74 75 72 6e 0a 20 20 20 20 2e 2e 2e 20 20 20 20 20 65 78 63 65 70 74 3a ......return.............except:
0680 0a 20 20 20 20 2e 2e 2e 20 20 20 20 20 20 20 20 20 79 69 65 6c 64 20 31 0a 20 20 20 20 2e 2e 2e .................yield.1........
06a0 0a 20 20 20 20 3e 3e 3e 20 6c 69 73 74 28 67 31 28 29 29 0a 20 20 20 20 5b 5d 0a 0a 20 20 20 20 .....>>>.list(g1()).....[]......
06c0 3e 3e 3e 20 64 65 66 20 67 32 28 29 3a 0a 20 20 20 20 2e 2e 2e 20 20 20 20 20 74 72 79 3a 0a 20 >>>.def.g2():.............try:..
06e0 20 20 20 2e 2e 2e 20 20 20 20 20 20 20 20 20 72 61 69 73 65 20 53 74 6f 70 49 74 65 72 61 74 69 ...............raise.StopIterati
0700 6f 6e 0a 20 20 20 20 2e 2e 2e 20 20 20 20 20 65 78 63 65 70 74 3a 0a 20 20 20 20 2e 2e 2e 20 20 on.............except:..........
0720 20 20 20 20 20 20 20 79 69 65 6c 64 20 34 32 0a 20 20 20 20 3e 3e 3e 20 70 72 69 6e 74 20 6c 69 .......yield.42.....>>>.print.li
0740 73 74 28 67 32 28 29 29 0a 20 20 20 20 5b 34 32 5d 0a 0a 54 68 69 73 20 6d 61 79 20 62 65 20 73 st(g2()).....[42]..This.may.be.s
0760 75 72 70 72 69 73 69 6e 67 20 61 74 20 66 69 72 73 74 3a 0a 0a 20 20 20 20 3e 3e 3e 20 64 65 66 urprising.at.first:......>>>.def
0780 20 67 33 28 29 3a 0a 20 20 20 20 2e 2e 2e 20 20 20 20 20 74 72 79 3a 0a 20 20 20 20 2e 2e 2e 20 .g3():.............try:.........
07a0 20 20 20 20 20 20 20 20 72 65 74 75 72 6e 0a 20 20 20 20 2e 2e 2e 20 20 20 20 20 66 69 6e 61 6c ........return.............final
07c0 6c 79 3a 0a 20 20 20 20 2e 2e 2e 20 20 20 20 20 20 20 20 20 79 69 65 6c 64 20 31 0a 20 20 20 20 ly:.................yield.1.....
07e0 2e 2e 2e 0a 20 20 20 20 3e 3e 3e 20 6c 69 73 74 28 67 33 28 29 29 0a 20 20 20 20 5b 31 5d 0a 0a ........>>>.list(g3()).....[1]..
0800 4c 65 74 27 73 20 63 72 65 61 74 65 20 61 6e 20 61 6c 74 65 72 6e 61 74 65 20 72 61 6e 67 65 28 Let's.create.an.alternate.range(
0820 29 20 66 75 6e 63 74 69 6f 6e 20 69 6d 70 6c 65 6d 65 6e 74 65 64 20 61 73 20 61 20 67 65 6e 65 ).function.implemented.as.a.gene
0840 72 61 74 6f 72 3a 0a 0a 20 20 20 20 3e 3e 3e 20 64 65 66 20 79 72 61 6e 67 65 28 6e 29 3a 0a 20 rator:......>>>.def.yrange(n):..
0860 20 20 20 2e 2e 2e 20 20 20 20 20 66 6f 72 20 69 20 69 6e 20 72 61 6e 67 65 28 6e 29 3a 0a 20 20 ...........for.i.in.range(n):...
0880 20 20 2e 2e 2e 20 20 20 20 20 20 20 20 20 79 69 65 6c 64 20 69 0a 20 20 20 20 2e 2e 2e 0a 20 20 ..............yield.i...........
08a0 20 20 3e 3e 3e 20 6c 69 73 74 28 79 72 61 6e 67 65 28 35 29 29 0a 20 20 20 20 5b 30 2c 20 31 2c ..>>>.list(yrange(5)).....[0,.1,
08c0 20 32 2c 20 33 2c 20 34 5d 0a 0a 47 65 6e 65 72 61 74 6f 72 73 20 61 6c 77 61 79 73 20 72 65 74 .2,.3,.4]..Generators.always.ret
08e0 75 72 6e 20 74 6f 20 74 68 65 20 6d 6f 73 74 20 72 65 63 65 6e 74 20 63 61 6c 6c 65 72 3a 0a 0a urn.to.the.most.recent.caller:..
0900 20 20 20 20 3e 3e 3e 20 64 65 66 20 63 72 65 61 74 6f 72 28 29 3a 0a 20 20 20 20 2e 2e 2e 20 20 ....>>>.def.creator():..........
0920 20 20 20 72 20 3d 20 79 72 61 6e 67 65 28 35 29 0a 20 20 20 20 2e 2e 2e 20 20 20 20 20 70 72 69 ...r.=.yrange(5).............pri
0940 6e 74 20 22 63 72 65 61 74 6f 72 22 2c 20 72 2e 6e 65 78 74 28 29 0a 20 20 20 20 2e 2e 2e 20 20 nt."creator",.r.next()..........
0960 20 20 20 72 65 74 75 72 6e 20 72 0a 20 20 20 20 2e 2e 2e 0a 20 20 20 20 3e 3e 3e 20 64 65 66 20 ...return.r.............>>>.def.
0980 63 61 6c 6c 65 72 28 29 3a 0a 20 20 20 20 2e 2e 2e 20 20 20 20 20 72 20 3d 20 63 72 65 61 74 6f caller():.............r.=.creato
09a0 72 28 29 0a 20 20 20 20 2e 2e 2e 20 20 20 20 20 66 6f 72 20 69 20 69 6e 20 72 3a 0a 20 20 20 20 r().............for.i.in.r:.....
09c0 2e 2e 2e 20 20 20 20 20 20 20 20 20 20 20 20 20 70 72 69 6e 74 20 22 63 61 6c 6c 65 72 22 2c 20 ................print."caller",.
09e0 69 0a 20 20 20 20 2e 2e 2e 0a 20 20 20 20 3e 3e 3e 20 63 61 6c 6c 65 72 28 29 0a 20 20 20 20 63 i.............>>>.caller().....c
0a00 72 65 61 74 6f 72 20 30 0a 20 20 20 20 63 61 6c 6c 65 72 20 31 0a 20 20 20 20 63 61 6c 6c 65 72 reator.0.....caller.1.....caller
0a20 20 32 0a 20 20 20 20 63 61 6c 6c 65 72 20 33 0a 20 20 20 20 63 61 6c 6c 65 72 20 34 0a 0a 47 65 .2.....caller.3.....caller.4..Ge
0a40 6e 65 72 61 74 6f 72 73 20 63 61 6e 20 63 61 6c 6c 20 6f 74 68 65 72 20 67 65 6e 65 72 61 74 6f nerators.can.call.other.generato
0a60 72 73 3a 0a 0a 20 20 20 20 3e 3e 3e 20 64 65 66 20 7a 72 61 6e 67 65 28 6e 29 3a 0a 20 20 20 20 rs:......>>>.def.zrange(n):.....
0a80 2e 2e 2e 20 20 20 20 20 66 6f 72 20 69 20 69 6e 20 79 72 61 6e 67 65 28 6e 29 3a 0a 20 20 20 20 ........for.i.in.yrange(n):.....
0aa0 2e 2e 2e 20 20 20 20 20 20 20 20 20 79 69 65 6c 64 20 69 0a 20 20 20 20 2e 2e 2e 0a 20 20 20 20 ............yield.i.............
0ac0 3e 3e 3e 20 6c 69 73 74 28 7a 72 61 6e 67 65 28 35 29 29 0a 20 20 20 20 5b 30 2c 20 31 2c 20 32 >>>.list(zrange(5)).....[0,.1,.2
0ae0 2c 20 33 2c 20 34 5d 0a 0a 73 71 11 00 00 0a 0a 53 70 65 63 69 66 69 63 61 74 69 6f 6e 3a 20 20 ,.3,.4]..sq.....Specification:..
0b00 59 69 65 6c 64 0a 0a 20 20 20 20 52 65 73 74 72 69 63 74 69 6f 6e 3a 20 20 41 20 67 65 6e 65 72 Yield......Restriction:..A.gener
0b20 61 74 6f 72 20 63 61 6e 6e 6f 74 20 62 65 20 72 65 73 75 6d 65 64 20 77 68 69 6c 65 20 69 74 20 ator.cannot.be.resumed.while.it.
0b40 69 73 20 61 63 74 69 76 65 6c 79 0a 20 20 20 20 72 75 6e 6e 69 6e 67 3a 0a 0a 20 20 20 20 3e 3e is.actively.....running:......>>
0b60 3e 20 64 65 66 20 67 28 29 3a 0a 20 20 20 20 2e 2e 2e 20 20 20 20 20 69 20 3d 20 6d 65 2e 6e 65 >.def.g():.............i.=.me.ne
0b80 78 74 28 29 0a 20 20 20 20 2e 2e 2e 20 20 20 20 20 79 69 65 6c 64 20 69 0a 20 20 20 20 3e 3e 3e xt().............yield.i.....>>>
0ba0 20 6d 65 20 3d 20 67 28 29 0a 20 20 20 20 3e 3e 3e 20 6d 65 2e 6e 65 78 74 28 29 0a 20 20 20 20 .me.=.g().....>>>.me.next().....
0bc0 54 72 61 63 65 62 61 63 6b 20 28 6d 6f 73 74 20 72 65 63 65 6e 74 20 63 61 6c 6c 20 6c 61 73 74 Traceback.(most.recent.call.last
0be0 29 3a 0a 20 20 20 20 20 2e 2e 2e 0a 20 20 20 20 20 20 46 69 6c 65 20 22 3c 73 74 72 69 6e 67 3e ):................File."<string>
0c00 22 2c 20 6c 69 6e 65 20 32 2c 20 69 6e 20 67 0a 20 20 20 20 56 61 6c 75 65 45 72 72 6f 72 3a 20 ",.line.2,.in.g.....ValueError:.
0c20 67 65 6e 65 72 61 74 6f 72 20 61 6c 72 65 61 64 79 20 65 78 65 63 75 74 69 6e 67 0a 0a 53 70 65 generator.already.executing..Spe
0c40 63 69 66 69 63 61 74 69 6f 6e 3a 20 52 65 74 75 72 6e 0a 0a 20 20 20 20 4e 6f 74 65 20 74 68 61 cification:.Return......Note.tha
0c60 74 20 72 65 74 75 72 6e 20 69 73 6e 27 74 20 61 6c 77 61 79 73 20 65 71 75 69 76 61 6c 65 6e 74 t.return.isn't.always.equivalent
0c80 20 74 6f 20 72 61 69 73 69 6e 67 20 53 74 6f 70 49 74 65 72 61 74 69 6f 6e 3a 20 20 74 68 65 0a .to.raising.StopIteration:..the.
0ca0 20 20 20 20 64 69 66 66 65 72 65 6e 63 65 20 6c 69 65 73 20 69 6e 20 68 6f 77 20 65 6e 63 6c 6f ....difference.lies.in.how.enclo
0cc0 73 69 6e 67 20 74 72 79 2f 65 78 63 65 70 74 20 63 6f 6e 73 74 72 75 63 74 73 20 61 72 65 20 74 sing.try/except.constructs.are.t
0ce0 72 65 61 74 65 64 2e 0a 20 20 20 20 46 6f 72 20 65 78 61 6d 70 6c 65 2c 0a 0a 20 20 20 20 20 20 reated......For.example,........
0d00 20 20 3e 3e 3e 20 64 65 66 20 66 31 28 29 3a 0a 20 20 20 20 20 20 20 20 2e 2e 2e 20 20 20 20 20 ..>>>.def.f1():.................
0d20 74 72 79 3a 0a 20 20 20 20 20 20 20 20 2e 2e 2e 20 20 20 20 20 20 20 20 20 72 65 74 75 72 6e 0a try:.....................return.
0d40 20 20 20 20 20 20 20 20 2e 2e 2e 20 20 20 20 20 65 78 63 65 70 74 3a 0a 20 20 20 20 20 20 20 20 ................except:.........
0d60 2e 2e 2e 20 20 20 20 20 20 20 20 79 69 65 6c 64 20 31 0a 20 20 20 20 20 20 20 20 3e 3e 3e 20 70 ...........yield.1.........>>>.p
0d80 72 69 6e 74 20 6c 69 73 74 28 66 31 28 29 29 0a 20 20 20 20 20 20 20 20 5b 5d 0a 0a 20 20 20 20 rint.list(f1()).........[]......
0da0 62 65 63 61 75 73 65 2c 20 61 73 20 69 6e 20 61 6e 79 20 66 75 6e 63 74 69 6f 6e 2c 20 72 65 74 because,.as.in.any.function,.ret
0dc0 75 72 6e 20 73 69 6d 70 6c 79 20 65 78 69 74 73 2c 20 62 75 74 0a 0a 20 20 20 20 20 20 20 20 3e urn.simply.exits,.but..........>
0de0 3e 3e 20 64 65 66 20 66 32 28 29 3a 0a 20 20 20 20 20 20 20 20 2e 2e 2e 20 20 20 20 20 74 72 79 >>.def.f2():.................try
0e00 3a 0a 20 20 20 20 20 20 20 20 2e 2e 2e 20 20 20 20 20 20 20 20 20 72 61 69 73 65 20 53 74 6f 70 :.....................raise.Stop
0e20 49 74 65 72 61 74 69 6f 6e 0a 20 20 20 20 20 20 20 20 2e 2e 2e 20 20 20 20 20 65 78 63 65 70 74 Iteration.................except
0e40 3a 0a 20 20 20 20 20 20 20 20 2e 2e 2e 20 20 20 20 20 20 20 20 20 79 69 65 6c 64 20 34 32 0a 20 :.....................yield.42..
0e60 20 20 20 20 20 20 20 3e 3e 3e 20 70 72 69 6e 74 20 6c 69 73 74 28 66 32 28 29 29 0a 20 20 20 20 .......>>>.print.list(f2()).....
0e80 20 20 20 20 5b 34 32 5d 0a 0a 20 20 20 20 62 65 63 61 75 73 65 20 53 74 6f 70 49 74 65 72 61 74 ....[42]......because.StopIterat
0ea0 69 6f 6e 20 69 73 20 63 61 70 74 75 72 65 64 20 62 79 20 61 20 62 61 72 65 20 22 65 78 63 65 70 ion.is.captured.by.a.bare."excep
0ec0 74 22 2c 20 61 73 20 69 73 20 61 6e 79 0a 20 20 20 20 65 78 63 65 70 74 69 6f 6e 2e 0a 0a 53 70 t",.as.is.any.....exception...Sp
0ee0 65 63 69 66 69 63 61 74 69 6f 6e 3a 20 47 65 6e 65 72 61 74 6f 72 73 20 61 6e 64 20 45 78 63 65 ecification:.Generators.and.Exce
0f00 70 74 69 6f 6e 20 50 72 6f 70 61 67 61 74 69 6f 6e 0a 0a 20 20 20 20 3e 3e 3e 20 64 65 66 20 66 ption.Propagation......>>>.def.f
0f20 28 29 3a 0a 20 20 20 20 2e 2e 2e 20 20 20 20 20 72 65 74 75 72 6e 20 31 2f 2f 30 0a 20 20 20 20 ():.............return.1//0.....
0f40 3e 3e 3e 20 64 65 66 20 67 28 29 3a 0a 20 20 20 20 2e 2e 2e 20 20 20 20 20 79 69 65 6c 64 20 66 >>>.def.g():.............yield.f
0f60 28 29 20 20 23 20 74 68 65 20 7a 65 72 6f 20 64 69 76 69 73 69 6f 6e 20 65 78 63 65 70 74 69 6f ()..#.the.zero.division.exceptio
0f80 6e 20 70 72 6f 70 61 67 61 74 65 73 0a 20 20 20 20 2e 2e 2e 20 20 20 20 20 79 69 65 6c 64 20 34 n.propagates.............yield.4
0fa0 32 20 20 20 23 20 61 6e 64 20 77 65 27 6c 6c 20 6e 65 76 65 72 20 67 65 74 20 68 65 72 65 0a 20 2...#.and.we'll.never.get.here..
0fc0 20 20 20 3e 3e 3e 20 6b 20 3d 20 67 28 29 0a 20 20 20 20 3e 3e 3e 20 6b 2e 6e 65 78 74 28 29 0a ...>>>.k.=.g().....>>>.k.next().
0fe0 20 20 20 20 54 72 61 63 65 62 61 63 6b 20 28 6d 6f 73 74 20 72 65 63 65 6e 74 20 63 61 6c 6c 20 ....Traceback.(most.recent.call.
1000 6c 61 73 74 29 3a 0a 20 20 20 20 20 20 46 69 6c 65 20 22 3c 73 74 64 69 6e 3e 22 2c 20 6c 69 6e last):.......File."<stdin>",.lin
1020 65 20 31 2c 20 69 6e 20 3f 0a 20 20 20 20 20 20 46 69 6c 65 20 22 3c 73 74 64 69 6e 3e 22 2c 20 e.1,.in.?.......File."<stdin>",.
1040 6c 69 6e 65 20 32 2c 20 69 6e 20 67 0a 20 20 20 20 20 20 46 69 6c 65 20 22 3c 73 74 64 69 6e 3e line.2,.in.g.......File."<stdin>
1060 22 2c 20 6c 69 6e 65 20 32 2c 20 69 6e 20 66 0a 20 20 20 20 5a 65 72 6f 44 69 76 69 73 69 6f 6e ",.line.2,.in.f.....ZeroDivision
1080 45 72 72 6f 72 3a 20 69 6e 74 65 67 65 72 20 64 69 76 69 73 69 6f 6e 20 6f 72 20 6d 6f 64 75 6c Error:.integer.division.or.modul
10a0 6f 20 62 79 20 7a 65 72 6f 0a 20 20 20 20 3e 3e 3e 20 6b 2e 6e 65 78 74 28 29 20 20 23 20 61 6e o.by.zero.....>>>.k.next()..#.an
10c0 64 20 74 68 65 20 67 65 6e 65 72 61 74 6f 72 20 63 61 6e 6e 6f 74 20 62 65 20 72 65 73 75 6d 65 d.the.generator.cannot.be.resume
10e0 64 0a 20 20 20 20 54 72 61 63 65 62 61 63 6b 20 28 6d 6f 73 74 20 72 65 63 65 6e 74 20 63 61 6c d.....Traceback.(most.recent.cal
1100 6c 20 6c 61 73 74 29 3a 0a 20 20 20 20 20 20 46 69 6c 65 20 22 3c 73 74 64 69 6e 3e 22 2c 20 6c l.last):.......File."<stdin>",.l
1120 69 6e 65 20 31 2c 20 69 6e 20 3f 0a 20 20 20 20 53 74 6f 70 49 74 65 72 61 74 69 6f 6e 0a 20 20 ine.1,.in.?.....StopIteration...
1140 20 20 3e 3e 3e 0a 0a 53 70 65 63 69 66 69 63 61 74 69 6f 6e 3a 20 54 72 79 2f 45 78 63 65 70 74 ..>>>..Specification:.Try/Except
1160 2f 46 69 6e 61 6c 6c 79 0a 0a 20 20 20 20 3e 3e 3e 20 64 65 66 20 66 28 29 3a 0a 20 20 20 20 2e /Finally......>>>.def.f():......
1180 2e 2e 20 20 20 20 20 74 72 79 3a 0a 20 20 20 20 2e 2e 2e 20 20 20 20 20 20 20 20 20 79 69 65 6c .......try:.................yiel
11a0 64 20 31 0a 20 20 20 20 2e 2e 2e 20 20 20 20 20 20 20 20 20 74 72 79 3a 0a 20 20 20 20 2e 2e 2e d.1.................try:........
11c0 20 20 20 20 20 20 20 20 20 20 20 20 20 79 69 65 6c 64 20 32 0a 20 20 20 20 2e 2e 2e 20 20 20 20 .............yield.2............
11e0 20 20 20 20 20 20 20 20 20 31 2f 2f 30 0a 20 20 20 20 2e 2e 2e 20 20 20 20 20 20 20 20 20 20 20 .........1//0...................
1200 20 20 79 69 65 6c 64 20 33 20 20 23 20 6e 65 76 65 72 20 67 65 74 20 68 65 72 65 0a 20 20 20 20 ..yield.3..#.never.get.here.....
1220 2e 2e 2e 20 20 20 20 20 20 20 20 20 65 78 63 65 70 74 20 5a 65 72 6f 44 69 76 69 73 69 6f 6e 45 ............except.ZeroDivisionE
1240 72 72 6f 72 3a 0a 20 20 20 20 2e 2e 2e 20 20 20 20 20 20 20 20 20 20 20 20 20 79 69 65 6c 64 20 rror:.....................yield.
1260 34 0a 20 20 20 20 2e 2e 2e 20 20 20 20 20 20 20 20 20 20 20 20 20 79 69 65 6c 64 20 35 0a 20 20 4.....................yield.5...
1280 20 20 2e 2e 2e 20 20 20 20 20 20 20 20 20 20 20 20 20 72 61 69 73 65 0a 20 20 20 20 2e 2e 2e 20 ..................raise.........
12a0 20 20 20 20 20 20 20 20 65 78 63 65 70 74 3a 0a 20 20 20 20 2e 2e 2e 20 20 20 20 20 20 20 20 20 ........except:.................
12c0 20 20 20 20 79 69 65 6c 64 20 36 0a 20 20 20 20 2e 2e 2e 20 20 20 20 20 20 20 20 20 79 69 65 6c ....yield.6.................yiel
12e0 64 20 37 20 20 20 20 20 23 20 74 68 65 20 22 72 61 69 73 65 22 20 61 62 6f 76 65 20 73 74 6f 70 d.7.....#.the."raise".above.stop
1300 73 20 74 68 69 73 0a 20 20 20 20 2e 2e 2e 20 20 20 20 20 65 78 63 65 70 74 3a 0a 20 20 20 20 2e s.this.............except:......
1320 2e 2e 20 20 20 20 20 20 20 20 20 79 69 65 6c 64 20 38 0a 20 20 20 20 2e 2e 2e 20 20 20 20 20 79 ...........yield.8.............y
1340 69 65 6c 64 20 39 0a 20 20 20 20 2e 2e 2e 20 20 20 20 20 74 72 79 3a 0a 20 20 20 20 2e 2e 2e 20 ield.9.............try:.........
1360 20 20 20 20 20 20 20 20 78 20 3d 20 31 32 0a 20 20 20 20 2e 2e 2e 20 20 20 20 20 66 69 6e 61 6c ........x.=.12.............final
1380 6c 79 3a 0a 20 20 20 20 2e 2e 2e 20 20 20 20 20 20 20 20 20 79 69 65 6c 64 20 31 30 0a 20 20 20 ly:.................yield.10....
13a0 20 2e 2e 2e 20 20 20 20 20 79 69 65 6c 64 20 31 31 0a 20 20 20 20 3e 3e 3e 20 70 72 69 6e 74 20 .........yield.11.....>>>.print.
13c0 6c 69 73 74 28 66 28 29 29 0a 20 20 20 20 5b 31 2c 20 32 2c 20 34 2c 20 35 2c 20 38 2c 20 39 2c list(f()).....[1,.2,.4,.5,.8,.9,
13e0 20 31 30 2c 20 31 31 5d 0a 20 20 20 20 3e 3e 3e 0a 0a 47 75 69 64 6f 27 73 20 62 69 6e 61 72 79 .10,.11].....>>>..Guido's.binary
1400 20 74 72 65 65 20 65 78 61 6d 70 6c 65 2e 0a 0a 20 20 20 20 3e 3e 3e 20 23 20 41 20 62 69 6e 61 .tree.example.......>>>.#.A.bina
1420 72 79 20 74 72 65 65 20 63 6c 61 73 73 2e 0a 20 20 20 20 3e 3e 3e 20 63 6c 61 73 73 20 54 72 65 ry.tree.class......>>>.class.Tre
1440 65 3a 0a 20 20 20 20 2e 2e 2e 0a 20 20 20 20 2e 2e 2e 20 20 20 20 20 64 65 66 20 5f 5f 69 6e 69 e:.....................def.__ini
1460 74 5f 5f 28 73 65 6c 66 2c 20 6c 61 62 65 6c 2c 20 6c 65 66 74 3d 4e 6f 6e 65 2c 20 72 69 67 68 t__(self,.label,.left=None,.righ
1480 74 3d 4e 6f 6e 65 29 3a 0a 20 20 20 20 2e 2e 2e 20 20 20 20 20 20 20 20 20 73 65 6c 66 2e 6c 61 t=None):.................self.la
14a0 62 65 6c 20 3d 20 6c 61 62 65 6c 0a 20 20 20 20 2e 2e 2e 20 20 20 20 20 20 20 20 20 73 65 6c 66 bel.=.label.................self
14c0 2e 6c 65 66 74 20 3d 20 6c 65 66 74 0a 20 20 20 20 2e 2e 2e 20 20 20 20 20 20 20 20 20 73 65 6c .left.=.left.................sel
14e0 66 2e 72 69 67 68 74 20 3d 20 72 69 67 68 74 0a 20 20 20 20 2e 2e 2e 0a 20 20 20 20 2e 2e 2e 20 f.right.=.right.................
1500 20 20 20 20 64 65 66 20 5f 5f 72 65 70 72 5f 5f 28 73 65 6c 66 2c 20 6c 65 76 65 6c 3d 30 2c 20 ....def.__repr__(self,.level=0,.
1520 69 6e 64 65 6e 74 3d 22 20 20 20 20 22 29 3a 0a 20 20 20 20 2e 2e 2e 20 20 20 20 20 20 20 20 20 indent="...."):.................
1540 73 20 3d 20 6c 65 76 65 6c 2a 69 6e 64 65 6e 74 20 2b 20 72 65 70 72 28 73 65 6c 66 2e 6c 61 62 s.=.level*indent.+.repr(self.lab
1560 65 6c 29 0a 20 20 20 20 2e 2e 2e 20 20 20 20 20 20 20 20 20 69 66 20 73 65 6c 66 2e 6c 65 66 74 el).................if.self.left
1580 3a 0a 20 20 20 20 2e 2e 2e 20 20 20 20 20 20 20 20 20 20 20 20 20 73 20 3d 20 73 20 2b 20 22 5c :.....................s.=.s.+."\
15a0 6e 22 20 2b 20 73 65 6c 66 2e 6c 65 66 74 2e 5f 5f 72 65 70 72 5f 5f 28 6c 65 76 65 6c 2b 31 2c n".+.self.left.__repr__(level+1,
15c0 20 69 6e 64 65 6e 74 29 0a 20 20 20 20 2e 2e 2e 20 20 20 20 20 20 20 20 20 69 66 20 73 65 6c 66 .indent).................if.self
15e0 2e 72 69 67 68 74 3a 0a 20 20 20 20 2e 2e 2e 20 20 20 20 20 20 20 20 20 20 20 20 20 73 20 3d 20 .right:.....................s.=.
1600 73 20 2b 20 22 5c 6e 22 20 2b 20 73 65 6c 66 2e 72 69 67 68 74 2e 5f 5f 72 65 70 72 5f 5f 28 6c s.+."\n".+.self.right.__repr__(l
1620 65 76 65 6c 2b 31 2c 20 69 6e 64 65 6e 74 29 0a 20 20 20 20 2e 2e 2e 20 20 20 20 20 20 20 20 20 evel+1,.indent).................
1640 72 65 74 75 72 6e 20 73 0a 20 20 20 20 2e 2e 2e 0a 20 20 20 20 2e 2e 2e 20 20 20 20 20 64 65 66 return.s.....................def
1660 20 5f 5f 69 74 65 72 5f 5f 28 73 65 6c 66 29 3a 0a 20 20 20 20 2e 2e 2e 20 20 20 20 20 20 20 20 .__iter__(self):................
1680 20 72 65 74 75 72 6e 20 69 6e 6f 72 64 65 72 28 73 65 6c 66 29 0a 0a 20 20 20 20 3e 3e 3e 20 23 .return.inorder(self)......>>>.#
16a0 20 43 72 65 61 74 65 20 61 20 54 72 65 65 20 66 72 6f 6d 20 61 20 6c 69 73 74 2e 0a 20 20 20 20 .Create.a.Tree.from.a.list......
16c0 3e 3e 3e 20 64 65 66 20 74 72 65 65 28 6c 69 73 74 29 3a 0a 20 20 20 20 2e 2e 2e 20 20 20 20 20 >>>.def.tree(list):.............
16e0 6e 20 3d 20 6c 65 6e 28 6c 69 73 74 29 0a 20 20 20 20 2e 2e 2e 20 20 20 20 20 69 66 20 6e 20 3d n.=.len(list).............if.n.=
1700 3d 20 30 3a 0a 20 20 20 20 2e 2e 2e 20 20 20 20 20 20 20 20 20 72 65 74 75 72 6e 20 5b 5d 0a 20 =.0:.................return.[]..
1720 20 20 20 2e 2e 2e 20 20 20 20 20 69 20 3d 20 6e 20 2f 2f 20 32 0a 20 20 20 20 2e 2e 2e 20 20 20 ...........i.=.n.//.2...........
1740 20 20 72 65 74 75 72 6e 20 54 72 65 65 28 6c 69 73 74 5b 69 5d 2c 20 74 72 65 65 28 6c 69 73 74 ..return.Tree(list[i],.tree(list
1760 5b 3a 69 5d 29 2c 20 74 72 65 65 28 6c 69 73 74 5b 69 2b 31 3a 5d 29 29 0a 0a 20 20 20 20 3e 3e [:i]),.tree(list[i+1:]))......>>
1780 3e 20 23 20 53 68 6f 77 20 69 74 20 6f 66 66 3a 20 63 72 65 61 74 65 20 61 20 74 72 65 65 2e 0a >.#.Show.it.off:.create.a.tree..
17a0 20 20 20 20 3e 3e 3e 20 74 20 3d 20 74 72 65 65 28 22 41 42 43 44 45 46 47 48 49 4a 4b 4c 4d 4e ....>>>.t.=.tree("ABCDEFGHIJKLMN
17c0 4f 50 51 52 53 54 55 56 57 58 59 5a 22 29 0a 0a 20 20 20 20 3e 3e 3e 20 23 20 41 20 72 65 63 75 OPQRSTUVWXYZ")......>>>.#.A.recu
17e0 72 73 69 76 65 20 67 65 6e 65 72 61 74 6f 72 20 74 68 61 74 20 67 65 6e 65 72 61 74 65 73 20 54 rsive.generator.that.generates.T
1800 72 65 65 20 6c 61 62 65 6c 73 20 69 6e 20 69 6e 2d 6f 72 64 65 72 2e 0a 20 20 20 20 3e 3e 3e 20 ree.labels.in.in-order......>>>.
1820 64 65 66 20 69 6e 6f 72 64 65 72 28 74 29 3a 0a 20 20 20 20 2e 2e 2e 20 20 20 20 20 69 66 20 74 def.inorder(t):.............if.t
1840 3a 0a 20 20 20 20 2e 2e 2e 20 20 20 20 20 20 20 20 20 66 6f 72 20 78 20 69 6e 20 69 6e 6f 72 64 :.................for.x.in.inord
1860 65 72 28 74 2e 6c 65 66 74 29 3a 0a 20 20 20 20 2e 2e 2e 20 20 20 20 20 20 20 20 20 20 20 20 20 er(t.left):.....................
1880 79 69 65 6c 64 20 78 0a 20 20 20 20 2e 2e 2e 20 20 20 20 20 20 20 20 20 79 69 65 6c 64 20 74 2e yield.x.................yield.t.
18a0 6c 61 62 65 6c 0a 20 20 20 20 2e 2e 2e 20 20 20 20 20 20 20 20 20 66 6f 72 20 78 20 69 6e 20 69 label.................for.x.in.i
18c0 6e 6f 72 64 65 72 28 74 2e 72 69 67 68 74 29 3a 0a 20 20 20 20 2e 2e 2e 20 20 20 20 20 20 20 20 norder(t.right):................
18e0 20 20 20 20 20 79 69 65 6c 64 20 78 0a 0a 20 20 20 20 3e 3e 3e 20 23 20 53 68 6f 77 20 69 74 20 .....yield.x......>>>.#.Show.it.
1900 6f 66 66 3a 20 63 72 65 61 74 65 20 61 20 74 72 65 65 2e 0a 20 20 20 20 3e 3e 3e 20 74 20 3d 20 off:.create.a.tree......>>>.t.=.
1920 74 72 65 65 28 22 41 42 43 44 45 46 47 48 49 4a 4b 4c 4d 4e 4f 50 51 52 53 54 55 56 57 58 59 5a tree("ABCDEFGHIJKLMNOPQRSTUVWXYZ
1940 22 29 0a 20 20 20 20 3e 3e 3e 20 23 20 50 72 69 6e 74 20 74 68 65 20 6e 6f 64 65 73 20 6f 66 20 ").....>>>.#.Print.the.nodes.of.
1960 74 68 65 20 74 72 65 65 20 69 6e 20 69 6e 2d 6f 72 64 65 72 2e 0a 20 20 20 20 3e 3e 3e 20 66 6f the.tree.in.in-order......>>>.fo
1980 72 20 78 20 69 6e 20 74 3a 0a 20 20 20 20 2e 2e 2e 20 20 20 20 20 70 72 69 6e 74 20 78 2c 0a 20 r.x.in.t:.............print.x,..
19a0 20 20 20 41 20 42 20 43 20 44 20 45 20 46 20 47 20 48 20 49 20 4a 20 4b 20 4c 20 4d 20 4e 20 4f ...A.B.C.D.E.F.G.H.I.J.K.L.M.N.O
19c0 20 50 20 51 20 52 20 53 20 54 20 55 20 56 20 57 20 58 20 59 20 5a 0a 0a 20 20 20 20 3e 3e 3e 20 .P.Q.R.S.T.U.V.W.X.Y.Z......>>>.
19e0 23 20 41 20 6e 6f 6e 2d 72 65 63 75 72 73 69 76 65 20 67 65 6e 65 72 61 74 6f 72 2e 0a 20 20 20 #.A.non-recursive.generator.....
1a00 20 3e 3e 3e 20 64 65 66 20 69 6e 6f 72 64 65 72 28 6e 6f 64 65 29 3a 0a 20 20 20 20 2e 2e 2e 20 .>>>.def.inorder(node):.........
1a20 20 20 20 20 73 74 61 63 6b 20 3d 20 5b 5d 0a 20 20 20 20 2e 2e 2e 20 20 20 20 20 77 68 69 6c 65 ....stack.=.[].............while
1a40 20 6e 6f 64 65 3a 0a 20 20 20 20 2e 2e 2e 20 20 20 20 20 20 20 20 20 77 68 69 6c 65 20 6e 6f 64 .node:.................while.nod
1a60 65 2e 6c 65 66 74 3a 0a 20 20 20 20 2e 2e 2e 20 20 20 20 20 20 20 20 20 20 20 20 20 73 74 61 63 e.left:.....................stac
1a80 6b 2e 61 70 70 65 6e 64 28 6e 6f 64 65 29 0a 20 20 20 20 2e 2e 2e 20 20 20 20 20 20 20 20 20 20 k.append(node)..................
1aa0 20 20 20 6e 6f 64 65 20 3d 20 6e 6f 64 65 2e 6c 65 66 74 0a 20 20 20 20 2e 2e 2e 20 20 20 20 20 ...node.=.node.left.............
1ac0 20 20 20 20 79 69 65 6c 64 20 6e 6f 64 65 2e 6c 61 62 65 6c 0a 20 20 20 20 2e 2e 2e 20 20 20 20 ....yield.node.label............
1ae0 20 20 20 20 20 77 68 69 6c 65 20 6e 6f 74 20 6e 6f 64 65 2e 72 69 67 68 74 3a 0a 20 20 20 20 2e .....while.not.node.right:......
1b00 2e 2e 20 20 20 20 20 20 20 20 20 20 20 20 20 74 72 79 3a 0a 20 20 20 20 2e 2e 2e 20 20 20 20 20 ...............try:.............
1b20 20 20 20 20 20 20 20 20 20 20 20 20 6e 6f 64 65 20 3d 20 73 74 61 63 6b 2e 70 6f 70 28 29 0a 20 ............node.=.stack.pop()..
1b40 20 20 20 2e 2e 2e 20 20 20 20 20 20 20 20 20 20 20 20 20 65 78 63 65 70 74 20 49 6e 64 65 78 45 ...................except.IndexE
1b60 72 72 6f 72 3a 0a 20 20 20 20 2e 2e 2e 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 72 65 rror:.........................re
1b80 74 75 72 6e 0a 20 20 20 20 2e 2e 2e 20 20 20 20 20 20 20 20 20 20 20 20 20 79 69 65 6c 64 20 6e turn.....................yield.n
1ba0 6f 64 65 2e 6c 61 62 65 6c 0a 20 20 20 20 2e 2e 2e 20 20 20 20 20 20 20 20 20 6e 6f 64 65 20 3d ode.label.................node.=
1bc0 20 6e 6f 64 65 2e 72 69 67 68 74 0a 0a 20 20 20 20 3e 3e 3e 20 23 20 45 78 65 72 63 69 73 65 20 .node.right......>>>.#.Exercise.
1be0 74 68 65 20 6e 6f 6e 2d 72 65 63 75 72 73 69 76 65 20 67 65 6e 65 72 61 74 6f 72 2e 0a 20 20 20 the.non-recursive.generator.....
1c00 20 3e 3e 3e 20 66 6f 72 20 78 20 69 6e 20 74 3a 0a 20 20 20 20 2e 2e 2e 20 20 20 20 20 70 72 69 .>>>.for.x.in.t:.............pri
1c20 6e 74 20 78 2c 0a 20 20 20 20 41 20 42 20 43 20 44 20 45 20 46 20 47 20 48 20 49 20 4a 20 4b 20 nt.x,.....A.B.C.D.E.F.G.H.I.J.K.
1c40 4c 20 4d 20 4e 20 4f 20 50 20 51 20 52 20 53 20 54 20 55 20 56 20 57 20 58 20 59 20 5a 0a 0a 73 L.M.N.O.P.Q.R.S.T.U.V.W.X.Y.Z..s
1c60 59 12 00 00 0a 0a 54 68 65 20 64 69 66 66 65 72 65 6e 63 65 20 62 65 74 77 65 65 6e 20 79 69 65 Y.....The.difference.between.yie
1c80 6c 64 69 6e 67 20 4e 6f 6e 65 20 61 6e 64 20 72 65 74 75 72 6e 69 6e 67 20 69 74 2e 0a 0a 3e 3e lding.None.and.returning.it...>>
1ca0 3e 20 64 65 66 20 67 28 29 3a 0a 2e 2e 2e 20 20 20 20 20 66 6f 72 20 69 20 69 6e 20 72 61 6e 67 >.def.g():.........for.i.in.rang
1cc0 65 28 33 29 3a 0a 2e 2e 2e 20 20 20 20 20 20 20 20 20 79 69 65 6c 64 20 4e 6f 6e 65 0a 2e 2e 2e e(3):.............yield.None....
1ce0 20 20 20 20 20 79 69 65 6c 64 20 4e 6f 6e 65 0a 2e 2e 2e 20 20 20 20 20 72 65 74 75 72 6e 0a 3e .....yield.None.........return.>
1d00 3e 3e 20 6c 69 73 74 28 67 28 29 29 0a 5b 4e 6f 6e 65 2c 20 4e 6f 6e 65 2c 20 4e 6f 6e 65 2c 20 >>.list(g()).[None,.None,.None,.
1d20 4e 6f 6e 65 5d 0a 0a 45 6e 73 75 72 65 20 74 68 61 74 20 65 78 70 6c 69 63 69 74 6c 79 20 72 61 None]..Ensure.that.explicitly.ra
1d40 69 73 69 6e 67 20 53 74 6f 70 49 74 65 72 61 74 69 6f 6e 20 61 63 74 73 20 6c 69 6b 65 20 61 6e ising.StopIteration.acts.like.an
1d60 79 20 6f 74 68 65 72 20 65 78 63 65 70 74 69 6f 6e 0a 69 6e 20 74 72 79 2f 65 78 63 65 70 74 2c y.other.exception.in.try/except,
1d80 20 6e 6f 74 20 6c 69 6b 65 20 61 20 72 65 74 75 72 6e 2e 0a 0a 3e 3e 3e 20 64 65 66 20 67 28 29 .not.like.a.return...>>>.def.g()
1da0 3a 0a 2e 2e 2e 20 20 20 20 20 79 69 65 6c 64 20 31 0a 2e 2e 2e 20 20 20 20 20 74 72 79 3a 0a 2e :.........yield.1.........try:..
1dc0 2e 2e 20 20 20 20 20 20 20 20 20 72 61 69 73 65 20 53 74 6f 70 49 74 65 72 61 74 69 6f 6e 0a 2e ...........raise.StopIteration..
1de0 2e 2e 20 20 20 20 20 65 78 63 65 70 74 3a 0a 2e 2e 2e 20 20 20 20 20 20 20 20 20 79 69 65 6c 64 .......except:.............yield
1e00 20 32 0a 2e 2e 2e 20 20 20 20 20 79 69 65 6c 64 20 33 0a 3e 3e 3e 20 6c 69 73 74 28 67 28 29 29 .2.........yield.3.>>>.list(g())
1e20 0a 5b 31 2c 20 32 2c 20 33 5d 0a 0a 4e 65 78 74 20 6f 6e 65 20 77 61 73 20 70 6f 73 74 65 64 20 .[1,.2,.3]..Next.one.was.posted.
1e40 74 6f 20 63 2e 6c 2e 70 79 2e 0a 0a 3e 3e 3e 20 64 65 66 20 67 63 6f 6d 62 28 78 2c 20 6b 29 3a to.c.l.py...>>>.def.gcomb(x,.k):
1e60 0a 2e 2e 2e 20 20 20 20 20 22 47 65 6e 65 72 61 74 65 20 61 6c 6c 20 63 6f 6d 62 69 6e 61 74 69 ........."Generate.all.combinati
1e80 6f 6e 73 20 6f 66 20 6b 20 65 6c 65 6d 65 6e 74 73 20 66 72 6f 6d 20 6c 69 73 74 20 78 2e 22 0a ons.of.k.elements.from.list.x.".
1ea0 2e 2e 2e 0a 2e 2e 2e 20 20 20 20 20 69 66 20 6b 20 3e 20 6c 65 6e 28 78 29 3a 0a 2e 2e 2e 20 20 ............if.k.>.len(x):......
1ec0 20 20 20 20 20 20 20 72 65 74 75 72 6e 0a 2e 2e 2e 20 20 20 20 20 69 66 20 6b 20 3d 3d 20 30 3a .......return.........if.k.==.0:
1ee0 0a 2e 2e 2e 20 20 20 20 20 20 20 20 20 79 69 65 6c 64 20 5b 5d 0a 2e 2e 2e 20 20 20 20 20 65 6c .............yield.[].........el
1f00 73 65 3a 0a 2e 2e 2e 20 20 20 20 20 20 20 20 20 66 69 72 73 74 2c 20 72 65 73 74 20 3d 20 78 5b se:.............first,.rest.=.x[
1f20 30 5d 2c 20 78 5b 31 3a 5d 0a 2e 2e 2e 20 20 20 20 20 20 20 20 20 23 20 41 20 63 6f 6d 62 69 6e 0],.x[1:].............#.A.combin
1f40 61 74 69 6f 6e 20 64 6f 65 73 20 6f 72 20 64 6f 65 73 6e 27 74 20 63 6f 6e 74 61 69 6e 20 66 69 ation.does.or.doesn't.contain.fi
1f60 72 73 74 2e 0a 2e 2e 2e 20 20 20 20 20 20 20 20 20 23 20 49 66 20 69 74 20 64 6f 65 73 2c 20 74 rst..............#.If.it.does,.t
1f80 68 65 20 72 65 6d 61 69 6e 64 65 72 20 69 73 20 61 20 6b 2d 31 20 63 6f 6d 62 20 6f 66 20 72 65 he.remainder.is.a.k-1.comb.of.re
1fa0 73 74 2e 0a 2e 2e 2e 20 20 20 20 20 20 20 20 20 66 6f 72 20 63 20 69 6e 20 67 63 6f 6d 62 28 72 st..............for.c.in.gcomb(r
1fc0 65 73 74 2c 20 6b 2d 31 29 3a 0a 2e 2e 2e 20 20 20 20 20 20 20 20 20 20 20 20 20 63 2e 69 6e 73 est,.k-1):.................c.ins
1fe0 65 72 74 28 30 2c 20 66 69 72 73 74 29 0a 2e 2e 2e 20 20 20 20 20 20 20 20 20 20 20 20 20 79 69 ert(0,.first).................yi
2000 65 6c 64 20 63 0a 2e 2e 2e 20 20 20 20 20 20 20 20 20 23 20 49 66 20 69 74 20 64 6f 65 73 6e 27 eld.c.............#.If.it.doesn'
2020 74 20 63 6f 6e 74 61 69 6e 20 66 69 72 73 74 2c 20 69 74 27 73 20 61 20 6b 20 63 6f 6d 62 20 6f t.contain.first,.it's.a.k.comb.o
2040 66 20 72 65 73 74 2e 0a 2e 2e 2e 20 20 20 20 20 20 20 20 20 66 6f 72 20 63 20 69 6e 20 67 63 6f f.rest..............for.c.in.gco
2060 6d 62 28 72 65 73 74 2c 20 6b 29 3a 0a 2e 2e 2e 20 20 20 20 20 20 20 20 20 20 20 20 20 79 69 65 mb(rest,.k):.................yie
2080 6c 64 20 63 0a 0a 3e 3e 3e 20 73 65 71 20 3d 20 72 61 6e 67 65 28 31 2c 20 35 29 0a 3e 3e 3e 20 ld.c..>>>.seq.=.range(1,.5).>>>.
20a0 66 6f 72 20 6b 20 69 6e 20 72 61 6e 67 65 28 6c 65 6e 28 73 65 71 29 20 2b 20 32 29 3a 0a 2e 2e for.k.in.range(len(seq).+.2):...
20c0 2e 20 20 20 20 20 70 72 69 6e 74 20 22 25 64 2d 63 6f 6d 62 73 20 6f 66 20 25 73 3a 22 20 25 20 ......print."%d-combs.of.%s:".%.
20e0 28 6b 2c 20 73 65 71 29 0a 2e 2e 2e 20 20 20 20 20 66 6f 72 20 63 20 69 6e 20 67 63 6f 6d 62 28 (k,.seq).........for.c.in.gcomb(
2100 73 65 71 2c 20 6b 29 3a 0a 2e 2e 2e 20 20 20 20 20 20 20 20 20 70 72 69 6e 74 20 22 20 20 20 22 seq,.k):.............print."..."
2120 2c 20 63 0a 30 2d 63 6f 6d 62 73 20 6f 66 20 5b 31 2c 20 32 2c 20 33 2c 20 34 5d 3a 0a 20 20 20 ,.c.0-combs.of.[1,.2,.3,.4]:....
2140 20 5b 5d 0a 31 2d 63 6f 6d 62 73 20 6f 66 20 5b 31 2c 20 32 2c 20 33 2c 20 34 5d 3a 0a 20 20 20 .[].1-combs.of.[1,.2,.3,.4]:....
2160 20 5b 31 5d 0a 20 20 20 20 5b 32 5d 0a 20 20 20 20 5b 33 5d 0a 20 20 20 20 5b 34 5d 0a 32 2d 63 .[1].....[2].....[3].....[4].2-c
2180 6f 6d 62 73 20 6f 66 20 5b 31 2c 20 32 2c 20 33 2c 20 34 5d 3a 0a 20 20 20 20 5b 31 2c 20 32 5d ombs.of.[1,.2,.3,.4]:.....[1,.2]
21a0 0a 20 20 20 20 5b 31 2c 20 33 5d 0a 20 20 20 20 5b 31 2c 20 34 5d 0a 20 20 20 20 5b 32 2c 20 33 .....[1,.3].....[1,.4].....[2,.3
21c0 5d 0a 20 20 20 20 5b 32 2c 20 34 5d 0a 20 20 20 20 5b 33 2c 20 34 5d 0a 33 2d 63 6f 6d 62 73 20 ].....[2,.4].....[3,.4].3-combs.
21e0 6f 66 20 5b 31 2c 20 32 2c 20 33 2c 20 34 5d 3a 0a 20 20 20 20 5b 31 2c 20 32 2c 20 33 5d 0a 20 of.[1,.2,.3,.4]:.....[1,.2,.3]..
2200 20 20 20 5b 31 2c 20 32 2c 20 34 5d 0a 20 20 20 20 5b 31 2c 20 33 2c 20 34 5d 0a 20 20 20 20 5b ...[1,.2,.4].....[1,.3,.4].....[
2220 32 2c 20 33 2c 20 34 5d 0a 34 2d 63 6f 6d 62 73 20 6f 66 20 5b 31 2c 20 32 2c 20 33 2c 20 34 5d 2,.3,.4].4-combs.of.[1,.2,.3,.4]
2240 3a 0a 20 20 20 20 5b 31 2c 20 32 2c 20 33 2c 20 34 5d 0a 35 2d 63 6f 6d 62 73 20 6f 66 20 5b 31 :.....[1,.2,.3,.4].5-combs.of.[1
2260 2c 20 32 2c 20 33 2c 20 34 5d 3a 0a 0a 46 72 6f 6d 20 74 68 65 20 49 74 65 72 61 74 6f 72 73 20 ,.2,.3,.4]:..From.the.Iterators.
2280 6c 69 73 74 2c 20 61 62 6f 75 74 20 74 68 65 20 74 79 70 65 73 20 6f 66 20 74 68 65 73 65 20 74 list,.about.the.types.of.these.t
22a0 68 69 6e 67 73 2e 0a 0a 3e 3e 3e 20 64 65 66 20 67 28 29 3a 0a 2e 2e 2e 20 20 20 20 20 79 69 65 hings...>>>.def.g():.........yie
22c0 6c 64 20 31 0a 2e 2e 2e 0a 3e 3e 3e 20 74 79 70 65 28 67 29 0a 3c 74 79 70 65 20 27 66 75 6e 63 ld.1.....>>>.type(g).<type.'func
22e0 74 69 6f 6e 27 3e 0a 3e 3e 3e 20 69 20 3d 20 67 28 29 0a 3e 3e 3e 20 74 79 70 65 28 69 29 0a 3c tion'>.>>>.i.=.g().>>>.type(i).<
2300 74 79 70 65 20 27 67 65 6e 65 72 61 74 6f 72 27 3e 0a 3e 3e 3e 20 5b 73 20 66 6f 72 20 73 20 69 type.'generator'>.>>>.[s.for.s.i
2320 6e 20 64 69 72 28 69 29 20 69 66 20 6e 6f 74 20 73 2e 73 74 61 72 74 73 77 69 74 68 28 27 5f 27 n.dir(i).if.not.s.startswith('_'
2340 29 5d 0a 5b 27 63 6c 6f 73 65 27 2c 20 27 67 69 5f 63 6f 64 65 27 2c 20 27 67 69 5f 66 72 61 6d )].['close',.'gi_code',.'gi_fram
2360 65 27 2c 20 27 67 69 5f 72 75 6e 6e 69 6e 67 27 2c 20 27 6e 65 78 74 27 2c 20 27 73 65 6e 64 27 e',.'gi_running',.'next',.'send'
2380 2c 20 27 74 68 72 6f 77 27 5d 0a 3e 3e 3e 20 66 72 6f 6d 20 74 65 73 74 2e 74 65 73 74 5f 73 75 ,.'throw'].>>>.from.test.test_su
23a0 70 70 6f 72 74 20 69 6d 70 6f 72 74 20 48 41 56 45 5f 44 4f 43 53 54 52 49 4e 47 53 0a 3e 3e 3e pport.import.HAVE_DOCSTRINGS.>>>
23c0 20 70 72 69 6e 74 28 69 2e 6e 65 78 74 2e 5f 5f 64 6f 63 5f 5f 20 69 66 20 48 41 56 45 5f 44 4f .print(i.next.__doc__.if.HAVE_DO
23e0 43 53 54 52 49 4e 47 53 20 65 6c 73 65 20 27 78 2e 6e 65 78 74 28 29 20 2d 3e 20 74 68 65 20 6e CSTRINGS.else.'x.next().->.the.n
2400 65 78 74 20 76 61 6c 75 65 2c 20 6f 72 20 72 61 69 73 65 20 53 74 6f 70 49 74 65 72 61 74 69 6f ext.value,.or.raise.StopIteratio
2420 6e 27 29 0a 78 2e 6e 65 78 74 28 29 20 2d 3e 20 74 68 65 20 6e 65 78 74 20 76 61 6c 75 65 2c 20 n').x.next().->.the.next.value,.
2440 6f 72 20 72 61 69 73 65 20 53 74 6f 70 49 74 65 72 61 74 69 6f 6e 0a 3e 3e 3e 20 69 74 65 72 28 or.raise.StopIteration.>>>.iter(
2460 69 29 20 69 73 20 69 0a 54 72 75 65 0a 3e 3e 3e 20 69 6d 70 6f 72 74 20 74 79 70 65 73 0a 3e 3e i).is.i.True.>>>.import.types.>>
2480 3e 20 69 73 69 6e 73 74 61 6e 63 65 28 69 2c 20 74 79 70 65 73 2e 47 65 6e 65 72 61 74 6f 72 54 >.isinstance(i,.types.GeneratorT
24a0 79 70 65 29 0a 54 72 75 65 0a 0a 41 6e 64 20 6d 6f 72 65 2c 20 61 64 64 65 64 20 6c 61 74 65 72 ype).True..And.more,.added.later
24c0 2e 0a 0a 3e 3e 3e 20 69 2e 67 69 5f 72 75 6e 6e 69 6e 67 0a 30 0a 3e 3e 3e 20 74 79 70 65 28 69 ...>>>.i.gi_running.0.>>>.type(i
24e0 2e 67 69 5f 66 72 61 6d 65 29 0a 3c 74 79 70 65 20 27 66 72 61 6d 65 27 3e 0a 3e 3e 3e 20 69 2e .gi_frame).<type.'frame'>.>>>.i.
2500 67 69 5f 72 75 6e 6e 69 6e 67 20 3d 20 34 32 0a 54 72 61 63 65 62 61 63 6b 20 28 6d 6f 73 74 20 gi_running.=.42.Traceback.(most.
2520 72 65 63 65 6e 74 20 63 61 6c 6c 20 6c 61 73 74 29 3a 0a 20 20 2e 2e 2e 0a 54 79 70 65 45 72 72 recent.call.last):.......TypeErr
2540 6f 72 3a 20 72 65 61 64 6f 6e 6c 79 20 61 74 74 72 69 62 75 74 65 0a 3e 3e 3e 20 64 65 66 20 67 or:.readonly.attribute.>>>.def.g
2560 28 29 3a 0a 2e 2e 2e 20 20 20 20 20 79 69 65 6c 64 20 6d 65 2e 67 69 5f 72 75 6e 6e 69 6e 67 0a ():.........yield.me.gi_running.
2580 3e 3e 3e 20 6d 65 20 3d 20 67 28 29 0a 3e 3e 3e 20 6d 65 2e 67 69 5f 72 75 6e 6e 69 6e 67 0a 30 >>>.me.=.g().>>>.me.gi_running.0
25a0 0a 3e 3e 3e 20 6d 65 2e 6e 65 78 74 28 29 0a 31 0a 3e 3e 3e 20 6d 65 2e 67 69 5f 72 75 6e 6e 69 .>>>.me.next().1.>>>.me.gi_runni
25c0 6e 67 0a 30 0a 0a 41 20 63 6c 65 76 65 72 20 75 6e 69 6f 6e 2d 66 69 6e 64 20 69 6d 70 6c 65 6d ng.0..A.clever.union-find.implem
25e0 65 6e 74 61 74 69 6f 6e 20 66 72 6f 6d 20 63 2e 6c 2e 70 79 2c 20 64 75 65 20 74 6f 20 44 61 76 entation.from.c.l.py,.due.to.Dav
2600 69 64 20 45 70 70 73 74 65 69 6e 2e 0a 53 65 6e 74 3a 20 46 72 69 64 61 79 2c 20 4a 75 6e 65 20 id.Eppstein..Sent:.Friday,.June.
2620 32 39 2c 20 32 30 30 31 20 31 32 3a 31 36 20 50 4d 0a 54 6f 3a 20 70 79 74 68 6f 6e 2d 6c 69 73 29,.2001.12:16.PM.To:.python-lis
2640 74 40 70 79 74 68 6f 6e 2e 6f 72 67 0a 53 75 62 6a 65 63 74 3a 20 52 65 3a 20 50 45 50 20 32 35 t@python.org.Subject:.Re:.PEP.25
2660 35 3a 20 53 69 6d 70 6c 65 20 47 65 6e 65 72 61 74 6f 72 73 0a 0a 3e 3e 3e 20 63 6c 61 73 73 20 5:.Simple.Generators..>>>.class.
2680 64 69 73 6a 6f 69 6e 74 53 65 74 3a 0a 2e 2e 2e 20 20 20 20 20 64 65 66 20 5f 5f 69 6e 69 74 5f disjointSet:.........def.__init_
26a0 5f 28 73 65 6c 66 2c 20 6e 61 6d 65 29 3a 0a 2e 2e 2e 20 20 20 20 20 20 20 20 20 73 65 6c 66 2e _(self,.name):.............self.
26c0 6e 61 6d 65 20 3d 20 6e 61 6d 65 0a 2e 2e 2e 20 20 20 20 20 20 20 20 20 73 65 6c 66 2e 70 61 72 name.=.name.............self.par
26e0 65 6e 74 20 3d 20 4e 6f 6e 65 0a 2e 2e 2e 20 20 20 20 20 20 20 20 20 73 65 6c 66 2e 67 65 6e 65 ent.=.None.............self.gene
2700 72 61 74 6f 72 20 3d 20 73 65 6c 66 2e 67 65 6e 65 72 61 74 65 28 29 0a 2e 2e 2e 0a 2e 2e 2e 20 rator.=.self.generate().........
2720 20 20 20 20 64 65 66 20 67 65 6e 65 72 61 74 65 28 73 65 6c 66 29 3a 0a 2e 2e 2e 20 20 20 20 20 ....def.generate(self):.........
2740 20 20 20 20 77 68 69 6c 65 20 6e 6f 74 20 73 65 6c 66 2e 70 61 72 65 6e 74 3a 0a 2e 2e 2e 20 20 ....while.not.self.parent:......
2760 20 20 20 20 20 20 20 20 20 20 20 79 69 65 6c 64 20 73 65 6c 66 0a 2e 2e 2e 20 20 20 20 20 20 20 ...........yield.self...........
2780 20 20 66 6f 72 20 78 20 69 6e 20 73 65 6c 66 2e 70 61 72 65 6e 74 2e 67 65 6e 65 72 61 74 6f 72 ..for.x.in.self.parent.generator
27a0 3a 0a 2e 2e 2e 20 20 20 20 20 20 20 20 20 20 20 20 20 79 69 65 6c 64 20 78 0a 2e 2e 2e 0a 2e 2e :.................yield.x.......
27c0 2e 20 20 20 20 20 64 65 66 20 66 69 6e 64 28 73 65 6c 66 29 3a 0a 2e 2e 2e 20 20 20 20 20 20 20 ......def.find(self):...........
27e0 20 20 72 65 74 75 72 6e 20 73 65 6c 66 2e 67 65 6e 65 72 61 74 6f 72 2e 6e 65 78 74 28 29 0a 2e ..return.self.generator.next()..
2800 2e 2e 0a 2e 2e 2e 20 20 20 20 20 64 65 66 20 75 6e 69 6f 6e 28 73 65 6c 66 2c 20 70 61 72 65 6e ...........def.union(self,.paren
2820 74 29 3a 0a 2e 2e 2e 20 20 20 20 20 20 20 20 20 69 66 20 73 65 6c 66 2e 70 61 72 65 6e 74 3a 0a t):.............if.self.parent:.
2840 2e 2e 2e 20 20 20 20 20 20 20 20 20 20 20 20 20 72 61 69 73 65 20 56 61 6c 75 65 45 72 72 6f 72 ................raise.ValueError
2860 28 22 53 6f 72 72 79 2c 20 49 27 6d 20 6e 6f 74 20 61 20 72 6f 6f 74 21 22 29 0a 2e 2e 2e 20 20 ("Sorry,.I'm.not.a.root!")......
2880 20 20 20 20 20 20 20 73 65 6c 66 2e 70 61 72 65 6e 74 20 3d 20 70 61 72 65 6e 74 0a 2e 2e 2e 0a .......self.parent.=.parent.....
28a0 2e 2e 2e 20 20 20 20 20 64 65 66 20 5f 5f 73 74 72 5f 5f 28 73 65 6c 66 29 3a 0a 2e 2e 2e 20 20 ........def.__str__(self):......
28c0 20 20 20 20 20 20 20 72 65 74 75 72 6e 20 73 65 6c 66 2e 6e 61 6d 65 0a 0a 3e 3e 3e 20 6e 61 6d .......return.self.name..>>>.nam
28e0 65 73 20 3d 20 22 41 42 43 44 45 46 47 48 49 4a 4b 4c 4d 22 0a 3e 3e 3e 20 73 65 74 73 20 3d 20 es.=."ABCDEFGHIJKLM".>>>.sets.=.
2900 5b 64 69 73 6a 6f 69 6e 74 53 65 74 28 6e 61 6d 65 29 20 66 6f 72 20 6e 61 6d 65 20 69 6e 20 6e [disjointSet(name).for.name.in.n
2920 61 6d 65 73 5d 0a 3e 3e 3e 20 72 6f 6f 74 73 20 3d 20 73 65 74 73 5b 3a 5d 0a 0a 3e 3e 3e 20 69 ames].>>>.roots.=.sets[:]..>>>.i
2940 6d 70 6f 72 74 20 72 61 6e 64 6f 6d 0a 3e 3e 3e 20 67 65 6e 20 3d 20 72 61 6e 64 6f 6d 2e 57 69 mport.random.>>>.gen.=.random.Wi
2960 63 68 6d 61 6e 6e 48 69 6c 6c 28 34 32 29 0a 3e 3e 3e 20 77 68 69 6c 65 20 31 3a 0a 2e 2e 2e 20 chmannHill(42).>>>.while.1:.....
2980 20 20 20 20 66 6f 72 20 73 20 69 6e 20 73 65 74 73 3a 0a 2e 2e 2e 20 20 20 20 20 20 20 20 20 70 ....for.s.in.sets:.............p
29a0 72 69 6e 74 20 22 25 73 2d 3e 25 73 22 20 25 20 28 73 2c 20 73 2e 66 69 6e 64 28 29 29 2c 0a 2e rint."%s->%s".%.(s,.s.find()),..
29c0 2e 2e 20 20 20 20 20 70 72 69 6e 74 0a 2e 2e 2e 20 20 20 20 20 69 66 20 6c 65 6e 28 72 6f 6f 74 .......print.........if.len(root
29e0 73 29 20 3e 20 31 3a 0a 2e 2e 2e 20 20 20 20 20 20 20 20 20 73 31 20 3d 20 67 65 6e 2e 63 68 6f s).>.1:.............s1.=.gen.cho
2a00 69 63 65 28 72 6f 6f 74 73 29 0a 2e 2e 2e 20 20 20 20 20 20 20 20 20 72 6f 6f 74 73 2e 72 65 6d ice(roots).............roots.rem
2a20 6f 76 65 28 73 31 29 0a 2e 2e 2e 20 20 20 20 20 20 20 20 20 73 32 20 3d 20 67 65 6e 2e 63 68 6f ove(s1).............s2.=.gen.cho
2a40 69 63 65 28 72 6f 6f 74 73 29 0a 2e 2e 2e 20 20 20 20 20 20 20 20 20 73 31 2e 75 6e 69 6f 6e 28 ice(roots).............s1.union(
2a60 73 32 29 0a 2e 2e 2e 20 20 20 20 20 20 20 20 20 70 72 69 6e 74 20 22 6d 65 72 67 65 64 22 2c 20 s2).............print."merged",.
2a80 73 31 2c 20 22 69 6e 74 6f 22 2c 20 73 32 0a 2e 2e 2e 20 20 20 20 20 65 6c 73 65 3a 0a 2e 2e 2e s1,."into",.s2.........else:....
2aa0 20 20 20 20 20 20 20 20 20 62 72 65 61 6b 0a 41 2d 3e 41 20 42 2d 3e 42 20 43 2d 3e 43 20 44 2d .........break.A->A.B->B.C->C.D-
2ac0 3e 44 20 45 2d 3e 45 20 46 2d 3e 46 20 47 2d 3e 47 20 48 2d 3e 48 20 49 2d 3e 49 20 4a 2d 3e 4a >D.E->E.F->F.G->G.H->H.I->I.J->J
2ae0 20 4b 2d 3e 4b 20 4c 2d 3e 4c 20 4d 2d 3e 4d 0a 6d 65 72 67 65 64 20 44 20 69 6e 74 6f 20 47 0a .K->K.L->L.M->M.merged.D.into.G.
2b00 41 2d 3e 41 20 42 2d 3e 42 20 43 2d 3e 43 20 44 2d 3e 47 20 45 2d 3e 45 20 46 2d 3e 46 20 47 2d A->A.B->B.C->C.D->G.E->E.F->F.G-
2b20 3e 47 20 48 2d 3e 48 20 49 2d 3e 49 20 4a 2d 3e 4a 20 4b 2d 3e 4b 20 4c 2d 3e 4c 20 4d 2d 3e 4d >G.H->H.I->I.J->J.K->K.L->L.M->M
2b40 0a 6d 65 72 67 65 64 20 43 20 69 6e 74 6f 20 46 0a 41 2d 3e 41 20 42 2d 3e 42 20 43 2d 3e 46 20 .merged.C.into.F.A->A.B->B.C->F.
2b60 44 2d 3e 47 20 45 2d 3e 45 20 46 2d 3e 46 20 47 2d 3e 47 20 48 2d 3e 48 20 49 2d 3e 49 20 4a 2d D->G.E->E.F->F.G->G.H->H.I->I.J-
2b80 3e 4a 20 4b 2d 3e 4b 20 4c 2d 3e 4c 20 4d 2d 3e 4d 0a 6d 65 72 67 65 64 20 4c 20 69 6e 74 6f 20 >J.K->K.L->L.M->M.merged.L.into.
2ba0 41 0a 41 2d 3e 41 20 42 2d 3e 42 20 43 2d 3e 46 20 44 2d 3e 47 20 45 2d 3e 45 20 46 2d 3e 46 20 A.A->A.B->B.C->F.D->G.E->E.F->F.
2bc0 47 2d 3e 47 20 48 2d 3e 48 20 49 2d 3e 49 20 4a 2d 3e 4a 20 4b 2d 3e 4b 20 4c 2d 3e 41 20 4d 2d G->G.H->H.I->I.J->J.K->K.L->A.M-
2be0 3e 4d 0a 6d 65 72 67 65 64 20 48 20 69 6e 74 6f 20 45 0a 41 2d 3e 41 20 42 2d 3e 42 20 43 2d 3e >M.merged.H.into.E.A->A.B->B.C->
2c00 46 20 44 2d 3e 47 20 45 2d 3e 45 20 46 2d 3e 46 20 47 2d 3e 47 20 48 2d 3e 45 20 49 2d 3e 49 20 F.D->G.E->E.F->F.G->G.H->E.I->I.
2c20 4a 2d 3e 4a 20 4b 2d 3e 4b 20 4c 2d 3e 41 20 4d 2d 3e 4d 0a 6d 65 72 67 65 64 20 42 20 69 6e 74 J->J.K->K.L->A.M->M.merged.B.int
2c40 6f 20 45 0a 41 2d 3e 41 20 42 2d 3e 45 20 43 2d 3e 46 20 44 2d 3e 47 20 45 2d 3e 45 20 46 2d 3e o.E.A->A.B->E.C->F.D->G.E->E.F->
2c60 46 20 47 2d 3e 47 20 48 2d 3e 45 20 49 2d 3e 49 20 4a 2d 3e 4a 20 4b 2d 3e 4b 20 4c 2d 3e 41 20 F.G->G.H->E.I->I.J->J.K->K.L->A.
2c80 4d 2d 3e 4d 0a 6d 65 72 67 65 64 20 4a 20 69 6e 74 6f 20 47 0a 41 2d 3e 41 20 42 2d 3e 45 20 43 M->M.merged.J.into.G.A->A.B->E.C
2ca0 2d 3e 46 20 44 2d 3e 47 20 45 2d 3e 45 20 46 2d 3e 46 20 47 2d 3e 47 20 48 2d 3e 45 20 49 2d 3e ->F.D->G.E->E.F->F.G->G.H->E.I->
2cc0 49 20 4a 2d 3e 47 20 4b 2d 3e 4b 20 4c 2d 3e 41 20 4d 2d 3e 4d 0a 6d 65 72 67 65 64 20 45 20 69 I.J->G.K->K.L->A.M->M.merged.E.i
2ce0 6e 74 6f 20 47 0a 41 2d 3e 41 20 42 2d 3e 47 20 43 2d 3e 46 20 44 2d 3e 47 20 45 2d 3e 47 20 46 nto.G.A->A.B->G.C->F.D->G.E->G.F
2d00 2d 3e 46 20 47 2d 3e 47 20 48 2d 3e 47 20 49 2d 3e 49 20 4a 2d 3e 47 20 4b 2d 3e 4b 20 4c 2d 3e ->F.G->G.H->G.I->I.J->G.K->K.L->
2d20 41 20 4d 2d 3e 4d 0a 6d 65 72 67 65 64 20 4d 20 69 6e 74 6f 20 47 0a 41 2d 3e 41 20 42 2d 3e 47 A.M->M.merged.M.into.G.A->A.B->G
2d40 20 43 2d 3e 46 20 44 2d 3e 47 20 45 2d 3e 47 20 46 2d 3e 46 20 47 2d 3e 47 20 48 2d 3e 47 20 49 .C->F.D->G.E->G.F->F.G->G.H->G.I
2d60 2d 3e 49 20 4a 2d 3e 47 20 4b 2d 3e 4b 20 4c 2d 3e 41 20 4d 2d 3e 47 0a 6d 65 72 67 65 64 20 49 ->I.J->G.K->K.L->A.M->G.merged.I
2d80 20 69 6e 74 6f 20 4b 0a 41 2d 3e 41 20 42 2d 3e 47 20 43 2d 3e 46 20 44 2d 3e 47 20 45 2d 3e 47 .into.K.A->A.B->G.C->F.D->G.E->G
2da0 20 46 2d 3e 46 20 47 2d 3e 47 20 48 2d 3e 47 20 49 2d 3e 4b 20 4a 2d 3e 47 20 4b 2d 3e 4b 20 4c .F->F.G->G.H->G.I->K.J->G.K->K.L
2dc0 2d 3e 41 20 4d 2d 3e 47 0a 6d 65 72 67 65 64 20 4b 20 69 6e 74 6f 20 41 0a 41 2d 3e 41 20 42 2d ->A.M->G.merged.K.into.A.A->A.B-
2de0 3e 47 20 43 2d 3e 46 20 44 2d 3e 47 20 45 2d 3e 47 20 46 2d 3e 46 20 47 2d 3e 47 20 48 2d 3e 47 >G.C->F.D->G.E->G.F->F.G->G.H->G
2e00 20 49 2d 3e 41 20 4a 2d 3e 47 20 4b 2d 3e 41 20 4c 2d 3e 41 20 4d 2d 3e 47 0a 6d 65 72 67 65 64 .I->A.J->G.K->A.L->A.M->G.merged
2e20 20 46 20 69 6e 74 6f 20 41 0a 41 2d 3e 41 20 42 2d 3e 47 20 43 2d 3e 41 20 44 2d 3e 47 20 45 2d .F.into.A.A->A.B->G.C->A.D->G.E-
2e40 3e 47 20 46 2d 3e 41 20 47 2d 3e 47 20 48 2d 3e 47 20 49 2d 3e 41 20 4a 2d 3e 47 20 4b 2d 3e 41 >G.F->A.G->G.H->G.I->A.J->G.K->A
2e60 20 4c 2d 3e 41 20 4d 2d 3e 47 0a 6d 65 72 67 65 64 20 41 20 69 6e 74 6f 20 47 0a 41 2d 3e 47 20 .L->A.M->G.merged.A.into.G.A->G.
2e80 42 2d 3e 47 20 43 2d 3e 47 20 44 2d 3e 47 20 45 2d 3e 47 20 46 2d 3e 47 20 47 2d 3e 47 20 48 2d B->G.C->G.D->G.E->G.F->G.G->G.H-
2ea0 3e 47 20 49 2d 3e 47 20 4a 2d 3e 47 20 4b 2d 3e 47 20 4c 2d 3e 47 20 4d 2d 3e 47 0a 0a 73 aa 1e >G.I->G.J->G.K->G.L->G.M->G..s..
2ec0 00 00 0a 0a 42 75 69 6c 64 20 75 70 20 74 6f 20 61 20 72 65 63 75 72 73 69 76 65 20 53 69 65 76 ....Build.up.to.a.recursive.Siev
2ee0 65 20 6f 66 20 45 72 61 74 6f 73 74 68 65 6e 65 73 20 67 65 6e 65 72 61 74 6f 72 2e 0a 0a 3e 3e e.of.Eratosthenes.generator...>>
2f00 3e 20 64 65 66 20 66 69 72 73 74 6e 28 67 2c 20 6e 29 3a 0a 2e 2e 2e 20 20 20 20 20 72 65 74 75 >.def.firstn(g,.n):.........retu
2f20 72 6e 20 5b 67 2e 6e 65 78 74 28 29 20 66 6f 72 20 69 20 69 6e 20 72 61 6e 67 65 28 6e 29 5d 0a rn.[g.next().for.i.in.range(n)].
2f40 0a 3e 3e 3e 20 64 65 66 20 69 6e 74 73 66 72 6f 6d 28 69 29 3a 0a 2e 2e 2e 20 20 20 20 20 77 68 .>>>.def.intsfrom(i):.........wh
2f60 69 6c 65 20 31 3a 0a 2e 2e 2e 20 20 20 20 20 20 20 20 20 79 69 65 6c 64 20 69 0a 2e 2e 2e 20 20 ile.1:.............yield.i......
2f80 20 20 20 20 20 20 20 69 20 2b 3d 20 31 0a 0a 3e 3e 3e 20 66 69 72 73 74 6e 28 69 6e 74 73 66 72 .......i.+=.1..>>>.firstn(intsfr
2fa0 6f 6d 28 35 29 2c 20 37 29 0a 5b 35 2c 20 36 2c 20 37 2c 20 38 2c 20 39 2c 20 31 30 2c 20 31 31 om(5),.7).[5,.6,.7,.8,.9,.10,.11
2fc0 5d 0a 0a 3e 3e 3e 20 64 65 66 20 65 78 63 6c 75 64 65 5f 6d 75 6c 74 69 70 6c 65 73 28 6e 2c 20 ]..>>>.def.exclude_multiples(n,.
2fe0 69 6e 74 73 29 3a 0a 2e 2e 2e 20 20 20 20 20 66 6f 72 20 69 20 69 6e 20 69 6e 74 73 3a 0a 2e 2e ints):.........for.i.in.ints:...
3000 2e 20 20 20 20 20 20 20 20 20 69 66 20 69 20 25 20 6e 3a 0a 2e 2e 2e 20 20 20 20 20 20 20 20 20 ..........if.i.%.n:.............
3020 20 20 20 20 79 69 65 6c 64 20 69 0a 0a 3e 3e 3e 20 66 69 72 73 74 6e 28 65 78 63 6c 75 64 65 5f ....yield.i..>>>.firstn(exclude_
3040 6d 75 6c 74 69 70 6c 65 73 28 33 2c 20 69 6e 74 73 66 72 6f 6d 28 31 29 29 2c 20 36 29 0a 5b 31 multiples(3,.intsfrom(1)),.6).[1
3060 2c 20 32 2c 20 34 2c 20 35 2c 20 37 2c 20 38 5d 0a 0a 3e 3e 3e 20 64 65 66 20 73 69 65 76 65 28 ,.2,.4,.5,.7,.8]..>>>.def.sieve(
3080 69 6e 74 73 29 3a 0a 2e 2e 2e 20 20 20 20 20 70 72 69 6d 65 20 3d 20 69 6e 74 73 2e 6e 65 78 74 ints):.........prime.=.ints.next
30a0 28 29 0a 2e 2e 2e 20 20 20 20 20 79 69 65 6c 64 20 70 72 69 6d 65 0a 2e 2e 2e 20 20 20 20 20 6e ().........yield.prime.........n
30c0 6f 74 5f 64 69 76 69 73 69 62 6c 65 5f 62 79 5f 70 72 69 6d 65 20 3d 20 65 78 63 6c 75 64 65 5f ot_divisible_by_prime.=.exclude_
30e0 6d 75 6c 74 69 70 6c 65 73 28 70 72 69 6d 65 2c 20 69 6e 74 73 29 0a 2e 2e 2e 20 20 20 20 20 66 multiples(prime,.ints).........f
3100 6f 72 20 70 20 69 6e 20 73 69 65 76 65 28 6e 6f 74 5f 64 69 76 69 73 69 62 6c 65 5f 62 79 5f 70 or.p.in.sieve(not_divisible_by_p
3120 72 69 6d 65 29 3a 0a 2e 2e 2e 20 20 20 20 20 20 20 20 20 79 69 65 6c 64 20 70 0a 0a 3e 3e 3e 20 rime):.............yield.p..>>>.
3140 70 72 69 6d 65 73 20 3d 20 73 69 65 76 65 28 69 6e 74 73 66 72 6f 6d 28 32 29 29 0a 3e 3e 3e 20 primes.=.sieve(intsfrom(2)).>>>.
3160 66 69 72 73 74 6e 28 70 72 69 6d 65 73 2c 20 32 30 29 0a 5b 32 2c 20 33 2c 20 35 2c 20 37 2c 20 firstn(primes,.20).[2,.3,.5,.7,.
3180 31 31 2c 20 31 33 2c 20 31 37 2c 20 31 39 2c 20 32 33 2c 20 32 39 2c 20 33 31 2c 20 33 37 2c 20 11,.13,.17,.19,.23,.29,.31,.37,.
31a0 34 31 2c 20 34 33 2c 20 34 37 2c 20 35 33 2c 20 35 39 2c 20 36 31 2c 20 36 37 2c 20 37 31 5d 0a 41,.43,.47,.53,.59,.61,.67,.71].
31c0 0a 0a 41 6e 6f 74 68 65 72 20 66 61 6d 6f 75 73 20 70 72 6f 62 6c 65 6d 3a 20 20 67 65 6e 65 72 ..Another.famous.problem:..gener
31e0 61 74 65 20 61 6c 6c 20 69 6e 74 65 67 65 72 73 20 6f 66 20 74 68 65 20 66 6f 72 6d 0a 20 20 20 ate.all.integers.of.the.form....
3200 20 32 2a 2a 69 20 2a 20 33 2a 2a 6a 20 20 2a 20 35 2a 2a 6b 0a 69 6e 20 69 6e 63 72 65 61 73 69 .2**i.*.3**j..*.5**k.in.increasi
3220 6e 67 20 6f 72 64 65 72 2c 20 77 68 65 72 65 20 69 2c 6a 2c 6b 20 3e 3d 20 30 2e 20 20 54 72 69 ng.order,.where.i,j,k.>=.0...Tri
3240 63 6b 69 65 72 20 74 68 61 6e 20 69 74 20 6d 61 79 20 6c 6f 6f 6b 20 61 74 20 66 69 72 73 74 21 ckier.than.it.may.look.at.first!
3260 0a 54 72 79 20 77 72 69 74 69 6e 67 20 69 74 20 77 69 74 68 6f 75 74 20 67 65 6e 65 72 61 74 6f .Try.writing.it.without.generato
3280 72 73 2c 20 61 6e 64 20 63 6f 72 72 65 63 74 6c 79 2c 20 61 6e 64 20 77 69 74 68 6f 75 74 20 67 rs,.and.correctly,.and.without.g
32a0 65 6e 65 72 61 74 69 6e 67 0a 33 20 69 6e 74 65 72 6e 61 6c 20 72 65 73 75 6c 74 73 20 66 6f 72 enerating.3.internal.results.for
32c0 20 65 61 63 68 20 72 65 73 75 6c 74 20 6f 75 74 70 75 74 2e 0a 0a 3e 3e 3e 20 64 65 66 20 74 69 .each.result.output...>>>.def.ti
32e0 6d 65 73 28 6e 2c 20 67 29 3a 0a 2e 2e 2e 20 20 20 20 20 66 6f 72 20 69 20 69 6e 20 67 3a 0a 2e mes(n,.g):.........for.i.in.g:..
3300 2e 2e 20 20 20 20 20 20 20 20 20 79 69 65 6c 64 20 6e 20 2a 20 69 0a 3e 3e 3e 20 66 69 72 73 74 ...........yield.n.*.i.>>>.first
3320 6e 28 74 69 6d 65 73 28 31 30 2c 20 69 6e 74 73 66 72 6f 6d 28 31 29 29 2c 20 31 30 29 0a 5b 31 n(times(10,.intsfrom(1)),.10).[1
3340 30 2c 20 32 30 2c 20 33 30 2c 20 34 30 2c 20 35 30 2c 20 36 30 2c 20 37 30 2c 20 38 30 2c 20 39 0,.20,.30,.40,.50,.60,.70,.80,.9
3360 30 2c 20 31 30 30 5d 0a 0a 3e 3e 3e 20 64 65 66 20 6d 65 72 67 65 28 67 2c 20 68 29 3a 0a 2e 2e 0,.100]..>>>.def.merge(g,.h):...
3380 2e 20 20 20 20 20 6e 67 20 3d 20 67 2e 6e 65 78 74 28 29 0a 2e 2e 2e 20 20 20 20 20 6e 68 20 3d ......ng.=.g.next().........nh.=
33a0 20 68 2e 6e 65 78 74 28 29 0a 2e 2e 2e 20 20 20 20 20 77 68 69 6c 65 20 31 3a 0a 2e 2e 2e 20 20 .h.next().........while.1:......
33c0 20 20 20 20 20 20 20 69 66 20 6e 67 20 3c 20 6e 68 3a 0a 2e 2e 2e 20 20 20 20 20 20 20 20 20 20 .......if.ng.<.nh:..............
33e0 20 20 20 79 69 65 6c 64 20 6e 67 0a 2e 2e 2e 20 20 20 20 20 20 20 20 20 20 20 20 20 6e 67 20 3d ...yield.ng.................ng.=
3400 20 67 2e 6e 65 78 74 28 29 0a 2e 2e 2e 20 20 20 20 20 20 20 20 20 65 6c 69 66 20 6e 67 20 3e 20 .g.next().............elif.ng.>.
3420 6e 68 3a 0a 2e 2e 2e 20 20 20 20 20 20 20 20 20 20 20 20 20 79 69 65 6c 64 20 6e 68 0a 2e 2e 2e nh:.................yield.nh....
3440 20 20 20 20 20 20 20 20 20 20 20 20 20 6e 68 20 3d 20 68 2e 6e 65 78 74 28 29 0a 2e 2e 2e 20 20 .............nh.=.h.next()......
3460 20 20 20 20 20 20 20 65 6c 73 65 3a 0a 2e 2e 2e 20 20 20 20 20 20 20 20 20 20 20 20 20 79 69 65 .......else:.................yie
3480 6c 64 20 6e 67 0a 2e 2e 2e 20 20 20 20 20 20 20 20 20 20 20 20 20 6e 67 20 3d 20 67 2e 6e 65 78 ld.ng.................ng.=.g.nex
34a0 74 28 29 0a 2e 2e 2e 20 20 20 20 20 20 20 20 20 20 20 20 20 6e 68 20 3d 20 68 2e 6e 65 78 74 28 t().................nh.=.h.next(
34c0 29 0a 0a 54 68 65 20 66 6f 6c 6c 6f 77 69 6e 67 20 77 6f 72 6b 73 2c 20 62 75 74 20 69 73 20 64 )..The.following.works,.but.is.d
34e0 6f 69 6e 67 20 61 20 77 68 61 6c 65 20 6f 66 20 61 20 6c 6f 74 20 6f 66 20 72 65 64 75 6e 64 61 oing.a.whale.of.a.lot.of.redunda
3500 6e 74 20 77 6f 72 6b 20 2d 2d 0a 69 74 27 73 20 6e 6f 74 20 63 6c 65 61 72 20 68 6f 77 20 74 6f nt.work.--.it's.not.clear.how.to
3520 20 67 65 74 20 74 68 65 20 69 6e 74 65 72 6e 61 6c 20 75 73 65 73 20 6f 66 20 6d 32 33 35 20 74 .get.the.internal.uses.of.m235.t
3540 6f 20 73 68 61 72 65 20 61 20 73 69 6e 67 6c 65 0a 67 65 6e 65 72 61 74 6f 72 2e 20 20 4e 6f 74 o.share.a.single.generator...Not
3560 65 20 74 68 61 74 20 6d 65 5f 74 69 6d 65 73 32 20 28 65 74 63 29 20 65 61 63 68 20 6e 65 65 64 e.that.me_times2.(etc).each.need
3580 20 74 6f 20 73 65 65 20 65 76 65 72 79 20 65 6c 65 6d 65 6e 74 20 69 6e 20 74 68 65 0a 72 65 73 .to.see.every.element.in.the.res
35a0 75 6c 74 20 73 65 71 75 65 6e 63 65 2e 20 20 53 6f 20 74 68 69 73 20 69 73 20 61 6e 20 65 78 61 ult.sequence...So.this.is.an.exa
35c0 6d 70 6c 65 20 77 68 65 72 65 20 6c 61 7a 79 20 6c 69 73 74 73 20 61 72 65 20 6d 6f 72 65 20 6e mple.where.lazy.lists.are.more.n
35e0 61 74 75 72 61 6c 0a 28 79 6f 75 20 63 61 6e 20 6c 6f 6f 6b 20 61 74 20 74 68 65 20 68 65 61 64 atural.(you.can.look.at.the.head
3600 20 6f 66 20 61 20 6c 61 7a 79 20 6c 69 73 74 20 61 6e 79 20 6e 75 6d 62 65 72 20 6f 66 20 74 69 .of.a.lazy.list.any.number.of.ti
3620 6d 65 73 29 2e 0a 0a 3e 3e 3e 20 64 65 66 20 6d 32 33 35 28 29 3a 0a 2e 2e 2e 20 20 20 20 20 79 mes)...>>>.def.m235():.........y
3640 69 65 6c 64 20 31 0a 2e 2e 2e 20 20 20 20 20 6d 65 5f 74 69 6d 65 73 32 20 3d 20 74 69 6d 65 73 ield.1.........me_times2.=.times
3660 28 32 2c 20 6d 32 33 35 28 29 29 0a 2e 2e 2e 20 20 20 20 20 6d 65 5f 74 69 6d 65 73 33 20 3d 20 (2,.m235()).........me_times3.=.
3680 74 69 6d 65 73 28 33 2c 20 6d 32 33 35 28 29 29 0a 2e 2e 2e 20 20 20 20 20 6d 65 5f 74 69 6d 65 times(3,.m235()).........me_time
36a0 73 35 20 3d 20 74 69 6d 65 73 28 35 2c 20 6d 32 33 35 28 29 29 0a 2e 2e 2e 20 20 20 20 20 66 6f s5.=.times(5,.m235()).........fo
36c0 72 20 69 20 69 6e 20 6d 65 72 67 65 28 6d 65 72 67 65 28 6d 65 5f 74 69 6d 65 73 32 2c 0a 2e 2e r.i.in.merge(merge(me_times2,...
36e0 2e 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 6d 65 5f 74 69 ...........................me_ti
3700 6d 65 73 33 29 2c 0a 2e 2e 2e 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 6d 65 mes3),........................me
3720 5f 74 69 6d 65 73 35 29 3a 0a 2e 2e 2e 20 20 20 20 20 20 20 20 20 79 69 65 6c 64 20 69 0a 0a 44 _times5):.............yield.i..D
3740 6f 6e 27 74 20 70 72 69 6e 74 20 22 74 6f 6f 20 6d 61 6e 79 22 20 6f 66 20 74 68 65 73 65 20 2d on't.print."too.many".of.these.-
3760 2d 20 74 68 65 20 69 6d 70 6c 65 6d 65 6e 74 61 74 69 6f 6e 20 61 62 6f 76 65 20 69 73 20 65 78 -.the.implementation.above.is.ex
3780 74 72 65 6d 65 6c 79 0a 69 6e 65 66 66 69 63 69 65 6e 74 3a 20 20 65 61 63 68 20 63 61 6c 6c 20 tremely.inefficient:..each.call.
37a0 6f 66 20 6d 32 33 35 28 29 20 6c 65 61 64 73 20 74 6f 20 33 20 72 65 63 75 72 73 69 76 65 20 63 of.m235().leads.to.3.recursive.c
37c0 61 6c 6c 73 2c 20 61 6e 64 20 69 6e 0a 74 75 72 6e 20 65 61 63 68 20 6f 66 20 74 68 6f 73 65 20 alls,.and.in.turn.each.of.those.
37e0 33 20 6d 6f 72 65 2c 20 61 6e 64 20 73 6f 20 6f 6e 2c 20 61 6e 64 20 73 6f 20 6f 6e 2c 20 75 6e 3.more,.and.so.on,.and.so.on,.un
3800 74 69 6c 20 77 65 27 76 65 20 64 65 73 63 65 6e 64 65 64 0a 65 6e 6f 75 67 68 20 6c 65 76 65 6c til.we've.descended.enough.level
3820 73 20 74 6f 20 73 61 74 69 73 66 79 20 74 68 65 20 70 72 69 6e 74 20 73 74 6d 74 73 2e 20 20 56 s.to.satisfy.the.print.stmts...V
3840 65 72 79 20 6f 64 64 3a 20 20 77 68 65 6e 20 49 20 70 72 69 6e 74 65 64 20 35 0a 6c 69 6e 65 73 ery.odd:..when.I.printed.5.lines
3860 20 6f 66 20 72 65 73 75 6c 74 73 20 62 65 6c 6f 77 2c 20 74 68 69 73 20 6d 61 6e 61 67 65 64 20 .of.results.below,.this.managed.
3880 74 6f 20 73 63 72 65 77 20 75 70 20 57 69 6e 39 38 27 73 20 6d 61 6c 6c 6f 63 20 69 6e 20 22 74 to.screw.up.Win98's.malloc.in."t
38a0 68 65 0a 75 73 75 61 6c 22 20 77 61 79 2c 20 69 2e 65 2e 20 74 68 65 20 68 65 61 70 20 67 72 65 he.usual".way,.i.e..the.heap.gre
38c0 77 20 6f 76 65 72 20 34 4d 62 20 73 6f 20 57 69 6e 39 38 20 73 74 61 72 74 65 64 20 66 72 61 67 w.over.4Mb.so.Win98.started.frag
38e0 6d 65 6e 74 69 6e 67 0a 61 64 64 72 65 73 73 20 73 70 61 63 65 2c 20 61 6e 64 20 69 74 20 2a 6c menting.address.space,.and.it.*l
3900 6f 6f 6b 65 64 2a 20 6c 69 6b 65 20 61 20 76 65 72 79 20 73 6c 6f 77 20 6c 65 61 6b 2e 0a 0a 3e ooked*.like.a.very.slow.leak...>
3920 3e 3e 20 72 65 73 75 6c 74 20 3d 20 6d 32 33 35 28 29 0a 3e 3e 3e 20 66 6f 72 20 69 20 69 6e 20 >>.result.=.m235().>>>.for.i.in.
3940 72 61 6e 67 65 28 33 29 3a 0a 2e 2e 2e 20 20 20 20 20 70 72 69 6e 74 20 66 69 72 73 74 6e 28 72 range(3):.........print.firstn(r
3960 65 73 75 6c 74 2c 20 31 35 29 0a 5b 31 2c 20 32 2c 20 33 2c 20 34 2c 20 35 2c 20 36 2c 20 38 2c esult,.15).[1,.2,.3,.4,.5,.6,.8,
3980 20 39 2c 20 31 30 2c 20 31 32 2c 20 31 35 2c 20 31 36 2c 20 31 38 2c 20 32 30 2c 20 32 34 5d 0a .9,.10,.12,.15,.16,.18,.20,.24].
39a0 5b 32 35 2c 20 32 37 2c 20 33 30 2c 20 33 32 2c 20 33 36 2c 20 34 30 2c 20 34 35 2c 20 34 38 2c [25,.27,.30,.32,.36,.40,.45,.48,
39c0 20 35 30 2c 20 35 34 2c 20 36 30 2c 20 36 34 2c 20 37 32 2c 20 37 35 2c 20 38 30 5d 0a 5b 38 31 .50,.54,.60,.64,.72,.75,.80].[81
39e0 2c 20 39 30 2c 20 39 36 2c 20 31 30 30 2c 20 31 30 38 2c 20 31 32 30 2c 20 31 32 35 2c 20 31 32 ,.90,.96,.100,.108,.120,.125,.12
3a00 38 2c 20 31 33 35 2c 20 31 34 34 2c 20 31 35 30 2c 20 31 36 30 2c 20 31 36 32 2c 20 31 38 30 2c 8,.135,.144,.150,.160,.162,.180,
3a20 20 31 39 32 5d 0a 0a 48 65 68 2e 20 20 48 65 72 65 27 73 20 6f 6e 65 20 77 61 79 20 74 6f 20 67 .192]..Heh...Here's.one.way.to.g
3a40 65 74 20 61 20 73 68 61 72 65 64 20 6c 69 73 74 2c 20 63 6f 6d 70 6c 65 74 65 20 77 69 74 68 20 et.a.shared.list,.complete.with.
3a60 61 6e 20 65 78 63 72 75 63 69 61 74 69 6e 67 0a 6e 61 6d 65 73 70 61 63 65 20 72 65 6e 61 6d 69 an.excruciating.namespace.renami
3a80 6e 67 20 74 72 69 63 6b 2e 20 20 54 68 65 20 2a 70 72 65 74 74 79 2a 20 70 61 72 74 20 69 73 20 ng.trick...The.*pretty*.part.is.
3aa0 74 68 61 74 20 74 68 65 20 74 69 6d 65 73 28 29 20 61 6e 64 20 6d 65 72 67 65 28 29 0a 66 75 6e that.the.times().and.merge().fun
3ac0 63 74 69 6f 6e 73 20 63 61 6e 20 62 65 20 72 65 75 73 65 64 20 61 73 2d 69 73 2c 20 62 65 63 61 ctions.can.be.reused.as-is,.beca
3ae0 75 73 65 20 74 68 65 79 20 6f 6e 6c 79 20 61 73 73 75 6d 65 20 74 68 65 69 72 20 73 74 72 65 61 use.they.only.assume.their.strea
3b00 6d 0a 61 72 67 75 6d 65 6e 74 73 20 61 72 65 20 69 74 65 72 61 62 6c 65 20 2d 2d 20 61 20 4c 61 m.arguments.are.iterable.--.a.La
3b20 7a 79 4c 69 73 74 20 69 73 20 74 68 65 20 73 61 6d 65 20 61 73 20 61 20 67 65 6e 65 72 61 74 6f zyList.is.the.same.as.a.generato
3b40 72 20 74 6f 20 74 69 6d 65 73 28 29 2e 0a 0a 3e 3e 3e 20 63 6c 61 73 73 20 4c 61 7a 79 4c 69 73 r.to.times()...>>>.class.LazyLis
3b60 74 3a 0a 2e 2e 2e 20 20 20 20 20 64 65 66 20 5f 5f 69 6e 69 74 5f 5f 28 73 65 6c 66 2c 20 67 29 t:.........def.__init__(self,.g)
3b80 3a 0a 2e 2e 2e 20 20 20 20 20 20 20 20 20 73 65 6c 66 2e 73 6f 66 61 72 20 3d 20 5b 5d 0a 2e 2e :.............self.sofar.=.[]...
3ba0 2e 20 20 20 20 20 20 20 20 20 73 65 6c 66 2e 66 65 74 63 68 20 3d 20 67 2e 6e 65 78 74 0a 2e 2e ..........self.fetch.=.g.next...
3bc0 2e 0a 2e 2e 2e 20 20 20 20 20 64 65 66 20 5f 5f 67 65 74 69 74 65 6d 5f 5f 28 73 65 6c 66 2c 20 ..........def.__getitem__(self,.
3be0 69 29 3a 0a 2e 2e 2e 20 20 20 20 20 20 20 20 20 73 6f 66 61 72 2c 20 66 65 74 63 68 20 3d 20 73 i):.............sofar,.fetch.=.s
3c00 65 6c 66 2e 73 6f 66 61 72 2c 20 73 65 6c 66 2e 66 65 74 63 68 0a 2e 2e 2e 20 20 20 20 20 20 20 elf.sofar,.self.fetch...........
3c20 20 20 77 68 69 6c 65 20 69 20 3e 3d 20 6c 65 6e 28 73 6f 66 61 72 29 3a 0a 2e 2e 2e 20 20 20 20 ..while.i.>=.len(sofar):........
3c40 20 20 20 20 20 20 20 20 20 73 6f 66 61 72 2e 61 70 70 65 6e 64 28 66 65 74 63 68 28 29 29 0a 2e .........sofar.append(fetch())..
3c60 2e 2e 20 20 20 20 20 20 20 20 20 72 65 74 75 72 6e 20 73 6f 66 61 72 5b 69 5d 0a 0a 3e 3e 3e 20 ...........return.sofar[i]..>>>.
3c80 64 65 66 20 6d 32 33 35 28 29 3a 0a 2e 2e 2e 20 20 20 20 20 79 69 65 6c 64 20 31 0a 2e 2e 2e 20 def.m235():.........yield.1.....
3ca0 20 20 20 20 23 20 47 61 63 6b 3a 20 20 6d 32 33 35 20 62 65 6c 6f 77 20 61 63 74 75 61 6c 6c 79 ....#.Gack:..m235.below.actually
3cc0 20 72 65 66 65 72 73 20 74 6f 20 61 20 4c 61 7a 79 4c 69 73 74 2e 0a 2e 2e 2e 20 20 20 20 20 6d .refers.to.a.LazyList..........m
3ce0 65 5f 74 69 6d 65 73 32 20 3d 20 74 69 6d 65 73 28 32 2c 20 6d 32 33 35 29 0a 2e 2e 2e 20 20 20 e_times2.=.times(2,.m235).......
3d00 20 20 6d 65 5f 74 69 6d 65 73 33 20 3d 20 74 69 6d 65 73 28 33 2c 20 6d 32 33 35 29 0a 2e 2e 2e ..me_times3.=.times(3,.m235)....
3d20 20 20 20 20 20 6d 65 5f 74 69 6d 65 73 35 20 3d 20 74 69 6d 65 73 28 35 2c 20 6d 32 33 35 29 0a .....me_times5.=.times(5,.m235).
3d40 2e 2e 2e 20 20 20 20 20 66 6f 72 20 69 20 69 6e 20 6d 65 72 67 65 28 6d 65 72 67 65 28 6d 65 5f ........for.i.in.merge(merge(me_
3d60 74 69 6d 65 73 32 2c 0a 2e 2e 2e 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 times2,.........................
3d80 20 20 20 20 20 6d 65 5f 74 69 6d 65 73 33 29 2c 0a 2e 2e 2e 20 20 20 20 20 20 20 20 20 20 20 20 .....me_times3),................
3da0 20 20 20 20 20 20 20 20 6d 65 5f 74 69 6d 65 73 35 29 3a 0a 2e 2e 2e 20 20 20 20 20 20 20 20 20 ........me_times5):.............
3dc0 79 69 65 6c 64 20 69 0a 0a 50 72 69 6e 74 20 61 73 20 6d 61 6e 79 20 6f 66 20 74 68 65 73 65 20 yield.i..Print.as.many.of.these.
3de0 61 73 20 79 6f 75 20 6c 69 6b 65 20 2d 2d 20 2a 74 68 69 73 2a 20 69 6d 70 6c 65 6d 65 6e 74 61 as.you.like.--.*this*.implementa
3e00 74 69 6f 6e 20 69 73 20 6d 65 6d 6f 72 79 2d 0a 65 66 66 69 63 69 65 6e 74 2e 0a 0a 3e 3e 3e 20 tion.is.memory-.efficient...>>>.
3e20 6d 32 33 35 20 3d 20 4c 61 7a 79 4c 69 73 74 28 6d 32 33 35 28 29 29 0a 3e 3e 3e 20 66 6f 72 20 m235.=.LazyList(m235()).>>>.for.
3e40 69 20 69 6e 20 72 61 6e 67 65 28 35 29 3a 0a 2e 2e 2e 20 20 20 20 20 70 72 69 6e 74 20 5b 6d 32 i.in.range(5):.........print.[m2
3e60 33 35 5b 6a 5d 20 66 6f 72 20 6a 20 69 6e 20 72 61 6e 67 65 28 31 35 2a 69 2c 20 31 35 2a 28 69 35[j].for.j.in.range(15*i,.15*(i
3e80 2b 31 29 29 5d 0a 5b 31 2c 20 32 2c 20 33 2c 20 34 2c 20 35 2c 20 36 2c 20 38 2c 20 39 2c 20 31 +1))].[1,.2,.3,.4,.5,.6,.8,.9,.1
3ea0 30 2c 20 31 32 2c 20 31 35 2c 20 31 36 2c 20 31 38 2c 20 32 30 2c 20 32 34 5d 0a 5b 32 35 2c 20 0,.12,.15,.16,.18,.20,.24].[25,.
3ec0 32 37 2c 20 33 30 2c 20 33 32 2c 20 33 36 2c 20 34 30 2c 20 34 35 2c 20 34 38 2c 20 35 30 2c 20 27,.30,.32,.36,.40,.45,.48,.50,.
3ee0 35 34 2c 20 36 30 2c 20 36 34 2c 20 37 32 2c 20 37 35 2c 20 38 30 5d 0a 5b 38 31 2c 20 39 30 2c 54,.60,.64,.72,.75,.80].[81,.90,
3f00 20 39 36 2c 20 31 30 30 2c 20 31 30 38 2c 20 31 32 30 2c 20 31 32 35 2c 20 31 32 38 2c 20 31 33 .96,.100,.108,.120,.125,.128,.13
3f20 35 2c 20 31 34 34 2c 20 31 35 30 2c 20 31 36 30 2c 20 31 36 32 2c 20 31 38 30 2c 20 31 39 32 5d 5,.144,.150,.160,.162,.180,.192]
3f40 0a 5b 32 30 30 2c 20 32 31 36 2c 20 32 32 35 2c 20 32 34 30 2c 20 32 34 33 2c 20 32 35 30 2c 20 .[200,.216,.225,.240,.243,.250,.
3f60 32 35 36 2c 20 32 37 30 2c 20 32 38 38 2c 20 33 30 30 2c 20 33 32 30 2c 20 33 32 34 2c 20 33 36 256,.270,.288,.300,.320,.324,.36
3f80 30 2c 20 33 37 35 2c 20 33 38 34 5d 0a 5b 34 30 30 2c 20 34 30 35 2c 20 34 33 32 2c 20 34 35 30 0,.375,.384].[400,.405,.432,.450
3fa0 2c 20 34 38 30 2c 20 34 38 36 2c 20 35 30 30 2c 20 35 31 32 2c 20 35 34 30 2c 20 35 37 36 2c 20 ,.480,.486,.500,.512,.540,.576,.
3fc0 36 30 30 2c 20 36 32 35 2c 20 36 34 30 2c 20 36 34 38 2c 20 36 37 35 5d 0a 0a 59 65 20 6f 6c 64 600,.625,.640,.648,.675]..Ye.old
3fe0 65 20 46 69 62 6f 6e 61 63 63 69 20 67 65 6e 65 72 61 74 6f 72 2c 20 4c 61 7a 79 4c 69 73 74 20 e.Fibonacci.generator,.LazyList.
4000 73 74 79 6c 65 2e 0a 0a 3e 3e 3e 20 64 65 66 20 66 69 62 67 65 6e 28 61 2c 20 62 29 3a 0a 2e 2e style...>>>.def.fibgen(a,.b):...
4020 2e 0a 2e 2e 2e 20 20 20 20 20 64 65 66 20 73 75 6d 28 67 2c 20 68 29 3a 0a 2e 2e 2e 20 20 20 20 ..........def.sum(g,.h):........
4040 20 20 20 20 20 77 68 69 6c 65 20 31 3a 0a 2e 2e 2e 20 20 20 20 20 20 20 20 20 20 20 20 20 79 69 .....while.1:.................yi
4060 65 6c 64 20 67 2e 6e 65 78 74 28 29 20 2b 20 68 2e 6e 65 78 74 28 29 0a 2e 2e 2e 0a 2e 2e 2e 20 eld.g.next().+.h.next().........
4080 20 20 20 20 64 65 66 20 74 61 69 6c 28 67 29 3a 0a 2e 2e 2e 20 20 20 20 20 20 20 20 20 67 2e 6e ....def.tail(g):.............g.n
40a0 65 78 74 28 29 20 20 20 20 23 20 74 68 72 6f 77 20 66 69 72 73 74 20 61 77 61 79 0a 2e 2e 2e 20 ext()....#.throw.first.away.....
40c0 20 20 20 20 20 20 20 20 66 6f 72 20 78 20 69 6e 20 67 3a 0a 2e 2e 2e 20 20 20 20 20 20 20 20 20 ........for.x.in.g:.............
40e0 20 20 20 20 79 69 65 6c 64 20 78 0a 2e 2e 2e 0a 2e 2e 2e 20 20 20 20 20 79 69 65 6c 64 20 61 0a ....yield.x.............yield.a.
4100 2e 2e 2e 20 20 20 20 20 79 69 65 6c 64 20 62 0a 2e 2e 2e 20 20 20 20 20 66 6f 72 20 73 20 69 6e ........yield.b.........for.s.in
4120 20 73 75 6d 28 69 74 65 72 28 66 69 62 29 2c 0a 2e 2e 2e 20 20 20 20 20 20 20 20 20 20 20 20 20 .sum(iter(fib),.................
4140 20 20 20 20 20 74 61 69 6c 28 69 74 65 72 28 66 69 62 29 29 29 3a 0a 2e 2e 2e 20 20 20 20 20 20 .....tail(iter(fib))):..........
4160 20 20 20 79 69 65 6c 64 20 73 0a 0a 3e 3e 3e 20 66 69 62 20 3d 20 4c 61 7a 79 4c 69 73 74 28 66 ...yield.s..>>>.fib.=.LazyList(f
4180 69 62 67 65 6e 28 31 2c 20 32 29 29 0a 3e 3e 3e 20 66 69 72 73 74 6e 28 69 74 65 72 28 66 69 62 ibgen(1,.2)).>>>.firstn(iter(fib
41a0 29 2c 20 31 37 29 0a 5b 31 2c 20 32 2c 20 33 2c 20 35 2c 20 38 2c 20 31 33 2c 20 32 31 2c 20 33 ),.17).[1,.2,.3,.5,.8,.13,.21,.3
41c0 34 2c 20 35 35 2c 20 38 39 2c 20 31 34 34 2c 20 32 33 33 2c 20 33 37 37 2c 20 36 31 30 2c 20 39 4,.55,.89,.144,.233,.377,.610,.9
41e0 38 37 2c 20 31 35 39 37 2c 20 32 35 38 34 5d 0a 0a 0a 52 75 6e 6e 69 6e 67 20 61 66 74 65 72 20 87,.1597,.2584]...Running.after.
4200 79 6f 75 72 20 74 61 69 6c 20 77 69 74 68 20 69 74 65 72 74 6f 6f 6c 73 2e 74 65 65 20 28 6e 65 your.tail.with.itertools.tee.(ne
4220 77 20 69 6e 20 76 65 72 73 69 6f 6e 20 32 2e 34 29 0a 0a 54 68 65 20 61 6c 67 6f 72 69 74 68 6d w.in.version.2.4)..The.algorithm
4240 73 20 22 6d 32 33 35 22 20 28 48 61 6d 6d 69 6e 67 29 20 61 6e 64 20 46 69 62 6f 6e 61 63 63 69 s."m235".(Hamming).and.Fibonacci
4260 20 70 72 65 73 65 6e 74 65 64 20 61 62 6f 76 65 20 61 72 65 20 62 6f 74 68 0a 65 78 61 6d 70 6c .presented.above.are.both.exampl
4280 65 73 20 6f 66 20 61 20 77 68 6f 6c 65 20 66 61 6d 69 6c 79 20 6f 66 20 46 50 20 28 66 75 6e 63 es.of.a.whole.family.of.FP.(func
42a0 74 69 6f 6e 61 6c 20 70 72 6f 67 72 61 6d 6d 69 6e 67 29 20 61 6c 67 6f 72 69 74 68 6d 73 0a 77 tional.programming).algorithms.w
42c0 68 65 72 65 20 61 20 66 75 6e 63 74 69 6f 6e 20 70 72 6f 64 75 63 65 73 20 61 6e 64 20 72 65 74 here.a.function.produces.and.ret
42e0 75 72 6e 73 20 61 20 6c 69 73 74 20 77 68 69 6c 65 20 74 68 65 20 70 72 6f 64 75 63 74 69 6f 6e urns.a.list.while.the.production
4300 20 61 6c 67 6f 72 69 74 68 6d 0a 73 75 70 70 6f 73 65 20 74 68 65 20 6c 69 73 74 20 61 73 20 61 .algorithm.suppose.the.list.as.a
4320 6c 72 65 61 64 79 20 70 72 6f 64 75 63 65 64 20 62 79 20 72 65 63 75 72 73 69 76 65 6c 79 20 63 lready.produced.by.recursively.c
4340 61 6c 6c 69 6e 67 20 69 74 73 65 6c 66 2e 0a 46 6f 72 20 74 68 65 73 65 20 61 6c 67 6f 72 69 74 alling.itself..For.these.algorit
4360 68 6d 73 20 74 6f 20 77 6f 72 6b 2c 20 74 68 65 79 20 6d 75 73 74 3a 0a 0a 2d 20 70 72 6f 64 75 hms.to.work,.they.must:..-.produ
4380 63 65 20 61 74 20 6c 65 61 73 74 20 61 20 66 69 72 73 74 20 65 6c 65 6d 65 6e 74 20 77 69 74 68 ce.at.least.a.first.element.with
43a0 6f 75 74 20 70 72 65 73 75 70 70 6f 73 69 6e 67 20 74 68 65 20 65 78 69 73 74 65 6e 63 65 20 6f out.presupposing.the.existence.o
43c0 66 0a 20 20 74 68 65 20 72 65 73 74 20 6f 66 20 74 68 65 20 6c 69 73 74 0a 2d 20 70 72 6f 64 75 f...the.rest.of.the.list.-.produ
43e0 63 65 20 74 68 65 69 72 20 65 6c 65 6d 65 6e 74 73 20 69 6e 20 61 20 6c 61 7a 79 20 6d 61 6e 6e ce.their.elements.in.a.lazy.mann
4400 65 72 0a 0a 54 6f 20 77 6f 72 6b 20 65 66 66 69 63 69 65 6e 74 6c 79 2c 20 74 68 65 20 62 65 67 er..To.work.efficiently,.the.beg
4420 69 6e 6e 69 6e 67 20 6f 66 20 74 68 65 20 6c 69 73 74 20 6d 75 73 74 20 6e 6f 74 20 62 65 20 72 inning.of.the.list.must.not.be.r
4440 65 63 6f 6d 70 75 74 65 64 20 6f 76 65 72 0a 61 6e 64 20 6f 76 65 72 20 61 67 61 69 6e 2e 20 54 ecomputed.over.and.over.again..T
4460 68 69 73 20 69 73 20 65 6e 73 75 72 65 64 20 69 6e 20 6d 6f 73 74 20 46 50 20 6c 61 6e 67 75 61 his.is.ensured.in.most.FP.langua
4480 67 65 73 20 61 73 20 61 20 62 75 69 6c 74 2d 69 6e 20 66 65 61 74 75 72 65 2e 0a 49 6e 20 70 79 ges.as.a.built-in.feature..In.py
44a0 74 68 6f 6e 2c 20 77 65 20 68 61 76 65 20 74 6f 20 65 78 70 6c 69 63 69 74 6c 79 20 6d 61 69 6e thon,.we.have.to.explicitly.main
44c0 74 61 69 6e 20 61 20 6c 69 73 74 20 6f 66 20 61 6c 72 65 61 64 79 20 63 6f 6d 70 75 74 65 64 20 tain.a.list.of.already.computed.
44e0 72 65 73 75 6c 74 73 0a 61 6e 64 20 61 62 61 6e 64 6f 6e 20 67 65 6e 75 69 6e 65 20 72 65 63 75 results.and.abandon.genuine.recu
4500 72 73 69 76 69 74 79 2e 0a 0a 54 68 69 73 20 69 73 20 77 68 61 74 20 68 61 64 20 62 65 65 6e 20 rsivity...This.is.what.had.been.
4520 61 74 74 65 6d 70 74 65 64 20 61 62 6f 76 65 20 77 69 74 68 20 74 68 65 20 4c 61 7a 79 4c 69 73 attempted.above.with.the.LazyLis
4540 74 20 63 6c 61 73 73 2e 20 4f 6e 65 20 70 72 6f 62 6c 65 6d 0a 77 69 74 68 20 74 68 61 74 20 63 t.class..One.problem.with.that.c
4560 6c 61 73 73 20 69 73 20 74 68 61 74 20 69 74 20 6b 65 65 70 73 20 61 20 6c 69 73 74 20 6f 66 20 lass.is.that.it.keeps.a.list.of.
4580 61 6c 6c 20 6f 66 20 74 68 65 20 67 65 6e 65 72 61 74 65 64 20 72 65 73 75 6c 74 73 20 61 6e 64 all.of.the.generated.results.and
45a0 0a 74 68 65 72 65 66 6f 72 65 20 63 6f 6e 74 69 6e 75 61 6c 6c 79 20 67 72 6f 77 73 2e 20 54 68 .therefore.continually.grows..Th
45c0 69 73 20 70 61 72 74 69 61 6c 6c 79 20 64 65 66 65 61 74 73 20 74 68 65 20 67 6f 61 6c 20 6f 66 is.partially.defeats.the.goal.of
45e0 20 74 68 65 20 67 65 6e 65 72 61 74 6f 72 0a 63 6f 6e 63 65 70 74 2c 20 76 69 7a 2e 20 70 72 6f .the.generator.concept,.viz..pro
4600 64 75 63 65 20 74 68 65 20 72 65 73 75 6c 74 73 20 6f 6e 6c 79 20 61 73 20 6e 65 65 64 65 64 20 duce.the.results.only.as.needed.
4620 69 6e 73 74 65 61 64 20 6f 66 20 70 72 6f 64 75 63 69 6e 67 20 74 68 65 6d 0a 61 6c 6c 20 61 6e instead.of.producing.them.all.an
4640 64 20 74 68 65 72 65 62 79 20 77 61 73 74 69 6e 67 20 6d 65 6d 6f 72 79 2e 0a 0a 54 68 61 6e 6b d.thereby.wasting.memory...Thank
4660 73 20 74 6f 20 69 74 65 72 74 6f 6f 6c 73 2e 74 65 65 2c 20 69 74 20 69 73 20 6e 6f 77 20 63 6c s.to.itertools.tee,.it.is.now.cl
4680 65 61 72 20 22 68 6f 77 20 74 6f 20 67 65 74 20 74 68 65 20 69 6e 74 65 72 6e 61 6c 20 75 73 65 ear."how.to.get.the.internal.use
46a0 73 20 6f 66 0a 6d 32 33 35 20 74 6f 20 73 68 61 72 65 20 61 20 73 69 6e 67 6c 65 20 67 65 6e 65 s.of.m235.to.share.a.single.gene
46c0 72 61 74 6f 72 22 2e 0a 0a 3e 3e 3e 20 66 72 6f 6d 20 69 74 65 72 74 6f 6f 6c 73 20 69 6d 70 6f rator"...>>>.from.itertools.impo
46e0 72 74 20 74 65 65 0a 3e 3e 3e 20 64 65 66 20 6d 32 33 35 28 29 3a 0a 2e 2e 2e 20 20 20 20 20 64 rt.tee.>>>.def.m235():.........d
4700 65 66 20 5f 6d 32 33 35 28 29 3a 0a 2e 2e 2e 20 20 20 20 20 20 20 20 20 79 69 65 6c 64 20 31 0a ef._m235():.............yield.1.
4720 2e 2e 2e 20 20 20 20 20 20 20 20 20 66 6f 72 20 6e 20 69 6e 20 6d 65 72 67 65 28 74 69 6d 65 73 ............for.n.in.merge(times
4740 28 32 2c 20 6d 32 29 2c 0a 2e 2e 2e 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 (2,.m2),........................
4760 20 20 20 20 6d 65 72 67 65 28 74 69 6d 65 73 28 33 2c 20 6d 33 29 2c 0a 2e 2e 2e 20 20 20 20 20 ....merge(times(3,.m3),.........
4780 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 74 69 6d 65 73 28 35 .........................times(5
47a0 2c 20 6d 35 29 29 29 3a 0a 2e 2e 2e 20 20 20 20 20 20 20 20 20 20 20 20 20 79 69 65 6c 64 20 6e ,.m5))):.................yield.n
47c0 0a 2e 2e 2e 20 20 20 20 20 6d 31 20 3d 20 5f 6d 32 33 35 28 29 0a 2e 2e 2e 20 20 20 20 20 6d 32 .........m1.=._m235().........m2
47e0 2c 20 6d 33 2c 20 6d 35 2c 20 6d 52 65 73 20 3d 20 74 65 65 28 6d 31 2c 20 34 29 0a 2e 2e 2e 20 ,.m3,.m5,.mRes.=.tee(m1,.4).....
4800 20 20 20 20 72 65 74 75 72 6e 20 6d 52 65 73 0a 0a 3e 3e 3e 20 69 74 20 3d 20 6d 32 33 35 28 29 ....return.mRes..>>>.it.=.m235()
4820 0a 3e 3e 3e 20 66 6f 72 20 69 20 69 6e 20 72 61 6e 67 65 28 35 29 3a 0a 2e 2e 2e 20 20 20 20 20 .>>>.for.i.in.range(5):.........
4840 70 72 69 6e 74 20 66 69 72 73 74 6e 28 69 74 2c 20 31 35 29 0a 5b 31 2c 20 32 2c 20 33 2c 20 34 print.firstn(it,.15).[1,.2,.3,.4
4860 2c 20 35 2c 20 36 2c 20 38 2c 20 39 2c 20 31 30 2c 20 31 32 2c 20 31 35 2c 20 31 36 2c 20 31 38 ,.5,.6,.8,.9,.10,.12,.15,.16,.18
4880 2c 20 32 30 2c 20 32 34 5d 0a 5b 32 35 2c 20 32 37 2c 20 33 30 2c 20 33 32 2c 20 33 36 2c 20 34 ,.20,.24].[25,.27,.30,.32,.36,.4
48a0 30 2c 20 34 35 2c 20 34 38 2c 20 35 30 2c 20 35 34 2c 20 36 30 2c 20 36 34 2c 20 37 32 2c 20 37 0,.45,.48,.50,.54,.60,.64,.72,.7
48c0 35 2c 20 38 30 5d 0a 5b 38 31 2c 20 39 30 2c 20 39 36 2c 20 31 30 30 2c 20 31 30 38 2c 20 31 32 5,.80].[81,.90,.96,.100,.108,.12
48e0 30 2c 20 31 32 35 2c 20 31 32 38 2c 20 31 33 35 2c 20 31 34 34 2c 20 31 35 30 2c 20 31 36 30 2c 0,.125,.128,.135,.144,.150,.160,
4900 20 31 36 32 2c 20 31 38 30 2c 20 31 39 32 5d 0a 5b 32 30 30 2c 20 32 31 36 2c 20 32 32 35 2c 20 .162,.180,.192].[200,.216,.225,.
4920 32 34 30 2c 20 32 34 33 2c 20 32 35 30 2c 20 32 35 36 2c 20 32 37 30 2c 20 32 38 38 2c 20 33 30 240,.243,.250,.256,.270,.288,.30
4940 30 2c 20 33 32 30 2c 20 33 32 34 2c 20 33 36 30 2c 20 33 37 35 2c 20 33 38 34 5d 0a 5b 34 30 30 0,.320,.324,.360,.375,.384].[400
4960 2c 20 34 30 35 2c 20 34 33 32 2c 20 34 35 30 2c 20 34 38 30 2c 20 34 38 36 2c 20 35 30 30 2c 20 ,.405,.432,.450,.480,.486,.500,.
4980 35 31 32 2c 20 35 34 30 2c 20 35 37 36 2c 20 36 30 30 2c 20 36 32 35 2c 20 36 34 30 2c 20 36 34 512,.540,.576,.600,.625,.640,.64
49a0 38 2c 20 36 37 35 5d 0a 0a 54 68 65 20 22 74 65 65 22 20 66 75 6e 63 74 69 6f 6e 20 64 6f 65 73 8,.675]..The."tee".function.does
49c0 20 6a 75 73 74 20 77 68 61 74 20 77 65 20 77 61 6e 74 2e 20 49 74 20 69 6e 74 65 72 6e 61 6c 6c .just.what.we.want..It.internall
49e0 79 20 6b 65 65 70 73 20 61 20 67 65 6e 65 72 61 74 65 64 0a 72 65 73 75 6c 74 20 66 6f 72 20 61 y.keeps.a.generated.result.for.a
4a00 73 20 6c 6f 6e 67 20 61 73 20 69 74 20 68 61 73 20 6e 6f 74 20 62 65 65 6e 20 22 63 6f 6e 73 75 s.long.as.it.has.not.been."consu
4a20 6d 65 64 22 20 66 72 6f 6d 20 61 6c 6c 20 6f 66 20 74 68 65 20 64 75 70 6c 69 63 61 74 65 64 0a med".from.all.of.the.duplicated.
4a40 69 74 65 72 61 74 6f 72 73 2c 20 77 68 65 72 65 75 70 6f 6e 20 69 74 20 69 73 20 64 65 6c 65 74 iterators,.whereupon.it.is.delet
4a60 65 64 2e 20 59 6f 75 20 63 61 6e 20 74 68 65 72 65 66 6f 72 65 20 70 72 69 6e 74 20 74 68 65 20 ed..You.can.therefore.print.the.
4a80 68 61 6d 6d 69 6e 67 0a 73 65 71 75 65 6e 63 65 20 64 75 72 69 6e 67 20 68 6f 75 72 73 20 77 69 hamming.sequence.during.hours.wi
4aa0 74 68 6f 75 74 20 69 6e 63 72 65 61 73 69 6e 67 20 6d 65 6d 6f 72 79 20 75 73 61 67 65 2c 20 6f thout.increasing.memory.usage,.o
4ac0 72 20 76 65 72 79 20 6c 69 74 74 6c 65 2e 0a 0a 54 68 65 20 62 65 61 75 74 79 20 6f 66 20 69 74 r.very.little...The.beauty.of.it
4ae0 20 69 73 20 74 68 61 74 20 72 65 63 75 72 73 69 76 65 20 72 75 6e 6e 69 6e 67 2d 61 66 74 65 72 .is.that.recursive.running-after
4b00 2d 74 68 65 69 72 2d 74 61 69 6c 20 46 50 20 61 6c 67 6f 72 69 74 68 6d 73 0a 61 72 65 20 71 75 -their-tail.FP.algorithms.are.qu
4b20 69 74 65 20 73 74 72 61 69 67 68 74 66 6f 72 77 61 72 64 6c 79 20 65 78 70 72 65 73 73 65 64 20 ite.straightforwardly.expressed.
4b40 77 69 74 68 20 74 68 69 73 20 50 79 74 68 6f 6e 20 69 64 69 6f 6d 2e 0a 0a 59 65 20 6f 6c 64 65 with.this.Python.idiom...Ye.olde
4b60 20 46 69 62 6f 6e 61 63 63 69 20 67 65 6e 65 72 61 74 6f 72 2c 20 74 65 65 20 73 74 79 6c 65 2e .Fibonacci.generator,.tee.style.
4b80 0a 0a 3e 3e 3e 20 64 65 66 20 66 69 62 28 29 3a 0a 2e 2e 2e 0a 2e 2e 2e 20 20 20 20 20 64 65 66 ..>>>.def.fib():.............def
4ba0 20 5f 69 73 75 6d 28 67 2c 20 68 29 3a 0a 2e 2e 2e 20 20 20 20 20 20 20 20 20 77 68 69 6c 65 20 ._isum(g,.h):.............while.
4bc0 31 3a 0a 2e 2e 2e 20 20 20 20 20 20 20 20 20 20 20 20 20 79 69 65 6c 64 20 67 2e 6e 65 78 74 28 1:.................yield.g.next(
4be0 29 20 2b 20 68 2e 6e 65 78 74 28 29 0a 2e 2e 2e 0a 2e 2e 2e 20 20 20 20 20 64 65 66 20 5f 66 69 ).+.h.next().............def._fi
4c00 62 28 29 3a 0a 2e 2e 2e 20 20 20 20 20 20 20 20 20 79 69 65 6c 64 20 31 0a 2e 2e 2e 20 20 20 20 b():.............yield.1........
4c20 20 20 20 20 20 79 69 65 6c 64 20 32 0a 2e 2e 2e 20 20 20 20 20 20 20 20 20 66 69 62 54 61 69 6c .....yield.2.............fibTail
4c40 2e 6e 65 78 74 28 29 20 23 20 74 68 72 6f 77 20 66 69 72 73 74 20 61 77 61 79 0a 2e 2e 2e 20 20 .next().#.throw.first.away......
4c60 20 20 20 20 20 20 20 66 6f 72 20 72 65 73 20 69 6e 20 5f 69 73 75 6d 28 66 69 62 48 65 61 64 2c .......for.res.in._isum(fibHead,
4c80 20 66 69 62 54 61 69 6c 29 3a 0a 2e 2e 2e 20 20 20 20 20 20 20 20 20 20 20 20 20 79 69 65 6c 64 .fibTail):.................yield
4ca0 20 72 65 73 0a 2e 2e 2e 0a 2e 2e 2e 20 20 20 20 20 72 65 61 6c 66 69 62 20 3d 20 5f 66 69 62 28 .res.............realfib.=._fib(
4cc0 29 0a 2e 2e 2e 20 20 20 20 20 66 69 62 48 65 61 64 2c 20 66 69 62 54 61 69 6c 2c 20 66 69 62 52 ).........fibHead,.fibTail,.fibR
4ce0 65 73 20 3d 20 74 65 65 28 72 65 61 6c 66 69 62 2c 20 33 29 0a 2e 2e 2e 20 20 20 20 20 72 65 74 es.=.tee(realfib,.3).........ret
4d00 75 72 6e 20 66 69 62 52 65 73 0a 0a 3e 3e 3e 20 66 69 72 73 74 6e 28 66 69 62 28 29 2c 20 31 37 urn.fibRes..>>>.firstn(fib(),.17
4d20 29 0a 5b 31 2c 20 32 2c 20 33 2c 20 35 2c 20 38 2c 20 31 33 2c 20 32 31 2c 20 33 34 2c 20 35 35 ).[1,.2,.3,.5,.8,.13,.21,.34,.55
4d40 2c 20 38 39 2c 20 31 34 34 2c 20 32 33 33 2c 20 33 37 37 2c 20 36 31 30 2c 20 39 38 37 2c 20 31 ,.89,.144,.233,.377,.610,.987,.1
4d60 35 39 37 2c 20 32 35 38 34 5d 0a 0a 73 9b 0f 00 00 0a 0a 3e 3e 3e 20 64 65 66 20 66 28 29 3a 0a 597,.2584]..s......>>>.def.f():.
4d80 2e 2e 2e 20 20 20 20 20 72 65 74 75 72 6e 20 32 32 0a 2e 2e 2e 20 20 20 20 20 79 69 65 6c 64 20 ........return.22.........yield.
4da0 31 0a 54 72 61 63 65 62 61 63 6b 20 28 6d 6f 73 74 20 72 65 63 65 6e 74 20 63 61 6c 6c 20 6c 61 1.Traceback.(most.recent.call.la
4dc0 73 74 29 3a 0a 20 20 2e 2e 0a 53 79 6e 74 61 78 45 72 72 6f 72 3a 20 27 72 65 74 75 72 6e 27 20 st):......SyntaxError:.'return'.
4de0 77 69 74 68 20 61 72 67 75 6d 65 6e 74 20 69 6e 73 69 64 65 20 67 65 6e 65 72 61 74 6f 72 20 28 with.argument.inside.generator.(
4e00 3c 64 6f 63 74 65 73 74 20 74 65 73 74 2e 74 65 73 74 5f 67 65 6e 65 72 61 74 6f 72 73 2e 5f 5f <doctest.test.test_generators.__
4e20 74 65 73 74 5f 5f 2e 73 79 6e 74 61 78 5b 30 5d 3e 2c 20 6c 69 6e 65 20 33 29 0a 0a 3e 3e 3e 20 test__.syntax[0]>,.line.3)..>>>.
4e40 64 65 66 20 66 28 29 3a 0a 2e 2e 2e 20 20 20 20 20 79 69 65 6c 64 20 31 0a 2e 2e 2e 20 20 20 20 def.f():.........yield.1........
4e60 20 72 65 74 75 72 6e 20 32 32 0a 54 72 61 63 65 62 61 63 6b 20 28 6d 6f 73 74 20 72 65 63 65 6e .return.22.Traceback.(most.recen
4e80 74 20 63 61 6c 6c 20 6c 61 73 74 29 3a 0a 20 20 2e 2e 0a 53 79 6e 74 61 78 45 72 72 6f 72 3a 20 t.call.last):......SyntaxError:.
4ea0 27 72 65 74 75 72 6e 27 20 77 69 74 68 20 61 72 67 75 6d 65 6e 74 20 69 6e 73 69 64 65 20 67 65 'return'.with.argument.inside.ge
4ec0 6e 65 72 61 74 6f 72 20 28 3c 64 6f 63 74 65 73 74 20 74 65 73 74 2e 74 65 73 74 5f 67 65 6e 65 nerator.(<doctest.test.test_gene
4ee0 72 61 74 6f 72 73 2e 5f 5f 74 65 73 74 5f 5f 2e 73 79 6e 74 61 78 5b 31 5d 3e 2c 20 6c 69 6e 65 rators.__test__.syntax[1]>,.line
4f00 20 33 29 0a 0a 22 72 65 74 75 72 6e 20 4e 6f 6e 65 22 20 69 73 20 6e 6f 74 20 74 68 65 20 73 61 .3).."return.None".is.not.the.sa
4f20 6d 65 20 61 73 20 22 72 65 74 75 72 6e 22 20 69 6e 20 61 20 67 65 6e 65 72 61 74 6f 72 3a 0a 0a me.as."return".in.a.generator:..
4f40 3e 3e 3e 20 64 65 66 20 66 28 29 3a 0a 2e 2e 2e 20 20 20 20 20 79 69 65 6c 64 20 31 0a 2e 2e 2e >>>.def.f():.........yield.1....
4f60 20 20 20 20 20 72 65 74 75 72 6e 20 4e 6f 6e 65 0a 54 72 61 63 65 62 61 63 6b 20 28 6d 6f 73 74 .....return.None.Traceback.(most
4f80 20 72 65 63 65 6e 74 20 63 61 6c 6c 20 6c 61 73 74 29 3a 0a 20 20 2e 2e 0a 53 79 6e 74 61 78 45 .recent.call.last):......SyntaxE
4fa0 72 72 6f 72 3a 20 27 72 65 74 75 72 6e 27 20 77 69 74 68 20 61 72 67 75 6d 65 6e 74 20 69 6e 73 rror:.'return'.with.argument.ins
4fc0 69 64 65 20 67 65 6e 65 72 61 74 6f 72 20 28 3c 64 6f 63 74 65 73 74 20 74 65 73 74 2e 74 65 73 ide.generator.(<doctest.test.tes
4fe0 74 5f 67 65 6e 65 72 61 74 6f 72 73 2e 5f 5f 74 65 73 74 5f 5f 2e 73 79 6e 74 61 78 5b 32 5d 3e t_generators.__test__.syntax[2]>
5000 2c 20 6c 69 6e 65 20 33 29 0a 0a 54 68 65 73 65 20 61 72 65 20 66 69 6e 65 3a 0a 0a 3e 3e 3e 20 ,.line.3)..These.are.fine:..>>>.
5020 64 65 66 20 66 28 29 3a 0a 2e 2e 2e 20 20 20 20 20 79 69 65 6c 64 20 31 0a 2e 2e 2e 20 20 20 20 def.f():.........yield.1........
5040 20 72 65 74 75 72 6e 0a 0a 3e 3e 3e 20 64 65 66 20 66 28 29 3a 0a 2e 2e 2e 20 20 20 20 20 74 72 .return..>>>.def.f():.........tr
5060 79 3a 0a 2e 2e 2e 20 20 20 20 20 20 20 20 20 79 69 65 6c 64 20 31 0a 2e 2e 2e 20 20 20 20 20 66 y:.............yield.1.........f
5080 69 6e 61 6c 6c 79 3a 0a 2e 2e 2e 20 20 20 20 20 20 20 20 20 70 61 73 73 0a 0a 3e 3e 3e 20 64 65 inally:.............pass..>>>.de
50a0 66 20 66 28 29 3a 0a 2e 2e 2e 20 20 20 20 20 74 72 79 3a 0a 2e 2e 2e 20 20 20 20 20 20 20 20 20 f.f():.........try:.............
50c0 74 72 79 3a 0a 2e 2e 2e 20 20 20 20 20 20 20 20 20 20 20 20 20 31 2f 2f 30 0a 2e 2e 2e 20 20 20 try:.................1//0.......
50e0 20 20 20 20 20 20 65 78 63 65 70 74 20 5a 65 72 6f 44 69 76 69 73 69 6f 6e 45 72 72 6f 72 3a 0a ......except.ZeroDivisionError:.
5100 2e 2e 2e 20 20 20 20 20 20 20 20 20 20 20 20 20 79 69 65 6c 64 20 36 36 36 0a 2e 2e 2e 20 20 20 ................yield.666.......
5120 20 20 20 20 20 20 65 78 63 65 70 74 3a 0a 2e 2e 2e 20 20 20 20 20 20 20 20 20 20 20 20 20 70 61 ......except:.................pa
5140 73 73 0a 2e 2e 2e 20 20 20 20 20 66 69 6e 61 6c 6c 79 3a 0a 2e 2e 2e 20 20 20 20 20 20 20 20 20 ss.........finally:.............
5160 70 61 73 73 0a 0a 3e 3e 3e 20 64 65 66 20 66 28 29 3a 0a 2e 2e 2e 20 20 20 20 20 74 72 79 3a 0a pass..>>>.def.f():.........try:.
5180 2e 2e 2e 20 20 20 20 20 20 20 20 20 74 72 79 3a 0a 2e 2e 2e 20 20 20 20 20 20 20 20 20 20 20 20 ............try:................
51a0 20 79 69 65 6c 64 20 31 32 0a 2e 2e 2e 20 20 20 20 20 20 20 20 20 20 20 20 20 31 2f 2f 30 0a 2e .yield.12.................1//0..
51c0 2e 2e 20 20 20 20 20 20 20 20 20 65 78 63 65 70 74 20 5a 65 72 6f 44 69 76 69 73 69 6f 6e 45 72 ...........except.ZeroDivisionEr
51e0 72 6f 72 3a 0a 2e 2e 2e 20 20 20 20 20 20 20 20 20 20 20 20 20 79 69 65 6c 64 20 36 36 36 0a 2e ror:.................yield.666..
5200 2e 2e 20 20 20 20 20 20 20 20 20 65 78 63 65 70 74 3a 0a 2e 2e 2e 20 20 20 20 20 20 20 20 20 20 ...........except:..............
5220 20 20 20 74 72 79 3a 0a 2e 2e 2e 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 78 20 3d 20 ...try:.....................x.=.
5240 31 32 0a 2e 2e 2e 20 20 20 20 20 20 20 20 20 20 20 20 20 66 69 6e 61 6c 6c 79 3a 0a 2e 2e 2e 20 12.................finally:.....
5260 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 79 69 65 6c 64 20 31 32 0a 2e 2e 2e 20 20 20 20 ................yield.12........
5280 20 65 78 63 65 70 74 3a 0a 2e 2e 2e 20 20 20 20 20 20 20 20 20 72 65 74 75 72 6e 0a 3e 3e 3e 20 .except:.............return.>>>.
52a0 6c 69 73 74 28 66 28 29 29 0a 5b 31 32 2c 20 36 36 36 5d 0a 0a 3e 3e 3e 20 64 65 66 20 66 28 29 list(f()).[12,.666]..>>>.def.f()
52c0 3a 0a 2e 2e 2e 20 20 20 20 79 69 65 6c 64 0a 3e 3e 3e 20 74 79 70 65 28 66 28 29 29 0a 3c 74 79 :........yield.>>>.type(f()).<ty
52e0 70 65 20 27 67 65 6e 65 72 61 74 6f 72 27 3e 0a 0a 0a 3e 3e 3e 20 64 65 66 20 66 28 29 3a 0a 2e pe.'generator'>...>>>.def.f():..
5300 2e 2e 20 20 20 20 69 66 20 30 3a 0a 2e 2e 2e 20 20 20 20 20 20 20 20 79 69 65 6c 64 0a 3e 3e 3e ......if.0:............yield.>>>
5320 20 74 79 70 65 28 66 28 29 29 0a 3c 74 79 70 65 20 27 67 65 6e 65 72 61 74 6f 72 27 3e 0a 0a 0a .type(f()).<type.'generator'>...
5340 3e 3e 3e 20 64 65 66 20 66 28 29 3a 0a 2e 2e 2e 20 20 20 20 20 69 66 20 30 3a 0a 2e 2e 2e 20 20 >>>.def.f():.........if.0:......
5360 20 20 20 20 20 20 20 79 69 65 6c 64 20 31 0a 3e 3e 3e 20 74 79 70 65 28 66 28 29 29 0a 3c 74 79 .......yield.1.>>>.type(f()).<ty
5380 70 65 20 27 67 65 6e 65 72 61 74 6f 72 27 3e 0a 0a 3e 3e 3e 20 64 65 66 20 66 28 29 3a 0a 2e 2e pe.'generator'>..>>>.def.f():...
53a0 2e 20 20 20 20 69 66 20 22 22 3a 0a 2e 2e 2e 20 20 20 20 20 20 20 20 79 69 65 6c 64 20 4e 6f 6e .....if."":............yield.Non
53c0 65 0a 3e 3e 3e 20 74 79 70 65 28 66 28 29 29 0a 3c 74 79 70 65 20 27 67 65 6e 65 72 61 74 6f 72 e.>>>.type(f()).<type.'generator
53e0 27 3e 0a 0a 3e 3e 3e 20 64 65 66 20 66 28 29 3a 0a 2e 2e 2e 20 20 20 20 20 72 65 74 75 72 6e 0a '>..>>>.def.f():.........return.
5400 2e 2e 2e 20 20 20 20 20 74 72 79 3a 0a 2e 2e 2e 20 20 20 20 20 20 20 20 20 69 66 20 78 3d 3d 34 ........try:.............if.x==4
5420 3a 0a 2e 2e 2e 20 20 20 20 20 20 20 20 20 20 20 20 20 70 61 73 73 0a 2e 2e 2e 20 20 20 20 20 20 :.................pass..........
5440 20 20 20 65 6c 69 66 20 30 3a 0a 2e 2e 2e 20 20 20 20 20 20 20 20 20 20 20 20 20 74 72 79 3a 0a ...elif.0:.................try:.
5460 2e 2e 2e 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 31 2f 2f 30 0a 2e 2e 2e 20 20 20 20 ....................1//0........
5480 20 20 20 20 20 20 20 20 20 65 78 63 65 70 74 20 53 79 6e 74 61 78 45 72 72 6f 72 3a 0a 2e 2e 2e .........except.SyntaxError:....
54a0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 70 61 73 73 0a 2e 2e 2e 20 20 20 20 20 20 20 .................pass...........
54c0 20 20 20 20 20 20 65 6c 73 65 3a 0a 2e 2e 2e 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 ......else:.....................
54e0 69 66 20 30 3a 0a 2e 2e 2e 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 77 68 if.0:.........................wh
5500 69 6c 65 20 31 32 3a 0a 2e 2e 2e 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 ile.12:.........................
5520 20 20 20 20 78 20 2b 3d 20 31 0a 2e 2e 2e 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 ....x.+=.1......................
5540 20 20 20 20 20 20 20 79 69 65 6c 64 20 32 20 23 20 64 6f 6e 27 74 20 62 6c 69 6e 6b 0a 2e 2e 2e .......yield.2.#.don't.blink....
5560 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 66 28 61 2c 20 62 2c .........................f(a,.b,
5580 20 63 2c 20 64 2c 20 65 29 0a 2e 2e 2e 20 20 20 20 20 20 20 20 20 65 6c 73 65 3a 0a 2e 2e 2e 20 .c,.d,.e).............else:.....
55a0 20 20 20 20 20 20 20 20 20 20 20 20 70 61 73 73 0a 2e 2e 2e 20 20 20 20 20 65 78 63 65 70 74 3a ............pass.........except:
55c0 0a 2e 2e 2e 20 20 20 20 20 20 20 20 20 78 20 3d 20 31 0a 2e 2e 2e 20 20 20 20 20 72 65 74 75 72 .............x.=.1.........retur
55e0 6e 0a 3e 3e 3e 20 74 79 70 65 28 66 28 29 29 0a 3c 74 79 70 65 20 27 67 65 6e 65 72 61 74 6f 72 n.>>>.type(f()).<type.'generator
5600 27 3e 0a 0a 3e 3e 3e 20 64 65 66 20 66 28 29 3a 0a 2e 2e 2e 20 20 20 20 20 69 66 20 30 3a 0a 2e '>..>>>.def.f():.........if.0:..
5620 2e 2e 20 20 20 20 20 20 20 20 20 64 65 66 20 67 28 29 3a 0a 2e 2e 2e 20 20 20 20 20 20 20 20 20 ...........def.g():.............
5640 20 20 20 20 79 69 65 6c 64 20 31 0a 2e 2e 2e 0a 3e 3e 3e 20 74 79 70 65 28 66 28 29 29 0a 3c 74 ....yield.1.....>>>.type(f()).<t
5660 79 70 65 20 27 4e 6f 6e 65 54 79 70 65 27 3e 0a 0a 3e 3e 3e 20 64 65 66 20 66 28 29 3a 0a 2e 2e ype.'NoneType'>..>>>.def.f():...
5680 2e 20 20 20 20 20 69 66 20 30 3a 0a 2e 2e 2e 20 20 20 20 20 20 20 20 20 63 6c 61 73 73 20 43 3a ......if.0:.............class.C:
56a0 0a 2e 2e 2e 20 20 20 20 20 20 20 20 20 20 20 20 20 64 65 66 20 5f 5f 69 6e 69 74 5f 5f 28 73 65 .................def.__init__(se
56c0 6c 66 29 3a 0a 2e 2e 2e 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 79 69 65 6c 64 20 31 lf):.....................yield.1
56e0 0a 2e 2e 2e 20 20 20 20 20 20 20 20 20 20 20 20 20 64 65 66 20 66 28 73 65 6c 66 29 3a 0a 2e 2e .................def.f(self):...
5700 2e 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 79 69 65 6c 64 20 32 0a 3e 3e 3e 20 74 79 ..................yield.2.>>>.ty
5720 70 65 28 66 28 29 29 0a 3c 74 79 70 65 20 27 4e 6f 6e 65 54 79 70 65 27 3e 0a 0a 3e 3e 3e 20 64 pe(f()).<type.'NoneType'>..>>>.d
5740 65 66 20 66 28 29 3a 0a 2e 2e 2e 20 20 20 20 20 69 66 20 30 3a 0a 2e 2e 2e 20 20 20 20 20 20 20 ef.f():.........if.0:...........
5760 20 20 72 65 74 75 72 6e 0a 2e 2e 2e 20 20 20 20 20 69 66 20 30 3a 0a 2e 2e 2e 20 20 20 20 20 20 ..return.........if.0:..........
5780 20 20 20 79 69 65 6c 64 20 32 0a 3e 3e 3e 20 74 79 70 65 28 66 28 29 29 0a 3c 74 79 70 65 20 27 ...yield.2.>>>.type(f()).<type.'
57a0 67 65 6e 65 72 61 74 6f 72 27 3e 0a 0a 0a 3e 3e 3e 20 64 65 66 20 66 28 29 3a 0a 2e 2e 2e 20 20 generator'>...>>>.def.f():......
57c0 20 20 20 69 66 20 30 3a 0a 2e 2e 2e 20 20 20 20 20 20 20 20 20 6c 61 6d 62 64 61 20 78 3a 20 20 ...if.0:.............lambda.x:..
57e0 78 20 20 20 20 20 20 20 20 23 20 73 68 6f 75 6c 64 6e 27 74 20 74 72 69 67 67 65 72 20 68 65 72 x........#.shouldn't.trigger.her
5800 65 0a 2e 2e 2e 20 20 20 20 20 20 20 20 20 72 65 74 75 72 6e 20 20 20 20 20 20 20 20 20 20 20 20 e.............return............
5820 20 20 23 20 6f 72 20 68 65 72 65 0a 2e 2e 2e 20 20 20 20 20 20 20 20 20 64 65 66 20 66 28 69 29 ..#.or.here.............def.f(i)
5840 3a 0a 2e 2e 2e 20 20 20 20 20 20 20 20 20 20 20 20 20 72 65 74 75 72 6e 20 32 2a 69 20 20 20 20 :.................return.2*i....
5860 20 20 23 20 6f 72 20 68 65 72 65 0a 2e 2e 2e 20 20 20 20 20 20 20 20 20 69 66 20 30 3a 0a 2e 2e ..#.or.here.............if.0:...
5880 2e 20 20 20 20 20 20 20 20 20 20 20 20 20 72 65 74 75 72 6e 20 33 20 20 20 20 20 20 20 20 23 20 ..............return.3........#.
58a0 62 75 74 20 2a 74 68 69 73 2a 20 73 75 63 6b 73 20 28 6c 69 6e 65 20 38 29 0a 2e 2e 2e 20 20 20 but.*this*.sucks.(line.8).......
58c0 20 20 69 66 20 30 3a 0a 2e 2e 2e 20 20 20 20 20 20 20 20 20 79 69 65 6c 64 20 32 20 20 20 20 20 ..if.0:.............yield.2.....
58e0 20 20 20 20 20 20 20 20 23 20 62 65 63 61 75 73 65 20 69 74 27 73 20 61 20 67 65 6e 65 72 61 74 ........#.because.it's.a.generat
5900 6f 72 20 28 6c 69 6e 65 20 31 30 29 0a 54 72 61 63 65 62 61 63 6b 20 28 6d 6f 73 74 20 72 65 63 or.(line.10).Traceback.(most.rec
5920 65 6e 74 20 63 61 6c 6c 20 6c 61 73 74 29 3a 0a 53 79 6e 74 61 78 45 72 72 6f 72 3a 20 27 72 65 ent.call.last):.SyntaxError:.'re
5940 74 75 72 6e 27 20 77 69 74 68 20 61 72 67 75 6d 65 6e 74 20 69 6e 73 69 64 65 20 67 65 6e 65 72 turn'.with.argument.inside.gener
5960 61 74 6f 72 20 28 3c 64 6f 63 74 65 73 74 20 74 65 73 74 2e 74 65 73 74 5f 67 65 6e 65 72 61 74 ator.(<doctest.test.test_generat
5980 6f 72 73 2e 5f 5f 74 65 73 74 5f 5f 2e 73 79 6e 74 61 78 5b 32 34 5d 3e 2c 20 6c 69 6e 65 20 31 ors.__test__.syntax[24]>,.line.1
59a0 30 29 0a 0a 54 68 69 73 20 6f 6e 65 20 63 61 75 73 65 64 20 61 20 63 72 61 73 68 20 28 73 65 65 0)..This.one.caused.a.crash.(see
59c0 20 53 46 20 62 75 67 20 35 36 37 35 33 38 29 3a 0a 0a 3e 3e 3e 20 64 65 66 20 66 28 29 3a 0a 2e .SF.bug.567538):..>>>.def.f():..
59e0 2e 2e 20 20 20 20 20 66 6f 72 20 69 20 69 6e 20 72 61 6e 67 65 28 33 29 3a 0a 2e 2e 2e 20 20 20 .......for.i.in.range(3):.......
5a00 20 20 20 20 20 20 74 72 79 3a 0a 2e 2e 2e 20 20 20 20 20 20 20 20 20 20 20 20 20 63 6f 6e 74 69 ......try:.................conti
5a20 6e 75 65 0a 2e 2e 2e 20 20 20 20 20 20 20 20 20 66 69 6e 61 6c 6c 79 3a 0a 2e 2e 2e 20 20 20 20 nue.............finally:........
5a40 20 20 20 20 20 20 20 20 20 79 69 65 6c 64 20 69 0a 2e 2e 2e 0a 3e 3e 3e 20 67 20 3d 20 66 28 29 .........yield.i.....>>>.g.=.f()
5a60 0a 3e 3e 3e 20 70 72 69 6e 74 20 67 2e 6e 65 78 74 28 29 0a 30 0a 3e 3e 3e 20 70 72 69 6e 74 20 .>>>.print.g.next().0.>>>.print.
5a80 67 2e 6e 65 78 74 28 29 0a 31 0a 3e 3e 3e 20 70 72 69 6e 74 20 67 2e 6e 65 78 74 28 29 0a 32 0a g.next().1.>>>.print.g.next().2.
5aa0 3e 3e 3e 20 70 72 69 6e 74 20 67 2e 6e 65 78 74 28 29 0a 54 72 61 63 65 62 61 63 6b 20 28 6d 6f >>>.print.g.next().Traceback.(mo
5ac0 73 74 20 72 65 63 65 6e 74 20 63 61 6c 6c 20 6c 61 73 74 29 3a 0a 53 74 6f 70 49 74 65 72 61 74 st.recent.call.last):.StopIterat
5ae0 69 6f 6e 0a 0a 0a 54 65 73 74 20 74 68 65 20 67 69 5f 63 6f 64 65 20 61 74 74 72 69 62 75 74 65 ion...Test.the.gi_code.attribute
5b00 0a 0a 3e 3e 3e 20 64 65 66 20 66 28 29 3a 0a 2e 2e 2e 20 20 20 20 20 79 69 65 6c 64 20 35 0a 2e ..>>>.def.f():.........yield.5..
5b20 2e 2e 0a 3e 3e 3e 20 67 20 3d 20 66 28 29 0a 3e 3e 3e 20 67 2e 67 69 5f 63 6f 64 65 20 69 73 20 ...>>>.g.=.f().>>>.g.gi_code.is.
5b40 66 2e 66 75 6e 63 5f 63 6f 64 65 0a 54 72 75 65 0a 3e 3e 3e 20 67 2e 6e 65 78 74 28 29 0a 35 0a f.func_code.True.>>>.g.next().5.
5b60 3e 3e 3e 20 67 2e 6e 65 78 74 28 29 0a 54 72 61 63 65 62 61 63 6b 20 28 6d 6f 73 74 20 72 65 63 >>>.g.next().Traceback.(most.rec
5b80 65 6e 74 20 63 61 6c 6c 20 6c 61 73 74 29 3a 0a 53 74 6f 70 49 74 65 72 61 74 69 6f 6e 0a 3e 3e ent.call.last):.StopIteration.>>
5ba0 3e 20 67 2e 67 69 5f 63 6f 64 65 20 69 73 20 66 2e 66 75 6e 63 5f 63 6f 64 65 0a 54 72 75 65 0a >.g.gi_code.is.f.func_code.True.
5bc0 0a 0a 54 65 73 74 20 74 68 65 20 5f 5f 6e 61 6d 65 5f 5f 20 61 74 74 72 69 62 75 74 65 20 61 6e ..Test.the.__name__.attribute.an
5be0 64 20 74 68 65 20 72 65 70 72 28 29 0a 0a 3e 3e 3e 20 64 65 66 20 66 28 29 3a 0a 2e 2e 2e 20 20 d.the.repr()..>>>.def.f():......
5c00 20 20 79 69 65 6c 64 20 35 0a 2e 2e 2e 0a 3e 3e 3e 20 67 20 3d 20 66 28 29 0a 3e 3e 3e 20 67 2e ..yield.5.....>>>.g.=.f().>>>.g.
5c20 5f 5f 6e 61 6d 65 5f 5f 0a 27 66 27 0a 3e 3e 3e 20 72 65 70 72 28 67 29 20 20 23 20 64 6f 63 74 __name__.'f'.>>>.repr(g)..#.doct
5c40 65 73 74 3a 20 2b 45 4c 4c 49 50 53 49 53 0a 27 3c 67 65 6e 65 72 61 74 6f 72 20 6f 62 6a 65 63 est:.+ELLIPSIS.'<generator.objec
5c60 74 20 66 20 61 74 20 2e 2e 2e 3e 27 0a 0a 4c 61 6d 62 64 61 73 20 73 68 6f 75 6c 64 6e 27 74 20 t.f.at....>'..Lambdas.shouldn't.
5c80 68 61 76 65 20 74 68 65 69 72 20 75 73 75 61 6c 20 72 65 74 75 72 6e 20 62 65 68 61 76 69 6f 72 have.their.usual.return.behavior
5ca0 2e 0a 0a 3e 3e 3e 20 78 20 3d 20 6c 61 6d 62 64 61 3a 20 28 79 69 65 6c 64 20 31 29 0a 3e 3e 3e ...>>>.x.=.lambda:.(yield.1).>>>
5cc0 20 6c 69 73 74 28 78 28 29 29 0a 5b 31 5d 0a 0a 3e 3e 3e 20 78 20 3d 20 6c 61 6d 62 64 61 3a 20 .list(x()).[1]..>>>.x.=.lambda:.
5ce0 28 28 79 69 65 6c 64 20 31 29 2c 20 28 79 69 65 6c 64 20 32 29 29 0a 3e 3e 3e 20 6c 69 73 74 28 ((yield.1),.(yield.2)).>>>.list(
5d00 78 28 29 29 0a 5b 31 2c 20 32 5d 0a 63 01 00 00 00 02 00 00 00 03 00 00 00 23 00 00 00 73 48 00 x()).[1,.2].c............#...sH.
5d20 00 00 64 00 00 67 01 00 74 01 00 88 01 00 83 01 00 14 89 02 00 87 00 00 87 01 00 87 02 00 66 03 ..d..g..t.....................f.
5d40 00 64 01 00 86 00 00 89 00 00 78 19 00 88 00 00 64 02 00 83 01 00 44 5d 0b 00 7d 01 00 7c 01 00 .d........x.....d.....D]..}..|..
5d60 56 01 71 35 00 57 64 00 00 53 28 03 00 00 00 4e 63 01 00 00 00 02 00 00 00 04 00 00 00 33 00 00 V.q5.Wd..S(....Nc............3..
5d80 00 73 5a 00 00 00 7c 00 00 74 00 00 88 01 00 83 01 00 6b 05 00 72 1a 00 88 02 00 56 01 6e 3c 00 .sZ...|..t........k..r.....V.n<.
5da0 78 39 00 88 01 00 7c 00 00 19 83 00 00 44 5d 2a 00 88 02 00 7c 00 00 3c 78 1d 00 88 00 00 7c 00 x9....|......D]*....|..<x.....|.
5dc0 00 64 01 00 17 83 01 00 44 5d 0b 00 7d 01 00 7c 01 00 56 01 71 43 00 57 71 28 00 57 64 00 00 53 .d......D]..}..|..V.qC.Wq(.Wd..S
5de0 28 02 00 00 00 4e 69 01 00 00 00 28 01 00 00 00 74 03 00 00 00 6c 65 6e 28 02 00 00 00 74 01 00 (....Ni....(....t....len(....t..
5e00 00 00 69 74 01 00 00 00 78 28 03 00 00 00 74 03 00 00 00 67 65 6e 74 02 00 00 00 67 73 74 06 00 ..it....x(....t....gent....gst..
5e20 00 00 76 61 6c 75 65 73 28 00 00 00 00 73 5b 00 00 00 2f 62 75 69 6c 64 62 6f 74 2f 74 6d 70 2f ..values(....s[.../buildbot/tmp/
5e40 62 75 69 6c 64 68 6f 73 74 2f 69 6e 73 74 61 6c 6c 2f 70 72 65 62 75 69 6c 74 2f 6c 69 6e 75 78 buildhost/install/prebuilt/linux
5e60 2d 78 38 36 5f 36 34 2f 6c 69 62 2f 70 79 74 68 6f 6e 32 2e 37 2f 74 65 73 74 2f 74 65 73 74 5f -x86_64/lib/python2.7/test/test_
5e80 67 65 6e 65 72 61 74 6f 72 73 2e 70 79 52 03 00 00 00 c8 03 00 00 73 0a 00 00 00 00 01 12 01 08 generators.pyR........s.........
5ea0 02 18 01 17 01 69 00 00 00 00 28 02 00 00 00 74 04 00 00 00 4e 6f 6e 65 52 00 00 00 00 28 02 00 .....i....(....t....NoneR....(..
5ec0 00 00 52 04 00 00 00 52 02 00 00 00 28 00 00 00 00 28 03 00 00 00 52 03 00 00 00 52 04 00 00 00 ..R....R....(....(....R....R....
5ee0 52 05 00 00 00 73 5b 00 00 00 2f 62 75 69 6c 64 62 6f 74 2f 74 6d 70 2f 62 75 69 6c 64 68 6f 73 R....s[.../buildbot/tmp/buildhos
5f00 74 2f 69 6e 73 74 61 6c 6c 2f 70 72 65 62 75 69 6c 74 2f 6c 69 6e 75 78 2d 78 38 36 5f 36 34 2f t/install/prebuilt/linux-x86_64/
5f20 6c 69 62 2f 70 79 74 68 6f 6e 32 2e 37 2f 74 65 73 74 2f 74 65 73 74 5f 67 65 6e 65 72 61 74 6f lib/python2.7/test/test_generato
5f40 72 73 2e 70 79 74 0e 00 00 00 73 69 6d 70 6c 65 5f 63 6f 6e 6a 6f 69 6e c4 03 00 00 73 08 00 00 rs.pyt....simple_conjoin....s...
5f60 00 00 02 13 02 15 08 13 01 63 01 00 00 00 02 00 00 00 05 00 00 00 23 00 00 00 73 6c 00 00 00 74 .........c............#...sl...t
5f80 00 00 88 02 00 83 01 00 89 03 00 64 00 00 67 01 00 88 03 00 14 89 04 00 87 00 00 87 01 00 87 02 ...........d..g.................
5fa0 00 87 03 00 87 04 00 66 05 00 64 01 00 86 00 00 89 01 00 87 00 00 87 02 00 87 03 00 87 04 00 66 .......f..d....................f
5fc0 04 00 64 02 00 86 00 00 89 00 00 78 19 00 88 01 00 64 03 00 83 01 00 44 5d 0b 00 7d 01 00 7c 01 ..d........x.....d.....D]..}..|.
5fe0 00 56 01 71 59 00 57 64 00 00 53 28 04 00 00 00 4e 63 01 00 00 00 03 00 00 00 04 00 00 00 33 00 .V.qY.Wd..S(....Nc............3.
6000 00 00 73 87 00 00 00 7c 00 00 88 03 00 6b 05 00 72 14 00 88 04 00 56 01 6e 6f 00 88 03 00 7c 00 ..s....|.....k..r.....V.no....|.
6020 00 18 64 01 00 16 72 67 00 7c 00 00 64 02 00 17 7d 01 00 78 54 00 88 02 00 7c 00 00 19 83 00 00 ..d...rg.|..d...}..xT....|......
6040 44 5d 26 00 88 04 00 7c 00 00 3c 78 19 00 88 01 00 7c 01 00 83 01 00 44 5d 0b 00 7d 02 00 7c 02 D]&....|..<x.....|.....D]..}..|.
6060 00 56 01 71 51 00 57 71 3a 00 57 6e 1c 00 78 19 00 88 00 00 7c 00 00 83 01 00 44 5d 0b 00 7d 02 .V.qQ.Wq:.Wn..x.....|.....D]..}.
6080 00 7c 02 00 56 01 71 74 00 57 64 00 00 53 28 03 00 00 00 4e 69 03 00 00 00 69 01 00 00 00 28 00 .|..V.qt.Wd..S(....Ni....i....(.
60a0 00 00 00 28 03 00 00 00 52 01 00 00 00 74 03 00 00 00 69 70 31 52 02 00 00 00 28 05 00 00 00 74 ...(....R....t....ip1R....(....t
60c0 05 00 00 00 5f 67 65 6e 33 52 03 00 00 00 52 04 00 00 00 74 01 00 00 00 6e 52 05 00 00 00 28 00 ...._gen3R....R....t....nR....(.
60e0 00 00 00 73 5b 00 00 00 2f 62 75 69 6c 64 62 6f 74 2f 74 6d 70 2f 62 75 69 6c 64 68 6f 73 74 2f ...s[.../buildbot/tmp/buildhost/
6100 69 6e 73 74 61 6c 6c 2f 70 72 65 62 75 69 6c 74 2f 6c 69 6e 75 78 2d 78 38 36 5f 36 34 2f 6c 69 install/prebuilt/linux-x86_64/li
6120 62 2f 70 79 74 68 6f 6e 32 2e 37 2f 74 65 73 74 2f 74 65 73 74 5f 67 65 6e 65 72 61 74 6f 72 73 b/python2.7/test/test_generators
6140 2e 70 79 52 03 00 00 00 e1 03 00 00 73 12 00 00 00 00 01 0c 01 08 02 0e 01 0a 01 18 01 13 01 10 .pyR........s...................
6160 03 13 01 63 01 00 00 00 08 00 00 00 06 00 00 00 33 00 00 00 73 fa 00 00 00 7c 00 00 64 01 00 17 ...c............3...s....|..d...
6180 7c 00 00 64 02 00 17 7c 00 00 64 03 00 17 03 02 7d 01 00 7d 02 00 7d 03 00 88 01 00 7c 00 00 7c |..d...|..d.....}..}..}.....|..|
61a0 03 00 21 5c 03 00 7d 04 00 7d 05 00 7d 06 00 7c 03 00 88 02 00 6b 05 00 72 92 00 78 b1 00 7c 04 ..!\..}..}..}..|.....k..r..x..|.
61c0 00 83 00 00 44 5d 3f 00 88 03 00 7c 00 00 3c 78 32 00 7c 05 00 83 00 00 44 5d 27 00 88 03 00 7c ....D]?....|..<x2.|.....D]'....|
61e0 01 00 3c 78 1a 00 7c 06 00 83 00 00 44 5d 0f 00 88 03 00 7c 02 00 3c 88 03 00 56 01 71 74 00 57 ..<x..|.....D].....|..<...V.qt.W
6200 71 60 00 57 71 4c 00 57 6e 64 00 78 61 00 7c 04 00 83 00 00 44 5d 56 00 88 03 00 7c 00 00 3c 78 q`.WqL.Wnd.xa.|.....D]V....|..<x
6220 49 00 7c 05 00 83 00 00 44 5d 3e 00 88 03 00 7c 01 00 3c 78 31 00 7c 06 00 83 00 00 44 5d 26 00 I.|.....D]>....|..<x1.|.....D]&.
6240 88 03 00 7c 02 00 3c 78 19 00 88 00 00 7c 03 00 83 01 00 44 5d 0b 00 7d 07 00 7c 07 00 56 01 71 ...|..<x.....|.....D]..}..|..V.q
6260 db 00 57 71 c4 00 57 71 b0 00 57 71 9c 00 57 64 00 00 53 28 04 00 00 00 4e 69 01 00 00 00 69 02 ..Wq..Wq..Wq..Wd..S(....Ni....i.
6280 00 00 00 69 03 00 00 00 28 00 00 00 00 28 08 00 00 00 52 01 00 00 00 52 08 00 00 00 74 03 00 00 ...i....(....(....R....R....t...
62a0 00 69 70 32 74 03 00 00 00 69 70 33 74 01 00 00 00 67 74 02 00 00 00 67 31 74 02 00 00 00 67 32 .ip2t....ip3t....gt....g1t....g2
62c0 52 02 00 00 00 28 04 00 00 00 52 09 00 00 00 52 04 00 00 00 52 0a 00 00 00 52 05 00 00 00 28 00 R....(....R....R....R....R....(.
62e0 00 00 00 73 5b 00 00 00 2f 62 75 69 6c 64 62 6f 74 2f 74 6d 70 2f 62 75 69 6c 64 68 6f 73 74 2f ...s[.../buildbot/tmp/buildhost/
6300 69 6e 73 74 61 6c 6c 2f 70 72 65 62 75 69 6c 74 2f 6c 69 6e 75 78 2d 78 38 36 5f 36 34 2f 6c 69 install/prebuilt/linux-x86_64/li
6320 62 2f 70 79 74 68 6f 6e 32 2e 37 2f 74 65 73 74 2f 74 65 73 74 5f 67 65 6e 65 72 61 74 6f 72 73 b/python2.7/test/test_generators
6340 2e 70 79 52 09 00 00 00 f3 03 00 00 73 18 00 00 00 00 02 20 01 16 02 0c 02 14 01 14 01 14 01 14 .pyR........s...................
6360 05 14 01 14 01 14 01 13 01 69 00 00 00 00 28 02 00 00 00 52 00 00 00 00 52 06 00 00 00 28 02 00 .........i....(....R....R....(..
6380 00 00 52 04 00 00 00 52 02 00 00 00 28 00 00 00 00 28 05 00 00 00 52 09 00 00 00 52 03 00 00 00 ..R....R....(....(....R....R....
63a0 52 04 00 00 00 52 0a 00 00 00 52 05 00 00 00 73 5b 00 00 00 2f 62 75 69 6c 64 62 6f 74 2f 74 6d R....R....R....s[.../buildbot/tm
63c0 70 2f 62 75 69 6c 64 68 6f 73 74 2f 69 6e 73 74 61 6c 6c 2f 70 72 65 62 75 69 6c 74 2f 6c 69 6e p/buildhost/install/prebuilt/lin
63e0 75 78 2d 78 38 36 5f 36 34 2f 6c 69 62 2f 70 79 74 68 6f 6e 32 2e 37 2f 74 65 73 74 2f 74 65 73 ux-x86_64/lib/python2.7/test/tes
6400 74 5f 67 65 6e 65 72 61 74 6f 72 73 2e 70 79 74 07 00 00 00 63 6f 6e 6a 6f 69 6e d9 03 00 00 73 t_generators.pyt....conjoin....s
6420 0c 00 00 00 00 02 0c 01 0d 05 1b 12 18 15 13 01 63 01 00 00 00 07 00 00 00 05 00 00 00 63 00 00 ................c............c..
6440 00 73 f7 00 00 00 74 00 00 7c 00 00 83 01 00 7d 01 00 64 00 00 67 01 00 7c 01 00 14 7d 02 00 64 .s....t..|.....}..d..g..|...}..d
6460 00 00 67 01 00 7c 01 00 14 7d 03 00 74 02 00 7d 04 00 64 01 00 7d 05 00 78 be 00 79 46 00 78 3f ..g..|...}..t..}..d..}..x..yF.x?
6480 00 7c 05 00 7c 01 00 6b 00 00 72 79 00 7c 00 00 7c 05 00 19 83 00 00 6a 03 00 04 7d 06 00 7c 03 .|..|..k..ry.|..|......j...}..|.
64a0 00 7c 05 00 3c 7c 06 00 83 00 00 7c 02 00 7c 05 00 3c 7c 05 00 64 02 00 37 7d 05 00 71 3b 00 57 .|..<|.....|..|..<|..d..7}..q;.W
64c0 57 6e 11 00 04 7c 04 00 6b 0a 00 72 8e 00 01 01 01 6e 06 00 58 7c 02 00 56 01 7c 05 00 64 02 00 Wn...|..k..r.....n..X|..V.|..d..
64e0 38 7d 05 00 78 4f 00 7c 05 00 64 01 00 6b 05 00 72 ee 00 79 20 00 7c 03 00 7c 05 00 19 83 00 00 8}..xO.|..d..k..r..y..|..|......
6500 7c 02 00 7c 05 00 3c 7c 05 00 64 02 00 37 7d 05 00 50 57 71 a1 00 04 7c 04 00 6b 0a 00 72 ea 00 |..|..<|..d..7}..PWq...|..k..r..
6520 01 01 01 7c 05 00 64 02 00 38 7d 05 00 71 a1 00 58 71 a1 00 57 50 71 35 00 64 00 00 53 28 03 00 ...|..d..8}..q..Xq..WPq5.d..S(..
6540 00 00 4e 69 00 00 00 00 69 01 00 00 00 28 04 00 00 00 52 00 00 00 00 52 06 00 00 00 74 0d 00 00 ..Ni....i....(....R....R....t...
6560 00 53 74 6f 70 49 74 65 72 61 74 69 6f 6e 74 04 00 00 00 6e 65 78 74 28 07 00 00 00 52 04 00 00 .StopIterationt....next(....R...
6580 00 52 0a 00 00 00 52 05 00 00 00 74 05 00 00 00 69 74 65 72 73 74 0e 00 00 00 5f 53 74 6f 70 49 .R....R....t....iterst...._StopI
65a0 74 65 72 61 74 69 6f 6e 52 01 00 00 00 74 02 00 00 00 69 74 28 00 00 00 00 28 00 00 00 00 73 5b terationR....t....it(....(....s[
65c0 00 00 00 2f 62 75 69 6c 64 62 6f 74 2f 74 6d 70 2f 62 75 69 6c 64 68 6f 73 74 2f 69 6e 73 74 61 .../buildbot/tmp/buildhost/insta
65e0 6c 6c 2f 70 72 65 62 75 69 6c 74 2f 6c 69 6e 75 78 2d 78 38 36 5f 36 34 2f 6c 69 62 2f 70 79 74 ll/prebuilt/linux-x86_64/lib/pyt
6600 68 6f 6e 32 2e 37 2f 74 65 73 74 2f 74 65 73 74 5f 67 65 6e 65 72 61 74 6f 72 73 2e 70 79 74 0c hon2.7/test/test_generators.pyt.
6620 00 00 00 66 6c 61 74 5f 63 6f 6e 6a 6f 69 6e 16 04 00 00 73 2e 00 00 00 00 01 0c 01 0d 01 0d 01 ...flat_conjoin....s............
6640 06 01 06 01 03 02 03 01 0f 01 18 01 0d 01 12 01 0d 01 04 03 05 03 0a 01 0f 01 03 01 11 02 0a 01 ................................
6660 05 01 0d 02 12 03 74 06 00 00 00 51 75 65 65 6e 73 63 00 00 00 00 00 00 00 00 01 00 00 00 42 00 ......t....Queensc............B.
6680 00 00 73 23 00 00 00 65 00 00 5a 01 00 64 00 00 84 00 00 5a 02 00 64 01 00 84 00 00 5a 03 00 64 ..s#...e..Z..d.....Z..d.....Z..d
66a0 02 00 84 00 00 5a 04 00 52 53 28 03 00 00 00 63 02 00 00 00 06 00 00 00 08 00 00 00 03 00 00 00 .....Z..RS(....c................
66c0 73 a9 00 00 00 7c 01 00 88 01 00 5f 00 00 74 01 00 7c 01 00 83 01 00 89 00 00 67 00 00 88 01 00 s....|....._..t..|........g.....
66e0 5f 02 00 78 84 00 88 00 00 44 5d 7c 00 7d 02 00 67 00 00 88 00 00 44 5d 44 00 7d 03 00 64 01 00 _..x.....D]|.}..g.....D]D.}..d..
6700 7c 03 00 3e 64 01 00 7c 01 00 7c 02 00 17 7c 03 00 18 7c 01 00 17 64 02 00 18 3e 42 64 01 00 7c |..>d..|..|...|...|...d...>Bd..|
6720 01 00 64 03 00 7c 01 00 14 17 64 02 00 18 7c 02 00 17 7c 03 00 17 3e 42 5e 02 00 71 32 00 7d 04 ..d..|....d...|...|...>B^..q2.}.
6740 00 7c 04 00 87 00 00 87 01 00 66 02 00 64 04 00 86 01 00 7d 05 00 88 01 00 6a 02 00 6a 03 00 7c .|........f..d.....}.....j..j..|
6760 05 00 83 01 00 01 71 25 00 57 64 00 00 53 28 05 00 00 00 4e 6c 01 00 00 00 01 00 69 01 00 00 00 ......q%.Wd..S(....Nl......i....
6780 69 02 00 00 00 63 01 00 00 00 03 00 00 00 04 00 00 00 33 00 00 00 73 59 00 00 00 78 52 00 88 00 i....c............3...sY...xR...
67a0 00 44 5d 4a 00 7d 01 00 7c 00 00 7c 01 00 19 7d 02 00 7c 02 00 88 01 00 6a 00 00 40 64 01 00 6b .D]J.}..|..|...}..|.....j..@d..k
67c0 02 00 72 07 00 88 01 00 04 6a 00 00 7c 02 00 4f 02 5f 00 00 7c 01 00 56 01 88 01 00 04 6a 00 00 ..r......j..|..O._..|..V.....j..
67e0 7c 02 00 0f 4d 02 5f 00 00 71 07 00 71 07 00 57 64 00 00 53 28 02 00 00 00 4e 69 00 00 00 00 28 |...M._..q..q..Wd..S(....Ni....(
6800 01 00 00 00 74 04 00 00 00 75 73 65 64 28 03 00 00 00 74 07 00 00 00 72 6f 77 75 73 65 73 74 01 ....t....used(....t....rowusest.
6820 00 00 00 6a 74 04 00 00 00 75 73 65 73 28 02 00 00 00 74 06 00 00 00 72 61 6e 67 65 6e 74 04 00 ...jt....uses(....t....rangent..
6840 00 00 73 65 6c 66 28 00 00 00 00 73 5b 00 00 00 2f 62 75 69 6c 64 62 6f 74 2f 74 6d 70 2f 62 75 ..self(....s[.../buildbot/tmp/bu
6860 69 6c 64 68 6f 73 74 2f 69 6e 73 74 61 6c 6c 2f 70 72 65 62 75 69 6c 74 2f 6c 69 6e 75 78 2d 78 ildhost/install/prebuilt/linux-x
6880 38 36 5f 36 34 2f 6c 69 62 2f 70 79 74 68 6f 6e 32 2e 37 2f 74 65 73 74 2f 74 65 73 74 5f 67 65 86_64/lib/python2.7/test/test_ge
68a0 6e 65 72 61 74 6f 72 73 2e 70 79 74 06 00 00 00 72 6f 77 67 65 6e 51 04 00 00 73 0c 00 00 00 00 nerators.pyt....rowgenQ...s.....
68c0 01 0d 01 0a 01 13 01 0f 01 05 01 28 04 00 00 00 52 0a 00 00 00 74 05 00 00 00 72 61 6e 67 65 74 ...........(....R....t....ranget
68e0 0d 00 00 00 72 6f 77 67 65 6e 65 72 61 74 6f 72 73 74 06 00 00 00 61 70 70 65 6e 64 28 06 00 00 ....rowgeneratorst....append(...
6900 00 52 1d 00 00 00 52 0a 00 00 00 52 01 00 00 00 52 1a 00 00 00 52 19 00 00 00 52 1e 00 00 00 28 .R....R....R....R....R....R....(
6920 00 00 00 00 28 02 00 00 00 52 1c 00 00 00 52 1d 00 00 00 73 5b 00 00 00 2f 62 75 69 6c 64 62 6f ....(....R....R....s[.../buildbo
6940 74 2f 74 6d 70 2f 62 75 69 6c 64 68 6f 73 74 2f 69 6e 73 74 61 6c 6c 2f 70 72 65 62 75 69 6c 74 t/tmp/buildhost/install/prebuilt
6960 2f 6c 69 6e 75 78 2d 78 38 36 5f 36 34 2f 6c 69 62 2f 70 79 74 68 6f 6e 32 2e 37 2f 74 65 73 74 /linux-x86_64/lib/python2.7/test
6980 2f 74 65 73 74 5f 67 65 6e 65 72 61 74 6f 72 73 2e 70 79 74 08 00 00 00 5f 5f 69 6e 69 74 5f 5f /test_generators.pyt....__init__
69a0 3b 04 00 00 73 10 00 00 00 00 01 09 01 0c 0d 09 01 0d 01 03 03 4e 02 15 08 63 01 00 00 00 02 00 ;...s................N...c......
69c0 00 00 02 00 00 00 63 00 00 00 73 2c 00 00 00 64 01 00 7c 00 00 5f 00 00 78 1c 00 74 01 00 7c 00 ......c...s,...d..|.._..x..t..|.
69e0 00 6a 02 00 83 01 00 44 5d 0b 00 7d 01 00 7c 01 00 56 01 71 19 00 57 64 00 00 53 28 02 00 00 00 .j.....D]..}..|..V.q..Wd..S(....
6a00 4e 69 00 00 00 00 28 03 00 00 00 52 18 00 00 00 52 10 00 00 00 52 20 00 00 00 28 02 00 00 00 52 Ni....(....R....R....R....(....R
6a20 1d 00 00 00 74 07 00 00 00 72 6f 77 32 63 6f 6c 28 00 00 00 00 28 00 00 00 00 73 5b 00 00 00 2f ....t....row2col(....(....s[.../
6a40 62 75 69 6c 64 62 6f 74 2f 74 6d 70 2f 62 75 69 6c 64 68 6f 73 74 2f 69 6e 73 74 61 6c 6c 2f 70 buildbot/tmp/buildhost/install/p
6a60 72 65 62 75 69 6c 74 2f 6c 69 6e 75 78 2d 78 38 36 5f 36 34 2f 6c 69 62 2f 70 79 74 68 6f 6e 32 rebuilt/linux-x86_64/lib/python2
6a80 2e 37 2f 74 65 73 74 2f 74 65 73 74 5f 67 65 6e 65 72 61 74 6f 72 73 2e 70 79 74 05 00 00 00 73 .7/test/test_generators.pyt....s
6aa0 6f 6c 76 65 5c 04 00 00 73 06 00 00 00 00 01 09 01 16 01 63 02 00 00 00 07 00 00 00 05 00 00 00 olve\...s..........c............
6ac0 43 00 00 00 73 7f 00 00 00 7c 00 00 6a 00 00 7d 02 00 64 01 00 64 02 00 7c 02 00 14 17 7d 03 00 C...s....|..j..}..d..d..|....}..
6ae0 7c 03 00 47 48 78 5c 00 74 01 00 7c 02 00 83 01 00 44 5d 4e 00 7d 04 00 67 00 00 74 01 00 7c 02 |..GHx\.t..|.....D]N.}..g..t..|.
6b00 00 83 01 00 44 5d 0c 00 7d 05 00 64 03 00 5e 02 00 71 3c 00 7d 06 00 64 04 00 7c 06 00 7c 01 00 ....D]..}..d..^..q<.}..d..|..|..
6b20 7c 04 00 19 3c 64 05 00 64 05 00 6a 02 00 7c 06 00 83 01 00 17 64 05 00 17 47 48 7c 03 00 47 48 |...<d..d..j..|......d...GH|..GH
6b40 71 29 00 57 64 00 00 53 28 06 00 00 00 4e 74 01 00 00 00 2b 73 02 00 00 00 2d 2b 74 01 00 00 00 q).Wd..S(....Nt....+s....-+t....
6b60 20 74 01 00 00 00 51 74 01 00 00 00 7c 28 03 00 00 00 52 0a 00 00 00 52 1f 00 00 00 74 04 00 00 .t....Qt....|(....R....R....t...
6b80 00 6a 6f 69 6e 28 07 00 00 00 52 1d 00 00 00 52 23 00 00 00 52 0a 00 00 00 74 03 00 00 00 73 65 .join(....R....R#...R....t....se
6ba0 70 52 01 00 00 00 52 1a 00 00 00 74 07 00 00 00 73 71 75 61 72 65 73 28 00 00 00 00 28 00 00 00 pR....R....t....squares(....(...
6bc0 00 73 5b 00 00 00 2f 62 75 69 6c 64 62 6f 74 2f 74 6d 70 2f 62 75 69 6c 64 68 6f 73 74 2f 69 6e .s[.../buildbot/tmp/buildhost/in
6be0 73 74 61 6c 6c 2f 70 72 65 62 75 69 6c 74 2f 6c 69 6e 75 78 2d 78 38 36 5f 36 34 2f 6c 69 62 2f stall/prebuilt/linux-x86_64/lib/
6c00 70 79 74 68 6f 6e 32 2e 37 2f 74 65 73 74 2f 74 65 73 74 5f 67 65 6e 65 72 61 74 6f 72 73 2e 70 python2.7/test/test_generators.p
6c20 79 74 0d 00 00 00 70 72 69 6e 74 73 6f 6c 75 74 69 6f 6e 61 04 00 00 73 10 00 00 00 00 01 09 02 yt....printsolutiona...s........
6c40 0e 01 05 01 13 01 1f 01 0e 01 16 01 28 05 00 00 00 74 08 00 00 00 5f 5f 6e 61 6d 65 5f 5f 74 0a ............(....t....__name__t.
6c60 00 00 00 5f 5f 6d 6f 64 75 6c 65 5f 5f 52 22 00 00 00 52 24 00 00 00 52 2c 00 00 00 28 00 00 00 ...__module__R"...R$...R,...(...
6c80 00 28 00 00 00 00 28 00 00 00 00 73 5b 00 00 00 2f 62 75 69 6c 64 62 6f 74 2f 74 6d 70 2f 62 75 .(....(....s[.../buildbot/tmp/bu
6ca0 69 6c 64 68 6f 73 74 2f 69 6e 73 74 61 6c 6c 2f 70 72 65 62 75 69 6c 74 2f 6c 69 6e 75 78 2d 78 ildhost/install/prebuilt/linux-x
6cc0 38 36 5f 36 34 2f 6c 69 62 2f 70 79 74 68 6f 6e 32 2e 37 2f 74 65 73 74 2f 74 65 73 74 5f 67 65 86_64/lib/python2.7/test/test_ge
6ce0 6e 65 72 61 74 6f 72 73 2e 70 79 52 17 00 00 00 3a 04 00 00 73 06 00 00 00 06 01 09 21 09 05 74 nerators.pyR....:...s.......!..t
6d00 07 00 00 00 4b 6e 69 67 68 74 73 63 00 00 00 00 00 00 00 00 02 00 00 00 42 00 00 00 73 41 00 00 ....Knightsc............B...sA..
6d20 00 65 00 00 5a 01 00 64 00 00 64 01 00 84 01 00 5a 02 00 64 02 00 84 00 00 5a 03 00 64 03 00 84 .e..Z..d..d.....Z..d.....Z..d...
6d40 00 00 5a 04 00 64 04 00 84 00 00 5a 05 00 64 05 00 84 00 00 5a 06 00 64 06 00 84 00 00 5a 07 00 ..Z..d.....Z..d.....Z..d.....Z..
6d60 52 53 28 07 00 00 00 69 00 00 00 00 63 04 00 00 00 09 00 00 00 07 00 00 00 03 00 00 00 73 30 01 RS(....i....c................s0.
6d80 00 00 88 01 00 88 02 00 02 88 04 00 5f 00 00 88 04 00 5f 01 00 67 00 00 04 89 05 00 88 04 00 5f ............_....._..g........._
6da0 02 00 74 03 00 87 05 00 66 01 00 64 01 00 86 01 00 89 03 00 87 05 00 66 01 00 64 02 00 86 00 00 ..t.....f..d...........f..d.....
6dc0 89 00 00 87 00 00 87 01 00 87 02 00 87 03 00 87 04 00 66 05 00 64 03 00 86 00 00 7d 04 00 87 00 ..................f..d.....}....
6de0 00 87 01 00 87 02 00 87 03 00 87 04 00 87 05 00 66 06 00 64 04 00 86 00 00 7d 05 00 74 03 00 87 ................f..d.....}..t...
6e00 00 00 87 03 00 87 04 00 87 05 00 66 04 00 64 05 00 86 01 00 7d 06 00 88 01 00 64 06 00 18 64 07 ...........f..d.....}.....d...d.
6e20 00 15 88 02 00 64 06 00 18 64 07 00 15 74 03 00 87 00 00 87 03 00 87 04 00 87 05 00 66 04 00 64 .....d...d...t..............f..d
6e40 08 00 86 03 00 7d 07 00 87 04 00 87 05 00 66 02 00 64 09 00 86 00 00 7d 08 00 88 01 00 88 02 00 .....}........f..d.....}........
6e60 14 64 0a 00 6b 00 00 72 f7 00 7c 04 00 67 01 00 88 04 00 5f 04 00 6e 35 00 7c 04 00 7c 05 00 67 .d..k..r..|..g....._..n5.|..|..g
6e80 02 00 7c 03 00 72 0c 01 7c 07 00 70 0f 01 7c 06 00 67 01 00 88 01 00 88 02 00 14 64 0b 00 18 14 ..|..r..|..p..|..g.........d....
6ea0 17 7c 08 00 67 01 00 17 88 04 00 5f 04 00 64 00 00 53 28 0c 00 00 00 4e 63 02 00 00 00 07 00 00 .|..g......_..d..S(....Nc.......
6ec0 00 03 00 00 00 13 00 00 00 73 8a 00 00 00 64 01 00 04 7d 02 00 7d 03 00 78 67 00 88 00 00 7c 00 .........s....d...}..}..xg....|.
6ee0 00 19 44 5d 5b 00 7d 04 00 88 00 00 7c 04 00 19 7d 05 00 7c 05 00 6a 00 00 7c 00 00 83 01 00 01 ..D][.}.....|...}..|..j..|......
6f00 7c 01 00 7c 05 00 83 01 00 7d 06 00 7c 06 00 64 01 00 6b 02 00 72 57 00 7c 02 00 64 02 00 37 7d |..|.....}..|..d..k..rW.|..d..7}
6f20 02 00 71 15 00 7c 06 00 64 02 00 6b 02 00 72 15 00 7c 03 00 64 02 00 37 7d 03 00 71 15 00 71 15 ..q..|..d..k..r..|..d..7}..q..q.
6f40 00 57 7c 02 00 64 01 00 6b 02 00 6f 89 00 7c 03 00 64 03 00 6b 00 00 53 28 04 00 00 00 4e 69 00 .W|..d..k..o..|..d..k..S(....Ni.
6f60 00 00 00 69 01 00 00 00 69 02 00 00 00 28 01 00 00 00 74 06 00 00 00 72 65 6d 6f 76 65 28 07 00 ...i....i....(....t....remove(..
6f80 00 00 74 02 00 00 00 69 30 52 00 00 00 00 74 03 00 00 00 6e 65 30 74 03 00 00 00 6e 65 31 52 01 ..t....i0R....t....ne0t....ne1R.
6fa0 00 00 00 74 01 00 00 00 73 74 01 00 00 00 65 28 01 00 00 00 74 05 00 00 00 73 75 63 63 73 28 00 ...t....st....e(....t....succs(.
6fc0 00 00 00 73 5b 00 00 00 2f 62 75 69 6c 64 62 6f 74 2f 74 6d 70 2f 62 75 69 6c 64 68 6f 73 74 2f ...s[.../buildbot/tmp/buildhost/
6fe0 69 6e 73 74 61 6c 6c 2f 70 72 65 62 75 69 6c 74 2f 6c 69 6e 75 78 2d 78 38 36 5f 36 34 2f 6c 69 install/prebuilt/linux-x86_64/li
7000 62 2f 70 79 74 68 6f 6e 32 2e 37 2f 74 65 73 74 2f 74 65 73 74 5f 67 65 6e 65 72 61 74 6f 72 73 b/python2.7/test/test_generators
7020 2e 70 79 74 16 00 00 00 72 65 6d 6f 76 65 5f 66 72 6f 6d 5f 73 75 63 63 65 73 73 6f 72 73 7d 04 .pyt....remove_from_successors}.
7040 00 00 73 14 00 00 00 00 09 0a 01 11 01 0a 01 0d 01 0c 01 0c 01 0d 01 0c 01 11 01 63 01 00 00 00 ..s........................c....
7060 02 00 00 00 03 00 00 00 13 00 00 00 73 2a 00 00 00 78 23 00 88 00 00 7c 00 00 19 44 5d 17 00 7d ............s*...x#....|...D]..}
7080 01 00 88 00 00 7c 01 00 19 6a 00 00 7c 00 00 83 01 00 01 71 0b 00 57 64 00 00 53 28 01 00 00 00 .....|...j..|......q..Wd..S(....
70a0 4e 28 01 00 00 00 52 21 00 00 00 28 02 00 00 00 52 31 00 00 00 52 01 00 00 00 28 01 00 00 00 52 N(....R!...(....R1...R....(....R
70c0 36 00 00 00 28 00 00 00 00 73 5b 00 00 00 2f 62 75 69 6c 64 62 6f 74 2f 74 6d 70 2f 62 75 69 6c 6...(....s[.../buildbot/tmp/buil
70e0 64 68 6f 73 74 2f 69 6e 73 74 61 6c 6c 2f 70 72 65 62 75 69 6c 74 2f 6c 69 6e 75 78 2d 78 38 36 dhost/install/prebuilt/linux-x86
7100 5f 36 34 2f 6c 69 62 2f 70 79 74 68 6f 6e 32 2e 37 2f 74 65 73 74 2f 74 65 73 74 5f 67 65 6e 65 _64/lib/python2.7/test/test_gene
7120 72 61 74 6f 72 73 2e 70 79 74 11 00 00 00 61 64 64 5f 74 6f 5f 73 75 63 63 65 73 73 6f 72 73 93 rators.pyt....add_to_successors.
7140 04 00 00 73 04 00 00 00 00 01 11 01 63 00 00 00 00 01 00 00 00 04 00 00 00 33 00 00 00 73 54 00 ...s........c............3...sT.
7160 00 00 88 01 00 64 01 00 6b 00 00 73 18 00 88 02 00 64 01 00 6b 00 00 72 1c 00 64 00 00 53 88 04 .....d..k..s.....d..k..r..d..S..
7180 00 6a 00 00 64 02 00 64 02 00 83 02 00 7d 00 00 88 03 00 7c 00 00 83 01 00 01 7c 00 00 88 04 00 .j..d..d.....}.....|......|.....
71a0 5f 01 00 7c 00 00 56 01 88 00 00 7c 00 00 83 01 00 01 64 00 00 53 28 03 00 00 00 4e 69 01 00 00 _..|..V....|......d..S(....Ni...
71c0 00 69 00 00 00 00 28 02 00 00 00 74 0c 00 00 00 63 6f 6f 72 64 73 32 69 6e 64 65 78 74 06 00 00 .i....(....t....coords2indext...
71e0 00 6c 61 73 74 69 6a 28 01 00 00 00 74 06 00 00 00 63 6f 72 6e 65 72 28 05 00 00 00 52 38 00 00 .lastij(....t....corner(....R8..
7200 00 74 01 00 00 00 6d 52 0a 00 00 00 52 37 00 00 00 52 1d 00 00 00 28 00 00 00 00 73 5b 00 00 00 .t....mR....R7...R....(....s[...
7220 2f 62 75 69 6c 64 62 6f 74 2f 74 6d 70 2f 62 75 69 6c 64 68 6f 73 74 2f 69 6e 73 74 61 6c 6c 2f /buildbot/tmp/buildhost/install/
7240 70 72 65 62 75 69 6c 74 2f 6c 69 6e 75 78 2d 78 38 36 5f 36 34 2f 6c 69 62 2f 70 79 74 68 6f 6e prebuilt/linux-x86_64/lib/python
7260 32 2e 37 2f 74 65 73 74 2f 74 65 73 74 5f 67 65 6e 65 72 61 74 6f 72 73 2e 70 79 74 05 00 00 00 2.7/test/test_generators.pyt....
7280 66 69 72 73 74 98 04 00 00 73 0e 00 00 00 00 01 18 01 04 04 12 01 0a 01 09 01 05 01 63 00 00 00 first....s..................c...
72a0 00 05 00 00 00 06 00 00 00 33 00 00 00 73 c8 00 00 00 88 04 00 6a 00 00 64 01 00 64 01 00 83 02 .........3...s.......j..d..d....
72c0 00 7d 00 00 88 01 00 64 02 00 6b 00 00 73 2a 00 88 02 00 64 02 00 6b 00 00 72 2e 00 64 00 00 53 .}.....d..k..s*....d..k..r..d..S
72e0 78 93 00 64 05 00 64 06 00 66 02 00 44 5d 85 00 5c 02 00 7d 01 00 7d 02 00 88 04 00 6a 00 00 7c x..d..d..f..D]..\..}..}.....j..|
7300 01 00 7c 02 00 83 02 00 7d 03 00 88 04 00 6a 00 00 64 02 00 7c 01 00 18 64 02 00 7c 02 00 18 83 ..|.....}.....j..d..|...d..|....
7320 02 00 7d 04 00 7c 04 00 88 04 00 5f 01 00 88 03 00 7c 03 00 83 01 00 01 88 05 00 7c 04 00 19 6a ..}..|....._.....|.........|...j
7340 02 00 7c 00 00 83 01 00 01 7c 03 00 88 04 00 5f 03 00 7c 03 00 56 01 88 05 00 7c 04 00 19 6a 04 ..|......|....._..|..V....|...j.
7360 00 7c 00 00 83 01 00 01 88 00 00 7c 03 00 83 01 00 01 71 3b 00 57 64 00 00 53 28 07 00 00 00 4e .|.........|......q;.Wd..S(....N
7380 69 00 00 00 00 69 03 00 00 00 69 01 00 00 00 69 02 00 00 00 28 02 00 00 00 69 01 00 00 00 69 02 i....i....i....i....(....i....i.
73a0 00 00 00 28 02 00 00 00 69 02 00 00 00 69 01 00 00 00 28 05 00 00 00 52 39 00 00 00 74 05 00 00 ...(....i....i....(....R9...t...
73c0 00 66 69 6e 61 6c 52 21 00 00 00 52 3a 00 00 00 52 30 00 00 00 28 05 00 00 00 52 3b 00 00 00 52 .finalR!...R:...R0...(....R;...R
73e0 01 00 00 00 52 1a 00 00 00 74 04 00 00 00 74 68 69 73 52 3e 00 00 00 28 06 00 00 00 52 38 00 00 ....R....t....thisR>...(....R8..
7400 00 52 3c 00 00 00 52 0a 00 00 00 52 37 00 00 00 52 1d 00 00 00 52 36 00 00 00 28 00 00 00 00 73 .R<...R....R7...R....R6...(....s
7420 5b 00 00 00 2f 62 75 69 6c 64 62 6f 74 2f 74 6d 70 2f 62 75 69 6c 64 68 6f 73 74 2f 69 6e 73 74 [.../buildbot/tmp/buildhost/inst
7440 61 6c 6c 2f 70 72 65 62 75 69 6c 74 2f 6c 69 6e 75 78 2d 78 38 36 5f 36 34 2f 6c 69 62 2f 70 79 all/prebuilt/linux-x86_64/lib/py
7460 74 68 6f 6e 32 2e 37 2f 74 65 73 74 2f 74 65 73 74 5f 67 65 6e 65 72 61 74 6f 72 73 2e 70 79 74 thon2.7/test/test_generators.pyt
7480 06 00 00 00 73 65 63 6f 6e 64 a5 04 00 00 73 1a 00 00 00 00 01 12 02 18 01 04 08 19 01 12 01 1a ....second....s.................
74a0 01 09 02 0a 01 11 01 09 01 05 01 11 01 63 01 00 00 00 04 00 00 00 04 00 00 00 33 00 00 00 73 be .............c............3...s.
74c0 00 00 00 67 00 00 7d 01 00 78 61 00 88 03 00 88 02 00 6a 00 00 19 44 5d 48 00 7d 02 00 7c 00 00 ...g..}..xa.......j...D]H.}..|..
74e0 88 03 00 7c 02 00 19 83 01 00 7d 03 00 7c 03 00 64 01 00 6b 02 00 72 49 00 7c 03 00 7c 02 00 66 ...|......}..|..d..k..rI.|..|..f
7500 02 00 67 01 00 7d 01 00 50 6e 00 00 7c 01 00 6a 01 00 7c 03 00 7c 02 00 66 02 00 83 01 00 01 71 ..g..}..Pn..|..j..|..|..f......q
7520 14 00 57 7c 01 00 6a 02 00 83 00 00 01 78 4d 00 7c 01 00 44 5d 45 00 5c 02 00 7d 03 00 7d 02 00 ..W|..j......xM.|..D]E.\..}..}..
7540 7c 02 00 88 02 00 6a 03 00 6b 03 00 72 71 00 88 01 00 7c 02 00 83 01 00 72 a9 00 7c 02 00 88 02 |.....j..k..rq....|.....r..|....
7560 00 5f 00 00 7c 02 00 56 01 6e 00 00 88 00 00 7c 02 00 83 01 00 01 71 71 00 71 71 00 57 64 00 00 ._..|..V.n.....|......qq.qq.Wd..
7580 53 28 02 00 00 00 4e 69 01 00 00 00 28 04 00 00 00 52 3a 00 00 00 52 21 00 00 00 74 04 00 00 00 S(....Ni....(....R:...R!...t....
75a0 73 6f 72 74 52 3e 00 00 00 28 04 00 00 00 52 00 00 00 00 74 0a 00 00 00 63 61 6e 64 69 64 61 74 sortR>...(....R....t....candidat
75c0 65 73 52 01 00 00 00 52 35 00 00 00 28 04 00 00 00 52 38 00 00 00 52 37 00 00 00 52 1d 00 00 00 esR....R5...(....R8...R7...R....
75e0 52 36 00 00 00 28 00 00 00 00 73 5b 00 00 00 2f 62 75 69 6c 64 62 6f 74 2f 74 6d 70 2f 62 75 69 R6...(....s[.../buildbot/tmp/bui
7600 6c 64 68 6f 73 74 2f 69 6e 73 74 61 6c 6c 2f 70 72 65 62 75 69 6c 74 2f 6c 69 6e 75 78 2d 78 38 ldhost/install/prebuilt/linux-x8
7620 36 5f 36 34 2f 6c 69 62 2f 70 79 74 68 6f 6e 32 2e 37 2f 74 65 73 74 2f 74 65 73 74 5f 67 65 6e 6_64/lib/python2.7/test/test_gen
7640 65 72 61 74 6f 72 73 2e 70 79 74 07 00 00 00 61 64 76 61 6e 63 65 be 04 00 00 73 1c 00 00 00 00 erators.pyt....advance....s.....
7660 03 06 01 14 01 10 02 0c 01 0f 01 04 01 17 02 0a 02 13 01 0f 01 0c 01 09 01 08 01 69 01 00 00 00 ...........................i....
7680 67 00 00 00 00 00 00 00 40 63 03 00 00 00 09 00 00 00 05 00 00 00 33 00 00 00 73 f7 00 00 00 67 g.......@c............3...s....g
76a0 00 00 7d 03 00 78 97 00 88 03 00 88 02 00 6a 00 00 19 44 5d 7e 00 7d 04 00 7c 02 00 88 03 00 7c ..}..x........j...D]~.}..|.....|
76c0 04 00 19 83 01 00 7d 05 00 7c 05 00 64 01 00 6b 02 00 72 4c 00 7c 05 00 64 02 00 7c 04 00 66 03 ......}..|..d..k..rL.|..d..|..f.
76e0 00 67 01 00 7d 03 00 50 6e 00 00 88 02 00 6a 01 00 7c 04 00 83 01 00 5c 02 00 7d 06 00 7d 07 00 .g..}..Pn.....j..|.....\..}..}..
7700 7c 06 00 7c 00 00 18 64 03 00 13 7c 07 00 7c 01 00 18 64 03 00 13 17 7d 08 00 7c 03 00 6a 02 00 |..|...d...|..|...d....}..|..j..
7720 7c 05 00 7c 08 00 0b 7c 04 00 66 03 00 83 01 00 01 71 14 00 57 7c 03 00 6a 03 00 83 00 00 01 78 |..|...|..f......q..W|..j......x
7740 50 00 7c 03 00 44 5d 48 00 5c 03 00 7d 05 00 7d 08 00 7d 04 00 7c 04 00 88 02 00 6a 04 00 6b 03 P.|..D]H.\..}..}..}..|.....j..k.
7760 00 72 a7 00 88 01 00 7c 04 00 83 01 00 72 e2 00 7c 04 00 88 02 00 5f 00 00 7c 04 00 56 01 6e 00 .r.....|.....r..|....._..|..V.n.
7780 00 88 00 00 7c 04 00 83 01 00 01 71 a7 00 71 a7 00 57 64 00 00 53 28 04 00 00 00 4e 69 01 00 00 ....|......q..q..Wd..S(....Ni...
77a0 00 69 00 00 00 00 69 02 00 00 00 28 05 00 00 00 52 3a 00 00 00 74 0c 00 00 00 69 6e 64 65 78 32 .i....i....(....R:...t....index2
77c0 63 6f 6f 72 64 73 52 21 00 00 00 52 41 00 00 00 52 3e 00 00 00 28 09 00 00 00 74 04 00 00 00 76 coordsR!...RA...R>...(....t....v
77e0 6d 69 64 74 04 00 00 00 68 6d 69 64 52 00 00 00 00 52 42 00 00 00 52 01 00 00 00 52 35 00 00 00 midt....hmidR....RB...R....R5...
7800 74 02 00 00 00 69 31 74 02 00 00 00 6a 31 74 01 00 00 00 64 28 04 00 00 00 52 38 00 00 00 52 37 t....i1t....j1t....d(....R8...R7
7820 00 00 00 52 1d 00 00 00 52 36 00 00 00 28 00 00 00 00 73 5b 00 00 00 2f 62 75 69 6c 64 62 6f 74 ...R....R6...(....s[.../buildbot
7840 2f 74 6d 70 2f 62 75 69 6c 64 68 6f 73 74 2f 69 6e 73 74 61 6c 6c 2f 70 72 65 62 75 69 6c 74 2f /tmp/buildhost/install/prebuilt/
7860 6c 69 6e 75 78 2d 78 38 36 5f 36 34 2f 6c 69 62 2f 70 79 74 68 6f 6e 32 2e 37 2f 74 65 73 74 2f linux-x86_64/lib/python2.7/test/
7880 74 65 73 74 5f 67 65 6e 65 72 61 74 6f 72 73 2e 70 79 74 0c 00 00 00 61 64 76 61 6e 63 65 5f 68 test_generators.pyt....advance_h
78a0 61 72 64 d8 04 00 00 73 20 00 00 00 00 05 06 01 14 01 10 02 0c 01 12 01 04 01 15 01 1a 01 1b 02 ard....s........................
78c0 0a 02 16 01 0f 01 0c 01 09 01 08 01 63 00 00 00 00 00 00 00 00 01 00 00 00 33 00 00 00 73 0c 00 ............c............3...s..
78e0 00 00 88 00 00 6a 00 00 56 01 64 00 00 53 28 01 00 00 00 4e 28 01 00 00 00 52 3e 00 00 00 28 00 .....j..V.d..S(....N(....R>...(.
7900 00 00 00 28 02 00 00 00 52 1d 00 00 00 52 36 00 00 00 28 00 00 00 00 73 5b 00 00 00 2f 62 75 69 ...(....R....R6...(....s[.../bui
7920 6c 64 62 6f 74 2f 74 6d 70 2f 62 75 69 6c 64 68 6f 73 74 2f 69 6e 73 74 61 6c 6c 2f 70 72 65 62 ldbot/tmp/buildhost/install/preb
7940 75 69 6c 74 2f 6c 69 6e 75 78 2d 78 38 36 5f 36 34 2f 6c 69 62 2f 70 79 74 68 6f 6e 32 2e 37 2f uilt/linux-x86_64/lib/python2.7/
7960 74 65 73 74 2f 74 65 73 74 5f 67 65 6e 65 72 61 74 6f 72 73 2e 70 79 74 04 00 00 00 6c 61 73 74 test/test_generators.pyt....last
7980 f2 04 00 00 73 02 00 00 00 00 02 69 04 00 00 00 69 03 00 00 00 28 05 00 00 00 52 3c 00 00 00 52 ....s......i....i....(....R<...R
79a0 0a 00 00 00 52 36 00 00 00 52 00 00 00 00 74 10 00 00 00 73 71 75 61 72 65 67 65 6e 65 72 61 74 ....R6...R....t....squaregenerat
79c0 6f 72 73 28 09 00 00 00 52 1d 00 00 00 52 3c 00 00 00 52 0a 00 00 00 74 04 00 00 00 68 61 72 64 ors(....R....R<...R....t....hard
79e0 52 3d 00 00 00 52 40 00 00 00 52 43 00 00 00 52 4a 00 00 00 52 4b 00 00 00 28 00 00 00 00 28 06 R=...R@...RC...RJ...RK...(....(.
7a00 00 00 00 52 38 00 00 00 52 3c 00 00 00 52 0a 00 00 00 52 37 00 00 00 52 1d 00 00 00 52 36 00 00 ...R8...R<...R....R7...R....R6..
7a20 00 73 5b 00 00 00 2f 62 75 69 6c 64 62 6f 74 2f 74 6d 70 2f 62 75 69 6c 64 68 6f 73 74 2f 69 6e .s[.../buildbot/tmp/buildhost/in
7a40 73 74 61 6c 6c 2f 70 72 65 62 75 69 6c 74 2f 6c 69 6e 75 78 2d 78 38 36 5f 36 34 2f 6c 69 62 2f stall/prebuilt/linux-x86_64/lib/
7a60 70 79 74 68 6f 6e 32 2e 37 2f 74 65 73 74 2f 74 65 73 74 5f 67 65 6e 65 72 61 74 6f 72 73 2e 70 python2.7/test/test_generators.p
7a80 79 52 22 00 00 00 72 04 00 00 73 1a 00 00 00 00 01 13 04 0d 06 12 16 0f 05 1b 0d 1e 19 1b 1a 31 yR"...r...s....................1
7aa0 1a 12 04 10 01 0f 03 28 01 63 03 00 00 00 03 00 00 00 02 00 00 00 43 00 00 00 73 0f 00 00 00 7c .......(.c............C...s....|
7ac0 01 00 7c 00 00 6a 00 00 14 7c 02 00 17 53 28 01 00 00 00 4e 28 01 00 00 00 52 0a 00 00 00 28 03 ..|..j...|...S(....N(....R....(.
7ae0 00 00 00 52 1d 00 00 00 52 01 00 00 00 52 1a 00 00 00 28 00 00 00 00 28 00 00 00 00 73 5b 00 00 ...R....R....R....(....(....s[..
7b00 00 2f 62 75 69 6c 64 62 6f 74 2f 74 6d 70 2f 62 75 69 6c 64 68 6f 73 74 2f 69 6e 73 74 61 6c 6c ./buildbot/tmp/buildhost/install
7b20 2f 70 72 65 62 75 69 6c 74 2f 6c 69 6e 75 78 2d 78 38 36 5f 36 34 2f 6c 69 62 2f 70 79 74 68 6f /prebuilt/linux-x86_64/lib/pytho
7b40 6e 32 2e 37 2f 74 65 73 74 2f 74 65 73 74 5f 67 65 6e 65 72 61 74 6f 72 73 2e 70 79 52 39 00 00 n2.7/test/test_generators.pyR9..
7b60 00 fd 04 00 00 73 02 00 00 00 00 03 63 02 00 00 00 02 00 00 00 03 00 00 00 43 00 00 00 73 10 00 .....s......c............C...s..
7b80 00 00 74 00 00 7c 01 00 7c 00 00 6a 01 00 83 02 00 53 28 01 00 00 00 4e 28 02 00 00 00 74 06 00 ..t..|..|..j.....S(....N(....t..
7ba0 00 00 64 69 76 6d 6f 64 52 0a 00 00 00 28 02 00 00 00 52 1d 00 00 00 74 05 00 00 00 69 6e 64 65 ..divmodR....(....R....t....inde
7bc0 78 28 00 00 00 00 28 00 00 00 00 73 5b 00 00 00 2f 62 75 69 6c 64 62 6f 74 2f 74 6d 70 2f 62 75 x(....(....s[.../buildbot/tmp/bu
7be0 69 6c 64 68 6f 73 74 2f 69 6e 73 74 61 6c 6c 2f 70 72 65 62 75 69 6c 74 2f 6c 69 6e 75 78 2d 78 ildhost/install/prebuilt/linux-x
7c00 38 36 5f 36 34 2f 6c 69 62 2f 70 79 74 68 6f 6e 32 2e 37 2f 74 65 73 74 2f 74 65 73 74 5f 67 65 86_64/lib/python2.7/test/test_ge
7c20 6e 65 72 61 74 6f 72 73 2e 70 79 52 44 00 00 00 02 05 00 00 73 02 00 00 00 00 02 63 01 00 00 00 nerators.pyRD.......s......c....
7c40 0c 00 00 00 0b 00 00 00 43 00 00 00 73 fc 00 00 00 7c 00 00 6a 00 00 7d 01 00 7c 01 00 32 7c 00 ........C...s....|..j..}..|..2|.
7c60 00 6a 01 00 7c 00 00 6a 02 00 02 7d 02 00 7d 03 00 7c 00 00 6a 03 00 7d 04 00 64 06 00 64 07 00 .j..|..j...}..}..|..j..}..d..d..
7c80 64 08 00 64 09 00 64 0a 00 64 0b 00 64 0c 00 64 0d 00 67 08 00 7d 05 00 74 04 00 7c 03 00 83 01 d..d..d..d..d..d..g..}..t..|....
7ca0 00 7d 06 00 78 a2 00 74 04 00 7c 02 00 83 01 00 44 5d 94 00 7d 07 00 78 8b 00 7c 06 00 44 5d 83 .}..x..t..|.....D]..}..x..|..D].
7cc0 00 7d 08 00 67 00 00 7c 05 00 44 5d 63 00 5c 02 00 7d 09 00 7d 0a 00 64 05 00 7c 07 00 7c 09 00 .}..g..|..D]c.\..}..}..d..|..|..
7ce0 17 04 03 6b 01 00 6f a1 00 7c 02 00 6b 00 00 6e 02 00 02 01 72 7a 00 64 05 00 7c 08 00 7c 0a 00 ...k..o..|..k..n....rz.d..|..|..
7d00 17 04 03 6b 01 00 6f c1 00 7c 03 00 6b 00 00 6e 02 00 02 01 72 7a 00 7c 04 00 7c 07 00 7c 09 00 ...k..o..|..k..n....rz.|..|..|..
7d20 17 7c 08 00 7c 0a 00 17 83 02 00 5e 02 00 71 7a 00 7d 0b 00 7c 01 00 6a 05 00 7c 0b 00 83 01 00 .|..|......^..qz.}..|..j..|.....
7d40 01 71 6d 00 57 71 60 00 57 64 00 00 53 28 0e 00 00 00 4e 69 01 00 00 00 69 02 00 00 00 69 ff ff .qm.Wq`.Wd..S(....Ni....i....i..
7d60 ff ff 69 fe ff ff ff 69 00 00 00 00 28 02 00 00 00 69 01 00 00 00 69 02 00 00 00 28 02 00 00 00 ..i....i....(....i....i....(....
7d80 69 02 00 00 00 69 01 00 00 00 28 02 00 00 00 69 02 00 00 00 69 ff ff ff ff 28 02 00 00 00 69 01 i....i....(....i....i....(....i.
7da0 00 00 00 69 fe ff ff ff 28 02 00 00 00 69 ff ff ff ff 69 fe ff ff ff 28 02 00 00 00 69 fe ff ff ...i....(....i....i....(....i...
7dc0 ff 69 ff ff ff ff 28 02 00 00 00 69 fe ff ff ff 69 01 00 00 00 28 02 00 00 00 69 ff ff ff ff 69 .i....(....i....i....(....i....i
7de0 02 00 00 00 28 06 00 00 00 52 36 00 00 00 52 3c 00 00 00 52 0a 00 00 00 52 39 00 00 00 52 1f 00 ....(....R6...R<...R....R9...R..
7e00 00 00 52 21 00 00 00 28 0c 00 00 00 52 1d 00 00 00 52 36 00 00 00 52 3c 00 00 00 52 0a 00 00 00 ..R!...(....R....R6...R<...R....
7e20 74 03 00 00 00 63 32 69 74 07 00 00 00 6f 66 66 73 65 74 73 52 1c 00 00 00 52 01 00 00 00 52 1a t....c2it....offsetsR....R....R.
7e40 00 00 00 74 02 00 00 00 69 6f 74 02 00 00 00 6a 6f 52 34 00 00 00 28 00 00 00 00 28 00 00 00 00 ...t....iot....joR4...(....(....
7e60 73 5b 00 00 00 2f 62 75 69 6c 64 62 6f 74 2f 74 6d 70 2f 62 75 69 6c 64 68 6f 73 74 2f 69 6e 73 s[.../buildbot/tmp/buildhost/ins
7e80 74 61 6c 6c 2f 70 72 65 62 75 69 6c 74 2f 6c 69 6e 75 78 2d 78 38 36 5f 36 34 2f 6c 69 62 2f 70 tall/prebuilt/linux-x86_64/lib/p
7ea0 79 74 68 6f 6e 32 2e 37 2f 74 65 73 74 2f 74 65 73 74 5f 67 65 6e 65 72 61 74 6f 72 73 2e 70 79 ython2.7/test/test_generators.py
7ec0 74 0b 00 00 00 5f 69 6e 69 74 5f 62 6f 61 72 64 06 05 00 00 73 1a 00 00 00 00 01 09 01 04 01 13 t...._init_board....s...........
7ee0 01 09 02 0c 01 12 01 0c 01 13 01 0d 01 13 01 20 01 3d 01 63 01 00 00 00 02 00 00 00 02 00 00 00 .................=.c............
7f00 63 00 00 00 73 2d 00 00 00 7c 00 00 6a 00 00 83 00 00 01 78 1c 00 74 01 00 7c 00 00 6a 02 00 83 c...s-...|..j......x..t..|..j...
7f20 01 00 44 5d 0b 00 7d 01 00 7c 01 00 56 01 71 1a 00 57 64 00 00 53 28 01 00 00 00 4e 28 03 00 00 ..D]..}..|..V.q..Wd..S(....N(...
7f40 00 52 54 00 00 00 52 10 00 00 00 52 4c 00 00 00 28 02 00 00 00 52 1d 00 00 00 52 02 00 00 00 28 .RT...R....RL...(....R....R....(
7f60 00 00 00 00 28 00 00 00 00 73 5b 00 00 00 2f 62 75 69 6c 64 62 6f 74 2f 74 6d 70 2f 62 75 69 6c ....(....s[.../buildbot/tmp/buil
7f80 64 68 6f 73 74 2f 69 6e 73 74 61 6c 6c 2f 70 72 65 62 75 69 6c 74 2f 6c 69 6e 75 78 2d 78 38 36 dhost/install/prebuilt/linux-x86
7fa0 5f 36 34 2f 6c 69 62 2f 70 79 74 68 6f 6e 32 2e 37 2f 74 65 73 74 2f 74 65 73 74 5f 67 65 6e 65 _64/lib/python2.7/test/test_gene
7fc0 72 61 74 6f 72 73 2e 70 79 52 24 00 00 00 17 05 00 00 73 06 00 00 00 00 01 0a 01 16 01 63 02 00 rators.pyR$.......s..........c..
7fe0 00 00 0d 00 00 00 04 00 00 00 43 00 00 00 73 06 01 00 00 7c 00 00 6a 00 00 7c 00 00 6a 01 00 02 ..........C...s....|..j..|..j...
8000 7d 02 00 7d 03 00 74 02 00 74 03 00 7c 02 00 7c 03 00 14 83 01 00 83 01 00 7d 04 00 64 01 00 74 }..}..t..t..|..|.........}..d..t
8020 03 00 7c 04 00 83 01 00 17 64 02 00 17 7d 05 00 67 00 00 74 04 00 7c 02 00 83 01 00 44 5d 13 00 ..|......d...}..g..t..|.....D]..
8040 7d 06 00 64 00 00 67 01 00 7c 03 00 14 5e 02 00 71 4a 00 7d 07 00 64 03 00 7d 08 00 78 3f 00 7c }..d..g..|...^..qJ.}..d..}..x?.|
8060 01 00 44 5d 37 00 7d 06 00 7c 00 00 6a 06 00 7c 06 00 83 01 00 5c 02 00 7d 09 00 7d 0a 00 7c 05 ..D]7.}..|..j..|.....\..}..}..|.
8080 00 7c 08 00 16 7c 07 00 7c 09 00 19 7c 0a 00 3c 7c 08 00 64 03 00 37 7d 08 00 71 70 00 57 64 04 .|...|..|...|..<|..d..7}..qp.Wd.
80a0 00 64 05 00 7c 04 00 14 64 04 00 17 7c 03 00 14 17 7d 0b 00 7c 0b 00 47 48 78 39 00 74 04 00 7c .d..|...d...|....}..|..GHx9.t..|
80c0 02 00 83 01 00 44 5d 2b 00 7d 06 00 7c 07 00 7c 06 00 19 7d 0c 00 64 06 00 64 06 00 6a 07 00 7c .....D]+.}..|..|...}..d..d..j..|
80e0 0c 00 83 01 00 17 64 06 00 17 47 48 7c 0b 00 47 48 71 d3 00 57 64 00 00 53 28 07 00 00 00 4e 74 ......d...GH|..GHq..Wd..S(....Nt
8100 01 00 00 00 25 52 49 00 00 00 69 01 00 00 00 52 25 00 00 00 74 01 00 00 00 2d 52 28 00 00 00 28 ....%RI...i....R%...t....-R(...(
8120 08 00 00 00 52 3c 00 00 00 52 0a 00 00 00 52 00 00 00 00 74 03 00 00 00 73 74 72 52 1f 00 00 00 ....R<...R....R....t....strR....
8140 52 06 00 00 00 52 44 00 00 00 52 29 00 00 00 28 0d 00 00 00 52 1d 00 00 00 52 02 00 00 00 52 3c R....RD...R)...(....R....R....R<
8160 00 00 00 52 0a 00 00 00 74 01 00 00 00 77 74 06 00 00 00 66 6f 72 6d 61 74 52 01 00 00 00 52 2b ...R....t....wt....formatR....R+
8180 00 00 00 74 01 00 00 00 6b 52 47 00 00 00 52 48 00 00 00 52 2a 00 00 00 74 03 00 00 00 72 6f 77 ...t....kRG...RH...R*...t....row
81a0 28 00 00 00 00 28 00 00 00 00 73 5b 00 00 00 2f 62 75 69 6c 64 62 6f 74 2f 74 6d 70 2f 62 75 69 (....(....s[.../buildbot/tmp/bui
81c0 6c 64 68 6f 73 74 2f 69 6e 73 74 61 6c 6c 2f 70 72 65 62 75 69 6c 74 2f 6c 69 6e 75 78 2d 78 38 ldhost/install/prebuilt/linux-x8
81e0 36 5f 36 34 2f 6c 69 62 2f 70 79 74 68 6f 6e 32 2e 37 2f 74 65 73 74 2f 74 65 73 74 5f 67 65 6e 6_64/lib/python2.7/test/test_gen
8200 65 72 61 74 6f 72 73 2e 70 79 52 2c 00 00 00 1c 05 00 00 73 1e 00 00 00 00 01 13 02 16 01 14 02 erators.pyR,.......s............
8220 26 01 06 01 0d 01 15 01 12 01 0e 02 16 01 05 01 13 01 0a 01 16 01 28 08 00 00 00 52 2d 00 00 00 &.....................(....R-...
8240 52 2e 00 00 00 52 22 00 00 00 52 39 00 00 00 52 44 00 00 00 52 54 00 00 00 52 24 00 00 00 52 2c R....R"...R9...RD...RT...R$...R,
8260 00 00 00 28 00 00 00 00 28 00 00 00 00 28 00 00 00 00 73 5b 00 00 00 2f 62 75 69 6c 64 62 6f 74 ...(....(....(....s[.../buildbot
8280 2f 74 6d 70 2f 62 75 69 6c 64 68 6f 73 74 2f 69 6e 73 74 61 6c 6c 2f 70 72 65 62 75 69 6c 74 2f /tmp/buildhost/install/prebuilt/
82a0 6c 69 6e 75 78 2d 78 38 36 5f 36 34 2f 6c 69 62 2f 70 79 74 68 6f 6e 32 2e 37 2f 74 65 73 74 2f linux-x86_64/lib/python2.7/test/
82c0 74 65 73 74 5f 67 65 6e 65 72 61 74 6f 72 73 2e 70 79 52 2f 00 00 00 71 04 00 00 73 0c 00 00 00 test_generators.pyR/...q...s....
82e0 06 01 0c 8b 09 05 09 04 09 11 09 05 73 60 0f 00 00 0a 0a 47 65 6e 65 72 61 74 65 20 74 68 65 20 ............s`.....Generate.the.
8300 33 2d 62 69 74 20 62 69 6e 61 72 79 20 6e 75 6d 62 65 72 73 20 69 6e 20 6f 72 64 65 72 2e 20 20 3-bit.binary.numbers.in.order...
8320 54 68 69 73 20 69 6c 6c 75 73 74 72 61 74 65 73 20 64 75 6d 62 65 73 74 2d 0a 70 6f 73 73 69 62 This.illustrates.dumbest-.possib
8340 6c 65 20 75 73 65 20 6f 66 20 63 6f 6e 6a 6f 69 6e 2c 20 6a 75 73 74 20 74 6f 20 67 65 6e 65 72 le.use.of.conjoin,.just.to.gener
8360 61 74 65 20 74 68 65 20 66 75 6c 6c 20 63 72 6f 73 73 2d 70 72 6f 64 75 63 74 2e 0a 0a 3e 3e 3e ate.the.full.cross-product...>>>
8380 20 66 6f 72 20 63 20 69 6e 20 63 6f 6e 6a 6f 69 6e 28 5b 6c 61 6d 62 64 61 3a 20 69 74 65 72 28 .for.c.in.conjoin([lambda:.iter(
83a0 28 30 2c 20 31 29 29 5d 20 2a 20 33 29 3a 0a 2e 2e 2e 20 20 20 20 20 70 72 69 6e 74 20 63 0a 5b (0,.1))].*.3):.........print.c.[
83c0 30 2c 20 30 2c 20 30 5d 0a 5b 30 2c 20 30 2c 20 31 5d 0a 5b 30 2c 20 31 2c 20 30 5d 0a 5b 30 2c 0,.0,.0].[0,.0,.1].[0,.1,.0].[0,
83e0 20 31 2c 20 31 5d 0a 5b 31 2c 20 30 2c 20 30 5d 0a 5b 31 2c 20 30 2c 20 31 5d 0a 5b 31 2c 20 31 .1,.1].[1,.0,.0].[1,.0,.1].[1,.1
8400 2c 20 30 5d 0a 5b 31 2c 20 31 2c 20 31 5d 0a 0a 46 6f 72 20 65 66 66 69 63 69 65 6e 63 79 20 69 ,.0].[1,.1,.1]..For.efficiency.i
8420 6e 20 74 79 70 69 63 61 6c 20 62 61 63 6b 74 72 61 63 6b 69 6e 67 20 61 70 70 73 2c 20 63 6f 6e n.typical.backtracking.apps,.con
8440 6a 6f 69 6e 28 29 20 79 69 65 6c 64 73 20 74 68 65 20 73 61 6d 65 20 6c 69 73 74 0a 6f 62 6a 65 join().yields.the.same.list.obje
8460 63 74 20 65 61 63 68 20 74 69 6d 65 2e 20 20 53 6f 20 69 66 20 79 6f 75 20 77 61 6e 74 20 74 6f ct.each.time...So.if.you.want.to
8480 20 73 61 76 65 20 61 77 61 79 20 61 20 66 75 6c 6c 20 61 63 63 6f 75 6e 74 20 6f 66 20 69 74 73 .save.away.a.full.account.of.its
84a0 0a 67 65 6e 65 72 61 74 65 64 20 73 65 71 75 65 6e 63 65 2c 20 79 6f 75 20 6e 65 65 64 20 74 6f .generated.sequence,.you.need.to
84c0 20 63 6f 70 79 20 69 74 73 20 72 65 73 75 6c 74 73 2e 0a 0a 3e 3e 3e 20 64 65 66 20 67 65 6e 63 .copy.its.results...>>>.def.genc
84e0 6f 70 79 28 69 74 65 72 61 74 6f 72 29 3a 0a 2e 2e 2e 20 20 20 20 20 66 6f 72 20 78 20 69 6e 20 opy(iterator):.........for.x.in.
8500 69 74 65 72 61 74 6f 72 3a 0a 2e 2e 2e 20 20 20 20 20 20 20 20 20 79 69 65 6c 64 20 78 5b 3a 5d iterator:.............yield.x[:]
8520 0a 0a 3e 3e 3e 20 66 6f 72 20 6e 20 69 6e 20 72 61 6e 67 65 28 31 30 29 3a 0a 2e 2e 2e 20 20 20 ..>>>.for.n.in.range(10):.......
8540 20 20 61 6c 6c 20 3d 20 6c 69 73 74 28 67 65 6e 63 6f 70 79 28 63 6f 6e 6a 6f 69 6e 28 5b 6c 61 ..all.=.list(gencopy(conjoin([la
8560 6d 62 64 61 3a 20 69 74 65 72 28 28 30 2c 20 31 29 29 5d 20 2a 20 6e 29 29 29 0a 2e 2e 2e 20 20 mbda:.iter((0,.1))].*.n)))......
8580 20 20 20 70 72 69 6e 74 20 6e 2c 20 6c 65 6e 28 61 6c 6c 29 2c 20 61 6c 6c 5b 30 5d 20 3d 3d 20 ...print.n,.len(all),.all[0].==.
85a0 5b 30 5d 20 2a 20 6e 2c 20 61 6c 6c 5b 2d 31 5d 20 3d 3d 20 5b 31 5d 20 2a 20 6e 0a 30 20 31 20 [0].*.n,.all[-1].==.[1].*.n.0.1.
85c0 54 72 75 65 20 54 72 75 65 0a 31 20 32 20 54 72 75 65 20 54 72 75 65 0a 32 20 34 20 54 72 75 65 True.True.1.2.True.True.2.4.True
85e0 20 54 72 75 65 0a 33 20 38 20 54 72 75 65 20 54 72 75 65 0a 34 20 31 36 20 54 72 75 65 20 54 72 .True.3.8.True.True.4.16.True.Tr
8600 75 65 0a 35 20 33 32 20 54 72 75 65 20 54 72 75 65 0a 36 20 36 34 20 54 72 75 65 20 54 72 75 65 ue.5.32.True.True.6.64.True.True
8620 0a 37 20 31 32 38 20 54 72 75 65 20 54 72 75 65 0a 38 20 32 35 36 20 54 72 75 65 20 54 72 75 65 .7.128.True.True.8.256.True.True
8640 0a 39 20 35 31 32 20 54 72 75 65 20 54 72 75 65 0a 0a 41 6e 64 20 72 75 6e 20 61 6e 20 38 2d 71 .9.512.True.True..And.run.an.8-q
8660 75 65 65 6e 73 20 73 6f 6c 76 65 72 2e 0a 0a 3e 3e 3e 20 71 20 3d 20 51 75 65 65 6e 73 28 38 29 ueens.solver...>>>.q.=.Queens(8)
8680 0a 3e 3e 3e 20 4c 49 4d 49 54 20 3d 20 32 0a 3e 3e 3e 20 63 6f 75 6e 74 20 3d 20 30 0a 3e 3e 3e .>>>.LIMIT.=.2.>>>.count.=.0.>>>
86a0 20 66 6f 72 20 72 6f 77 32 63 6f 6c 20 69 6e 20 71 2e 73 6f 6c 76 65 28 29 3a 0a 2e 2e 2e 20 20 .for.row2col.in.q.solve():......
86c0 20 20 20 63 6f 75 6e 74 20 2b 3d 20 31 0a 2e 2e 2e 20 20 20 20 20 69 66 20 63 6f 75 6e 74 20 3c ...count.+=.1.........if.count.<
86e0 3d 20 4c 49 4d 49 54 3a 0a 2e 2e 2e 20 20 20 20 20 20 20 20 20 70 72 69 6e 74 20 22 53 6f 6c 75 =.LIMIT:.............print."Solu
8700 74 69 6f 6e 22 2c 20 63 6f 75 6e 74 0a 2e 2e 2e 20 20 20 20 20 20 20 20 20 71 2e 70 72 69 6e 74 tion",.count.............q.print
8720 73 6f 6c 75 74 69 6f 6e 28 72 6f 77 32 63 6f 6c 29 0a 53 6f 6c 75 74 69 6f 6e 20 31 0a 2b 2d 2b solution(row2col).Solution.1.+-+
8740 2d 2b 2d 2b 2d 2b 2d 2b 2d 2b 2d 2b 2d 2b 0a 7c 51 7c 20 7c 20 7c 20 7c 20 7c 20 7c 20 7c 20 7c -+-+-+-+-+-+-+.|Q|.|.|.|.|.|.|.|
8760 0a 2b 2d 2b 2d 2b 2d 2b 2d 2b 2d 2b 2d 2b 2d 2b 2d 2b 0a 7c 20 7c 20 7c 20 7c 20 7c 51 7c 20 7c .+-+-+-+-+-+-+-+-+.|.|.|.|.|Q|.|
8780 20 7c 20 7c 0a 2b 2d 2b 2d 2b 2d 2b 2d 2b 2d 2b 2d 2b 2d 2b 2d 2b 0a 7c 20 7c 20 7c 20 7c 20 7c .|.|.+-+-+-+-+-+-+-+-+.|.|.|.|.|
87a0 20 7c 20 7c 20 7c 51 7c 0a 2b 2d 2b 2d 2b 2d 2b 2d 2b 2d 2b 2d 2b 2d 2b 2d 2b 0a 7c 20 7c 20 7c .|.|.|Q|.+-+-+-+-+-+-+-+-+.|.|.|
87c0 20 7c 20 7c 20 7c 51 7c 20 7c 20 7c 0a 2b 2d 2b 2d 2b 2d 2b 2d 2b 2d 2b 2d 2b 2d 2b 2d 2b 0a 7c .|.|.|Q|.|.|.+-+-+-+-+-+-+-+-+.|
87e0 20 7c 20 7c 51 7c 20 7c 20 7c 20 7c 20 7c 20 7c 0a 2b 2d 2b 2d 2b 2d 2b 2d 2b 2d 2b 2d 2b 2d 2b .|.|Q|.|.|.|.|.|.+-+-+-+-+-+-+-+
8800 2d 2b 0a 7c 20 7c 20 7c 20 7c 20 7c 20 7c 20 7c 51 7c 20 7c 0a 2b 2d 2b 2d 2b 2d 2b 2d 2b 2d 2b -+.|.|.|.|.|.|.|Q|.|.+-+-+-+-+-+
8820 2d 2b 2d 2b 2d 2b 0a 7c 20 7c 51 7c 20 7c 20 7c 20 7c 20 7c 20 7c 20 7c 0a 2b 2d 2b 2d 2b 2d 2b -+-+-+.|.|Q|.|.|.|.|.|.|.+-+-+-+
8840 2d 2b 2d 2b 2d 2b 2d 2b 2d 2b 0a 7c 20 7c 20 7c 20 7c 51 7c 20 7c 20 7c 20 7c 20 7c 0a 2b 2d 2b -+-+-+-+-+.|.|.|.|Q|.|.|.|.|.+-+
8860 2d 2b 2d 2b 2d 2b 2d 2b 2d 2b 2d 2b 2d 2b 0a 53 6f 6c 75 74 69 6f 6e 20 32 0a 2b 2d 2b 2d 2b 2d -+-+-+-+-+-+-+.Solution.2.+-+-+-
8880 2b 2d 2b 2d 2b 2d 2b 2d 2b 2d 2b 0a 7c 51 7c 20 7c 20 7c 20 7c 20 7c 20 7c 20 7c 20 7c 0a 2b 2d +-+-+-+-+-+.|Q|.|.|.|.|.|.|.|.+-
88a0 2b 2d 2b 2d 2b 2d 2b 2d 2b 2d 2b 2d 2b 2d 2b 0a 7c 20 7c 20 7c 20 7c 20 7c 20 7c 51 7c 20 7c 20 +-+-+-+-+-+-+-+.|.|.|.|.|.|Q|.|.
88c0 7c 0a 2b 2d 2b 2d 2b 2d 2b 2d 2b 2d 2b 2d 2b 2d 2b 2d 2b 0a 7c 20 7c 20 7c 20 7c 20 7c 20 7c 20 |.+-+-+-+-+-+-+-+-+.|.|.|.|.|.|.
88e0 7c 20 7c 51 7c 0a 2b 2d 2b 2d 2b 2d 2b 2d 2b 2d 2b 2d 2b 2d 2b 2d 2b 0a 7c 20 7c 20 7c 51 7c 20 |.|Q|.+-+-+-+-+-+-+-+-+.|.|.|Q|.
8900 7c 20 7c 20 7c 20 7c 20 7c 0a 2b 2d 2b 2d 2b 2d 2b 2d 2b 2d 2b 2d 2b 2d 2b 2d 2b 0a 7c 20 7c 20 |.|.|.|.|.+-+-+-+-+-+-+-+-+.|.|.
8920 7c 20 7c 20 7c 20 7c 20 7c 51 7c 20 7c 0a 2b 2d 2b 2d 2b 2d 2b 2d 2b 2d 2b 2d 2b 2d 2b 2d 2b 0a |.|.|.|.|Q|.|.+-+-+-+-+-+-+-+-+.
8940 7c 20 7c 20 7c 20 7c 51 7c 20 7c 20 7c 20 7c 20 7c 0a 2b 2d 2b 2d 2b 2d 2b 2d 2b 2d 2b 2d 2b 2d |.|.|.|Q|.|.|.|.|.+-+-+-+-+-+-+-
8960 2b 2d 2b 0a 7c 20 7c 51 7c 20 7c 20 7c 20 7c 20 7c 20 7c 20 7c 0a 2b 2d 2b 2d 2b 2d 2b 2d 2b 2d +-+.|.|Q|.|.|.|.|.|.|.+-+-+-+-+-
8980 2b 2d 2b 2d 2b 2d 2b 0a 7c 20 7c 20 7c 20 7c 20 7c 51 7c 20 7c 20 7c 20 7c 0a 2b 2d 2b 2d 2b 2d +-+-+-+.|.|.|.|.|Q|.|.|.|.+-+-+-
89a0 2b 2d 2b 2d 2b 2d 2b 2d 2b 2d 2b 0a 0a 3e 3e 3e 20 70 72 69 6e 74 20 63 6f 75 6e 74 2c 20 22 73 +-+-+-+-+-+..>>>.print.count,."s
89c0 6f 6c 75 74 69 6f 6e 73 20 69 6e 20 61 6c 6c 2e 22 0a 39 32 20 73 6f 6c 75 74 69 6f 6e 73 20 69 olutions.in.all.".92.solutions.i
89e0 6e 20 61 6c 6c 2e 0a 0a 41 6e 64 20 72 75 6e 20 61 20 4b 6e 69 67 68 74 27 73 20 54 6f 75 72 20 n.all...And.run.a.Knight's.Tour.
8a00 6f 6e 20 61 20 31 30 78 31 30 20 62 6f 61 72 64 2e 20 20 4e 6f 74 65 20 74 68 61 74 20 74 68 65 on.a.10x10.board...Note.that.the
8a20 72 65 20 61 72 65 20 61 62 6f 75 74 0a 32 30 2c 30 30 30 20 73 6f 6c 75 74 69 6f 6e 73 20 65 76 re.are.about.20,000.solutions.ev
8a40 65 6e 20 6f 6e 20 61 20 36 78 36 20 62 6f 61 72 64 2c 20 73 6f 20 64 6f 6e 27 74 20 64 61 72 65 en.on.a.6x6.board,.so.don't.dare
8a60 20 72 75 6e 20 74 68 69 73 20 74 6f 20 65 78 68 61 75 73 74 69 6f 6e 2e 0a 0a 3e 3e 3e 20 6b 20 .run.this.to.exhaustion...>>>.k.
8a80 3d 20 4b 6e 69 67 68 74 73 28 31 30 2c 20 31 30 29 0a 3e 3e 3e 20 4c 49 4d 49 54 20 3d 20 32 0a =.Knights(10,.10).>>>.LIMIT.=.2.
8aa0 3e 3e 3e 20 63 6f 75 6e 74 20 3d 20 30 0a 3e 3e 3e 20 66 6f 72 20 78 20 69 6e 20 6b 2e 73 6f 6c >>>.count.=.0.>>>.for.x.in.k.sol
8ac0 76 65 28 29 3a 0a 2e 2e 2e 20 20 20 20 20 63 6f 75 6e 74 20 2b 3d 20 31 0a 2e 2e 2e 20 20 20 20 ve():.........count.+=.1........
8ae0 20 69 66 20 63 6f 75 6e 74 20 3c 3d 20 4c 49 4d 49 54 3a 0a 2e 2e 2e 20 20 20 20 20 20 20 20 20 .if.count.<=.LIMIT:.............
8b00 70 72 69 6e 74 20 22 53 6f 6c 75 74 69 6f 6e 22 2c 20 63 6f 75 6e 74 0a 2e 2e 2e 20 20 20 20 20 print."Solution",.count.........
8b20 20 20 20 20 6b 2e 70 72 69 6e 74 73 6f 6c 75 74 69 6f 6e 28 78 29 0a 2e 2e 2e 20 20 20 20 20 65 ....k.printsolution(x).........e
8b40 6c 73 65 3a 0a 2e 2e 2e 20 20 20 20 20 20 20 20 20 62 72 65 61 6b 0a 53 6f 6c 75 74 69 6f 6e 20 lse:.............break.Solution.
8b60 31 0a 2b 2d 2d 2d 2b 2d 2d 2d 2b 2d 2d 2d 2b 2d 2d 2d 2b 2d 2d 2d 2b 2d 2d 2d 2b 2d 2d 2d 2b 2d 1.+---+---+---+---+---+---+---+-
8b80 2d 2d 2b 2d 2d 2d 2b 2d 2d 2d 2b 0a 7c 20 20 31 7c 20 35 38 7c 20 32 37 7c 20 33 34 7c 20 20 33 --+---+---+.|..1|.58|.27|.34|..3
8ba0 7c 20 34 30 7c 20 32 39 7c 20 31 30 7c 20 20 35 7c 20 20 38 7c 0a 2b 2d 2d 2d 2b 2d 2d 2d 2b 2d |.40|.29|.10|..5|..8|.+---+---+-
8bc0 2d 2d 2b 2d 2d 2d 2b 2d 2d 2d 2b 2d 2d 2d 2b 2d 2d 2d 2b 2d 2d 2d 2b 2d 2d 2d 2b 2d 2d 2d 2b 0a --+---+---+---+---+---+---+---+.
8be0 7c 20 32 36 7c 20 33 35 7c 20 20 32 7c 20 35 37 7c 20 32 38 7c 20 33 33 7c 20 20 34 7c 20 20 37 |.26|.35|..2|.57|.28|.33|..4|..7
8c00 7c 20 33 30 7c 20 31 31 7c 0a 2b 2d 2d 2d 2b 2d 2d 2d 2b 2d 2d 2d 2b 2d 2d 2d 2b 2d 2d 2d 2b 2d |.30|.11|.+---+---+---+---+---+-
8c20 2d 2d 2b 2d 2d 2d 2b 2d 2d 2d 2b 2d 2d 2d 2b 2d 2d 2d 2b 0a 7c 20 35 39 7c 31 30 30 7c 20 37 33 --+---+---+---+---+.|.59|100|.73
8c40 7c 20 33 36 7c 20 34 31 7c 20 35 36 7c 20 33 39 7c 20 33 32 7c 20 20 39 7c 20 20 36 7c 0a 2b 2d |.36|.41|.56|.39|.32|..9|..6|.+-
8c60 2d 2d 2b 2d 2d 2d 2b 2d 2d 2d 2b 2d 2d 2d 2b 2d 2d 2d 2b 2d 2d 2d 2b 2d 2d 2d 2b 2d 2d 2d 2b 2d --+---+---+---+---+---+---+---+-
8c80 2d 2d 2b 2d 2d 2d 2b 0a 7c 20 37 34 7c 20 32 35 7c 20 36 30 7c 20 35 35 7c 20 37 32 7c 20 33 37 --+---+.|.74|.25|.60|.55|.72|.37
8ca0 7c 20 34 32 7c 20 34 39 7c 20 31 32 7c 20 33 31 7c 0a 2b 2d 2d 2d 2b 2d 2d 2d 2b 2d 2d 2d 2b 2d |.42|.49|.12|.31|.+---+---+---+-
8cc0 2d 2d 2b 2d 2d 2d 2b 2d 2d 2d 2b 2d 2d 2d 2b 2d 2d 2d 2b 2d 2d 2d 2b 2d 2d 2d 2b 0a 7c 20 36 31 --+---+---+---+---+---+---+.|.61
8ce0 7c 20 38 36 7c 20 39 39 7c 20 37 36 7c 20 36 33 7c 20 35 32 7c 20 34 37 7c 20 33 38 7c 20 34 33 |.86|.99|.76|.63|.52|.47|.38|.43
8d00 7c 20 35 30 7c 0a 2b 2d 2d 2d 2b 2d 2d 2d 2b 2d 2d 2d 2b 2d 2d 2d 2b 2d 2d 2d 2b 2d 2d 2d 2b 2d |.50|.+---+---+---+---+---+---+-
8d20 2d 2d 2b 2d 2d 2d 2b 2d 2d 2d 2b 2d 2d 2d 2b 0a 7c 20 32 34 7c 20 37 35 7c 20 36 32 7c 20 38 35 --+---+---+---+.|.24|.75|.62|.85
8d40 7c 20 35 34 7c 20 37 31 7c 20 36 34 7c 20 35 31 7c 20 34 38 7c 20 31 33 7c 0a 2b 2d 2d 2d 2b 2d |.54|.71|.64|.51|.48|.13|.+---+-
8d60 2d 2d 2b 2d 2d 2d 2b 2d 2d 2d 2b 2d 2d 2d 2b 2d 2d 2d 2b 2d 2d 2d 2b 2d 2d 2d 2b 2d 2d 2d 2b 2d --+---+---+---+---+---+---+---+-
8d80 2d 2d 2b 0a 7c 20 38 37 7c 20 39 38 7c 20 39 31 7c 20 38 30 7c 20 37 37 7c 20 38 34 7c 20 35 33 --+.|.87|.98|.91|.80|.77|.84|.53
8da0 7c 20 34 36 7c 20 36 35 7c 20 34 34 7c 0a 2b 2d 2d 2d 2b 2d 2d 2d 2b 2d 2d 2d 2b 2d 2d 2d 2b 2d |.46|.65|.44|.+---+---+---+---+-
8dc0 2d 2d 2b 2d 2d 2d 2b 2d 2d 2d 2b 2d 2d 2d 2b 2d 2d 2d 2b 2d 2d 2d 2b 0a 7c 20 39 30 7c 20 32 33 --+---+---+---+---+---+.|.90|.23
8de0 7c 20 38 38 7c 20 39 35 7c 20 37 30 7c 20 37 39 7c 20 36 38 7c 20 38 33 7c 20 31 34 7c 20 31 37 |.88|.95|.70|.79|.68|.83|.14|.17
8e00 7c 0a 2b 2d 2d 2d 2b 2d 2d 2d 2b 2d 2d 2d 2b 2d 2d 2d 2b 2d 2d 2d 2b 2d 2d 2d 2b 2d 2d 2d 2b 2d |.+---+---+---+---+---+---+---+-
8e20 2d 2d 2b 2d 2d 2d 2b 2d 2d 2d 2b 0a 7c 20 39 37 7c 20 39 32 7c 20 32 31 7c 20 37 38 7c 20 38 31 --+---+---+.|.97|.92|.21|.78|.81
8e40 7c 20 39 34 7c 20 31 39 7c 20 31 36 7c 20 34 35 7c 20 36 36 7c 0a 2b 2d 2d 2d 2b 2d 2d 2d 2b 2d |.94|.19|.16|.45|.66|.+---+---+-
8e60 2d 2d 2b 2d 2d 2d 2b 2d 2d 2d 2b 2d 2d 2d 2b 2d 2d 2d 2b 2d 2d 2d 2b 2d 2d 2d 2b 2d 2d 2d 2b 0a --+---+---+---+---+---+---+---+.
8e80 7c 20 32 32 7c 20 38 39 7c 20 39 36 7c 20 39 33 7c 20 32 30 7c 20 36 39 7c 20 38 32 7c 20 36 37 |.22|.89|.96|.93|.20|.69|.82|.67
8ea0 7c 20 31 38 7c 20 31 35 7c 0a 2b 2d 2d 2d 2b 2d 2d 2d 2b 2d 2d 2d 2b 2d 2d 2d 2b 2d 2d 2d 2b 2d |.18|.15|.+---+---+---+---+---+-
8ec0 2d 2d 2b 2d 2d 2d 2b 2d 2d 2d 2b 2d 2d 2d 2b 2d 2d 2d 2b 0a 53 6f 6c 75 74 69 6f 6e 20 32 0a 2b --+---+---+---+---+.Solution.2.+
8ee0 2d 2d 2d 2b 2d 2d 2d 2b 2d 2d 2d 2b 2d 2d 2d 2b 2d 2d 2d 2b 2d 2d 2d 2b 2d 2d 2d 2b 2d 2d 2d 2b ---+---+---+---+---+---+---+---+
8f00 2d 2d 2d 2b 2d 2d 2d 2b 0a 7c 20 20 31 7c 20 35 38 7c 20 32 37 7c 20 33 34 7c 20 20 33 7c 20 34 ---+---+.|..1|.58|.27|.34|..3|.4
8f20 30 7c 20 32 39 7c 20 31 30 7c 20 20 35 7c 20 20 38 7c 0a 2b 2d 2d 2d 2b 2d 2d 2d 2b 2d 2d 2d 2b 0|.29|.10|..5|..8|.+---+---+---+
8f40 2d 2d 2d 2b 2d 2d 2d 2b 2d 2d 2d 2b 2d 2d 2d 2b 2d 2d 2d 2b 2d 2d 2d 2b 2d 2d 2d 2b 0a 7c 20 32 ---+---+---+---+---+---+---+.|.2
8f60 36 7c 20 33 35 7c 20 20 32 7c 20 35 37 7c 20 32 38 7c 20 33 33 7c 20 20 34 7c 20 20 37 7c 20 33 6|.35|..2|.57|.28|.33|..4|..7|.3
8f80 30 7c 20 31 31 7c 0a 2b 2d 2d 2d 2b 2d 2d 2d 2b 2d 2d 2d 2b 2d 2d 2d 2b 2d 2d 2d 2b 2d 2d 2d 2b 0|.11|.+---+---+---+---+---+---+
8fa0 2d 2d 2d 2b 2d 2d 2d 2b 2d 2d 2d 2b 2d 2d 2d 2b 0a 7c 20 35 39 7c 31 30 30 7c 20 37 33 7c 20 33 ---+---+---+---+.|.59|100|.73|.3
8fc0 36 7c 20 34 31 7c 20 35 36 7c 20 33 39 7c 20 33 32 7c 20 20 39 7c 20 20 36 7c 0a 2b 2d 2d 2d 2b 6|.41|.56|.39|.32|..9|..6|.+---+
8fe0 2d 2d 2d 2b 2d 2d 2d 2b 2d 2d 2d 2b 2d 2d 2d 2b 2d 2d 2d 2b 2d 2d 2d 2b 2d 2d 2d 2b 2d 2d 2d 2b ---+---+---+---+---+---+---+---+
9000 2d 2d 2d 2b 0a 7c 20 37 34 7c 20 32 35 7c 20 36 30 7c 20 35 35 7c 20 37 32 7c 20 33 37 7c 20 34 ---+.|.74|.25|.60|.55|.72|.37|.4
9020 32 7c 20 34 39 7c 20 31 32 7c 20 33 31 7c 0a 2b 2d 2d 2d 2b 2d 2d 2d 2b 2d 2d 2d 2b 2d 2d 2d 2b 2|.49|.12|.31|.+---+---+---+---+
9040 2d 2d 2d 2b 2d 2d 2d 2b 2d 2d 2d 2b 2d 2d 2d 2b 2d 2d 2d 2b 2d 2d 2d 2b 0a 7c 20 36 31 7c 20 38 ---+---+---+---+---+---+.|.61|.8
9060 36 7c 20 39 39 7c 20 37 36 7c 20 36 33 7c 20 35 32 7c 20 34 37 7c 20 33 38 7c 20 34 33 7c 20 35 6|.99|.76|.63|.52|.47|.38|.43|.5
9080 30 7c 0a 2b 2d 2d 2d 2b 2d 2d 2d 2b 2d 2d 2d 2b 2d 2d 2d 2b 2d 2d 2d 2b 2d 2d 2d 2b 2d 2d 2d 2b 0|.+---+---+---+---+---+---+---+
90a0 2d 2d 2d 2b 2d 2d 2d 2b 2d 2d 2d 2b 0a 7c 20 32 34 7c 20 37 35 7c 20 36 32 7c 20 38 35 7c 20 35 ---+---+---+.|.24|.75|.62|.85|.5
90c0 34 7c 20 37 31 7c 20 36 34 7c 20 35 31 7c 20 34 38 7c 20 31 33 7c 0a 2b 2d 2d 2d 2b 2d 2d 2d 2b 4|.71|.64|.51|.48|.13|.+---+---+
90e0 2d 2d 2d 2b 2d 2d 2d 2b 2d 2d 2d 2b 2d 2d 2d 2b 2d 2d 2d 2b 2d 2d 2d 2b 2d 2d 2d 2b 2d 2d 2d 2b ---+---+---+---+---+---+---+---+
9100 0a 7c 20 38 37 7c 20 39 38 7c 20 38 39 7c 20 38 30 7c 20 37 37 7c 20 38 34 7c 20 35 33 7c 20 34 .|.87|.98|.89|.80|.77|.84|.53|.4
9120 36 7c 20 36 35 7c 20 34 34 7c 0a 2b 2d 2d 2d 2b 2d 2d 2d 2b 2d 2d 2d 2b 2d 2d 2d 2b 2d 2d 2d 2b 6|.65|.44|.+---+---+---+---+---+
9140 2d 2d 2d 2b 2d 2d 2d 2b 2d 2d 2d 2b 2d 2d 2d 2b 2d 2d 2d 2b 0a 7c 20 39 30 7c 20 32 33 7c 20 39 ---+---+---+---+---+.|.90|.23|.9
9160 32 7c 20 39 35 7c 20 37 30 7c 20 37 39 7c 20 36 38 7c 20 38 33 7c 20 31 34 7c 20 31 37 7c 0a 2b 2|.95|.70|.79|.68|.83|.14|.17|.+
9180 2d 2d 2d 2b 2d 2d 2d 2b 2d 2d 2d 2b 2d 2d 2d 2b 2d 2d 2d 2b 2d 2d 2d 2b 2d 2d 2d 2b 2d 2d 2d 2b ---+---+---+---+---+---+---+---+
91a0 2d 2d 2d 2b 2d 2d 2d 2b 0a 7c 20 39 37 7c 20 38 38 7c 20 32 31 7c 20 37 38 7c 20 38 31 7c 20 39 ---+---+.|.97|.88|.21|.78|.81|.9
91c0 34 7c 20 31 39 7c 20 31 36 7c 20 34 35 7c 20 36 36 7c 0a 2b 2d 2d 2d 2b 2d 2d 2d 2b 2d 2d 2d 2b 4|.19|.16|.45|.66|.+---+---+---+
91e0 2d 2d 2d 2b 2d 2d 2d 2b 2d 2d 2d 2b 2d 2d 2d 2b 2d 2d 2d 2b 2d 2d 2d 2b 2d 2d 2d 2b 0a 7c 20 32 ---+---+---+---+---+---+---+.|.2
9200 32 7c 20 39 31 7c 20 39 36 7c 20 39 33 7c 20 32 30 7c 20 36 39 7c 20 38 32 7c 20 36 37 7c 20 31 2|.91|.96|.93|.20|.69|.82|.67|.1
9220 38 7c 20 31 35 7c 0a 2b 2d 2d 2d 2b 2d 2d 2d 2b 2d 2d 2d 2b 2d 2d 2d 2b 2d 2d 2d 2b 2d 2d 2d 2b 8|.15|.+---+---+---+---+---+---+
9240 2d 2d 2d 2b 2d 2d 2d 2b 2d 2d 2d 2b 2d 2d 2d 2b 0a 73 4d 01 00 00 47 65 6e 65 72 61 74 6f 72 73 ---+---+---+---+.sM...Generators
9260 20 61 72 65 20 77 65 61 6b 6c 79 20 72 65 66 65 72 65 6e 63 61 62 6c 65 3a 0a 0a 3e 3e 3e 20 69 .are.weakly.referencable:..>>>.i
9280 6d 70 6f 72 74 20 77 65 61 6b 72 65 66 0a 3e 3e 3e 20 64 65 66 20 67 65 6e 28 29 3a 0a 2e 2e 2e mport.weakref.>>>.def.gen():....
92a0 20 20 20 20 20 79 69 65 6c 64 20 27 66 6f 6f 21 27 0a 2e 2e 2e 0a 3e 3e 3e 20 77 72 20 3d 20 77 .....yield.'foo!'.....>>>.wr.=.w
92c0 65 61 6b 72 65 66 2e 72 65 66 28 67 65 6e 29 0a 3e 3e 3e 20 77 72 28 29 20 69 73 20 67 65 6e 0a eakref.ref(gen).>>>.wr().is.gen.
92e0 54 72 75 65 0a 3e 3e 3e 20 70 20 3d 20 77 65 61 6b 72 65 66 2e 70 72 6f 78 79 28 67 65 6e 29 0a True.>>>.p.=.weakref.proxy(gen).
9300 0a 47 65 6e 65 72 61 74 6f 72 2d 69 74 65 72 61 74 6f 72 73 20 61 72 65 20 77 65 61 6b 6c 79 20 .Generator-iterators.are.weakly.
9320 72 65 66 65 72 65 6e 63 61 62 6c 65 20 61 73 20 77 65 6c 6c 3a 0a 0a 3e 3e 3e 20 67 69 20 3d 20 referencable.as.well:..>>>.gi.=.
9340 67 65 6e 28 29 0a 3e 3e 3e 20 77 72 20 3d 20 77 65 61 6b 72 65 66 2e 72 65 66 28 67 69 29 0a 3e gen().>>>.wr.=.weakref.ref(gi).>
9360 3e 3e 20 77 72 28 29 20 69 73 20 67 69 0a 54 72 75 65 0a 3e 3e 3e 20 70 20 3d 20 77 65 61 6b 72 >>.wr().is.gi.True.>>>.p.=.weakr
9380 65 66 2e 70 72 6f 78 79 28 67 69 29 0a 3e 3e 3e 20 6c 69 73 74 28 70 29 0a 5b 27 66 6f 6f 21 27 ef.proxy(gi).>>>.list(p).['foo!'
93a0 5d 0a 0a 73 56 18 00 00 53 65 6e 64 69 6e 67 20 61 20 76 61 6c 75 65 20 69 6e 74 6f 20 61 20 73 ]..sV...Sending.a.value.into.a.s
93c0 74 61 72 74 65 64 20 67 65 6e 65 72 61 74 6f 72 3a 0a 0a 3e 3e 3e 20 64 65 66 20 66 28 29 3a 0a tarted.generator:..>>>.def.f():.
93e0 2e 2e 2e 20 20 20 20 20 70 72 69 6e 74 20 28 79 69 65 6c 64 20 31 29 0a 2e 2e 2e 20 20 20 20 20 ........print.(yield.1).........
9400 79 69 65 6c 64 20 32 0a 3e 3e 3e 20 67 20 3d 20 66 28 29 0a 3e 3e 3e 20 67 2e 6e 65 78 74 28 29 yield.2.>>>.g.=.f().>>>.g.next()
9420 0a 31 0a 3e 3e 3e 20 67 2e 73 65 6e 64 28 34 32 29 0a 34 32 0a 32 0a 0a 53 65 6e 64 69 6e 67 20 .1.>>>.g.send(42).42.2..Sending.
9440 61 20 76 61 6c 75 65 20 69 6e 74 6f 20 61 20 6e 65 77 20 67 65 6e 65 72 61 74 6f 72 20 70 72 6f a.value.into.a.new.generator.pro
9460 64 75 63 65 73 20 61 20 54 79 70 65 45 72 72 6f 72 3a 0a 0a 3e 3e 3e 20 66 28 29 2e 73 65 6e 64 duces.a.TypeError:..>>>.f().send
9480 28 22 66 6f 6f 22 29 0a 54 72 61 63 65 62 61 63 6b 20 28 6d 6f 73 74 20 72 65 63 65 6e 74 20 63 ("foo").Traceback.(most.recent.c
94a0 61 6c 6c 20 6c 61 73 74 29 3a 0a 2e 2e 2e 0a 54 79 70 65 45 72 72 6f 72 3a 20 63 61 6e 27 74 20 all.last):.....TypeError:.can't.
94c0 73 65 6e 64 20 6e 6f 6e 2d 4e 6f 6e 65 20 76 61 6c 75 65 20 74 6f 20 61 20 6a 75 73 74 2d 73 74 send.non-None.value.to.a.just-st
94e0 61 72 74 65 64 20 67 65 6e 65 72 61 74 6f 72 0a 0a 0a 59 69 65 6c 64 20 62 79 20 69 74 73 65 6c arted.generator...Yield.by.itsel
9500 66 20 79 69 65 6c 64 73 20 4e 6f 6e 65 3a 0a 0a 3e 3e 3e 20 64 65 66 20 66 28 29 3a 20 79 69 65 f.yields.None:..>>>.def.f():.yie
9520 6c 64 0a 3e 3e 3e 20 6c 69 73 74 28 66 28 29 29 0a 5b 4e 6f 6e 65 5d 0a 0a 0a 0a 41 6e 20 6f 62 ld.>>>.list(f()).[None]....An.ob
9540 73 63 65 6e 65 20 61 62 75 73 65 20 6f 66 20 61 20 79 69 65 6c 64 20 65 78 70 72 65 73 73 69 6f scene.abuse.of.a.yield.expressio
9560 6e 20 77 69 74 68 69 6e 20 61 20 67 65 6e 65 72 61 74 6f 72 20 65 78 70 72 65 73 73 69 6f 6e 3a n.within.a.generator.expression:
9580 0a 0a 3e 3e 3e 20 6c 69 73 74 28 28 79 69 65 6c 64 20 32 31 29 20 66 6f 72 20 69 20 69 6e 20 72 ..>>>.list((yield.21).for.i.in.r
95a0 61 6e 67 65 28 34 29 29 0a 5b 32 31 2c 20 4e 6f 6e 65 2c 20 32 31 2c 20 4e 6f 6e 65 2c 20 32 31 ange(4)).[21,.None,.21,.None,.21
95c0 2c 20 4e 6f 6e 65 2c 20 32 31 2c 20 4e 6f 6e 65 5d 0a 0a 41 6e 64 20 61 20 6d 6f 72 65 20 73 61 ,.None,.21,.None]..And.a.more.sa
95e0 6e 65 2c 20 62 75 74 20 73 74 69 6c 6c 20 77 65 69 72 64 20 75 73 61 67 65 3a 0a 0a 3e 3e 3e 20 ne,.but.still.weird.usage:..>>>.
9600 64 65 66 20 66 28 29 3a 20 6c 69 73 74 28 69 20 66 6f 72 20 69 20 69 6e 20 5b 28 79 69 65 6c 64 def.f():.list(i.for.i.in.[(yield
9620 20 32 36 29 5d 29 0a 3e 3e 3e 20 74 79 70 65 28 66 28 29 29 0a 3c 74 79 70 65 20 27 67 65 6e 65 .26)]).>>>.type(f()).<type.'gene
9640 72 61 74 6f 72 27 3e 0a 0a 0a 41 20 79 69 65 6c 64 20 65 78 70 72 65 73 73 69 6f 6e 20 77 69 74 rator'>...A.yield.expression.wit
9660 68 20 61 75 67 6d 65 6e 74 65 64 20 61 73 73 69 67 6e 6d 65 6e 74 2e 0a 0a 3e 3e 3e 20 64 65 66 h.augmented.assignment...>>>.def
9680 20 63 6f 72 6f 75 74 69 6e 65 28 73 65 71 29 3a 0a 2e 2e 2e 20 20 20 20 20 63 6f 75 6e 74 20 3d .coroutine(seq):.........count.=
96a0 20 30 0a 2e 2e 2e 20 20 20 20 20 77 68 69 6c 65 20 63 6f 75 6e 74 20 3c 20 32 30 30 3a 0a 2e 2e .0.........while.count.<.200:...
96c0 2e 20 20 20 20 20 20 20 20 20 63 6f 75 6e 74 20 2b 3d 20 79 69 65 6c 64 0a 2e 2e 2e 20 20 20 20 ..........count.+=.yield........
96e0 20 20 20 20 20 73 65 71 2e 61 70 70 65 6e 64 28 63 6f 75 6e 74 29 0a 3e 3e 3e 20 73 65 71 20 3d .....seq.append(count).>>>.seq.=
9700 20 5b 5d 0a 3e 3e 3e 20 63 20 3d 20 63 6f 72 6f 75 74 69 6e 65 28 73 65 71 29 0a 3e 3e 3e 20 63 .[].>>>.c.=.coroutine(seq).>>>.c
9720 2e 6e 65 78 74 28 29 0a 3e 3e 3e 20 70 72 69 6e 74 20 73 65 71 0a 5b 5d 0a 3e 3e 3e 20 63 2e 73 .next().>>>.print.seq.[].>>>.c.s
9740 65 6e 64 28 31 30 29 0a 3e 3e 3e 20 70 72 69 6e 74 20 73 65 71 0a 5b 31 30 5d 0a 3e 3e 3e 20 63 end(10).>>>.print.seq.[10].>>>.c
9760 2e 73 65 6e 64 28 31 30 29 0a 3e 3e 3e 20 70 72 69 6e 74 20 73 65 71 0a 5b 31 30 2c 20 32 30 5d .send(10).>>>.print.seq.[10,.20]
9780 0a 3e 3e 3e 20 63 2e 73 65 6e 64 28 31 30 29 0a 3e 3e 3e 20 70 72 69 6e 74 20 73 65 71 0a 5b 31 .>>>.c.send(10).>>>.print.seq.[1
97a0 30 2c 20 32 30 2c 20 33 30 5d 0a 0a 0a 43 68 65 63 6b 20 73 6f 6d 65 20 73 79 6e 74 61 78 20 65 0,.20,.30]...Check.some.syntax.e
97c0 72 72 6f 72 73 20 66 6f 72 20 79 69 65 6c 64 20 65 78 70 72 65 73 73 69 6f 6e 73 3a 0a 0a 3e 3e rrors.for.yield.expressions:..>>
97e0 3e 20 66 3d 6c 61 6d 62 64 61 3a 20 28 79 69 65 6c 64 20 31 29 2c 28 79 69 65 6c 64 20 32 29 0a >.f=lambda:.(yield.1),(yield.2).
9800 54 72 61 63 65 62 61 63 6b 20 28 6d 6f 73 74 20 72 65 63 65 6e 74 20 63 61 6c 6c 20 6c 61 73 74 Traceback.(most.recent.call.last
9820 29 3a 0a 20 20 2e 2e 2e 0a 20 20 46 69 6c 65 20 22 3c 64 6f 63 74 65 73 74 20 74 65 73 74 2e 74 ):.........File."<doctest.test.t
9840 65 73 74 5f 67 65 6e 65 72 61 74 6f 72 73 2e 5f 5f 74 65 73 74 5f 5f 2e 63 6f 72 6f 75 74 69 6e est_generators.__test__.coroutin
9860 65 5b 32 31 5d 3e 22 2c 20 6c 69 6e 65 20 31 0a 53 79 6e 74 61 78 45 72 72 6f 72 3a 20 27 79 69 e[21]>",.line.1.SyntaxError:.'yi
9880 65 6c 64 27 20 6f 75 74 73 69 64 65 20 66 75 6e 63 74 69 6f 6e 0a 0a 3e 3e 3e 20 64 65 66 20 66 eld'.outside.function..>>>.def.f
98a0 28 29 3a 20 72 65 74 75 72 6e 20 6c 61 6d 62 64 61 20 78 3d 28 79 69 65 6c 64 29 3a 20 31 0a 54 ():.return.lambda.x=(yield):.1.T
98c0 72 61 63 65 62 61 63 6b 20 28 6d 6f 73 74 20 72 65 63 65 6e 74 20 63 61 6c 6c 20 6c 61 73 74 29 raceback.(most.recent.call.last)
98e0 3a 0a 20 20 2e 2e 2e 0a 53 79 6e 74 61 78 45 72 72 6f 72 3a 20 27 72 65 74 75 72 6e 27 20 77 69 :.......SyntaxError:.'return'.wi
9900 74 68 20 61 72 67 75 6d 65 6e 74 20 69 6e 73 69 64 65 20 67 65 6e 65 72 61 74 6f 72 20 28 3c 64 th.argument.inside.generator.(<d
9920 6f 63 74 65 73 74 20 74 65 73 74 2e 74 65 73 74 5f 67 65 6e 65 72 61 74 6f 72 73 2e 5f 5f 74 65 octest.test.test_generators.__te
9940 73 74 5f 5f 2e 63 6f 72 6f 75 74 69 6e 65 5b 32 32 5d 3e 2c 20 6c 69 6e 65 20 31 29 0a 0a 3e 3e st__.coroutine[22]>,.line.1)..>>
9960 3e 20 64 65 66 20 66 28 29 3a 20 78 20 3d 20 79 69 65 6c 64 20 3d 20 79 0a 54 72 61 63 65 62 61 >.def.f():.x.=.yield.=.y.Traceba
9980 63 6b 20 28 6d 6f 73 74 20 72 65 63 65 6e 74 20 63 61 6c 6c 20 6c 61 73 74 29 3a 0a 20 20 2e 2e ck.(most.recent.call.last):.....
99a0 2e 0a 20 20 46 69 6c 65 20 22 3c 64 6f 63 74 65 73 74 20 74 65 73 74 2e 74 65 73 74 5f 67 65 6e ....File."<doctest.test.test_gen
99c0 65 72 61 74 6f 72 73 2e 5f 5f 74 65 73 74 5f 5f 2e 63 6f 72 6f 75 74 69 6e 65 5b 32 33 5d 3e 22 erators.__test__.coroutine[23]>"
99e0 2c 20 6c 69 6e 65 20 31 0a 53 79 6e 74 61 78 45 72 72 6f 72 3a 20 61 73 73 69 67 6e 6d 65 6e 74 ,.line.1.SyntaxError:.assignment
9a00 20 74 6f 20 79 69 65 6c 64 20 65 78 70 72 65 73 73 69 6f 6e 20 6e 6f 74 20 70 6f 73 73 69 62 6c .to.yield.expression.not.possibl
9a20 65 0a 0a 3e 3e 3e 20 64 65 66 20 66 28 29 3a 20 28 79 69 65 6c 64 20 62 61 72 29 20 3d 20 79 0a e..>>>.def.f():.(yield.bar).=.y.
9a40 54 72 61 63 65 62 61 63 6b 20 28 6d 6f 73 74 20 72 65 63 65 6e 74 20 63 61 6c 6c 20 6c 61 73 74 Traceback.(most.recent.call.last
9a60 29 3a 0a 20 20 2e 2e 2e 0a 20 20 46 69 6c 65 20 22 3c 64 6f 63 74 65 73 74 20 74 65 73 74 2e 74 ):.........File."<doctest.test.t
9a80 65 73 74 5f 67 65 6e 65 72 61 74 6f 72 73 2e 5f 5f 74 65 73 74 5f 5f 2e 63 6f 72 6f 75 74 69 6e est_generators.__test__.coroutin
9aa0 65 5b 32 34 5d 3e 22 2c 20 6c 69 6e 65 20 31 0a 53 79 6e 74 61 78 45 72 72 6f 72 3a 20 63 61 6e e[24]>",.line.1.SyntaxError:.can
9ac0 27 74 20 61 73 73 69 67 6e 20 74 6f 20 79 69 65 6c 64 20 65 78 70 72 65 73 73 69 6f 6e 0a 0a 3e 't.assign.to.yield.expression..>
9ae0 3e 3e 20 64 65 66 20 66 28 29 3a 20 28 79 69 65 6c 64 20 62 61 72 29 20 2b 3d 20 79 0a 54 72 61 >>.def.f():.(yield.bar).+=.y.Tra
9b00 63 65 62 61 63 6b 20 28 6d 6f 73 74 20 72 65 63 65 6e 74 20 63 61 6c 6c 20 6c 61 73 74 29 3a 0a ceback.(most.recent.call.last):.
9b20 20 20 2e 2e 2e 0a 20 20 46 69 6c 65 20 22 3c 64 6f 63 74 65 73 74 20 74 65 73 74 2e 74 65 73 74 ........File."<doctest.test.test
9b40 5f 67 65 6e 65 72 61 74 6f 72 73 2e 5f 5f 74 65 73 74 5f 5f 2e 63 6f 72 6f 75 74 69 6e 65 5b 32 _generators.__test__.coroutine[2
9b60 35 5d 3e 22 2c 20 6c 69 6e 65 20 31 0a 53 79 6e 74 61 78 45 72 72 6f 72 3a 20 63 61 6e 27 74 20 5]>",.line.1.SyntaxError:.can't.
9b80 61 73 73 69 67 6e 20 74 6f 20 79 69 65 6c 64 20 65 78 70 72 65 73 73 69 6f 6e 0a 0a 0a 4e 6f 77 assign.to.yield.expression...Now
9ba0 20 63 68 65 63 6b 20 73 6f 6d 65 20 74 68 72 6f 77 28 29 20 63 6f 6e 64 69 74 69 6f 6e 73 3a 0a .check.some.throw().conditions:.
9bc0 0a 3e 3e 3e 20 64 65 66 20 66 28 29 3a 0a 2e 2e 2e 20 20 20 20 20 77 68 69 6c 65 20 54 72 75 65 .>>>.def.f():.........while.True
9be0 3a 0a 2e 2e 2e 20 20 20 20 20 20 20 20 20 74 72 79 3a 0a 2e 2e 2e 20 20 20 20 20 20 20 20 20 20 :.............try:..............
9c00 20 20 20 70 72 69 6e 74 20 28 79 69 65 6c 64 29 0a 2e 2e 2e 20 20 20 20 20 20 20 20 20 65 78 63 ...print.(yield).............exc
9c20 65 70 74 20 56 61 6c 75 65 45 72 72 6f 72 2c 76 3a 0a 2e 2e 2e 20 20 20 20 20 20 20 20 20 20 20 ept.ValueError,v:...............
9c40 20 20 70 72 69 6e 74 20 22 63 61 75 67 68 74 20 56 61 6c 75 65 45 72 72 6f 72 20 28 25 73 29 22 ..print."caught.ValueError.(%s)"
9c60 20 25 20 28 76 29 2c 0a 3e 3e 3e 20 69 6d 70 6f 72 74 20 73 79 73 0a 3e 3e 3e 20 67 20 3d 20 66 .%.(v),.>>>.import.sys.>>>.g.=.f
9c80 28 29 0a 3e 3e 3e 20 67 2e 6e 65 78 74 28 29 0a 0a 3e 3e 3e 20 67 2e 74 68 72 6f 77 28 56 61 6c ().>>>.g.next()..>>>.g.throw(Val
9ca0 75 65 45 72 72 6f 72 29 20 23 20 74 79 70 65 20 6f 6e 6c 79 0a 63 61 75 67 68 74 20 56 61 6c 75 ueError).#.type.only.caught.Valu
9cc0 65 45 72 72 6f 72 20 28 29 0a 0a 3e 3e 3e 20 67 2e 74 68 72 6f 77 28 56 61 6c 75 65 45 72 72 6f eError.()..>>>.g.throw(ValueErro
9ce0 72 28 22 78 79 7a 22 29 29 20 20 23 20 76 61 6c 75 65 20 6f 6e 6c 79 0a 63 61 75 67 68 74 20 56 r("xyz"))..#.value.only.caught.V
9d00 61 6c 75 65 45 72 72 6f 72 20 28 78 79 7a 29 0a 0a 3e 3e 3e 20 67 2e 74 68 72 6f 77 28 56 61 6c alueError.(xyz)..>>>.g.throw(Val
9d20 75 65 45 72 72 6f 72 2c 20 56 61 6c 75 65 45 72 72 6f 72 28 31 29 29 20 20 20 23 20 76 61 6c 75 ueError,.ValueError(1))...#.valu
9d40 65 2b 6d 61 74 63 68 69 6e 67 20 74 79 70 65 0a 63 61 75 67 68 74 20 56 61 6c 75 65 45 72 72 6f e+matching.type.caught.ValueErro
9d60 72 20 28 31 29 0a 0a 3e 3e 3e 20 67 2e 74 68 72 6f 77 28 56 61 6c 75 65 45 72 72 6f 72 2c 20 54 r.(1)..>>>.g.throw(ValueError,.T
9d80 79 70 65 45 72 72 6f 72 28 31 29 29 20 20 23 20 6d 69 73 6d 61 74 63 68 65 64 20 74 79 70 65 2c ypeError(1))..#.mismatched.type,
9da0 20 72 65 77 72 61 70 70 65 64 0a 63 61 75 67 68 74 20 56 61 6c 75 65 45 72 72 6f 72 20 28 31 29 .rewrapped.caught.ValueError.(1)
9dc0 0a 0a 3e 3e 3e 20 67 2e 74 68 72 6f 77 28 56 61 6c 75 65 45 72 72 6f 72 2c 20 56 61 6c 75 65 45 ..>>>.g.throw(ValueError,.ValueE
9de0 72 72 6f 72 28 31 29 2c 20 4e 6f 6e 65 29 20 20 20 23 20 65 78 70 6c 69 63 69 74 20 4e 6f 6e 65 rror(1),.None)...#.explicit.None
9e00 20 74 72 61 63 65 62 61 63 6b 0a 63 61 75 67 68 74 20 56 61 6c 75 65 45 72 72 6f 72 20 28 31 29 .traceback.caught.ValueError.(1)
9e20 0a 0a 3e 3e 3e 20 67 2e 74 68 72 6f 77 28 56 61 6c 75 65 45 72 72 6f 72 28 31 29 2c 20 22 66 6f ..>>>.g.throw(ValueError(1),."fo
9e40 6f 22 29 20 20 20 20 20 20 20 23 20 62 61 64 20 61 72 67 73 0a 54 72 61 63 65 62 61 63 6b 20 28 o").......#.bad.args.Traceback.(
9e60 6d 6f 73 74 20 72 65 63 65 6e 74 20 63 61 6c 6c 20 6c 61 73 74 29 3a 0a 20 20 2e 2e 2e 0a 54 79 most.recent.call.last):.......Ty
9e80 70 65 45 72 72 6f 72 3a 20 69 6e 73 74 61 6e 63 65 20 65 78 63 65 70 74 69 6f 6e 20 6d 61 79 20 peError:.instance.exception.may.
9ea0 6e 6f 74 20 68 61 76 65 20 61 20 73 65 70 61 72 61 74 65 20 76 61 6c 75 65 0a 0a 3e 3e 3e 20 67 not.have.a.separate.value..>>>.g
9ec0 2e 74 68 72 6f 77 28 56 61 6c 75 65 45 72 72 6f 72 2c 20 22 66 6f 6f 22 2c 20 32 33 29 20 20 20 .throw(ValueError,."foo",.23)...
9ee0 20 20 20 23 20 62 61 64 20 61 72 67 73 0a 54 72 61 63 65 62 61 63 6b 20 28 6d 6f 73 74 20 72 65 ...#.bad.args.Traceback.(most.re
9f00 63 65 6e 74 20 63 61 6c 6c 20 6c 61 73 74 29 3a 0a 20 20 2e 2e 2e 0a 54 79 70 65 45 72 72 6f 72 cent.call.last):.......TypeError
9f20 3a 20 74 68 72 6f 77 28 29 20 74 68 69 72 64 20 61 72 67 75 6d 65 6e 74 20 6d 75 73 74 20 62 65 :.throw().third.argument.must.be
9f40 20 61 20 74 72 61 63 65 62 61 63 6b 20 6f 62 6a 65 63 74 0a 0a 3e 3e 3e 20 64 65 66 20 74 68 72 .a.traceback.object..>>>.def.thr
9f60 6f 77 28 67 2c 65 78 63 29 3a 0a 2e 2e 2e 20 20 20 20 20 74 72 79 3a 0a 2e 2e 2e 20 20 20 20 20 ow(g,exc):.........try:.........
9f80 20 20 20 20 72 61 69 73 65 20 65 78 63 0a 2e 2e 2e 20 20 20 20 20 65 78 63 65 70 74 3a 0a 2e 2e ....raise.exc.........except:...
9fa0 2e 20 20 20 20 20 20 20 20 20 67 2e 74 68 72 6f 77 28 2a 73 79 73 2e 65 78 63 5f 69 6e 66 6f 28 ..........g.throw(*sys.exc_info(
9fc0 29 29 0a 3e 3e 3e 20 74 68 72 6f 77 28 67 2c 56 61 6c 75 65 45 72 72 6f 72 29 20 23 20 64 6f 20 )).>>>.throw(g,ValueError).#.do.
9fe0 69 74 20 77 69 74 68 20 74 72 61 63 65 62 61 63 6b 20 69 6e 63 6c 75 64 65 64 0a 63 61 75 67 68 it.with.traceback.included.caugh
a000 74 20 56 61 6c 75 65 45 72 72 6f 72 20 28 29 0a 0a 3e 3e 3e 20 67 2e 73 65 6e 64 28 31 29 0a 31 t.ValueError.()..>>>.g.send(1).1
a020 0a 0a 3e 3e 3e 20 74 68 72 6f 77 28 67 2c 54 79 70 65 45 72 72 6f 72 29 20 20 23 20 74 65 72 6d ..>>>.throw(g,TypeError)..#.term
a040 69 6e 61 74 65 20 74 68 65 20 67 65 6e 65 72 61 74 6f 72 0a 54 72 61 63 65 62 61 63 6b 20 28 6d inate.the.generator.Traceback.(m
a060 6f 73 74 20 72 65 63 65 6e 74 20 63 61 6c 6c 20 6c 61 73 74 29 3a 0a 20 20 2e 2e 2e 0a 54 79 70 ost.recent.call.last):.......Typ
a080 65 45 72 72 6f 72 0a 0a 3e 3e 3e 20 70 72 69 6e 74 20 67 2e 67 69 5f 66 72 61 6d 65 0a 4e 6f 6e eError..>>>.print.g.gi_frame.Non
a0a0 65 0a 0a 3e 3e 3e 20 67 2e 73 65 6e 64 28 32 29 0a 54 72 61 63 65 62 61 63 6b 20 28 6d 6f 73 74 e..>>>.g.send(2).Traceback.(most
a0c0 20 72 65 63 65 6e 74 20 63 61 6c 6c 20 6c 61 73 74 29 3a 0a 20 20 2e 2e 2e 0a 53 74 6f 70 49 74 .recent.call.last):.......StopIt
a0e0 65 72 61 74 69 6f 6e 0a 0a 3e 3e 3e 20 67 2e 74 68 72 6f 77 28 56 61 6c 75 65 45 72 72 6f 72 2c eration..>>>.g.throw(ValueError,
a100 36 29 20 20 20 20 20 20 20 23 20 74 68 72 6f 77 20 6f 6e 20 63 6c 6f 73 65 64 20 67 65 6e 65 72 6).......#.throw.on.closed.gener
a120 61 74 6f 72 0a 54 72 61 63 65 62 61 63 6b 20 28 6d 6f 73 74 20 72 65 63 65 6e 74 20 63 61 6c 6c ator.Traceback.(most.recent.call
a140 20 6c 61 73 74 29 3a 0a 20 20 2e 2e 2e 0a 56 61 6c 75 65 45 72 72 6f 72 3a 20 36 0a 0a 3e 3e 3e .last):.......ValueError:.6..>>>
a160 20 66 28 29 2e 74 68 72 6f 77 28 56 61 6c 75 65 45 72 72 6f 72 2c 37 29 20 20 20 20 20 23 20 74 .f().throw(ValueError,7).....#.t
a180 68 72 6f 77 20 6f 6e 20 6a 75 73 74 2d 6f 70 65 6e 65 64 20 67 65 6e 65 72 61 74 6f 72 0a 54 72 hrow.on.just-opened.generator.Tr
a1a0 61 63 65 62 61 63 6b 20 28 6d 6f 73 74 20 72 65 63 65 6e 74 20 63 61 6c 6c 20 6c 61 73 74 29 3a aceback.(most.recent.call.last):
a1c0 0a 20 20 2e 2e 2e 0a 56 61 6c 75 65 45 72 72 6f 72 3a 20 37 0a 0a 3e 3e 3e 20 66 28 29 2e 74 68 .......ValueError:.7..>>>.f().th
a1e0 72 6f 77 28 22 61 62 63 22 29 20 20 20 20 20 23 20 74 68 72 6f 77 20 6f 6e 20 6a 75 73 74 2d 6f row("abc").....#.throw.on.just-o
a200 70 65 6e 65 64 20 67 65 6e 65 72 61 74 6f 72 0a 54 72 61 63 65 62 61 63 6b 20 28 6d 6f 73 74 20 pened.generator.Traceback.(most.
a220 72 65 63 65 6e 74 20 63 61 6c 6c 20 6c 61 73 74 29 3a 0a 20 20 2e 2e 2e 0a 54 79 70 65 45 72 72 recent.call.last):.......TypeErr
a240 6f 72 3a 20 65 78 63 65 70 74 69 6f 6e 73 20 6d 75 73 74 20 62 65 20 63 6c 61 73 73 65 73 2c 20 or:.exceptions.must.be.classes,.
a260 6f 72 20 69 6e 73 74 61 6e 63 65 73 2c 20 6e 6f 74 20 73 74 72 0a 0a 4e 6f 77 20 6c 65 74 27 73 or.instances,.not.str..Now.let's
a280 20 74 72 79 20 63 6c 6f 73 69 6e 67 20 61 20 67 65 6e 65 72 61 74 6f 72 3a 0a 0a 3e 3e 3e 20 64 .try.closing.a.generator:..>>>.d
a2a0 65 66 20 66 28 29 3a 0a 2e 2e 2e 20 20 20 20 20 74 72 79 3a 20 79 69 65 6c 64 0a 2e 2e 2e 20 20 ef.f():.........try:.yield......
a2c0 20 20 20 65 78 63 65 70 74 20 47 65 6e 65 72 61 74 6f 72 45 78 69 74 3a 0a 2e 2e 2e 20 20 20 20 ...except.GeneratorExit:........
a2e0 20 20 20 20 20 70 72 69 6e 74 20 22 65 78 69 74 69 6e 67 22 0a 0a 3e 3e 3e 20 67 20 3d 20 66 28 .....print."exiting"..>>>.g.=.f(
a300 29 0a 3e 3e 3e 20 67 2e 6e 65 78 74 28 29 0a 3e 3e 3e 20 67 2e 63 6c 6f 73 65 28 29 0a 65 78 69 ).>>>.g.next().>>>.g.close().exi
a320 74 69 6e 67 0a 3e 3e 3e 20 67 2e 63 6c 6f 73 65 28 29 20 20 23 20 73 68 6f 75 6c 64 20 62 65 20 ting.>>>.g.close()..#.should.be.
a340 6e 6f 2d 6f 70 20 6e 6f 77 0a 0a 3e 3e 3e 20 66 28 29 2e 63 6c 6f 73 65 28 29 20 20 23 20 63 6c no-op.now..>>>.f().close()..#.cl
a360 6f 73 65 20 6f 6e 20 6a 75 73 74 2d 6f 70 65 6e 65 64 20 67 65 6e 65 72 61 74 6f 72 20 73 68 6f ose.on.just-opened.generator.sho
a380 75 6c 64 20 62 65 20 66 69 6e 65 0a 0a 3e 3e 3e 20 64 65 66 20 66 28 29 3a 20 79 69 65 6c 64 20 uld.be.fine..>>>.def.f():.yield.
a3a0 20 20 20 20 20 23 20 61 6e 20 65 76 65 6e 20 73 69 6d 70 6c 65 72 20 67 65 6e 65 72 61 74 6f 72 .....#.an.even.simpler.generator
a3c0 0a 3e 3e 3e 20 66 28 29 2e 63 6c 6f 73 65 28 29 20 20 20 20 20 20 20 20 20 23 20 63 6c 6f 73 65 .>>>.f().close().........#.close
a3e0 20 62 65 66 6f 72 65 20 6f 70 65 6e 69 6e 67 0a 3e 3e 3e 20 67 20 3d 20 66 28 29 0a 3e 3e 3e 20 .before.opening.>>>.g.=.f().>>>.
a400 67 2e 6e 65 78 74 28 29 0a 3e 3e 3e 20 67 2e 63 6c 6f 73 65 28 29 20 20 20 20 20 20 20 20 20 20 g.next().>>>.g.close()..........
a420 20 23 20 63 6c 6f 73 65 20 6e 6f 72 6d 61 6c 6c 79 0a 0a 41 6e 64 20 66 69 6e 61 6c 69 7a 61 74 .#.close.normally..And.finalizat
a440 69 6f 6e 3a 0a 0a 3e 3e 3e 20 64 65 66 20 66 28 29 3a 0a 2e 2e 2e 20 20 20 20 20 74 72 79 3a 20 ion:..>>>.def.f():.........try:.
a460 79 69 65 6c 64 0a 2e 2e 2e 20 20 20 20 20 66 69 6e 61 6c 6c 79 3a 0a 2e 2e 2e 20 20 20 20 20 20 yield.........finally:..........
a480 20 20 20 70 72 69 6e 74 20 22 65 78 69 74 69 6e 67 22 0a 0a 3e 3e 3e 20 67 20 3d 20 66 28 29 0a ...print."exiting"..>>>.g.=.f().
a4a0 3e 3e 3e 20 67 2e 6e 65 78 74 28 29 0a 3e 3e 3e 20 64 65 6c 20 67 0a 65 78 69 74 69 6e 67 0a 0a >>>.g.next().>>>.del.g.exiting..
a4c0 3e 3e 3e 20 63 6c 61 73 73 20 63 6f 6e 74 65 78 74 28 6f 62 6a 65 63 74 29 3a 0a 2e 2e 2e 20 20 >>>.class.context(object):......
a4e0 20 20 64 65 66 20 5f 5f 65 6e 74 65 72 5f 5f 28 73 65 6c 66 29 3a 20 70 61 73 73 0a 2e 2e 2e 20 ..def.__enter__(self):.pass.....
a500 20 20 20 64 65 66 20 5f 5f 65 78 69 74 5f 5f 28 73 65 6c 66 2c 20 2a 61 72 67 73 29 3a 20 70 72 ...def.__exit__(self,.*args):.pr
a520 69 6e 74 20 27 65 78 69 74 69 6e 67 27 0a 3e 3e 3e 20 64 65 66 20 66 28 29 3a 0a 2e 2e 2e 20 20 int.'exiting'.>>>.def.f():......
a540 20 20 20 77 69 74 68 20 63 6f 6e 74 65 78 74 28 29 3a 0a 2e 2e 2e 20 20 20 20 20 20 20 20 20 20 ...with.context():..............
a560 79 69 65 6c 64 0a 3e 3e 3e 20 67 20 3d 20 66 28 29 0a 3e 3e 3e 20 67 2e 6e 65 78 74 28 29 0a 3e yield.>>>.g.=.f().>>>.g.next().>
a580 3e 3e 20 64 65 6c 20 67 0a 65 78 69 74 69 6e 67 0a 0a 0a 47 65 6e 65 72 61 74 6f 72 45 78 69 74 >>.del.g.exiting...GeneratorExit
a5a0 20 69 73 20 6e 6f 74 20 63 61 75 67 68 74 20 62 79 20 65 78 63 65 70 74 20 45 78 63 65 70 74 69 .is.not.caught.by.except.Excepti
a5c0 6f 6e 3a 0a 0a 3e 3e 3e 20 64 65 66 20 66 28 29 3a 0a 2e 2e 2e 20 20 20 20 20 74 72 79 3a 20 79 on:..>>>.def.f():.........try:.y
a5e0 69 65 6c 64 0a 2e 2e 2e 20 20 20 20 20 65 78 63 65 70 74 20 45 78 63 65 70 74 69 6f 6e 3a 20 70 ield.........except.Exception:.p
a600 72 69 6e 74 20 27 65 78 63 65 70 74 27 0a 2e 2e 2e 20 20 20 20 20 66 69 6e 61 6c 6c 79 3a 20 70 rint.'except'.........finally:.p
a620 72 69 6e 74 20 27 66 69 6e 61 6c 6c 79 27 0a 0a 3e 3e 3e 20 67 20 3d 20 66 28 29 0a 3e 3e 3e 20 rint.'finally'..>>>.g.=.f().>>>.
a640 67 2e 6e 65 78 74 28 29 0a 3e 3e 3e 20 64 65 6c 20 67 0a 66 69 6e 61 6c 6c 79 0a 0a 0a 4e 6f 77 g.next().>>>.del.g.finally...Now
a660 20 6c 65 74 27 73 20 74 72 79 20 73 6f 6d 65 20 69 6c 6c 2d 62 65 68 61 76 65 64 20 67 65 6e 65 .let's.try.some.ill-behaved.gene
a680 72 61 74 6f 72 73 3a 0a 0a 3e 3e 3e 20 64 65 66 20 66 28 29 3a 0a 2e 2e 2e 20 20 20 20 20 74 72 rators:..>>>.def.f():.........tr
a6a0 79 3a 20 79 69 65 6c 64 0a 2e 2e 2e 20 20 20 20 20 65 78 63 65 70 74 20 47 65 6e 65 72 61 74 6f y:.yield.........except.Generato
a6c0 72 45 78 69 74 3a 0a 2e 2e 2e 20 20 20 20 20 20 20 20 20 79 69 65 6c 64 20 22 66 6f 6f 21 22 0a rExit:.............yield."foo!".
a6e0 3e 3e 3e 20 67 20 3d 20 66 28 29 0a 3e 3e 3e 20 67 2e 6e 65 78 74 28 29 0a 3e 3e 3e 20 67 2e 63 >>>.g.=.f().>>>.g.next().>>>.g.c
a700 6c 6f 73 65 28 29 0a 54 72 61 63 65 62 61 63 6b 20 28 6d 6f 73 74 20 72 65 63 65 6e 74 20 63 61 lose().Traceback.(most.recent.ca
a720 6c 6c 20 6c 61 73 74 29 3a 0a 20 20 2e 2e 2e 0a 52 75 6e 74 69 6d 65 45 72 72 6f 72 3a 20 67 65 ll.last):.......RuntimeError:.ge
a740 6e 65 72 61 74 6f 72 20 69 67 6e 6f 72 65 64 20 47 65 6e 65 72 61 74 6f 72 45 78 69 74 0a 3e 3e nerator.ignored.GeneratorExit.>>
a760 3e 20 67 2e 63 6c 6f 73 65 28 29 0a 0a 0a 4f 75 72 20 69 6c 6c 2d 62 65 68 61 76 65 64 20 63 6f >.g.close()...Our.ill-behaved.co
a780 64 65 20 73 68 6f 75 6c 64 20 62 65 20 69 6e 76 6f 6b 65 64 20 64 75 72 69 6e 67 20 47 43 3a 0a de.should.be.invoked.during.GC:.
a7a0 0a 3e 3e 3e 20 69 6d 70 6f 72 74 20 73 79 73 2c 20 53 74 72 69 6e 67 49 4f 0a 3e 3e 3e 20 6f 6c .>>>.import.sys,.StringIO.>>>.ol
a7c0 64 2c 20 73 79 73 2e 73 74 64 65 72 72 20 3d 20 73 79 73 2e 73 74 64 65 72 72 2c 20 53 74 72 69 d,.sys.stderr.=.sys.stderr,.Stri
a7e0 6e 67 49 4f 2e 53 74 72 69 6e 67 49 4f 28 29 0a 3e 3e 3e 20 67 20 3d 20 66 28 29 0a 3e 3e 3e 20 ngIO.StringIO().>>>.g.=.f().>>>.
a800 67 2e 6e 65 78 74 28 29 0a 3e 3e 3e 20 64 65 6c 20 67 0a 3e 3e 3e 20 73 79 73 2e 73 74 64 65 72 g.next().>>>.del.g.>>>.sys.stder
a820 72 2e 67 65 74 76 61 6c 75 65 28 29 2e 73 74 61 72 74 73 77 69 74 68 28 0a 2e 2e 2e 20 20 20 20 r.getvalue().startswith(........
a840 20 22 45 78 63 65 70 74 69 6f 6e 20 52 75 6e 74 69 6d 65 45 72 72 6f 72 3a 20 27 67 65 6e 65 72 ."Exception.RuntimeError:.'gener
a860 61 74 6f 72 20 69 67 6e 6f 72 65 64 20 47 65 6e 65 72 61 74 6f 72 45 78 69 74 27 20 69 6e 20 22 ator.ignored.GeneratorExit'.in."
a880 0a 2e 2e 2e 20 29 0a 54 72 75 65 0a 3e 3e 3e 20 73 79 73 2e 73 74 64 65 72 72 20 3d 20 6f 6c 64 .....).True.>>>.sys.stderr.=.old
a8a0 0a 0a 0a 41 6e 64 20 65 72 72 6f 72 73 20 74 68 72 6f 77 6e 20 64 75 72 69 6e 67 20 63 6c 6f 73 ...And.errors.thrown.during.clos
a8c0 69 6e 67 20 73 68 6f 75 6c 64 20 70 72 6f 70 61 67 61 74 65 3a 0a 0a 3e 3e 3e 20 64 65 66 20 66 ing.should.propagate:..>>>.def.f
a8e0 28 29 3a 0a 2e 2e 2e 20 20 20 20 20 74 72 79 3a 20 79 69 65 6c 64 0a 2e 2e 2e 20 20 20 20 20 65 ():.........try:.yield.........e
a900 78 63 65 70 74 20 47 65 6e 65 72 61 74 6f 72 45 78 69 74 3a 0a 2e 2e 2e 20 20 20 20 20 20 20 20 xcept.GeneratorExit:............
a920 20 72 61 69 73 65 20 54 79 70 65 45 72 72 6f 72 28 22 66 69 65 21 22 29 0a 3e 3e 3e 20 67 20 3d .raise.TypeError("fie!").>>>.g.=
a940 20 66 28 29 0a 3e 3e 3e 20 67 2e 6e 65 78 74 28 29 0a 3e 3e 3e 20 67 2e 63 6c 6f 73 65 28 29 0a .f().>>>.g.next().>>>.g.close().
a960 54 72 61 63 65 62 61 63 6b 20 28 6d 6f 73 74 20 72 65 63 65 6e 74 20 63 61 6c 6c 20 6c 61 73 74 Traceback.(most.recent.call.last
a980 29 3a 0a 20 20 2e 2e 2e 0a 54 79 70 65 45 72 72 6f 72 3a 20 66 69 65 21 0a 0a 0a 45 6e 73 75 72 ):.......TypeError:.fie!...Ensur
a9a0 65 20 74 68 61 74 20 76 61 72 69 6f 75 73 20 79 69 65 6c 64 20 65 78 70 72 65 73 73 69 6f 6e 20 e.that.various.yield.expression.
a9c0 63 6f 6e 73 74 72 75 63 74 73 20 6d 61 6b 65 20 74 68 65 69 72 0a 65 6e 63 6c 6f 73 69 6e 67 20 constructs.make.their.enclosing.
a9e0 66 75 6e 63 74 69 6f 6e 20 61 20 67 65 6e 65 72 61 74 6f 72 3a 0a 0a 3e 3e 3e 20 64 65 66 20 66 function.a.generator:..>>>.def.f
aa00 28 29 3a 20 78 20 2b 3d 20 79 69 65 6c 64 0a 3e 3e 3e 20 74 79 70 65 28 66 28 29 29 0a 3c 74 79 ():.x.+=.yield.>>>.type(f()).<ty
aa20 70 65 20 27 67 65 6e 65 72 61 74 6f 72 27 3e 0a 0a 3e 3e 3e 20 64 65 66 20 66 28 29 3a 20 78 20 pe.'generator'>..>>>.def.f():.x.
aa40 3d 20 79 69 65 6c 64 0a 3e 3e 3e 20 74 79 70 65 28 66 28 29 29 0a 3c 74 79 70 65 20 27 67 65 6e =.yield.>>>.type(f()).<type.'gen
aa60 65 72 61 74 6f 72 27 3e 0a 0a 3e 3e 3e 20 64 65 66 20 66 28 29 3a 20 6c 61 6d 62 64 61 20 78 3d erator'>..>>>.def.f():.lambda.x=
aa80 28 79 69 65 6c 64 29 3a 20 31 0a 3e 3e 3e 20 74 79 70 65 28 66 28 29 29 0a 3c 74 79 70 65 20 27 (yield):.1.>>>.type(f()).<type.'
aaa0 67 65 6e 65 72 61 74 6f 72 27 3e 0a 0a 3e 3e 3e 20 64 65 66 20 66 28 29 3a 20 78 3d 28 69 20 66 generator'>..>>>.def.f():.x=(i.f
aac0 6f 72 20 69 20 69 6e 20 28 79 69 65 6c 64 29 20 69 66 20 28 79 69 65 6c 64 29 29 0a 3e 3e 3e 20 or.i.in.(yield).if.(yield)).>>>.
aae0 74 79 70 65 28 66 28 29 29 0a 3c 74 79 70 65 20 27 67 65 6e 65 72 61 74 6f 72 27 3e 0a 0a 3e 3e type(f()).<type.'generator'>..>>
ab00 3e 20 64 65 66 20 66 28 64 29 3a 20 64 5b 28 79 69 65 6c 64 20 22 61 22 29 5d 20 3d 20 64 5b 28 >.def.f(d):.d[(yield."a")].=.d[(
ab20 79 69 65 6c 64 20 22 62 22 29 5d 20 3d 20 32 37 0a 3e 3e 3e 20 64 61 74 61 20 3d 20 5b 31 2c 32 yield."b")].=.27.>>>.data.=.[1,2
ab40 5d 0a 3e 3e 3e 20 67 20 3d 20 66 28 64 61 74 61 29 0a 3e 3e 3e 20 74 79 70 65 28 67 29 0a 3c 74 ].>>>.g.=.f(data).>>>.type(g).<t
ab60 79 70 65 20 27 67 65 6e 65 72 61 74 6f 72 27 3e 0a 3e 3e 3e 20 67 2e 73 65 6e 64 28 4e 6f 6e 65 ype.'generator'>.>>>.g.send(None
ab80 29 0a 27 61 27 0a 3e 3e 3e 20 64 61 74 61 0a 5b 31 2c 20 32 5d 0a 3e 3e 3e 20 67 2e 73 65 6e 64 ).'a'.>>>.data.[1,.2].>>>.g.send
aba0 28 30 29 0a 27 62 27 0a 3e 3e 3e 20 64 61 74 61 0a 5b 32 37 2c 20 32 5d 0a 3e 3e 3e 20 74 72 79 (0).'b'.>>>.data.[27,.2].>>>.try
abc0 3a 20 67 2e 73 65 6e 64 28 31 29 0a 2e 2e 2e 20 65 78 63 65 70 74 20 53 74 6f 70 49 74 65 72 61 :.g.send(1).....except.StopItera
abe0 74 69 6f 6e 3a 20 70 61 73 73 0a 3e 3e 3e 20 64 61 74 61 0a 5b 32 37 2c 20 32 37 5d 0a 0a 73 53 tion:.pass.>>>.data.[27,.27]..sS
ac00 07 00 00 0a 50 72 69 6f 72 20 74 6f 20 61 64 64 69 6e 67 20 63 79 63 6c 65 2d 47 43 20 73 75 70 ....Prior.to.adding.cycle-GC.sup
ac20 70 6f 72 74 20 74 6f 20 69 74 65 72 74 6f 6f 6c 73 2e 74 65 65 2c 20 74 68 69 73 20 63 6f 64 65 port.to.itertools.tee,.this.code
ac40 20 77 6f 75 6c 64 20 6c 65 61 6b 0a 72 65 66 65 72 65 6e 63 65 73 2e 20 57 65 20 61 64 64 20 69 .would.leak.references..We.add.i
ac60 74 20 74 6f 20 74 68 65 20 73 74 61 6e 64 61 72 64 20 73 75 69 74 65 20 73 6f 20 74 68 65 20 72 t.to.the.standard.suite.so.the.r
ac80 6f 75 74 69 6e 65 20 72 65 66 6c 65 61 6b 2d 74 65 73 74 73 0a 77 6f 75 6c 64 20 74 72 69 67 67 outine.refleak-tests.would.trigg
aca0 65 72 20 69 66 20 69 74 20 73 74 61 72 74 73 20 62 65 69 6e 67 20 75 6e 63 6c 65 61 6e 61 62 6c er.if.it.starts.being.uncleanabl
acc0 65 20 61 67 61 69 6e 2e 0a 0a 3e 3e 3e 20 69 6d 70 6f 72 74 20 69 74 65 72 74 6f 6f 6c 73 0a 3e e.again...>>>.import.itertools.>
ace0 3e 3e 20 64 65 66 20 6c 65 61 6b 28 29 3a 0a 2e 2e 2e 20 20 20 20 20 63 6c 61 73 73 20 67 65 6e >>.def.leak():.........class.gen
ad00 3a 0a 2e 2e 2e 20 20 20 20 20 20 20 20 20 64 65 66 20 5f 5f 69 74 65 72 5f 5f 28 73 65 6c 66 29 :.............def.__iter__(self)
ad20 3a 0a 2e 2e 2e 20 20 20 20 20 20 20 20 20 20 20 20 20 72 65 74 75 72 6e 20 73 65 6c 66 0a 2e 2e :.................return.self...
ad40 2e 20 20 20 20 20 20 20 20 20 64 65 66 20 6e 65 78 74 28 73 65 6c 66 29 3a 0a 2e 2e 2e 20 20 20 ..........def.next(self):.......
ad60 20 20 20 20 20 20 20 20 20 20 72 65 74 75 72 6e 20 73 65 6c 66 2e 69 74 65 6d 0a 2e 2e 2e 20 20 ..........return.self.item......
ad80 20 20 20 67 20 3d 20 67 65 6e 28 29 0a 2e 2e 2e 20 20 20 20 20 68 65 61 64 2c 20 74 61 69 6c 20 ...g.=.gen().........head,.tail.
ada0 3d 20 69 74 65 72 74 6f 6f 6c 73 2e 74 65 65 28 67 29 0a 2e 2e 2e 20 20 20 20 20 67 2e 69 74 65 =.itertools.tee(g).........g.ite
adc0 6d 20 3d 20 68 65 61 64 0a 2e 2e 2e 20 20 20 20 20 72 65 74 75 72 6e 20 68 65 61 64 0a 3e 3e 3e m.=.head.........return.head.>>>
ade0 20 69 74 20 3d 20 6c 65 61 6b 28 29 0a 0a 4d 61 6b 65 20 73 75 72 65 20 74 6f 20 61 6c 73 6f 20 .it.=.leak()..Make.sure.to.also.
ae00 74 65 73 74 20 74 68 65 20 69 6e 76 6f 6c 76 65 6d 65 6e 74 20 6f 66 20 74 68 65 20 74 65 65 2d test.the.involvement.of.the.tee-
ae20 69 6e 74 65 72 6e 61 6c 20 74 65 65 64 61 74 61 6f 62 6a 65 63 74 2c 0a 77 68 69 63 68 20 73 74 internal.teedataobject,.which.st
ae40 6f 72 65 73 20 72 65 74 75 72 6e 65 64 20 69 74 65 6d 73 2e 0a 0a 3e 3e 3e 20 69 74 65 6d 20 3d ores.returned.items...>>>.item.=
ae60 20 69 74 2e 6e 65 78 74 28 29 0a 0a 0a 0a 54 68 69 73 20 74 65 73 74 20 6c 65 61 6b 65 64 20 61 .it.next()....This.test.leaked.a
ae80 74 20 6f 6e 65 20 70 6f 69 6e 74 20 64 75 65 20 74 6f 20 67 65 6e 65 72 61 74 6f 72 20 66 69 6e t.one.point.due.to.generator.fin
aea0 61 6c 69 7a 61 74 69 6f 6e 2f 64 65 73 74 72 75 63 74 69 6f 6e 2e 0a 49 74 20 77 61 73 20 63 6f alization/destruction..It.was.co
aec0 70 69 65 64 20 66 72 6f 6d 20 4c 69 62 2f 74 65 73 74 2f 6c 65 61 6b 65 72 73 2f 74 65 73 74 5f pied.from.Lib/test/leakers/test_
aee0 67 65 6e 65 72 61 74 6f 72 5f 63 79 63 6c 65 2e 70 79 20 62 65 66 6f 72 65 20 74 68 65 20 66 69 generator_cycle.py.before.the.fi
af00 6c 65 0a 77 61 73 20 72 65 6d 6f 76 65 64 2e 0a 0a 3e 3e 3e 20 64 65 66 20 6c 65 61 6b 28 29 3a le.was.removed...>>>.def.leak():
af20 0a 2e 2e 2e 20 20 20 20 64 65 66 20 67 65 6e 28 29 3a 0a 2e 2e 2e 20 20 20 20 20 20 20 20 77 68 ........def.gen():............wh
af40 69 6c 65 20 54 72 75 65 3a 0a 2e 2e 2e 20 20 20 20 20 20 20 20 20 20 20 20 79 69 65 6c 64 20 67 ile.True:................yield.g
af60 0a 2e 2e 2e 20 20 20 20 67 20 3d 20 67 65 6e 28 29 0a 0a 3e 3e 3e 20 6c 65 61 6b 28 29 0a 0a 0a ........g.=.gen()..>>>.leak()...
af80 0a 54 68 69 73 20 74 65 73 74 20 69 73 6e 27 74 20 72 65 61 6c 6c 79 20 67 65 6e 65 72 61 74 6f .This.test.isn't.really.generato
afa0 72 20 72 65 6c 61 74 65 64 2c 20 62 75 74 20 72 61 74 68 65 72 20 65 78 63 65 70 74 69 6f 6e 2d r.related,.but.rather.exception-
afc0 69 6e 2d 63 6c 65 61 6e 75 70 0a 72 65 6c 61 74 65 64 2e 20 54 68 65 20 63 6f 72 6f 75 74 69 6e in-cleanup.related..The.coroutin
afe0 65 20 74 65 73 74 73 20 28 61 62 6f 76 65 29 20 6a 75 73 74 20 68 61 70 70 65 6e 20 74 6f 20 63 e.tests.(above).just.happen.to.c
b000 61 75 73 65 20 61 6e 20 65 78 63 65 70 74 69 6f 6e 20 69 6e 0a 74 68 65 20 67 65 6e 65 72 61 74 ause.an.exception.in.the.generat
b020 6f 72 27 73 20 5f 5f 64 65 6c 5f 5f 20 28 74 70 5f 64 65 6c 29 20 6d 65 74 68 6f 64 2e 20 57 65 or's.__del__.(tp_del).method..We
b040 20 63 61 6e 20 61 6c 73 6f 20 74 65 73 74 20 66 6f 72 20 74 68 69 73 0a 65 78 70 6c 69 63 69 74 .can.also.test.for.this.explicit
b060 6c 79 2c 20 77 69 74 68 6f 75 74 20 67 65 6e 65 72 61 74 6f 72 73 2e 20 57 65 20 64 6f 20 68 61 ly,.without.generators..We.do.ha
b080 76 65 20 74 6f 20 72 65 64 69 72 65 63 74 20 73 74 64 65 72 72 20 74 6f 20 61 76 6f 69 64 0a 70 ve.to.redirect.stderr.to.avoid.p
b0a0 72 69 6e 74 69 6e 67 20 77 61 72 6e 69 6e 67 73 20 61 6e 64 20 74 6f 20 64 6f 75 62 6c 65 63 68 rinting.warnings.and.to.doublech
b0c0 65 63 6b 20 74 68 61 74 20 77 65 20 61 63 74 75 61 6c 6c 79 20 74 65 73 74 65 64 20 77 68 61 74 eck.that.we.actually.tested.what
b0e0 20 77 65 20 77 61 6e 74 65 64 0a 74 6f 20 74 65 73 74 2e 0a 0a 3e 3e 3e 20 69 6d 70 6f 72 74 20 .we.wanted.to.test...>>>.import.
b100 73 79 73 2c 20 53 74 72 69 6e 67 49 4f 0a 3e 3e 3e 20 6f 6c 64 20 3d 20 73 79 73 2e 73 74 64 65 sys,.StringIO.>>>.old.=.sys.stde
b120 72 72 0a 3e 3e 3e 20 74 72 79 3a 0a 2e 2e 2e 20 20 20 20 20 73 79 73 2e 73 74 64 65 72 72 20 3d rr.>>>.try:.........sys.stderr.=
b140 20 53 74 72 69 6e 67 49 4f 2e 53 74 72 69 6e 67 49 4f 28 29 0a 2e 2e 2e 20 20 20 20 20 63 6c 61 .StringIO.StringIO().........cla
b160 73 73 20 4c 65 61 6b 65 72 3a 0a 2e 2e 2e 20 20 20 20 20 20 20 20 20 64 65 66 20 5f 5f 64 65 6c ss.Leaker:.............def.__del
b180 5f 5f 28 73 65 6c 66 29 3a 0a 2e 2e 2e 20 20 20 20 20 20 20 20 20 20 20 20 20 72 61 69 73 65 20 __(self):.................raise.
b1a0 52 75 6e 74 69 6d 65 45 72 72 6f 72 0a 2e 2e 2e 0a 2e 2e 2e 20 20 20 20 20 6c 20 3d 20 4c 65 61 RuntimeError.............l.=.Lea
b1c0 6b 65 72 28 29 0a 2e 2e 2e 20 20 20 20 20 64 65 6c 20 6c 0a 2e 2e 2e 20 20 20 20 20 65 72 72 20 ker().........del.l.........err.
b1e0 3d 20 73 79 73 2e 73 74 64 65 72 72 2e 67 65 74 76 61 6c 75 65 28 29 2e 73 74 72 69 70 28 29 0a =.sys.stderr.getvalue().strip().
b200 2e 2e 2e 20 20 20 20 20 65 72 72 2e 73 74 61 72 74 73 77 69 74 68 28 0a 2e 2e 2e 20 20 20 20 20 ........err.startswith(.........
b220 20 20 20 20 22 45 78 63 65 70 74 69 6f 6e 20 52 75 6e 74 69 6d 65 45 72 72 6f 72 3a 20 52 75 6e ...."Exception.RuntimeError:.Run
b240 74 69 6d 65 45 72 72 6f 72 28 29 20 69 6e 20 3c 22 0a 2e 2e 2e 20 20 20 20 20 29 0a 2e 2e 2e 20 timeError().in.<".........).....
b260 20 20 20 20 65 72 72 2e 65 6e 64 73 77 69 74 68 28 22 3e 20 69 67 6e 6f 72 65 64 22 29 0a 2e 2e ....err.endswith(">.ignored")...
b280 2e 20 20 20 20 20 6c 65 6e 28 65 72 72 2e 73 70 6c 69 74 6c 69 6e 65 73 28 29 29 0a 2e 2e 2e 20 ......len(err.splitlines()).....
b2a0 66 69 6e 61 6c 6c 79 3a 0a 2e 2e 2e 20 20 20 20 20 73 79 73 2e 73 74 64 65 72 72 20 3d 20 6f 6c finally:.........sys.stderr.=.ol
b2c0 64 0a 54 72 75 65 0a 54 72 75 65 0a 31 0a 0a 0a 0a 54 68 65 73 65 20 72 65 66 6c 65 61 6b 20 74 d.True.True.1....These.refleak.t
b2e0 65 73 74 73 20 73 68 6f 75 6c 64 20 70 65 72 68 61 70 73 20 62 65 20 69 6e 20 61 20 74 65 73 74 ests.should.perhaps.be.in.a.test
b300 66 69 6c 65 20 6f 66 20 74 68 65 69 72 20 6f 77 6e 2c 0a 74 65 73 74 5f 67 65 6e 65 72 61 74 6f file.of.their.own,.test_generato
b320 72 73 20 6a 75 73 74 20 68 61 70 70 65 6e 65 64 20 74 6f 20 62 65 20 74 68 65 20 74 65 73 74 20 rs.just.happened.to.be.the.test.
b340 74 68 61 74 20 64 72 65 77 20 74 68 65 73 65 20 6f 75 74 2e 0a 0a 74 03 00 00 00 74 75 74 74 03 that.drew.these.out...t....tutt.
b360 00 00 00 70 65 70 74 05 00 00 00 65 6d 61 69 6c 74 03 00 00 00 66 75 6e 74 06 00 00 00 73 79 6e ...pept....emailt....funt....syn
b380 74 61 78 52 10 00 00 00 74 07 00 00 00 77 65 61 6b 72 65 66 74 09 00 00 00 63 6f 72 6f 75 74 69 taxR....t....weakreft....corouti
b3a0 6e 65 74 08 00 00 00 72 65 66 6c 65 61 6b 73 63 01 00 00 00 03 00 00 00 03 00 00 00 43 00 00 00 net....refleaksc............C...
b3c0 73 2a 00 00 00 64 01 00 64 02 00 6c 00 00 6d 01 00 7d 01 00 6d 02 00 7d 02 00 01 7c 01 00 6a 03 s*...d..d..l..m..}..m..}...|..j.
b3e0 00 7c 02 00 7c 00 00 83 02 00 01 64 00 00 53 28 03 00 00 00 4e 69 ff ff ff ff 28 02 00 00 00 74 .|..|......d..S(....Ni....(....t
b400 0c 00 00 00 74 65 73 74 5f 73 75 70 70 6f 72 74 74 0f 00 00 00 74 65 73 74 5f 67 65 6e 65 72 61 ....test_supportt....test_genera
b420 74 6f 72 73 28 04 00 00 00 74 04 00 00 00 74 65 73 74 52 64 00 00 00 52 65 00 00 00 74 0b 00 00 tors(....t....testRd...Re...t...
b440 00 72 75 6e 5f 64 6f 63 74 65 73 74 28 03 00 00 00 74 07 00 00 00 76 65 72 62 6f 73 65 52 64 00 .run_doctest(....t....verboseRd.
b460 00 00 52 65 00 00 00 28 00 00 00 00 28 00 00 00 00 73 5b 00 00 00 2f 62 75 69 6c 64 62 6f 74 2f ..Re...(....(....s[.../buildbot/
b480 74 6d 70 2f 62 75 69 6c 64 68 6f 73 74 2f 69 6e 73 74 61 6c 6c 2f 70 72 65 62 75 69 6c 74 2f 6c tmp/buildhost/install/prebuilt/l
b4a0 69 6e 75 78 2d 78 38 36 5f 36 34 2f 6c 69 62 2f 70 79 74 68 6f 6e 32 2e 37 2f 74 65 73 74 2f 74 inux-x86_64/lib/python2.7/test/t
b4c0 65 73 74 5f 67 65 6e 65 72 61 74 6f 72 73 2e 70 79 74 09 00 00 00 74 65 73 74 5f 6d 61 69 6e 6d est_generators.pyt....test_mainm
b4e0 07 00 00 73 04 00 00 00 00 01 16 01 74 08 00 00 00 5f 5f 6d 61 69 6e 5f 5f 69 01 00 00 00 4e 28 ...s........t....__main__i....N(
b500 12 00 00 00 74 0e 00 00 00 74 75 74 6f 72 69 61 6c 5f 74 65 73 74 73 74 09 00 00 00 70 65 70 5f ....t....tutorial_testst....pep_
b520 74 65 73 74 73 74 0b 00 00 00 65 6d 61 69 6c 5f 74 65 73 74 73 74 09 00 00 00 66 75 6e 5f 74 65 testst....email_testst....fun_te
b540 73 74 73 74 0c 00 00 00 73 79 6e 74 61 78 5f 74 65 73 74 73 52 07 00 00 00 52 10 00 00 00 52 16 stst....syntax_testsR....R....R.
b560 00 00 00 52 17 00 00 00 52 2f 00 00 00 74 0d 00 00 00 63 6f 6e 6a 6f 69 6e 5f 74 65 73 74 73 74 ...R....R/...t....conjoin_testst
b580 0d 00 00 00 77 65 61 6b 72 65 66 5f 74 65 73 74 73 74 0f 00 00 00 63 6f 72 6f 75 74 69 6e 65 5f ....weakref_testst....coroutine_
b5a0 74 65 73 74 73 74 0e 00 00 00 72 65 66 6c 65 61 6b 73 5f 74 65 73 74 73 74 08 00 00 00 5f 5f 74 testst....refleaks_testst....__t
b5c0 65 73 74 5f 5f 52 06 00 00 00 52 69 00 00 00 52 2d 00 00 00 28 00 00 00 00 28 00 00 00 00 28 00 est__R....Ri...R-...(....(....(.
b5e0 00 00 00 73 5b 00 00 00 2f 62 75 69 6c 64 62 6f 74 2f 74 6d 70 2f 62 75 69 6c 64 68 6f 73 74 2f ...s[.../buildbot/tmp/buildhost/
b600 69 6e 73 74 61 6c 6c 2f 70 72 65 62 75 69 6c 74 2f 6c 69 6e 75 78 2d 78 38 36 5f 36 34 2f 6c 69 install/prebuilt/linux-x86_64/li
b620 62 2f 70 79 74 68 6f 6e 32 2e 37 2f 74 65 73 74 2f 74 65 73 74 5f 67 65 6e 65 72 61 74 6f 72 73 b/python2.7/test/test_generators
b640 2e 70 79 74 08 00 00 00 3c 6d 6f 64 75 6c 65 3e 84 00 00 00 73 36 00 00 00 06 a5 06 be 06 ee 06 .pyt....<module>....s6..........
b660 d9 06 16 09 15 09 3d 09 24 13 37 13 ff 00 51 06 18 06 ff 00 39 06 4b 06 02 0a 01 07 01 07 01 07 ......=.$.7...Q.....9.K.........
b680 01 07 01 07 01 07 01 07 01 0a 07 0c 05 0c 01 ...............