Skip to content

Commit 8170356

Browse files
author
Samuel Rohr
committed
Updating code to use pandas<=1.5.3 and numpy<=1.24.2
- Changed np.object to object - fixed timestamp.astype('datetime[ms]') to work with pandas <=1.5.3 and numpy <=1.24.2 - update setup.py to be according with setuptools new rules (uses extra_require instead of tests_require)
1 parent 392a7f5 commit 8170356

File tree

6 files changed

+41
-34
lines changed

6 files changed

+41
-34
lines changed

arctic/serialization/numpy_records.py

Lines changed: 5 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -64,8 +64,11 @@ def _multi_index_to_records(index, empty_index):
6464
index_tz = []
6565
for i in index.levels:
6666
if isinstance(i, DatetimeIndex):
67-
tmp = get_timezone(i.tz)
68-
index_tz.append(str(tmp) if tmp is not None else None)
67+
if i.tz is None:
68+
index_tz.append(None)
69+
else:
70+
tmp = get_timezone(i.tz)
71+
index_tz.append(str(tmp) if tmp is not None else None)
6972
else:
7073
index_tz.append(None)
7174

arctic/store/_version_store_utils.py

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -20,9 +20,9 @@ def _split_arrs(array_2d, slices):
2020
but avoids fancy indexing
2121
"""
2222
if len(array_2d) == 0:
23-
return np.empty(0, dtype=np.object)
23+
return np.empty(0, dtype=object)
2424

25-
rtn = np.empty(len(slices) + 1, dtype=np.object)
25+
rtn = np.empty(len(slices) + 1, dtype=object)
2626
start = 0
2727
for i, s in enumerate(slices):
2828
rtn[i] = array_2d[start:s]

arctic/tickstore/tickstore.py

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -721,9 +721,10 @@ def _pandas_to_bucket(df, symbol, initial_image):
721721
rtn[COLUMNS][col] = col_data
722722
rtn[INDEX] = Binary(
723723
lz4_compressHC(np.concatenate(
724-
([recs[index_name][0].astype('datetime64[ms]').view('uint64')],
724+
([np.array(recs[index_name][0]).astype('datetime64[ms]').view('uint64')],
725725
np.diff(
726726
recs[index_name].astype('datetime64[ms]').view('uint64')))).tostring()))
727+
727728
return rtn, final_image
728729

729730
@staticmethod

setup.py

Lines changed: 28 additions & 25 deletions
Original file line numberDiff line numberDiff line change
@@ -71,42 +71,45 @@ def run_tests(self):
7171
cmdclass={'test': PyTest},
7272
setup_requires=["numpy<1.19.0",
7373
"setuptools-git",
74-
],
74+
],
7575
install_requires=["decorator",
7676
"enum-compat",
7777
"mock",
7878
"mockextras",
79-
"pandas<1.1.0",
80-
"numpy<1.19.0",
79+
"pandas<=1.5.3",
80+
"numpy<=1.24.2",
8181
"pymongo>=3.6.0, <= 3.11.0",
8282
"pytz",
8383
"tzlocal",
8484
"lz4",
85-
],
85+
],
8686
# Note: pytest >= 4.1.0 is not compatible with pytest-cov < 2.6.1.
8787
# deprecated
88-
tests_require=["mock<=2.0.0",
89-
"mockextras",
90-
"pytest",
91-
"pytest-cov",
92-
"pytest-server-fixtures",
93-
"pytest-timeout",
94-
"pytest-xdist<=1.26.1",
95-
"tomli<2; python_version=='3.6'",
96-
"lz4",
97-
"tzlocal<=1.4; python_version<='3.6'"
98-
],
88+
extras_require={
89+
"tests": [
90+
"mock<=2.0.0",
91+
"mockextras",
92+
"pytest",
93+
"pytest-cov",
94+
"pytest-server-fixtures",
95+
"pytest-timeout",
96+
"pytest-xdist<=1.26.1",
97+
"tomli<2; python_version=='3.6'",
98+
"lz4",
99+
"tzlocal<=1.4; python_version<='3.6'"
100+
],
101+
},
99102
entry_points={'console_scripts': [
100-
'arctic_init_library = arctic.scripts.arctic_init_library:main',
101-
'arctic_list_libraries = arctic.scripts.arctic_list_libraries:main',
102-
'arctic_delete_library = arctic.scripts.arctic_delete_library:main',
103-
'arctic_enable_sharding = arctic.scripts.arctic_enable_sharding:main',
104-
'arctic_copy_data = arctic.scripts.arctic_copy_data:main',
105-
'arctic_create_user = arctic.scripts.arctic_create_user:main',
106-
'arctic_prune_versions = arctic.scripts.arctic_prune_versions:main',
107-
'arctic_fsck = arctic.scripts.arctic_fsck:main',
108-
]
109-
},
103+
'arctic_init_library = arctic.scripts.arctic_init_library:main',
104+
'arctic_list_libraries = arctic.scripts.arctic_list_libraries:main',
105+
'arctic_delete_library = arctic.scripts.arctic_delete_library:main',
106+
'arctic_enable_sharding = arctic.scripts.arctic_enable_sharding:main',
107+
'arctic_copy_data = arctic.scripts.arctic_copy_data:main',
108+
'arctic_create_user = arctic.scripts.arctic_create_user:main',
109+
'arctic_prune_versions = arctic.scripts.arctic_prune_versions:main',
110+
'arctic_fsck = arctic.scripts.arctic_fsck:main',
111+
]
112+
},
110113
classifiers=[
111114
"Development Status :: 4 - Beta",
112115
"License :: OSI Approved :: GNU Library or Lesser General Public License (LGPL)",

tests/unit/store/test_version_store_utils.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -9,7 +9,7 @@
99

1010
def test_split_arrs_empty():
1111
split = _split_arrs(np.empty(0), [])
12-
assert np.all(split == np.empty(0, dtype=np.object))
12+
assert np.all(split == np.empty(0, dtype=object))
1313

1414

1515
def test_split_arrs():

tests/unit/tickstore/test_tickstore.py

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -40,7 +40,7 @@ def test_mongo_date_range_query():
4040
call({'sy': 's1', 's': dt(2014, 1, 1, 0, 0, tzinfo=mktz())}, {'e': 1}),
4141
call({'sy': 's2', 's': dt(2014, 1, 1, 12, 0, tzinfo=mktz())}, {'e': 1})]
4242

43-
assert query == {'s': {'$gte': dt(2014, 1, 1, 12, 0, tzinfo=mktz()), '$lte': dt(2014, 1, 3, 0, 0, tzinfo=mktz())}}
43+
assert query == {'s': {'$gte': dt(2014, 1, 1, 12, 0, tzinfo=mktz("UTC")), '$lte': dt(2014, 1, 3, 0, 0, tzinfo=mktz())}}
4444

4545

4646
def test_mongo_date_range_query_asserts():
@@ -92,7 +92,7 @@ def test_tickstore_to_bucket_with_image():
9292
assert get_coldata(bucket[COLUMNS]['A']) == ([124, 125], [1, 1, 0, 0, 0, 0, 0, 0])
9393
assert get_coldata(bucket[COLUMNS]['B']) == ([27.2], [0, 1, 0, 0, 0, 0, 0, 0])
9494
assert get_coldata(bucket[COLUMNS]['D']) == ([0], [1, 0, 0, 0, 0, 0, 0, 0])
95-
index = [dt.fromtimestamp(int(i/1000)).replace(tzinfo=mktz(tz)) for i in
95+
index = [dt.fromtimestamp(int(i/1000)).astimezone(mktz(tz)).replace(tzinfo=mktz(tz)) for i in
9696
list(np.cumsum(np.frombuffer(decompress(bucket[INDEX]), dtype='uint64')))]
9797
assert index == [i['index'] for i in data]
9898
assert bucket[COLUMNS]['A'][DTYPE] == 'int64'
@@ -157,7 +157,7 @@ def test_tickstore_pandas_to_bucket_image():
157157
assert np.isnan(values[1])
158158
assert values[0] == 1 and values[2] == 1
159159
assert rowmask == [1, 1, 1, 0, 0, 0, 0, 0]
160-
index = [dt.fromtimestamp(int(i/1000)).replace(tzinfo=mktz(tz)) for i in
160+
index = [dt.fromtimestamp(int(i/1000)).astimezone(mktz(tz)).replace(tzinfo=mktz(tz)) for i in
161161
list(np.cumsum(np.frombuffer(decompress(bucket[INDEX]), dtype='uint64')))]
162162
assert index == tick_index
163163
assert bucket[COLUMNS]['A'][DTYPE] == 'int64'

0 commit comments

Comments
 (0)