From 461dc842e9ae5d9a7ba6c5e2ad3ead2be91bbbd7 Mon Sep 17 00:00:00 2001 From: Alexandre Duret-Lutz Date: Wed, 1 Jan 2025 21:46:35 +0100 Subject: [PATCH] work around a change in python 3.13 * python/spot/__init__.py: Unindent the docstring for formula.__format__. Because Python 3.13 strips the indentation but previous version didn't, the following test case failed with Python 3.13. * tests/python/formulas.ipynb: Adjust to unindented docstring. --- python/spot/__init__.py | 67 ++++++++++++++++++++----------------- tests/python/formulas.ipynb | 66 ++++++++++++++++++------------------ 2 files changed, 69 insertions(+), 64 deletions(-) diff --git a/python/spot/__init__.py b/python/spot/__init__.py index 6f571f932..126d7e625 100644 --- a/python/spot/__init__.py +++ b/python/spot/__init__.py @@ -360,45 +360,50 @@ class formula: raise ValueError("unknown string format: " + format) def __format__(self, spec): + # Some test case print this docstring, and different + # Python version will handled indentation differently. + # (Python versions before 3.13 don't strip indentation.) + # So we cannot indent this until Python 3.13 is thee + # smallest version we support. """Format the formula according to `spec`. - Parameters - ---------- - spec : str, optional - a list of letters that specify how the formula - should be formatted. +Parameters +---------- +spec : str, optional + a list of letters that specify how the formula + should be formatted. - Supported specifiers - -------------------- +Supported specifiers +-------------------- - - 'f': use Spot's syntax (default) - - '8': use Spot's syntax in UTF-8 mode - - 's': use Spin's syntax - - 'l': use LBT's syntax - - 'w': use Wring's syntax - - 'x': use LaTeX output - - 'X': use self-contained LaTeX output - - 'j': use self-contained LaTeX output, adjusted for MathJax +- 'f': use Spot's syntax (default) +- '8': use Spot's syntax in UTF-8 mode +- 's': use Spin's syntax +- 'l': use LBT's syntax +- 'w': use Wring's syntax +- 'x': use LaTeX output +- 'X': use self-contained LaTeX output +- 'j': use self-contained LaTeX output, adjusted for MathJax - Add some of those letters for additional options: +Add some of those letters for additional options: - - 'p': use full parentheses - - 'c': escape the formula for CSV output (this will - enclose the formula in double quotes, and escape - any included double quotes) - - 'h': escape the formula for HTML output - - 'd': escape double quotes and backslash, - for use in C-strings (the outermost double - quotes are *not* added) - - 'q': quote and escape for shell output, using single - quotes or double quotes depending on the contents. - - '[...]': rewrite away all the operators specified in brackets, - using spot.unabbreviate(). +- 'p': use full parentheses +- 'c': escape the formula for CSV output (this will + enclose the formula in double quotes, and escape + any included double quotes) +- 'h': escape the formula for HTML output +- 'd': escape double quotes and backslash, + for use in C-strings (the outermost double + quotes are *not* added) +- 'q': quote and escape for shell output, using single + quotes or double quotes depending on the contents. +- '[...]': rewrite away all the operators specified in brackets, + using spot.unabbreviate(). - - ':spec': pass the remaining specification to the - formating function for strings. +- ':spec': pass the remaining specification to the + formating function for strings. - """ +""" syntax = 'f' parent = False diff --git a/tests/python/formulas.ipynb b/tests/python/formulas.ipynb index 2882ac7ac..c7e894b09 100644 --- a/tests/python/formulas.ipynb +++ b/tests/python/formulas.ipynb @@ -246,43 +246,43 @@ "text": [ "Format the formula according to `spec`.\n", "\n", - " Parameters\n", - " ----------\n", - " spec : str, optional\n", - " a list of letters that specify how the formula\n", - " should be formatted.\n", + "Parameters\n", + "----------\n", + "spec : str, optional\n", + " a list of letters that specify how the formula\n", + " should be formatted.\n", "\n", - " Supported specifiers\n", - " --------------------\n", + "Supported specifiers\n", + "--------------------\n", "\n", - " - 'f': use Spot's syntax (default)\n", - " - '8': use Spot's syntax in UTF-8 mode\n", - " - 's': use Spin's syntax\n", - " - 'l': use LBT's syntax\n", - " - 'w': use Wring's syntax\n", - " - 'x': use LaTeX output\n", - " - 'X': use self-contained LaTeX output\n", - " - 'j': use self-contained LaTeX output, adjusted for MathJax\n", + "- 'f': use Spot's syntax (default)\n", + "- '8': use Spot's syntax in UTF-8 mode\n", + "- 's': use Spin's syntax\n", + "- 'l': use LBT's syntax\n", + "- 'w': use Wring's syntax\n", + "- 'x': use LaTeX output\n", + "- 'X': use self-contained LaTeX output\n", + "- 'j': use self-contained LaTeX output, adjusted for MathJax\n", "\n", - " Add some of those letters for additional options:\n", + "Add some of those letters for additional options:\n", "\n", - " - 'p': use full parentheses\n", - " - 'c': escape the formula for CSV output (this will\n", - " enclose the formula in double quotes, and escape\n", - " any included double quotes)\n", - " - 'h': escape the formula for HTML output\n", - " - 'd': escape double quotes and backslash,\n", - " for use in C-strings (the outermost double\n", - " quotes are *not* added)\n", - " - 'q': quote and escape for shell output, using single\n", - " quotes or double quotes depending on the contents.\n", - " - '[...]': rewrite away all the operators specified in brackets,\n", - " using spot.unabbreviate().\n", + "- 'p': use full parentheses\n", + "- 'c': escape the formula for CSV output (this will\n", + " enclose the formula in double quotes, and escape\n", + " any included double quotes)\n", + "- 'h': escape the formula for HTML output\n", + "- 'd': escape double quotes and backslash,\n", + " for use in C-strings (the outermost double\n", + " quotes are *not* added)\n", + "- 'q': quote and escape for shell output, using single\n", + " quotes or double quotes depending on the contents.\n", + "- '[...]': rewrite away all the operators specified in brackets,\n", + " using spot.unabbreviate().\n", "\n", - " - ':spec': pass the remaining specification to the\n", - " formating function for strings.\n", + "- ':spec': pass the remaining specification to the\n", + " formating function for strings.\n", "\n", - " \n" + "\n" ] } ], @@ -505,7 +505,7 @@ "\n", "\n", - "\n", "\n", "