[PATCH 1 of 4 chg-tests-fix] procutils: don't try to get `.buffer` if sys.stdin is None

Yuya Nishihara yuya at tcha.org
Tue Dec 8 10:57:13 UTC 2020


On Tue, 08 Dec 2020 12:58:21 +0530, Pulkit Goyal wrote:
> # HG changeset patch
> # User Pulkit Goyal <7895pulkit at gmail.com>
> # Date 1606897517 -19800
> #      Wed Dec 02 13:55:17 2020 +0530
> # Node ID 6bab1270ddc9b7097a58de39afacb305f3364ea7
> # Parent  8b20d469a0c819c2ade8635c25e9fcf0af553796
> # EXP-Topic chg-test
> procutils: don't try to get `.buffer` if sys.stdin is None

> diff -r 8b20d469a0c8 -r 6bab1270ddc9 mercurial/utils/procutil.py
> --- a/mercurial/utils/procutil.py	Fri Apr 03 20:30:36 2020 +0530
> +++ b/mercurial/utils/procutil.py	Wed Dec 02 13:55:17 2020 +0530
> @@ -124,7 +124,9 @@
>      # Python 3 implements its own I/O streams.
>      # TODO: .buffer might not exist if std streams were replaced; we'll need
>      # a silly wrapper to make a bytes stream backed by a unicode one.
> -    stdin = sys.stdin.buffer
> +
> +    # sys.stdin can be None
> +    stdin = sys.stdin.buffer if sys.stdin else sys.stdin

It's probably better to make procutil.stdin/out/err always available.

  stdin = open(os.devnull, 'rb')

I don't think we'll want to deal with None stdin/out/err everywhere stdio
is involved. That's insane.



More information about the Mercurial-devel mailing list