On Mon, Apr 20, 2020 at 2:16 PM Yasuhito FUTATSUKI <futat...@poem.co.jp> wrote:
> On 2020/04/20 9:13, Branko Čibej wrote: > > On 19.04.2020 23:58, Yasuhito FUTATSUKI wrote: > > <snip> > > >> On 2020/04/19 22:53, Branko Čibej wrote: > >>> On 19.04.2020 14:47, Johan Corveleyn wrote: > >>>> Would you also have an idea on how to fix the > PYTHONLEGACYWINDOWSSTDIO issue? > >>>> I mean: would it ever be possible to run the testsuite without > >>>> defining that envvar? Or will that remain necessary? > > <snip> > > >> If reconstruction of _io._WindowsConsoleIO from stored old descripor is > >> allowed (i.e. documented in the specification), it seems to be possible > >> to write work around. > > > > > > Given that these are private symbols, at least according to their names, > > they could change in any minor Python version. :( > > Yes, indeed. > > However, at least on Python 3.6.6, if given file descptor 1 is pointing > to tty, the result of > > open(1, 'w', encoding='utf-8', closefd=False).buffer.raw > > is _io._WindowsConsoleIO object, and it seems to be able to used for > console output. > > So I wrote a patch for testing (not for commit. it is need to brush up > even if it can work). > > At least it should work (no regression) on Python 2.7, Python 3 with > and without PYTHONLEGACYWINDOWSSTDIO on Windows. > > (I confirmed on Python 2.7 and Python 3.7 on FreeBSD). > > Thanks, > -- > Yasuhito FUTATSUKI <futat...@poem.co.jp> > Perfect! Works well on Windows, with Py 2.7, 3.7 and 3.8.2, with or without the envvar defined. Thanks! -- Johan