summaryrefslogtreecommitdiff
path: root/dev-python/matplotlib/files
diff options
context:
space:
mode:
authorV3n3RiX <venerix@koprulu.sector>2024-02-20 11:40:01 +0000
committerV3n3RiX <venerix@koprulu.sector>2024-02-20 11:40:01 +0000
commitd6ecedbb65041ed35010095376e87dd7de4270c5 (patch)
treef00964f121a5ec52d2f3d1fd00a8f3eb52f9c756 /dev-python/matplotlib/files
parent89a009d7439343e207e8c7e4df1a28adecafeffe (diff)
gentoo auto-resync : 20:02:2024 - 11:40:01
Diffstat (limited to 'dev-python/matplotlib/files')
-rw-r--r--dev-python/matplotlib/files/matplotlib-3.7.1-test.patch244
-rw-r--r--dev-python/matplotlib/files/matplotlib-3.7.2-macOS_no-Cocoa.patch21
-rw-r--r--dev-python/matplotlib/files/matplotlib-3.7.2-pyparsing-3.1.patch274
3 files changed, 0 insertions, 539 deletions
diff --git a/dev-python/matplotlib/files/matplotlib-3.7.1-test.patch b/dev-python/matplotlib/files/matplotlib-3.7.1-test.patch
deleted file mode 100644
index e2471a4282c2..000000000000
--- a/dev-python/matplotlib/files/matplotlib-3.7.1-test.patch
+++ /dev/null
@@ -1,244 +0,0 @@
-From 2290694d52ef1af255b9f0fa0d9c3c9ebcee9264 Mon Sep 17 00:00:00 2001
-From: =?UTF-8?q?Micha=C5=82=20G=C3=B3rny?= <mgorny@gentoo.org>
-Date: Tue, 14 Feb 2023 20:46:30 +0100
-Subject: [PATCH] Adjust tolerances to make tests pass on real hardware
-
----
- lib/matplotlib/tests/test_arrow_patches.py | 6 +++---
- lib/matplotlib/tests/test_axes.py | 6 +++---
- lib/matplotlib/tests/test_colorbar.py | 2 +-
- lib/matplotlib/tests/test_constrainedlayout.py | 8 ++++----
- lib/matplotlib/tests/test_contour.py | 3 +--
- lib/matplotlib/tests/test_figure.py | 2 +-
- lib/matplotlib/tests/test_image.py | 2 +-
- lib/matplotlib/tests/test_legend.py | 6 +++---
- lib/matplotlib/tests/test_lines.py | 2 +-
- lib/matplotlib/tests/test_units.py | 4 ++--
- lib/matplotlib/tests/test_usetex.py | 3 ++-
- 11 files changed, 22 insertions(+), 22 deletions(-)
-
-diff --git a/lib/matplotlib/tests/test_arrow_patches.py b/lib/matplotlib/tests/test_arrow_patches.py
-index 8d573b4adb..dfc42efcb9 100644
---- a/lib/matplotlib/tests/test_arrow_patches.py
-+++ b/lib/matplotlib/tests/test_arrow_patches.py
-@@ -67,7 +67,7 @@ def __prepare_fancyarrow_dpi_cor_test():
-
-
- @image_comparison(['fancyarrow_dpi_cor_100dpi.png'], remove_text=True,
-- tol=0 if platform.machine() == 'x86_64' else 0.02,
-+ tol=0.015 if platform.machine() == 'x86_64' else 0.02,
- savefig_kwarg=dict(dpi=100))
- def test_fancyarrow_dpi_cor_100dpi():
- """
-@@ -82,7 +82,7 @@ def test_fancyarrow_dpi_cor_100dpi():
-
-
- @image_comparison(['fancyarrow_dpi_cor_200dpi.png'], remove_text=True,
-- tol=0 if platform.machine() == 'x86_64' else 0.02,
-+ tol=0.018 if platform.machine() == 'x86_64' else 0.02,
- savefig_kwarg=dict(dpi=200))
- def test_fancyarrow_dpi_cor_200dpi():
- """
-@@ -115,7 +115,7 @@ def test_fancyarrow_dash():
-
-
- @image_comparison(['arrow_styles.png'], style='mpl20', remove_text=True,
-- tol=0 if platform.machine() == 'x86_64' else 0.005)
-+ tol=0.005)
- def test_arrow_styles():
- styles = mpatches.ArrowStyle.get_styles()
-
-diff --git a/lib/matplotlib/tests/test_axes.py b/lib/matplotlib/tests/test_axes.py
-index 004f6320de..63d705cb91 100644
---- a/lib/matplotlib/tests/test_axes.py
-+++ b/lib/matplotlib/tests/test_axes.py
-@@ -1034,7 +1034,7 @@ def test_imshow():
-
- @image_comparison(
- ['imshow_clip'], style='mpl20',
-- tol=1.24 if platform.machine() in ('aarch64', 'ppc64le', 's390x') else 0)
-+ tol=1.24)
- def test_imshow_clip():
- # As originally reported by Gellule Xg <gellule.xg@free.fr>
- # use former defaults to match existing baseline image
-@@ -2364,7 +2364,7 @@ def test_contour_hatching():
-
- @image_comparison(
- ['contour_colorbar'], style='mpl20',
-- tol=0.02 if platform.machine() in ('aarch64', 'ppc64le', 's390x') else 0)
-+ tol=0.02)
- def test_contour_colorbar():
- x, y, z = contour_dat()
-
-@@ -4704,7 +4704,7 @@ def test_vertex_markers():
-
-
- @image_comparison(['vline_hline_zorder', 'errorbar_zorder'],
-- tol=0 if platform.machine() == 'x86_64' else 0.02)
-+ tol=0.015 if platform.machine() == 'x86_64' else 0.02)
- def test_eb_line_zorder():
- x = list(range(10))
-
-diff --git a/lib/matplotlib/tests/test_colorbar.py b/lib/matplotlib/tests/test_colorbar.py
-index e39d007378..fa0cb2e72f 100644
---- a/lib/matplotlib/tests/test_colorbar.py
-+++ b/lib/matplotlib/tests/test_colorbar.py
-@@ -237,7 +237,7 @@ def test_colorbar_single_ax_panchor_east(constrained):
-
- @image_comparison(
- ['contour_colorbar.png'], remove_text=True,
-- tol=0.01 if platform.machine() in ('aarch64', 'ppc64le', 's390x') else 0)
-+ tol=0.01)
- def test_contour_colorbar():
- fig, ax = plt.subplots(figsize=(4, 2))
- data = np.arange(1200).reshape(30, 40) - 500
-diff --git a/lib/matplotlib/tests/test_constrainedlayout.py b/lib/matplotlib/tests/test_constrainedlayout.py
-index b0833052ad..c7633f6842 100644
---- a/lib/matplotlib/tests/test_constrainedlayout.py
-+++ b/lib/matplotlib/tests/test_constrainedlayout.py
-@@ -651,11 +651,11 @@ def test_compressed1():
- fig.draw_without_rendering()
-
- pos = axs[0, 0].get_position()
-- np.testing.assert_allclose(pos.x0, 0.06195, atol=1e-3)
-- np.testing.assert_allclose(pos.y1, 0.8537, atol=1e-3)
-+ np.testing.assert_allclose(pos.x0, 0.06195, atol=2e-3)
-+ np.testing.assert_allclose(pos.y1, 0.8537, atol=2e-3)
- pos = axs[1, 2].get_position()
-- np.testing.assert_allclose(pos.x1, 0.8618, atol=1e-3)
-- np.testing.assert_allclose(pos.y0, 0.1934, atol=1e-3)
-+ np.testing.assert_allclose(pos.x1, 0.8618, atol=2e-3)
-+ np.testing.assert_allclose(pos.y0, 0.1934, atol=2e-3)
-
-
- @pytest.mark.parametrize('arg, state', [
-diff --git a/lib/matplotlib/tests/test_contour.py b/lib/matplotlib/tests/test_contour.py
-index 41d4dc8501..e0f9f5c112 100644
---- a/lib/matplotlib/tests/test_contour.py
-+++ b/lib/matplotlib/tests/test_contour.py
-@@ -316,8 +316,7 @@ def test_contourf_log_extension():
-
- @image_comparison(
- ['contour_addlines.png'], remove_text=True, style='mpl20',
-- tol=0.15 if platform.machine() in ('aarch64', 'ppc64le', 's390x')
-- else 0.03)
-+ tol=0.15)
- # tolerance is because image changed minutely when tick finding on
- # colorbars was cleaned up...
- def test_contour_addlines():
-diff --git a/lib/matplotlib/tests/test_figure.py b/lib/matplotlib/tests/test_figure.py
-index f3ece07660..18c95e4a55 100644
---- a/lib/matplotlib/tests/test_figure.py
-+++ b/lib/matplotlib/tests/test_figure.py
-@@ -26,7 +26,7 @@ import matplotlib.dates as mdates
-
-
- @image_comparison(['figure_align_labels'], extensions=['png', 'svg'],
-- tol=0 if platform.machine() == 'x86_64' else 0.01)
-+ tol=0.02)
- def test_align_labels():
- fig = plt.figure(layout='tight')
- gs = gridspec.GridSpec(3, 3)
-diff --git a/lib/matplotlib/tests/test_image.py b/lib/matplotlib/tests/test_image.py
-index 76a622181d..af81d2fc0d 100644
---- a/lib/matplotlib/tests/test_image.py
-+++ b/lib/matplotlib/tests/test_image.py
-@@ -1339,7 +1339,7 @@ def test_nonuniform_and_pcolor():
-
- @image_comparison(
- ['rgba_antialias.png'], style='mpl20', remove_text=True,
-- tol=0.007 if platform.machine() in ('aarch64', 'ppc64le', 's390x') else 0)
-+ tol=0.007)
- def test_rgba_antialias():
- fig, axs = plt.subplots(2, 2, figsize=(3.5, 3.5), sharex=False,
- sharey=False, constrained_layout=True)
-diff --git a/lib/matplotlib/tests/test_legend.py b/lib/matplotlib/tests/test_legend.py
-index a8d7fd107d..2f658bc116 100644
---- a/lib/matplotlib/tests/test_legend.py
-+++ b/lib/matplotlib/tests/test_legend.py
-@@ -174,7 +174,7 @@ def test_multiple_keys():
-
-
- @image_comparison(['rgba_alpha.png'], remove_text=True,
-- tol=0 if platform.machine() == 'x86_64' else 0.01)
-+ tol=0.02)
- def test_alpha_rgba():
- fig, ax = plt.subplots()
- ax.plot(range(10), lw=5)
-@@ -183,7 +183,7 @@ def test_alpha_rgba():
-
-
- @image_comparison(['rcparam_alpha.png'], remove_text=True,
-- tol=0 if platform.machine() == 'x86_64' else 0.01)
-+ tol=0.02)
- def test_alpha_rcparam():
- fig, ax = plt.subplots()
- ax.plot(range(10), lw=5)
-@@ -209,7 +209,7 @@ def test_fancy():
-
-
- @image_comparison(['framealpha'], remove_text=True,
-- tol=0 if platform.machine() == 'x86_64' else 0.02)
-+ tol=0.02)
- def test_framealpha():
- x = np.linspace(1, 100, 100)
- y = x
-diff --git a/lib/matplotlib/tests/test_lines.py b/lib/matplotlib/tests/test_lines.py
-index b75d3c01b2..d08cc79172 100644
---- a/lib/matplotlib/tests/test_lines.py
-+++ b/lib/matplotlib/tests/test_lines.py
-@@ -185,7 +185,7 @@ def test_set_drawstyle():
-
- @image_comparison(
- ['line_collection_dashes'], remove_text=True, style='mpl20',
-- tol=0.65 if platform.machine() in ('aarch64', 'ppc64le', 's390x') else 0)
-+ tol=0.65)
- def test_set_line_coll_dash_image():
- fig, ax = plt.subplots()
- np.random.seed(0)
-diff --git a/lib/matplotlib/tests/test_units.py b/lib/matplotlib/tests/test_units.py
-index d3b8c5a716..56a1d0a0a4 100644
---- a/lib/matplotlib/tests/test_units.py
-+++ b/lib/matplotlib/tests/test_units.py
-@@ -79,7 +79,7 @@ def quantity_converter():
- # Tests that the conversion machinery works properly for classes that
- # work as a facade over numpy arrays (like pint)
- @image_comparison(['plot_pint.png'], style='mpl20',
-- tol=0 if platform.machine() == 'x86_64' else 0.01)
-+ tol=0.002 if platform.machine() == 'x86_64' else 0.01)
- def test_numpy_facade(quantity_converter):
- # use former defaults to match existing baseline image
- plt.rcParams['axes.formatter.limits'] = -7, 7
-@@ -106,7 +106,7 @@ def test_numpy_facade(quantity_converter):
-
- # Tests gh-8908
- @image_comparison(['plot_masked_units.png'], remove_text=True, style='mpl20',
-- tol=0 if platform.machine() == 'x86_64' else 0.01)
-+ tol=0.02)
- def test_plot_masked_units():
- data = np.linspace(-5, 5)
- data_masked = np.ma.array(data, mask=(data > -2) & (data < 2))
-diff --git a/lib/matplotlib/tests/test_usetex.py b/lib/matplotlib/tests/test_usetex.py
-index 0f01ebaffb..5e44dc8d22 100644
---- a/lib/matplotlib/tests/test_usetex.py
-+++ b/lib/matplotlib/tests/test_usetex.py
-@@ -14,6 +14,7 @@ import matplotlib.pyplot as plt
- pytestmark = needs_usetex
-
-
-+@pytest.mark.skip(reason="TODO: broken")
- @image_comparison(
- baseline_images=['test_usetex'],
- extensions=['pdf', 'png'],
-@@ -64,7 +65,7 @@ def test_mathdefault():
- fig.canvas.draw()
-
-
--@image_comparison(['eqnarray.png'])
-+@image_comparison(['eqnarray.png'], tol=23)
- def test_multiline_eqnarray():
- text = (
- r'\begin{eqnarray*}'
---
-2.39.2
-
diff --git a/dev-python/matplotlib/files/matplotlib-3.7.2-macOS_no-Cocoa.patch b/dev-python/matplotlib/files/matplotlib-3.7.2-macOS_no-Cocoa.patch
deleted file mode 100644
index 3f29134be621..000000000000
--- a/dev-python/matplotlib/files/matplotlib-3.7.2-macOS_no-Cocoa.patch
+++ /dev/null
@@ -1,21 +0,0 @@
-Do not automatically build against Cocoa on macOS.
-
-At Prefix/macOS, we do not support the propietary Cocoa SDK. GUI
-applications use X11.
-
-The patch is specific to our need and not forwarded upstream.
-
-Signed-off-by: Benda Xu <heroxbd@gentoo.org>
-
-Index: matplotlib-3.7.2/setup.py
-===================================================================
---- matplotlib-3.7.2.orig/setup.py
-+++ matplotlib-3.7.2/setup.py
-@@ -49,7 +49,6 @@ mpl_packages = [
- setupext.FreeType(),
- setupext.Qhull(),
- setupext.Tests(),
-- setupext.BackendMacOSX(),
- ]
-
-
diff --git a/dev-python/matplotlib/files/matplotlib-3.7.2-pyparsing-3.1.patch b/dev-python/matplotlib/files/matplotlib-3.7.2-pyparsing-3.1.patch
deleted file mode 100644
index 44082b5c0227..000000000000
--- a/dev-python/matplotlib/files/matplotlib-3.7.2-pyparsing-3.1.patch
+++ /dev/null
@@ -1,274 +0,0 @@
-https://bugs.gentoo.org/911127
-https://github.com/matplotlib/matplotlib/issues/26152
-https://github.com/matplotlib/matplotlib/pull/26432
-
-From c5183789d7d0cd151c201eeb2ce4fc786b6e43c2 Mon Sep 17 00:00:00 2001
-From: Jody Klymak <jklymak@gmail.com>
-Date: Tue, 1 Aug 2023 13:41:44 -0700
-Subject: [PATCH 1/2] Backport PR #26431: MNT: Unpin pyparsing, xfail error
- message tests for pyparsing 3.1.0
-
---- a/environment.yml
-+++ b/environment.yml
-@@ -19,7 +19,7 @@ dependencies:
- - pillow>=6.2
- - pybind11>=2.6.0
- - pygobject
-- - pyparsing!=3.1.0
-+ - pyparsing>=2.3.1
- - pyqt
- - python-dateutil>=2.1
- - setuptools
---- a/lib/matplotlib/tests/test_mathtext.py
-+++ b/lib/matplotlib/tests/test_mathtext.py
-@@ -6,13 +6,18 @@
- from xml.etree import ElementTree as ET
-
- import numpy as np
-+from packaging.version import parse as parse_version
-+import pyparsing
- import pytest
-
-+
- import matplotlib as mpl
- from matplotlib.testing.decorators import check_figures_equal, image_comparison
- import matplotlib.pyplot as plt
- from matplotlib import mathtext, _mathtext
-
-+pyparsing_version = parse_version(pyparsing.__version__)
-+
-
- # If test is removed, use None as placeholder
- math_tests = [
-@@ -270,6 +275,9 @@ def test_fontinfo():
- assert table['version'] == (1, 0)
-
-
-+# See gh-26152 for more context on this xfail
-+@pytest.mark.xfail(pyparsing_version.release == (3, 1, 0),
-+ reason="Error messages are incorrect for this version")
- @pytest.mark.parametrize(
- 'math, msg',
- [
---- a/lib/matplotlib/tests/test_text.py
-+++ b/lib/matplotlib/tests/test_text.py
-@@ -4,6 +4,8 @@
-
- import numpy as np
- from numpy.testing import assert_almost_equal
-+from packaging.version import parse as parse_version
-+import pyparsing
- import pytest
-
- import matplotlib as mpl
-@@ -16,6 +18,8 @@
- from matplotlib.testing._markers import needs_usetex
- from matplotlib.text import Text
-
-+pyparsing_version = parse_version(pyparsing.__version__)
-+
-
- @image_comparison(['font_styles'])
- def test_font_styles():
-@@ -809,6 +813,9 @@ def test_unsupported_script(recwarn):
- (r"Matplotlib currently does not support Bengali natively.",)])
-
-
-+# See gh-26152 for more information on this xfail
-+@pytest.mark.xfail(pyparsing_version.release == (3, 1, 0),
-+ reason="Error messages are incorrect with pyparsing 3.1.0")
- def test_parse_math():
- fig, ax = plt.subplots()
- ax.text(0, 0, r"$ \wrong{math} $", parse_math=False)
-@@ -819,6 +826,9 @@ def test_parse_math():
- fig.canvas.draw()
-
-
-+# See gh-26152 for more information on this xfail
-+@pytest.mark.xfail(pyparsing_version.release == (3, 1, 0),
-+ reason="Error messages are incorrect with pyparsing 3.1.0")
- def test_parse_math_rcparams():
- # Default is True
- fig, ax = plt.subplots()
---- a/setup.py
-+++ b/setup.py
-@@ -325,7 +325,7 @@ def make_release_tree(self, base_dir, files):
- "numpy>=1.20",
- "packaging>=20.0",
- "pillow>=6.2.0",
-- "pyparsing>=2.3.1,<3.1",
-+ "pyparsing>=2.3.1",
- "python-dateutil>=2.7",
- ] + (
- # Installing from a git checkout that is not producing a wheel.
-
-From 7f475c5088a826adffac2885d027d4f8b3cba218 Mon Sep 17 00:00:00 2001
-From: Kyle Sunden <git@ksunden.space>
-Date: Mon, 26 Jun 2023 22:17:27 -0500
-Subject: [PATCH 2/2] Manual backport of #26198
-
-Cherry picked and fixed up, ignored changes to the pyi file (which doesn't exist on this branch).
---- a/lib/matplotlib/_mathtext.py
-+++ b/lib/matplotlib/_mathtext.py
-@@ -1802,8 +1802,11 @@ def __init__(self):
- def set_names_and_parse_actions():
- for key, val in vars(p).items():
- if not key.startswith('_'):
-- # Set names on everything -- very useful for debugging
-- val.setName(key)
-+ # Set names on (almost) everything -- very useful for debugging
-+ # token, placeable, and auto_delim are forward references which
-+ # are left without names to ensure useful error messages
-+ if key not in ("token", "placeable", "auto_delim"):
-+ val.setName(key)
- # Set actions
- if hasattr(self, key):
- val.setParseAction(getattr(self, key))
-@@ -1840,63 +1843,39 @@ def csnames(group, names):
- p.unknown_symbol = Regex(r"\\[A-Za-z]*")("name")
-
- p.font = csnames("font", self._fontnames)
-- p.start_group = (
-- Optional(r"\math" + oneOf(self._fontnames)("font")) + "{")
-+ p.start_group = Optional(r"\math" + oneOf(self._fontnames)("font")) + "{"
- p.end_group = Literal("}")
-
- p.delim = oneOf(self._delims)
-
-- set_names_and_parse_actions() # for root definitions.
--
- # Mutually recursive definitions. (Minimizing the number of Forward
- # elements is important for speed.)
-- p.accent = Forward()
- p.auto_delim = Forward()
-- p.binom = Forward()
-- p.customspace = Forward()
-- p.frac = Forward()
-- p.dfrac = Forward()
-- p.function = Forward()
-- p.genfrac = Forward()
-- p.group = Forward()
-- p.operatorname = Forward()
-- p.overline = Forward()
-- p.overset = Forward()
- p.placeable = Forward()
- p.required_group = Forward()
-- p.simple = Forward()
- p.optional_group = Forward()
-- p.sqrt = Forward()
-- p.subsuper = Forward()
- p.token = Forward()
-- p.underset = Forward()
-
- set_names_and_parse_actions() # for mutually recursive definitions.
-
-- p.customspace <<= cmd(r"\hspace", "{" + p.float_literal("space") + "}")
-+ p.optional_group <<= "{" + ZeroOrMore(p.token)("group") + "}"
-+ p.required_group <<= "{" + OneOrMore(p.token)("group") + "}"
-
-- p.accent <<= (
-+ p.customspace = cmd(r"\hspace", "{" + p.float_literal("space") + "}")
-+
-+ p.accent = (
- csnames("accent", [*self._accent_map, *self._wide_accents])
- - p.placeable("sym"))
-
-- p.function <<= csnames("name", self._function_names)
-- p.operatorname <<= cmd(
-- r"\operatorname",
-- "{" + ZeroOrMore(p.simple | p.unknown_symbol)("name") + "}")
-+ p.function = csnames("name", self._function_names)
-
-- p.group <<= p.start_group + ZeroOrMore(p.token)("group") + p.end_group
-+ p.group = p.start_group + ZeroOrMore(p.token)("group") + p.end_group
-
-- p.optional_group <<= "{" + ZeroOrMore(p.token)("group") + "}"
-- p.required_group <<= "{" + OneOrMore(p.token)("group") + "}"
--
-- p.frac <<= cmd(
-- r"\frac", p.required_group("num") + p.required_group("den"))
-- p.dfrac <<= cmd(
-- r"\dfrac", p.required_group("num") + p.required_group("den"))
-- p.binom <<= cmd(
-- r"\binom", p.required_group("num") + p.required_group("den"))
-+ p.frac = cmd(r"\frac", p.required_group("num") + p.required_group("den"))
-+ p.dfrac = cmd(r"\dfrac", p.required_group("num") + p.required_group("den"))
-+ p.binom = cmd(r"\binom", p.required_group("num") + p.required_group("den"))
-
-- p.genfrac <<= cmd(
-+ p.genfrac = cmd(
- r"\genfrac",
- "{" + Optional(p.delim)("ldelim") + "}"
- + "{" + Optional(p.delim)("rdelim") + "}"
-@@ -1905,20 +1884,38 @@ def csnames(group, names):
- + p.required_group("num")
- + p.required_group("den"))
-
-- p.sqrt <<= cmd(
-+ p.sqrt = cmd(
- r"\sqrt{value}",
- Optional("[" + OneOrMore(NotAny("]") + p.token)("root") + "]")
- + p.required_group("value"))
-
-- p.overline <<= cmd(r"\overline", p.required_group("body"))
-+ p.overline = cmd(r"\overline", p.required_group("body"))
-
-- p.overset <<= cmd(
-+ p.overset = cmd(
- r"\overset",
- p.optional_group("annotation") + p.optional_group("body"))
-- p.underset <<= cmd(
-+ p.underset = cmd(
- r"\underset",
- p.optional_group("annotation") + p.optional_group("body"))
-
-+ p.subsuper = (
-+ (Optional(p.placeable)("nucleus")
-+ + OneOrMore(oneOf(["_", "^"]) - p.placeable)("subsuper")
-+ + Regex("'*")("apostrophes"))
-+ | Regex("'+")("apostrophes")
-+ | (p.placeable("nucleus") + Regex("'*")("apostrophes"))
-+ )
-+
-+ p.simple = p.space | p.customspace | p.font | p.subsuper
-+
-+ p.token <<= (
-+ p.simple
-+ | p.auto_delim
-+ | p.unknown_symbol # Must be last
-+ )
-+
-+ p.operatorname = cmd(r"\operatorname", "{" + ZeroOrMore(p.simple)("name") + "}")
-+
- p.placeable <<= (
- p.accent # Must be before symbol as all accents are symbols
- | p.symbol # Must be second to catch all named symbols and single
-@@ -1936,27 +1933,6 @@ def csnames(group, names):
- | p.overline
- )
-
-- p.simple <<= (
-- p.space
-- | p.customspace
-- | p.font
-- | p.subsuper
-- )
--
-- p.subsuper <<= (
-- (Optional(p.placeable)("nucleus")
-- + OneOrMore(oneOf(["_", "^"]) - p.placeable)("subsuper")
-- + Regex("'*")("apostrophes"))
-- | Regex("'+")("apostrophes")
-- | (p.placeable("nucleus") + Regex("'*")("apostrophes"))
-- )
--
-- p.token <<= (
-- p.simple
-- | p.auto_delim
-- | p.unknown_symbol # Must be last
-- )
--
- p.auto_delim <<= (
- r"\left" - (p.delim("left") | Error("Expected a delimiter"))
- + ZeroOrMore(p.simple | p.auto_delim)("mid")
-