# spacepy.toolbox.timeout_check_call

spacepy.toolbox.timeout_check_call(timeout, *args, **kwargs)

  Call a subprocess with a timeout.

  Like `subprocess.check_call()`, but will terminate the process and raise `TimeoutError` if it runs for too long.

  This will only terminate the single process started; any child processes will remain running (this has implications for, say, spawing shells.)

  Parameters
    timeout float

      Timeout, in seconds. Fractions are acceptable but the resolution is of order 100ms.

    args sequence

      Arguments passed through to `subprocess.Popen`

    kwargs dict

      keyword arguments to pass to `subprocess.Popen`

  Returns
    out int

      0 on successful completion

  Raises
    TimeoutError If subprocess does not return in `timeout` seconds.
    CalledProcessError if command has non-zero exit status

  Examples

      >>> import spacepy.toolbox as tb
      >>> tb.timeout_check_call(1, 'sleep 30', shell=True) #raises TimeoutError