summaryrefslogtreecommitdiff
path: root/lib/python2.7/_threading_local.pyo
blob: 0869a3e84da5c99c276847518c324ed8ab04c889 (plain)
ofshex dumpascii
0000 03 f3 0d 0a 2e 5c fc 55 63 00 00 00 00 00 00 00 00 03 00 00 00 40 00 00 00 73 5e 00 00 00 64 00 .....\.Uc............@...s^...d.
0020 00 5a 00 00 64 01 00 67 01 00 5a 01 00 64 02 00 65 02 00 66 01 00 64 03 00 84 00 00 83 00 00 59 .Z..d..g..Z..d..e..f..d........Y
0040 5a 03 00 64 04 00 84 00 00 5a 04 00 64 01 00 65 03 00 66 01 00 64 05 00 84 00 00 83 00 00 59 5a Z..d.....Z..d..e..f..d........YZ
0060 05 00 64 06 00 64 07 00 6c 06 00 6d 07 00 5a 07 00 6d 08 00 5a 08 00 01 64 08 00 53 28 09 00 00 ..d..d..l..m..Z..m..Z...d..S(...
0080 00 73 f8 0c 00 00 54 68 72 65 61 64 2d 6c 6f 63 61 6c 20 6f 62 6a 65 63 74 73 2e 0a 0a 28 4e 6f .s....Thread-local.objects...(No
00a0 74 65 20 74 68 61 74 20 74 68 69 73 20 6d 6f 64 75 6c 65 20 70 72 6f 76 69 64 65 73 20 61 20 50 te.that.this.module.provides.a.P
00c0 79 74 68 6f 6e 20 76 65 72 73 69 6f 6e 20 6f 66 20 74 68 65 20 74 68 72 65 61 64 69 6e 67 2e 6c ython.version.of.the.threading.l
00e0 6f 63 61 6c 0a 20 63 6c 61 73 73 2e 20 20 44 65 70 65 6e 64 69 6e 67 20 6f 6e 20 74 68 65 20 76 ocal..class...Depending.on.the.v
0100 65 72 73 69 6f 6e 20 6f 66 20 50 79 74 68 6f 6e 20 79 6f 75 27 72 65 20 75 73 69 6e 67 2c 20 74 ersion.of.Python.you're.using,.t
0120 68 65 72 65 20 6d 61 79 20 62 65 20 61 0a 20 66 61 73 74 65 72 20 6f 6e 65 20 61 76 61 69 6c 61 here.may.be.a..faster.one.availa
0140 62 6c 65 2e 20 20 59 6f 75 20 73 68 6f 75 6c 64 20 61 6c 77 61 79 73 20 69 6d 70 6f 72 74 20 74 ble...You.should.always.import.t
0160 68 65 20 60 6c 6f 63 61 6c 60 20 63 6c 61 73 73 20 66 72 6f 6d 0a 20 60 74 68 72 65 61 64 69 6e he.`local`.class.from..`threadin
0180 67 60 2e 29 0a 0a 54 68 72 65 61 64 2d 6c 6f 63 61 6c 20 6f 62 6a 65 63 74 73 20 73 75 70 70 6f g`.)..Thread-local.objects.suppo
01a0 72 74 20 74 68 65 20 6d 61 6e 61 67 65 6d 65 6e 74 20 6f 66 20 74 68 72 65 61 64 2d 6c 6f 63 61 rt.the.management.of.thread-loca
01c0 6c 20 64 61 74 61 2e 0a 49 66 20 79 6f 75 20 68 61 76 65 20 64 61 74 61 20 74 68 61 74 20 79 6f l.data..If.you.have.data.that.yo
01e0 75 20 77 61 6e 74 20 74 6f 20 62 65 20 6c 6f 63 61 6c 20 74 6f 20 61 20 74 68 72 65 61 64 2c 20 u.want.to.be.local.to.a.thread,.
0200 73 69 6d 70 6c 79 20 63 72 65 61 74 65 0a 61 20 74 68 72 65 61 64 2d 6c 6f 63 61 6c 20 6f 62 6a simply.create.a.thread-local.obj
0220 65 63 74 20 61 6e 64 20 75 73 65 20 69 74 73 20 61 74 74 72 69 62 75 74 65 73 3a 0a 0a 20 20 3e ect.and.use.its.attributes:....>
0240 3e 3e 20 6d 79 64 61 74 61 20 3d 20 6c 6f 63 61 6c 28 29 0a 20 20 3e 3e 3e 20 6d 79 64 61 74 61 >>.mydata.=.local()...>>>.mydata
0260 2e 6e 75 6d 62 65 72 20 3d 20 34 32 0a 20 20 3e 3e 3e 20 6d 79 64 61 74 61 2e 6e 75 6d 62 65 72 .number.=.42...>>>.mydata.number
0280 0a 20 20 34 32 0a 0a 59 6f 75 20 63 61 6e 20 61 6c 73 6f 20 61 63 63 65 73 73 20 74 68 65 20 6c ...42..You.can.also.access.the.l
02a0 6f 63 61 6c 2d 6f 62 6a 65 63 74 27 73 20 64 69 63 74 69 6f 6e 61 72 79 3a 0a 0a 20 20 3e 3e 3e ocal-object's.dictionary:....>>>
02c0 20 6d 79 64 61 74 61 2e 5f 5f 64 69 63 74 5f 5f 0a 20 20 7b 27 6e 75 6d 62 65 72 27 3a 20 34 32 .mydata.__dict__...{'number':.42
02e0 7d 0a 20 20 3e 3e 3e 20 6d 79 64 61 74 61 2e 5f 5f 64 69 63 74 5f 5f 2e 73 65 74 64 65 66 61 75 }...>>>.mydata.__dict__.setdefau
0300 6c 74 28 27 77 69 64 67 65 74 73 27 2c 20 5b 5d 29 0a 20 20 5b 5d 0a 20 20 3e 3e 3e 20 6d 79 64 lt('widgets',.[])...[]...>>>.myd
0320 61 74 61 2e 77 69 64 67 65 74 73 0a 20 20 5b 5d 0a 0a 57 68 61 74 27 73 20 69 6d 70 6f 72 74 61 ata.widgets...[]..What's.importa
0340 6e 74 20 61 62 6f 75 74 20 74 68 72 65 61 64 2d 6c 6f 63 61 6c 20 6f 62 6a 65 63 74 73 20 69 73 nt.about.thread-local.objects.is
0360 20 74 68 61 74 20 74 68 65 69 72 20 64 61 74 61 20 61 72 65 0a 6c 6f 63 61 6c 20 74 6f 20 61 20 .that.their.data.are.local.to.a.
0380 74 68 72 65 61 64 2e 20 49 66 20 77 65 20 61 63 63 65 73 73 20 74 68 65 20 64 61 74 61 20 69 6e thread..If.we.access.the.data.in
03a0 20 61 20 64 69 66 66 65 72 65 6e 74 20 74 68 72 65 61 64 3a 0a 0a 20 20 3e 3e 3e 20 6c 6f 67 20 .a.different.thread:....>>>.log.
03c0 3d 20 5b 5d 0a 20 20 3e 3e 3e 20 64 65 66 20 66 28 29 3a 0a 20 20 2e 2e 2e 20 20 20 20 20 69 74 =.[]...>>>.def.f():...........it
03e0 65 6d 73 20 3d 20 6d 79 64 61 74 61 2e 5f 5f 64 69 63 74 5f 5f 2e 69 74 65 6d 73 28 29 0a 20 20 ems.=.mydata.__dict__.items()...
0400 2e 2e 2e 20 20 20 20 20 69 74 65 6d 73 2e 73 6f 72 74 28 29 0a 20 20 2e 2e 2e 20 20 20 20 20 6c ........items.sort()...........l
0420 6f 67 2e 61 70 70 65 6e 64 28 69 74 65 6d 73 29 0a 20 20 2e 2e 2e 20 20 20 20 20 6d 79 64 61 74 og.append(items)...........mydat
0440 61 2e 6e 75 6d 62 65 72 20 3d 20 31 31 0a 20 20 2e 2e 2e 20 20 20 20 20 6c 6f 67 2e 61 70 70 65 a.number.=.11...........log.appe
0460 6e 64 28 6d 79 64 61 74 61 2e 6e 75 6d 62 65 72 29 0a 0a 20 20 3e 3e 3e 20 69 6d 70 6f 72 74 20 nd(mydata.number)....>>>.import.
0480 74 68 72 65 61 64 69 6e 67 0a 20 20 3e 3e 3e 20 74 68 72 65 61 64 20 3d 20 74 68 72 65 61 64 69 threading...>>>.thread.=.threadi
04a0 6e 67 2e 54 68 72 65 61 64 28 74 61 72 67 65 74 3d 66 29 0a 20 20 3e 3e 3e 20 74 68 72 65 61 64 ng.Thread(target=f)...>>>.thread
04c0 2e 73 74 61 72 74 28 29 0a 20 20 3e 3e 3e 20 74 68 72 65 61 64 2e 6a 6f 69 6e 28 29 0a 20 20 3e .start()...>>>.thread.join()...>
04e0 3e 3e 20 6c 6f 67 0a 20 20 5b 5b 5d 2c 20 31 31 5d 0a 0a 77 65 20 67 65 74 20 64 69 66 66 65 72 >>.log...[[],.11]..we.get.differ
0500 65 6e 74 20 64 61 74 61 2e 20 20 46 75 72 74 68 65 72 6d 6f 72 65 2c 20 63 68 61 6e 67 65 73 20 ent.data...Furthermore,.changes.
0520 6d 61 64 65 20 69 6e 20 74 68 65 20 6f 74 68 65 72 20 74 68 72 65 61 64 0a 64 6f 6e 27 74 20 61 made.in.the.other.thread.don't.a
0540 66 66 65 63 74 20 64 61 74 61 20 73 65 65 6e 20 69 6e 20 74 68 69 73 20 74 68 72 65 61 64 3a 0a ffect.data.seen.in.this.thread:.
0560 0a 20 20 3e 3e 3e 20 6d 79 64 61 74 61 2e 6e 75 6d 62 65 72 0a 20 20 34 32 0a 0a 4f 66 20 63 6f ...>>>.mydata.number...42..Of.co
0580 75 72 73 65 2c 20 76 61 6c 75 65 73 20 79 6f 75 20 67 65 74 20 66 72 6f 6d 20 61 20 6c 6f 63 61 urse,.values.you.get.from.a.loca
05a0 6c 20 6f 62 6a 65 63 74 2c 20 69 6e 63 6c 75 64 69 6e 67 20 61 20 5f 5f 64 69 63 74 5f 5f 0a 61 l.object,.including.a.__dict__.a
05c0 74 74 72 69 62 75 74 65 2c 20 61 72 65 20 66 6f 72 20 77 68 61 74 65 76 65 72 20 74 68 72 65 61 ttribute,.are.for.whatever.threa
05e0 64 20 77 61 73 20 63 75 72 72 65 6e 74 20 61 74 20 74 68 65 20 74 69 6d 65 20 74 68 65 0a 61 74 d.was.current.at.the.time.the.at
0600 74 72 69 62 75 74 65 20 77 61 73 20 72 65 61 64 2e 20 20 46 6f 72 20 74 68 61 74 20 72 65 61 73 tribute.was.read...For.that.reas
0620 6f 6e 2c 20 79 6f 75 20 67 65 6e 65 72 61 6c 6c 79 20 64 6f 6e 27 74 20 77 61 6e 74 20 74 6f 20 on,.you.generally.don't.want.to.
0640 73 61 76 65 0a 74 68 65 73 65 20 76 61 6c 75 65 73 20 61 63 72 6f 73 73 20 74 68 72 65 61 64 73 save.these.values.across.threads
0660 2c 20 61 73 20 74 68 65 79 20 61 70 70 6c 79 20 6f 6e 6c 79 20 74 6f 20 74 68 65 20 74 68 72 65 ,.as.they.apply.only.to.the.thre
0680 61 64 20 74 68 65 79 0a 63 61 6d 65 20 66 72 6f 6d 2e 0a 0a 59 6f 75 20 63 61 6e 20 63 72 65 61 ad.they.came.from...You.can.crea
06a0 74 65 20 63 75 73 74 6f 6d 20 6c 6f 63 61 6c 20 6f 62 6a 65 63 74 73 20 62 79 20 73 75 62 63 6c te.custom.local.objects.by.subcl
06c0 61 73 73 69 6e 67 20 74 68 65 20 6c 6f 63 61 6c 20 63 6c 61 73 73 3a 0a 0a 20 20 3e 3e 3e 20 63 assing.the.local.class:....>>>.c
06e0 6c 61 73 73 20 4d 79 4c 6f 63 61 6c 28 6c 6f 63 61 6c 29 3a 0a 20 20 2e 2e 2e 20 20 20 20 20 6e lass.MyLocal(local):...........n
0700 75 6d 62 65 72 20 3d 20 32 0a 20 20 2e 2e 2e 20 20 20 20 20 69 6e 69 74 69 61 6c 69 7a 65 64 20 umber.=.2...........initialized.
0720 3d 20 46 61 6c 73 65 0a 20 20 2e 2e 2e 20 20 20 20 20 64 65 66 20 5f 5f 69 6e 69 74 5f 5f 28 73 =.False...........def.__init__(s
0740 65 6c 66 2c 20 2a 2a 6b 77 29 3a 0a 20 20 2e 2e 2e 20 20 20 20 20 20 20 20 20 69 66 20 73 65 6c elf,.**kw):...............if.sel
0760 66 2e 69 6e 69 74 69 61 6c 69 7a 65 64 3a 0a 20 20 2e 2e 2e 20 20 20 20 20 20 20 20 20 20 20 20 f.initialized:..................
0780 20 72 61 69 73 65 20 53 79 73 74 65 6d 45 72 72 6f 72 28 27 5f 5f 69 6e 69 74 5f 5f 20 63 61 6c .raise.SystemError('__init__.cal
07a0 6c 65 64 20 74 6f 6f 20 6d 61 6e 79 20 74 69 6d 65 73 27 29 0a 20 20 2e 2e 2e 20 20 20 20 20 20 led.too.many.times')............
07c0 20 20 20 73 65 6c 66 2e 69 6e 69 74 69 61 6c 69 7a 65 64 20 3d 20 54 72 75 65 0a 20 20 2e 2e 2e ...self.initialized.=.True......
07e0 20 20 20 20 20 20 20 20 20 73 65 6c 66 2e 5f 5f 64 69 63 74 5f 5f 2e 75 70 64 61 74 65 28 6b 77 .........self.__dict__.update(kw
0800 29 0a 20 20 2e 2e 2e 20 20 20 20 20 64 65 66 20 73 71 75 61 72 65 64 28 73 65 6c 66 29 3a 0a 20 )...........def.squared(self):..
0820 20 2e 2e 2e 20 20 20 20 20 20 20 20 20 72 65 74 75 72 6e 20 73 65 6c 66 2e 6e 75 6d 62 65 72 20 .............return.self.number.
0840 2a 2a 20 32 0a 0a 54 68 69 73 20 63 61 6e 20 62 65 20 75 73 65 66 75 6c 20 74 6f 20 73 75 70 70 **.2..This.can.be.useful.to.supp
0860 6f 72 74 20 64 65 66 61 75 6c 74 20 76 61 6c 75 65 73 2c 20 6d 65 74 68 6f 64 73 20 61 6e 64 0a ort.default.values,.methods.and.
0880 69 6e 69 74 69 61 6c 69 7a 61 74 69 6f 6e 2e 20 20 4e 6f 74 65 20 74 68 61 74 20 69 66 20 79 6f initialization...Note.that.if.yo
08a0 75 20 64 65 66 69 6e 65 20 61 6e 20 5f 5f 69 6e 69 74 5f 5f 20 6d 65 74 68 6f 64 2c 20 69 74 20 u.define.an.__init__.method,.it.
08c0 77 69 6c 6c 20 62 65 0a 63 61 6c 6c 65 64 20 65 61 63 68 20 74 69 6d 65 20 74 68 65 20 6c 6f 63 will.be.called.each.time.the.loc
08e0 61 6c 20 6f 62 6a 65 63 74 20 69 73 20 75 73 65 64 20 69 6e 20 61 20 73 65 70 61 72 61 74 65 20 al.object.is.used.in.a.separate.
0900 74 68 72 65 61 64 2e 20 20 54 68 69 73 0a 69 73 20 6e 65 63 65 73 73 61 72 79 20 74 6f 20 69 6e thread...This.is.necessary.to.in
0920 69 74 69 61 6c 69 7a 65 20 65 61 63 68 20 74 68 72 65 61 64 27 73 20 64 69 63 74 69 6f 6e 61 72 itialize.each.thread's.dictionar
0940 79 2e 0a 0a 4e 6f 77 20 69 66 20 77 65 20 63 72 65 61 74 65 20 61 20 6c 6f 63 61 6c 20 6f 62 6a y...Now.if.we.create.a.local.obj
0960 65 63 74 3a 0a 0a 20 20 3e 3e 3e 20 6d 79 64 61 74 61 20 3d 20 4d 79 4c 6f 63 61 6c 28 63 6f 6c ect:....>>>.mydata.=.MyLocal(col
0980 6f 72 3d 27 72 65 64 27 29 0a 0a 4e 6f 77 20 77 65 20 68 61 76 65 20 61 20 64 65 66 61 75 6c 74 or='red')..Now.we.have.a.default
09a0 20 6e 75 6d 62 65 72 3a 0a 0a 20 20 3e 3e 3e 20 6d 79 64 61 74 61 2e 6e 75 6d 62 65 72 0a 20 20 .number:....>>>.mydata.number...
09c0 32 0a 0a 61 6e 20 69 6e 69 74 69 61 6c 20 63 6f 6c 6f 72 3a 0a 0a 20 20 3e 3e 3e 20 6d 79 64 61 2..an.initial.color:....>>>.myda
09e0 74 61 2e 63 6f 6c 6f 72 0a 20 20 27 72 65 64 27 0a 20 20 3e 3e 3e 20 64 65 6c 20 6d 79 64 61 74 ta.color...'red'...>>>.del.mydat
0a00 61 2e 63 6f 6c 6f 72 0a 0a 41 6e 64 20 61 20 6d 65 74 68 6f 64 20 74 68 61 74 20 6f 70 65 72 61 a.color..And.a.method.that.opera
0a20 74 65 73 20 6f 6e 20 74 68 65 20 64 61 74 61 3a 0a 0a 20 20 3e 3e 3e 20 6d 79 64 61 74 61 2e 73 tes.on.the.data:....>>>.mydata.s
0a40 71 75 61 72 65 64 28 29 0a 20 20 34 0a 0a 41 73 20 62 65 66 6f 72 65 2c 20 77 65 20 63 61 6e 20 quared()...4..As.before,.we.can.
0a60 61 63 63 65 73 73 20 74 68 65 20 64 61 74 61 20 69 6e 20 61 20 73 65 70 61 72 61 74 65 20 74 68 access.the.data.in.a.separate.th
0a80 72 65 61 64 3a 0a 0a 20 20 3e 3e 3e 20 6c 6f 67 20 3d 20 5b 5d 0a 20 20 3e 3e 3e 20 74 68 72 65 read:....>>>.log.=.[]...>>>.thre
0aa0 61 64 20 3d 20 74 68 72 65 61 64 69 6e 67 2e 54 68 72 65 61 64 28 74 61 72 67 65 74 3d 66 29 0a ad.=.threading.Thread(target=f).
0ac0 20 20 3e 3e 3e 20 74 68 72 65 61 64 2e 73 74 61 72 74 28 29 0a 20 20 3e 3e 3e 20 74 68 72 65 61 ..>>>.thread.start()...>>>.threa
0ae0 64 2e 6a 6f 69 6e 28 29 0a 20 20 3e 3e 3e 20 6c 6f 67 0a 20 20 5b 5b 28 27 63 6f 6c 6f 72 27 2c d.join()...>>>.log...[[('color',
0b00 20 27 72 65 64 27 29 2c 20 28 27 69 6e 69 74 69 61 6c 69 7a 65 64 27 2c 20 54 72 75 65 29 5d 2c .'red'),.('initialized',.True)],
0b20 20 31 31 5d 0a 0a 77 69 74 68 6f 75 74 20 61 66 66 65 63 74 69 6e 67 20 74 68 69 73 20 74 68 72 .11]..without.affecting.this.thr
0b40 65 61 64 27 73 20 64 61 74 61 3a 0a 0a 20 20 3e 3e 3e 20 6d 79 64 61 74 61 2e 6e 75 6d 62 65 72 ead's.data:....>>>.mydata.number
0b60 0a 20 20 32 0a 20 20 3e 3e 3e 20 6d 79 64 61 74 61 2e 63 6f 6c 6f 72 0a 20 20 54 72 61 63 65 62 ...2...>>>.mydata.color...Traceb
0b80 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 2e ack.(most.recent.call.last):....
0ba0 2e 2e 0a 20 20 41 74 74 72 69 62 75 74 65 45 72 72 6f 72 3a 20 27 4d 79 4c 6f 63 61 6c 27 20 6f .....AttributeError:.'MyLocal'.o
0bc0 62 6a 65 63 74 20 68 61 73 20 6e 6f 20 61 74 74 72 69 62 75 74 65 20 27 63 6f 6c 6f 72 27 0a 0a bject.has.no.attribute.'color'..
0be0 4e 6f 74 65 20 74 68 61 74 20 73 75 62 63 6c 61 73 73 65 73 20 63 61 6e 20 64 65 66 69 6e 65 20 Note.that.subclasses.can.define.
0c00 73 6c 6f 74 73 2c 20 62 75 74 20 74 68 65 79 20 61 72 65 20 6e 6f 74 20 74 68 72 65 61 64 0a 6c slots,.but.they.are.not.thread.l
0c20 6f 63 61 6c 2e 20 54 68 65 79 20 61 72 65 20 73 68 61 72 65 64 20 61 63 72 6f 73 73 20 74 68 72 ocal..They.are.shared.across.thr
0c40 65 61 64 73 3a 0a 0a 20 20 3e 3e 3e 20 63 6c 61 73 73 20 4d 79 4c 6f 63 61 6c 28 6c 6f 63 61 6c eads:....>>>.class.MyLocal(local
0c60 29 3a 0a 20 20 2e 2e 2e 20 20 20 20 20 5f 5f 73 6c 6f 74 73 5f 5f 20 3d 20 27 6e 75 6d 62 65 72 ):...........__slots__.=.'number
0c80 27 0a 0a 20 20 3e 3e 3e 20 6d 79 64 61 74 61 20 3d 20 4d 79 4c 6f 63 61 6c 28 29 0a 20 20 3e 3e '....>>>.mydata.=.MyLocal()...>>
0ca0 3e 20 6d 79 64 61 74 61 2e 6e 75 6d 62 65 72 20 3d 20 34 32 0a 20 20 3e 3e 3e 20 6d 79 64 61 74 >.mydata.number.=.42...>>>.mydat
0cc0 61 2e 63 6f 6c 6f 72 20 3d 20 27 72 65 64 27 0a 0a 53 6f 2c 20 74 68 65 20 73 65 70 61 72 61 74 a.color.=.'red'..So,.the.separat
0ce0 65 20 74 68 72 65 61 64 3a 0a 0a 20 20 3e 3e 3e 20 74 68 72 65 61 64 20 3d 20 74 68 72 65 61 64 e.thread:....>>>.thread.=.thread
0d00 69 6e 67 2e 54 68 72 65 61 64 28 74 61 72 67 65 74 3d 66 29 0a 20 20 3e 3e 3e 20 74 68 72 65 61 ing.Thread(target=f)...>>>.threa
0d20 64 2e 73 74 61 72 74 28 29 0a 20 20 3e 3e 3e 20 74 68 72 65 61 64 2e 6a 6f 69 6e 28 29 0a 0a 61 d.start()...>>>.thread.join()..a
0d40 66 66 65 63 74 73 20 77 68 61 74 20 77 65 20 73 65 65 3a 0a 0a 20 20 3e 3e 3e 20 6d 79 64 61 74 ffects.what.we.see:....>>>.mydat
0d60 61 2e 6e 75 6d 62 65 72 0a 20 20 31 31 0a 0a 3e 3e 3e 20 64 65 6c 20 6d 79 64 61 74 61 0a 74 05 a.number...11..>>>.del.mydata.t.
0d80 00 00 00 6c 6f 63 61 6c 74 0a 00 00 00 5f 6c 6f 63 61 6c 62 61 73 65 63 00 00 00 00 00 00 00 00 ...localt...._localbasec........
0da0 03 00 00 00 42 00 00 00 73 17 00 00 00 65 00 00 5a 01 00 64 04 00 5a 02 00 64 03 00 84 00 00 5a ....B...s....e..Z..d..Z..d.....Z
0dc0 03 00 52 53 28 05 00 00 00 74 0b 00 00 00 5f 6c 6f 63 61 6c 5f 5f 6b 65 79 74 0c 00 00 00 5f 6c ..RS(....t...._local__keyt...._l
0de0 6f 63 61 6c 5f 5f 61 72 67 73 74 0c 00 00 00 5f 6c 6f 63 61 6c 5f 5f 6c 6f 63 6b 63 01 00 00 00 ocal__argst...._local__lockc....
0e00 06 00 00 00 05 00 00 00 4f 00 00 00 73 c0 00 00 00 74 00 00 6a 01 00 7c 00 00 83 01 00 7d 03 00 ........O...s....t..j..|.....}..
0e20 64 01 00 64 02 00 74 02 00 74 03 00 7c 03 00 83 01 00 83 01 00 17 66 02 00 7d 04 00 74 00 00 6a d..d..t..t..|.........f..}..t..j
0e40 04 00 7c 03 00 64 01 00 7c 04 00 83 03 00 01 74 00 00 6a 04 00 7c 03 00 64 03 00 7c 01 00 7c 02 ..|..d..|......t..j..|..d..|..|.
0e60 00 66 02 00 83 03 00 01 74 00 00 6a 04 00 7c 03 00 64 04 00 74 05 00 83 00 00 83 03 00 01 7c 01 .f......t..j..|..d..t.........|.
0e80 00 73 79 00 7c 02 00 72 9a 00 7c 00 00 6a 06 00 74 00 00 6a 06 00 6b 08 00 72 9a 00 74 07 00 64 .sy.|..r..|..j..t..j..k..r..t..d
0ea0 05 00 83 01 00 82 01 00 6e 00 00 74 00 00 6a 08 00 7c 03 00 64 06 00 83 02 00 7d 05 00 7c 05 00 ........n..t..j..|..d.....}..|..
0ec0 74 09 00 83 00 00 6a 0a 00 7c 04 00 3c 7c 03 00 53 28 07 00 00 00 4e 52 02 00 00 00 73 0d 00 00 t.....j..|..<|..S(....NR....s...
0ee0 00 74 68 72 65 61 64 2e 6c 6f 63 61 6c 2e 52 03 00 00 00 52 04 00 00 00 73 2a 00 00 00 49 6e 69 .thread.local.R....R....s*...Ini
0f00 74 69 61 6c 69 7a 61 74 69 6f 6e 20 61 72 67 75 6d 65 6e 74 73 20 61 72 65 20 6e 6f 74 20 73 75 tialization.arguments.are.not.su
0f20 70 70 6f 72 74 65 64 74 08 00 00 00 5f 5f 64 69 63 74 5f 5f 28 0b 00 00 00 74 06 00 00 00 6f 62 pportedt....__dict__(....t....ob
0f40 6a 65 63 74 74 07 00 00 00 5f 5f 6e 65 77 5f 5f 74 03 00 00 00 73 74 72 74 02 00 00 00 69 64 74 jectt....__new__t....strt....idt
0f60 0b 00 00 00 5f 5f 73 65 74 61 74 74 72 5f 5f 74 05 00 00 00 52 4c 6f 63 6b 74 08 00 00 00 5f 5f ....__setattr__t....RLockt....__
0f80 69 6e 69 74 5f 5f 74 09 00 00 00 54 79 70 65 45 72 72 6f 72 74 10 00 00 00 5f 5f 67 65 74 61 74 init__t....TypeErrort....__getat
0fa0 74 72 69 62 75 74 65 5f 5f 74 0e 00 00 00 63 75 72 72 65 6e 74 5f 74 68 72 65 61 64 52 05 00 00 tribute__t....current_threadR...
0fc0 00 28 06 00 00 00 74 03 00 00 00 63 6c 73 74 04 00 00 00 61 72 67 73 74 02 00 00 00 6b 77 74 04 .(....t....clst....argst....kwt.
0fe0 00 00 00 73 65 6c 66 74 03 00 00 00 6b 65 79 74 04 00 00 00 64 69 63 74 28 00 00 00 00 28 00 00 ...selft....keyt....dict(....(..
1000 00 00 73 57 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 ..sW.../buildbot/tmp/buildhost/i
1020 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 62 nstall/prebuilt/linux-x86_64/lib
1040 2f 70 79 74 68 6f 6e 32 2e 37 2f 5f 74 68 72 65 61 64 69 6e 67 5f 6c 6f 63 61 6c 2e 70 79 52 07 /python2.7/_threading_local.pyR.
1060 00 00 00 97 00 00 00 73 14 00 00 00 00 01 0f 01 1c 01 13 01 19 01 16 02 1e 01 0f 05 12 01 10 02 .......s........................
1080 28 03 00 00 00 73 0b 00 00 00 5f 6c 6f 63 61 6c 5f 5f 6b 65 79 73 0c 00 00 00 5f 6c 6f 63 61 6c (....s...._local__keys...._local
10a0 5f 5f 61 72 67 73 73 0c 00 00 00 5f 6c 6f 63 61 6c 5f 5f 6c 6f 63 6b 28 04 00 00 00 74 08 00 00 __argss...._local__lock(....t...
10c0 00 5f 5f 6e 61 6d 65 5f 5f 74 0a 00 00 00 5f 5f 6d 6f 64 75 6c 65 5f 5f 74 09 00 00 00 5f 5f 73 .__name__t....__module__t....__s
10e0 6c 6f 74 73 5f 5f 52 07 00 00 00 28 00 00 00 00 28 00 00 00 00 28 00 00 00 00 73 57 00 00 00 2f lots__R....(....(....(....sW.../
1100 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
1120 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
1140 2e 37 2f 5f 74 68 72 65 61 64 69 6e 67 5f 6c 6f 63 61 6c 2e 70 79 52 01 00 00 00 94 00 00 00 73 .7/_threading_local.pyR........s
1160 04 00 00 00 06 01 06 02 63 01 00 00 00 06 00 00 00 04 00 00 00 43 00 00 00 73 c2 00 00 00 74 00 ........c............C...s....t.
1180 00 6a 01 00 7c 00 00 64 01 00 83 02 00 7d 01 00 74 02 00 83 00 00 6a 03 00 6a 04 00 7c 01 00 83 .j..|..d.....}..t.....j..j..|...
11a0 01 00 7d 02 00 7c 02 00 64 00 00 6b 08 00 72 ab 00 69 00 00 7d 02 00 7c 02 00 74 02 00 83 00 00 ..}..|..d..k..r..i..}..|..t.....
11c0 6a 03 00 7c 01 00 3c 74 00 00 6a 06 00 7c 00 00 64 02 00 7c 02 00 83 03 00 01 74 07 00 7c 00 00 j..|..<t..j..|..d..|......t..|..
11e0 83 01 00 7d 03 00 7c 03 00 6a 08 00 74 00 00 6a 08 00 6b 09 00 72 be 00 74 00 00 6a 01 00 7c 00 ...}..|..j..t..j..k..r..t..j..|.
1200 00 64 03 00 83 02 00 5c 02 00 7d 04 00 7d 05 00 7c 03 00 6a 08 00 7c 00 00 7c 04 00 7c 05 00 8e .d.....\..}..}..|..j..|..|..|...
1220 01 00 01 71 be 00 6e 13 00 74 00 00 6a 06 00 7c 00 00 64 02 00 7c 02 00 83 03 00 01 64 00 00 53 ...q..n..t..j..|..d..|......d..S
1240 28 04 00 00 00 4e 52 02 00 00 00 52 05 00 00 00 52 03 00 00 00 28 09 00 00 00 52 06 00 00 00 52 (....NR....R....R....(....R....R
1260 0e 00 00 00 52 0f 00 00 00 52 05 00 00 00 74 03 00 00 00 67 65 74 74 04 00 00 00 4e 6f 6e 65 52 ....R....R....t....gett....NoneR
1280 0a 00 00 00 74 04 00 00 00 74 79 70 65 52 0c 00 00 00 28 06 00 00 00 52 13 00 00 00 52 14 00 00 ....t....typeR....(....R....R...
12a0 00 74 01 00 00 00 64 52 10 00 00 00 52 11 00 00 00 52 12 00 00 00 28 00 00 00 00 28 00 00 00 00 .t....dR....R....R....(....(....
12c0 73 57 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 sW.../buildbot/tmp/buildhost/ins
12e0 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
1300 79 74 68 6f 6e 32 2e 37 2f 5f 74 68 72 65 61 64 69 6e 67 5f 6c 6f 63 61 6c 2e 70 79 74 06 00 00 ython2.7/_threading_local.pyt...
1320 00 5f 70 61 74 63 68 a9 00 00 00 73 16 00 00 00 00 01 12 01 15 01 0c 01 06 01 10 01 13 04 0c 01 ._patch....s....................
1340 12 01 18 01 19 02 63 00 00 00 00 00 00 00 00 01 00 00 00 42 00 00 00 73 2c 00 00 00 65 00 00 5a ......c............B...s,...e..Z
1360 01 00 64 00 00 84 00 00 5a 02 00 64 01 00 84 00 00 5a 03 00 64 02 00 84 00 00 5a 04 00 64 03 00 ..d.....Z..d.....Z..d.....Z..d..
1380 84 00 00 5a 05 00 52 53 28 04 00 00 00 63 02 00 00 00 03 00 00 00 04 00 00 00 43 00 00 00 73 4c ...Z..RS(....c............C...sL
13a0 00 00 00 74 00 00 6a 01 00 7c 00 00 64 01 00 83 02 00 7d 02 00 7c 02 00 6a 02 00 83 00 00 01 7a ...t..j..|..d.....}..|..j......z
13c0 1e 00 74 03 00 7c 00 00 83 01 00 01 74 00 00 6a 01 00 7c 00 00 7c 01 00 83 02 00 53 57 64 00 00 ..t..|......t..j..|..|.....SWd..
13e0 7c 02 00 6a 04 00 83 00 00 01 58 64 00 00 53 28 02 00 00 00 4e 52 04 00 00 00 28 05 00 00 00 52 |..j......Xd..S(....NR....(....R
1400 06 00 00 00 52 0e 00 00 00 74 07 00 00 00 61 63 71 75 69 72 65 52 1d 00 00 00 74 07 00 00 00 72 ....R....t....acquireR....t....r
1420 65 6c 65 61 73 65 28 03 00 00 00 52 13 00 00 00 74 04 00 00 00 6e 61 6d 65 74 04 00 00 00 6c 6f elease(....R....t....namet....lo
1440 63 6b 28 00 00 00 00 28 00 00 00 00 73 57 00 00 00 2f 62 75 69 6c 64 62 6f 74 2f 74 6d 70 2f 62 ck(....(....sW.../buildbot/tmp/b
1460 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 2d uildhost/install/prebuilt/linux-
1480 78 38 36 5f 36 34 2f 6c 69 62 2f 70 79 74 68 6f 6e 32 2e 37 2f 5f 74 68 72 65 61 64 69 6e 67 5f x86_64/lib/python2.7/_threading_
14a0 6c 6f 63 61 6c 2e 70 79 52 0e 00 00 00 bc 00 00 00 73 0c 00 00 00 00 01 12 01 0a 01 03 01 0a 01 local.pyR........s..............
14c0 14 02 63 03 00 00 00 04 00 00 00 04 00 00 00 43 00 00 00 73 74 00 00 00 7c 01 00 64 01 00 6b 02 ..c............C...st...|..d..k.
14e0 00 72 25 00 74 00 00 64 02 00 7c 00 00 6a 01 00 6a 02 00 16 83 01 00 82 01 00 6e 00 00 74 03 00 .r%.t..d..|..j..j.........n..t..
1500 6a 04 00 7c 00 00 64 03 00 83 02 00 7d 03 00 7c 03 00 6a 05 00 83 00 00 01 7a 21 00 74 06 00 7c j..|..d.....}..|..j......z!.t..|
1520 00 00 83 01 00 01 74 03 00 6a 07 00 7c 00 00 7c 01 00 7c 02 00 83 03 00 53 57 64 00 00 7c 03 00 ......t..j..|..|..|.....SWd..|..
1540 6a 08 00 83 00 00 01 58 64 00 00 53 28 04 00 00 00 4e 52 05 00 00 00 73 2b 00 00 00 25 72 20 6f j......Xd..S(....NR....s+...%r.o
1560 62 6a 65 63 74 20 61 74 74 72 69 62 75 74 65 20 27 5f 5f 64 69 63 74 5f 5f 27 20 69 73 20 72 65 bject.attribute.'__dict__'.is.re
1580 61 64 2d 6f 6e 6c 79 52 04 00 00 00 28 09 00 00 00 74 0e 00 00 00 41 74 74 72 69 62 75 74 65 45 ad-onlyR....(....t....AttributeE
15a0 72 72 6f 72 74 09 00 00 00 5f 5f 63 6c 61 73 73 5f 5f 52 16 00 00 00 52 06 00 00 00 52 0e 00 00 rrort....__class__R....R....R...
15c0 00 52 1e 00 00 00 52 1d 00 00 00 52 0a 00 00 00 52 1f 00 00 00 28 04 00 00 00 52 13 00 00 00 52 .R....R....R....R....(....R....R
15e0 20 00 00 00 74 05 00 00 00 76 61 6c 75 65 52 21 00 00 00 28 00 00 00 00 28 00 00 00 00 73 57 00 ....t....valueR!...(....(....sW.
1600 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 6c ../buildbot/tmp/buildhost/instal
1620 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 68 l/prebuilt/linux-x86_64/lib/pyth
1640 6f 6e 32 2e 37 2f 5f 74 68 72 65 61 64 69 6e 67 5f 6c 6f 63 61 6c 2e 70 79 52 0a 00 00 00 c5 00 on2.7/_threading_local.pyR......
1660 00 00 73 14 00 00 00 00 01 0c 01 03 01 03 01 13 01 12 01 0a 01 03 01 0a 01 17 02 63 02 00 00 00 ..s........................c....
1680 03 00 00 00 04 00 00 00 43 00 00 00 73 71 00 00 00 7c 01 00 64 01 00 6b 02 00 72 25 00 74 00 00 ........C...sq...|..d..k..r%.t..
16a0 64 02 00 7c 00 00 6a 01 00 6a 02 00 16 83 01 00 82 01 00 6e 00 00 74 03 00 6a 04 00 7c 00 00 64 d..|..j..j.........n..t..j..|..d
16c0 03 00 83 02 00 7d 02 00 7c 02 00 6a 05 00 83 00 00 01 7a 1e 00 74 06 00 7c 00 00 83 01 00 01 74 .....}..|..j......z..t..|......t
16e0 03 00 6a 07 00 7c 00 00 7c 01 00 83 02 00 53 57 64 00 00 7c 02 00 6a 08 00 83 00 00 01 58 64 00 ..j..|..|.....SWd..|..j......Xd.
1700 00 53 28 04 00 00 00 4e 52 05 00 00 00 73 2b 00 00 00 25 72 20 6f 62 6a 65 63 74 20 61 74 74 72 .S(....NR....s+...%r.object.attr
1720 69 62 75 74 65 20 27 5f 5f 64 69 63 74 5f 5f 27 20 69 73 20 72 65 61 64 2d 6f 6e 6c 79 52 04 00 ibute.'__dict__'.is.read-onlyR..
1740 00 00 28 09 00 00 00 52 22 00 00 00 52 23 00 00 00 52 16 00 00 00 52 06 00 00 00 52 0e 00 00 00 ..(....R"...R#...R....R....R....
1760 52 1e 00 00 00 52 1d 00 00 00 74 0b 00 00 00 5f 5f 64 65 6c 61 74 74 72 5f 5f 52 1f 00 00 00 28 R....R....t....__delattr__R....(
1780 03 00 00 00 52 13 00 00 00 52 20 00 00 00 52 21 00 00 00 28 00 00 00 00 28 00 00 00 00 73 57 00 ....R....R....R!...(....(....sW.
17a0 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 6c ../buildbot/tmp/buildhost/instal
17c0 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 68 l/prebuilt/linux-x86_64/lib/pyth
17e0 6f 6e 32 2e 37 2f 5f 74 68 72 65 61 64 69 6e 67 5f 6c 6f 63 61 6c 2e 70 79 52 25 00 00 00 d2 00 on2.7/_threading_local.pyR%.....
1800 00 00 73 14 00 00 00 00 01 0c 01 03 01 03 01 13 01 12 01 0a 01 03 01 0a 01 14 02 63 01 00 00 00 ..s........................c....
1820 06 00 00 00 06 00 00 00 43 00 00 00 73 a0 00 00 00 64 01 00 64 00 00 6c 00 00 7d 01 00 74 01 00 ........C...s....d..d..l..}..t..
1840 6a 02 00 7c 00 00 64 02 00 83 02 00 7d 02 00 79 10 00 7c 01 00 6a 03 00 83 00 00 7d 03 00 57 6e j..|..d.....}..y..|..j.....}..Wn
1860 08 00 01 01 01 64 00 00 53 58 78 60 00 7c 03 00 44 5d 58 00 7d 04 00 79 0d 00 7c 04 00 6a 04 00 .....d..SXx`.|..D]X.}..y..|..j..
1880 7d 05 00 57 6e 14 00 04 74 05 00 6b 0a 00 72 69 00 01 01 01 71 40 00 6e 01 00 58 7c 02 00 7c 05 }..Wn...t..k..ri....q@.n..X|..|.
18a0 00 6b 06 00 72 40 00 79 0b 00 7c 05 00 7c 02 00 3d 57 71 98 00 04 74 06 00 6b 0a 00 72 94 00 01 .k..r@.y..|..|..=Wq...t..k..r...
18c0 01 01 71 98 00 58 71 40 00 71 40 00 57 64 00 00 53 28 03 00 00 00 4e 69 ff ff ff ff 52 02 00 00 ..q..Xq@.q@.Wd..S(....Ni....R...
18e0 00 28 07 00 00 00 74 09 00 00 00 74 68 72 65 61 64 69 6e 67 52 06 00 00 00 52 0e 00 00 00 74 0a .(....t....threadingR....R....t.
1900 00 00 00 5f 65 6e 75 6d 65 72 61 74 65 52 05 00 00 00 52 22 00 00 00 74 08 00 00 00 4b 65 79 45 ..._enumerateR....R"...t....KeyE
1920 72 72 6f 72 28 06 00 00 00 52 13 00 00 00 52 26 00 00 00 52 14 00 00 00 74 07 00 00 00 74 68 72 rror(....R....R&...R....t....thr
1940 65 61 64 73 74 06 00 00 00 74 68 72 65 61 64 52 05 00 00 00 28 00 00 00 00 28 00 00 00 00 73 57 eadst....threadR....(....(....sW
1960 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
1980 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
19a0 68 6f 6e 32 2e 37 2f 5f 74 68 72 65 61 64 69 6e 67 5f 6c 6f 63 61 6c 2e 70 79 74 07 00 00 00 5f hon2.7/_threading_local.pyt...._
19c0 5f 64 65 6c 5f 5f df 00 00 00 73 20 00 00 00 00 01 0c 02 12 02 03 03 10 01 03 04 05 02 0d 01 03 _del__....s.....................
19e0 01 0d 01 0d 02 07 02 0c 01 03 01 0b 01 0d 01 28 06 00 00 00 52 16 00 00 00 52 17 00 00 00 52 0e ...............(....R....R....R.
1a00 00 00 00 52 0a 00 00 00 52 25 00 00 00 52 2b 00 00 00 28 00 00 00 00 28 00 00 00 00 28 00 00 00 ...R....R%...R+...(....(....(...
1a20 00 73 57 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 .sW.../buildbot/tmp/buildhost/in
1a40 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/
1a60 70 79 74 68 6f 6e 32 2e 37 2f 5f 74 68 72 65 61 64 69 6e 67 5f 6c 6f 63 61 6c 2e 70 79 52 00 00 python2.7/_threading_local.pyR..
1a80 00 00 ba 00 00 00 73 08 00 00 00 06 02 09 09 09 0d 09 0d 69 ff ff ff ff 28 02 00 00 00 52 0f 00 ......s............i....(....R..
1aa0 00 00 52 0b 00 00 00 4e 28 09 00 00 00 74 07 00 00 00 5f 5f 64 6f 63 5f 5f 74 07 00 00 00 5f 5f ..R....N(....t....__doc__t....__
1ac0 61 6c 6c 5f 5f 52 06 00 00 00 52 01 00 00 00 52 1d 00 00 00 52 00 00 00 00 52 26 00 00 00 52 0f all__R....R....R....R....R&...R.
1ae0 00 00 00 52 0b 00 00 00 28 00 00 00 00 28 00 00 00 00 28 00 00 00 00 73 57 00 00 00 2f 62 75 69 ...R....(....(....(....sW.../bui
1b00 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
1b20 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/
1b40 5f 74 68 72 65 61 64 69 6e 67 5f 6c 6f 63 61 6c 2e 70 79 74 08 00 00 00 3c 6d 6f 64 75 6c 65 3e _threading_local.pyt....<module>
1b60 86 00 00 00 73 0a 00 00 00 06 02 09 0c 16 15 09 11 16 41 ....s.............A