execution#
Module providing additional execution methods.
Functions:
|
Use for decorating functions that are to execute asynchronously. |
|
Executes object with the timeout limit. |
|
Loops while specified object does not return expected response. |
- ansys.fluent.core.utils.execution.asynchronous(f)#
Use for decorating functions that are to execute asynchronously. The decorated function returns a future object. Calling result() on the future object synchronizes the function execution.
Examples
asynchronous execution using @asynchronous decorator
>>> @asynchronous ... def asynchronous_solve(solver_session, number_of_iterations): ... solver_session.tui.solve.iterate(number_of_iterations) >>> asynchronous_solve(solver_session_1, 100)
using the asynchronous function directly
>>> asynchronous(solver_session_2.tui.solve.iterate)(100)
synchronous execution of above 2 calls
>>> asynchronous_solve(solver_session_1, 100).result() >>> asynchronous(solver_session_2.tui.solve.iterate)(100).result()
- ansys.fluent.core.utils.execution.timeout_exec(obj, timeout, args=None, kwargs=None)#
Executes object with the timeout limit. Tries to return whatever the provided object returns. If the object returns nothing, this function will return
True. If it times out, returnsFalse.- Parameters:
- obj
Any Object to execute.
- timeout
float Time before cancelling execution and returning early.
- args
Any,optional Arguments to be passed to the specified object.
- kwargs
Any,optional Keyword arguments to be passed to the specified object.
- obj
Examples
Execute
time.sleep()for 2 seconds, with a timeout of 1 second:>>> import time >>> from ansys.fluent.core.utils.execution import timeout_exec >>> ret = timeout_exec(time.sleep,timeout=1,args=(2,)) >>> assert ret is False
- ansys.fluent.core.utils.execution.timeout_loop(obj, timeout, args=None, kwargs=None, idle_period=0.2, expected='truthy')#
Loops while specified object does not return expected response. Timeouts after specified time has elapsed. Tries to return whatever is returned by the specified object. If nothing is returned before timeout, returns the opposite of the expected value, i.e.
Trueifexpected == "falsy"andFalseifexpected == "truthy".- Parameters:
- obj
Any Object to evaluate while looping if it does not return expected response.
- timeout
float Time before cancelling execution and returning early.
- args
Any,optional Arguments to be passed to the specified object.
- kwargs
Any,optional Keyword arguments to be passed to the specified object.
- idle_period
float,optional Time in seconds to wait between object evaluations, defaults to 0.2 seconds.
- expected: str, optional
Possible values are
"truthy"or"falsy", indicating what type of return is expected. By default, expects a"truthy"return from the specified object.
- obj
- Raises:
InvalidArgumentIf an unrecognized value is passed for
expected.
Examples
Waiting 5 seconds to see if
func("test")returns True:>>> func("test") False >>> response = timeout_loop(func, timeout=5.0, args=("test",))
Waiting 5 seconds to see if
func2("test",word="hello")returns False:>>> func2("test", word="hello") True >>> response = timeout_loop(func2, timeout=5.0, expected="falsy", args=("test",), kwargs={"word":"hello",})