mirror of
https://github.com/ansible-collections/community.general.git
synced 2026-04-06 10:43:14 +00:00
Allow timeout decorator to handle @timeout as well as @timeout()
This commit is contained in:
committed by
Brian Coca
parent
b4bd6c80de
commit
226124956c
@@ -101,6 +101,19 @@ def timeout(seconds=None, error_message="Timer expired"):
|
||||
|
||||
return wrapper
|
||||
|
||||
# If we were called as @timeout, then the first parameter will be the
|
||||
# function we are to wrap instead of the number of seconds. Detect this
|
||||
# and correct it by setting seconds to our default value and return the
|
||||
# inner decorator function manually wrapped around the function
|
||||
if callable(seconds):
|
||||
func = seconds
|
||||
seconds = 10
|
||||
return decorator(func)
|
||||
else:
|
||||
# If we were called as @timeout([...]) then python itself will take
|
||||
# care of wrapping the inner decorator around the function
|
||||
return decorator
|
||||
|
||||
return decorator
|
||||
|
||||
# --------------------------------------------------------------
|
||||
|
||||
Reference in New Issue
Block a user