ENH: An improved error message when calling zipline api functions

outside of a running simulation. Previously, an AttributeError was
raised.
This commit is contained in:
Richard Frank
2016-11-11 11:01:49 -05:00
parent 8b8b4a8118
commit 1d2d6d843f
+7 -1
View File
@@ -48,7 +48,13 @@ def api_method(f):
@wraps(f)
def wrapped(*args, **kwargs):
# Get the instance and call the method
return getattr(get_algo_instance(), f.__name__)(*args, **kwargs)
algo_instance = get_algo_instance()
if algo_instance is None:
raise RuntimeError(
'zipline api method %s must be called during a simulation.'
% f.__name__
)
return getattr(algo_instance, f.__name__)(*args, **kwargs)
# Add functor to zipline.api
setattr(zipline.api, f.__name__, wrapped)
zipline.api.__all__.append(f.__name__)