Skip to content

Commit a1269a9

Browse files
authored
Merge pull request matplotlib#23683 from anntzer/pp
Simplify/add pyparsing error messages on mathtext/fontconfig errors.
2 parents 65c1b89 + 0cad088 commit a1269a9

File tree

7 files changed

+18
-18
lines changed

7 files changed

+18
-18
lines changed
Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,2 @@
1+
pyparsing>=2.3.1 is now required
2+
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

doc/devel/dependencies.rst

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -24,7 +24,7 @@ reference.
2424
* `NumPy <https://numpy.org>`_ (>= 1.19)
2525
* `packaging <https://pypi.org/project/packaging/>`_ (>= 20.0)
2626
* `Pillow <https://pillow.readthedocs.io/en/latest/>`_ (>= 6.2)
27-
* `pyparsing <https://pypi.org/project/pyparsing/>`_ (>= 2.2.1)
27+
* `pyparsing <https://pypi.org/project/pyparsing/>`_ (>= 2.3.1)
2828
* `setuptools <https://setuptools.readthedocs.io/en/latest/>`_
2929

3030

lib/matplotlib/__init__.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -203,7 +203,7 @@ def _check_versions():
203203
("dateutil", "2.7"),
204204
("kiwisolver", "1.0.1"),
205205
("numpy", "1.19"),
206-
("pyparsing", "2.2.1"),
206+
("pyparsing", "2.3.1"),
207207
]:
208208
module = importlib.import_module(modname)
209209
if parse_version(module.__version__) < parse_version(minver):

lib/matplotlib/_fontconfig_pattern.py

Lines changed: 7 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -11,9 +11,11 @@
1111

1212
from functools import lru_cache
1313
import re
14+
1415
import numpy as np
15-
from pyparsing import (Literal, ZeroOrMore, Optional, Regex, StringEnd,
16-
ParseException, Suppress)
16+
from pyparsing import (
17+
Literal, Optional, ParseException, Regex, StringEnd, Suppress, ZeroOrMore,
18+
)
1719

1820
family_punc = r'\\\-:,'
1921
family_unescape = re.compile(r'\\([%s])' % family_punc).sub
@@ -125,14 +127,11 @@ def parse(self, pattern):
125127
props = self._properties = {}
126128
try:
127129
self._parser.parseString(pattern)
128-
except self.ParseException as e:
129-
raise ValueError(
130-
"Could not parse font string: '%s'\n%s" % (pattern, e)) from e
131-
130+
except ParseException as err:
131+
# explain becomes a plain method on pyparsing 3 (err.explain(0)).
132+
raise ValueError("\n" + ParseException.explain(err, 0)) from None
132133
self._properties = None
133-
134134
self._parser.resetCache()
135-
136135
return props
137136

138137
def _family(self, s, loc, tokens):

lib/matplotlib/_mathtext.py

Lines changed: 5 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -15,8 +15,9 @@
1515
import numpy as np
1616
from pyparsing import (
1717
Empty, Forward, Literal, NotAny, oneOf, OneOrMore, Optional,
18-
ParseBaseException, ParseExpression, ParseFatalException, ParserElement,
19-
ParseResults, QuotedString, Regex, StringEnd, ZeroOrMore, pyparsing_common)
18+
ParseBaseException, ParseException, ParseExpression, ParseFatalException,
19+
ParserElement, ParseResults, QuotedString, Regex, StringEnd, ZeroOrMore,
20+
pyparsing_common)
2021

2122
import matplotlib as mpl
2223
from . import _api, cbook
@@ -1990,10 +1991,8 @@ def parse(self, s, fonts_object, fontsize, dpi):
19901991
try:
19911992
result = self._expression.parseString(s)
19921993
except ParseBaseException as err:
1993-
raise ValueError("\n".join(["",
1994-
err.line,
1995-
" " * (err.column - 1) + "^",
1996-
str(err)])) from err
1994+
# explain becomes a plain method on pyparsing 3 (err.explain(0)).
1995+
raise ValueError("\n" + ParseException.explain(err, 0)) from None
19971996
self._state_stack = None
19981997
self._in_subscript_or_superscript = False
19991998
# prevent operator spacing from leaking into a new expression

requirements/testing/minver.txt

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -6,6 +6,6 @@ kiwisolver==1.0.1
66
numpy==1.19.0
77
packaging==20.0
88
pillow==6.2.1
9-
pyparsing==2.2.1
9+
pyparsing==2.3.1
1010
python-dateutil==2.7
1111
fonttools==4.22.0

setup.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -318,7 +318,7 @@ def make_release_tree(self, base_dir, files):
318318
"numpy>=1.19",
319319
"packaging>=20.0",
320320
"pillow>=6.2.0",
321-
"pyparsing>=2.2.1",
321+
"pyparsing>=2.3.1",
322322
"python-dateutil>=2.7",
323323
] + (
324324
# Installing from a git checkout that is not producing a wheel.

0 commit comments

Comments
 (0)