MAINT: Use Python 3 compatible metaclass.

Use six's with_metaclass to have objects that use metaclasses, in
both Python 2 and 3.

Otherwise, in Python 3 the objects were being treated as if they
did not have a metaclass, when the Python 2 syntax is used, leading
to errors because of missing attributes, etc.
This commit is contained in:
Eddie Hebert
2014-01-07 11:58:01 -05:00
parent f093b2fb59
commit 8481e2df49
7 changed files with 21 additions and 17 deletions
+3 -2
View File
@@ -16,19 +16,20 @@
from collections import defaultdict
from math import sqrt
from six import with_metaclass
from zipline.errors import WrongDataForTransform
from zipline.transforms.utils import EventWindow, TransformMeta
import zipline.utils.math_utils as zp_math
class MovingStandardDev(object):
class MovingStandardDev(with_metaclass(TransformMeta)):
"""
Class that maintains a dictionary from sids to
MovingStandardDevWindows. For each sid, we maintain a the
standard deviation of all events falling within the specified
window.
"""
__metaclass__ = TransformMeta
def __init__(self, market_aware=True, window_length=None, delta=None):