class_docstr: Git subclassed to never use persistent processes.
class_docstr_tok: ["Git","subclassed","to","never","use","persistent","processes","."]
code: def stream_object_data(
      self, ref: str
  ) -> tuple[str, str, int, Git.CatFileContentStream]:
      # Not really streaming, per se; this buffers the entire object in memory.
      # Shouldn't be a problem for our use case, since we're only using this for
      # object headers (commit objects).
      ret = subprocess.check_output(
          [self.GIT_PYTHON_GIT_EXECUTABLE, "cat-file", "--batch"],
          input=self._prepare_ref(ref),
          cwd=self._working_dir,
          timeout=30,
      )
      bio = io.BytesIO(ret)
      hexsha, typename, size = self._parse_object_header(bio.readline())
      return (
          hexsha,
          typename,
          size,
          self.CatFileContentStream(size, bio),
      )
  
file_path: stable-diffusion-webui/modules/gitpython_hack.py
imports: from __future__ import annotations
  import io
  import subprocess
  import git
label_desc: Use image node_id 3 for calling the Git obj's underlying member method code with example usage: obj.stream_object_data(ref) and returns: hexsha,  typename,  size,  self