blob: 6f34962bd72d4fc3ac8dab77271180e4fb3dfa23 [file] [log] [blame]
Guido van Rossum87d5e701996-05-28 22:50:17 +00001/* Module configuration */
2
3/* This file contains the table of built-in modules.
Steve Dower05f01d82017-09-07 11:49:23 -07004 See create_builtin() in import.c. */
Guido van Rossum87d5e701996-05-28 22:50:17 +00005
6#include "Python.h"
7
Ivan Levkivskyi03e3c342018-02-18 12:41:58 +00008extern PyObject* PyInit__abc(void);
Martin v. Löwis6a880a82008-06-11 05:48:29 +00009extern PyObject* PyInit_array(void);
Martin v. Löwis6a880a82008-06-11 05:48:29 +000010extern PyObject* PyInit_audioop(void);
Martin v. Löwis6a880a82008-06-11 05:48:29 +000011extern PyObject* PyInit_binascii(void);
12extern PyObject* PyInit_cmath(void);
13extern PyObject* PyInit_errno(void);
Victor Stinner024e37a2011-03-31 01:31:06 +020014extern PyObject* PyInit_faulthandler(void);
Victor Stinnered3b0bc2013-11-23 12:27:24 +010015extern PyObject* PyInit__tracemalloc(void);
Martin v. Löwis6a880a82008-06-11 05:48:29 +000016extern PyObject* PyInit_gc(void);
17extern PyObject* PyInit_math(void);
18extern PyObject* PyInit__md5(void);
19extern PyObject* PyInit_nt(void);
Antoine Pitroua85017f2013-04-20 19:21:44 +020020extern PyObject* PyInit__operator(void);
Giampaolo Rodola'e09fb712014-04-04 15:34:17 +020021extern PyObject* PyInit__signal(void);
Martin v. Löwis6a880a82008-06-11 05:48:29 +000022extern PyObject* PyInit__sha1(void);
23extern PyObject* PyInit__sha256(void);
24extern PyObject* PyInit__sha512(void);
Christian Heimes6fe2a752016-09-07 11:58:24 +020025extern PyObject* PyInit__sha3(void);
Christian Heimes7ba83372016-09-07 01:45:22 +020026extern PyObject* PyInit__blake2(void);
Martin v. Löwis6a880a82008-06-11 05:48:29 +000027extern PyObject* PyInit_time(void);
28extern PyObject* PyInit__thread(void);
Guido van Rossum29c1ea51997-08-07 00:11:34 +000029#ifdef WIN32
Martin v. Löwis6a880a82008-06-11 05:48:29 +000030extern PyObject* PyInit_msvcrt(void);
31extern PyObject* PyInit__locale(void);
Guido van Rossum29c1ea51997-08-07 00:11:34 +000032#endif
Martin v. Löwis6a880a82008-06-11 05:48:29 +000033extern PyObject* PyInit__codecs(void);
34extern PyObject* PyInit__weakref(void);
Zachary Ware310b0522018-02-11 10:43:48 -060035/* XXX: These two should really be extracted to standalone extensions. */
Martin v. Löwis6a880a82008-06-11 05:48:29 +000036extern PyObject* PyInit_xxsubtype(void);
Zachary Ware310b0522018-02-11 10:43:48 -060037extern PyObject* PyInit__xxsubinterpreters(void);
Martin v. Löwis6a880a82008-06-11 05:48:29 +000038extern PyObject* PyInit__random(void);
39extern PyObject* PyInit_itertools(void);
40extern PyObject* PyInit__collections(void);
41extern PyObject* PyInit__heapq(void);
42extern PyObject* PyInit__bisect(void);
43extern PyObject* PyInit__symtable(void);
44extern PyObject* PyInit_mmap(void);
45extern PyObject* PyInit__csv(void);
46extern PyObject* PyInit__sre(void);
47extern PyObject* PyInit_parser(void);
48extern PyObject* PyInit_winreg(void);
49extern PyObject* PyInit__struct(void);
Alexander Belopolskycf86e362010-07-23 19:25:47 +000050extern PyObject* PyInit__datetime(void);
Martin v. Löwis6a880a82008-06-11 05:48:29 +000051extern PyObject* PyInit__functools(void);
52extern PyObject* PyInit__json(void);
Zachary Wared01db1c2017-09-06 17:29:37 -070053#ifdef _Py_HAVE_ZLIB
Martin v. Löwis6a880a82008-06-11 05:48:29 +000054extern PyObject* PyInit_zlib(void);
Zachary Wared01db1c2017-09-06 17:29:37 -070055#endif
Guido van Rossum87d5e701996-05-28 22:50:17 +000056
Martin v. Löwis6a880a82008-06-11 05:48:29 +000057extern PyObject* PyInit__multibytecodec(void);
58extern PyObject* PyInit__codecs_cn(void);
59extern PyObject* PyInit__codecs_hk(void);
60extern PyObject* PyInit__codecs_iso2022(void);
61extern PyObject* PyInit__codecs_jp(void);
62extern PyObject* PyInit__codecs_kr(void);
63extern PyObject* PyInit__codecs_tw(void);
Antoine Pitrou23bba4c2012-04-18 20:51:15 +020064extern PyObject* PyInit__winapi(void);
Martin v. Löwis6a880a82008-06-11 05:48:29 +000065extern PyObject* PyInit__lsprof(void);
66extern PyObject* PyInit__ast(void);
Benjamin Peterson4fa88fa2009-03-04 00:14:51 +000067extern PyObject* PyInit__io(void);
Amaury Forgeot d'Arc9d865c92008-06-12 22:27:27 +000068extern PyObject* PyInit__pickle(void);
Martin v. Löwis6a880a82008-06-11 05:48:29 +000069extern PyObject* PyInit_atexit(void);
70extern PyObject* _PyWarnings_Init(void);
Georg Brandl66c221e2010-10-14 07:04:07 +000071extern PyObject* PyInit__string(void);
Christian Heimesc44ff862013-06-23 15:46:56 +020072extern PyObject* PyInit__stat(void);
Christian Heimes71135ac2013-11-24 01:11:57 +010073extern PyObject* PyInit__opcode(void);
Martin v. Löwisdaea3e52004-01-21 07:54:02 +000074
Steve Dower4c70d9f2019-02-02 14:36:23 -080075extern PyObject* PyInit__contextvars(void);
76
Martin v. Löwis69206522003-04-18 10:51:14 +000077/* tools/freeze/makeconfig.py marker for additional "extern" */
Guido van Rossum87d5e701996-05-28 22:50:17 +000078/* -- ADDMODULE MARKER 1 -- */
79
Martin v. Löwis6a880a82008-06-11 05:48:29 +000080extern PyObject* PyMarshal_Init(void);
Benjamin Petersonc65ef772018-01-29 11:33:57 -080081extern PyObject* PyInit__imp(void);
Guido van Rossum87d5e701996-05-28 22:50:17 +000082
Guido van Rossum2b713b21997-04-29 20:46:45 +000083struct _inittab _PyImport_Inittab[] = {
Guido van Rossum87d5e701996-05-28 22:50:17 +000084
Ivan Levkivskyi03e3c342018-02-18 12:41:58 +000085 {"_abc", PyInit__abc},
Antoine Pitrouf95a1b32010-05-09 15:52:27 +000086 {"array", PyInit_array},
87 {"_ast", PyInit__ast},
Antoine Pitrouf95a1b32010-05-09 15:52:27 +000088 {"audioop", PyInit_audioop},
Antoine Pitrouf95a1b32010-05-09 15:52:27 +000089 {"binascii", PyInit_binascii},
90 {"cmath", PyInit_cmath},
91 {"errno", PyInit_errno},
Victor Stinner024e37a2011-03-31 01:31:06 +020092 {"faulthandler", PyInit_faulthandler},
Antoine Pitrouf95a1b32010-05-09 15:52:27 +000093 {"gc", PyInit_gc},
94 {"math", PyInit_math},
95 {"nt", PyInit_nt}, /* Use the NT os functions, not posix */
Antoine Pitroua85017f2013-04-20 19:21:44 +020096 {"_operator", PyInit__operator},
Brett Cannonbe9acef2014-04-04 10:36:43 -040097 {"_signal", PyInit__signal},
Antoine Pitrouf95a1b32010-05-09 15:52:27 +000098 {"_md5", PyInit__md5},
99 {"_sha1", PyInit__sha1},
100 {"_sha256", PyInit__sha256},
101 {"_sha512", PyInit__sha512},
Christian Heimes6fe2a752016-09-07 11:58:24 +0200102 {"_sha3", PyInit__sha3},
Christian Heimes7ba83372016-09-07 01:45:22 +0200103 {"_blake2", PyInit__blake2},
Antoine Pitrouf95a1b32010-05-09 15:52:27 +0000104 {"time", PyInit_time},
Antoine Pitrouf95a1b32010-05-09 15:52:27 +0000105 {"_thread", PyInit__thread},
Guido van Rossum29c1ea51997-08-07 00:11:34 +0000106#ifdef WIN32
Antoine Pitrouf95a1b32010-05-09 15:52:27 +0000107 {"msvcrt", PyInit_msvcrt},
108 {"_locale", PyInit__locale},
Guido van Rossum29c1ea51997-08-07 00:11:34 +0000109#endif
Victor Stinnered3b0bc2013-11-23 12:27:24 +0100110 {"_tracemalloc", PyInit__tracemalloc},
Antoine Pitrou23bba4c2012-04-18 20:51:15 +0200111 /* XXX Should _winapi go in a WIN32 block? not WIN64? */
112 {"_winapi", PyInit__winapi},
Guido van Rossum87d5e701996-05-28 22:50:17 +0000113
Antoine Pitrouf95a1b32010-05-09 15:52:27 +0000114 {"_codecs", PyInit__codecs},
115 {"_weakref", PyInit__weakref},
116 {"_random", PyInit__random},
117 {"_bisect", PyInit__bisect},
118 {"_heapq", PyInit__heapq},
119 {"_lsprof", PyInit__lsprof},
120 {"itertools", PyInit_itertools},
121 {"_collections", PyInit__collections},
122 {"_symtable", PyInit__symtable},
123 {"mmap", PyInit_mmap},
124 {"_csv", PyInit__csv},
125 {"_sre", PyInit__sre},
126 {"parser", PyInit_parser},
127 {"winreg", PyInit_winreg},
128 {"_struct", PyInit__struct},
Alexander Belopolskycf86e362010-07-23 19:25:47 +0000129 {"_datetime", PyInit__datetime},
Antoine Pitrouf95a1b32010-05-09 15:52:27 +0000130 {"_functools", PyInit__functools},
131 {"_json", PyInit__json},
Guido van Rossum76bd6892000-03-11 00:13:14 +0000132
Antoine Pitrouf95a1b32010-05-09 15:52:27 +0000133 {"xxsubtype", PyInit_xxsubtype},
Zachary Ware310b0522018-02-11 10:43:48 -0600134 {"_xxsubinterpreters", PyInit__xxsubinterpreters},
Zachary Wared01db1c2017-09-06 17:29:37 -0700135#ifdef _Py_HAVE_ZLIB
Antoine Pitrouf95a1b32010-05-09 15:52:27 +0000136 {"zlib", PyInit_zlib},
Zachary Wared01db1c2017-09-06 17:29:37 -0700137#endif
Antoine Pitrouf95a1b32010-05-09 15:52:27 +0000138
139 /* CJK codecs */
140 {"_multibytecodec", PyInit__multibytecodec},
141 {"_codecs_cn", PyInit__codecs_cn},
142 {"_codecs_hk", PyInit__codecs_hk},
143 {"_codecs_iso2022", PyInit__codecs_iso2022},
144 {"_codecs_jp", PyInit__codecs_jp},
145 {"_codecs_kr", PyInit__codecs_kr},
146 {"_codecs_tw", PyInit__codecs_tw},
Martin v. Löwisdaea3e52004-01-21 07:54:02 +0000147
Martin v. Löwis69206522003-04-18 10:51:14 +0000148/* tools/freeze/makeconfig.py marker for additional "_inittab" entries */
Guido van Rossum87d5e701996-05-28 22:50:17 +0000149/* -- ADDMODULE MARKER 2 -- */
150
Antoine Pitrouf95a1b32010-05-09 15:52:27 +0000151 /* This module "lives in" with marshal.c */
152 {"marshal", PyMarshal_Init},
Guido van Rossum87d5e701996-05-28 22:50:17 +0000153
Antoine Pitrouf95a1b32010-05-09 15:52:27 +0000154 /* This lives it with import.c */
Benjamin Petersonc65ef772018-01-29 11:33:57 -0800155 {"_imp", PyInit__imp},
Guido van Rossum87d5e701996-05-28 22:50:17 +0000156
Antoine Pitrouf95a1b32010-05-09 15:52:27 +0000157 /* These entries are here for sys.builtin_module_names */
Antoine Pitrouf95a1b32010-05-09 15:52:27 +0000158 {"builtins", NULL},
159 {"sys", NULL},
160 {"_warnings", _PyWarnings_Init},
Georg Brandl66c221e2010-10-14 07:04:07 +0000161 {"_string", PyInit__string},
Christian Heimes33fe8092008-04-13 13:53:33 +0000162
Antoine Pitrouf95a1b32010-05-09 15:52:27 +0000163 {"_io", PyInit__io},
164 {"_pickle", PyInit__pickle},
165 {"atexit", PyInit_atexit},
Christian Heimesc44ff862013-06-23 15:46:56 +0200166 {"_stat", PyInit__stat},
Christian Heimes71135ac2013-11-24 01:11:57 +0100167 {"_opcode", PyInit__opcode},
Guido van Rossum87d5e701996-05-28 22:50:17 +0000168
Steve Dower4c70d9f2019-02-02 14:36:23 -0800169 {"_contextvars", PyInit__contextvars},
170
Antoine Pitrouf95a1b32010-05-09 15:52:27 +0000171 /* Sentinel */
172 {0, 0}
Guido van Rossum87d5e701996-05-28 22:50:17 +0000173};