MAINT: Encapsulate engine initialization.

Required for internal override.
This commit is contained in:
Scott Sanderson
2015-08-04 19:26:56 -04:00
parent 223c8d02f9
commit 3f45494771
+16 -10
View File
@@ -211,16 +211,7 @@ class TradingAlgorithm(object):
)
# Pull in the environment's new AssetFinder for quick reference
self.asset_finder = self.trading_environment.asset_finder
ffc_loader = kwargs.pop('ffc_loader', None)
if ffc_loader is not None:
self.engine = SimpleFFCEngine(
ffc_loader,
self.trading_environment.trading_days,
self.asset_finder,
)
else:
self.engine = NoOpFFCEngine()
self.init_engine(kwargs.pop('ffc_loader', None))
# Maps from name to Term
self._filters = {}
@@ -308,6 +299,21 @@ class TradingAlgorithm(object):
self.initialize_args = args
self.initialize_kwargs = kwargs
def init_engine(self, loader):
"""
Construct and save an FFCEngine from loader.
If loader is None, constructs a NoOpFFCEngine.
"""
if loader is not None:
self.engine = SimpleFFCEngine(
loader,
self.trading_environment.trading_days,
self.asset_finder,
)
else:
self.engine = NoOpFFCEngine()
def initialize(self, *args, **kwargs):
"""
Call self._initialize with `self` made available to Zipline API