Día de los Muertos · Ofrenda

CPython's Dead Batteries

Every deleted file was a gift from someone. For the files we let go, and for the hands that made them: what is remembered never fully dies.

18departed files8,583lines laid to rest101people who tended them

Python

asynchat.py

Lib/

1999–2022

born with the words“A gift from Sam Rushing - modules asyncore and asynchat for the standard Python library. (Async socket support.)”— Guido van Rossum, 12 January 1999

Twenty-three years, ten months…rest now, finally still.
Tended by
Guido van Rossum, Andrew M. Kuchling, Victor Stinner and 16 more
Lived
23 years, 10 months, 58 commits
Died once before
moved away November 2021, brought back December 2021
Afterlife
its body lives on in Lib/test/support/asynchat.py
Laid to rest
by Nikita Sobolev: gh-72719: Remove asyncore and asynchat modules (#96580) e56e33d
Favorite offerings
asyncore collections warnings
Last words
return l

Python

asyncore.py

Lib/

1999–2022

born with the words“A gift from Sam Rushing - modules asyncore and asynchat for the standard Python library. (Async socket support.)”— Guido van Rossum, 12 January 1999

Moved. Reborn. Deleted. A restless asynchronous cycle.
Tended by
Giampaolo Rodolà, Andrew M. Kuchling, Josiah Carlson and 28 more
Lived
23 years, 10 months, 169 commits
Died once before
moved away November 2021, brought back December 2021
Afterlife
its body lives on in Lib/test/support/asyncore.py
Laid to rest
by Nikita Sobolev: gh-72719: Remove asyncore and asynchat modules (#96580) e56e33d
Favorite offerings
select socket sys time warnings
Last words
self.add_channel()
Unfinished business
XXX: can return either an address pair or None

Python

smtpd.py

Lib/

2001–2022

born with the words“Long ago, Guido suggested that I add this to the standard library. I'm now checking it in. I need to write some documentation for it, but I…”— Barry Warsaw, 31 January 2001

Gh-93243: Porting users was a fatal mistake for me.
Tended by
Giampaolo Rodolà, Barry Warsaw, Guido van Rossum and 23 more
Lived
21 years, 6 months, 81 commits
Died once before
moved away November 2021, brought back December 2021
Afterlife
moved to Lib/test/smtpd.py
Laid to rest
by Oleg Iarygin: gh-93243: Make smtpd private before porting its users (GH-93246) 56d16e8
Favorite offerings
sys os errno getopt time
Last words
pass
Unfinished business
XXX: currently there are no options we recognize.

Python

imp.py

Lib/

2012–2023

born with the words“Issue #13959: Rename imp to _imp and add Lib/imp.py and begin rewriting functionality in pure Python.”— Brett Cannon, 15 April 2012

imp – born of urgency, now just dust.
Tended by
Brett Cannon, Eric Snow, Nick Coghlan and 7 more
Lived
11 years, 68 commits
Laid to rest
by Barry Warsaw: gh-98040: Remove just the `imp` module (#98573) e1f1464
Favorite offerings
_imp importlib._bootstrap importlib._bootstrap_external importlib os
Last words
load_dynamic = None

Python

telnetlib.py

Lib/

1997–2023

born with the words“Decided to add the telnet library that I wrote long ago (it's still in the Demos/cwilib directory). Converted comments to doc strings and u…”— Guido van Rossum, 24 December 1997

Fifteen lives touched my code – a brief connection.
Tended by
Guido van Rossum, Martin v. Löwis, R. David Murray and 22 more
Lived
25 years, 5 months, 61 commits
Laid to rest
by Victor Stinner: gh-104773: PEP 594: Remove the telnetlib module (#104778) 9dc476b
Favorite offerings
sys socket selectors time warnings
Last words
test()

Python

cgi.py

Lib/

1995–2023

born with the words“new files”— Guido van Rossum, 12 January 1995

New files no more. Seven deprecations did me in.
Tended by
Guido van Rossum, Benjamin Peterson, Senthil Kumaran and 37 more
Lived
28 years, 4 months, 166 commits
Laid to rest
by Victor Stinner: gh-104773: PEP 594: Remove cgi and cgitb modules (#104775) 08d5923
Favorite offerings
io collections.abc sys os urllib.parse
Last words
test()
Unfinished business
XXX: Shouldn't, really

Python

cgitb.py

Lib/

2001–2023

born with the words“Initial check-in of cgitb. A few enhancements are pending, but this should work reliably.”— Ka-Ping Yee, 18 August 2001

Initial check-in. Gone before PEP 594 could finish.
Tended by
Georg Brandl, Guido van Rossum, Ka-Ping Yee and 15 more
Lived
21 years, 9 months, 42 commits
Laid to rest
by Victor Stinner: gh-104773: PEP 594: Remove cgi and cgitb modules (#104775) 08d5923
Favorite offerings
cgitb inspect keyword linecache os
Last words
context=context, format=format)

Python

nntplib.py

Lib/

1992–2023

born with the words“* change default line numbers for 'list' in pdb.py * changed eval() into getattr() in cmd.py * added dirname(), basename() and (dummy) norm…”— Guido van Rossum, 5 November 1992

Thirty years of servers; a half-finished question remained.
Tended by
Guido van Rossum, Antoine Pitrou, Dong-hee Na and 25 more
Lived
30 years, 6 months, 86 commits
Laid to rest
by Victor Stinner: gh-104773: PEP 594: Remove the nntplib module (#104894) ded5f1f
Favorite offerings
re socket collections datetime sys
Last words
s.quit()
Unfinished business
XXX: should we raise an error? Some servers might not

Python

imghdr.py

Lib/

1992–2023

born with the words“Initial revision”— Guido van Rossum, 27 May 1992

Deprecation survived; deletion did not prevail.
Tended by
Guido van Rossum, Benjamin Peterson, Serhiy Storchaka and 11 more
Lived
31 years, 28 commits
Laid to rest
by Victor Stinner: gh-104773: PEP 594: Remove the imghdr module (#104777) e399f46
Favorite offerings
os warnings sys glob
Last words
test()

Python

sndhdr.py

Lib/

1993–2023

born with the words“* toaiff.py: import whatsound instead of sndhdr * sndhdr.py: renamed to whatsound.py; use new aifc module for AIFF/AIFC * ftplib.py: added…”— Guido van Rossum, 1 June 1993

Twenty-nine years. Fifteen hands touched my code. Gone.
Tended by
Guido van Rossum, Fred Drake, Victor Stinner and 12 more
Lived
29 years, 12 months, 25 commits
Laid to rest
by Victor Stinner: gh-104773: PEP 594: Remove the sndhdr module (#104774) 7b00940
Favorite offerings
warnings collections aifc wave sys
Last words
test()

Python

sunau.py

Lib/

1993–2023

born with the words“aifc.py: added missing tell() method in AIFC write class; use audioop module as backup for cl module when reading or writing u-law compress…”— Sjoerd Mullender, 13 December 1993

XXX's last words: 'Must do some arithmetic...
Tended by
Serhiy Storchaka, Guido van Rossum, Sjoerd Mullender and 10 more
Lived
29 years, 5 months, 45 commits
Laid to rest
by Victor Stinner: gh-104773: PEP 594: Remove the sunau module (#104863) a5e0f5b
Favorite offerings
collections warnings builtins audioop
Last words
raise Error("mode must be 'r', 'rb', 'w', or 'wb'")
Unfinished business
XXX: must do some arithmetic here

Python

aifc.py

Lib/

1993–2023

born with the words“New module aifc to read and write AIFF-C and AIFF files. See (extensive) comments in the file for usage.”— Sjoerd Mullender, 22 January 1993

AIFF files still exist. I no longer do.
Tended by
Guido van Rossum, Sjoerd Mullender, Serhiy Storchaka and 23 more
Lived
30 years, 4 months, 92 commits
Laid to rest
by Victor Stinner: gh-104773: PEP 594: Remove the aifc module (#104933) 036da3b
Favorite offerings
struct builtins warnings math chunk
Last words
print("Done.")

Python

chunk.py

Lib/

1999–2023

born with the words“Patch/new code by Sjoerd Mullender: Separate the Chunk class out of the aifc module into a new "chunk" module.”— Guido van Rossum, 9 June 1999

Born of patches, ended by a promise – a long life.
Tended by
Guido van Rossum, Serhiy Storchaka, Fred Drake and 7 more
Lived
23 years, 11 months, 21 commits
Laid to rest
by Victor Stinner: gh-104773: PEP 594: Remove the chunk module (#104868) 77d7ec5
Favorite offerings
warnings struct
Last words
raise EOFError

Python

uu.py

Lib/

1994–2023

born with the words“mhlib.py: delay opening of sequences file so we don't overwrite it when putsequences is called with a bad argument rfc822.py: better handli…”— Guido van Rossum, 9 September 1994

Twenty-eight years, countless revisions. Let the legacy endure.
Tended by
Guido van Rossum, Antoine Pitrou, Jack Jansen and 16 more
Lived
28 years, 8 months, 49 commits
Laid to rest
by Victor Stinner: gh-104773: PEP 594: Remove the uu module (#104932) dbc8216
Favorite offerings
binascii os sys warnings optparse
Last words
test()

Python

xdrlib.py

Lib/

1996–2023

born with the words“XDR interface, evolved from Demo/rpc/xdr.py by Barry.”— Guido van Rossum, 19 August 1996

Twenty-six years. A long xdr existence concluded.
Tended by
Guido van Rossum, Barry Warsaw, Martin v. Löwis and 14 more
Lived
26 years, 9 months, 34 commits
Laid to rest
by Victor Stinner: gh-104773: PEP 594: Remove the xdrlib module (#104900) 087c1a6
Favorite offerings
struct io functools warnings
Last words
return self.unpack_farray(n, unpack_item)

Python

pipes.py

Lib/

1992–2023

born with the words“Misc changes and new modules. whrandom is "objectified". SOCKET.py is moved to the sgi subdirectory.”— Guido van Rossum, 18 October 1992

Seven months after deprecation; its purpose was complete.
Tended by
Guido van Rossum, Georg Brandl, Éric Araujo and 11 more
Lived
30 years, 7 months, 29 commits
Laid to rest
by Victor Stinner: gh-104773: PEP 594: Remove the pipes module (#104848) a4b7e9d
Favorite offerings
re os tempfile warnings shlex
Last words
return cmdlist

Python

mailcap.py

Lib/

1995–2023

born with the words“Initial revision”— Guido van Rossum, 30 September 1995

Initial revision. A long sleep, marked by a single commit.
Tended by
Guido van Rossum, Antoine Pitrou, Fred Drake and 11 more
Lived
27 years, 8 months, 25 commits
Laid to rest
by Victor Stinner: gh-104773: PEP 594: Remove the mailcap module (#104867) 9d457e1
Favorite offerings
os warnings re sys
Last words
test()
Unfinished business
XXX: This code should somehow check for the needsterminal flag.

Python

crypt.py

Lib/

2011–2023

born with the words“Issue #10924: Adding salt and Modular Crypt Format to crypt library.”— Sean Reifscheider, 22 February 2011

PEP 594 claimed its prize. Modular Crypt, gone.
Tended by
Brett Cannon, Christian Heimes, Victor Stinner and 5 more
Lived
12 years, 3 months, 13 commits
Laid to rest
by Victor Stinner: gh-104773: PEP 594: Remove the crypt module (#104908) e4127ea
Favorite offerings
sys _crypt errno string warnings
Last words
del _v, _add_method