mirror of
https://github.com/wassname/catalyst.git
synced 2026-07-11 22:49:22 +08:00
BUG: Fail fast on invalid pipeline columns
This commit is contained in:
@@ -63,6 +63,9 @@ class PipelineTestCase(TestCase):
|
||||
with self.assertRaises(TypeError):
|
||||
Pipeline({}, SomeFactor())
|
||||
|
||||
with self.assertRaises(TypeError):
|
||||
Pipeline({'open': USEquityPricing.open})
|
||||
|
||||
Pipeline({}, SomeFactor() > 5)
|
||||
|
||||
def test_add(self):
|
||||
@@ -78,6 +81,9 @@ class PipelineTestCase(TestCase):
|
||||
with self.assertRaises(TypeError):
|
||||
p.add(f, 1)
|
||||
|
||||
with self.assertRaises(TypeError):
|
||||
p.add(USEquityPricing.open, 'open')
|
||||
|
||||
def test_overwrite(self):
|
||||
p = Pipeline()
|
||||
f = SomeFactor()
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
from zipline.utils.input_validation import expect_types, optional
|
||||
|
||||
from .term import Term, AssetExists
|
||||
from .term import AssetExists, ComputableTerm
|
||||
from .filters import Filter
|
||||
from .graph import TermGraph
|
||||
|
||||
@@ -37,6 +37,12 @@ class Pipeline(object):
|
||||
|
||||
if columns is None:
|
||||
columns = {}
|
||||
for term in columns.values():
|
||||
if not isinstance(term, ComputableTerm):
|
||||
raise TypeError(
|
||||
'"{term}" is not a valid pipeline column. Did you mean '
|
||||
'to add ".latest"?'.format(term=term)
|
||||
)
|
||||
self._columns = columns
|
||||
self._screen = screen
|
||||
|
||||
@@ -54,7 +60,7 @@ class Pipeline(object):
|
||||
"""
|
||||
return self._screen
|
||||
|
||||
@expect_types(term=Term, name=str)
|
||||
@expect_types(term=ComputableTerm, name=str)
|
||||
def add(self, term, name, overwrite=False):
|
||||
"""
|
||||
Add a column.
|
||||
|
||||
Reference in New Issue
Block a user