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.
This commit is contained in:
Alexandre Duret-Lutz 2025-01-01 21:46:35 +01:00
parent c67332f825
commit e4a49cda02
2 changed files with 69 additions and 64 deletions

View file

@ -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

View file

@ -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 @@
"<?xml version=\"1.0\" encoding=\"UTF-8\" standalone=\"no\"?>\n",
"<!DOCTYPE svg PUBLIC \"-//W3C//DTD SVG 1.1//EN\"\n",
" \"http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd\">\n",
"<!-- Generated by graphviz version 2.43.0 (0)\n",
"<!-- Generated by graphviz version 2.42.4 (0)\n",
" -->\n",
"<!-- Title: G Pages: 1 -->\n",
"<svg width=\"343pt\" height=\"583pt\"\n",
@ -1056,7 +1056,7 @@
"name": "python",
"nbconvert_exporter": "python",
"pygments_lexer": "ipython3",
"version": "3.11.8"
"version": "3.12.7"
}
},
"nbformat": 4,