code: def _read_data(self):
      if self._part_buffer.tell() < self.MAX_PART_READ:
          data = self._file.read(self.BUFFER_SIZE)
          if not data:
              return
          if self._part_buffer.tell() > 0:
              data = self._reset_part_buffer() + data
          self._decode(data)
  
      if not self._parsed_queue:
          data = self._file.read(self.BUFFER_SIZE)
          while data:
              self._part_buffer.write(data)
              data = self._file.read(self.BUFFER_SIZE)
          data = self._reset_part_buffer()
          self._decode(data)
  
file_path: neptune-client/src/neptune/internal/utils/json_file_splitter.py
imports: import json
  from collections import deque
  from io import StringIO
  from json import JSONDecodeError
  from typing import Optional, Tuple
label_desc: Use image node_id 5 for calling the JsonFileSplitter obj's underlying member method code with example usage: obj._read_data() without return types