Skip to content

Commit b1f7802

Browse files
DeepMindcopybara-github
authored andcommitted
Fix model loading for etils file providers that do not support readinto.
PiperOrigin-RevId: 941158582 Change-Id: I2d4c92690440b2f99f11407a72476c910d481937
1 parent 7b4c2a5 commit b1f7802

1 file changed

Lines changed: 10 additions & 2 deletions

File tree

src/alphafold3/model/params.py

Lines changed: 10 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -149,8 +149,16 @@ def readinto(self, b: bytearray | memoryview) -> int:
149149
result = 0
150150
mem = memoryview(b)
151151
while mem:
152-
self._handles[self._relpos[0]].seek(self._relpos[1])
153-
count = self._handles[self._relpos[0]].readinto(mem)
152+
file_handle = self._handles[self._relpos[0]]
153+
file_handle.seek(self._relpos[1])
154+
if hasattr(file_handle, 'readinto'):
155+
count = file_handle.readinto(mem)
156+
else:
157+
# Workaround for file providers that do not support readinto.
158+
data = file_handle.read(len(mem))
159+
count = len(data)
160+
mem[:count] = data
161+
154162
result += count
155163
self._abspos += count
156164
self._relpos = self._abs_to_rel(self._abspos)

0 commit comments

Comments
 (0)