This commit is contained in:
antontornqvist 2025-05-09 12:59:12 +00:00 committed by GitHub
commit 1e98c48281
No known key found for this signature in database
GPG Key ID: B5690EEEBB952194
2 changed files with 7 additions and 2 deletions

View File

@ -1,3 +1,4 @@
import io
import json import json
import struct import struct
import urllib import urllib
@ -428,6 +429,9 @@ class APIClient(
""" """
socket = self._get_raw_response_socket(response) socket = self._get_raw_response_socket(response)
if isinstance(response.raw._fp.fp, io.BufferedReader):
socket = response.raw._fp.fp
gen = frames_iter(socket, tty) gen = frames_iter(socket, tty)
if demux: if demux:

View File

@ -1,4 +1,5 @@
import errno import errno
import io
import os import os
import select import select
import socket as pysocket import socket as pysocket
@ -30,7 +31,7 @@ def read(socket, n=4096):
recoverable_errors = (errno.EINTR, errno.EDEADLK, errno.EWOULDBLOCK) recoverable_errors = (errno.EINTR, errno.EDEADLK, errno.EWOULDBLOCK)
if not isinstance(socket, NpipeSocket): if not isinstance(socket, NpipeSocket) and not isinstance(socket, io.BufferedReader):
if not hasattr(select, "poll"): if not hasattr(select, "poll"):
# Limited to 1024 # Limited to 1024
select.select([socket], [], []) select.select([socket], [], [])
@ -42,7 +43,7 @@ def read(socket, n=4096):
try: try:
if hasattr(socket, 'recv'): if hasattr(socket, 'recv'):
return socket.recv(n) return socket.recv(n)
if isinstance(socket, pysocket.SocketIO): if isinstance(socket, pysocket.SocketIO) or isinstance(socket, io.BufferedReader):
return socket.read(n) return socket.read(n)
return os.read(socket.fileno(), n) return os.read(socket.fileno(), n)
except OSError as e: except OSError as e: