From 6f2e1672d709b5b2fecf8c2b77f1e7498a52d5ed Mon Sep 17 00:00:00 2001 From: Thomas Wiecki Date: Tue, 25 Aug 2015 13:25:54 +0200 Subject: [PATCH] BUG: Forward initialize args and kwargs to user-defined function. The initialize method of TradingAlgorithm no longer accepts and silently ignores args and kwargs, but instead forwards them to the user-defined function referenced by self._initialize. To avoid passing unexpected arguments to self._initialize, the following additional adjustments are made: - pop 'namespace' from the kwargs supplied to TradingAlgorithm rather than simply get()ing it - do not pass an AssetFinder to the TradingAlgorithm in test_modelling_algo.py, as this has been deprecated and will cause self._initialize to fail --- tests/modelling/test_modelling_algo.py | 3 --- zipline/algorithm.py | 4 ++-- 2 files changed, 2 insertions(+), 5 deletions(-) diff --git a/tests/modelling/test_modelling_algo.py b/tests/modelling/test_modelling_algo.py index 15dac0c8..a1060501 100644 --- a/tests/modelling/test_modelling_algo.py +++ b/tests/modelling/test_modelling_algo.py @@ -32,7 +32,6 @@ from zipline.api import ( add_factor, get_datetime, ) -from zipline.assets import AssetFinder # from zipline.data.equities import USEquityPricing from zipline.data.ffc.loaders.us_equity_pricing import ( BcolzDailyBarReader, @@ -87,7 +86,6 @@ class FFCAlgorithmTestCase(TestCase): ) cls.env = trading.TradingEnvironment() cls.env.write_data(equities_df=asset_info) - cls.asset_finder = AssetFinder(cls.env.engine) cls.tempdir = tempdir = TempDirectory() tempdir.create() try: @@ -210,7 +208,6 @@ class FFCAlgorithmTestCase(TestCase): before_trading_start=before_trading_start, data_frequency='daily', ffc_loader=self.ffc_loader, - asset_finder=self.asset_finder, start=self.dates[max(window_lengths)], end=self.dates[-1], ) diff --git a/zipline/algorithm.py b/zipline/algorithm.py index 3e4c6289..97be99b7 100644 --- a/zipline/algorithm.py +++ b/zipline/algorithm.py @@ -177,7 +177,7 @@ class TradingAlgorithm(object): self.account_controls = [] self._recorded_vars = {} - self.namespace = kwargs.get('namespace', {}) + self.namespace = kwargs.pop('namespace', {}) self._platform = kwargs.pop('platform', 'zipline') @@ -336,7 +336,7 @@ class TradingAlgorithm(object): functions. """ with ZiplineAPI(self): - self._initialize(self) + self._initialize(self, *args, **kwargs) def before_trading_start(self, data): if self._before_trading_start is None: