docs: def _read(self, stream, text, byte_order):
          '''
          Read the actual data from a PLY file.
  
          '''
          dtype = self.dtype(byte_order)
          if text:
              self._read_txt(stream)
          elif _can_mmap(stream) and not self._have_list:
              # Loading the data is straightforward.  We will memory map
              # the file in copy-on-write mode.
              num_bytes = self.count * dtype.itemsize
              offset = stream.tell()
              stream.seek(0, 2)
              max_bytes = stream.tell() - offset
              if max_bytes < num_bytes:
                  raise PlyElementParseError("early end-of-file", self,
                                             max_bytes // dtype.itemsize)
              self._data = _np.memmap(stream, dtype,
                                      'c', offset, self.count)
              # Fix stream position
              stream.seek(offset + self.count * dtype.itemsize)
          else:
              # A simple load is impossible.
              self._read_bin(stream, byte_order)
  
          self._check_sanity()