Source code for wildnlp.aspects.utils
import functools
[docs]def compose(*functions):
"""Chains multiple aspects into a single function.
:param functions: Object(s) of the Callable instance.
:return: chained function
Example::
from wildnlp.aspects.utils import compose
from wildnlp.aspects import Swap, QWERTY
composed_aspect = compose(Swap(), QWERTY())
modified_text = composed_aspect('Text to corrupt')
"""
return functools.reduce(lambda f, g: lambda x: g(f(x)),
functions, lambda x: x)