mirror of
https://github.com/wassname/catalyst.git
synced 2026-09-09 11:19:23 +08:00
ENH: Add single-column input/output capabilities to pipeline terms
This commit is contained in:
@@ -5,6 +5,7 @@ from collections import Counter
|
||||
from itertools import product
|
||||
from unittest import TestCase
|
||||
|
||||
from zipline.assets import Asset
|
||||
from zipline.errors import (
|
||||
DTypeNotSpecified,
|
||||
InvalidOutputName,
|
||||
@@ -25,9 +26,10 @@ from zipline.pipeline import (
|
||||
)
|
||||
from zipline.pipeline.data import Column, DataSet
|
||||
from zipline.pipeline.data.testing import TestingDataSet
|
||||
from zipline.pipeline.factors import RecarrayField
|
||||
from zipline.pipeline.term import AssetExists, NotSpecified
|
||||
from zipline.pipeline.expression import NUMEXPR_MATH_FUNCS
|
||||
from zipline.pipeline.factors import RecarrayField
|
||||
from zipline.pipeline.sentinels import NotSpecified
|
||||
from zipline.pipeline.term import AssetExists, Slice
|
||||
from zipline.testing import parameter_space
|
||||
from zipline.testing.predicates import assert_equal, assert_raises
|
||||
from zipline.utils.numpy_utils import (
|
||||
@@ -96,6 +98,18 @@ class MultipleOutputs(CustomFactor):
|
||||
return
|
||||
|
||||
|
||||
class GenericFilter(Filter):
|
||||
dtype = bool_dtype
|
||||
window_length = 0
|
||||
inputs = []
|
||||
|
||||
|
||||
class GenericClassifier(Classifier):
|
||||
dtype = categorical_dtype
|
||||
window_length = 0
|
||||
inputs = []
|
||||
|
||||
|
||||
def gen_equivalent_factors():
|
||||
"""
|
||||
Return an iterator of SomeFactor instances that should all be the same
|
||||
@@ -268,6 +282,21 @@ class ObjectIdentityTestCase(TestCase):
|
||||
self.assertIs(alpha, multiple_outputs.alpha)
|
||||
self.assertIs(beta, multiple_outputs.beta)
|
||||
|
||||
def test_instance_caching_of_slices(self):
|
||||
my_asset = Asset(1)
|
||||
|
||||
f = GenericCustomFactor()
|
||||
f_slice = f[my_asset]
|
||||
self.assertIs(f_slice, Slice(GenericCustomFactor(), my_asset))
|
||||
|
||||
f = GenericFilter()
|
||||
f_slice = f[my_asset]
|
||||
self.assertIs(f_slice, Slice(GenericFilter(), my_asset))
|
||||
|
||||
c = GenericClassifier()
|
||||
c_slice = c[my_asset]
|
||||
self.assertIs(c_slice, Slice(GenericClassifier(), my_asset))
|
||||
|
||||
def test_instance_non_caching(self):
|
||||
|
||||
f = SomeFactor()
|
||||
|
||||
Reference in New Issue
Block a user