Experts index¶
This document has tables that list Python Modules, Tools, Platforms and Interest Areas and GitHub names for each item that indicate a maintainer or an expert in the field. This list is intended to be used by issue submitters, issue triage people, and other issue participants to find people to @mention or add as reviewers to issues and pull requests. People on this list may be asked to render final judgment on a feature or bug. If no active maintainer is listed for a given module, then questionable changes should be discussed on the Core Development Discourse category, while any other issues can and should be decided by any committer.
Developers can choose to follow labels, so if a label that they are following is added to an issue or pull request, they will be notified automatically. The .github/CODEOWNERS file is also used to indicate maintainers that will be automatically added as reviewers to pull requests.
Unless a name is followed by a ‘*’, you should never assign an issue to that person. Names followed by a ‘*’ may be assigned issues involving the module or topic.
Names followed by a ‘^’ indicate old bugs.python.org usernames, for people that did not transition to GitHub.
The Platform and Interest Area tables list broader fields in which various people have expertise. These people can also be contacted for help, opinions, and decisions when issues involve their areas.
If a listed maintainer does not respond to requests for comment for an extended period (three weeks or more), they should be marked as inactive in this list by placing the word ‘inactive’ in parenthesis behind their tracker id. They are of course free to remove that inactive mark at any time.
Committers should update these tables as their areas of expertise widen. New topics may be added to the Interest Area table at will.
The existence of this list is not meant to indicate that these people must be contacted for decisions; it is, rather, a resource to be used by non-committers to find responsible parties, and by committers who do not feel qualified to make a decision in a particular context.
Stdlib¶
Module |
Maintainers |
---|---|
__future__ |
|
__main__ |
gvanrossum, ncoghlan |
_thread |
|
abc |
|
argparse |
|
array |
|
ast |
benjaminp, pablogsal, isidentical, JelleZijlstra, eclips4 |
asyncio |
1st1, asvetlov, gvanrossum, graingert, kumaraditya303, willingc |
atexit |
|
base64 |
|
bdb |
|
binascii |
|
bisect |
rhettinger* |
builtins |
|
bz2 |
|
calendar |
|
cmath |
|
cmd |
|
code |
|
codecs |
malemburg, doerwalter |
codeop |
|
collections |
rhettinger* |
collections.abc |
rhettinger*, stutzbach^ |
colorsys |
|
compileall |
carljm |
concurrent.futures |
pitrou, brianquinlan, gpshead* |
configparser |
ambv* |
contextlib |
ncoghlan, 1st1 |
contextvars |
|
copy |
avassalotti |
copyreg |
avassalotti |
cProfile |
|
csv |
smontanaro (inactive) |
ctypes |
theller (inactive), abalkin, amauryfa, meadori |
curses |
Yhg1s |
dataclasses |
ericvsmith*, carljm |
datetime |
abalkin, pganssle |
dbm |
|
decimal |
facundobatista, rhettinger |
difflib |
tim-one (inactive) |
dis |
1st1 |
doctest |
tim-one (inactive) |
warsaw, bitdancer*, maxking |
|
encodings |
malemburg |
ensurepip |
ncoghlan, dstufft, pradyunsg, pfmoore |
enum |
eliben*, warsaw, ethanfurman* |
errno |
Yhg1s |
faulthandler |
vstinner, gpshead |
fcntl |
Yhg1s |
filecmp |
|
fileinput |
|
fnmatch |
|
fractions |
|
ftplib |
giampaolo* |
functools |
rhettinger* |
gc |
pitrou, pablogsal |
getopt |
|
getpass |
|
gettext |
|
glob |
|
grp |
|
gzip |
|
hashlib |
tiran, gpshead* |
heapq |
rhettinger*, stutzbach^ |
hmac |
tiran, gpshead* |
html |
ezio-melotti* |
http |
|
idlelib |
kbkaiser (inactive), terryjreedy*, serwy (inactive), taleinat |
imaplib |
|
imghdr |
|
importlib |
brettcannon |
inspect |
1st1 |
io |
benjaminp, stutzbach^ |
ipaddress |
pmoody^ |
itertools |
rhettinger* |
json |
etrepum (inactive), ezio-melotti, rhettinger |
keyword |
|
libmpdec |
|
linecache |
|
locale |
malemburg |
logging |
vsajip |
lzma |
|
mailbox |
|
marshal |
|
math |
rhettinger, stutzbach^ |
mimetypes |
|
mmap |
Yhg1s |
modulefinder |
theller (inactive), jvr^ |
msilib |
|
msvcrt |
|
multiprocessing |
applio*, pitrou, jnoller^ (inactive), sbt^ (inactive), gpshead* |
netrc |
|
nis |
|
nntplib |
|
numbers |
|
operator |
|
optparse |
mitsuhiko |
os |
|
os.path |
serhiy-storchaka |
ossaudiodev |
|
parser |
pablogsal |
pathlib |
barneygale* |
pdb |
gaogaotiantian |
pickle |
avassalotti |
pickletools |
avassalotti |
pipes |
|
pkgutil |
|
platform |
malemburg |
plistlib |
|
poplib |
|
posix |
larryhastings, gpshead |
pprint |
freddrake |
profile |
|
pstats |
|
pty |
Yhg1s* |
pwd |
|
py_compile |
carljm |
pyclbr |
isidentical |
pydoc |
AA-Turner |
queue |
rhettinger* |
quopri |
|
random |
rhettinger |
re |
ezio-melotti, serhiy-storchaka |
readline |
Yhg1s |
reprlib |
|
resource |
Yhg1s |
rlcompleter |
|
runpy |
ncoghlan |
sched |
|
secrets |
|
select |
|
selectors |
neologix^, giampaolo |
shelve |
|
shlex |
|
shutil |
tarekziade, giampaolo |
signal |
gpshead |
site |
|
smtplib |
|
sndhdr |
|
socket |
gpshead |
socketserver |
|
spwd |
|
sqlite3 |
ghaering^, erlend-aasland* |
ssl |
jackjansen, tiran, dstufft, alex |
stat |
tiran |
statistics |
stevendaprano, rhettinger |
string |
|
stringprep |
|
struct |
meadori |
subprocess |
astrand^ (inactive), giampaolo, gpshead* |
symtable |
benjaminp |
sys |
|
sysconfig |
FFY00 |
syslog |
jafo^* |
tabnanny |
tim-one (inactive) |
tarfile |
gustaebel |
tempfile |
|
termios |
Yhg1s |
test |
ezio-melotti |
textwrap |
|
threading |
pitrou, gpshead |
time |
abalkin, pganssle |
timeit |
|
tkinter |
gpolo^, serhiy-storchaka |
token |
|
tokenize |
meadori |
tomllib |
hauntsaninja* |
trace |
abalkin |
traceback |
iritkatriel |
tracemalloc |
vstinner |
tty |
Yhg1s* |
turtle |
gregorlingl^, willingc |
turtledemo |
terryjreedy* |
types |
1st1 |
typing |
gvanrossum, JelleZijlstra*, AlexWaygood*, carljm, sobolevn* |
unicodedata |
malemburg, ezio-melotti |
unittest |
voidspace*, ezio-melotti, rbtcollins, gpshead |
unittest.mock |
voidspace* |
urllib |
orsenthil |
uu |
|
uuid |
|
venv |
vsajip |
warnings |
|
wave |
|
weakref |
freddrake |
webbrowser |
|
winreg |
stutzbach^ |
winsound |
|
wsgiref |
pjenvey |
xdrlib |
|
xml.dom |
|
xml.dom.minidom |
|
xml.dom.pulldom |
|
xml.etree |
eliben*, scoder |
xml.parsers.expat |
|
xml.sax |
|
xml.sax.handler |
|
xml.sax.saxutils |
|
xml.sax.xmlreader |
|
xmlrpc |
|
zipapp |
pfmoore |
zipfile |
alanmcintyre^, serhiy-storchaka, Yhg1s, gpshead |
zipimport |
Yhg1s* |
zlib |
Yhg1s, gpshead* |
Tools¶
Tool |
Maintainers |
---|---|
Argument Clinic |
larryhastings, AlexWaygood*, erlend-aasland |
Deepfreeze |
gvanrossum, kumaraditya303 |
PEG Generator |
gvanrossum, pablogsal, lysnikolaou |
Platforms¶
For official contacts for supported platforms, see PEP 11.
Platforms listed here are not necessarily supported by CPython. Some of the experts listed here maintain and distribute Python for “their” platform as a third-party project.
Platform |
Maintainers |
---|---|
AIX |
edelsohn, ayappanec |
Android |
mhsmith |
Cygwin |
jlt63^, stutzbach^ |
Emscripten |
hoodmane, pmp-p, rdb, rth, ryanking13 |
FreeBSD |
|
HP-UX |
|
iOS |
freakboy3742, ned-deily |
Linux |
|
macOS |
ronaldoussoren, ned-deily, freakboy3742 |
NetBSD1 |
|
OS2/EMX |
aimacintyre^ |
Solaris/OpenIndiana |
jcea |
Windows |
tjguk, zware, zooba, pfmoore |
JVM/Java |
frank.wierzbicki^ |
Miscellaneous¶
Interest Area |
Maintainers |
---|---|
algorithms |
rhettinger* |
argument clinic |
larryhastings, AlexWaygood*, erlend-aasland |
ast/compiler |
benjaminp, 1st1, pablogsal, markshannon, isidentical, brandtbucher, carljm, iritkatriel |
autoconf/makefiles |
Yhg1s* |
bsd |
|
issue tracker |
ezio-melotti |
buildbots |
zware, pablogsal |
bytecode |
benjaminp, 1st1, markshannon, brandtbucher, carljm, iritkatriel |
context managers |
ncoghlan |
core workflow |
Mariatta, ezio-melotti, hugovk, AA-Turner |
cryptography |
gpshead, dstufft |
data formats |
|
database |
malemburg |
devguide |
merwok, ezio-melotti, willingc, Mariatta, hugovk, AA-Turner |
documentation |
ezio-melotti, merwok, JulienPalard, willingc, hugovk, AA-Turner, AlexWaygood* |
emoji |
Mariatta |
extension modules |
encukou, ncoghlan |
filesystem |
giampaolo |
frozen modules |
ericsnowcurrently, gvanrossum, kumaraditya303 |
f-strings |
ericvsmith* |
GUI |
|
i18n |
malemburg, merwok |
import machinery |
brettcannon, ncoghlan, ericsnowcurrently |
io |
benjaminp, stutzbach^, gpshead |
JIT |
brandtbucher* |
locale |
malemburg |
mathematics |
malemburg, stutzbach^, rhettinger |
memory management |
tim-one, malemburg, Yhg1s |
memoryview |
|
networking |
giampaolo, gpshead |
object model |
benjaminp, Yhg1s |
packaging |
tarekziade, malemburg, alexis^, merwok, dstufft, pfmoore |
pattern matching |
brandtbucher* |
peg parser |
gvanrossum, pablogsal, lysnikolaou |
performance |
vstinner, serhiy-storchaka, 1st1, rhettinger, markshannon, brandtbucher, carljm, Fidget-Spinner, AlexWaygood* |
pip |
ncoghlan, dstufft, pfmoore, Marcus.Smith^, pradyunsg |
py3 transition |
benjaminp |
release management |
tarekziade, malemburg, benjaminp, warsaw, gvanrossum, anthonybaxter^, merwok, ned-deily, birkenfeld, JulienPalard |
runtime lifecycle |
ericsnowcurrently, kumaraditya303, zooba |
str.format |
ericvsmith* |
subinterpreters |
ericsnowcurrently, kumaraditya303 |
symbol table |
JelleZijlstra, carljm |
testing |
voidspace, ezio-melotti |
test coverage |
|
threads |
gpshead |
time and dates |
malemburg, abalkin, pganssle |
unicode |
malemburg, ezio-melotti, benjaminp |
version control |
merwok, ezio-melotti |
Documentation translations¶
For a list of translators, see this table about translations.