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

Wrong Sphinx version detection for jsmath #21499

Closed
4 of 10 tasks
Mte90 opened this issue Nov 7, 2023 · 6 comments · Fixed by #21518
Closed
4 of 10 tasks

Wrong Sphinx version detection for jsmath #21499

Mte90 opened this issue Nov 7, 2023 · 6 comments · Fixed by #21518

Comments

@Mte90
Copy link
Contributor

Mte90 commented Nov 7, 2023

Issue Report Checklist

  • Searched the issues page for similar reports
  • Read the relevant sections of the Spyder Troubleshooting Guide and followed its advice
  • Reproduced the issue after updating with conda update spyder (or pip, if not using Anaconda)
  • Could not reproduce inside jupyter qtconsole (if console-related)
  • Tried basic troubleshooting (if a bug/error)
    • Restarted Spyder
    • Reset preferences with spyder --reset
    • Reinstalled the latest version of Anaconda
    • Tried the other applicable steps from the Troubleshooting Guide
  • Completed the Problem Description, Steps to Reproduce and Version sections below

Problem Description

I am getting an error everytime for the help panel:
image

Looking at the code the jsmath package is not updated since 2019 and I have sphinx 7.2.6.
Reading the code on this check that use jsmath should be for 1.1 < releases.

if sphinx_version < "1.1" or not math:

Change the line 40 in that file to:

if sphinx_version < "1.1" and not math:

Fix the issue (in my case the math variable is false).

What is the expected output? What do you see instead?

Versions

  • Spyder version: 5.4.5
  • Python version: 3.11

Dependencies

# Mandatory:
atomicwrites >=1.2.0                                                        :  1.4.1 (OK)
chardet >=2.0.0                                                             :  5.2.0 (OK)
cloudpickle >=0.5.0                                                         :  2.2.1 (OK)
cookiecutter >=1.6.0                                                        :  2.1.1 (OK)
diff_match_patch >=20181111                                                 :  20200713 (OK)
intervaltree >=3.0.2                                                        :  3.1.0 (OK)
IPython >=7.31.1,<9.0.0,!=8.8.0,!=8.9.0,!=8.10.0,!=8.11.0,!=8.12.0,!=8.12.1 :  8.14.0 (OK)
jedi >=0.17.2,<0.19.0                                                       :  0.18.2 (OK)
jellyfish >=0.7                                                             :  0.9.0 (OK)
jsonschema >=3.2.0                                                          :  4.10.3 (OK)
keyring >=17.0.0                                                            :  24.2.0 (OK)
nbconvert >=4.0                                                             :  6.5.3 (OK)
numpydoc >=0.6.0                                                            :  1.5.0 (OK)
parso >=0.7.0,<0.9.0                                                        :  0.8.3 (OK)
pexpect >=4.4.0                                                             :  4.8.0 (OK)
pickleshare >=0.4                                                           :  0.7.5 (OK)
psutil >=5.3                                                                :  5.9.5 (OK)
pygments >=2.0                                                              :  2.15.1 (OK)
pylint >=2.5.0,<3.0                                                         :  2.17.4 (OK)
pylint_venv >=3.0.2                                                         :  3.0.3 (OK)
pyls_spyder >=0.4.0                                                         :  0.4.0 (OK)
pylsp >=1.7.4,<1.8.0                                                        :  1.7.4 (OK)
pylsp_black >=1.2.0,<3.0.0                                                  :  1.3.0 (OK)
qdarkstyle >=3.0.2,<3.2.0                                                   :  3.0.3 (OK)
qstylizer >=0.2.2                                                           :  0.2.2 (OK)
qtawesome >=1.2.1                                                           :  1.2.2 (OK)
qtconsole >=5.4.2,<5.5.0                                                    :  5.4.3 (OK)
qtpy >=2.1.0                                                                :  2.3.1 (OK)
rtree >=0.9.7                                                               :  1.0.1 (OK)
setuptools >=49.6.0                                                         :  68.1.2 (OK)
sphinx >=0.6.6                                                              :  7.2.6 (OK)
spyder_kernels >=2.4.4,<2.5.0                                               :  2.4.4 (OK)
textdistance >=4.2.0                                                        :  4.5.0 (OK)
three_merge >=0.1.1                                                         :  0.1.1 (OK)
watchdog >=0.10.3                                                           :  3.0.0 (OK)
xdg >=0.26                                                                  :  0.28 (OK)
zmq >=22.1.0                                                                :  24.0.1 (OK)

# Optional:
cython >=0.21                                                               :  None (NOK)
matplotlib >=3.0.0                                                          :  3.6.3 (OK)
numpy >=1.7                                                                 :  1.24.2 (OK)
pandas >=1.1.1                                                              :  1.5.3 (OK)
scipy >=0.17.0                                                              :  None (NOK)
sympy >=0.7.3                                                               :  1.12 (OK)
@dalthviz dalthviz changed the title Wrong Sphix version detection for jsmath Wrong Sphinx version detection for jsmath Nov 10, 2023
@dalthviz
Copy link
Member

Hi @Mte90 thank you for the feedback! I think I was able to reproduce this 👍 So, I think the math value is the state of the Help Render mathematical equations option:

image

Disabling it triggers the error indeed. From my understanding seems like your suggested fix make sense but, just in case, what do you think @ccordoba12 ?

@ccordoba12
Copy link
Member

ccordoba12 commented Nov 13, 2023

I think the problem is the jsmath Sphinx extension is no longer available, which causes this bug when the math option is disabled.

I think a proper solution would be to rewrite the if block referenced by @Mte90 to be:

if math:
    if sphinx_version < "1.1":
        extensions = ['sphinx.ext.jsmath']
    else:
        extensions = ['sphinx.ext.mathjax']

That way we'd really avoid loading the Sphinx extension to render math if the user requests not to.

@dalthviz or @Mte90, could you check if that works for you when enabling/disabling the math option? Thanks!

@dalthviz
Copy link
Member

dalthviz commented Nov 13, 2023

Checked and that works 👍 There is a missing thing though which is to initialize extensions to prevent errors when trying to append the 'sphinx.ext.autosummary' extension. So the change taking into account that initialization should look something like:

extensions = []

if math:
    if sphinx_version < "1.1":
        extensions = ['sphinx.ext.jsmath']
    else:
        extensions = ['sphinx.ext.mathjax']

Checked manually inspecting numpy.sin:

  • With the math option enabled:

image

  • With the math option disabled:

image

@ccordoba12
Copy link
Member

Thanks @dalthviz for checking and for your additional comment on my initial code fix.

@Mte90, could you incorporate our suggestions to your pull request? Thanks!

@Mte90
Copy link
Contributor Author

Mte90 commented Nov 14, 2023

PR updated :-)

@ccordoba12
Copy link
Member

Thanks @Mte90!

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

Successfully merging a pull request may close this issue.

3 participants