MAINT: Rename ConstantLoader to PrecomputedLoader.

This commit is contained in:
Scott Sanderson
2016-02-12 21:21:19 -05:00
parent 0c15f50231
commit a96dd70634
3 changed files with 27 additions and 24 deletions
+13 -12
View File
@@ -41,7 +41,7 @@ from zipline.data.us_equity_pricing import BcolzDailyBarReader
from zipline.finance.trading import TradingEnvironment
from zipline.lib.adjustment import MULTIPLY
from zipline.pipeline.loaders.synthetic import (
ConstantLoader,
PrecomputedLoader,
NullAdjustmentReader,
SyntheticDailyBarWriter,
)
@@ -126,16 +126,16 @@ class ColumnArgs(tuple):
return hash(frozenset(self))
class RecordingConstantLoader(ConstantLoader):
class RecordingPrecomputedLoader(PrecomputedLoader):
def __init__(self, *args, **kwargs):
super(RecordingConstantLoader, self).__init__(*args, **kwargs)
super(RecordingPrecomputedLoader, self).__init__(*args, **kwargs)
self.load_calls = []
def load_adjusted_array(self, columns, dates, assets, mask):
self.load_calls.append(ColumnArgs(*columns))
return super(RecordingConstantLoader, self).load_adjusted_array(
return super(RecordingPrecomputedLoader, self).load_adjusted_array(
columns, dates, assets, mask,
)
@@ -159,7 +159,7 @@ class ConstantInputTestCase(TestCase):
}
self.asset_ids = [1, 2, 3]
self.dates = date_range('2014-01', '2014-03', freq='D', tz='UTC')
self.loader = ConstantLoader(
self.loader = PrecomputedLoader(
constants=self.constants,
dates=self.dates,
assets=self.asset_ids,
@@ -364,7 +364,7 @@ class ConstantInputTestCase(TestCase):
dates_to_test = self.dates[-30:]
constants = {open_: 1, close: 2, volume: 3}
loader = ConstantLoader(
loader = PrecomputedLoader(
constants=constants,
dates=self.dates,
assets=self.asset_ids,
@@ -430,14 +430,15 @@ class ConstantInputTestCase(TestCase):
Loader1DataSet1.col2: 2,
Loader1DataSet2.col1: 3,
Loader1DataSet2.col2: 4}
loader1 = RecordingConstantLoader(constants=constants1,
dates=self.dates,
assets=self.asset_ids)
loader1 = RecordingPrecomputedLoader(constants=constants1,
dates=self.dates,
assets=self.assets)
constants2 = {Loader2DataSet.col1: 5,
Loader2DataSet.col2: 6}
loader2 = RecordingConstantLoader(constants=constants2,
dates=self.dates,
assets=self.asset_ids)
loader2 = RecordingPrecomputedLoader(constants=constants2,
dates=self.dates,
assets=self.assets)
engine = SimplePipelineEngine(
lambda column:
-1
View File
@@ -19,7 +19,6 @@ from zipline.pipeline.data.testing import TestingDataSet
from zipline.pipeline.term import AssetExists, NotSpecified
from zipline.pipeline.expression import NUMEXPR_MATH_FUNCS
from zipline.utils.numpy_utils import (
bool_dtype,
datetime64ns_dtype,
float64_dtype,
)
+14 -11
View File
@@ -32,31 +32,34 @@ def nanos_to_seconds(nanos):
return nanos / (1000 * 1000 * 1000)
class ConstantLoader(PipelineLoader):
class PrecomputedLoader(PipelineLoader):
"""
Synthetic PipelineLoader that returns a constant value for each column.
Synthetic PipelineLoader that uses a pre-computed array for each column.
Parameters
----------
constants : dict
Map from column to value(s) to use for that column.
values : dict
Map from column to values to use for that column.
Values can be anything that can be passed as the first positional
argument to a DataFrame of the same shape as `mask`.
mask : pandas.DataFrame
Mask indicating when assets existed.
Indices of this frame are used to align input queries.
argument to a DataFrame whose indices are ``dates`` and ``sids``
dates : iterable[datetime-like]
Row labels for input data. Can be anything that pd.DataFrame will
coerce to a DatetimeIndex.
sids : iterable[int-like]
Column labels for input data. Can be anything that pd.DataFrame will
coerce to an Int64Index.
Notes
-----
Adjustments are unsupported with ConstantLoader.
Adjustments are unsupported by this loader.
"""
def __init__(self, constants, dates, assets):
def __init__(self, constants, dates, sids):
loaders = {}
for column, const in iteritems(constants):
frame = DataFrame(
const,
index=dates,
columns=assets,
columns=sids,
dtype=column.dtype,
)
loaders[column] = DataFrameLoader(