209 lines
17 KiB
HTML
209 lines
17 KiB
HTML
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
|
|
<html ><head ><title >Python: package func_timeout</title>
|
|
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
|
|
</head><body bgcolor="#f0f0f8" >
|
|
|
|
<table width="100%" cellspacing="0" cellpadding="2" border="0" summary="heading" >
|
|
<tr bgcolor="#7799ee" >
|
|
<td valign="bottom" > <br />
|
|
<font color="#ffffff" face="helvetica, arial" > <br /><big ><big ><strong >func_timeout</strong></big></big> (version 4.2.0)</font></td><td align="right" valign="bottom" ><font color="#ffffff" face="helvetica, arial" ><a href="func_timeout.html" >index</a></font></td></tr></table>
|
|
<p ><tt >Copyright (c) 2016, 2017 Tim Savannah All Rights Reserved.<br />
|
|
<br />
|
|
Licensed under the Lesser GNU Public License Version 3, LGPLv3. You should have recieved a copy of this with the source distribution as<br />
|
|
LICENSE, otherwise it is available at https://github.com/kata198/func_timeout/LICENSE</tt></p>
|
|
<p >
|
|
<table width="100%" cellspacing="0" cellpadding="2" border="0" summary="section" >
|
|
<tr bgcolor="#aa55cc" >
|
|
<td colspan="3" valign="bottom" > <br />
|
|
<font color="#ffffff" face="helvetica, arial" ><big ><strong >Package Contents</strong></big></font></td></tr>
|
|
|
|
<tr ><td bgcolor="#aa55cc" ><tt > </tt></td><td > </td>
|
|
<td width="100%" ><table width="100%" summary="list" ><tr ><td width="25%" valign="top" ><a href="func_timeout.StoppableThread.html" >StoppableThread</a><br />
|
|
<a href="func_timeout.dafunc.html" >dafunc</a><br />
|
|
</td><td width="25%" valign="top" ><a href="func_timeout.exceptions.html" >exceptions</a><br />
|
|
<a href="func_timeout.py2_raise.html" >py2_raise</a><br />
|
|
</td><td width="25%" valign="top" ><a href="func_timeout.py3_raise.html" >py3_raise</a><br />
|
|
</td><td width="25%" valign="top" ></td></tr></table></td></tr></table><p >
|
|
<table width="100%" cellspacing="0" cellpadding="2" border="0" summary="section" >
|
|
<tr bgcolor="#ee77aa" >
|
|
<td colspan="3" valign="bottom" > <br />
|
|
<font color="#ffffff" face="helvetica, arial" ><big ><strong >Classes</strong></big></font></td></tr>
|
|
|
|
<tr ><td bgcolor="#ee77aa" ><tt > </tt></td><td > </td>
|
|
<td width="100%" ><dl >
|
|
<dt ><font face="helvetica, arial" ><a href="builtins.html#BaseException" >builtins.BaseException</a>(<a href="builtins.html#object" >builtins.object</a>)
|
|
</font></dt><dd >
|
|
<dl >
|
|
<dt ><font face="helvetica, arial" ><a href="func_timeout.exceptions.html#FunctionTimedOut" >func_timeout.exceptions.FunctionTimedOut</a>
|
|
</font></dt></dl>
|
|
</dd>
|
|
</dl>
|
|
<p >
|
|
<table width="100%" cellspacing="0" cellpadding="2" border="0" summary="section" >
|
|
<tr bgcolor="#ffc8d8" >
|
|
<td colspan="3" valign="bottom" > <br />
|
|
<font color="#000000" face="helvetica, arial" ><a name="FunctionTimedOut" >class <strong >FunctionTimedOut</strong></a>(<a href="builtins.html#BaseException" >builtins.BaseException</a>)</font></td></tr>
|
|
|
|
<tr bgcolor="#ffc8d8" ><td rowspan="2" ><tt > </tt></td>
|
|
<td colspan="2" ><tt ><a href="#FunctionTimedOut" >FunctionTimedOut</a> - Exception raised when a function times out<br />
|
|
<br />
|
|
@property timedOutAfter - Number of seconds before timeout was triggered<br />
|
|
<br />
|
|
@property timedOutFunction - Function called which timed out<br />
|
|
@property timedOutArgs - Ordered args to function<br />
|
|
@property timedOutKwargs - Keyword args to function<br />
|
|
<br />
|
|
@method retry - Retries the function with same arguments, with option to run with original timeout, no timeout, or a different<br />
|
|
explicit timeout. @see <a href="#FunctionTimedOut" >FunctionTimedOut</a>.retry<br /> </tt></td></tr>
|
|
<tr ><td > </td>
|
|
<td width="100%" ><dl ><dt >Method resolution order:</dt>
|
|
<dd ><a href="func_timeout.exceptions.html#FunctionTimedOut" >FunctionTimedOut</a></dd>
|
|
<dd ><a href="builtins.html#BaseException" >builtins.BaseException</a></dd>
|
|
<dd ><a href="builtins.html#object" >builtins.object</a></dd>
|
|
</dl>
|
|
<hr />
|
|
Methods defined here:<br />
|
|
<dl ><dt ><a name="FunctionTimedOut-__init__" ><strong >__init__</strong></a>(self, msg='', timedOutAfter=None, timedOutFunction=None, timedOutArgs=None, timedOutKwargs=None)</dt><dd ><tt >Initialize self. See help(type(self)) for accurate signature.</tt></dd></dl>
|
|
|
|
<dl ><dt ><a name="FunctionTimedOut-getMsg" ><strong >getMsg</strong></a>(self)</dt><dd ><tt >getMsg - Generate a default message based on parameters to <a href="#FunctionTimedOut" >FunctionTimedOut</a> exception'<br />
|
|
<br />
|
|
@return <str> - Message</tt></dd></dl>
|
|
|
|
<dl ><dt ><a name="FunctionTimedOut-retry" ><strong >retry</strong></a>(self, timeout='RETRY_SAME_TIMEOUT')</dt><dd ><tt >retry - Retry the timed-out function with same arguments.<br />
|
|
<br />
|
|
@param timeout <float/RETRY_SAME_TIMEOUT/None> Default RETRY_SAME_TIMEOUT<br />
|
|
<br />
|
|
If RETRY_SAME_TIMEOUT : Will retry the function same args, same timeout<br />
|
|
If a float/int : Will retry the function same args with provided timeout<br />
|
|
If None : Will retry function same args no timeout<br />
|
|
<br />
|
|
@return - Returnval from function</tt></dd></dl>
|
|
|
|
<hr />
|
|
Data descriptors defined here:<br />
|
|
<dl ><dt ><strong >__weakref__</strong></dt>
|
|
<dd ><tt >list of weak references to the object (if defined)</tt></dd>
|
|
</dl>
|
|
<hr />
|
|
Methods inherited from <a href="builtins.html#BaseException" >builtins.BaseException</a>:<br />
|
|
<dl ><dt ><a name="FunctionTimedOut-__delattr__" ><strong >__delattr__</strong></a>(self, name, /)</dt><dd ><tt >Implement delattr(self, name).</tt></dd></dl>
|
|
|
|
<dl ><dt ><a name="FunctionTimedOut-__getattribute__" ><strong >__getattribute__</strong></a>(self, name, /)</dt><dd ><tt >Return getattr(self, name).</tt></dd></dl>
|
|
|
|
<dl ><dt ><a name="FunctionTimedOut-__new__" ><strong >__new__</strong></a>(*args, **kwargs)<font color="#909090" ><font face="helvetica, arial" > from <a href="builtins.html#type" >builtins.type</a></font></font></dt><dd ><tt >Create and return a new object. See help(type) for accurate signature.</tt></dd></dl>
|
|
|
|
<dl ><dt ><a name="FunctionTimedOut-__reduce__" ><strong >__reduce__</strong></a>(...)</dt><dd ><tt >helper for pickle</tt></dd></dl>
|
|
|
|
<dl ><dt ><a name="FunctionTimedOut-__repr__" ><strong >__repr__</strong></a>(self, /)</dt><dd ><tt >Return repr(self).</tt></dd></dl>
|
|
|
|
<dl ><dt ><a name="FunctionTimedOut-__setattr__" ><strong >__setattr__</strong></a>(self, name, value, /)</dt><dd ><tt >Implement setattr(self, name, value).</tt></dd></dl>
|
|
|
|
<dl ><dt ><a name="FunctionTimedOut-__setstate__" ><strong >__setstate__</strong></a>(...)</dt></dl>
|
|
|
|
<dl ><dt ><a name="FunctionTimedOut-__str__" ><strong >__str__</strong></a>(self, /)</dt><dd ><tt >Return str(self).</tt></dd></dl>
|
|
|
|
<dl ><dt ><a name="FunctionTimedOut-with_traceback" ><strong >with_traceback</strong></a>(...)</dt><dd ><tt >Exception.<a href="#FunctionTimedOut-with_traceback" >with_traceback</a>(tb) --<br />
|
|
set self.<strong >__traceback__</strong> to tb and return self.</tt></dd></dl>
|
|
|
|
<hr />
|
|
Data descriptors inherited from <a href="builtins.html#BaseException" >builtins.BaseException</a>:<br />
|
|
<dl ><dt ><strong >__cause__</strong></dt>
|
|
<dd ><tt >exception cause</tt></dd>
|
|
</dl>
|
|
<dl ><dt ><strong >__context__</strong></dt>
|
|
<dd ><tt >exception context</tt></dd>
|
|
</dl>
|
|
<dl ><dt ><strong >__dict__</strong></dt>
|
|
</dl>
|
|
<dl ><dt ><strong >__suppress_context__</strong></dt>
|
|
</dl>
|
|
<dl ><dt ><strong >__traceback__</strong></dt>
|
|
</dl>
|
|
<dl ><dt ><strong >args</strong></dt>
|
|
</dl>
|
|
</td></tr></table></p></td></tr></table><p >
|
|
<table width="100%" cellspacing="0" cellpadding="2" border="0" summary="section" >
|
|
<tr bgcolor="#eeaa77" >
|
|
<td colspan="3" valign="bottom" > <br />
|
|
<font color="#ffffff" face="helvetica, arial" ><big ><strong >Functions</strong></big></font></td></tr>
|
|
|
|
<tr ><td bgcolor="#eeaa77" ><tt > </tt></td><td > </td>
|
|
<td width="100%" ><dl ><dt ><a name="-func_set_timeout" ><strong >func_set_timeout</strong></a>(timeout, allowOverride=False)</dt><dd ><tt >func_set_timeout - Decorator to run a function with a given/calculated timeout (max execution time).<br />
|
|
Optionally (if #allowOverride is True), adds a paramater, "forceTimeout", to the<br />
|
|
function which, if provided, will override the default timeout for that invocation.<br />
|
|
<br />
|
|
If #timeout is provided as a lambda/function, it will be called<br />
|
|
prior to each invocation of the decorated function to calculate the timeout to be used<br />
|
|
for that call, based on the arguments passed to the decorated function.<br />
|
|
<br />
|
|
For example, you may have a "processData" function whose execution time<br />
|
|
depends on the number of "data" elements, so you may want a million elements to have a <br />
|
|
much higher timeout than seven elements.)<br />
|
|
<br />
|
|
If #allowOverride is True AND a kwarg of "forceTimeout" is passed to the wrapped function, that timeout<br />
|
|
will be used for that single call.<br />
|
|
<br />
|
|
@param timeout <float OR lambda/function> - <br />
|
|
<br />
|
|
**If float:**<br />
|
|
Default number of seconds max to allow function to execute<br />
|
|
before throwing <a href="#FunctionTimedOut" >FunctionTimedOut</a><br />
|
|
<br />
|
|
**If lambda/function:<br />
|
|
<br />
|
|
If a function/lambda is provided, it will be called for every<br />
|
|
invocation of the decorated function (unless #allowOverride=True and "forceTimeout" was passed) <br />
|
|
to determine the timeout to use based on the arguments to the decorated function.<br />
|
|
<br />
|
|
The arguments as passed into the decorated function will be passed to this function.<br />
|
|
They either must match exactly to what the decorated function has, OR<br />
|
|
if you prefer to get the *args (list of ordered args) and **kwargs ( key : value keyword args form),<br />
|
|
define your calculate function like:<br />
|
|
<br />
|
|
def calculateTimeout(*args, **kwargs):<br />
|
|
...<br />
|
|
<br />
|
|
or lambda like:<br />
|
|
<br />
|
|
calculateTimeout = lambda *args, **kwargs : ...<br />
|
|
<br />
|
|
otherwise the args to your calculate function should match exactly the decorated function.<br />
|
|
<br />
|
|
<br />
|
|
@param allowOverride <bool> Default False, if True adds a keyword argument to the decorated function,<br />
|
|
"forceTimeout" which, if provided, will override the #timeout. If #timeout was provided as a lambda / function, it<br />
|
|
will not be called.<br />
|
|
<br />
|
|
@throws <a href="#FunctionTimedOut" >FunctionTimedOut</a> If time alloted passes without function returning naturally<br />
|
|
<br />
|
|
@see func_timeout</tt></dd></dl>
|
|
<dl ><dt ><a name="-func_timeout" ><strong >func_timeout</strong></a>(timeout, func, args=(), kwargs=None)</dt><dd ><tt >func_timeout - Runs the given function for up to #timeout# seconds.<br />
|
|
<br />
|
|
Raises any exceptions #func# would raise, returns what #func# would return (unless timeout is exceeded), in which case it raises <a href="#FunctionTimedOut" >FunctionTimedOut</a><br />
|
|
<br />
|
|
@param timeout <float> - Maximum number of seconds to run #func# before terminating<br />
|
|
<br />
|
|
@param func <function> - The function to call<br />
|
|
<br />
|
|
@param args <tuple> - Any ordered arguments to pass to the function<br />
|
|
<br />
|
|
@param kwargs <dict/None> - Keyword arguments to pass to the function.<br />
|
|
<br />
|
|
<br />
|
|
@raises - <a href="#FunctionTimedOut" >FunctionTimedOut</a> if #timeout# is exceeded, otherwise anything #func# could raise will be raised<br />
|
|
<br />
|
|
If the timeout is exceeded, <a href="#FunctionTimedOut" >FunctionTimedOut</a> will be raised within the context of the called function every two seconds until it terminates,<br />
|
|
but will not block the calling thread (a new thread will be created to perform the join). If possible, you should try/except <a href="#FunctionTimedOut" >FunctionTimedOut</a><br />
|
|
to return cleanly, but in most cases it will 'just work'.<br />
|
|
<br />
|
|
@return - The return value that #func# gives</tt></dd></dl>
|
|
</td></tr></table><p >
|
|
<table width="100%" cellspacing="0" cellpadding="2" border="0" summary="section" >
|
|
<tr bgcolor="#55aa55" >
|
|
<td colspan="3" valign="bottom" > <br />
|
|
<font color="#ffffff" face="helvetica, arial" ><big ><strong >Data</strong></big></font></td></tr>
|
|
|
|
<tr ><td bgcolor="#55aa55" ><tt > </tt></td><td > </td>
|
|
<td width="100%" ><strong >__all__</strong> = ('func_timeout', 'func_set_timeout', 'FunctionTimedOut')<br />
|
|
<strong >__version_tuple__</strong> = (4, 2, 0)</td></tr></table>
|
|
</p></p></p></p></body></html> |