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