1 #ifndef Py_PYTHON_H 2 #define Py_PYTHON_H 3 /* Since this is a "meta-include" file, no #ifdef __cplusplus / extern "C" { */ 4 5 /* Include nearly all Python header files */ 6 7 #include "patchlevel.h" 8 #include "pyconfig.h" 9 #include "pymacconfig.h" 10 11 #include <limits.h> 12 13 #ifndef UCHAR_MAX 14 #error "Something's broken. UCHAR_MAX should be defined in limits.h." 15 #endif 16 17 #if UCHAR_MAX != 255 18 #error "Python's source code assumes C's unsigned char is an 8-bit type." 19 #endif 20 21 #if defined(__sgi) && !defined(_SGI_MP_SOURCE) 22 #define _SGI_MP_SOURCE 23 #endif 24 25 #include <stdio.h> 26 #ifndef NULL 27 # error "Python.h requires that stdio.h define NULL." 28 #endif 29 30 #include <string.h> 31 #ifdef HAVE_ERRNO_H 32 #include <errno.h> 33 #endif 34 #include <stdlib.h> 35 #ifndef MS_WINDOWS 36 #include <unistd.h> 37 #endif 38 39 /* For size_t? */ 40 #ifdef HAVE_STDDEF_H 41 #include <stddef.h> 42 #endif 43 44 /* CAUTION: Build setups should ensure that NDEBUG is defined on the 45 * compiler command line when building Python in release mode; else 46 * assert() calls won't be removed. 47 */ 48 #include <assert.h> 49 50 #include "pyport.h" 51 #include "pymacro.h" 52 53 /* A convenient way for code to know if sanitizers are enabled. */ 54 #if defined(__has_feature) 55 # if __has_feature(memory_sanitizer) 56 # if !defined(_Py_MEMORY_SANITIZER) 57 # define _Py_MEMORY_SANITIZER 58 # endif 59 # endif 60 # if __has_feature(address_sanitizer) 61 # if !defined(_Py_ADDRESS_SANITIZER) 62 # define _Py_ADDRESS_SANITIZER 63 # endif 64 # endif 65 #elif defined(__GNUC__) 66 # if defined(__SANITIZE_ADDRESS__) 67 # define _Py_ADDRESS_SANITIZER 68 # endif 69 #endif 70 71 #include "pymath.h" 72 #include "pymem.h" 73 74 #include "object.h" 75 #include "objimpl.h" 76 #include "typeslots.h" 77 #include "pyhash.h" 78 79 #include "cpython/pydebug.h" 80 81 #include "bytearrayobject.h" 82 #include "bytesobject.h" 83 #include "unicodeobject.h" 84 #include "longobject.h" 85 #include "longintrepr.h" 86 #include "boolobject.h" 87 #include "floatobject.h" 88 #include "complexobject.h" 89 #include "rangeobject.h" 90 #include "memoryobject.h" 91 #include "tupleobject.h" 92 #include "listobject.h" 93 #include "dictobject.h" 94 #include "cpython/odictobject.h" 95 #include "enumobject.h" 96 #include "setobject.h" 97 #include "methodobject.h" 98 #include "moduleobject.h" 99 #include "funcobject.h" 100 #include "classobject.h" 101 #include "fileobject.h" 102 #include "pycapsule.h" 103 #include "code.h" 104 #include "pyframe.h" 105 #include "traceback.h" 106 #include "sliceobject.h" 107 #include "cellobject.h" 108 #include "iterobject.h" 109 #include "cpython/initconfig.h" 110 #include "genobject.h" 111 #include "descrobject.h" 112 #include "genericaliasobject.h" 113 #include "warnings.h" 114 #include "weakrefobject.h" 115 #include "structseq.h" 116 #include "namespaceobject.h" 117 #include "cpython/picklebufobject.h" 118 #include "cpython/pytime.h" 119 120 #include "codecs.h" 121 #include "pyerrors.h" 122 #include "pythread.h" 123 #include "pystate.h" 124 #include "context.h" 125 126 #include "modsupport.h" 127 #include "compile.h" 128 #include "pythonrun.h" 129 #include "pylifecycle.h" 130 #include "ceval.h" 131 #include "sysmodule.h" 132 #include "osmodule.h" 133 #include "intrcheck.h" 134 #include "import.h" 135 136 #include "abstract.h" 137 #include "bltinmodule.h" 138 139 #include "eval.h" 140 141 #include "cpython/pyctype.h" 142 #include "pystrtod.h" 143 #include "pystrcmp.h" 144 #include "fileutils.h" 145 #include "cpython/pyfpe.h" 146 #include "tracemalloc.h" 147 148 #endif /* !Py_PYTHON_H */ 149