mirror of
https://github.com/wassname/catalyst.git
synced 2026-07-18 12:20:12 +08:00
MAINT: Rename ConstantLoader to PrecomputedLoader.
This commit is contained in:
@@ -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:
|
||||
|
||||
@@ -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,
|
||||
)
|
||||
|
||||
@@ -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(
|
||||
|
||||
Reference in New Issue
Block a user