From 49cd8e138bb11ebecac825d2d1f24a4014e3c5a8 Mon Sep 17 00:00:00 2001 From: Scott Sanderson Date: Thu, 22 Sep 2016 11:06:35 -0400 Subject: [PATCH] BUG: F.window_safe implies f.demean().window_safe. --- tests/pipeline/test_factor.py | 11 +++++++++++ zipline/pipeline/factors/factor.py | 1 + 2 files changed, 12 insertions(+) diff --git a/tests/pipeline/test_factor.py b/tests/pipeline/test_factor.py index 91acbe35..f020ae8b 100644 --- a/tests/pipeline/test_factor.py +++ b/tests/pipeline/test_factor.py @@ -1047,3 +1047,14 @@ class ShortReprTestCase(TestCase): def test_zscore(self): r = F().zscore().short_repr() self.assertEqual(r, "GroupedRowTransform('zscore')") + + +class TestWindowSafety(TestCase): + + def test_zscore_is_window_safe(self): + self.assertTrue(F().zscore().window_safe) + + def test_demean_is_window_safe_if_input_is_window_safe(self): + self.assertFalse(F().demean().window_safe) + self.assertFalse(F(window_safe=False).demean().window_safe) + self.assertTrue(F(window_safe=True).demean().window_safe) diff --git a/zipline/pipeline/factors/factor.py b/zipline/pipeline/factors/factor.py index 436ae981..3566abdc 100644 --- a/zipline/pipeline/factors/factor.py +++ b/zipline/pipeline/factors/factor.py @@ -509,6 +509,7 @@ class Factor(RestrictedDTypeMixin, ComputableTerm): groupby=groupby, dtype=self.dtype, missing_value=self.missing_value, + window_safe=self.window_safe, mask=mask, )