blob: 35c66085146e11c15cdc37eae2eba380bcea3154 [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.
4 See init_builtin() in import.c. */
5
6#include "Python.h"
7
Thomas Wouters78890102000-07-22 19:25:51 +00008extern void initarray(void);
Kristján Valur Jónssonf0303942007-05-03 20:27:03 +00009#ifndef MS_WINI64
Thomas Wouters78890102000-07-22 19:25:51 +000010extern void initaudioop(void);
Guido van Rossum23ef82f2000-05-08 14:15:19 +000011#endif
Trent Mickc85eb0b2000-10-04 20:57:29 +000012extern void initbinascii(void);
Thomas Wouters78890102000-07-22 19:25:51 +000013extern void initcmath(void);
14extern void initerrno(void);
Eric Smitha73fbe72008-02-23 03:09:44 +000015extern void initfuture_builtins(void);
Thomas Wouters78890102000-07-22 19:25:51 +000016extern void initgc(void);
Kristján Valur Jónssonf0303942007-05-03 20:27:03 +000017#ifndef MS_WINI64
Thomas Wouters78890102000-07-22 19:25:51 +000018extern void initimageop(void);
Guido van Rossum23ef82f2000-05-08 14:15:19 +000019#endif
Thomas Wouters78890102000-07-22 19:25:51 +000020extern void initmath(void);
Raymond Hettinger94ac1972005-08-24 00:28:21 +000021extern void init_md5(void);
Thomas Wouters78890102000-07-22 19:25:51 +000022extern void initnt(void);
23extern void initoperator(void);
Thomas Wouters78890102000-07-22 19:25:51 +000024extern void initsignal(void);
Raymond Hettinger94ac1972005-08-24 00:28:21 +000025extern void init_sha(void);
26extern void init_sha256(void);
27extern void init_sha512(void);
Thomas Wouters78890102000-07-22 19:25:51 +000028extern void initstrop(void);
Thomas Wouters78890102000-07-22 19:25:51 +000029extern void inittime(void);
30extern void initthread(void);
31extern void initcStringIO(void);
32extern void initcPickle(void);
Guido van Rossum29c1ea51997-08-07 00:11:34 +000033#ifdef WIN32
Thomas Wouters78890102000-07-22 19:25:51 +000034extern void initmsvcrt(void);
35extern void init_locale(void);
Guido van Rossum29c1ea51997-08-07 00:11:34 +000036#endif
Thomas Wouters78890102000-07-22 19:25:51 +000037extern void init_codecs(void);
Tim Peters747d5b62001-02-02 00:07:07 +000038extern void init_weakref(void);
Tim Peters1566a172001-10-12 22:08:39 +000039extern void init_hotshot(void);
Tim Peters6d6c1a32001-08-02 04:15:00 +000040extern void initxxsubtype(void);
Just van Rossum52e14d62002-12-30 22:08:05 +000041extern void initzipimport(void);
Tim Petersd1f5ccc2002-12-29 23:46:40 +000042extern void init_random(void);
Raymond Hettinger96ef8112003-02-01 00:10:11 +000043extern void inititertools(void);
Raymond Hettingereb979882007-02-28 18:37:52 +000044extern void init_collections(void);
Raymond Hettingerc46cb2a2004-04-19 19:06:21 +000045extern void init_heapq(void);
Raymond Hettinger0c410272004-01-05 10:13:35 +000046extern void init_bisect(void);
Martin v. Löwis48918f72004-01-02 21:14:37 +000047extern void init_symtable(void);
48extern void initmmap(void);
49extern void init_csv(void);
50extern void init_sre(void);
51extern void initparser(void);
52extern void init_winreg(void);
Tim Petersf178e5c2006-05-23 19:34:37 +000053extern void init_struct(void);
Martin v. Löwis48918f72004-01-02 21:14:37 +000054extern void initdatetime(void);
Nick Coghlanc649ec52006-05-29 12:43:05 +000055extern void init_functools(void);
Brett Cannon4b964f92008-05-05 20:21:38 +000056extern void init_json(void);
Martin v. Löwis4e6aff52006-01-03 07:10:14 +000057extern void initzlib(void);
Guido van Rossum87d5e701996-05-28 22:50:17 +000058
Martin v. Löwisdaea3e52004-01-21 07:54:02 +000059extern void init_multibytecodec(void);
Tim Peters6920e492004-07-18 05:06:31 +000060extern void init_codecs_cn(void);
61extern void init_codecs_hk(void);
Hye-Shik Chang978d2622004-07-28 09:39:54 +000062extern void init_codecs_iso2022(void);
Tim Peters6920e492004-07-18 05:06:31 +000063extern void init_codecs_jp(void);
64extern void init_codecs_kr(void);
65extern void init_codecs_tw(void);
Tim Peters4eb59782004-10-12 21:48:57 +000066extern void init_subprocess(void);
Martin v. Löwis9fb181b2006-02-14 21:25:29 +000067extern void init_lsprof(void);
Martin v. Löwis577b5b92006-02-27 15:23:19 +000068extern void init_ast(void);
Hirokazu Yamamotoe69041d2009-06-14 03:05:54 +000069extern void init_io(void);
Brett Cannone9746892008-04-12 23:44:07 +000070extern void _PyWarnings_Init(void);
Martin v. Löwisdaea3e52004-01-21 07:54:02 +000071
Martin v. Löwis69206522003-04-18 10:51:14 +000072/* tools/freeze/makeconfig.py marker for additional "extern" */
Guido van Rossum87d5e701996-05-28 22:50:17 +000073/* -- ADDMODULE MARKER 1 -- */
74
Thomas Wouters78890102000-07-22 19:25:51 +000075extern void PyMarshal_Init(void);
76extern void initimp(void);
Guido van Rossum87d5e701996-05-28 22:50:17 +000077
Guido van Rossum2b713b21997-04-29 20:46:45 +000078struct _inittab _PyImport_Inittab[] = {
Guido van Rossum87d5e701996-05-28 22:50:17 +000079
Antoine Pitrouc83ea132010-05-09 14:46:46 +000080 {"array", initarray},
81 {"_ast", init_ast},
Guido van Rossum8f81a221999-02-05 22:34:57 +000082#ifdef MS_WINDOWS
Kristján Valur Jónssonf0303942007-05-03 20:27:03 +000083#ifndef MS_WINI64
Antoine Pitrouc83ea132010-05-09 14:46:46 +000084 {"audioop", initaudioop},
Guido van Rossum87d5e701996-05-28 22:50:17 +000085#endif
Guido van Rossum23ef82f2000-05-08 14:15:19 +000086#endif
Antoine Pitrouc83ea132010-05-09 14:46:46 +000087 {"binascii", initbinascii},
88 {"cmath", initcmath},
89 {"errno", initerrno},
90 {"future_builtins", initfuture_builtins},
91 {"gc", initgc},
Kristján Valur Jónssonf0303942007-05-03 20:27:03 +000092#ifndef MS_WINI64
Antoine Pitrouc83ea132010-05-09 14:46:46 +000093 {"imageop", initimageop},
Guido van Rossum23ef82f2000-05-08 14:15:19 +000094#endif
Antoine Pitrouc83ea132010-05-09 14:46:46 +000095 {"math", initmath},
96 {"_md5", init_md5},
97 {"nt", initnt}, /* Use the NT os functions, not posix */
98 {"operator", initoperator},
99 {"signal", initsignal},
100 {"_sha", init_sha},
101 {"_sha256", init_sha256},
102 {"_sha512", init_sha512},
103 {"strop", initstrop},
104 {"time", inittime},
Guido van Rossumbf57ed51996-08-22 00:43:42 +0000105#ifdef WITH_THREAD
Antoine Pitrouc83ea132010-05-09 14:46:46 +0000106 {"thread", initthread},
Guido van Rossumbf57ed51996-08-22 00:43:42 +0000107#endif
Antoine Pitrouc83ea132010-05-09 14:46:46 +0000108 {"cStringIO", initcStringIO},
109 {"cPickle", initcPickle},
Guido van Rossum29c1ea51997-08-07 00:11:34 +0000110#ifdef WIN32
Antoine Pitrouc83ea132010-05-09 14:46:46 +0000111 {"msvcrt", initmsvcrt},
112 {"_locale", init_locale},
Guido van Rossum29c1ea51997-08-07 00:11:34 +0000113#endif
Antoine Pitrouc83ea132010-05-09 14:46:46 +0000114 /* XXX Should _subprocess go in a WIN32 block? not WIN64? */
115 {"_subprocess", init_subprocess},
Guido van Rossum87d5e701996-05-28 22:50:17 +0000116
Antoine Pitrouc83ea132010-05-09 14:46:46 +0000117 {"_codecs", init_codecs},
118 {"_weakref", init_weakref},
119 {"_hotshot", init_hotshot},
120 {"_random", init_random},
121 {"_bisect", init_bisect},
122 {"_heapq", init_heapq},
123 {"_lsprof", init_lsprof},
124 {"itertools", inititertools},
125 {"_collections", init_collections},
126 {"_symtable", init_symtable},
127 {"mmap", initmmap},
128 {"_csv", init_csv},
129 {"_sre", init_sre},
130 {"parser", initparser},
131 {"_winreg", init_winreg},
132 {"_struct", init_struct},
133 {"datetime", initdatetime},
134 {"_functools", init_functools},
135 {"_json", init_json},
Guido van Rossum76bd6892000-03-11 00:13:14 +0000136
Antoine Pitrouc83ea132010-05-09 14:46:46 +0000137 {"xxsubtype", initxxsubtype},
138 {"zipimport", initzipimport},
139 {"zlib", initzlib},
140
141 /* CJK codecs */
142 {"_multibytecodec", init_multibytecodec},
143 {"_codecs_cn", init_codecs_cn},
144 {"_codecs_hk", init_codecs_hk},
145 {"_codecs_iso2022", init_codecs_iso2022},
146 {"_codecs_jp", init_codecs_jp},
147 {"_codecs_kr", init_codecs_kr},
148 {"_codecs_tw", init_codecs_tw},
Martin v. Löwisdaea3e52004-01-21 07:54:02 +0000149
Martin v. Löwis69206522003-04-18 10:51:14 +0000150/* tools/freeze/makeconfig.py marker for additional "_inittab" entries */
Guido van Rossum87d5e701996-05-28 22:50:17 +0000151/* -- ADDMODULE MARKER 2 -- */
152
Antoine Pitrouc83ea132010-05-09 14:46:46 +0000153 /* This module "lives in" with marshal.c */
154 {"marshal", PyMarshal_Init},
Guido van Rossum87d5e701996-05-28 22:50:17 +0000155
Antoine Pitrouc83ea132010-05-09 14:46:46 +0000156 /* This lives it with import.c */
157 {"imp", initimp},
Guido van Rossum87d5e701996-05-28 22:50:17 +0000158
Antoine Pitrouc83ea132010-05-09 14:46:46 +0000159 /* These entries are here for sys.builtin_module_names */
160 {"__main__", NULL},
161 {"__builtin__", NULL},
162 {"sys", NULL},
163 {"exceptions", NULL},
164 {"_warnings", _PyWarnings_Init},
Brett Cannone9746892008-04-12 23:44:07 +0000165
Antoine Pitrouc83ea132010-05-09 14:46:46 +0000166 {"_io", init_io},
Hirokazu Yamamotoe69041d2009-06-14 03:05:54 +0000167
Antoine Pitrouc83ea132010-05-09 14:46:46 +0000168 /* Sentinel */
169 {0, 0}
Guido van Rossum87d5e701996-05-28 22:50:17 +0000170};