Skip to content

Commit 95213ed

Browse files
committed
Don't use memoryview in _io.py
1 parent 5e66ad4 commit 95213ed

File tree

1 file changed

+18
-10
lines changed

1 file changed

+18
-10
lines changed

vm/Lib/python_builtins/_io.py

Lines changed: 18 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -691,9 +691,10 @@ def readinto1(self, b):
691691
return self._readinto(b, read1=True)
692692

693693
def _readinto(self, b, read1):
694-
if not isinstance(b, memoryview):
695-
b = memoryview(b)
696-
b = b.cast('B')
694+
# XXX RustPython TODO: proper memoryview implementation
695+
# if not isinstance(b, memoryview):
696+
# b = memoryview(b)
697+
# b = b.cast('B')
697698

698699
if read1:
699700
data = self.read1(len(b))
@@ -889,8 +890,10 @@ def write(self, b):
889890
raise ValueError("write to closed file")
890891
if isinstance(b, str):
891892
raise TypeError("can't write str to binary stream")
892-
with memoryview(b) as view:
893-
n = view.nbytes # Size of any bytes-like object
893+
# XXX RustPython TODO: proper memoryview implementation
894+
# with memoryview(b) as view:
895+
# n = view.nbytes # Size of any bytes-like object
896+
n = len(b)
894897
if n == 0:
895898
return 0
896899
pos = self._pos
@@ -1099,11 +1102,14 @@ def _readinto(self, buf, read1):
10991102
# Need to create a memoryview object of type 'b', otherwise
11001103
# we may not be able to assign bytes to it, and slicing it
11011104
# would create a new object.
1102-
if not isinstance(buf, memoryview):
1103-
buf = memoryview(buf)
1104-
if buf.nbytes == 0:
1105+
# XXX RustPython TODO: proper memoryview implementation
1106+
# if not isinstance(buf, memoryview):
1107+
# buf = memoryview(buf)
1108+
# if buf.nbytes == 0:
1109+
# return 0
1110+
# buf = buf.cast('B')
1111+
if len(buf) == 0:
11051112
return 0
1106-
buf = buf.cast('B')
11071113

11081114
written = 0
11091115
with self._read_lock:
@@ -1600,7 +1606,9 @@ def readall(self):
16001606

16011607
def readinto(self, b):
16021608
"""Same as RawIOBase.readinto()."""
1603-
m = memoryview(b).cast('B')
1609+
# XXX RustPython TODO: proper memoryview implementation
1610+
# m = memoryview(b).cast('B')
1611+
m = b
16041612
data = self.read(len(m))
16051613
n = len(data)
16061614
m[:n] = data

0 commit comments

Comments
 (0)