Guido van Rossum | 87d5e70 | 1996-05-28 22:50:17 +0000 | [diff] [blame] | 1 | /* Module configuration */ |
| 2 | |
| 3 | /* This file contains the table of built-in modules. |
Steve Dower | 05f01d8 | 2017-09-07 11:49:23 -0700 | [diff] [blame] | 4 | See create_builtin() in import.c. */ |
Guido van Rossum | 87d5e70 | 1996-05-28 22:50:17 +0000 | [diff] [blame] | 5 | |
| 6 | #include "Python.h" |
| 7 | |
Ivan Levkivskyi | 03e3c34 | 2018-02-18 12:41:58 +0000 | [diff] [blame] | 8 | extern PyObject* PyInit__abc(void); |
Martin v. Löwis | 6a880a8 | 2008-06-11 05:48:29 +0000 | [diff] [blame] | 9 | extern PyObject* PyInit_array(void); |
Martin v. Löwis | 6a880a8 | 2008-06-11 05:48:29 +0000 | [diff] [blame] | 10 | extern PyObject* PyInit_audioop(void); |
Martin v. Löwis | 6a880a8 | 2008-06-11 05:48:29 +0000 | [diff] [blame] | 11 | extern PyObject* PyInit_binascii(void); |
| 12 | extern PyObject* PyInit_cmath(void); |
| 13 | extern PyObject* PyInit_errno(void); |
Victor Stinner | 024e37a | 2011-03-31 01:31:06 +0200 | [diff] [blame] | 14 | extern PyObject* PyInit_faulthandler(void); |
Victor Stinner | ed3b0bc | 2013-11-23 12:27:24 +0100 | [diff] [blame] | 15 | extern PyObject* PyInit__tracemalloc(void); |
Martin v. Löwis | 6a880a8 | 2008-06-11 05:48:29 +0000 | [diff] [blame] | 16 | extern PyObject* PyInit_gc(void); |
| 17 | extern PyObject* PyInit_math(void); |
| 18 | extern PyObject* PyInit__md5(void); |
| 19 | extern PyObject* PyInit_nt(void); |
Antoine Pitrou | a85017f | 2013-04-20 19:21:44 +0200 | [diff] [blame] | 20 | extern PyObject* PyInit__operator(void); |
Giampaolo Rodola' | e09fb71 | 2014-04-04 15:34:17 +0200 | [diff] [blame] | 21 | extern PyObject* PyInit__signal(void); |
Martin v. Löwis | 6a880a8 | 2008-06-11 05:48:29 +0000 | [diff] [blame] | 22 | extern PyObject* PyInit__sha1(void); |
| 23 | extern PyObject* PyInit__sha256(void); |
| 24 | extern PyObject* PyInit__sha512(void); |
Christian Heimes | 6fe2a75 | 2016-09-07 11:58:24 +0200 | [diff] [blame] | 25 | extern PyObject* PyInit__sha3(void); |
Dong-hee Na | 0a18ee4 | 2019-08-24 07:20:30 +0900 | [diff] [blame] | 26 | extern PyObject* PyInit__statistics(void); |
Christian Heimes | 7ba8337 | 2016-09-07 01:45:22 +0200 | [diff] [blame] | 27 | extern PyObject* PyInit__blake2(void); |
Martin v. Löwis | 6a880a8 | 2008-06-11 05:48:29 +0000 | [diff] [blame] | 28 | extern PyObject* PyInit_time(void); |
| 29 | extern PyObject* PyInit__thread(void); |
Guido van Rossum | 29c1ea5 | 1997-08-07 00:11:34 +0000 | [diff] [blame] | 30 | #ifdef WIN32 |
Martin v. Löwis | 6a880a8 | 2008-06-11 05:48:29 +0000 | [diff] [blame] | 31 | extern PyObject* PyInit_msvcrt(void); |
| 32 | extern PyObject* PyInit__locale(void); |
Guido van Rossum | 29c1ea5 | 1997-08-07 00:11:34 +0000 | [diff] [blame] | 33 | #endif |
Martin v. Löwis | 6a880a8 | 2008-06-11 05:48:29 +0000 | [diff] [blame] | 34 | extern PyObject* PyInit__codecs(void); |
| 35 | extern PyObject* PyInit__weakref(void); |
Zachary Ware | 310b052 | 2018-02-11 10:43:48 -0600 | [diff] [blame] | 36 | /* XXX: These two should really be extracted to standalone extensions. */ |
Martin v. Löwis | 6a880a8 | 2008-06-11 05:48:29 +0000 | [diff] [blame] | 37 | extern PyObject* PyInit_xxsubtype(void); |
Zachary Ware | 310b052 | 2018-02-11 10:43:48 -0600 | [diff] [blame] | 38 | extern PyObject* PyInit__xxsubinterpreters(void); |
Martin v. Löwis | 6a880a8 | 2008-06-11 05:48:29 +0000 | [diff] [blame] | 39 | extern PyObject* PyInit__random(void); |
| 40 | extern PyObject* PyInit_itertools(void); |
| 41 | extern PyObject* PyInit__collections(void); |
| 42 | extern PyObject* PyInit__heapq(void); |
| 43 | extern PyObject* PyInit__bisect(void); |
| 44 | extern PyObject* PyInit__symtable(void); |
| 45 | extern PyObject* PyInit_mmap(void); |
| 46 | extern PyObject* PyInit__csv(void); |
| 47 | extern PyObject* PyInit__sre(void); |
| 48 | extern PyObject* PyInit_parser(void); |
| 49 | extern PyObject* PyInit_winreg(void); |
| 50 | extern PyObject* PyInit__struct(void); |
Alexander Belopolsky | cf86e36 | 2010-07-23 19:25:47 +0000 | [diff] [blame] | 51 | extern PyObject* PyInit__datetime(void); |
Martin v. Löwis | 6a880a8 | 2008-06-11 05:48:29 +0000 | [diff] [blame] | 52 | extern PyObject* PyInit__functools(void); |
| 53 | extern PyObject* PyInit__json(void); |
Zachary Ware | d01db1c | 2017-09-06 17:29:37 -0700 | [diff] [blame] | 54 | #ifdef _Py_HAVE_ZLIB |
Martin v. Löwis | 6a880a8 | 2008-06-11 05:48:29 +0000 | [diff] [blame] | 55 | extern PyObject* PyInit_zlib(void); |
Zachary Ware | d01db1c | 2017-09-06 17:29:37 -0700 | [diff] [blame] | 56 | #endif |
Guido van Rossum | 87d5e70 | 1996-05-28 22:50:17 +0000 | [diff] [blame] | 57 | |
Martin v. Löwis | 6a880a8 | 2008-06-11 05:48:29 +0000 | [diff] [blame] | 58 | extern PyObject* PyInit__multibytecodec(void); |
| 59 | extern PyObject* PyInit__codecs_cn(void); |
| 60 | extern PyObject* PyInit__codecs_hk(void); |
| 61 | extern PyObject* PyInit__codecs_iso2022(void); |
| 62 | extern PyObject* PyInit__codecs_jp(void); |
| 63 | extern PyObject* PyInit__codecs_kr(void); |
| 64 | extern PyObject* PyInit__codecs_tw(void); |
Antoine Pitrou | 23bba4c | 2012-04-18 20:51:15 +0200 | [diff] [blame] | 65 | extern PyObject* PyInit__winapi(void); |
Martin v. Löwis | 6a880a8 | 2008-06-11 05:48:29 +0000 | [diff] [blame] | 66 | extern PyObject* PyInit__lsprof(void); |
| 67 | extern PyObject* PyInit__ast(void); |
Benjamin Peterson | 4fa88fa | 2009-03-04 00:14:51 +0000 | [diff] [blame] | 68 | extern PyObject* PyInit__io(void); |
Amaury Forgeot d'Arc | 9d865c9 | 2008-06-12 22:27:27 +0000 | [diff] [blame] | 69 | extern PyObject* PyInit__pickle(void); |
Martin v. Löwis | 6a880a8 | 2008-06-11 05:48:29 +0000 | [diff] [blame] | 70 | extern PyObject* PyInit_atexit(void); |
| 71 | extern PyObject* _PyWarnings_Init(void); |
Georg Brandl | 66c221e | 2010-10-14 07:04:07 +0000 | [diff] [blame] | 72 | extern PyObject* PyInit__string(void); |
Christian Heimes | c44ff86 | 2013-06-23 15:46:56 +0200 | [diff] [blame] | 73 | extern PyObject* PyInit__stat(void); |
Christian Heimes | 71135ac | 2013-11-24 01:11:57 +0100 | [diff] [blame] | 74 | extern PyObject* PyInit__opcode(void); |
Martin v. Löwis | daea3e5 | 2004-01-21 07:54:02 +0000 | [diff] [blame] | 75 | |
Steve Dower | 4c70d9f | 2019-02-02 14:36:23 -0800 | [diff] [blame] | 76 | extern PyObject* PyInit__contextvars(void); |
| 77 | |
Martin v. Löwis | 6920652 | 2003-04-18 10:51:14 +0000 | [diff] [blame] | 78 | /* tools/freeze/makeconfig.py marker for additional "extern" */ |
Guido van Rossum | 87d5e70 | 1996-05-28 22:50:17 +0000 | [diff] [blame] | 79 | /* -- ADDMODULE MARKER 1 -- */ |
| 80 | |
Martin v. Löwis | 6a880a8 | 2008-06-11 05:48:29 +0000 | [diff] [blame] | 81 | extern PyObject* PyMarshal_Init(void); |
Benjamin Peterson | c65ef77 | 2018-01-29 11:33:57 -0800 | [diff] [blame] | 82 | extern PyObject* PyInit__imp(void); |
Guido van Rossum | 87d5e70 | 1996-05-28 22:50:17 +0000 | [diff] [blame] | 83 | |
Guido van Rossum | 2b713b2 | 1997-04-29 20:46:45 +0000 | [diff] [blame] | 84 | struct _inittab _PyImport_Inittab[] = { |
Guido van Rossum | 87d5e70 | 1996-05-28 22:50:17 +0000 | [diff] [blame] | 85 | |
Ivan Levkivskyi | 03e3c34 | 2018-02-18 12:41:58 +0000 | [diff] [blame] | 86 | {"_abc", PyInit__abc}, |
Antoine Pitrou | f95a1b3 | 2010-05-09 15:52:27 +0000 | [diff] [blame] | 87 | {"array", PyInit_array}, |
| 88 | {"_ast", PyInit__ast}, |
Antoine Pitrou | f95a1b3 | 2010-05-09 15:52:27 +0000 | [diff] [blame] | 89 | {"audioop", PyInit_audioop}, |
Antoine Pitrou | f95a1b3 | 2010-05-09 15:52:27 +0000 | [diff] [blame] | 90 | {"binascii", PyInit_binascii}, |
| 91 | {"cmath", PyInit_cmath}, |
| 92 | {"errno", PyInit_errno}, |
Victor Stinner | 024e37a | 2011-03-31 01:31:06 +0200 | [diff] [blame] | 93 | {"faulthandler", PyInit_faulthandler}, |
Antoine Pitrou | f95a1b3 | 2010-05-09 15:52:27 +0000 | [diff] [blame] | 94 | {"gc", PyInit_gc}, |
| 95 | {"math", PyInit_math}, |
| 96 | {"nt", PyInit_nt}, /* Use the NT os functions, not posix */ |
Antoine Pitrou | a85017f | 2013-04-20 19:21:44 +0200 | [diff] [blame] | 97 | {"_operator", PyInit__operator}, |
Brett Cannon | be9acef | 2014-04-04 10:36:43 -0400 | [diff] [blame] | 98 | {"_signal", PyInit__signal}, |
Antoine Pitrou | f95a1b3 | 2010-05-09 15:52:27 +0000 | [diff] [blame] | 99 | {"_md5", PyInit__md5}, |
| 100 | {"_sha1", PyInit__sha1}, |
| 101 | {"_sha256", PyInit__sha256}, |
| 102 | {"_sha512", PyInit__sha512}, |
Christian Heimes | 6fe2a75 | 2016-09-07 11:58:24 +0200 | [diff] [blame] | 103 | {"_sha3", PyInit__sha3}, |
Christian Heimes | 7ba8337 | 2016-09-07 01:45:22 +0200 | [diff] [blame] | 104 | {"_blake2", PyInit__blake2}, |
Antoine Pitrou | f95a1b3 | 2010-05-09 15:52:27 +0000 | [diff] [blame] | 105 | {"time", PyInit_time}, |
Antoine Pitrou | f95a1b3 | 2010-05-09 15:52:27 +0000 | [diff] [blame] | 106 | {"_thread", PyInit__thread}, |
Dong-hee Na | 0a18ee4 | 2019-08-24 07:20:30 +0900 | [diff] [blame] | 107 | {"_statistics", PyInit__statistics}, |
Guido van Rossum | 29c1ea5 | 1997-08-07 00:11:34 +0000 | [diff] [blame] | 108 | #ifdef WIN32 |
Antoine Pitrou | f95a1b3 | 2010-05-09 15:52:27 +0000 | [diff] [blame] | 109 | {"msvcrt", PyInit_msvcrt}, |
| 110 | {"_locale", PyInit__locale}, |
Guido van Rossum | 29c1ea5 | 1997-08-07 00:11:34 +0000 | [diff] [blame] | 111 | #endif |
Victor Stinner | ed3b0bc | 2013-11-23 12:27:24 +0100 | [diff] [blame] | 112 | {"_tracemalloc", PyInit__tracemalloc}, |
Antoine Pitrou | 23bba4c | 2012-04-18 20:51:15 +0200 | [diff] [blame] | 113 | /* XXX Should _winapi go in a WIN32 block? not WIN64? */ |
| 114 | {"_winapi", PyInit__winapi}, |
Guido van Rossum | 87d5e70 | 1996-05-28 22:50:17 +0000 | [diff] [blame] | 115 | |
Antoine Pitrou | f95a1b3 | 2010-05-09 15:52:27 +0000 | [diff] [blame] | 116 | {"_codecs", PyInit__codecs}, |
| 117 | {"_weakref", PyInit__weakref}, |
| 118 | {"_random", PyInit__random}, |
| 119 | {"_bisect", PyInit__bisect}, |
| 120 | {"_heapq", PyInit__heapq}, |
| 121 | {"_lsprof", PyInit__lsprof}, |
| 122 | {"itertools", PyInit_itertools}, |
| 123 | {"_collections", PyInit__collections}, |
| 124 | {"_symtable", PyInit__symtable}, |
| 125 | {"mmap", PyInit_mmap}, |
| 126 | {"_csv", PyInit__csv}, |
| 127 | {"_sre", PyInit__sre}, |
| 128 | {"parser", PyInit_parser}, |
| 129 | {"winreg", PyInit_winreg}, |
| 130 | {"_struct", PyInit__struct}, |
Alexander Belopolsky | cf86e36 | 2010-07-23 19:25:47 +0000 | [diff] [blame] | 131 | {"_datetime", PyInit__datetime}, |
Antoine Pitrou | f95a1b3 | 2010-05-09 15:52:27 +0000 | [diff] [blame] | 132 | {"_functools", PyInit__functools}, |
| 133 | {"_json", PyInit__json}, |
Guido van Rossum | 76bd689 | 2000-03-11 00:13:14 +0000 | [diff] [blame] | 134 | |
Antoine Pitrou | f95a1b3 | 2010-05-09 15:52:27 +0000 | [diff] [blame] | 135 | {"xxsubtype", PyInit_xxsubtype}, |
Zachary Ware | 310b052 | 2018-02-11 10:43:48 -0600 | [diff] [blame] | 136 | {"_xxsubinterpreters", PyInit__xxsubinterpreters}, |
Zachary Ware | d01db1c | 2017-09-06 17:29:37 -0700 | [diff] [blame] | 137 | #ifdef _Py_HAVE_ZLIB |
Antoine Pitrou | f95a1b3 | 2010-05-09 15:52:27 +0000 | [diff] [blame] | 138 | {"zlib", PyInit_zlib}, |
Zachary Ware | d01db1c | 2017-09-06 17:29:37 -0700 | [diff] [blame] | 139 | #endif |
Antoine Pitrou | f95a1b3 | 2010-05-09 15:52:27 +0000 | [diff] [blame] | 140 | |
| 141 | /* CJK codecs */ |
| 142 | {"_multibytecodec", PyInit__multibytecodec}, |
| 143 | {"_codecs_cn", PyInit__codecs_cn}, |
| 144 | {"_codecs_hk", PyInit__codecs_hk}, |
| 145 | {"_codecs_iso2022", PyInit__codecs_iso2022}, |
| 146 | {"_codecs_jp", PyInit__codecs_jp}, |
| 147 | {"_codecs_kr", PyInit__codecs_kr}, |
| 148 | {"_codecs_tw", PyInit__codecs_tw}, |
Martin v. Löwis | daea3e5 | 2004-01-21 07:54:02 +0000 | [diff] [blame] | 149 | |
Martin v. Löwis | 6920652 | 2003-04-18 10:51:14 +0000 | [diff] [blame] | 150 | /* tools/freeze/makeconfig.py marker for additional "_inittab" entries */ |
Guido van Rossum | 87d5e70 | 1996-05-28 22:50:17 +0000 | [diff] [blame] | 151 | /* -- ADDMODULE MARKER 2 -- */ |
| 152 | |
Antoine Pitrou | f95a1b3 | 2010-05-09 15:52:27 +0000 | [diff] [blame] | 153 | /* This module "lives in" with marshal.c */ |
| 154 | {"marshal", PyMarshal_Init}, |
Guido van Rossum | 87d5e70 | 1996-05-28 22:50:17 +0000 | [diff] [blame] | 155 | |
Antoine Pitrou | f95a1b3 | 2010-05-09 15:52:27 +0000 | [diff] [blame] | 156 | /* This lives it with import.c */ |
Benjamin Peterson | c65ef77 | 2018-01-29 11:33:57 -0800 | [diff] [blame] | 157 | {"_imp", PyInit__imp}, |
Guido van Rossum | 87d5e70 | 1996-05-28 22:50:17 +0000 | [diff] [blame] | 158 | |
Antoine Pitrou | f95a1b3 | 2010-05-09 15:52:27 +0000 | [diff] [blame] | 159 | /* These entries are here for sys.builtin_module_names */ |
Antoine Pitrou | f95a1b3 | 2010-05-09 15:52:27 +0000 | [diff] [blame] | 160 | {"builtins", NULL}, |
| 161 | {"sys", NULL}, |
| 162 | {"_warnings", _PyWarnings_Init}, |
Georg Brandl | 66c221e | 2010-10-14 07:04:07 +0000 | [diff] [blame] | 163 | {"_string", PyInit__string}, |
Christian Heimes | 33fe809 | 2008-04-13 13:53:33 +0000 | [diff] [blame] | 164 | |
Antoine Pitrou | f95a1b3 | 2010-05-09 15:52:27 +0000 | [diff] [blame] | 165 | {"_io", PyInit__io}, |
| 166 | {"_pickle", PyInit__pickle}, |
| 167 | {"atexit", PyInit_atexit}, |
Christian Heimes | c44ff86 | 2013-06-23 15:46:56 +0200 | [diff] [blame] | 168 | {"_stat", PyInit__stat}, |
Christian Heimes | 71135ac | 2013-11-24 01:11:57 +0100 | [diff] [blame] | 169 | {"_opcode", PyInit__opcode}, |
Guido van Rossum | 87d5e70 | 1996-05-28 22:50:17 +0000 | [diff] [blame] | 170 | |
Steve Dower | 4c70d9f | 2019-02-02 14:36:23 -0800 | [diff] [blame] | 171 | {"_contextvars", PyInit__contextvars}, |
| 172 | |
Antoine Pitrou | f95a1b3 | 2010-05-09 15:52:27 +0000 | [diff] [blame] | 173 | /* Sentinel */ |
| 174 | {0, 0} |
Guido van Rossum | 87d5e70 | 1996-05-28 22:50:17 +0000 | [diff] [blame] | 175 | }; |