Source code for akro.requires
"""Decorators used for calling tensorflow and theano functions safely."""
import functools
from akro import tf, theano
[docs]def requires_tf(func):
"""Check tf is installed before calling a function."""
@functools.wraps(func) # yapf: disable
def check(*args, **kwargs):
"""Execute the function if the module is loaded.
Args:
args (array): positional args passed to the function.
kwargs (dictionary): keyword args passed to the function.
Returns:
func: Result of the provided function.
"""
if not tf: # pragma: no cover
raise RuntimeError(
'Module "tensorflow" is required to use the function {}'.
format(func))
return func(*args, **kwargs)
return check
[docs]def requires_theano(func):
"""Check theano is installed before calling a function."""
@functools.wraps(func) # yapf: disable
def check(*args, **kwargs):
"""Execute the function if the module is loaded.
Args:
args (array): positional args passed to the function.
kwargs (dictionary): keyword args passed to the function.
Returns:
func: Result of the provided function.
"""
if not theano: # pragma: no cover
raise RuntimeError(
'Module "theano" is required to use the function {}'.format(
func))
return func(*args, **kwargs)
return check