[Python-Dev] atexit.py patch

Skip Montanaro skip@mojam.com (Skip Montanaro)
Fri, 23 Jun 2000 20:27:39 -0500 (CDT)


--0bkw+IZ+u3
Content-Type: text/plain; charset=us-ascii
Content-Description: message body and .signature
Content-Transfer-Encoding: 7bit

Here's the latest version of my exit module.  Per the earlier discussion,
the module has been renamed to atexit.py.  I also took the suggestion from
someone (Guido?) that the registration function be renamed to simply
"register".  Other than that everything else should be the same.

I'm only sending this to python-dev, operating under the assumption that the 
patches list is about to take a long vacation...

-- 
Skip Montanaro, skip@mojam.com, http://www.mojam.com/, http://www.musi-cal.com/
On Phil Jackson's ability to manage multiple Lakers superstars, Shaquille
O'Neal said: "He's got the rings.  I listen to the man with the rings."


--0bkw+IZ+u3
Content-Type: application/octet-stream
Content-Description: atexit.py & doc
Content-Disposition: attachment;
	filename="atexit.diff"
Content-Transfer-Encoding: base64

ZGlmZiAtTmF1ciBzcmMub3JpZy9Eb2MvbGliL2xpYmF0ZXhpdC50ZXggc3JjL0RvYy9saWIv
bGliYXRleGl0LnRleAotLS0gc3JjLm9yaWcvRG9jL2xpYi9saWJhdGV4aXQudGV4CVdlZCBE
ZWMgMzEgMTg6MDA6MDAgMTk2OQorKysgc3JjL0RvYy9saWIvbGliYXRleGl0LnRleAlGcmkg
SnVuIDIzIDE3OjI2OjIzIDIwMDAKQEAgLTAsMCArMSw0NSBAQAorXHNlY3Rpb257XG1vZHVs
ZXthdGV4aXR9IC0tLQorICAgICAgICAgZXhpdCBoYW5kbGVyc30KKworXGRlY2xhcmVtb2R1
bGV7c3RhbmRhcmR9e2F0ZXhpdH0KK1xzZWN0aW9uYXV0aG9ye1NraXAgTW9udGFuYXJvfXtz
a2lwQG1vamFtLmNvbX0KK1xtb2R1bGVzeW5vcHNpc3tSZWdpc3RlciBhbmQgZXhlY3V0ZSBj
bGVhbnVwIGZ1bmN0aW9ucy59CisKK1RoZSBcbW9kdWxle2F0ZXhpdH0gbW9kdWxlIGRlZmlu
ZXMgYSBzaW5nbGUgZnVuY3Rpb24gdG8gcmVnaXN0ZXIgY2xlYW51cAorZnVuY3Rpb25zLiAg
RnVuY3Rpb25zIHRodXMgcmVnaXN0ZXJlZCBhcmUgYXV0b21hdGljYWxseSBleGVjdXRlZCB1
cG9uIG5vcm1hbAoraW50ZXJwcmV0ZXIgdGVybWluYXRpb24uCisKK1xiZWdpbntmdW5jZGVz
Y317cmVnaXN0ZXJ9e2Z1bmNcb3B0aW9uYWx7LCAqYXJnc1xvcHRpb25hbHssICoqa2FyZ3N9
fX0KK1JlZ2lzdGVyIFxjb2Rle2Z1bmN9IGFzIGEgZnVuY3Rpb24gdG8gYmUgZXhlY3V0ZWQg
YXQgdGVybWluYXRpb24uICBBbnkKK29wdGlvbmFsIGFyZ3VtZW50cyB0aGF0IGFyZSB0byBi
ZSBwYXNzZWQgdG8gZnVuYyBtdXN0IGJlIHBhc3NlZCBhcyBhcmd1bWVudHMKK3RvIFxmdW5j
e3JlZ2lzdGVyfS4KKworQXQgbm9ybWFsIHByb2dyYW0gdGVybWluYXRpb24gKGZvciBpbnN0
YW5jZSwgaWYgXGZ1bmN7c3lzLmV4aXR9IGlzIGNhbGxlZCBvcgordGhlIG1haW4gbW9kdWxl
J3MgZXhlY3V0aW9uIGNvbXBsZXRlcyksIGFsbCBmdW5jdGlvbnMgcmVnaXN0ZXJlZCBhcmUg
Y2FsbGVkCitpbiBsYXN0IGluLCBmaXJzdCBvdXQgb3JkZXIuICBUaGUgYXNzdW1wdGlvbiBp
cyB0aGF0IGxvd2VyIGxldmVsIG1vZHVsZXMKK3dpbGwgbm9ybWFsbHkgYmUgaW1wb3J0ZWQg
YmVmb3JlIGhpZ2hlciBsZXZlbCBtb2R1bGVzIGFuZCB0aHVzIG11c3QgYmUKK2NsZWFuZWQg
dXAgbGF0ZXIuCisKK1xzdWJzZWN0aW9ue0V4YW1wbGV9CisKK1RoZSBmb2xsb3dpbmcgc2lt
cGxlIGV4YW1wbGUgZGVtb25zdHJhdGVzIGhvdyBhIG1vZHVsZSBjYW4gaW5pdGlhbGl6ZSBh
Citjb3VudGVyIGZyb20gYSBmaWxlIHdoZW4gaXQgaXMgaW1wb3J0ZWQgYW5kIHNhdmUgdGhl
IGNvdW50ZXIncyB1cGRhdGVkIHZhbHVlCithdXRvbWF0aWNhbGx5IHdoZW4gdGhlIHByb2dy
YW0gdGVybWluYXRlcy4KKworXGJlZ2lue3ZlcmJhdGltfQordHJ5OgorICAgIF9jb3VudCA9
IGV2YWwob3BlbigiL3RtcC9jb3VudGVyIikucmVhZCgpKQorZXhjZXB0IElPRXJyb3I6Cisg
ICAgX2NvdW50ID0gMAorCitkZWYgaW5jcmNvdW50ZXIobik6CisgICAgZ2xvYmFsIF9jb3Vu
dAorICAgIF9jb3VudCA9IF9jb3VudCArIG4KKworZGVmIHNhdmVjb3VudGVyKCk6CisgICAg
b3BlbigiL3RtcC9jb3VudGVyIiwgInciKS53cml0ZSgiJWQiICUgX2NvdW50KQorCitpbXBv
cnQgYXRleGl0CithdGV4aXQucmVnaXN0ZXIoc2F2ZWNvdW50ZXIpCitcZW5ke3ZlcmJhdGlt
fQorCmRpZmYgLU5hdXIgc3JjLm9yaWcvTGliL2F0ZXhpdC5weSBzcmMvTGliL2F0ZXhpdC5w
eQotLS0gc3JjLm9yaWcvTGliL2F0ZXhpdC5weQlXZWQgRGVjIDMxIDE4OjAwOjAwIDE5NjkK
KysrIHNyYy9MaWIvYXRleGl0LnB5CUZyaSBKdW4gMjMgMTc6Mjc6MzIgMjAwMApAQCAtMCww
ICsxLDU0IEBACisiIiIKK2F0ZXhpdC5weSAtIGFsbG93IHByb2dyYW1tZXIgdG8gZGVmaW5l
IG11bHRpcGxlIGV4aXQgZnVuY3Rpb25zIHRvIGJlIGV4ZWN1dGVkCit1cG9uIG5vcm1hbCBw
cm9ncmFtIHRlcm1pbmF0aW9uLgorCitPbmUgcHVibGljIGZ1bmN0aW9uLCByZWdpc3Rlciwg
aXMgZGVmaW5lZC4gIAorIiIiCisKK19leGl0aGFuZGxlcnMgPSBbXQorZGVmIF9ydW5fZXhp
dGZ1bmNzKCk6CisgICAgIiIicnVuIGFueSByZWdpc3RlcmVkIGV4aXQgZnVuY3Rpb25zCisK
KyAgICBfZXhpdGhhbmRsZXJzIGlzIHRyYXZlcnNlZCBpbiByZXZlcnNlIG9yZGVyIHNvIGZ1
bmN0aW9ucyBhcmUgZXhlY3V0ZWQKKyAgICBsYXN0IGluLCBmaXJzdCBvdXQuCisgICAgIiIi
CisgICAgCisgICAgd2hpbGUgX2V4aXRoYW5kbGVyczoKKyAgICAgICAgZnVuYywgdGFyZ3Ms
IGthcmdzID0gX2V4aXRoYW5kbGVyc1stMV0KKyAgICAgICAgYXBwbHkoZnVuYywgdGFyZ3Ms
IGthcmdzKQorICAgICAgICBfZXhpdGhhbmRsZXJzLnJlbW92ZShfZXhpdGhhbmRsZXJzWy0x
XSkKKworZGVmIHJlZ2lzdGVyKGZ1bmMsICp0YXJncywgKiprYXJncyk6CisgICAgIiIicmVn
aXN0ZXIgYSBmdW5jdGlvbiB0byBiZSBleGVjdXRlZCB1cG9uIG5vcm1hbCBwcm9ncmFtIHRl
cm1pbmF0aW9uCisKKyAgICBmdW5jIC0gZnVuY3Rpb24gdG8gYmUgY2FsbGVkIGF0IGV4aXQK
KyAgICB0YXJncyAtIG9wdGlvbmFsIGFyZ3VtZW50cyB0byBwYXNzIHRvIGZ1bmMKKyAgICBr
YXJncyAtIG9wdGlvbmFsIGtleXdvcmQgYXJndW1lbnRzIHRvIHBhc3MgdG8gZnVuYworICAg
ICIiIgorICAgIF9leGl0aGFuZGxlcnMuYXBwZW5kKChmdW5jLCB0YXJncywga2FyZ3MpKQor
CitpbXBvcnQgc3lzCit0cnk6CisgICAgeCA9IHN5cy5leGl0ZnVuYworZXhjZXB0IEF0dHJp
YnV0ZUVycm9yOgorICAgIHN5cy5leGl0ZnVuYyA9IF9ydW5fZXhpdGZ1bmNzCitlbHNlOgor
ICAgICMgaWYgeCBpc24ndCBvdXIgb3duIGV4aXQgZnVuYyBleGVjdXRpdmUsIGFzc3VtZSBp
dCdzIGFub3RoZXIKKyAgICAjIHJlZ2lzdGVyZWQgZXhpdCBmdW5jdGlvbiAtIGFwcGVuZCBp
dCB0byBvdXIgbGlzdC4uLgorICAgIGlmIHggIT0gX3J1bl9leGl0ZnVuY3M6CisgICAgICAg
IHJlZ2lzdGVyKHgpCitkZWwgc3lzCisKK2lmIF9fbmFtZV9fID09ICJfX21haW5fXyI6Cisg
ICAgZGVmIHgxKCk6CisgICAgICAgIHByaW50ICJydW5uaW5nIHgxIgorICAgIGRlZiB4Mihu
KToKKyAgICAgICAgcHJpbnQgInJ1bm5pbmcgeDIoJXMpIiAlIGBuYAorICAgIGRlZiB4Myhu
LCBrd2Q9Tm9uZSk6CisgICAgICAgIHByaW50ICJydW5uaW5nIHgzKCVzLCBrd2Q9JXMpIiAl
IChgbmAsIGBrd2RgKQorCisgICAgcmVnaXN0ZXIoeDEpCisgICAgcmVnaXN0ZXIoeDIsIDEy
KQorICAgIHJlZ2lzdGVyKHgzLCA1LCAiYmFyIikKKyAgICByZWdpc3Rlcih4MywgIm5vIGt3
ZCBhcmdzIikKKwpkaWZmIC1OYXVyIHNyYy5vcmlnL0xpYi90ZXN0L291dHB1dC90ZXN0X2F0
ZXhpdCBzcmMvTGliL3Rlc3Qvb3V0cHV0L3Rlc3RfYXRleGl0Ci0tLSBzcmMub3JpZy9MaWIv
dGVzdC9vdXRwdXQvdGVzdF9hdGV4aXQJV2VkIERlYyAzMSAxODowMDowMCAxOTY5CisrKyBz
cmMvTGliL3Rlc3Qvb3V0cHV0L3Rlc3RfYXRleGl0CUZyaSBKdW4gMjMgMTc6Mjg6NTMgMjAw
MApAQCAtMCwwICsxLDQgQEAKK3Rlc3RfYXRleGl0CitoYW5kbGVyMiAoNywpIHsna3cnOiAn
YWJjJ30KK2hhbmRsZXIyICgpIHt9CitoYW5kbGVyMQpkaWZmIC1OYXVyIHNyYy5vcmlnL0xp
Yi90ZXN0L3Rlc3RfYXRleGl0LnB5IHNyYy9MaWIvdGVzdC90ZXN0X2F0ZXhpdC5weQotLS0g
c3JjLm9yaWcvTGliL3Rlc3QvdGVzdF9hdGV4aXQucHkJV2VkIERlYyAzMSAxODowMDowMCAx
OTY5CisrKyBzcmMvTGliL3Rlc3QvdGVzdF9hdGV4aXQucHkJRnJpIEp1biAyMyAxNzoyODoz
MSAyMDAwCkBAIC0wLDAgKzEsMjQgQEAKKyMgVGVzdCB0aGUgZXhpdCBtb2R1bGUKK2Zyb20g
dGVzdF9zdXBwb3J0IGltcG9ydCB2ZXJib3NlCitpbXBvcnQgYXRleGl0CisKK2RlZiBoYW5k
bGVyMSgpOgorICAgIHByaW50ICJoYW5kbGVyMSIKKworZGVmIGhhbmRsZXIyKCphcmdzLCAq
KmthcmdzKToKKyAgICBwcmludCAiaGFuZGxlcjIiLCBhcmdzLCBrYXJncworCisjIHNhdmUg
YW55IGV4aXQgZnVuY3Rpb25zIHRoYXQgbWF5IGhhdmUgYmVlbiByZWdpc3RlcmVkIGFzIHBh
cnQgb2YgdGhlCisjIHRlc3QgZnJhbWV3b3JrCitfZXhpdGhhbmRsZXJzID0gYXRleGl0Ll9l
eGl0aGFuZGxlcnMKK2F0ZXhpdC5fZXhpdGhhbmRsZXJzID0gW10KKworYXRleGl0LnJlZ2lz
dGVyKGhhbmRsZXIxKQorYXRleGl0LnJlZ2lzdGVyKGhhbmRsZXIyKQorYXRleGl0LnJlZ2lz
dGVyKGhhbmRsZXIyLCA3LCBrdz0iYWJjIikKKworIyBzaW11bGF0ZSBleGl0IGJlaGF2aW9y
IGJ5IGNhbGxpbmcgYXRleGl0Ll9ydW5fZXhpdGZ1bmNzIGRpcmVjdGx5Li4uCithdGV4aXQu
X3J1bl9leGl0ZnVuY3MoKQorCisjIHJlc3RvcmUgZXhpdCBoYW5kbGVycworYXRleGl0Ll9l
eGl0aGFuZGxlcnMgPSBfZXhpdGhhbmRsZXJzCg==

--0bkw+IZ+u3--