Metadata-Version: 1.1
Name: signalled-timeout
Version: 1.0.0
Summary: Timeout library for generic interruption of main thread by an exception after a configurable duration
Home-page: https://github.com/dssg/signalled-timeout
Author: Center for Data Science and Public Policy
Author-email: datascifellows@gmail.com
License: UNKNOWN
Description-Content-Type: UNKNOWN
Description: signalled-timeout
        =================
        
        Timeout library for generic interruption of main thread by an exception
        after a configurable duration.
        
        Use case
        --------
        
        Set a timeout (seconds) upon expiration of which an exception is raised:
        
        ::
        
            from timeout import timeout
        
        ...as a context manager:
        
        ::
        
            with timeout(0.5):
                ... work ...
        
        ...or decorating a function:
        
        ::
        
            @timeout(0.5)
            def work():
                ...
        
        The exception may be configured, either by passing an exception
        instance, or by specifying an overriding exception class and/or
        value(s):
        
        ::
        
            with timeout(0.5, RuntimeError("Work took too long")):
                ... work ...
        
            with timeout(0.5, RuntimeError, "Work took too long"):
                ... work ...
        
            with timeout(0.5, exc=RuntimeError):
                ... work ...
        
            with timeout(0.5, value="Work took too long"):
                ... work ...
        
            with timeout(0.5, value=(2, "Took too long", 'work.py')):
                ... work ...
        
        The timeout exception defaults to
        ``TimeoutError("Operation timed out")``.
        
        Note: ``timeout`` is implemented via ``signal``, and as such may not be
        applied outside of a process's main thread.
        
        Installation
        ------------
        
        ``signalled-timeout`` is a Python distribution, which may be installed
        via ``easy_install`` or ``pip``, *e.g.*:
        
        ::
        
            pip install signalled-timeout
        
        ...or, from source:
        
        ::
        
            python setup.py install
        
        Testing
        -------
        
        To test the distribution on your system, execute its ``test`` command:
        
        ::
        
            python setup.py test
        
Platform: UNKNOWN
Classifier: Development Status :: 5 - Production/Stable
Classifier: Intended Audience :: Developers
Classifier: Natural Language :: English
Classifier: Programming Language :: Python :: 3.5
