mirror of
https://github.com/python/cpython.git
synced 2025-11-25 04:34:37 +00:00
bpo-34170: Add _PyCoreConfig.isolated (GH-8417)
* _PyCoreConfig: add isolated and site_import attributes * Replace Py_IgnoreEnvironment with config->ignore_environment when reading the current configuration * _PyCoreConfig_Read() now sets ignore_environment, utf8_mode, isolated and site_import from Py_IgnoreEnvironment, Py_UTF8Mode, Py_IsolatedFlag and Py_NoSiteFlag * _Py_InitializeCore() now sets Py_xxx flags from the configuration * pymain_read_conf() now uses _PyCoreConfig_Copy() to save/restore the configuration. * Rename _disable_importlib of _PyCoreConfig to _install_importlib * _PyCoreConfig_SetGlobalConfig() now also set Py_HashRandomizationFlag * Replace !Py_NoSiteFlag with core_config->site_import
This commit is contained in:
parent
ac0b3c2f4d
commit
d19d8d5279
7 changed files with 411 additions and 353 deletions
|
|
@ -28,7 +28,7 @@ typedef PyObject* (*_PyFrameEvalFunction)(struct _frame *, int);
|
|||
typedef struct {
|
||||
int install_signal_handlers; /* Install signal handlers? -1 means unset */
|
||||
|
||||
int ignore_environment; /* -E, Py_IgnoreEnvironmentFlag */
|
||||
int ignore_environment; /* -E, Py_IgnoreEnvironmentFlag, -1 means unset */
|
||||
int use_hash_seed; /* PYTHONHASHSEED=x */
|
||||
unsigned long hash_seed;
|
||||
const char *allocator; /* Memory allocator: _PyMem_SetupAllocators() */
|
||||
|
|
@ -75,18 +75,42 @@ typedef struct {
|
|||
wchar_t *dll_path; /* Windows DLL path */
|
||||
#endif
|
||||
|
||||
/* Private fields */
|
||||
int _disable_importlib; /* Needed by freeze_importlib */
|
||||
/* 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 equal to zero, disable the import of the module site and the
|
||||
site-dependent manipulations of sys.path that it entails. Also disable
|
||||
these manipulations if site is explicitly imported later (call
|
||||
site.main() if you want them to be triggered).
|
||||
|
||||
Set to 0 by the -S command line option. If set to -1 (default), set to
|
||||
the negative value of Py_NoSiteFlag. */
|
||||
int site_import;
|
||||
|
||||
/* --- Private fields -------- */
|
||||
|
||||
/* Install importlib? If set to 0, importlib is not initialized at all.
|
||||
Needed by freeze_importlib: see install_importlib argument of
|
||||
_Py_InitializeEx_Private(). */
|
||||
int _install_importlib;
|
||||
} _PyCoreConfig;
|
||||
|
||||
#define _PyCoreConfig_INIT \
|
||||
(_PyCoreConfig){ \
|
||||
.install_signal_handlers = -1, \
|
||||
.ignore_environment = -1, \
|
||||
.use_hash_seed = -1, \
|
||||
.coerce_c_locale = -1, \
|
||||
.utf8_mode = -1, \
|
||||
.argc = -1, \
|
||||
.nmodule_search_path = -1}
|
||||
.nmodule_search_path = -1, \
|
||||
.isolated = -1, \
|
||||
.site_import = -1, \
|
||||
._install_importlib = 1}
|
||||
/* Note: _PyCoreConfig_INIT sets other fields to 0/NULL */
|
||||
|
||||
/* Placeholders while working on the new configuration API
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue