func_timeout.dafunc
index

Copyright (c) 2016 Tim Savannah All Rights Reserved.
 
Licensed under the Lesser GNU Public License Version 3, LGPLv3. You should have recieved a copy of this with the source distribution as
LICENSE, otherwise it is available at https://github.com/kata198/func_timeout/LICENSE

 
Modules
       
threading
time

 
Functions
       
func_timeout(timeout, func, args=(), kwargs=None)
func_timeout - Runs the given function for up to #timeout# seconds.
 
Raises any exceptions #func# would raise, returns what #func# would return (unless timeout is exceeded), in which case it raises FunctionTimedOut
 
@param timeout <float> - Maximum number of seconds to run #func# before terminating
@param func <function> - The function to call
@param args    <tuple> - Any ordered arguments to pass to the function
@param kwargs  <dict/None> - Keyword arguments to pass to the function.
 
@raises - FunctionTimedOut if #timeout# is exceeded, otherwise anything #func# could raise will be raised
 
If the timeout is exceeded, FunctionTimedOut will be raised within the context of the called function every two seconds until it terminates,
but will not block the calling thread (a new thread will be created to perform the join). If possible, you should try/except FunctionTimedOut
to return cleanly, but in most cases it will 'just work'.
 
Be careful of code like:
def myfunc():
    while True:
        try:
            dosomething()
        except Exception:
            continue
 
because it will never terminate.
 
@return - The return value that #func# gives