MCPcopy Create free account
hub / github.com/RT-Thread/env-windows / BufferedReader

Class BufferedReader

tools/python-3.11.9-amd64/Lib/_pyio.py:1045–1238  ·  view source on GitHub ↗

BufferedReader(raw[, buffer_size]) A buffer for a readable, sequential BaseRawIO object. The constructor creates a BufferedReader for the given readable raw stream and buffer_size. If buffer_size is omitted, DEFAULT_BUFFER_SIZE is used.

Source from the content-addressed store, hash-verified

1043
1044
1045class BufferedReader(_BufferedIOMixin):
1046
1047 """BufferedReader(raw[, buffer_size])
1048
1049 A buffer for a readable, sequential BaseRawIO object.
1050
1051 The constructor creates a BufferedReader for the given readable raw
1052 stream and buffer_size. If buffer_size is omitted, DEFAULT_BUFFER_SIZE
1053 is used.
1054 """
1055
1056 def __init__(self, raw, buffer_size=DEFAULT_BUFFER_SIZE):
1057 """Create a new buffered reader using the given readable raw IO object.
1058 """
1059 if not raw.readable():
1060 raise OSError('"raw" argument must be readable.')
1061
1062 _BufferedIOMixin.__init__(self, raw)
1063 if buffer_size <= 0:
1064 raise ValueError("invalid buffer size")
1065 self.buffer_size = buffer_size
1066 self._reset_read_buf()
1067 self._read_lock = Lock()
1068
1069 def readable(self):
1070 return self.raw.readable()
1071
1072 def _reset_read_buf(self):
1073 self._read_buf = b""
1074 self._read_pos = 0
1075
1076 def read(self, size=None):
1077 """Read size bytes.
1078
1079 Returns exactly size bytes of data unless the underlying raw IO
1080 stream reaches EOF or if the call would block in non-blocking
1081 mode. If size is negative, read until EOF or until read() would
1082 block.
1083 """
1084 if size is not None and size < -1:
1085 raise ValueError("invalid number of bytes to read")
1086 with self._read_lock:
1087 return self._read_unlocked(size)
1088
1089 def _read_unlocked(self, n=None):
1090 nodata_val = b""
1091 empty_values = (b"", None)
1092 buf = self._read_buf
1093 pos = self._read_pos
1094
1095 # Special case for when the number of bytes to read is unspecified.
1096 if n is None or n == -1:
1097 self._reset_read_buf()
1098 if hasattr(self.raw, 'readall'):
1099 chunk = self.raw.readall()
1100 if chunk is None:
1101 return buf[pos:] or None
1102 else:

Callers 2

openFunction · 0.85
__init__Method · 0.85

Calls

no outgoing calls

Tested by

no test coverage detected