      except FileNotFoundError:
          raise FileNotFoundError(
              Errors.E970.format(str_command=" ".join(command), tool=command[0])
          ) from None
      if status != 0:
          sys.exit(status)
  
  
  @contextmanager
  def working_dir(path: Union[str, Path]) -> None:
      """Change current working directory and returns to previous on exit.
 
</s> remove         status = subprocess.call(command, env=os.environ.copy())
 </s> add         ret = subprocess.run(
            command,
            env=os.environ.copy(),
            capture_output=capture,
            input=stdin,
            text=True,
            check=True,
        ) </s> remove def run_command(command: Union[str, List[str]]) -> None:
 </s> add def run_command(command: Union[str, List[str]], *, capture=False, stdin=None) -> None: </s> remove         msg.fail("Parent of destination of checkout must exist", exits=1)
 </s> add         raise IOError("Parent of destination of checkout must exist")
    # We're using Git, partial clone and sparse checkout to
    # only clone the files we need
    # This ends up being RIDICULOUS. omg.
    # So, every tutorial and SO post talks about 'sparse checkout'...But they
    # go and *clone* the whole repo. Worthless. And cloning part of a repo
    # turns out to be completely broken. The only way to specify a "path" is..
    # a path *on the server*? The contents of which, specifies the paths. Wat.
    # Obviously this is hopelessly broken and insecure, because you can query
    # arbitrary paths on the server! So nobody enables this.
    # What we have to do is disable *all* files. We could then just checkout
    # the path, and it'd "work", but be hopelessly slow...Because it goes and
    # transfers every missing object one-by-one. So the final piece is that we
    # need to use some weird git internals to fetch the missings in bulk, and
    # *that* we can do by path. </s> remove         return (self.tp / (self.tp + self.fp + 1e-100))
 </s> add         return self.tp / (self.tp + self.fp + 1e-100)
    if ret.returncode != 0:
        sys.exit(ret.returncode)
    return ret
      except FileNotFoundError:
          raise FileNotFoundError(
              Errors.E970.format(str_command=" ".join(command), tool=command[0])
          ) from None
    if ret.returncode != 0:
        sys.exit(ret.returncode)
    return ret
    if ret.returncode != 0:
        sys.exit(ret.returncode)
    return ret
  
  
  @contextmanager
  def working_dir(path: Union[str, Path]) -> None:
      """Change current working directory and returns to previous on exit.
keep keep keep keep replace replace keep keep keep keep keep
 Fix the git "sparse checkout" functionality (#5973)

* Fix the git sparse checkout functionality

* Format 
spacy/util.py