You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
{{ message }}
Repository navigation
Define field prefixes for the various config structs #77316
Note: these values reflect the state of the issue at the time it was migrated and might not reflect the current state.
Show more details
GitHub fields:
assignee=Noneclosed_at=<Date2019-05-27.15:31:08.406>created_at=<Date2018-03-25.06:10:23.198>labels= ['3.8', 'type-feature', '3.7']
title='Define field prefixes for the various config structs'updated_at=<Date2019-09-30.00:30:42.150>user='https://github.com/ncoghlan'
While working on https://bugs.python.org/issue33042, I found it hard to keep track of which kind of config struct a particular piece of code was referencing.
As a particularly relevant example, we currently have 3 different "warnoptions" fields: the private-to-main one for reading the command line settings, the "wchar_t *" list in the core config, and the "PyObject *" list object in the main interpreter config (which is also the one aliased as sys.warnoptions).
What do you think of adopting a convention where:
the command line fields all gain a "cmd_" prefix
the core config fields all gain a "c_" prefix
the interpreter config fields all gain a "py_" prefix
We'd then have "cmd_warnoptions", "c_warnoptions", and "py_warnoptions" as the field names, and it would be more self-evident which layer we were working at in any particular piece of code.
As a particularly relevant example, we currently have 3 different "warnoptions" fields: the private-to-main one for reading the command line settings, the "wchar_t *" list in the core config, and the "PyObject *" list object in the main interpreter config (which is also the one aliased as sys.warnoptions).
Activity
ncoghlan commentedon Mar 25, 2018
While working on https://bugs.python.org/issue33042, I found it hard to keep track of which kind of config struct a particular piece of code was referencing.
As a particularly relevant example, we currently have 3 different "warnoptions" fields: the private-to-main one for reading the command line settings, the "wchar_t *" list in the core config, and the "PyObject *" list object in the main interpreter config (which is also the one aliased as sys.warnoptions).
What do you think of adopting a convention where:
We'd then have "cmd_warnoptions", "c_warnoptions", and "py_warnoptions" as the field names, and it would be more self-evident which layer we were working at in any particular piece of code.
isidentical commentedon May 15, 2019
+1 from me. But i dont understand why this issue triaged as "needs patch". Isn't it should be discussed first?
vstinner commentedon May 15, 2019
In the master branch, the C function config_read_cmdline() uses:
The config_init_warnoptions() uses these 2 list and combine it with other options, dev_mode and bytes_warnings.
The warnings options are now specified in my PEP-587:
https://www.python.org/dev/peps/pep-0587/#priority-and-rules
vstinner commentedon May 27, 2019
This issue has been fixed in bpo-36763 with the implementation of the PEP-587. PyConfig.warnoptions is now an unified list of warnings options. Moreover, the priority of warnings options is now defined at:
https://www.python.org/dev/peps/pep-0587/#priority-and-rules
vstinner commentedon Sep 30, 2019
(Oops, I posted a comment to the wrong issue, it was a comment for bpo-38317.)