docs: def system_piped(self, cmd):
          """Call the given cmd in a subprocess, piping stdout/err
  
          Parameters
          ----------
          cmd : str
            Command to execute (can not end in '&', as background processes are
            not supported.  Should not be a command that expects input
            other than simple text.
          """
          if cmd.rstrip().endswith('&'):
              # this is *far* from a rigorous test
              # We do not support backgrounding processes because we either use
              # pexpect or pipes to read from.  Users can always just call
              # os.system() or use ip.system=ip.system_raw
              # if they really want a background process.
              raise OSError("Background processes not supported.")
  
          # we explicitly do NOT return the subprocess status code, because
          # a non-None value would trigger :func:`sys.displayhook` calls.
          # Instead, we store the exit_code in user_ns.
          self.user_ns['_exit_code'] = system(self.var_expand(cmd, depth=1))