# These come from looking through setup.py

array arraymodule.c
cmath cmathmodule.c
math mathmodule.c
_contextvars _contextvarsmodule.c
time timemodule.c
_datetime _datetimemodule.c
_zoneinfo _zoneinfo.c
_random _randommodule.c
_bisect _bisectmodule.c
_heapq _heapqmodule.c
_pickle _pickle.c
_json _json.c
_lsprof _lsprof.c rotatingtree.c
unicodedata unicodedata.c
_opcode _opcode.c
_asyncio _asynciomodule.c
_abc _abc.c
_queue _queuemodule.c
_statistics _statisticsmodule.c
_typing _typingmodule.c
fcntl fcntlmodule.c
pwd pwdmodule.c
grp grpmodule.c
select selectmodule.c
mmap mmapmodule.c
syslog syslogmodule.c
_xxsubinterpreters _xxsubinterpretersmodule.c
_csv _csv.c
_posixsubprocess _posixsubprocess.c
_socket socketmodule.c
termios termios.c
resource resource.c
zlib zlibmodule.c
binascii binascii.c
pyexpat pyexpat.c
_multibytecodec cjkcodecs/multibytecodec.c
_codecs_kr cjkcodecs/_codecs_kr.c
_codecs_jp cjkcodecs/_codecs_jp.c
_codecs_cn cjkcodecs/_codecs_cn.c
_codecs_tw cjkcodecs/_codecs_tw.c
_codecs_hk cjkcodecs/_codecs_hk.c
_codecs_iso2022 cjkcodecs/_codecs_iso2022.c

_multiprocessing _multiprocessing/multiprocessing.c _multiprocessing/semaphore.c

_ctypes _ctypes/_ctypes.c _ctypes/callbacks.c _ctypes/callproc.c _ctypes/stgdict.c _ctypes/cfield.c

# TODO: get this working with boringssl
#_ssl _ssl.c _ssl/debughelpers.c
#_hashlib _hashopenssl.c

_blake2 _blake2/blake2module.c _blake2/blake2b_impl.c _blake2/blake2s_impl.c
_md5 md5module.c
_sha1 sha1module.c
_sha256 sha256module.c
_sha512 sha512module.c
_sha3 _sha3/sha3module.c

_struct _struct.c

_sqlite3 _sqlite/blob.c _sqlite/connection.c _sqlite/cursor.c _sqlite/microprotocols.c _sqlite/module.c _sqlite/prepare_protocol.c _sqlite/row.c _sqlite/statement.c _sqlite/util.c
_elementtree _elementtree.c
_bz2 _bz2module.c
