From 7daf58ec9b734dd138fd5f7959062685927f21d6 Mon Sep 17 00:00:00 2001 From: Scott Sanderson Date: Mon, 2 Jun 2014 23:36:38 -0400 Subject: [PATCH] ENH: Add a class-level `instance` method on `TradingEnvironment`. Adds a classmethod, `instance` on `TradingEnvironment` that returns `zipline.finance.trading.environment`, instantiating it if necessary. This makes it possible to initialize the default environment instance in a less-roundabout way than creating a `SimulationParameters` object. --- zipline/finance/trading.py | 15 +++++++++++---- 1 file changed, 11 insertions(+), 4 deletions(-) diff --git a/zipline/finance/trading.py b/zipline/finance/trading.py index f4ace1f5..098237c5 100644 --- a/zipline/finance/trading.py +++ b/zipline/finance/trading.py @@ -75,6 +75,14 @@ class NoFurtherDataError(Exception): class TradingEnvironment(object): + @classmethod + def instance(cls): + global environment + if not environment: + environment = TradingEnvironment() + + return environment + def __init__( self, load=None, @@ -227,10 +235,9 @@ class SimulationParameters(object): emission_rate='daily', data_frequency='daily', sids=None): - global environment - if not environment: - # This is the global environment for trading simulation. - environment = TradingEnvironment() + + # This is the global environment for trading simulation. + environment = TradingEnvironment.instance() self.period_start = period_start self.period_end = period_end