Skip to content

Commit ea5d85f

Browse files
committed
Add some types to _mathtext.py
Mypy 1.16.0 flags errors here: lib/matplotlib/_mathtext.py:2531: error: "Node" has no attribute "width" [attr-defined] lib/matplotlib/_mathtext.py:2608: error: List item 0 has incompatible type "Kern"; expected "Hlist | Vlist" [list-item] The check for the attribute _metrics is equivalent to checking for an instance of Char, since only Char and its subclasses set self._metrics. Mypy infers an unnecessarily tight type list[Hlist | Vlist] for spaced_nucleus so we give it a more general one.
1 parent 4f26d9a commit ea5d85f

File tree

1 file changed

+3
-3
lines changed

1 file changed

+3
-3
lines changed

lib/matplotlib/_mathtext.py

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -2524,10 +2524,10 @@ def subsuper(self, s: str, loc: int, toks: ParseResults) -> T.Any:
25242524
if len(new_children):
25252525
# remove last kern
25262526
if (isinstance(new_children[-1], Kern) and
2527-
hasattr(new_children[-2], '_metrics')):
2527+
isinstance(new_children[-2], Char)):
25282528
new_children = new_children[:-1]
25292529
last_char = new_children[-1]
2530-
if hasattr(last_char, '_metrics'):
2530+
if isinstance(last_char, Char):
25312531
last_char.width = last_char._metrics.advance
25322532
# create new Hlist without kerning
25332533
nucleus = Hlist(new_children, do_kern=False)
@@ -2603,7 +2603,7 @@ def subsuper(self, s: str, loc: int, toks: ParseResults) -> T.Any:
26032603

26042604
# Do we need to add a space after the nucleus?
26052605
# To find out, check the flag set by operatorname
2606-
spaced_nucleus = [nucleus, x]
2606+
spaced_nucleus: list[Node] = [nucleus, x]
26072607
if self._in_subscript_or_superscript:
26082608
spaced_nucleus += [self._make_space(self._space_widths[r'\,'])]
26092609
self._in_subscript_or_superscript = False

0 commit comments

Comments
 (0)
pFad - Phonifier reborn

Pfad - The Proxy pFad of © 2024 Garber Painting. All rights reserved.

Note: This service is not intended for secure transactions such as banking, social media, email, or purchasing. Use at your own risk. We assume no liability whatsoever for broken pages.


Alternative Proxies:

Alternative Proxy

pFad Proxy

pFad v3 Proxy

pFad v4 Proxy