code: def update(self, length):
      if self.raw_buffer is None:
          return
      self.buffer = self.buffer[self.pointer :]
      self.pointer = 0
      while len(self.buffer) < length:
          if not self.eof:
              self.update_raw()
          if self.raw_decode is not None:
              try:
                  data, converted = self.raw_decode(
                      self.raw_buffer, "strict", self.eof
                  )
              except UnicodeDecodeError as exc:
                  character = self.raw_buffer[exc.start]
                  if self.stream is not None:
                      position = (
                          self.stream_pointer
                          - len(self.raw_buffer)
                          + exc.start
                      )
                  else:
                      position = exc.start
                  raise ReaderError(
                      self.name,
                      position,
                      character,
                      exc.encoding,
                      exc.reason,
                  )
          else:
              data = self.raw_buffer
              converted = len(data)
          self.check_printable(data)
          self.buffer += data
          self.raw_buffer = self.raw_buffer[converted:]
          if self.eof:
              self.buffer += "\0"
              self.raw_buffer = None
              break
  
file_path: catboost/contrib/python/PyYAML/py3/yaml/reader.py
imports: from .error import YAMLError, Mark
  import codecs, re
label_desc: Use image node_id 8 for calling the Reader obj's underlying member method code with example usage: obj.update(length) without return types