| 
									
										
										
										
											1991-02-19 12:39:46 +00:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2000-07-08 17:25:55 +00:00
										 |  |  | #ifndef Py_MODSUPPORT_H
 | 
					
						
							|  |  |  | #define Py_MODSUPPORT_H
 | 
					
						
							|  |  |  | #ifdef __cplusplus
 | 
					
						
							|  |  |  | extern "C" { | 
					
						
							|  |  |  | #endif
 | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											1990-10-14 12:07:46 +00:00
										 |  |  | /* Module support interface */ | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											1993-03-16 12:15:04 +00:00
										 |  |  | #include <stdarg.h>
 | 
					
						
							| 
									
										
										
										
											1994-08-01 11:34:53 +00:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2006-02-15 17:27:45 +00:00
										 |  |  | /* If PY_SSIZE_T_CLEAN is defined, each functions treats #-specifier
 | 
					
						
							|  |  |  |    to mean Py_ssize_t */ | 
					
						
							|  |  |  | #ifdef PY_SSIZE_T_CLEAN
 | 
					
						
							|  |  |  | #define PyArg_Parse			_PyArg_Parse_SizeT
 | 
					
						
							|  |  |  | #define PyArg_ParseTuple		_PyArg_ParseTuple_SizeT
 | 
					
						
							|  |  |  | #define PyArg_ParseTupleAndKeywords	_PyArg_ParseTupleAndKeywords_SizeT
 | 
					
						
							|  |  |  | #define PyArg_VaParse			_PyArg_VaParse_SizeT
 | 
					
						
							|  |  |  | #define PyArg_VaParseTupleAndKeywords	_PyArg_VaParseTupleAndKeywords_SizeT
 | 
					
						
							| 
									
										
										
										
											2006-04-21 10:40:58 +00:00
										 |  |  | #define Py_BuildValue			_Py_BuildValue_SizeT
 | 
					
						
							|  |  |  | #define Py_VaBuildValue			_Py_VaBuildValue_SizeT
 | 
					
						
							|  |  |  | #else
 | 
					
						
							|  |  |  | PyAPI_FUNC(PyObject *) _Py_VaBuildValue_SizeT(const char *, va_list); | 
					
						
							| 
									
										
										
										
											2006-02-15 17:27:45 +00:00
										 |  |  | #endif
 | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2012-06-24 00:00:30 +02:00
										 |  |  | /* Due to a glitch in 3.2, the _SizeT versions weren't exported from the DLL. */ | 
					
						
							|  |  |  | #if !defined(PY_SSIZE_T_CLEAN) || !defined(Py_LIMITED_API) || Py_LIMITED_API+0 >= 0x03030000
 | 
					
						
							| 
									
										
										
										
											2005-12-10 18:50:16 +00:00
										 |  |  | PyAPI_FUNC(int) PyArg_Parse(PyObject *, const char *, ...); | 
					
						
							| 
									
										
										
										
											2013-05-12 23:08:28 -05:00
										 |  |  | PyAPI_FUNC(int) PyArg_ParseTuple(PyObject *, const char *, ...); | 
					
						
							| 
									
										
										
										
											2002-08-12 07:21:58 +00:00
										 |  |  | PyAPI_FUNC(int) PyArg_ParseTupleAndKeywords(PyObject *, PyObject *, | 
					
						
							| 
									
										
										
										
											2006-02-27 16:46:16 +00:00
										 |  |  |                                                   const char *, char **, ...); | 
					
						
							| 
									
										
										
										
											2010-04-24 18:21:17 +00:00
										 |  |  | PyAPI_FUNC(int) PyArg_ValidateKeywordArguments(PyObject *); | 
					
						
							| 
									
										
										
										
											2006-03-01 04:06:10 +00:00
										 |  |  | PyAPI_FUNC(int) PyArg_UnpackTuple(PyObject *, const char *, Py_ssize_t, Py_ssize_t, ...); | 
					
						
							| 
									
										
										
										
											2005-12-10 18:50:16 +00:00
										 |  |  | PyAPI_FUNC(PyObject *) Py_BuildValue(const char *, ...); | 
					
						
							| 
									
										
										
										
											2006-04-21 10:40:58 +00:00
										 |  |  | PyAPI_FUNC(PyObject *) _Py_BuildValue_SizeT(const char *, ...); | 
					
						
							| 
									
										
										
										
											2012-06-24 00:00:30 +02:00
										 |  |  | #endif
 | 
					
						
							| 
									
										
										
										
											2010-12-03 20:14:31 +00:00
										 |  |  | #ifndef Py_LIMITED_API
 | 
					
						
							| 
									
										
										
										
											2005-12-10 18:50:16 +00:00
										 |  |  | PyAPI_FUNC(int) _PyArg_NoKeywords(const char *funcname, PyObject *kw); | 
					
						
							| 
									
										
										
										
											2014-01-18 23:50:21 -08:00
										 |  |  | PyAPI_FUNC(int) _PyArg_NoPositional(const char *funcname, PyObject *args); | 
					
						
							| 
									
										
										
										
											1994-08-01 11:34:53 +00:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2005-12-10 18:50:16 +00:00
										 |  |  | PyAPI_FUNC(int) PyArg_VaParse(PyObject *, const char *, va_list); | 
					
						
							| 
									
										
										
										
											2004-07-10 22:20:32 +00:00
										 |  |  | PyAPI_FUNC(int) PyArg_VaParseTupleAndKeywords(PyObject *, PyObject *, | 
					
						
							| 
									
										
										
										
											2006-02-27 16:46:16 +00:00
										 |  |  |                                                   const char *, char **, va_list); | 
					
						
							| 
									
										
										
										
											2012-06-24 00:00:30 +02:00
										 |  |  | #endif
 | 
					
						
							| 
									
										
										
										
											2005-12-10 18:50:16 +00:00
										 |  |  | PyAPI_FUNC(PyObject *) Py_VaBuildValue(const char *, va_list); | 
					
						
							| 
									
										
										
										
											1992-01-27 16:50:21 +00:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2005-12-10 18:50:16 +00:00
										 |  |  | PyAPI_FUNC(int) PyModule_AddObject(PyObject *, const char *, PyObject *); | 
					
						
							|  |  |  | PyAPI_FUNC(int) PyModule_AddIntConstant(PyObject *, const char *, long); | 
					
						
							|  |  |  | PyAPI_FUNC(int) PyModule_AddStringConstant(PyObject *, const char *, const char *); | 
					
						
							| 
									
										
											  
											
												Merged revisions 60176-60209 via svnmerge from
svn+ssh://pythondev@svn.python.org/python/trunk
........
  r60178 | georg.brandl | 2008-01-21 22:05:49 +0100 (Mon, 21 Jan 2008) | 2 lines
  #1715: include sub-extension modules in pydoc text output.
........
  r60179 | georg.brandl | 2008-01-21 22:14:21 +0100 (Mon, 21 Jan 2008) | 2 lines
  Add a "const" to make gcc happy.
........
  r60180 | georg.brandl | 2008-01-21 22:19:07 +0100 (Mon, 21 Jan 2008) | 2 lines
  Add the correct build dir when building with pydebug.
........
  r60181 | georg.brandl | 2008-01-21 22:23:15 +0100 (Mon, 21 Jan 2008) | 3 lines
  Patch #1720595: add T_BOOL to the range of structmember types.
  Patch by Angelo Mottola, reviewed by MvL, tests by me.
........
  r60182 | georg.brandl | 2008-01-21 22:28:32 +0100 (Mon, 21 Jan 2008) | 2 lines
  Reformat some ugly code.
........
  r60187 | brett.cannon | 2008-01-22 00:50:16 +0100 (Tue, 22 Jan 2008) | 4 lines
  Make's MAKEFLAGS variable is set to a string containing the single-letter
  arguments to Make. This means there are no hyphens. Fix the '-s' check to
  silence distutils to now work.
........
  r60188 | gregory.p.smith | 2008-01-22 01:19:41 +0100 (Tue, 22 Jan 2008) | 3 lines
  accepts and closes issue #1221598: adds an optional callback to ftplib.FTP
  storbinary() and storlines() methods.
........
  r60189 | gregory.p.smith | 2008-01-22 02:12:02 +0100 (Tue, 22 Jan 2008) | 2 lines
  Replace spam.acquire() try: ... finally: spam.release() with "with spam:"
........
  r60190 | gregory.p.smith | 2008-01-22 02:20:42 +0100 (Tue, 22 Jan 2008) | 4 lines
  - Fix Issue #1703448: A joined thread could show up in the
    threading.enumerate() list after the join() for a brief period until
    it actually exited.
........
  r60193 | georg.brandl | 2008-01-22 08:53:31 +0100 (Tue, 22 Jan 2008) | 2 lines
  Fix \xhh specs, #1889.
........
  r60198 | christian.heimes | 2008-01-22 16:01:25 +0100 (Tue, 22 Jan 2008) | 1 line
  Fixed a missing (X) in define
........
  r60199 | christian.heimes | 2008-01-22 16:25:18 +0100 (Tue, 22 Jan 2008) | 2 lines
  Don't repeat yourself
  Added the macros PyModule_AddIntMacro and PyModule_AddStringMacro. They shorten PyModule_AddIntConstant(m, "AF_INET", AF_INET) to PyModule_AddIntMacro(m, AF_INET)
........
  r60201 | raymond.hettinger | 2008-01-22 20:51:41 +0100 (Tue, 22 Jan 2008) | 1 line
  Document when to use izip_longest().
........
  r60202 | georg.brandl | 2008-01-22 20:56:03 +0100 (Tue, 22 Jan 2008) | 2 lines
  Fix for #1087741 patch.
........
  r60203 | raymond.hettinger | 2008-01-22 21:18:53 +0100 (Tue, 22 Jan 2008) | 1 line
  Give zip() the same guarantee as izip() for left-to-right evaluation.
........
  r60204 | raymond.hettinger | 2008-01-22 23:09:26 +0100 (Tue, 22 Jan 2008) | 1 line
  Improve variable name in sample code
........
  r60205 | gregory.p.smith | 2008-01-23 00:15:34 +0100 (Wed, 23 Jan 2008) | 2 lines
  docstring and comment updates suggested by Giampaolo Rodola'
........
  r60207 | raymond.hettinger | 2008-01-23 01:04:40 +0100 (Wed, 23 Jan 2008) | 1 line
  Let pprint() support sets and frozensets (suggested by David Mertz).
........
  r60208 | guido.van.rossum | 2008-01-23 02:18:27 +0100 (Wed, 23 Jan 2008) | 4 lines
  I'm tired of these tests breaking at Google due to our large number of
  users and groups in LDAP/NIS.  So I'm limiting the extra-heavy part of
  the tests to passwd/group files with at most 1000 entries.
........
											
										 
											2008-01-23 08:24:23 +00:00
										 |  |  | #define PyModule_AddIntMacro(m, c) PyModule_AddIntConstant(m, #c, c)
 | 
					
						
							|  |  |  | #define PyModule_AddStringMacro(m, c) PyModule_AddStringConstant(m, #c, c)
 | 
					
						
							| 
									
										
										
										
											2006-02-15 17:27:45 +00:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2009-05-29 14:47:46 +00:00
										 |  |  | #define Py_CLEANUP_SUPPORTED 0x20000
 | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2006-02-28 19:02:24 +00:00
										 |  |  | #define PYTHON_API_VERSION 1013
 | 
					
						
							|  |  |  | #define PYTHON_API_STRING "1013"
 | 
					
						
							| 
									
										
										
										
											1995-01-09 17:47:20 +00:00
										 |  |  | /* The API version is maintained (independently from the Python version)
 | 
					
						
							|  |  |  |    so we can detect mismatches between the interpreter and dynamically | 
					
						
							| 
									
										
										
										
											2000-07-16 12:04:32 +00:00
										 |  |  |    loaded modules.  These are diagnosed by an error message but | 
					
						
							| 
									
										
										
										
											1996-07-30 16:41:02 +00:00
										 |  |  |    the module is still loaded (because the mismatch can only be tested | 
					
						
							|  |  |  |    after loading the module).  The error message is intended to | 
					
						
							|  |  |  |    explain the core dump a few seconds later. | 
					
						
							| 
									
										
										
										
											1995-01-09 17:47:20 +00:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											1996-08-22 22:55:47 +00:00
										 |  |  |    The symbol PYTHON_API_STRING defines the same value as a string | 
					
						
							|  |  |  |    literal.  *** PLEASE MAKE SURE THE DEFINITIONS MATCH. *** | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											1995-01-09 17:47:20 +00:00
										 |  |  |    Please add a line or two to the top of this log for each API | 
					
						
							|  |  |  |    version change: | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2006-02-28 20:03:28 +00:00
										 |  |  |    22-Feb-2006  MvL	1013	PEP 353 - long indices for sequence lengths | 
					
						
							| 
									
										
										
										
											2006-02-28 19:02:24 +00:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2002-08-19 21:43:18 +00:00
										 |  |  |    19-Aug-2002  GvR	1012	Changes to string object struct for | 
					
						
							|  |  |  |    				interning changes, saving 3 bytes. | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2001-08-02 04:15:00 +00:00
										 |  |  |    17-Jul-2001	GvR	1011	Descr-branch, just to be on the safe side | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2001-01-25 22:13:34 +00:00
										 |  |  |    25-Jan-2001  FLD     1010    Parameters added to PyCode_New() and | 
					
						
							|  |  |  |                                 PyFrame_New(); Python 2.1a2 | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2000-03-29 01:46:45 +00:00
										 |  |  |    14-Mar-2000  GvR     1009    Unicode API added | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											1999-01-03 12:40:24 +00:00
										 |  |  |    3-Jan-1999	GvR	1007	Decided to change back!  (Don't reuse 1008!) | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |    3-Dec-1998	GvR	1008	Python 1.5.2b1 | 
					
						
							| 
									
										
										
										
											1998-12-03 18:18:12 +00:00
										 |  |  | 
 | 
					
						
							|  |  |  |    18-Jan-1997	GvR	1007	string interning and other speedups | 
					
						
							| 
									
										
										
										
											1997-01-18 07:54:03 +00:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											1996-10-11 16:25:41 +00:00
										 |  |  |    11-Oct-1996	GvR	renamed Py_Ellipses to Py_Ellipsis :-( | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											1996-07-30 16:41:02 +00:00
										 |  |  |    30-Jul-1996	GvR	Slice and ellipses syntax added | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |    23-Jul-1996	GvR	For 1.4 -- better safe than sorry this time :-) | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											1996-01-12 00:49:39 +00:00
										 |  |  |    7-Nov-1995	GvR	Keyword arguments (should've been done at 1.3 :-( ) | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											1995-01-12 11:45:45 +00:00
										 |  |  |    10-Jan-1995	GvR	Renamed globals to new naming scheme | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											1995-01-09 17:47:20 +00:00
										 |  |  |    9-Jan-1995	GvR	Initial version (incompatible with older API) | 
					
						
							|  |  |  | */ | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2010-12-03 20:14:31 +00:00
										 |  |  | /* The PYTHON_ABI_VERSION is introduced in PEP 384. For the lifetime of
 | 
					
						
							|  |  |  |    Python 3, it will stay at the value of 3; changes to the limited API | 
					
						
							|  |  |  |    must be performed in a strictly backwards-compatible manner. */ | 
					
						
							|  |  |  | #define PYTHON_ABI_VERSION 3
 | 
					
						
							|  |  |  | #define PYTHON_ABI_STRING "3"
 | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											1996-08-22 22:55:47 +00:00
										 |  |  | #ifdef Py_TRACE_REFS
 | 
					
						
							| 
									
										
										
										
											2009-06-01 21:16:17 +00:00
										 |  |  |  /* When we are tracing reference counts, rename PyModule_Create2 so
 | 
					
						
							| 
									
										
										
										
											2006-02-15 17:27:45 +00:00
										 |  |  |     modules compiled with incompatible settings will generate a | 
					
						
							|  |  |  |     link-time error. */ | 
					
						
							| 
									
										
										
										
											2009-06-01 21:16:17 +00:00
										 |  |  |  #define PyModule_Create2 PyModule_Create2TraceRefs
 | 
					
						
							| 
									
										
										
										
											1996-08-22 22:55:47 +00:00
										 |  |  | #endif
 | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2008-06-11 05:26:20 +00:00
										 |  |  | PyAPI_FUNC(PyObject *) PyModule_Create2(struct PyModuleDef*, | 
					
						
							|  |  |  |                                      int apiver); | 
					
						
							| 
									
										
										
										
											1993-07-28 09:05:47 +00:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2010-12-03 20:14:31 +00:00
										 |  |  | #ifdef Py_LIMITED_API
 | 
					
						
							|  |  |  | #define PyModule_Create(module) \
 | 
					
						
							|  |  |  | 	PyModule_Create2(module, PYTHON_ABI_VERSION) | 
					
						
							|  |  |  | #else
 | 
					
						
							| 
									
										
										
										
											2008-06-11 05:26:20 +00:00
										 |  |  | #define PyModule_Create(module) \
 | 
					
						
							|  |  |  | 	PyModule_Create2(module, PYTHON_API_VERSION) | 
					
						
							| 
									
										
										
										
											2010-12-03 20:14:31 +00:00
										 |  |  | #endif
 | 
					
						
							| 
									
										
										
										
											1998-06-27 18:21:59 +00:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2010-12-03 20:14:31 +00:00
										 |  |  | #ifndef Py_LIMITED_API
 | 
					
						
							| 
									
										
										
										
											2002-08-12 07:21:58 +00:00
										 |  |  | PyAPI_DATA(char *) _Py_PackageContext; | 
					
						
							| 
									
										
										
										
											2010-12-03 20:14:31 +00:00
										 |  |  | #endif
 | 
					
						
							| 
									
										
										
										
											1997-11-19 18:51:35 +00:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											1993-07-28 09:05:47 +00:00
										 |  |  | #ifdef __cplusplus
 | 
					
						
							|  |  |  | } | 
					
						
							|  |  |  | #endif
 | 
					
						
							|  |  |  | #endif /* !Py_MODSUPPORT_H */
 |