Wrap a delegated instance attribute function.
Creates a decorator for methods that are delegated in the presence of a results wrapper. This enables duck-typing by
hasattrreturning True according to the sub-estimator.
This function was adapted from scikit-learn, which defines
if_delegate_has_method, but operates differently by injecting methods not based on method presence, but by delegate presence.
delegate : string, list of strings or tuple of strings
Name of the sub-estimator that can be accessed as an attribute of the base object. If a list or a tuple of names are provided, the first sub-estimator that is an attribute of the base object will be used.
>>> from pmdarima.utils.metaestimators import if_has_delegate >>> >>> class A(object): ... @if_has_delegate('d') ... def func(self): ... return True >>> >>> a = A() >>> # the delegate does not exist yet >>> assert not hasattr(a, 'func') >>> # inject the attribute >>> a.d = None >>> assert hasattr(a, 'func') and a.func()