diff --git a/zipline/utils/input_validation.py b/zipline/utils/input_validation.py index 5184c78b..4d7256a5 100644 --- a/zipline/utils/input_validation.py +++ b/zipline/utils/input_validation.py @@ -289,6 +289,15 @@ def coerce(from_, to, **to_kwargs): A preprocessing decorator that coerces inputs of a given type by passing them to a callable. + Parameters + ---------- + from : type or tuple or types + Inputs types on which to call ``to``. + to : function + Coercion function to call on inputs. + **to_kwargs + Additional keywords to forward to every call to ``to``. + Usage ----- >>> @preprocess(x=coerce(float, int), y=coerce(float, int)) @@ -297,6 +306,13 @@ def coerce(from_, to, **to_kwargs): ... >>> floordiff(3.2, 2.5) 1 + + >>> @preprocess(x=coerce(str, int, base=2), y=coerce(str, int, base=2)) + ... def add_binary_strings(x, y): + ... return bin(x + y)[2:] + ... + >>> add_binary_strings('101', '001') + '110' """ def preprocessor(func, argname, arg): if isinstance(arg, from_):