From 1d2d6d843f53eae96a83dcaa69fe027fbb7ff1b6 Mon Sep 17 00:00:00 2001 From: Richard Frank Date: Fri, 11 Nov 2016 11:01:49 -0500 Subject: [PATCH] ENH: An improved error message when calling zipline api functions outside of a running simulation. Previously, an AttributeError was raised. --- zipline/utils/api_support.py | 8 +++++++- 1 file changed, 7 insertions(+), 1 deletion(-) diff --git a/zipline/utils/api_support.py b/zipline/utils/api_support.py index 75444460..823958e3 100644 --- a/zipline/utils/api_support.py +++ b/zipline/utils/api_support.py @@ -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__)