Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

sage.misc.latex: Replace have_... functions by Features #32650

Closed
mkoeppe opened this issue Oct 7, 2021 · 62 comments
Closed

sage.misc.latex: Replace have_... functions by Features #32650

mkoeppe opened this issue Oct 7, 2021 · 62 comments

Comments

@mkoeppe
Copy link
Contributor

mkoeppe commented Oct 7, 2021

... or more generally, replacing all uses of sage.misc.os_tools.have_program by Executable

Depends on #32634

CC: @kwankyu

Component: refactoring

Author: Sébastien Labbé

Branch: 2ea4d9e

Reviewer: Matthias Koeppe

Issue created by migration from https://trac.sagemath.org/ticket/32650

@mkoeppe mkoeppe added this to the sage-9.5 milestone Oct 7, 2021
@mkoeppe

This comment has been minimized.

@seblabbe
Copy link
Contributor

seblabbe commented Nov 2, 2021

Commit: f3291d8

@seblabbe
Copy link
Contributor

seblabbe commented Nov 2, 2021

Author: Sébastien Labbé

@seblabbe
Copy link
Contributor

seblabbe commented Nov 2, 2021

comment:2

Here is some work towards that goal removing all uses of have_program in misc/latex.py.


New commits:

8068ba532650: Creating feature dvipng
a96e94d32650: Creating feature pdf2svg
870d46132650: Creating features latex, xelatex, pdflatex, lualatex
385569e32650: adding latex, xelatex, pdflatex, lualatex, pdf2svg, dvipng to doctest/external.py
f3291d832650: using features instead of have_program in misc/latex.py

@seblabbe
Copy link
Contributor

seblabbe commented Nov 2, 2021

Branch: u/slabbe/32650

@seblabbe
Copy link
Contributor

seblabbe commented Nov 2, 2021

comment:3

Remainings usage of have_program are:

$ git grep have_program
interfaces/chomp.py:        from sage.misc.sage_ostools import have_program
interfaces/chomp.py:        _have_chomp[program] = have_program(program)
interfaces/phc.py:            from sage.misc.sage_ostools import have_program
interfaces/phc.py:            if not have_program('phc'):
misc/dist.py:    from sage.misc.sage_ostools import have_program
misc/dist.py:        cmd_inside_sage = have_program(cmd, path=SAGE_BIN)
misc/dist.py:        cmd_outside_sage = have_program(cmd, path=PATH)
misc/sage_ostools.pyx:def have_program(program, path=None):
misc/sage_ostools.pyx:        sage: from sage.misc.sage_ostools import have_program
misc/sage_ostools.pyx:        sage: have_program('ls')
misc/sage_ostools.pyx:        sage: have_program('there_is_not_a_program_with_this_name')
misc/sage_ostools.pyx:        sage: have_program('sage', os.path.join(SAGE_VENV, 'bin'))
misc/sage_ostools.pyx:        sage: have_program('sage', '/there_is_not_a_path_with_this_name')
misc/sage_ostools.pyx:        sage: have_program('there_is_not_a_program_with_this_name', os.path.join(SAGE_VENV, 'bin'))
misc/viewer.py:    from sage.misc.sage_ostools import have_program
misc/viewer.py:    elif have_program('xdg-open'):
misc/viewer.py:                if have_program(cmd):
misc/viewer.py:                if have_program(cmd):
misc/viewer.py:                if have_program(cmd):
plot/animate.py:        from sage.misc.sage_ostools import have_program
plot/animate.py:        have_convert = have_program('convert')
plot/animate.py:        from sage.misc.sage_ostools import have_program
plot/animate.py:        return have_program('ffmpeg')
plot/graphics.py:                from sage.misc.sage_ostools import have_program
plot/graphics.py:                                         if have_program(i)]
plot/multigraphics.py:                from sage.misc.sage_ostools import have_program
plot/multigraphics.py:                                         if have_program(i)]

@sagetrac-git
Copy link
Mannequin

sagetrac-git mannequin commented Nov 2, 2021

Branch pushed to git repo; I updated commit sha1. New commits:

a5aebb932650: using features in plot/animate.py (currently with .require(need_msg) which is not yet supported)

@sagetrac-git
Copy link
Mannequin

sagetrac-git mannequin commented Nov 2, 2021

Changed commit from f3291d8 to a5aebb9

@sagetrac-git
Copy link
Mannequin

sagetrac-git mannequin commented Nov 2, 2021

Branch pushed to git repo; I updated commit sha1. New commits:

2e9a6b132650: using features in plot/graphics.py and plot/multigraphics.py

@sagetrac-git
Copy link
Mannequin

sagetrac-git mannequin commented Nov 2, 2021

Changed commit from a5aebb9 to 2e9a6b1

@seblabbe
Copy link
Contributor

seblabbe commented Nov 2, 2021

comment:6

I suggest this ticket should handle only the removal of have_program in misc.latex.py and sage.plot.

TODO: Answer this question: do we want .require(needed_for_msg) to provide an additional message explaining why the feature is needed for?

@sagetrac-git
Copy link
Mannequin

sagetrac-git mannequin commented Nov 2, 2021

Branch pushed to git repo; I updated commit sha1. This was a forced push. New commits:

ddd228732650: using features in plot/animate.py (currently with .require(need_msg) which is not yet supported)
d438c4532650: using features in plot/graphics.py and plot/multigraphics.py

@sagetrac-git
Copy link
Mannequin

sagetrac-git mannequin commented Nov 2, 2021

Changed commit from 2e9a6b1 to d438c45

@sagetrac-git
Copy link
Mannequin

sagetrac-git mannequin commented Nov 2, 2021

Branch pushed to git repo; I updated commit sha1. This was a forced push. New commits:

d45599332650: using features in plot/animate.py
cf0209432650: using features in plot/graphics.py and plot/multigraphics.py

@sagetrac-git
Copy link
Mannequin

sagetrac-git mannequin commented Nov 2, 2021

Changed commit from d438c45 to cf02094

@seblabbe
Copy link
Contributor

seblabbe commented Nov 2, 2021

comment:9

Replying to @seblabbe:

TODO: Answer this question: do we want .require(needed_for_msg) to provide an additional message explaining why the feature is needed for?

I decided to get rid of the .require(needed_for_msg). I did a forced push to clean the commit about plot/animate.py file.

@seblabbe
Copy link
Contributor

seblabbe commented Nov 2, 2021

comment:10

On my side, the command

$ sage -tp --optional=sage,optional,external --long src/sage/features src/sage/plot src/sage/doctest

currently gives:

Git branch: 32650
Using --optional=4ti2,bliss,cbc,ccache,cryptominisat,database_symbolic_data,debian,dot2tex,e_antic,external,fricas,glucose,latte_int,libnauty,lidia,normaliz,notedown,pandoc_attributes,pip,pycosat,pynormaliz,rst2ipynb,rubiks,sage,sage.geometry.polyhedron,sage.rings.real_double,sage_numerical_backends_coin,sage_spkg,sage_sws2rst
External software to be detected: 4ti2,cplex,dvipng,ffmpeg,graphviz,gurobi,imagemagick,internet,latex,lualatex,macaulay2,magma,maple,mathematica,matlab,octave,pandoc,pdf2svg,pdflatex,rubiks,scilab,xelatex
Sorting sources by runtime so that slower doctests are run first....
Doctesting 95 files using 8 threads.
[...]
----------------------------------------------------------------------
All tests passed!
----------------------------------------------------------------------
Total time for all tests: 455.6 seconds
    cpu time: 680.6 seconds
    cumulative wall time: 2815.7 seconds
External software detected for doctesting: dvipng,ffmpeg,graphviz,imagemagick,internet,latex,lualatex,octave,pandoc,pdf2svg,pdflatex,xelatex

@sagetrac-git
Copy link
Mannequin

sagetrac-git mannequin commented Nov 2, 2021

Branch pushed to git repo; I updated commit sha1. New commits:

28f1f4a32650: deprecating have_* functions in misc/latex.py in favor of features

@sagetrac-git
Copy link
Mannequin

sagetrac-git mannequin commented Nov 2, 2021

Changed commit from cf02094 to 28f1f4a

@seblabbe
Copy link
Contributor

seblabbe commented Nov 2, 2021

comment:12

Needs review!

@sagetrac-git
Copy link
Mannequin

sagetrac-git mannequin commented Nov 4, 2021

Changed commit from 28f1f4a to 5d9414d

@sagetrac-git
Copy link
Mannequin

sagetrac-git mannequin commented Nov 4, 2021

Branch pushed to git repo; I updated commit sha1. New commits:

5d9414d32650: .. note -> .. NOTE

@seblabbe
Copy link
Contributor

seblabbe commented Nov 4, 2021

comment:14

I added a commit to fix a pyflakes warning.

@seblabbe
Copy link
Contributor

seblabbe commented Nov 4, 2021

comment:15

@mkoeppe: I have a question for you with respect to a choice I made I am not sure of. Within the class class latex(Executable), I addded the method is_functional where I reused the code which was in the previous have_latex in sage.misc.latex.py. This allows to have a behavior which matches the previous behavior when have_latex was called. But doing so, there are now imports from sage.misc.latex import run_latex, _latex_file_ within the file sage/features/latex.py. Is this a file dependency we want to avoid with respect to modularization?

@mkoeppe
Copy link
Contributor Author

mkoeppe commented Nov 4, 2021

comment:16

Great question. In this code:

+    def is_functional(self):
...
+        from sage.misc.latex import _run_latex_, _latex_file_

it would probably be good to use try...except around the import and return a False test result if sage.misc.latex is not available.

@mkoeppe
Copy link
Contributor Author

mkoeppe commented Nov 4, 2021

comment:33

While at it, also dummy script packages for ffmpeg and imagemagick could be added (see #30930)

@seblabbe
Copy link
Contributor

seblabbe commented Nov 4, 2021

comment:34

ok, I can do this, but next week. Going to bed now!

@mkoeppe
Copy link
Contributor Author

mkoeppe commented Nov 7, 2021

Reviewer: Matthias Koeppe

@mkoeppe
Copy link
Contributor Author

mkoeppe commented Nov 7, 2021

comment:36

LGTM. One green patchbot, one patchbot that is not feeling well.

@vbraun
Copy link
Member

vbraun commented Nov 12, 2021

Changed branch from u/slabbe/32650 to 2ea4d9e

@slel
Copy link
Member

slel commented Nov 18, 2021

comment:38

There does not seem to be a Cygwin package for pdf2svg.

At least I could not find one by searching Cygwin packages via

and the command apt-cyg install pdf2svg fails.

@slel
Copy link
Member

slel commented Nov 18, 2021

Changed commit from 2ea4d9e to none

@seblabbe
Copy link
Contributor

comment:39

Do you mean that the file build/pkgs/pdf2svg/distros/cygwin.txt should be removed?

@slel
Copy link
Member

slel commented Nov 18, 2021

comment:40

Yes, otherwise configure ends with a recommendation
to run apt-cyg install pdf2svg.

@slel
Copy link
Member

slel commented Nov 18, 2021

comment:41

Or package pdf2svg for Cygwin... : )

@seblabbe
Copy link
Contributor

comment:42

I created #32931 to deal with this issue.

@slel
Copy link
Member

slel commented Nov 29, 2021

comment:43

A request on the Cygwin mailing list to package pdf2svg
was answered as follows:

The pdf2svg home page recommends instead pdftocairo
from the poppler package, which does the same and
is maintained as part of the package, rather than
being a standalone utility which integrates the two,
and is not as well maintained:

$ pdftocairo --help
[...]

That suggests pdftocairo --svg file.pdf
will transform file.pdf to file.svg.

It seems poppler is widely packaged:

@seblabbe
Copy link
Contributor

seblabbe commented Dec 1, 2021

comment:44

Then, should we replace pdf2svg feature by pdftocairo?

@seblabbe
Copy link
Contributor

seblabbe commented Dec 1, 2021

comment:45

Replying to @mkoeppe:

While at it, also dummy script packages for ffmpeg and imagemagick could be added (see #30930)

I just created #32956 for that. I will work on it tomorrow.

@seblabbe
Copy link
Contributor

seblabbe commented Dec 1, 2021

comment:46

Replying to @seblabbe:

Remainings usage of have_program are:

I created #32957 to deal with remaining usage of have_program

@seblabbe
Copy link
Contributor

seblabbe commented Dec 9, 2021

comment:47

Replying to @slel:

That suggests pdftocairo --svg file.pdf
will transform file.pdf to file.svg.

It seems poppler is widely packaged:

I created #33005 to add the feature pdftocairo.

@dimpase
Copy link
Member

dimpase commented Aug 25, 2023

why do we have has_xelatex and have_xelatex ?! (which seem to be doing the same thing, no?)

vbraun pushed a commit to vbraun/sage that referenced this issue Dec 22, 2023
    
<!-- ^^^^^
Please provide a concise, informative and self-explanatory title.
Don't put issue numbers in there, do this in the PR body below.
For example, instead of "Fixes sagemath#1234" use "Introduce new method to
calculate 1+1"
-->
<!-- Describe your changes here in detail -->

to support sagemath#36857.

There have been numerous problems due to limited support of unicode in
pdflatex. I see no reason why we should not switch to modern tex engine
lualatex, as suggested in

https://www.sphinx-doc.org/en/master/usage/configuration.html#confval-
latex_engine

We set lualatex as the default engine for
- building the sage documentation, in `sage_docbuild/`
- rendering pdf images, in `src/sage/misc/latex.py`

In  `src/sage/misc/latex.py`, the default engine is determined by
availability of the engines  with the order of preference: lualatex,
xelatex, pdflatex.

Along the way, we
- remove latex-related code deprecated in sagemath#32650.
- make lots of cosmetic edits in `src/sage/misc/latex.py`
- add support "lualatex" as an alternative to "[pdf|xe]latex" in
`src/sage/misc/latex.py`

We add optional (dummy) packages `texlive_luatex`, `free_fonts`, `xindy`
as new dependencies of `sagemath_doc_pdf` in addition to `texlive`
optional package. It seems that depending on the version and the
platform, `texlive` may already include the new dependencies. If not,
you need to install the new dependencies (as `_recommended` by the dummy
package)

On Ubuntu, the requirement is fulfilled by
```
sudo apt install texlive texlive-luatex fonts-freefont-otf xindy
```

The built pdf doc is available here: https://deploy-livedoc--
sagemath.netlify.app

To test `view` via lualatex, for example,
```
latex.extra_preamble(r"\usepackage{fontspec}\setmainfont{Arial}\setmonof
ont{Arial}")
view('Εύρηκα')
```
you should build sage on your local platform with this PR. You may need
to install `texlive-full` before testing. It seems that `texlive` (2019)
is not enough even for the `view` via pdftex.

sage-devel thread seeking Unicode testers:
https://groups.google.com/g/sage-devel/c/tG2LK6Jvw0I


<!-- Why is this change required? What problem does it solve? -->
<!-- If this PR resolves an open issue, please link to it here. For
example "Fixes sagemath#12345". -->
<!-- If your change requires a documentation PR, please link it
appropriately. -->

### 📝 Checklist

<!-- Put an `x` in all the boxes that apply. -->
<!-- If your change requires a documentation PR, please link it
appropriately -->
<!-- If you're unsure about any of these, don't hesitate to ask. We're
here to help! -->
<!-- Feel free to remove irrelevant items. -->

- [x] The title is concise, informative, and self-explanatory.
- [x] The description explains in detail what this PR is about.
- [x] I have linked a relevant issue or discussion.
- [ ] I have created tests covering the changes.
- [ ] I have updated the documentation accordingly.

### ⌛ Dependencies

<!-- List all open PRs that this PR logically depends on
- sagemath#12345: short description why this is a dependency
- sagemath#34567: ...
-->

<!-- If you're unsure about any of these, don't hesitate to ask. We're
here to help! -->
    
URL: sagemath#36861
Reported by: Kwankyu Lee
Reviewer(s): Dima Pasechnik, Kwankyu Lee, Matthias Köppe
vbraun pushed a commit to vbraun/sage that referenced this issue Dec 23, 2023
    
<!-- ^^^^^
Please provide a concise, informative and self-explanatory title.
Don't put issue numbers in there, do this in the PR body below.
For example, instead of "Fixes sagemath#1234" use "Introduce new method to
calculate 1+1"
-->
<!-- Describe your changes here in detail -->

to support sagemath#36857.

There have been numerous problems due to limited support of unicode in
pdflatex. I see no reason why we should not switch to modern tex engine
lualatex, as suggested in

https://www.sphinx-doc.org/en/master/usage/configuration.html#confval-
latex_engine

We set lualatex as the default engine for
- building the sage documentation, in `sage_docbuild/`
- rendering pdf images, in `src/sage/misc/latex.py`

In  `src/sage/misc/latex.py`, the default engine is determined by
availability of the engines  with the order of preference: lualatex,
xelatex, pdflatex.

Along the way, we
- remove latex-related code deprecated in sagemath#32650.
- make lots of cosmetic edits in `src/sage/misc/latex.py`
- add support "lualatex" as an alternative to "[pdf|xe]latex" in
`src/sage/misc/latex.py`

We add optional (dummy) packages `texlive_luatex`, `free_fonts`, `xindy`
as new dependencies of `sagemath_doc_pdf` in addition to `texlive`
optional package. It seems that depending on the version and the
platform, `texlive` may already include the new dependencies. If not,
you need to install the new dependencies (as `_recommended` by the dummy
package)

On Ubuntu, the requirement is fulfilled by
```
sudo apt install texlive texlive-luatex fonts-freefont-otf xindy
```

The built pdf doc is available here: https://deploy-livedoc--
sagemath.netlify.app

To test `view` via lualatex, for example,
```
latex.extra_preamble(r"\usepackage{fontspec}\setmainfont{Arial}\setmonof
ont{Arial}")
view('Εύρηκα')
```
you should build sage on your local platform with this PR. You may need
to install `texlive-full` before testing. It seems that `texlive` (2019)
is not enough even for the `view` via pdftex.

sage-devel thread seeking Unicode testers:
https://groups.google.com/g/sage-devel/c/tG2LK6Jvw0I


<!-- Why is this change required? What problem does it solve? -->
<!-- If this PR resolves an open issue, please link to it here. For
example "Fixes sagemath#12345". -->
Resolves sagemath#18370
<!-- If your change requires a documentation PR, please link it
appropriately. -->

### 📝 Checklist

<!-- Put an `x` in all the boxes that apply. -->
<!-- If your change requires a documentation PR, please link it
appropriately -->
<!-- If you're unsure about any of these, don't hesitate to ask. We're
here to help! -->
<!-- Feel free to remove irrelevant items. -->

- [x] The title is concise, informative, and self-explanatory.
- [x] The description explains in detail what this PR is about.
- [x] I have linked a relevant issue or discussion.
- [ ] I have created tests covering the changes.
- [ ] I have updated the documentation accordingly.

### ⌛ Dependencies

<!-- List all open PRs that this PR logically depends on
- sagemath#12345: short description why this is a dependency
- sagemath#34567: ...
-->

<!-- If you're unsure about any of these, don't hesitate to ask. We're
here to help! -->
    
URL: sagemath#36861
Reported by: Kwankyu Lee
Reviewer(s): Dima Pasechnik, Kwankyu Lee, Matthias Köppe
vbraun pushed a commit to vbraun/sage that referenced this issue Dec 24, 2023
    
<!-- ^^^^^
Please provide a concise, informative and self-explanatory title.
Don't put issue numbers in there, do this in the PR body below.
For example, instead of "Fixes sagemath#1234" use "Introduce new method to
calculate 1+1"
-->
<!-- Describe your changes here in detail -->

to support sagemath#36857.

There have been numerous problems due to limited support of unicode in
pdflatex. I see no reason why we should not switch to modern tex engine
lualatex, as suggested in

https://www.sphinx-doc.org/en/master/usage/configuration.html#confval-
latex_engine

We set lualatex as the default engine for
- building the sage documentation, in `sage_docbuild/`
- rendering pdf images, in `src/sage/misc/latex.py`

In  `src/sage/misc/latex.py`, the default engine is determined by
availability of the engines  with the order of preference: lualatex,
xelatex, pdflatex.

Along the way, we
- remove latex-related code deprecated in sagemath#32650.
- make lots of cosmetic edits in `src/sage/misc/latex.py`
- add support "lualatex" as an alternative to "[pdf|xe]latex" in
`src/sage/misc/latex.py`

We add optional (dummy) packages `texlive_luatex`, `free_fonts`, `xindy`
as new dependencies of `sagemath_doc_pdf` in addition to `texlive`
optional package. It seems that depending on the version and the
platform, `texlive` may already include the new dependencies. If not,
you need to install the new dependencies (as `_recommended` by the dummy
package)

On Ubuntu, the requirement is fulfilled by
```
sudo apt install texlive texlive-luatex fonts-freefont-otf xindy
```

The built pdf doc is available here: https://deploy-livedoc--
sagemath.netlify.app

To test `view` via lualatex, for example,
```
latex.extra_preamble(r"\usepackage{fontspec}\setmainfont{Arial}\setmonof
ont{Arial}")
view('Εύρηκα')
```
you should build sage on your local platform with this PR. You may need
to install `texlive-full` before testing. It seems that `texlive` (2019)
is not enough even for the `view` via pdftex.

sage-devel thread seeking Unicode testers:
https://groups.google.com/g/sage-devel/c/tG2LK6Jvw0I


<!-- Why is this change required? What problem does it solve? -->
<!-- If this PR resolves an open issue, please link to it here. For
example "Fixes sagemath#12345". -->
Resolves sagemath#18370
<!-- If your change requires a documentation PR, please link it
appropriately. -->

### 📝 Checklist

<!-- Put an `x` in all the boxes that apply. -->
<!-- If your change requires a documentation PR, please link it
appropriately -->
<!-- If you're unsure about any of these, don't hesitate to ask. We're
here to help! -->
<!-- Feel free to remove irrelevant items. -->

- [x] The title is concise, informative, and self-explanatory.
- [x] The description explains in detail what this PR is about.
- [x] I have linked a relevant issue or discussion.
- [ ] I have created tests covering the changes.
- [ ] I have updated the documentation accordingly.

### ⌛ Dependencies

<!-- List all open PRs that this PR logically depends on
- sagemath#12345: short description why this is a dependency
- sagemath#34567: ...
-->

<!-- If you're unsure about any of these, don't hesitate to ask. We're
here to help! -->
    
URL: sagemath#36861
Reported by: Kwankyu Lee
Reviewer(s): Dima Pasechnik, Kwankyu Lee, Matthias Köppe
vbraun pushed a commit to vbraun/sage that referenced this issue Dec 26, 2023
    
<!-- ^^^^^
Please provide a concise, informative and self-explanatory title.
Don't put issue numbers in there, do this in the PR body below.
For example, instead of "Fixes sagemath#1234" use "Introduce new method to
calculate 1+1"
-->
<!-- Describe your changes here in detail -->

to support sagemath#36857.

There have been numerous problems due to limited support of unicode in
pdflatex. I see no reason why we should not switch to modern tex engine
lualatex, as suggested in

https://www.sphinx-doc.org/en/master/usage/configuration.html#confval-
latex_engine

We set lualatex as the default engine for
- building the sage documentation, in `sage_docbuild/`
- rendering pdf images, in `src/sage/misc/latex.py`

In  `src/sage/misc/latex.py`, the default engine is determined by
availability of the engines  with the order of preference: lualatex,
xelatex, pdflatex.

Along the way, we
- remove latex-related code deprecated in sagemath#32650.
- make lots of cosmetic edits in `src/sage/misc/latex.py`
- add support "lualatex" as an alternative to "[pdf|xe]latex" in
`src/sage/misc/latex.py`

We add optional (dummy) packages `texlive_luatex`, `free_fonts`, `xindy`
as new dependencies of `sagemath_doc_pdf` in addition to `texlive`
optional package. It seems that depending on the version and the
platform, `texlive` may already include the new dependencies. If not,
you need to install the new dependencies (as `_recommended` by the dummy
package)

On Ubuntu, the requirement is fulfilled by
```
sudo apt install texlive texlive-luatex fonts-freefont-otf xindy
```

The built pdf doc is available here: https://deploy-livedoc--
sagemath.netlify.app

To test `view` via lualatex, for example,
```
latex.extra_preamble(r"\usepackage{fontspec}\setmainfont{Arial}\setmonof
ont{Arial}")
view('Εύρηκα')
```
you should build sage on your local platform with this PR. You may need
to install `texlive-full` before testing. It seems that `texlive` (2019)
is not enough even for the `view` via pdftex.

sage-devel thread seeking Unicode testers:
https://groups.google.com/g/sage-devel/c/tG2LK6Jvw0I


<!-- Why is this change required? What problem does it solve? -->
<!-- If this PR resolves an open issue, please link to it here. For
example "Fixes sagemath#12345". -->
Resolves sagemath#18370
<!-- If your change requires a documentation PR, please link it
appropriately. -->

### 📝 Checklist

<!-- Put an `x` in all the boxes that apply. -->
<!-- If your change requires a documentation PR, please link it
appropriately -->
<!-- If you're unsure about any of these, don't hesitate to ask. We're
here to help! -->
<!-- Feel free to remove irrelevant items. -->

- [x] The title is concise, informative, and self-explanatory.
- [x] The description explains in detail what this PR is about.
- [x] I have linked a relevant issue or discussion.
- [ ] I have created tests covering the changes.
- [ ] I have updated the documentation accordingly.

### ⌛ Dependencies

<!-- List all open PRs that this PR logically depends on
- sagemath#12345: short description why this is a dependency
- sagemath#34567: ...
-->

<!-- If you're unsure about any of these, don't hesitate to ask. We're
here to help! -->
    
URL: sagemath#36861
Reported by: Kwankyu Lee
Reviewer(s): Dima Pasechnik, Kwankyu Lee, Matthias Köppe
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

No branches or pull requests

5 participants