bpo-32030: Add _PyCoreConfig.warn_opts by vstinner · Pull Request #4936 · python/cpython (original) (raw)
- Add nxoption, xoptions, nwarn_opt and warn_opts to _PyCoreConfig
- Move filename, command and module from _Py_CommandLineDetails to
_PyMain - Remove xoptions from _Py_CommandLineDetails
- Add pymain_cmdline() function
- Add _PyMain.program: argv[0] or ""
- Rename copy_argv() to copy_wstrlist()
- Rename clear_argv() to clear_wstrlist()
- Rename pymain_set_flag_from_env() to pymain_get_env_flag()
- Rename pymain_set_flags_from_env() to pymain_get_env_flags()
- _PyMainInterpreterConfig_Read() now creates the warnoptions from
_PyCoreConfig.warnoptions
_Py_CommandLineDetails usage is now restricted to pymain_cmdline().
https://bugs.python.org/issue32030
Merge _PyCoreConfig_ReadEnv() into _PyCoreConfig_Read(), and _Py_CommandLineDetails usage is now restricted to pymain_cmdline().
Changes:
- _PyCoreConfig: Add nxoption, xoptions, nwarnoption and warnoptions
- Add _PyCoreConfig.program: argv[0] or ""
- Move filename, command, module and xoptions from _Py_CommandLineDetails to _PyMain. xoptions _Py_OptList becomes (int, wchar_t**) list.
- Add pymain_cmdline() function
- Rename copy_argv() to copy_wstrlist(). Rename clear_argv() to clear_wstrlist(). Remove _Py_OptList structure: use (int, wchar_t**) list instead.
- Rename pymain_set_flag_from_env() to pymain_get_env_flag()
- Rename pymain_set_flags_from_env() to pymain_get_env_flags()
- _PyMainInterpreterConfig_Read() now creates the warnoptions from _PyCoreConfig.warnoptions
- Inline pymain_add_warning_dev_mode() and pymain_add_warning_bytes_flag() into config_init_warnoptions()
- Inline pymain_get_program_name() into _PyCoreConfig_Read()
- _Py_CommandLineDetails: Replace warning_options with nwarnoption and warnoptions. Replace env_warning_options with nenv_warnoption and env_warnoptions.
- pymain_warnings_envvar() now has a single implementation for Windows and Unix: use config_get_env_var_dup() to also get the variable as wchar_t* on Unix.