]> granicus.if.org Git - python/commit
bpo-36763: Fix Python preinitialization (GH-13432)
authorVictor Stinner <vstinner@redhat.com>
Mon, 20 May 2019 09:02:00 +0000 (11:02 +0200)
committerGitHub <noreply@github.com>
Mon, 20 May 2019 09:02:00 +0000 (11:02 +0200)
commit6d1c46746e17367caf8a24623cb5c9a9c4e3e036
tree17ea108a38c01e32ec2d3a25df03bd47968af7ff
parent6d965b39b7a486dd9e96a60b19ee92382d668299
bpo-36763: Fix Python preinitialization (GH-13432)

* Add _PyPreConfig.parse_argv
* Add _PyCoreConfig._config_init field and _PyCoreConfigInitEnum enum
  type
* Initialization functions: reject preconfig=NULL and config=NULL
* Add config parameter to _PyCoreConfig_DecodeLocaleErr(): pass
  config->argv to _Py_PreInitializeFromPyArgv(), to parse config
  command line arguments in preinitialization.
* Add config parameter to _PyCoreConfig_SetString(). It now
  preinitializes Python.
* _PyCoreConfig_SetPyArgv() now also preinitializes Python for wide
  argv
* Fix _Py_PreInitializeFromCoreConfig(): don't pass args to
  _Py_PreInitializeFromPyArgv() if config.parse_argv=0.
* Use "char * const *" and "wchar_t * const *" types for 'argv'
  parameters and _PyArgv.argv.
* Add unit test on preinitialization from argv.
* _PyPreConfig.allocator type becomes int
* Add _PyPreConfig_InitFromPreConfig() and
  _PyPreConfig_InitFromCoreConfig() helper functions
Include/cpython/coreconfig.h
Include/cpython/pylifecycle.h
Include/internal/pycore_coreconfig.h
Lib/test/test_embed.py
Programs/_testembed.c
Python/coreconfig.c
Python/preconfig.c
Python/pylifecycle.c