| 
									
										
										
										
											1991-02-19 12:39:46 +00:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											1990-10-14 12:07:46 +00:00
										 |  |  | /* Module object interface */ | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2000-07-09 00:55:06 +00:00
										 |  |  | #ifndef Py_MODULEOBJECT_H
 | 
					
						
							|  |  |  | #define Py_MODULEOBJECT_H
 | 
					
						
							|  |  |  | #ifdef __cplusplus
 | 
					
						
							|  |  |  | extern "C" { | 
					
						
							|  |  |  | #endif
 | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2002-08-12 07:21:58 +00:00
										 |  |  | PyAPI_DATA(PyTypeObject) PyModule_Type; | 
					
						
							| 
									
										
										
										
											1990-10-14 12:07:46 +00:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2001-09-10 18:21:59 +00:00
										 |  |  | #define PyModule_Check(op) PyObject_TypeCheck(op, &PyModule_Type)
 | 
					
						
							| 
									
										
										
										
											2007-12-19 02:45:37 +00:00
										 |  |  | #define PyModule_CheckExact(op) (Py_TYPE(op) == &PyModule_Type)
 | 
					
						
							| 
									
										
										
										
											1990-10-14 12:07:46 +00:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2016-12-27 14:57:39 +02:00
										 |  |  | #if !defined(Py_LIMITED_API) || Py_LIMITED_API+0 >= 0x03030000
 | 
					
						
							| 
									
										
										
										
											2011-03-04 12:57:07 +00:00
										 |  |  | PyAPI_FUNC(PyObject *) PyModule_NewObject( | 
					
						
							|  |  |  |     PyObject *name | 
					
						
							|  |  |  |     ); | 
					
						
							| 
									
										
										
										
											2016-12-27 14:57:39 +02:00
										 |  |  | #endif
 | 
					
						
							| 
									
										
										
										
											2011-02-22 23:38:34 +00:00
										 |  |  | PyAPI_FUNC(PyObject *) PyModule_New( | 
					
						
							|  |  |  |     const char *name            /* UTF-8 encoded string */ | 
					
						
							|  |  |  |     ); | 
					
						
							| 
									
										
										
										
											2002-08-12 07:21:58 +00:00
										 |  |  | PyAPI_FUNC(PyObject *) PyModule_GetDict(PyObject *); | 
					
						
							| 
									
										
										
										
											2016-12-27 14:57:39 +02:00
										 |  |  | #if !defined(Py_LIMITED_API) || Py_LIMITED_API+0 >= 0x03030000
 | 
					
						
							| 
									
										
										
										
											2011-02-23 00:21:43 +00:00
										 |  |  | PyAPI_FUNC(PyObject *) PyModule_GetNameObject(PyObject *); | 
					
						
							| 
									
										
										
										
											2016-12-27 14:57:39 +02:00
										 |  |  | #endif
 | 
					
						
							| 
									
										
										
										
											2007-08-26 02:21:42 +00:00
										 |  |  | PyAPI_FUNC(const char *) PyModule_GetName(PyObject *); | 
					
						
							| 
									
										
										
										
											2019-05-28 09:16:33 -06:00
										 |  |  | Py_DEPRECATED(3.2) PyAPI_FUNC(const char *) PyModule_GetFilename(PyObject *); | 
					
						
							| 
									
										
										
										
											2010-08-17 23:37:11 +00:00
										 |  |  | PyAPI_FUNC(PyObject *) PyModule_GetFilenameObject(PyObject *); | 
					
						
							| 
									
										
										
										
											2010-12-03 20:14:31 +00:00
										 |  |  | #ifndef Py_LIMITED_API
 | 
					
						
							| 
									
										
										
										
											2002-08-12 07:21:58 +00:00
										 |  |  | PyAPI_FUNC(void) _PyModule_Clear(PyObject *); | 
					
						
							| 
									
										
										
										
											2014-02-10 18:21:34 +02:00
										 |  |  | PyAPI_FUNC(void) _PyModule_ClearDict(PyObject *); | 
					
						
							| 
									
										
										
										
											2018-10-30 13:19:51 +02:00
										 |  |  | PyAPI_FUNC(int) _PyModuleSpec_IsInitializing(PyObject *); | 
					
						
							| 
									
										
										
										
											2010-12-03 20:14:31 +00:00
										 |  |  | #endif
 | 
					
						
							| 
									
										
										
										
											2008-06-11 05:26:20 +00:00
										 |  |  | PyAPI_FUNC(struct PyModuleDef*) PyModule_GetDef(PyObject*); | 
					
						
							|  |  |  | PyAPI_FUNC(void*) PyModule_GetState(PyObject*); | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2015-06-02 19:06:47 -04:00
										 |  |  | #if !defined(Py_LIMITED_API) || Py_LIMITED_API+0 >= 0x03050000
 | 
					
						
							|  |  |  | /* New in 3.5 */ | 
					
						
							| 
									
										
										
										
											2015-05-23 22:24:10 +10:00
										 |  |  | PyAPI_FUNC(PyObject *) PyModuleDef_Init(struct PyModuleDef*); | 
					
						
							| 
									
										
										
										
											2015-05-23 14:44:37 -07:00
										 |  |  | PyAPI_DATA(PyTypeObject) PyModuleDef_Type; | 
					
						
							| 
									
										
										
										
											2015-06-02 19:06:47 -04:00
										 |  |  | #endif
 | 
					
						
							| 
									
										
										
										
											2015-05-23 22:24:10 +10:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2008-06-11 05:26:20 +00:00
										 |  |  | typedef struct PyModuleDef_Base { | 
					
						
							|  |  |  |   PyObject_HEAD | 
					
						
							|  |  |  |   PyObject* (*m_init)(void); | 
					
						
							|  |  |  |   Py_ssize_t m_index; | 
					
						
							|  |  |  |   PyObject* m_copy; | 
					
						
							|  |  |  | } PyModuleDef_Base; | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2010-11-17 21:20:18 +00:00
										 |  |  | #define PyModuleDef_HEAD_INIT { \
 | 
					
						
							|  |  |  |     PyObject_HEAD_INIT(NULL)    \ | 
					
						
							|  |  |  |     NULL, /* m_init */          \ | 
					
						
							|  |  |  |     0,    /* m_index */         \ | 
					
						
							|  |  |  |     NULL, /* m_copy */          \ | 
					
						
							|  |  |  |   } | 
					
						
							| 
									
										
										
										
											2008-06-11 05:26:20 +00:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2015-06-02 19:06:47 -04:00
										 |  |  | struct PyModuleDef_Slot; | 
					
						
							|  |  |  | #if !defined(Py_LIMITED_API) || Py_LIMITED_API+0 >= 0x03050000
 | 
					
						
							|  |  |  | /* New in 3.5 */ | 
					
						
							| 
									
										
										
										
											2015-05-23 22:24:10 +10:00
										 |  |  | typedef struct PyModuleDef_Slot{ | 
					
						
							|  |  |  |     int slot; | 
					
						
							|  |  |  |     void *value; | 
					
						
							|  |  |  | } PyModuleDef_Slot; | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2015-06-02 19:06:47 -04:00
										 |  |  | #define Py_mod_create 1
 | 
					
						
							|  |  |  | #define Py_mod_exec 2
 | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | #ifndef Py_LIMITED_API
 | 
					
						
							|  |  |  | #define _Py_mod_LAST_SLOT 2
 | 
					
						
							|  |  |  | #endif
 | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | #endif /* New in 3.5 */
 | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2008-06-11 05:26:20 +00:00
										 |  |  | typedef struct PyModuleDef{ | 
					
						
							|  |  |  |   PyModuleDef_Base m_base; | 
					
						
							|  |  |  |   const char* m_name; | 
					
						
							|  |  |  |   const char* m_doc; | 
					
						
							|  |  |  |   Py_ssize_t m_size; | 
					
						
							|  |  |  |   PyMethodDef *m_methods; | 
					
						
							| 
									
										
										
										
											2015-06-02 19:06:47 -04:00
										 |  |  |   struct PyModuleDef_Slot* m_slots; | 
					
						
							| 
									
										
										
										
											2008-06-11 05:26:20 +00:00
										 |  |  |   traverseproc m_traverse; | 
					
						
							|  |  |  |   inquiry m_clear; | 
					
						
							|  |  |  |   freefunc m_free; | 
					
						
							| 
									
										
										
										
											2016-08-21 17:41:56 +10:00
										 |  |  | } PyModuleDef; | 
					
						
							| 
									
										
										
										
											2008-06-11 05:26:20 +00:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											1993-07-28 09:05:47 +00:00
										 |  |  | #ifdef __cplusplus
 | 
					
						
							|  |  |  | } | 
					
						
							|  |  |  | #endif
 | 
					
						
							|  |  |  | #endif /* !Py_MODULEOBJECT_H */
 |