Skip to content

Commit d198cf3

Browse files
timtreisclaude
andcommitted
simplify: eliminate duplicate set_index, vectorize astype, use list.append
- Pass pre-built cs_index to _get_elements_to_be_rendered instead of rebuilding set_index("cs") inside the function - Vectorize astype("bool") to a single assignment over content_flags - Replace += [elem] with .append(elem) in render cmd loop Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
1 parent c0f1e76 commit d198cf3

2 files changed

Lines changed: 7 additions & 9 deletions

File tree

‎src/spatialdata_plot/pl/basic.py‎

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1057,7 +1057,7 @@ def show(
10571057
cs_index = cs_contents.set_index("cs")
10581058
pending_colorbars: list[tuple[Axes, list[ColorbarSpec]]] = []
10591059

1060-
elements_to_be_rendered = _get_elements_to_be_rendered(render_cmds, cs_contents, cs)
1060+
elements_to_be_rendered = _get_elements_to_be_rendered(render_cmds, cs_index, cs)
10611061

10621062
# filter out cs without relevant elements
10631063
cmds = [cmd for cmd, _ in render_cmds]

‎src/spatialdata_plot/pl/utils.py‎

Lines changed: 6 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -348,8 +348,7 @@ def _get_cs_contents(sdata: sd.SpatialData) -> pd.DataFrame:
348348
)
349349

350350
cs_contents = pd.DataFrame(rows, columns=["cs"] + content_flags)
351-
for flag in content_flags:
352-
cs_contents[flag] = cs_contents[flag].astype("bool")
351+
cs_contents[content_flags] = cs_contents[content_flags].astype("bool")
353352
return cs_contents
354353

355354

@@ -2093,7 +2092,7 @@ def _get_elements_to_be_rendered(
20932092
ImageRenderParams | LabelsRenderParams | PointsRenderParams | ShapesRenderParams,
20942093
]
20952094
],
2096-
cs_contents: pd.DataFrame,
2095+
cs_index: pd.DataFrame,
20972096
cs: str,
20982097
) -> list[str]:
20992098
"""
@@ -2103,24 +2102,23 @@ def _get_elements_to_be_rendered(
21032102
----------
21042103
render_cmds
21052104
List of tuples containing the commands and their respective parameters.
2106-
cs_contents
2107-
The dataframe indicating for each coordinate system which SpatialElements it contains.
2105+
cs_index
2106+
The cs_contents dataframe indexed by the "cs" column.
21082107
cs
2109-
The name of the coordinate system to query cs_contents for.
2108+
The name of the coordinate system to query cs_index for.
21102109
21112110
Returns
21122111
-------
21132112
List of names of the SpatialElements to be rendered in the plot.
21142113
"""
21152114
elements_to_be_rendered: list[str] = []
21162115

2117-
cs_index = cs_contents.set_index("cs")
21182116
cs_row = cs_index.loc[cs] if cs in cs_index.index else None
21192117

21202118
for cmd, params in render_cmds:
21212119
key = _RENDER_CMD_TO_CS_FLAG.get(cmd)
21222120
if key and cs_row is not None and cs_row[key]:
2123-
elements_to_be_rendered += [params.element]
2121+
elements_to_be_rendered.append(params.element)
21242122

21252123
return elements_to_be_rendered
21262124

0 commit comments

Comments
 (0)