MCPcopy Index your code
hub / github.com/python/cpython / BufferedReader

Class BufferedReader

Lib/_pyio.py:1034–1232  ·  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

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

Callers 3

run_amockFunction · 0.90
openFunction · 0.70
__init__Method · 0.70

Calls

no outgoing calls

Tested by 1

run_amockFunction · 0.72

Used in the wild real call sites across dependent graphs

searching dependent graphs…