Interrupting Cow
================

MOOOOO!


Overview
--------

Interruptingcow is a generic utility can relatively gracefully interrupt your
Python code when it doesn't execute within a specific number of seconds::

    from interruptingcow import timeout

    try:
        with timeout(5):
            # perform a potentially very slow operation
            pass
    except RuntimeError:
        print "didn't finish within 5 seconds"


Installation
------------
::

    $ pip install interruptingcow

Caveats
-------

Interruptingcow uses ``signal(SIGALRM)`` to let the operating system interrupt
program execution. This has the following limitations:

1. Python signal handlers only apply to the main thread, so you cannot use this
   from other threads
2. You must not use this in a program that uses ``SIGALRM`` itself
