add get_entry and get_entry_without_label to table

added two new methods to the table class -- `get_entry(pos)` and `get_entry_without_label(pos)` -- that return a single vmobject at the given position. they just delegate to the existing `get_entries` and `get_entries_without_labels` methods so nothing breaks, but now you have dedicated single-entry methods with proper explicit return types instead of the weird union return on the plural methods. the original methods are untouched for backward compat.

Signed-off-by: nitzan-treg <nitzan.tregerman@gmail.com>
This commit is contained in:
nitzan-treg 2026-04-17 00:51:23 +03:00
commit 66a9ef4f0e

View file

@ -611,6 +611,38 @@ class Table(VGroup):
else:
return self.elements
def get_entry(self, pos: Sequence[int]) -> VMobject:
"""Return one specific entry of the table (including labels).
Parameters
----------
pos
The position of a specific entry on the table. ``(1,1)`` being the top left entry
of the table.
Returns
-------
:class:`~.VMobject`
The :class:`~.VMobject` at the given position.
Examples
--------
.. manim:: GetEntryExample
:save_last_frame:
class GetEntryExample(Scene):
def construct(self):
table = Table(
[["First", "Second"],
["Third","Fourth"]],
row_labels=[Text("R1"), Text("R2")],
col_labels=[Text("C1"), Text("C2")])
table.get_entry((2,2)).rotate(PI)
self.add(table)
"""
return self.get_entries(pos)
def get_entries_without_labels(
self,
pos: Sequence[int] | None = None,
@ -656,6 +688,38 @@ class Table(VGroup):
else:
return self.elements_without_labels
def get_entry_without_label(self, pos: Sequence[int]) -> VMobject:
"""Return one specific entry of the table (without labels).
Parameters
----------
pos
The position of a specific entry on the table. ``(1,1)`` being the top left entry
of the table (without labels).
Returns
-------
:class:`~.VMobject`
The :class:`~.VMobject` at the given position.
Examples
--------
.. manim:: GetEntryWithoutLabelExample
:save_last_frame:
class GetEntryWithoutLabelExample(Scene):
def construct(self):
table = Table(
[["First", "Second"],
["Third","Fourth"]],
row_labels=[Text("R1"), Text("R2")],
col_labels=[Text("C1"), Text("C2")])
table.get_entry_without_label((2,2)).rotate(PI)
self.add(table)
"""
return self.get_entries_without_labels(pos)
def get_row_labels(self) -> VGroup:
"""Return the row labels of the table.