Spaces:
Sleeping
Sleeping
extern "C" { | |
/* --- PyStatus ----------------------------------------------- */ | |
typedef struct { | |
enum { | |
_PyStatus_TYPE_OK=0, | |
_PyStatus_TYPE_ERROR=1, | |
_PyStatus_TYPE_EXIT=2 | |
} _type; | |
const char *func; | |
const char *err_msg; | |
int exitcode; | |
} PyStatus; | |
PyAPI_FUNC(PyStatus) PyStatus_Ok(void); | |
PyAPI_FUNC(PyStatus) PyStatus_Error(const char *err_msg); | |
PyAPI_FUNC(PyStatus) PyStatus_NoMemory(void); | |
PyAPI_FUNC(PyStatus) PyStatus_Exit(int exitcode); | |
PyAPI_FUNC(int) PyStatus_IsError(PyStatus err); | |
PyAPI_FUNC(int) PyStatus_IsExit(PyStatus err); | |
PyAPI_FUNC(int) PyStatus_Exception(PyStatus err); | |
/* --- PyWideStringList ------------------------------------------------ */ | |
typedef struct { | |
/* If length is greater than zero, items must be non-NULL | |
and all items strings must be non-NULL */ | |
Py_ssize_t length; | |
wchar_t **items; | |
} PyWideStringList; | |
PyAPI_FUNC(PyStatus) PyWideStringList_Append(PyWideStringList *list, | |
const wchar_t *item); | |
PyAPI_FUNC(PyStatus) PyWideStringList_Insert(PyWideStringList *list, | |
Py_ssize_t index, | |
const wchar_t *item); | |
/* --- PyPreConfig ----------------------------------------------- */ | |
typedef struct PyPreConfig { | |
int _config_init; /* _PyConfigInitEnum value */ | |
/* Parse Py_PreInitializeFromBytesArgs() arguments? | |
See PyConfig.parse_argv */ | |
int parse_argv; | |
/* If greater than 0, enable isolated mode: sys.path contains | |
neither the script's directory nor the user's site-packages directory. | |
Set to 1 by the -I command line option. If set to -1 (default), inherit | |
Py_IsolatedFlag value. */ | |
int isolated; | |
/* If greater than 0: use environment variables. | |
Set to 0 by -E command line option. If set to -1 (default), it is | |
set to !Py_IgnoreEnvironmentFlag. */ | |
int use_environment; | |
/* Set the LC_CTYPE locale to the user preferred locale? If equals to 0, | |
set coerce_c_locale and coerce_c_locale_warn to 0. */ | |
int configure_locale; | |
/* Coerce the LC_CTYPE locale if it's equal to "C"? (PEP 538) | |
Set to 0 by PYTHONCOERCECLOCALE=0. Set to 1 by PYTHONCOERCECLOCALE=1. | |
Set to 2 if the user preferred LC_CTYPE locale is "C". | |
If it is equal to 1, LC_CTYPE locale is read to decide if it should be | |
coerced or not (ex: PYTHONCOERCECLOCALE=1). Internally, it is set to 2 | |
if the LC_CTYPE locale must be coerced. | |
Disable by default (set to 0). Set it to -1 to let Python decide if it | |
should be enabled or not. */ | |
int coerce_c_locale; | |
/* Emit a warning if the LC_CTYPE locale is coerced? | |
Set to 1 by PYTHONCOERCECLOCALE=warn. | |
Disable by default (set to 0). Set it to -1 to let Python decide if it | |
should be enabled or not. */ | |
int coerce_c_locale_warn; | |
/* If greater than 1, use the "mbcs" encoding instead of the UTF-8 | |
encoding for the filesystem encoding. | |
Set to 1 if the PYTHONLEGACYWINDOWSFSENCODING environment variable is | |
set to a non-empty string. If set to -1 (default), inherit | |
Py_LegacyWindowsFSEncodingFlag value. | |
See PEP 529 for more details. */ | |
int legacy_windows_fs_encoding; | |
/* Enable UTF-8 mode? (PEP 540) | |
Disabled by default (equals to 0). | |
Set to 1 by "-X utf8" and "-X utf8=1" command line options. | |
Set to 1 by PYTHONUTF8=1 environment variable. | |
Set to 0 by "-X utf8=0" and PYTHONUTF8=0. | |
If equals to -1, it is set to 1 if the LC_CTYPE locale is "C" or | |
"POSIX", otherwise it is set to 0. Inherit Py_UTF8Mode value value. */ | |
int utf8_mode; | |
/* If non-zero, enable the Python Development Mode. | |
Set to 1 by the -X dev command line option. Set by the PYTHONDEVMODE | |
environment variable. */ | |
int dev_mode; | |
/* Memory allocator: PYTHONMALLOC env var. | |
See PyMemAllocatorName for valid values. */ | |
int allocator; | |
} PyPreConfig; | |
PyAPI_FUNC(void) PyPreConfig_InitPythonConfig(PyPreConfig *config); | |
PyAPI_FUNC(void) PyPreConfig_InitIsolatedConfig(PyPreConfig *config); | |
/* --- PyConfig ---------------------------------------------- */ | |
/* This structure is best documented in the Doc/c-api/init_config.rst file. */ | |
typedef struct PyConfig { | |
int _config_init; /* _PyConfigInitEnum value */ | |
int isolated; | |
int use_environment; | |
int dev_mode; | |
int install_signal_handlers; | |
int use_hash_seed; | |
unsigned long hash_seed; | |
int faulthandler; | |
int tracemalloc; | |
int import_time; | |
int show_ref_count; | |
int dump_refs; | |
int malloc_stats; | |
wchar_t *filesystem_encoding; | |
wchar_t *filesystem_errors; | |
wchar_t *pycache_prefix; | |
int parse_argv; | |
PyWideStringList orig_argv; | |
PyWideStringList argv; | |
PyWideStringList xoptions; | |
PyWideStringList warnoptions; | |
int site_import; | |
int bytes_warning; | |
int warn_default_encoding; | |
int inspect; | |
int interactive; | |
int optimization_level; | |
int parser_debug; | |
int write_bytecode; | |
int verbose; | |
int quiet; | |
int user_site_directory; | |
int configure_c_stdio; | |
int buffered_stdio; | |
wchar_t *stdio_encoding; | |
wchar_t *stdio_errors; | |
int legacy_windows_stdio; | |
wchar_t *check_hash_pycs_mode; | |
/* --- Path configuration inputs ------------ */ | |
int pathconfig_warnings; | |
wchar_t *program_name; | |
wchar_t *pythonpath_env; | |
wchar_t *home; | |
wchar_t *platlibdir; | |
/* --- Path configuration outputs ----------- */ | |
int module_search_paths_set; | |
PyWideStringList module_search_paths; | |
wchar_t *executable; | |
wchar_t *base_executable; | |
wchar_t *prefix; | |
wchar_t *base_prefix; | |
wchar_t *exec_prefix; | |
wchar_t *base_exec_prefix; | |
/* --- Parameter only used by Py_Main() ---------- */ | |
int skip_source_first_line; | |
wchar_t *run_command; | |
wchar_t *run_module; | |
wchar_t *run_filename; | |
/* --- Private fields ---------------------------- */ | |
// Install importlib? If equals to 0, importlib is not initialized at all. | |
// Needed by freeze_importlib. | |
int _install_importlib; | |
// If equal to 0, stop Python initialization before the "main" phase. | |
int _init_main; | |
// If non-zero, disallow threads, subprocesses, and fork. | |
// Default: 0. | |
int _isolated_interpreter; | |
} PyConfig; | |
PyAPI_FUNC(void) PyConfig_InitPythonConfig(PyConfig *config); | |
PyAPI_FUNC(void) PyConfig_InitIsolatedConfig(PyConfig *config); | |
PyAPI_FUNC(void) PyConfig_Clear(PyConfig *); | |
PyAPI_FUNC(PyStatus) PyConfig_SetString( | |
PyConfig *config, | |
wchar_t **config_str, | |
const wchar_t *str); | |
PyAPI_FUNC(PyStatus) PyConfig_SetBytesString( | |
PyConfig *config, | |
wchar_t **config_str, | |
const char *str); | |
PyAPI_FUNC(PyStatus) PyConfig_Read(PyConfig *config); | |
PyAPI_FUNC(PyStatus) PyConfig_SetBytesArgv( | |
PyConfig *config, | |
Py_ssize_t argc, | |
char * const *argv); | |
PyAPI_FUNC(PyStatus) PyConfig_SetArgv(PyConfig *config, | |
Py_ssize_t argc, | |
wchar_t * const *argv); | |
PyAPI_FUNC(PyStatus) PyConfig_SetWideStringList(PyConfig *config, | |
PyWideStringList *list, | |
Py_ssize_t length, wchar_t **items); | |
/* --- Helper functions --------------------------------------- */ | |
/* Get the original command line arguments, before Python modified them. | |
See also PyConfig.orig_argv. */ | |
PyAPI_FUNC(void) Py_GetArgcArgv(int *argc, wchar_t ***argv); | |
} | |