Merge pull request #1416 from quantopian/exch_full_synthetic

ENH: Expose exchange_full on all Asset types
This commit is contained in:
John Ricklefs
2016-08-20 13:51:29 -04:00
committed by GitHub
2 changed files with 24 additions and 7 deletions
+19 -7
View File
@@ -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,16 @@ 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 if exchange_full is not None
else exchange)
self.start_date = start_date
self.end_date = end_date
self.first_traded = first_traded
@@ -164,7 +169,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 +185,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
@@ -228,7 +235,8 @@ cdef class Equity(Asset):
def __repr__(self):
attrs = ('symbol', 'asset_name', 'exchange',
'start_date', 'end_date', 'first_traded', 'auto_close_date')
'start_date', 'end_date', 'first_traded', 'auto_close_date',
'exchange_full')
tuples = ((attr, repr(getattr(self, attr, None)))
for attr in attrs)
strings = ('%s=%s' % (t[0], t[1]) for t in tuples)
@@ -291,6 +299,7 @@ cdef class Future(Asset):
'exchange',
'tick_size',
'multiplier',
'exchange_full',
})
def __init__(self,
@@ -306,7 +315,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,
@@ -317,6 +327,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
@@ -336,7 +347,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)
@@ -362,7 +373,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):
"""
+5
View File
@@ -51,6 +51,7 @@ def make_rotating_equity_info(num_assets,
periods=num_assets,
),
'exchange': 'TEST',
'exchange_full': 'TEST FULL',
},
index=range(num_assets),
)
@@ -87,6 +88,7 @@ def make_simple_equity_info(sids,
'start_date': pd.to_datetime([start_date] * num_assets),
'end_date': pd.to_datetime([end_date] * num_assets),
'exchange': 'TEST',
'exchange_full': 'TEST FULL',
},
index=sids,
columns=(
@@ -94,6 +96,7 @@ def make_simple_equity_info(sids,
'end_date',
'symbol',
'exchange',
'exchange_full',
),
)
@@ -137,6 +140,7 @@ def make_jagged_equity_info(num_assets,
periods=num_assets,
),
'exchange': 'TEST',
'exchange_full': 'TEST FULL',
},
index=range(num_assets),
)
@@ -218,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()