diff --git a/zipline/assets/_assets.pyx b/zipline/assets/_assets.pyx index 4befac72..acd6c03a 100644 --- a/zipline/assets/_assets.pyx +++ b/zipline/assets/_assets.pyx @@ -40,7 +40,7 @@ from zipline.utils.calendars import get_calendar # IMPORTANT NOTE: You must change this template if you change # Asset.__reduce__, or else we'll attempt to unpickle an old version of this # class -CACHE_FILE_TEMPLATE = '/tmp/.%s-%s.v6.cache' +CACHE_FILE_TEMPLATE = '/tmp/.%s-%s.v7.cache' cdef class Asset: @@ -58,6 +58,7 @@ cdef class Asset: cdef readonly object auto_close_date cdef readonly object exchange + cdef readonly object exchange_full _kwargnames = frozenset({ 'sid', @@ -68,6 +69,7 @@ cdef class Asset: 'first_traded', 'auto_close_date', 'exchange', + 'exchange_full', }) def __init__(self, @@ -78,13 +80,15 @@ cdef class Asset: object start_date=None, object end_date=None, object first_traded=None, - object auto_close_date=None): + object auto_close_date=None, + object exchange_full=None): self.sid = sid self.sid_hash = hash(sid) self.symbol = symbol self.asset_name = asset_name self.exchange = exchange + self.exchange_full = exchange_full self.start_date = start_date self.end_date = end_date self.first_traded = first_traded @@ -164,7 +168,8 @@ cdef class Asset: self.start_date, self.end_date, self.first_traded, - self.auto_close_date)) + self.auto_close_date, + self.exchange_full)) cpdef to_dict(self): """ @@ -179,6 +184,7 @@ cdef class Asset: 'first_traded': self.first_traded, 'auto_close_date': self.auto_close_date, 'exchange': self.exchange, + 'exchange_full': self.exchange_full, } @classmethod @@ -226,59 +232,6 @@ cdef class Asset: cdef class Equity(Asset): - cdef readonly object exchange_full - - _kwargnames = frozenset({ - 'sid', - 'symbol', - 'asset_name', - 'start_date', - 'end_date', - 'first_traded', - 'auto_close_date', - 'exchange', - 'exchange_full', - }) - - def __init__(self, - int sid, # sid is required - object exchange, # exchange is required - object symbol="", - object asset_name="", - object start_date=None, - object end_date=None, - object first_traded=None, - object auto_close_date=None, - object exchange_full=None): - super().__init__( - sid, - exchange, - symbol=symbol, - asset_name=asset_name, - start_date=start_date, - end_date=end_date, - first_traded=first_traded, - auto_close_date=auto_close_date, - ) - - self.exchange_full = exchange_full - - cpdef to_dict(self): - """ - Convert to a python dict. - """ - return { - 'sid': self.sid, - 'symbol': self.symbol, - 'asset_name': self.asset_name, - 'start_date': self.start_date, - 'end_date': self.end_date, - 'first_traded': self.first_traded, - 'auto_close_date': self.auto_close_date, - 'exchange': self.exchange, - 'exchange_full': self.exchange_full, - } - def __repr__(self): attrs = ('symbol', 'asset_name', 'exchange', 'start_date', 'end_date', 'first_traded', 'auto_close_date', @@ -345,6 +298,7 @@ cdef class Future(Asset): 'exchange', 'tick_size', 'multiplier', + 'exchange_full', }) def __init__(self, @@ -360,7 +314,8 @@ cdef class Future(Asset): object auto_close_date=None, object first_traded=None, object tick_size="", - float multiplier=1.0): + float multiplier=1.0, + object exchange_full=None): super().__init__( sid, @@ -371,6 +326,7 @@ cdef class Future(Asset): end_date=end_date, first_traded=first_traded, auto_close_date=auto_close_date, + exchange_full=exchange_full, ) self.root_symbol = root_symbol self.notice_date = notice_date @@ -390,7 +346,7 @@ cdef class Future(Asset): attrs = ('symbol', 'root_symbol', 'asset_name', 'exchange', 'start_date', 'end_date', 'first_traded', 'notice_date', 'expiration_date', 'auto_close_date', 'tick_size', - 'multiplier') + 'multiplier', 'exchange_full') tuples = ((attr, repr(getattr(self, attr, None))) for attr in attrs) strings = ('%s=%s' % (t[0], t[1]) for t in tuples) @@ -416,7 +372,8 @@ cdef class Future(Asset): self.auto_close_date, self.first_traded, self.tick_size, - self.multiplier,)) + self.multiplier, + self.exchange_full)) cpdef to_dict(self): """ diff --git a/zipline/assets/synthetic.py b/zipline/assets/synthetic.py index 26079829..3e594b2e 100644 --- a/zipline/assets/synthetic.py +++ b/zipline/assets/synthetic.py @@ -222,6 +222,7 @@ def make_future_info(first_sid, 'expiration_date': notice_date_func(month_begin), 'multiplier': 500, 'exchange': "TEST", + 'exchange_full': 'TEST FULL', }) return pd.DataFrame.from_records(contracts, index='sid').convert_objects()