Skip to content

Commit d7e1f1b

Browse files
committed
list, not Sequence
1 parent 728200d commit d7e1f1b

File tree

2 files changed

+27
-9
lines changed

2 files changed

+27
-9
lines changed

python/tests/test_tables.py

Lines changed: 26 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -24,7 +24,6 @@
2424
Test cases for the low-level tables used to transfer information
2525
between simulations and the tree sequence.
2626
"""
27-
import collections.abc
2827
import dataclasses
2928
import io
3029
import json
@@ -1127,7 +1126,7 @@ def verify_metadata_vector(self, table, key, dtype, default_value=9999):
11271126
if dtype is not None:
11281127
assert md_vec.dtype == np.dtype(dtype)
11291128
assert len(md_vec) == table.num_rows
1130-
if not isinstance(key, collections.abc.Sequence):
1129+
if not isinstance(key, list):
11311130
key = [key]
11321131
for x, row in zip(md_vec, table):
11331132
md = row.metadata
@@ -1170,10 +1169,10 @@ def test_metadata_vector_nodefault(self):
11701169
ms = tskit.MetadataSchema({"codec": "json"})
11711170
table.metadata_schema = ms
11721171
metadata_list = [
1173-
{"a": 4, "u": [1, 2]},
1174-
{"a": 10, "u": [3, 4]},
1175-
{"a": -3, "b": {"c": 1}, "u": [5, 6]},
1176-
{"a": 1},
1172+
{"abc": 4, "u": [1, 2]},
1173+
{"abc": 10, "u": [3, 4]},
1174+
{"abc": -3, "b": {"c": 1}, "u": [5, 6]},
1175+
{"abc": 1},
11771176
]
11781177
for md in metadata_list:
11791178
table.add_row(
@@ -1182,10 +1181,16 @@ def test_metadata_vector_nodefault(self):
11821181
"metadata": md,
11831182
}
11841183
)
1184+
# first the totally obvious test
1185+
md_vec = table.metadata_vector("abc")
1186+
assert np.all(np.equal(md_vec, [d["abc"] for d in metadata_list]))
1187+
# now automated ones
11851188
for dtype in [None, "int", "float", "object"]:
1186-
self.verify_metadata_vector(table, key="a", dtype=dtype, default_value=9999)
11871189
self.verify_metadata_vector(
1188-
table, key=["a"], dtype=dtype, default_value=9999
1190+
table, key="abc", dtype=dtype, default_value=9999
1191+
)
1192+
self.verify_metadata_vector(
1193+
table, key=["abc"], dtype=dtype, default_value=9999
11891194
)
11901195

11911196
def test_metadata_vector(self):
@@ -1208,6 +1213,19 @@ def test_metadata_vector(self):
12081213
"metadata": md,
12091214
}
12101215
)
1216+
# first the totally obvious test
1217+
md_vec = table.metadata_vector("abc", default_value=0)
1218+
assert np.all(
1219+
np.equal(
1220+
md_vec,
1221+
[
1222+
d["abc"] if (d is not None and "abc" in d) else 0
1223+
for d in metadata_list
1224+
],
1225+
)
1226+
)
1227+
1228+
# now some automated ones
12111229
for dtype in [None, "int", "float", "object"]:
12121230
self.verify_metadata_vector(table, key="abc", dtype=dtype, default_value=-1)
12131231
self.verify_metadata_vector(

python/tskit/tables.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -617,7 +617,7 @@ def getter(d, k):
617617
d.get(k, default_value) if isinstance(d, Mapping) else default_value
618618
)
619619

620-
if isinstance(key, collections.abc.Sequence):
620+
if isinstance(key, list):
621621
out = np.array(
622622
[
623623
reduce(

0 commit comments

Comments
 (0)