[Distutils] PEP 517 - specifying build system in pyproject.toml
Steve Dower
steve.dower at python.org
Sat May 20 12:36:04 EDT 2017
On 20May2017 0820, Nick Coghlan wrote:
> Good point regarding the fact that the Windows 16-bit APIs only come
> into play for interactive sessions (even in 3.6+), while for PEP 517
> we're specifically interested in the 8-bit pipes used to communicate
> with build subprocesses launched by an installation tool.
I need to catch up on the PEP (and thanks Brett for alerting me to the
thread), but this comment in particular cements the mental diagram I
have right now:
(build UI) <--> (build tool) <--> (compiler)
( Python ) <--> ( Python ) <--> (anything)
I'll probably read the PEP closely and see that this is entirely
incorrect, but if it's right:
* encoding for text between the build UI and build tool should just be
specified once for all platforms (i.e. use UTF-8).
* encoding for text between build tool and the compiler depends on the
compiler
In general, since most subprocesses (at least on Windows) do not have
customizable encodings, the tool that launches them needs to know what
the encoding is. Since we don't live in a Python 3.6 world quite yet,
that means the tool should read raw bytes from the compiler and encode
them to UTF-8.
The encoding between the tool and UI is essentially irrelevant - the UI
is going to transform the data anyway for display, and the tool is going
to have to transform it from the compilation tools, so the best we can
do is pick the most likely encoding to avoid too many operations. UTF-8
is probably that.
That's my 0.02AUD based on a vague memory of the PEP and this thread. As
I get time today (at PyCon) to read up on it I may post amendments, but
in general I'm +100 on "just pick an encoding and make the
implementations transcode".
Cheers,
Steve
More information about the Distutils-SIG
mailing list