Skip to content

Commit 295a92d

Browse files
benjefferymergify[bot]
authored andcommitted
Deprecate name_map for table_name_map
1 parent eae961c commit 295a92d

File tree

11 files changed

+40
-23
lines changed

11 files changed

+40
-23
lines changed

docs/python-api.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -644,7 +644,7 @@ Other properties
644644
TableCollection.file_uuid
645645
TableCollection.indexes
646646
TableCollection.nbytes
647-
TableCollection.name_map
647+
TableCollection.table_name_map
648648
TableCollection.metadata
649649
TableCollection.metadata_bytes
650650
TableCollection.metadata_schema

python/CHANGELOG.rst

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -2,6 +2,12 @@
22
[0.4.0] - 2022-0X-XX
33
----------------------
44

5+
**Changes**
6+
7+
- ``TableCollection.name_map`` has been deprecated in favour of ``table_name_map``.
8+
(:user:`benjeffery`, :issue:`1981`, :pr:`2086`)
9+
10+
511
**Fixes**
612

713
- ``TreeSequence.dump_text`` now prints decoded metadata if there is a schema.

python/lwt_interface/dict_encoding_testlib.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -71,7 +71,7 @@ def full_ts():
7171
for ind in ts.individuals():
7272
tables.individuals.add_row(flags=0, location=[ind.id, ind.id], parents=[-1, -1])
7373

74-
for name, table in tables.name_map.items():
74+
for name, table in tables.table_name_map.items():
7575
if name != "provenances":
7676
table.metadata_schema = tskit.MetadataSchema({"codec": "json"})
7777
metadatas = [f"n_{name}_{u}" for u in range(len(table))]

python/tests/test_file_format.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1158,7 +1158,7 @@ def load():
11581158

11591159

11601160
def assert_tables_empty(tables):
1161-
for table in tables.name_map.values():
1161+
for table in tables.table_name_map.values():
11621162
assert len(table) == 0
11631163

11641164

python/tests/test_highlevel.py

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -2189,7 +2189,7 @@ def test_html_repr(self):
21892189
assert len(html) > 4300
21902190
assert f"<tr><td>Trees</td><td>{ts.num_trees}</td></tr>" in html
21912191
assert f"<tr><td>Time Units</td><td>{ts.time_units}</td></tr>" in html
2192-
for table in ts.tables.name_map:
2192+
for table in ts.tables.table_name_map:
21932193
assert f"<td>{table.capitalize()}</td>" in html
21942194

21952195
def test_str(self):
@@ -2198,7 +2198,7 @@ def test_str(self):
21982198
assert len(s) > 999
21992199
assert re.search(rf"║Trees *│ *{ts.num_trees}║", s)
22002200
assert re.search(rf"║Time Units *│ *{ts.time_units}║", s)
2201-
for table in ts.tables.name_map:
2201+
for table in ts.tables.table_name_map:
22022202
assert re.search(rf"║{table.capitalize()} *│", s)
22032203

22042204
@pytest.mark.skip("FIXME nbytes")

python/tests/test_lowlevel.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -906,7 +906,7 @@ class TestTableMethodsErrors:
906906
"""
907907

908908
def yield_tables(self, ts):
909-
for table in ts.tables.name_map.values():
909+
for table in ts.tables.table_name_map.values():
910910
yield table.ll_table
911911

912912
@pytest.mark.parametrize(

python/tests/test_tables.py

Lines changed: 11 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -3372,7 +3372,7 @@ def test_asdict(self, ts_fixture):
33723372
def test_asdict_force_offset_64(self, ts_fixture, force_offset_64):
33733373
tables = ts_fixture.dump_tables()
33743374
d = tables.asdict(force_offset_64=force_offset_64)
3375-
for table in tables.name_map:
3375+
for table in tables.table_name_map:
33763376
for name, column in d[table].items():
33773377
if name.endswith("_offset"):
33783378
if force_offset_64:
@@ -3383,7 +3383,7 @@ def test_asdict_force_offset_64(self, ts_fixture, force_offset_64):
33833383
def test_asdict_force_offset_64_default(self, ts_fixture):
33843384
tables = ts_fixture.dump_tables()
33853385
d = tables.asdict()
3386-
for table in tables.name_map:
3386+
for table in tables.table_name_map:
33873387
for name, column in d[table].items():
33883388
if name.endswith("_offset"):
33893389
assert column.dtype == np.uint32
@@ -3423,7 +3423,7 @@ def test_roundtrip_dict(self, ts_fixture):
34233423
t2 = tskit.TableCollection.fromdict(t1.asdict())
34243424
t1.assert_equals(t2)
34253425

3426-
def test_name_map(self, ts_fixture):
3426+
def test_table_name_map(self, ts_fixture):
34273427
tables = ts_fixture.tables
34283428
td1 = {
34293429
"individuals": tables.individuals,
@@ -3435,13 +3435,18 @@ def test_name_map(self, ts_fixture):
34353435
"migrations": tables.migrations,
34363436
"provenances": tables.provenances,
34373437
}
3438-
td2 = tables.name_map
3438+
td2 = tables.table_name_map
34393439
assert isinstance(td2, dict)
34403440
assert set(td1.keys()) == set(td2.keys())
34413441
for name in td2.keys():
34423442
assert td1[name] == td2[name]
34433443
assert td1 == td2
34443444

3445+
# Deprecated in 0.4.1
3446+
with pytest.warns(FutureWarning):
3447+
td1 = tables.name_map
3448+
td1 == td2
3449+
34453450
def test_equals_empty(self):
34463451
assert tskit.TableCollection() == tskit.TableCollection()
34473452

@@ -3943,7 +3948,7 @@ def test_time_units(self, t1, t2):
39433948
):
39443949
t1.assert_equals(t2)
39453950

3946-
@pytest.mark.parametrize("table_name", tskit.TableCollection(1).name_map)
3951+
@pytest.mark.parametrize("table_name", tskit.TableCollection(1).table_name_map)
39473952
def test_tables(self, t1, t2, table_name):
39483953
table = getattr(t2, table_name)
39493954
table.truncate(0)
@@ -3954,7 +3959,7 @@ def test_tables(self, t1, t2, table_name):
39543959
):
39553960
t1.assert_equals(t2)
39563961

3957-
@pytest.mark.parametrize("table_name", tskit.TableCollection(1).name_map)
3962+
@pytest.mark.parametrize("table_name", tskit.TableCollection(1).table_name_map)
39583963
def test_ignore_metadata(self, t1, t2, table_name):
39593964
table = getattr(t2, table_name)
39603965
if hasattr(table, "metadata_schema"):

python/tests/tsutil.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1941,7 +1941,7 @@ def all_fields_ts():
19411941
tables.migrations.add_row(left=0, right=1, node=21, source=1, dest=3, time=1001)
19421942

19431943
# Add metadata
1944-
for name, table in tables.name_map.items():
1944+
for name, table in tables.table_name_map.items():
19451945
if name != "provenances":
19461946
table.metadata_schema = tskit.MetadataSchema.permissive_json()
19471947
metadatas = [f'{{"foo":"n_{name}_{u}"}}' for u in range(len(table))]

python/tskit/tables.py

Lines changed: 12 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -2958,11 +2958,8 @@ def asdict(self, force_offset_64=False):
29582958
"""
29592959
return self._ll_tables.asdict(force_offset_64)
29602960

2961-
# TODO rename this to "table_name_map" to resolve the issue with whether
2962-
# we should regard ReferenceSequence as being in it or not.
2963-
# https://github.com/tskit-dev/tskit/issues/1981
29642961
@property
2965-
def name_map(self) -> Dict:
2962+
def table_name_map(self) -> Dict:
29662963
"""
29672964
Returns a dictionary mapping table names to the corresponding
29682965
table instances. For example, the returned dictionary will contain the
@@ -2979,6 +2976,15 @@ def name_map(self) -> Dict:
29792976
"sites": self.sites,
29802977
}
29812978

2979+
@property
2980+
def name_map(self) -> Dict:
2981+
# Deprecated in 0.4.1
2982+
warnings.warn(
2983+
"name_map is deprecated; use table_name_map instead",
2984+
FutureWarning,
2985+
)
2986+
return self.table_name_map
2987+
29822988
@property
29832989
def nbytes(self) -> int:
29842990
"""
@@ -2993,7 +2999,7 @@ def nbytes(self) -> int:
29932999
len(self.time_units.encode()),
29943000
self.indexes.nbytes,
29953001
self.reference_sequence.nbytes,
2996-
sum(table.nbytes for table in self.name_map.values()),
3002+
sum(table.nbytes for table in self.table_name_map.values()),
29973003
)
29983004
)
29993005

@@ -3155,7 +3161,7 @@ def assert_equals(
31553161
f" differs: self={self.sequence_length} other={other.sequence_length}"
31563162
)
31573163

3158-
for table_name, table in self.name_map.items():
3164+
for table_name, table in self.table_name_map.items():
31593165
if table_name != "provenances":
31603166
table.assert_equals(
31613167
getattr(other, table_name), ignore_metadata=ignore_metadata

python/tskit/trees.py

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -3767,9 +3767,9 @@ def tables_dict(self):
37673767
"""
37683768
Returns a dictionary mapping names to tables in the
37693769
underlying :class:`.TableCollection`. Equivalent to calling
3770-
``ts.tables.name_map``.
3770+
``ts.tables.table_name_map``.
37713771
"""
3772-
return self.tables.name_map
3772+
return self.tables.table_name_map
37733773

37743774
@property
37753775
def tables(self):
@@ -3884,7 +3884,7 @@ def __str__(self):
38843884
]
38853885
header = ["Table", "Rows", "Size", "Has Metadata"]
38863886
table_rows = []
3887-
for name, table in self.tables.name_map.items():
3887+
for name, table in self.tables.table_name_map.items():
38883888
table_rows.append(
38893889
[
38903890
str(s)

0 commit comments

Comments
 (0)