mirror of
https://github.com/wassname/catalyst.git
synced 2026-06-27 22:06:36 +08:00
BUG: Fixing bitness issues on 32-bit systems
by being explicit with sizes
This commit is contained in:
@@ -1131,15 +1131,15 @@ class TestBeforeTradingStart(TestCase):
|
||||
# Mergers and Dividends are not tested, but we need to have these
|
||||
# anyway
|
||||
mergers = pd.DataFrame({}, columns=['effective_date', 'ratio', 'sid'])
|
||||
mergers.effective_date = mergers.effective_date.astype(int)
|
||||
mergers.ratio = mergers.ratio.astype(float)
|
||||
mergers.sid = mergers.sid.astype(int)
|
||||
mergers.effective_date = mergers.effective_date.astype(np.int64)
|
||||
mergers.ratio = mergers.ratio.astype(np.float64)
|
||||
mergers.sid = mergers.sid.astype(np.int64)
|
||||
|
||||
dividends = pd.DataFrame({}, columns=['ex_date', 'record_date',
|
||||
'declared_date', 'pay_date',
|
||||
'amount', 'sid'])
|
||||
dividends.amount = dividends.amount.astype(float)
|
||||
dividends.sid = dividends.sid.astype(int)
|
||||
dividends.amount = dividends.amount.astype(np.float64)
|
||||
dividends.sid = dividends.sid.astype(np.int64)
|
||||
|
||||
adj_writer.write(splits, mergers, dividends)
|
||||
|
||||
|
||||
@@ -203,15 +203,15 @@ class TestAPIShim(TestCase):
|
||||
# Mergers and Dividends are not tested, but we need to have these
|
||||
# anyway
|
||||
mergers = pd.DataFrame({}, columns=['effective_date', 'ratio', 'sid'])
|
||||
mergers.effective_date = mergers.effective_date.astype(int)
|
||||
mergers.ratio = mergers.ratio.astype(float)
|
||||
mergers.sid = mergers.sid.astype(int)
|
||||
mergers.effective_date = mergers.effective_date.astype(np.int64)
|
||||
mergers.ratio = mergers.ratio.astype(np.float64)
|
||||
mergers.sid = mergers.sid.astype(np.int64)
|
||||
|
||||
dividends = pd.DataFrame({}, columns=['ex_date', 'record_date',
|
||||
'declared_date', 'pay_date',
|
||||
'amount', 'sid'])
|
||||
dividends.amount = dividends.amount.astype(float)
|
||||
dividends.sid = dividends.sid.astype(int)
|
||||
dividends.amount = dividends.amount.astype(np.float64)
|
||||
dividends.sid = dividends.sid.astype(np.int64)
|
||||
|
||||
adj_writer.write(splits, mergers, dividends)
|
||||
|
||||
|
||||
@@ -1,6 +1,7 @@
|
||||
from numpy import (
|
||||
float64,
|
||||
uint32
|
||||
uint32,
|
||||
int64,
|
||||
)
|
||||
from bcolz import ctable
|
||||
|
||||
@@ -37,8 +38,9 @@ class DailyBarWriterFromDataFrames(BcolzDailyBarWriter):
|
||||
return array.astype(uint32)
|
||||
elif colname == 'day':
|
||||
nanos_per_second = (1000 * 1000 * 1000)
|
||||
self.check_uint_safe(arrmax.view(int) / nanos_per_second, colname)
|
||||
return (array.view(int) / nanos_per_second).astype(uint32)
|
||||
self.check_uint_safe(arrmax.view(int64) / nanos_per_second,
|
||||
colname)
|
||||
return (array.view(int64) / nanos_per_second).astype(uint32)
|
||||
|
||||
@staticmethod
|
||||
def check_uint_safe(value, colname):
|
||||
|
||||
@@ -163,10 +163,10 @@ class BcolzMinuteBarMetadata(object):
|
||||
'first_trading_day': str(self.first_trading_day.date()),
|
||||
'market_opens': self.market_opens.values.
|
||||
astype('datetime64[m]').
|
||||
astype(int).tolist(),
|
||||
astype(np.int64).tolist(),
|
||||
'market_closes': self.market_closes.values.
|
||||
astype('datetime64[m]').
|
||||
astype(int).tolist(),
|
||||
astype(np.int64).tolist(),
|
||||
'ohlc_ratio': self.ohlc_ratio,
|
||||
}
|
||||
with open(self.metadata_path(rootdir), 'w+') as fp:
|
||||
@@ -603,10 +603,10 @@ class BcolzMinuteBarReader(object):
|
||||
|
||||
self._market_opens = metadata.market_opens
|
||||
self._market_open_values = metadata.market_opens.values.\
|
||||
astype('datetime64[m]').astype(int)
|
||||
astype('datetime64[m]').astype(np.int64)
|
||||
self._market_closes = metadata.market_closes
|
||||
self._market_close_values = metadata.market_closes.values.\
|
||||
astype('datetime64[m]').astype(int)
|
||||
astype('datetime64[m]').astype(np.int64)
|
||||
|
||||
self._ohlc_inverse = 1.0 / metadata.ohlc_ratio
|
||||
|
||||
@@ -643,7 +643,7 @@ class BcolzMinuteBarReader(object):
|
||||
"""
|
||||
market_opens = self._market_opens.values.astype('datetime64[m]')
|
||||
market_closes = self._market_closes.values.astype('datetime64[m]')
|
||||
minutes_per_day = (market_closes - market_opens).astype(int)
|
||||
minutes_per_day = (market_closes - market_opens).astype(np.int64)
|
||||
early_indices = np.where(
|
||||
minutes_per_day != US_EQUITIES_MINUTES_PER_DAY - 1)[0]
|
||||
regular_closes = market_opens[early_indices] + timedelta64(
|
||||
|
||||
+13
-10
@@ -45,7 +45,8 @@ from zipline.utils.tradingcalendar import trading_days
|
||||
import numpy as np
|
||||
from numpy import (
|
||||
float64,
|
||||
uint32
|
||||
uint32,
|
||||
int64,
|
||||
)
|
||||
|
||||
|
||||
@@ -456,8 +457,9 @@ def make_trade_data_for_asset_info(dates,
|
||||
sids = asset_info.keys()
|
||||
date_field = 'day' if frequency == 'daily' else 'dt'
|
||||
|
||||
price_sid_deltas = np.arange(len(sids), dtype=float) * price_step_by_sid
|
||||
price_date_deltas = np.arange(len(dates), dtype=float) * price_step_by_date
|
||||
price_sid_deltas = np.arange(len(sids), dtype=float64) * price_step_by_sid
|
||||
price_date_deltas = (np.arange(len(dates), dtype=float64) *
|
||||
price_step_by_date)
|
||||
prices = (price_sid_deltas + price_date_deltas[:, None]) + price_start
|
||||
|
||||
volume_sid_deltas = np.arange(len(sids)) * volume_step_by_sid
|
||||
@@ -723,8 +725,9 @@ class DailyBarWriterFromDataFrames(BcolzDailyBarWriter):
|
||||
return array.astype(uint32)
|
||||
elif colname == 'day':
|
||||
nanos_per_second = (1000 * 1000 * 1000)
|
||||
self.check_uint_safe(arrmax.view(int) / nanos_per_second, colname)
|
||||
return (array.view(int) / nanos_per_second).astype(uint32)
|
||||
self.check_uint_safe(arrmax.view(int64) / nanos_per_second,
|
||||
colname)
|
||||
return (array.view(int64) / nanos_per_second).astype(uint32)
|
||||
|
||||
@staticmethod
|
||||
def check_uint_safe(value, colname):
|
||||
@@ -1198,8 +1201,8 @@ def create_mock_adjustments(tempdir, days, splits=None, dividends=None,
|
||||
'pay_date': np.array([], dtype='datetime64[ns]'),
|
||||
'record_date': np.array([], dtype='datetime64[ns]'),
|
||||
'declared_date': np.array([], dtype='datetime64[ns]'),
|
||||
'amount': np.array([], dtype=float),
|
||||
'sid': np.array([], dtype=int),
|
||||
'amount': np.array([], dtype=float64),
|
||||
'sid': np.array([], dtype=int64),
|
||||
}
|
||||
dividends = pd.DataFrame(
|
||||
data,
|
||||
@@ -1360,9 +1363,9 @@ def create_empty_splits_mergers_frame():
|
||||
return pd.DataFrame(
|
||||
{
|
||||
# Hackery to make the dtypes correct on an empty frame.
|
||||
'effective_date': np.array([], dtype=int),
|
||||
'ratio': np.array([], dtype=float),
|
||||
'sid': np.array([], dtype=int),
|
||||
'effective_date': np.array([], dtype=int64),
|
||||
'ratio': np.array([], dtype=float64),
|
||||
'sid': np.array([], dtype=int64),
|
||||
},
|
||||
index=pd.DatetimeIndex([]),
|
||||
columns=['effective_date', 'ratio', 'sid'],
|
||||
|
||||
Reference in New Issue
Block a user