File: /Users/paulross/dev/Python-3.6.2/Include/pylifecycle.h

Green shading in the line number column means the source is part of the translation unit, red means it is conditionally excluded. Highlighted line numbers link to the translation unit page. Highlighted macros link to the macro page.

       1: 
       2: /* Interfaces to configure, query, create & destroy the Python runtime */
       3: 
       4: #ifndef Py_PYLIFECYCLE_H
       5: #define Py_PYLIFECYCLE_H
       6: #ifdef __cplusplus
       7: extern "C" {
       8: #endif
       9: 
      10: PyAPI_FUNC(void) Py_SetProgramName(wchar_t *);
      11: PyAPI_FUNC(wchar_t *) Py_GetProgramName(void);
      12: 
      13: PyAPI_FUNC(void) Py_SetPythonHome(wchar_t *);
      14: PyAPI_FUNC(wchar_t *) Py_GetPythonHome(void);
      15: 
      16: #ifndef Py_LIMITED_API
      17: /* Only used by applications that embed the interpreter and need to
      18:  * override the standard encoding determination mechanism
      19:  */
      20: PyAPI_FUNC(int) Py_SetStandardStreamEncoding(const char *encoding,
      21:                                              const char *errors);
      22: #endif
      23: 
      24: PyAPI_FUNC(void) Py_Initialize(void);
      25: PyAPI_FUNC(void) Py_InitializeEx(int);
      26: #ifndef Py_LIMITED_API
      27: PyAPI_FUNC(void) _Py_InitializeEx_Private(int, int);
      28: #endif
      29: PyAPI_FUNC(void) Py_Finalize(void);
      30: PyAPI_FUNC(int) Py_FinalizeEx(void);
      31: PyAPI_FUNC(int) Py_IsInitialized(void);
      32: PyAPI_FUNC(PyThreadState *) Py_NewInterpreter(void);
      33: PyAPI_FUNC(void) Py_EndInterpreter(PyThreadState *);
      34: 
      35: 
      36: /* Py_PyAtExit is for the atexit module, Py_AtExit is for low-level
      37:  * exit functions.
      38:  */
      39: #ifndef Py_LIMITED_API
      40: PyAPI_FUNC(void) _Py_PyAtExit(void (*func)(void));
      41: #endif
      42: PyAPI_FUNC(int) Py_AtExit(void (*func)(void));
      43: 
      44: PyAPI_FUNC(void) Py_Exit(int);
      45: 
      46: /* Restore signals that the interpreter has called SIG_IGN on to SIG_DFL. */
      47: #ifndef Py_LIMITED_API
      48: PyAPI_FUNC(void) _Py_RestoreSignals(void);
      49: 
      50: PyAPI_FUNC(int) Py_FdIsInteractive(FILE *, const char *);
      51: #endif
      52: 
      53: /* Bootstrap __main__ (defined in Modules/main.c) */
      54: PyAPI_FUNC(int) Py_Main(int argc, wchar_t **argv);
      55: 
      56: /* In getpath.c */
      57: PyAPI_FUNC(wchar_t *) Py_GetProgramFullPath(void);
      58: PyAPI_FUNC(wchar_t *) Py_GetPrefix(void);
      59: PyAPI_FUNC(wchar_t *) Py_GetExecPrefix(void);
      60: PyAPI_FUNC(wchar_t *) Py_GetPath(void);
      61: PyAPI_FUNC(void)      Py_SetPath(const wchar_t *);
      62: #ifdef MS_WINDOWS
      63: int _Py_CheckPython3();
      64: #endif
      65: 
      66: /* In their own files */
      67: PyAPI_FUNC(const char *) Py_GetVersion(void);
      68: PyAPI_FUNC(const char *) Py_GetPlatform(void);
      69: PyAPI_FUNC(const char *) Py_GetCopyright(void);
      70: PyAPI_FUNC(const char *) Py_GetCompiler(void);
      71: PyAPI_FUNC(const char *) Py_GetBuildInfo(void);
      72: #ifndef Py_LIMITED_API
      73: PyAPI_FUNC(const char *) _Py_gitidentifier(void);
      74: PyAPI_FUNC(const char *) _Py_gitversion(void);
      75: #endif
      76: 
      77: /* Internal -- various one-time initializations */
      78: #ifndef Py_LIMITED_API
      79: PyAPI_FUNC(PyObject *) _PyBuiltin_Init(void);
      80: PyAPI_FUNC(PyObject *) _PySys_Init(void);
      81: PyAPI_FUNC(void) _PyImport_Init(void);
      82: PyAPI_FUNC(void) _PyExc_Init(PyObject * bltinmod);
      83: PyAPI_FUNC(void) _PyImportHooks_Init(void);
      84: PyAPI_FUNC(int) _PyFrame_Init(void);
      85: PyAPI_FUNC(int) _PyFloat_Init(void);
      86: PyAPI_FUNC(int) PyByteArray_Init(void);
      87: PyAPI_FUNC(void) _PyRandom_Init(void);
      88: #endif
      89: 
      90: /* Various internal finalizers */
      91: #ifndef Py_LIMITED_API
      92: PyAPI_FUNC(void) _PyExc_Fini(void);
      93: PyAPI_FUNC(void) _PyImport_Fini(void);
      94: PyAPI_FUNC(void) PyMethod_Fini(void);
      95: PyAPI_FUNC(void) PyFrame_Fini(void);
      96: PyAPI_FUNC(void) PyCFunction_Fini(void);
      97: PyAPI_FUNC(void) PyDict_Fini(void);
      98: PyAPI_FUNC(void) PyTuple_Fini(void);
      99: PyAPI_FUNC(void) PyList_Fini(void);
     100: PyAPI_FUNC(void) PySet_Fini(void);
     101: PyAPI_FUNC(void) PyBytes_Fini(void);
     102: PyAPI_FUNC(void) PyByteArray_Fini(void);
     103: PyAPI_FUNC(void) PyFloat_Fini(void);
     104: PyAPI_FUNC(void) PyOS_FiniInterrupts(void);
     105: PyAPI_FUNC(void) _PyGC_DumpShutdownStats(void);
     106: PyAPI_FUNC(void) _PyGC_Fini(void);
     107: PyAPI_FUNC(void) PySlice_Fini(void);
     108: PyAPI_FUNC(void) _PyType_Fini(void);
     109: PyAPI_FUNC(void) _PyRandom_Fini(void);
     110: PyAPI_FUNC(void) PyAsyncGen_Fini(void);
     111: 
     112: PyAPI_DATA(PyThreadState *) _Py_Finalizing;
     113: #endif
     114: 
     115: /* Signals */
     116: typedef void (*PyOS_sighandler_t)(int);
     117: PyAPI_FUNC(PyOS_sighandler_t) PyOS_getsig(int);
     118: PyAPI_FUNC(PyOS_sighandler_t) PyOS_setsig(int, PyOS_sighandler_t);
     119: 
     120: #ifndef Py_LIMITED_API
     121: /* Random */
     122: PyAPI_FUNC(int) _PyOS_URandom(void *buffer, Py_ssize_t size);
     123: PyAPI_FUNC(int) _PyOS_URandomNonblock(void *buffer, Py_ssize_t size);
     124: #endif /* !Py_LIMITED_API */
     125: 
     126: #ifdef __cplusplus
     127: }
     128: #endif
     129: #endif /* !Py_PYLIFECYCLE_H */
     130: