Loading behave_utils/proc.py +6 −6 Original line number Diff line number Diff line Loading @@ -21,6 +21,7 @@ from subprocess import PIPE from subprocess import CalledProcessError from typing import IO from typing import Any from typing import BinaryIO from typing import Callable from typing import Iterator from typing import Literal Loading @@ -29,6 +30,7 @@ from typing import MutableMapping from typing import MutableSequence from typing import Sequence from typing import SupportsBytes from typing import TextIO from typing import TypeVar from typing import Union from typing import overload Loading Loading @@ -140,16 +142,14 @@ async def _passthru(in_stream: trio.abc.ReceiveStream, out_stream: IO[str]|IO[by out_stream = out_stream.fileno() except (OSError, AttributeError): # cannot get file descriptor, probably a memory buffer if isinstance(out_stream, io.BytesIO): if isinstance(out_stream, (BinaryIO, io.BytesIO)): async def write(data: bytes) -> None: assert isinstance(out_stream, io.BytesIO) assert isinstance(out_stream, (BinaryIO, io.BytesIO)) out_stream.write(data) elif isinstance(out_stream, io.StringIO): else: async def write(data: bytes) -> None: assert isinstance(out_stream, io.StringIO) assert isinstance(out_stream, (TextIO, io.StringIO)) out_stream.write(data.decode()) else: raise TypeError(f"Unknown IO type: {type(out_stream)}") else: # is/has a file descriptor, out_stream is now that file descriptor async def write(data: bytes) -> None: Loading Loading
behave_utils/proc.py +6 −6 Original line number Diff line number Diff line Loading @@ -21,6 +21,7 @@ from subprocess import PIPE from subprocess import CalledProcessError from typing import IO from typing import Any from typing import BinaryIO from typing import Callable from typing import Iterator from typing import Literal Loading @@ -29,6 +30,7 @@ from typing import MutableMapping from typing import MutableSequence from typing import Sequence from typing import SupportsBytes from typing import TextIO from typing import TypeVar from typing import Union from typing import overload Loading Loading @@ -140,16 +142,14 @@ async def _passthru(in_stream: trio.abc.ReceiveStream, out_stream: IO[str]|IO[by out_stream = out_stream.fileno() except (OSError, AttributeError): # cannot get file descriptor, probably a memory buffer if isinstance(out_stream, io.BytesIO): if isinstance(out_stream, (BinaryIO, io.BytesIO)): async def write(data: bytes) -> None: assert isinstance(out_stream, io.BytesIO) assert isinstance(out_stream, (BinaryIO, io.BytesIO)) out_stream.write(data) elif isinstance(out_stream, io.StringIO): else: async def write(data: bytes) -> None: assert isinstance(out_stream, io.StringIO) assert isinstance(out_stream, (TextIO, io.StringIO)) out_stream.write(data.decode()) else: raise TypeError(f"Unknown IO type: {type(out_stream)}") else: # is/has a file descriptor, out_stream is now that file descriptor async def write(data: bytes) -> None: Loading