Uh oh!
There was an error while loading.Please reload this page.
- Notifications
You must be signed in to change notification settings - Fork7.9k
Closed
Description
Bug summary
UserWarning: Could not render math expression \sum_{\substack{1\leq i\leq 3\\ 1\leq j\leq 5}}
e.g. in#29801.
I suspect this may be a bug in pyparsing 3.2.2, which was released today. Ping@ptmcg
Code for reproduction
I've not yet created a minimal example from the docs, but can do so if additional insight is needed.
Actual outcome
Traceback (most recent call last): File "/home/circleci/project/lib/matplotlib/sphinxext/mathmpl.py", line 134, in latex2png depth = mathtext.math_to_image( ^^^^^^^^^^^^^^^^^^^^^^^ File "/home/circleci/project/lib/matplotlib/mathtext.py", line 134, in math_to_image width, height, depth, _, _ = parser.parse(s, dpi=72, prop=prop) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ File "/home/circleci/project/lib/matplotlib/mathtext.py", line 86, in parse return self._parse_cached(s, dpi, prop, antialiased, load_glyph_flags) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ File "/home/circleci/project/lib/matplotlib/mathtext.py", line 100, in _parse_cached box = self._parser.parse(s, fontset, fontsize, dpi) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ File "/home/circleci/project/lib/matplotlib/_mathtext.py", line 2170, in parse result = self._expression.parseString(s) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ File "/home/circleci/.local/lib/python3.12/site-packages/pyparsing/util.py", line 417, in _inner return fn(self, *args, **kwargs) ^^^^^^^^^^^^^^^^^^^^^^^^^ File "/home/circleci/.local/lib/python3.12/site-packages/pyparsing/core.py", line 1207, in parse_string loc, tokens = self._parse(instring, 0) ^^^^^^^^^^^^^^^^^^^^^^^^ File "/home/circleci/.local/lib/python3.12/site-packages/pyparsing/core.py", line 991, in _parseCache value = self._parseNoCache(instring, loc, do_actions, callPreParse) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ File "/home/circleci/.local/lib/python3.12/site-packages/pyparsing/core.py", line 853, in _parseNoCache loc, tokens = self.parseImpl(instring, pre_loc, do_actions) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ File "/home/circleci/.local/lib/python3.12/site-packages/pyparsing/core.py", line 4197, in parseImpl loc, exprtokens = e._parse(instring, loc, do_actions) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ File "/home/circleci/.local/lib/python3.12/site-packages/pyparsing/core.py", line 991, in _parseCache value = self._parseNoCache(instring, loc, do_actions, callPreParse) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ File "/home/circleci/.local/lib/python3.12/site-packages/pyparsing/core.py", line 853, in _parseNoCache loc, tokens = self.parseImpl(instring, pre_loc, do_actions) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ File "/home/circleci/.local/lib/python3.12/site-packages/pyparsing/core.py", line 5232, in parseImpl return super().parseImpl(instring, loc, do_actions) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ File "/home/circleci/.local/lib/python3.12/site-packages/pyparsing/core.py", line 5131, in parseImpl loc, tokens = self_expr_parse(instring, loc, do_actions) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ File "/home/circleci/.local/lib/python3.12/site-packages/pyparsing/core.py", line 991, in _parseCache value = self._parseNoCache(instring, loc, do_actions, callPreParse) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ File "/home/circleci/.local/lib/python3.12/site-packages/pyparsing/core.py", line 853, in _parseNoCache loc, tokens = self.parseImpl(instring, pre_loc, do_actions) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ File "/home/circleci/.local/lib/python3.12/site-packages/pyparsing/core.py", line 4175, in parseImpl loc, resultlist = self.exprs[0]._parse( ^^^^^^^^^^^^^^^^^^^^^ File "/home/circleci/.local/lib/python3.12/site-packages/pyparsing/core.py", line 991, in _parseCache value = self._parseNoCache(instring, loc, do_actions, callPreParse) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ File "/home/circleci/.local/lib/python3.12/site-packages/pyparsing/core.py", line 892, in _parseNoCache tokens = fn(instring, tokens_start, ret_tokens) # type: ignore [call-arg, arg-type] ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ File "/home/circleci/.local/lib/python3.12/site-packages/pyparsing/core.py", line 280, in wrapper return func(*args[limit:]) ^^^^^^^^^^^^^^^^^^^ File "/home/circleci/project/lib/matplotlib/_mathtext.py", line 2197, in math_string return self._math_expression.parseString(toks[0][1:-1], parseAll=True) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ File "/home/circleci/.local/lib/python3.12/site-packages/pyparsing/util.py", line 417, in _inner return fn(self, *args, **kwargs) ^^^^^^^^^^^^^^^^^^^^^^^^^ File "/home/circleci/.local/lib/python3.12/site-packages/pyparsing/core.py", line 1207, in parse_string loc, tokens = self._parse(instring, 0) ^^^^^^^^^^^^^^^^^^^^^^^^ File "/home/circleci/.local/lib/python3.12/site-packages/pyparsing/core.py", line 991, in _parseCache value = self._parseNoCache(instring, loc, do_actions, callPreParse) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ File "/home/circleci/.local/lib/python3.12/site-packages/pyparsing/core.py", line 853, in _parseNoCache loc, tokens = self.parseImpl(instring, pre_loc, do_actions) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ File "/home/circleci/.local/lib/python3.12/site-packages/pyparsing/core.py", line 5131, in parseImpl loc, tokens = self_expr_parse(instring, loc, do_actions) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ File "/home/circleci/.local/lib/python3.12/site-packages/pyparsing/core.py", line 991, in _parseCache value = self._parseNoCache(instring, loc, do_actions, callPreParse) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ File "/home/circleci/.local/lib/python3.12/site-packages/pyparsing/core.py", line 853, in _parseNoCache loc, tokens = self.parseImpl(instring, pre_loc, do_actions) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ File "/home/circleci/.local/lib/python3.12/site-packages/pyparsing/core.py", line 5666, in parseImpl return super().parseImpl(instring, loc, do_actions) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ File "/home/circleci/.local/lib/python3.12/site-packages/pyparsing/core.py", line 4703, in parseImpl return self.expr._parse(instring, loc, do_actions, callPreParse=False) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ File "/home/circleci/.local/lib/python3.12/site-packages/pyparsing/core.py", line 991, in _parseCache value = self._parseNoCache(instring, loc, do_actions, callPreParse) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ File "/home/circleci/.local/lib/python3.12/site-packages/pyparsing/core.py", line 853, in _parseNoCache loc, tokens = self.parseImpl(instring, pre_loc, do_actions) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ File "/home/circleci/.local/lib/python3.12/site-packages/pyparsing/core.py", line 4431, in parseImpl return e._parse(instring, loc, do_actions) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ File "/home/circleci/.local/lib/python3.12/site-packages/pyparsing/core.py", line 991, in _parseCache value = self._parseNoCache(instring, loc, do_actions, callPreParse) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ File "/home/circleci/.local/lib/python3.12/site-packages/pyparsing/core.py", line 853, in _parseNoCache loc, tokens = self.parseImpl(instring, pre_loc, do_actions) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ File "/home/circleci/.local/lib/python3.12/site-packages/pyparsing/core.py", line 4431, in parseImpl return e._parse(instring, loc, do_actions) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ File "/home/circleci/.local/lib/python3.12/site-packages/pyparsing/core.py", line 991, in _parseCache value = self._parseNoCache(instring, loc, do_actions, callPreParse) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ File "/home/circleci/.local/lib/python3.12/site-packages/pyparsing/core.py", line 853, in _parseNoCache loc, tokens = self.parseImpl(instring, pre_loc, do_actions) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ File "/home/circleci/.local/lib/python3.12/site-packages/pyparsing/core.py", line 4197, in parseImpl loc, exprtokens = e._parse(instring, loc, do_actions) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ File "/home/circleci/.local/lib/python3.12/site-packages/pyparsing/core.py", line 991, in _parseCache value = self._parseNoCache(instring, loc, do_actions, callPreParse) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ File "/home/circleci/.local/lib/python3.12/site-packages/pyparsing/core.py", line 853, in _parseNoCache loc, tokens = self.parseImpl(instring, pre_loc, do_actions) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ File "/home/circleci/.local/lib/python3.12/site-packages/pyparsing/core.py", line 5131, in parseImpl loc, tokens = self_expr_parse(instring, loc, do_actions) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ File "/home/circleci/.local/lib/python3.12/site-packages/pyparsing/core.py", line 991, in _parseCache value = self._parseNoCache(instring, loc, do_actions, callPreParse) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ File "/home/circleci/.local/lib/python3.12/site-packages/pyparsing/core.py", line 853, in _parseNoCache loc, tokens = self.parseImpl(instring, pre_loc, do_actions) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ File "/home/circleci/.local/lib/python3.12/site-packages/pyparsing/core.py", line 4186, in parseImpl loc, exprtokens = e._parse(instring, loc, do_actions) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ File "/home/circleci/.local/lib/python3.12/site-packages/pyparsing/core.py", line 991, in _parseCache value = self._parseNoCache(instring, loc, do_actions, callPreParse) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ File "/home/circleci/.local/lib/python3.12/site-packages/pyparsing/core.py", line 853, in _parseNoCache loc, tokens = self.parseImpl(instring, pre_loc, do_actions) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ File "/home/circleci/.local/lib/python3.12/site-packages/pyparsing/core.py", line 5666, in parseImpl return super().parseImpl(instring, loc, do_actions) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ File "/home/circleci/.local/lib/python3.12/site-packages/pyparsing/core.py", line 4703, in parseImpl return self.expr._parse(instring, loc, do_actions, callPreParse=False) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ File "/home/circleci/.local/lib/python3.12/site-packages/pyparsing/core.py", line 991, in _parseCache value = self._parseNoCache(instring, loc, do_actions, callPreParse) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ File "/home/circleci/.local/lib/python3.12/site-packages/pyparsing/core.py", line 853, in _parseNoCache loc, tokens = self.parseImpl(instring, pre_loc, do_actions) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ File "/home/circleci/.local/lib/python3.12/site-packages/pyparsing/core.py", line 4431, in parseImpl return e._parse(instring, loc, do_actions) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ File "/home/circleci/.local/lib/python3.12/site-packages/pyparsing/core.py", line 991, in _parseCache value = self._parseNoCache(instring, loc, do_actions, callPreParse) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ File "/home/circleci/.local/lib/python3.12/site-packages/pyparsing/core.py", line 853, in _parseNoCache loc, tokens = self.parseImpl(instring, pre_loc, do_actions) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ File "/home/circleci/.local/lib/python3.12/site-packages/pyparsing/core.py", line 4197, in parseImpl loc, exprtokens = e._parse(instring, loc, do_actions) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ File "/home/circleci/.local/lib/python3.12/site-packages/pyparsing/core.py", line 991, in _parseCache value = self._parseNoCache(instring, loc, do_actions, callPreParse) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ File "/home/circleci/.local/lib/python3.12/site-packages/pyparsing/core.py", line 853, in _parseNoCache loc, tokens = self.parseImpl(instring, pre_loc, do_actions) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ File "/home/circleci/.local/lib/python3.12/site-packages/pyparsing/core.py", line 5232, in parseImpl return super().parseImpl(instring, loc, do_actions) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ File "/home/circleci/.local/lib/python3.12/site-packages/pyparsing/core.py", line 5131, in parseImpl loc, tokens = self_expr_parse(instring, loc, do_actions) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ File "/home/circleci/.local/lib/python3.12/site-packages/pyparsing/core.py", line 991, in _parseCache value = self._parseNoCache(instring, loc, do_actions, callPreParse) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ File "/home/circleci/.local/lib/python3.12/site-packages/pyparsing/core.py", line 853, in _parseNoCache loc, tokens = self.parseImpl(instring, pre_loc, do_actions) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ File "/home/circleci/.local/lib/python3.12/site-packages/pyparsing/core.py", line 5666, in parseImpl return super().parseImpl(instring, loc, do_actions) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ File "/home/circleci/.local/lib/python3.12/site-packages/pyparsing/core.py", line 4703, in parseImpl return self.expr._parse(instring, loc, do_actions, callPreParse=False) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ File "/home/circleci/.local/lib/python3.12/site-packages/pyparsing/core.py", line 991, in _parseCache value = self._parseNoCache(instring, loc, do_actions, callPreParse) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ File "/home/circleci/.local/lib/python3.12/site-packages/pyparsing/core.py", line 853, in _parseNoCache loc, tokens = self.parseImpl(instring, pre_loc, do_actions) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ File "/home/circleci/.local/lib/python3.12/site-packages/pyparsing/core.py", line 4431, in parseImpl return e._parse(instring, loc, do_actions) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ File "/home/circleci/.local/lib/python3.12/site-packages/pyparsing/core.py", line 991, in _parseCache value = self._parseNoCache(instring, loc, do_actions, callPreParse) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ File "/home/circleci/.local/lib/python3.12/site-packages/pyparsing/core.py", line 853, in _parseNoCache loc, tokens = self.parseImpl(instring, pre_loc, do_actions) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ File "/home/circleci/.local/lib/python3.12/site-packages/pyparsing/core.py", line 4431, in parseImpl return e._parse(instring, loc, do_actions) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ File "/home/circleci/.local/lib/python3.12/site-packages/pyparsing/core.py", line 991, in _parseCache value = self._parseNoCache(instring, loc, do_actions, callPreParse) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ File "/home/circleci/.local/lib/python3.12/site-packages/pyparsing/core.py", line 853, in _parseNoCache loc, tokens = self.parseImpl(instring, pre_loc, do_actions) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ File "/home/circleci/.local/lib/python3.12/site-packages/pyparsing/core.py", line 4175, in parseImpl loc, resultlist = self.exprs[0]._parse( ^^^^^^^^^^^^^^^^^^^^^ File "/home/circleci/.local/lib/python3.12/site-packages/pyparsing/core.py", line 991, in _parseCache value = self._parseNoCache(instring, loc, do_actions, callPreParse) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ File "/home/circleci/.local/lib/python3.12/site-packages/pyparsing/core.py", line 853, in _parseNoCache loc, tokens = self.parseImpl(instring, pre_loc, do_actions) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ File "/home/circleci/.local/lib/python3.12/site-packages/pyparsing/core.py", line 5366, in parseImpl loc, tokens = self_expr._parse( ^^^^^^^^^^^^^^^^^ File "/home/circleci/.local/lib/python3.12/site-packages/pyparsing/core.py", line 991, in _parseCache value = self._parseNoCache(instring, loc, do_actions, callPreParse) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ File "/home/circleci/.local/lib/python3.12/site-packages/pyparsing/core.py", line 853, in _parseNoCache loc, tokens = self.parseImpl(instring, pre_loc, do_actions) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ File "/home/circleci/.local/lib/python3.12/site-packages/pyparsing/core.py", line 5666, in parseImpl return super().parseImpl(instring, loc, do_actions) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ File "/home/circleci/.local/lib/python3.12/site-packages/pyparsing/core.py", line 4703, in parseImpl return self.expr._parse(instring, loc, do_actions, callPreParse=False) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ File "/home/circleci/.local/lib/python3.12/site-packages/pyparsing/core.py", line 991, in _parseCache value = self._parseNoCache(instring, loc, do_actions, callPreParse) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ File "/home/circleci/.local/lib/python3.12/site-packages/pyparsing/core.py", line 853, in _parseNoCache loc, tokens = self.parseImpl(instring, pre_loc, do_actions) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ File "/home/circleci/.local/lib/python3.12/site-packages/pyparsing/core.py", line 4431, in parseImpl return e._parse(instring, loc, do_actions) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ File "/home/circleci/.local/lib/python3.12/site-packages/pyparsing/core.py", line 991, in _parseCache value = self._parseNoCache(instring, loc, do_actions, callPreParse) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ File "/home/circleci/.local/lib/python3.12/site-packages/pyparsing/core.py", line 853, in _parseNoCache loc, tokens = self.parseImpl(instring, pre_loc, do_actions) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ File "/home/circleci/.local/lib/python3.12/site-packages/pyparsing/core.py", line 4186, in parseImpl loc, exprtokens = e._parse(instring, loc, do_actions) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ File "/home/circleci/.local/lib/python3.12/site-packages/pyparsing/core.py", line 991, in _parseCache value = self._parseNoCache(instring, loc, do_actions, callPreParse) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ File "/home/circleci/.local/lib/python3.12/site-packages/pyparsing/core.py", line 853, in _parseNoCache loc, tokens = self.parseImpl(instring, pre_loc, do_actions) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ File "/home/circleci/.local/lib/python3.12/site-packages/pyparsing/core.py", line 4431, in parseImpl return e._parse(instring, loc, do_actions) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ File "/home/circleci/.local/lib/python3.12/site-packages/pyparsing/core.py", line 991, in _parseCache value = self._parseNoCache(instring, loc, do_actions, callPreParse) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ File "/home/circleci/.local/lib/python3.12/site-packages/pyparsing/core.py", line 853, in _parseNoCache loc, tokens = self.parseImpl(instring, pre_loc, do_actions) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ File "/home/circleci/.local/lib/python3.12/site-packages/pyparsing/core.py", line 5666, in parseImpl return super().parseImpl(instring, loc, do_actions) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ File "/home/circleci/.local/lib/python3.12/site-packages/pyparsing/core.py", line 4703, in parseImpl return self.expr._parse(instring, loc, do_actions, callPreParse=False) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ File "/home/circleci/.local/lib/python3.12/site-packages/pyparsing/core.py", line 991, in _parseCache value = self._parseNoCache(instring, loc, do_actions, callPreParse) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ File "/home/circleci/.local/lib/python3.12/site-packages/pyparsing/core.py", line 853, in _parseNoCache loc, tokens = self.parseImpl(instring, pre_loc, do_actions) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ File "/home/circleci/.local/lib/python3.12/site-packages/pyparsing/core.py", line 4703, in parseImpl return self.expr._parse(instring, loc, do_actions, callPreParse=False) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ File "/home/circleci/.local/lib/python3.12/site-packages/pyparsing/core.py", line 991, in _parseCache value = self._parseNoCache(instring, loc, do_actions, callPreParse) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ File "/home/circleci/.local/lib/python3.12/site-packages/pyparsing/core.py", line 853, in _parseNoCache loc, tokens = self.parseImpl(instring, pre_loc, do_actions) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ File "/home/circleci/.local/lib/python3.12/site-packages/pyparsing/core.py", line 4197, in parseImpl loc, exprtokens = e._parse(instring, loc, do_actions) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ File "/home/circleci/.local/lib/python3.12/site-packages/pyparsing/core.py", line 991, in _parseCache value = self._parseNoCache(instring, loc, do_actions, callPreParse) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ File "/home/circleci/.local/lib/python3.12/site-packages/pyparsing/core.py", line 853, in _parseNoCache loc, tokens = self.parseImpl(instring, pre_loc, do_actions) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ File "/home/circleci/.local/lib/python3.12/site-packages/pyparsing/core.py", line 5232, in parseImpl return super().parseImpl(instring, loc, do_actions) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ File "/home/circleci/.local/lib/python3.12/site-packages/pyparsing/core.py", line 5131, in parseImpl loc, tokens = self_expr_parse(instring, loc, do_actions) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ File "/home/circleci/.local/lib/python3.12/site-packages/pyparsing/core.py", line 991, in _parseCache value = self._parseNoCache(instring, loc, do_actions, callPreParse) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ File "/home/circleci/.local/lib/python3.12/site-packages/pyparsing/core.py", line 853, in _parseNoCache loc, tokens = self.parseImpl(instring, pre_loc, do_actions) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ File "/home/circleci/.local/lib/python3.12/site-packages/pyparsing/core.py", line 4431, in parseImpl return e._parse(instring, loc, do_actions) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ File "/home/circleci/.local/lib/python3.12/site-packages/pyparsing/core.py", line 991, in _parseCache value = self._parseNoCache(instring, loc, do_actions, callPreParse) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ File "/home/circleci/.local/lib/python3.12/site-packages/pyparsing/core.py", line 892, in _parseNoCache tokens = fn(instring, tokens_start, ret_tokens) # type: ignore [call-arg, arg-type] ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ File "/home/circleci/.local/lib/python3.12/site-packages/pyparsing/core.py", line 283, in wrapper ret = func(*args[limit:]) ^^^^^^^^^^^^^^^^^^^ File "/home/circleci/.local/lib/python3.12/site-packages/pyparsing/helpers.py", line 549, in <lambda> lambda t: t[0].strip(ParserElement.DEFAULT_WHITE_CHARS) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ TypeError: 'str' object is not callable During handling of the above exception, another exception occurred: Traceback (most recent call last): File "/home/circleci/.local/lib/python3.12/site-packages/sphinx/util/parallel.py", line 83, in _process ret = func(arg) # type: ignore[call-arg] ^^^^^^^^^ File "/home/circleci/.local/lib/python3.12/site-packages/sphinx/builders/__init__.py", line 774, in write_process self.write_doc(docname, doctree) File "/home/circleci/.local/lib/python3.12/site-packages/sphinx/builders/html/__init__.py", line 670, in write_doc self.docwriter.write(doctree, destination) File "/home/circleci/.local/lib/python3.12/site-packages/docutils/writers/__init__.py", line 80, in write self.translate() File "/home/circleci/.local/lib/python3.12/site-packages/sphinx/writers/html.py", line 36, in translate self.document.walkabout(visitor) File "/home/circleci/.local/lib/python3.12/site-packages/docutils/nodes.py", line 186, in walkabout if child.walkabout(visitor): ^^^^^^^^^^^^^^^^^^^^^^^^ File "/home/circleci/.local/lib/python3.12/site-packages/docutils/nodes.py", line 186, in walkabout if child.walkabout(visitor): ^^^^^^^^^^^^^^^^^^^^^^^^ File "/home/circleci/.local/lib/python3.12/site-packages/docutils/nodes.py", line 186, in walkabout if child.walkabout(visitor): ^^^^^^^^^^^^^^^^^^^^^^^^ [Previous line repeated 1 more time] File "/home/circleci/.local/lib/python3.12/site-packages/docutils/nodes.py", line 178, in walkabout visitor.dispatch_visit(self) File "/home/circleci/.local/lib/python3.12/site-packages/sphinx/util/docutils.py", line 767, in dispatch_visit method(node) File "/home/circleci/project/lib/matplotlib/sphinxext/mathmpl.py", line 214, in visit_latex_math_html self.body.append(latex2html(node, source)) ^^^^^^^^^^^^^^^^^^^^^^^^ File "/home/circleci/project/lib/matplotlib/sphinxext/mathmpl.py", line 158, in latex2html depth = latex2png(latex, dest, fontset, fontsize=fontsize) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ File "/home/circleci/project/lib/matplotlib/sphinxext/mathmpl.py", line 137, in latex2png _api.warn_external(f"Could not render math expression {latex}") File "/home/circleci/project/lib/matplotlib/_api/__init__.py", line 391, in warn_external warnings.warn(message, category, **kwargs) UserWarning: Could not render math expression \sum_{\substack{1\leq i\leq 3\\ 1\leq j\leq 5}}
Expected outcome
No error.
Additional information
No response
Operating system
No response
Matplotlib Version
main
Matplotlib Backend
No response
Python version
No response
Jupyter version
No response
Installation
None