blob: f3e2eaa855e5aaf67a9f4b4c80d40130f33f6a8a [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);
Guido van Rossum360e4b82007-05-14 22:51:27 +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);
Thomas Wouters78890102000-07-22 19:25:51 +000015extern void initgc(void);
Thomas Wouters78890102000-07-22 19:25:51 +000016extern void initmath(void);
Guido van Rossumb98dd2e2007-10-22 22:18:51 +000017extern void init_md5(void);
Thomas Wouters78890102000-07-22 19:25:51 +000018extern void initnt(void);
19extern void initoperator(void);
Thomas Wouters78890102000-07-22 19:25:51 +000020extern void initsignal(void);
Guido van Rossumb98dd2e2007-10-22 22:18:51 +000021extern void init_sha1(void);
Raymond Hettinger94ac1972005-08-24 00:28:21 +000022extern void init_sha256(void);
23extern void init_sha512(void);
Thomas Wouters78890102000-07-22 19:25:51 +000024extern void inittime(void);
25extern void initthread(void);
26extern void initcStringIO(void);
Guido van Rossum29c1ea51997-08-07 00:11:34 +000027#ifdef WIN32
Thomas Wouters78890102000-07-22 19:25:51 +000028extern void initmsvcrt(void);
29extern void init_locale(void);
Guido van Rossum29c1ea51997-08-07 00:11:34 +000030#endif
Thomas Wouters78890102000-07-22 19:25:51 +000031extern void init_codecs(void);
Tim Peters747d5b62001-02-02 00:07:07 +000032extern void init_weakref(void);
Tim Peters6d6c1a32001-08-02 04:15:00 +000033extern void initxxsubtype(void);
Just van Rossum52e14d62002-12-30 22:08:05 +000034extern void initzipimport(void);
Tim Petersd1f5ccc2002-12-29 23:46:40 +000035extern void init_random(void);
Raymond Hettinger96ef8112003-02-01 00:10:11 +000036extern void inititertools(void);
Guido van Rossumd8faa362007-04-27 19:54:29 +000037extern void init_collections(void);
Raymond Hettingerc46cb2a2004-04-19 19:06:21 +000038extern void init_heapq(void);
Raymond Hettinger0c410272004-01-05 10:13:35 +000039extern void init_bisect(void);
Martin v. Löwis48918f72004-01-02 21:14:37 +000040extern void init_symtable(void);
41extern void initmmap(void);
42extern void init_csv(void);
43extern void init_sre(void);
44extern void initparser(void);
45extern void init_winreg(void);
Thomas Wouters477c8d52006-05-27 19:21:47 +000046extern void init_struct(void);
Martin v. Löwis48918f72004-01-02 21:14:37 +000047extern void initdatetime(void);
Thomas Wouters4d70c3d2006-06-08 14:42:34 +000048extern void init_functools(void);
Martin v. Löwis4e6aff52006-01-03 07:10:14 +000049extern void initzlib(void);
Guido van Rossum87d5e701996-05-28 22:50:17 +000050
Martin v. Löwisdaea3e52004-01-21 07:54:02 +000051extern void init_multibytecodec(void);
Tim Peters6920e492004-07-18 05:06:31 +000052extern void init_codecs_cn(void);
53extern void init_codecs_hk(void);
Hye-Shik Chang978d2622004-07-28 09:39:54 +000054extern void init_codecs_iso2022(void);
Tim Peters6920e492004-07-18 05:06:31 +000055extern void init_codecs_jp(void);
56extern void init_codecs_kr(void);
57extern void init_codecs_tw(void);
Tim Peters4eb59782004-10-12 21:48:57 +000058extern void init_subprocess(void);
Martin v. Löwis9fb181b2006-02-14 21:25:29 +000059extern void init_lsprof(void);
Martin v. Löwis577b5b92006-02-27 15:23:19 +000060extern void init_ast(void);
Thomas Hellerc6a55ee2007-07-11 12:45:46 +000061extern void init_fileio(void);
Christian Heimes8e997602008-05-07 00:00:23 +000062extern void init_bytesio(void);
Thomas Heller7f162882007-07-13 13:13:40 +000063extern void initatexit(void);
Christian Heimes33fe8092008-04-13 13:53:33 +000064extern void _PyWarnings_Init(void);
Martin v. Löwisdaea3e52004-01-21 07:54:02 +000065
Martin v. Löwis69206522003-04-18 10:51:14 +000066/* tools/freeze/makeconfig.py marker for additional "extern" */
Guido van Rossum87d5e701996-05-28 22:50:17 +000067/* -- ADDMODULE MARKER 1 -- */
68
Thomas Wouters78890102000-07-22 19:25:51 +000069extern void PyMarshal_Init(void);
70extern void initimp(void);
Guido van Rossum87d5e701996-05-28 22:50:17 +000071
Guido van Rossum2b713b21997-04-29 20:46:45 +000072struct _inittab _PyImport_Inittab[] = {
Guido van Rossum87d5e701996-05-28 22:50:17 +000073
74 {"array", initarray},
Martin v. Löwis577b5b92006-02-27 15:23:19 +000075 {"_ast", init_ast},
Guido van Rossum8f81a221999-02-05 22:34:57 +000076#ifdef MS_WINDOWS
Guido van Rossum360e4b82007-05-14 22:51:27 +000077#ifndef MS_WINI64
Guido van Rossum87d5e701996-05-28 22:50:17 +000078 {"audioop", initaudioop},
79#endif
Guido van Rossum23ef82f2000-05-08 14:15:19 +000080#endif
Guido van Rossum87d5e701996-05-28 22:50:17 +000081 {"binascii", initbinascii},
Guido van Rossum1bc716f1996-06-28 19:12:06 +000082 {"cmath", initcmath},
Guido van Rossum950a1261996-07-30 17:38:17 +000083 {"errno", initerrno},
Jeremy Hyltonc5007aa2000-06-30 05:02:53 +000084 {"gc", initgc},
Guido van Rossum87d5e701996-05-28 22:50:17 +000085 {"math", initmath},
Guido van Rossum2e146b31997-05-06 16:00:32 +000086 {"nt", initnt}, /* Use the NT os functions, not posix */
Guido van Rossum950a1261996-07-30 17:38:17 +000087 {"operator", initoperator},
Guido van Rossum87d5e701996-05-28 22:50:17 +000088 {"signal", initsignal},
Guido van Rossumb98dd2e2007-10-22 22:18:51 +000089 {"_md5", init_md5},
90 {"_sha1", init_sha1},
Raymond Hettinger94ac1972005-08-24 00:28:21 +000091 {"_sha256", init_sha256},
92 {"_sha512", init_sha512},
Guido van Rossum87d5e701996-05-28 22:50:17 +000093 {"time", inittime},
Guido van Rossumbf57ed51996-08-22 00:43:42 +000094#ifdef WITH_THREAD
95 {"thread", initthread},
96#endif
Guido van Rossum2e146b31997-05-06 16:00:32 +000097 {"cStringIO", initcStringIO},
Guido van Rossum29c1ea51997-08-07 00:11:34 +000098#ifdef WIN32
Guido van Rossum23ef82f2000-05-08 14:15:19 +000099 {"msvcrt", initmsvcrt},
100 {"_locale", init_locale},
Guido van Rossum29c1ea51997-08-07 00:11:34 +0000101#endif
Tim Peters4eb59782004-10-12 21:48:57 +0000102 /* XXX Should _subprocess go in a WIN32 block? not WIN64? */
103 {"_subprocess", init_subprocess},
Guido van Rossum87d5e701996-05-28 22:50:17 +0000104
Guido van Rossum23ef82f2000-05-08 14:15:19 +0000105 {"_codecs", init_codecs},
Tim Peters747d5b62001-02-02 00:07:07 +0000106 {"_weakref", init_weakref},
Tim Petersd1f5ccc2002-12-29 23:46:40 +0000107 {"_random", init_random},
Raymond Hettinger0c410272004-01-05 10:13:35 +0000108 {"_bisect", init_bisect},
Raymond Hettingerc46cb2a2004-04-19 19:06:21 +0000109 {"_heapq", init_heapq},
Martin v. Löwis9fb181b2006-02-14 21:25:29 +0000110 {"_lsprof", init_lsprof},
Raymond Hettinger96ef8112003-02-01 00:10:11 +0000111 {"itertools", inititertools},
Guido van Rossumd8faa362007-04-27 19:54:29 +0000112 {"_collections", init_collections},
Martin v. Löwis48918f72004-01-02 21:14:37 +0000113 {"_symtable", init_symtable},
114 {"mmap", initmmap},
115 {"_csv", init_csv},
116 {"_sre", init_sre},
117 {"parser", initparser},
118 {"_winreg", init_winreg},
Thomas Wouters477c8d52006-05-27 19:21:47 +0000119 {"_struct", init_struct},
Martin v. Löwis48918f72004-01-02 21:14:37 +0000120 {"datetime", initdatetime},
Thomas Wouters4d70c3d2006-06-08 14:42:34 +0000121 {"_functools", init_functools},
Guido van Rossum76bd6892000-03-11 00:13:14 +0000122
Tim Peters6d6c1a32001-08-02 04:15:00 +0000123 {"xxsubtype", initxxsubtype},
Just van Rossum52e14d62002-12-30 22:08:05 +0000124 {"zipimport", initzipimport},
Martin v. Löwis4e6aff52006-01-03 07:10:14 +0000125 {"zlib", initzlib},
126
Martin v. Löwisdaea3e52004-01-21 07:54:02 +0000127 /* CJK codecs */
128 {"_multibytecodec", init_multibytecodec},
Tim Peters6920e492004-07-18 05:06:31 +0000129 {"_codecs_cn", init_codecs_cn},
130 {"_codecs_hk", init_codecs_hk},
Hye-Shik Chang978d2622004-07-28 09:39:54 +0000131 {"_codecs_iso2022", init_codecs_iso2022},
Tim Peters6920e492004-07-18 05:06:31 +0000132 {"_codecs_jp", init_codecs_jp},
133 {"_codecs_kr", init_codecs_kr},
134 {"_codecs_tw", init_codecs_tw},
Martin v. Löwisdaea3e52004-01-21 07:54:02 +0000135
Martin v. Löwis69206522003-04-18 10:51:14 +0000136/* tools/freeze/makeconfig.py marker for additional "_inittab" entries */
Guido van Rossum87d5e701996-05-28 22:50:17 +0000137/* -- ADDMODULE MARKER 2 -- */
138
139 /* This module "lives in" with marshal.c */
140 {"marshal", PyMarshal_Init},
141
142 /* This lives it with import.c */
143 {"imp", initimp},
144
145 /* These entries are here for sys.builtin_module_names */
146 {"__main__", NULL},
Georg Brandl1a3284e2007-12-02 09:40:06 +0000147 {"builtins", NULL},
Guido van Rossum87d5e701996-05-28 22:50:17 +0000148 {"sys", NULL},
Christian Heimes33fe8092008-04-13 13:53:33 +0000149 {"_warnings", _PyWarnings_Init},
150
Thomas Hellerc6a55ee2007-07-11 12:45:46 +0000151 {"_fileio", init_fileio},
Christian Heimes8e997602008-05-07 00:00:23 +0000152 {"_bytesio", init_bytesio},
Thomas Heller7f162882007-07-13 13:13:40 +0000153 {"atexit", initatexit},
Guido van Rossum87d5e701996-05-28 22:50:17 +0000154
155 /* Sentinel */
156 {0, 0}
157};