@@ -385,7 +385,6 @@ def _read(cls, fileobj, header, buffer_size=4):
385
385
Streamline points
386
386
"""
387
387
dtype = header ["_dtype" ]
388
-
389
388
coordinate_size = 3 * dtype .itemsize
390
389
# Make buffer_size an integer and a multiple of coordinate_size.
391
390
buffer_size = int (buffer_size * MEGABYTE )
@@ -398,16 +397,16 @@ def _read(cls, fileobj, header, buffer_size=4):
398
397
f .seek (header ["_offset_data" ], os .SEEK_SET )
399
398
400
399
eof = False
401
- n_streams = 0
402
400
leftover = np .empty ((0 , 3 ), dtype = '<f4' )
401
+ n_streams = 0
402
+
403
403
while not eof :
404
404
buff = bytearray (buffer_size )
405
405
n_read = f .readinto (buff )
406
406
eof = n_read != buffer_size
407
407
if eof :
408
408
buff = buff [:n_read ]
409
409
410
- # read raw files from file
411
410
raw_values = np .frombuffer (buff , dtype = dtype )
412
411
413
412
# Convert raw_values into a list of little-endian triples (for x,y,z coord)
@@ -416,6 +415,7 @@ def _read(cls, fileobj, header, buffer_size=4):
416
415
# Find stream delimiter locations (all NaNs)
417
416
delims = np .where (np .isnan (coords ).all (axis = 1 ))[0 ]
418
417
418
+ # Recover leftovers, which can't have delimiters in them
419
419
if leftover .size :
420
420
delims += leftover .shape [0 ]
421
421
coords = np .vstack ((leftover , coords ))
@@ -428,7 +428,7 @@ def _read(cls, fileobj, header, buffer_size=4):
428
428
n_streams += 1
429
429
begin = delim + 1
430
430
431
- # the rest gets appended to the leftover
431
+ # The rest gets appended to the leftover
432
432
leftover = coords [begin :]
433
433
434
434
if not (leftover .shape == (1 , 3 ) and np .isinf (leftover ).all ()):
0 commit comments