PEP 741: Add Multi-phase section (#3706)
Co-authored-by: Eric Snow <ericsnowcurrently@gmail.com>
This commit is contained in:
parent
7e7296bfdc
commit
c4a5976ff3
|
@ -1053,6 +1053,36 @@ implemented in Python 3.8.
|
||||||
Disallow setting the ``"configure_locale"`` option has similar issues.
|
Disallow setting the ``"configure_locale"`` option has similar issues.
|
||||||
|
|
||||||
|
|
||||||
|
Multi-phase initialization (similar to PEP 432)
|
||||||
|
-----------------------------------------------
|
||||||
|
|
||||||
|
`Eric Snow expressed concerns <https://discuss.python.org/t/pep-741-python-configuration-c-api-second-version/45403/27>`_
|
||||||
|
that this proposal might reinforce with embedders the idea that
|
||||||
|
initialization is a single monolithic step. He argued that initialization
|
||||||
|
involves 5 distinct phases and even suggested that the API should
|
||||||
|
reflect this explicitly. Eric proposed that, at the very least, the
|
||||||
|
implementation of initialization should reflect the phases, in part
|
||||||
|
for improved code health. Overall, his explanation has some
|
||||||
|
similarities with :pep:`432` and :pep:`587`.
|
||||||
|
|
||||||
|
Another of Eric's key points relevant to this PEP was that, ideally,
|
||||||
|
the config passed to ``Py_InitializeFromConfig()`` should be complete
|
||||||
|
before that function is called, whereas currently initialization
|
||||||
|
actually modifies the config.
|
||||||
|
|
||||||
|
While Eric wasn't necessarily suggesting an alternative to PEP 741,
|
||||||
|
any proposal to add a granular initialization API around phases is
|
||||||
|
effectively the opposite of what this PEP is trying to accomplish.
|
||||||
|
Such API is more complicated, it requires adding new public structures
|
||||||
|
and new public functions. It makes the Python initialization more
|
||||||
|
complicated, rather than this PEP tries to unifiy existing APIs and make
|
||||||
|
them simpler (the opposite). Having multiple structures for similar
|
||||||
|
purpose can lead to duplicate members, similar issue than duplicated
|
||||||
|
members between existing ``PyPreConfig`` and ``PyConfig`` structures.
|
||||||
|
|
||||||
|
.. XXX Are the concerns still valid about the config currently not
|
||||||
|
being complete before ``Py_InitializeFromConfig()`` is called?
|
||||||
|
|
||||||
|
|
||||||
Discussions
|
Discussions
|
||||||
===========
|
===========
|
||||||
|
|
Loading…
Reference in New Issue