Skip to content

Commit 73c313c

Browse files
Merge pull request pandas-dev#109 from manahl/stable_sort
Use mergesort for Index sorting.
2 parents 6f88b1f + ef5846a commit 73c313c

File tree

3 files changed

+3
-4
lines changed

3 files changed

+3
-4
lines changed

arctic/store/bitemporal_store.py

+1-1
Original file line numberDiff line numberDiff line change
@@ -90,7 +90,7 @@ def update(self, symbol, data, metadata=None, upsert=True, as_of=None, **kwargs)
9090
existing_item = self._store.read(symbol, **kwargs)
9191
if metadata is None:
9292
metadata = existing_item.metadata
93-
df = existing_item.data.append(data).sort_index()
93+
df = existing_item.data.append(data).sort_index(kind='mergesort')
9494
self._store.write(symbol, df, metadata=metadata, prune_previous_version=True)
9595

9696
def write(self, *args, **kwargs):

arctic/tickstore/tickstore.py

+2-2
Original file line numberDiff line numberDiff line change
@@ -286,7 +286,7 @@ def read(self, symbol, date_range=None, columns=None, include_images=False, _tar
286286
arrays = [[] for k in columns]
287287

288288
if multiple_symbols:
289-
sort = np.argsort(index)
289+
sort = np.argsort(index, kind='mergesort')
290290
index = index[sort]
291291
arrays = [a[sort] for a in arrays]
292292

@@ -302,7 +302,7 @@ def read(self, symbol, date_range=None, columns=None, include_images=False, _tar
302302
logger.info("%d rows in %s secs: %s ticks/sec" % (ticks, t, int(ticks / t)))
303303
if not rtn.index.is_monotonic:
304304
logger.error("TimeSeries data is out of order, sorting!")
305-
rtn = rtn.sort_index()
305+
rtn = rtn.sort_index(kind='mergesort')
306306
if date_range:
307307
# FIXME: support DateRange.interval...
308308
rtn = rtn.ix[date_range.start:date_range.end]

tests/integration/store/test_bitemporal_store.py

-1
Original file line numberDiff line numberDiff line change
@@ -234,7 +234,6 @@ def test_multi_index_ts_read_raw(bitemporal_library):
234234
2012-10-09 17:06:11.040 | SPAM Index | 2015-01-01 | 2.5
235235
2012-11-08 17:06:11.040 | SPAM Index | 2015-01-01 | 3.0""", num_index=3)
236236
bitemporal_library.update('spam', ts, as_of=dt(2015, 1, 1))
237-
ret = bitemporal_library.read('spam', raw=True).data
238237
assert_frame_equal(expected_ts.tz_localize(tz=LOCAL_TZ, level=2), bitemporal_library.read('spam', raw=True).data)
239238

240239

0 commit comments

Comments
 (0)