passagemath-repl 10.5.43__py3-none-any.whl → 10.6.1rc1__py3-none-any.whl

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (54) hide show
  1. passagemath_repl-10.6.1rc1.data/data/share/jupyter/kernels/sagemath/kernel.json +1 -0
  2. {passagemath_repl-10.5.43.dist-info → passagemath_repl-10.6.1rc1.dist-info}/METADATA +5 -6
  3. {passagemath_repl-10.5.43.dist-info → passagemath_repl-10.6.1rc1.dist-info}/RECORD +53 -52
  4. sage/all__sagemath_repl.py +0 -6
  5. sage/doctest/__main__.py +1 -1
  6. sage/doctest/control.py +30 -28
  7. sage/doctest/external.py +31 -27
  8. sage/doctest/fixtures.py +37 -11
  9. sage/doctest/forker.py +8 -5
  10. sage/doctest/parsing.py +42 -27
  11. sage/doctest/sources.py +10 -0
  12. sage/doctest/test.py +18 -5
  13. sage/doctest/tests/fail_and_die.rst +4 -1
  14. sage/doctest/util.py +7 -4
  15. sage/misc/banner.py +12 -4
  16. sage/misc/cython.py +8 -5
  17. sage/misc/dev_tools.py +10 -84
  18. sage/misc/gperftools.py +13 -14
  19. sage/repl/configuration.py +4 -4
  20. sage/repl/ipython_extension.py +12 -8
  21. sage/repl/ipython_kernel/install.py +1 -1
  22. sage/repl/ipython_kernel/widgets.py +1 -1
  23. sage/repl/ipython_tests.py +19 -2
  24. sage/repl/rich_output/backend_ipython.py +0 -1
  25. sage/repl/rich_output/display_manager.py +1 -1
  26. sage/tests/all.py +1 -0
  27. sage/tests/benchmark.py +6 -2
  28. sage/tests/books/computational-mathematics-with-sagemath/domaines_doctest.py +1 -1
  29. sage/tests/books/computational-mathematics-with-sagemath/premierspas_doctest.py +1 -1
  30. sage/tests/cmdline.py +6 -4
  31. sage/tests/startup.py +1 -1
  32. passagemath_repl-10.5.43.data/data/share/jupyter/kernels/sagemath/kernel.json +0 -1
  33. {passagemath_repl-10.5.43.data → passagemath_repl-10.6.1rc1.data}/data/share/jupyter/kernels/sagemath/logo-64x64.png +0 -0
  34. {passagemath_repl-10.5.43.data → passagemath_repl-10.6.1rc1.data}/data/share/jupyter/kernels/sagemath/logo.svg +0 -0
  35. {passagemath_repl-10.5.43.data → passagemath_repl-10.6.1rc1.data}/scripts/sage-cachegrind +0 -0
  36. {passagemath_repl-10.5.43.data → passagemath_repl-10.6.1rc1.data}/scripts/sage-callgrind +0 -0
  37. {passagemath_repl-10.5.43.data → passagemath_repl-10.6.1rc1.data}/scripts/sage-cleaner +0 -0
  38. {passagemath_repl-10.5.43.data → passagemath_repl-10.6.1rc1.data}/scripts/sage-coverage +0 -0
  39. {passagemath_repl-10.5.43.data → passagemath_repl-10.6.1rc1.data}/scripts/sage-eval +0 -0
  40. {passagemath_repl-10.5.43.data → passagemath_repl-10.6.1rc1.data}/scripts/sage-fixdoctests +0 -0
  41. {passagemath_repl-10.5.43.data → passagemath_repl-10.6.1rc1.data}/scripts/sage-inline-fortran +0 -0
  42. {passagemath_repl-10.5.43.data → passagemath_repl-10.6.1rc1.data}/scripts/sage-ipynb2rst +0 -0
  43. {passagemath_repl-10.5.43.data → passagemath_repl-10.6.1rc1.data}/scripts/sage-ipython +0 -0
  44. {passagemath_repl-10.5.43.data → passagemath_repl-10.6.1rc1.data}/scripts/sage-massif +0 -0
  45. {passagemath_repl-10.5.43.data → passagemath_repl-10.6.1rc1.data}/scripts/sage-notebook +0 -0
  46. {passagemath_repl-10.5.43.data → passagemath_repl-10.6.1rc1.data}/scripts/sage-omega +0 -0
  47. {passagemath_repl-10.5.43.data → passagemath_repl-10.6.1rc1.data}/scripts/sage-preparse +0 -0
  48. {passagemath_repl-10.5.43.data → passagemath_repl-10.6.1rc1.data}/scripts/sage-run +0 -0
  49. {passagemath_repl-10.5.43.data → passagemath_repl-10.6.1rc1.data}/scripts/sage-run-cython +0 -0
  50. {passagemath_repl-10.5.43.data → passagemath_repl-10.6.1rc1.data}/scripts/sage-runtests +0 -0
  51. {passagemath_repl-10.5.43.data → passagemath_repl-10.6.1rc1.data}/scripts/sage-startuptime.py +0 -0
  52. {passagemath_repl-10.5.43.data → passagemath_repl-10.6.1rc1.data}/scripts/sage-valgrind +0 -0
  53. {passagemath_repl-10.5.43.dist-info → passagemath_repl-10.6.1rc1.dist-info}/WHEEL +0 -0
  54. {passagemath_repl-10.5.43.dist-info → passagemath_repl-10.6.1rc1.dist-info}/top_level.txt +0 -0
@@ -0,0 +1 @@
1
+ {"argv": ["python3", "-m", "sage.repl.ipython_kernel", "-f", "{connection_file}"], "display_name": "passagemath 10.6.1.rc1", "language": "sage"}
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: passagemath-repl
3
- Version: 10.5.43
3
+ Version: 10.6.1rc1
4
4
  Summary: passagemath: IPython kernel, Sage preparser, doctester
5
5
  Author-email: The Sage Developers <sage-support@googlegroups.com>
6
6
  Maintainer: Matthias Köppe, passagemath contributors
@@ -19,17 +19,16 @@ Classifier: Intended Audience :: Science/Research
19
19
  Classifier: Operating System :: POSIX
20
20
  Classifier: Operating System :: MacOS :: MacOS X
21
21
  Classifier: Programming Language :: Python :: 3 :: Only
22
- Classifier: Programming Language :: Python :: 3.9
23
22
  Classifier: Programming Language :: Python :: 3.10
24
23
  Classifier: Programming Language :: Python :: 3.11
25
24
  Classifier: Programming Language :: Python :: 3.12
26
25
  Classifier: Programming Language :: Python :: 3.13
27
26
  Classifier: Programming Language :: Python :: Implementation :: CPython
28
27
  Classifier: Topic :: Scientific/Engineering :: Mathematics
29
- Requires-Python: <3.14,>=3.9
28
+ Requires-Python: <3.14,>=3.10
30
29
  Description-Content-Type: text/x-rst
31
- Requires-Dist: passagemath-objects~=10.5.43.0
32
- Requires-Dist: passagemath-environment~=10.5.43.0
30
+ Requires-Dist: passagemath-objects==10.6.1rc1
31
+ Requires-Dist: passagemath-environment==10.6.1rc1
33
32
  Requires-Dist: ipykernel>=5.2.1
34
33
  Requires-Dist: ipython>=7.13.0
35
34
  Requires-Dist: ipywidgets>=7.5.1
@@ -79,7 +78,7 @@ passagemath attempts to support all major Linux distributions and recent version
79
78
  macOS. Use on Windows currently requires the use of Windows Subsystem for Linux or
80
79
  virtualization.
81
80
 
82
- Complete sets of binary wheels are provided on PyPI for Python versions 3.9.x-3.12.x.
81
+ Complete sets of binary wheels are provided on PyPI for Python versions 3.10.x-3.13.x.
83
82
  Python 3.13.x is also supported, but some third-party packages are still missing wheels,
84
83
  so compilation from source is triggered for those.
85
84
 
@@ -1,46 +1,46 @@
1
- passagemath_repl-10.5.43.data/data/share/jupyter/kernels/sagemath/kernel.json,sha256=oP5RUbVlFAp6b03Fz48BSSQWx6AsWzbB0X7z7CvaIMk,141
2
- passagemath_repl-10.5.43.data/data/share/jupyter/kernels/sagemath/logo-64x64.png,sha256=pE3myKl2ywp6zDUD0JiMs-lvAk6T4O3z5PdEC_B0ZL4,3421
3
- passagemath_repl-10.5.43.data/data/share/jupyter/kernels/sagemath/logo.svg,sha256=C9lkyX-_DqtTKOlcLFRu36k7scdBufRnYdy4AMHa7GQ,19074
4
- passagemath_repl-10.5.43.data/scripts/sage-cachegrind,sha256=FRrT4BoRsrATlQOrXALHAbDI_KLhz0XuDOD6xzECEl8,651
5
- passagemath_repl-10.5.43.data/scripts/sage-callgrind,sha256=pWhrI8NsVa_XSuay052htjxcM3thrpX8rI6Uj_pK5Uo,442
6
- passagemath_repl-10.5.43.data/scripts/sage-cleaner,sha256=vM0CkzbxiSCE0Z85AViQIvoxb5oUz5WOmVOvShbLDUY,7778
7
- passagemath_repl-10.5.43.data/scripts/sage-coverage,sha256=IhvqnFvmvNJBMQtiSu5_Qy52a67hG-r3cAeyhYOOj7w,10199
8
- passagemath_repl-10.5.43.data/scripts/sage-eval,sha256=4IHv01xH34wJPj61wzcL5ufhoO6Y3UTTGz7b-0YKJFw,266
9
- passagemath_repl-10.5.43.data/scripts/sage-fixdoctests,sha256=xcbw2EmxtwE6Xkrdxx2-59srUwSgzenrNwLP0757UNs,37571
10
- passagemath_repl-10.5.43.data/scripts/sage-inline-fortran,sha256=T3U943WNPKrxQJuanBhTpXU3jJ5vjaXd56R8yWv_8PM,234
11
- passagemath_repl-10.5.43.data/scripts/sage-ipynb2rst,sha256=PynBPdthnpwGbILDRA38IwpT319Ze-g8UMmWaaTnimQ,1345
12
- passagemath_repl-10.5.43.data/scripts/sage-ipython,sha256=RYYd8-gmE5JE_-dCkOSDpC6rRsX6i6tma3pqgmXYJvM,342
13
- passagemath_repl-10.5.43.data/scripts/sage-massif,sha256=Tfqb6ON9d0OZnt6VlGS21asbdMq8zWzx8ZnvV1n_buI,613
14
- passagemath_repl-10.5.43.data/scripts/sage-notebook,sha256=QJ1Y4eTptc6TbNVXZswpcsn-NqaQNuSwjWE-lYmGpW8,8453
15
- passagemath_repl-10.5.43.data/scripts/sage-omega,sha256=4ARnHyZyB69ltxHj9xYpzad_YCBT3Nk0Wq3Ke09gExM,595
16
- passagemath_repl-10.5.43.data/scripts/sage-preparse,sha256=3L1KKgvSApvoK467Wza0S4WQLCXiYvivrhDKIvA1omc,10595
17
- passagemath_repl-10.5.43.data/scripts/sage-run,sha256=F1oAgPN7Kh5dO1smCyfGVT0Dy46NQ_dQ3OQZ8Wa6foM,689
18
- passagemath_repl-10.5.43.data/scripts/sage-run-cython,sha256=02mTGXokayRxISoCWWsDcKZwGrmh5B0mJJxTT87J01Q,235
19
- passagemath_repl-10.5.43.data/scripts/sage-runtests,sha256=nUvI3fCrBjqPUict01wIxwYPjvaZf4ttLp85tavUEpY,111
20
- passagemath_repl-10.5.43.data/scripts/sage-startuptime.py,sha256=RtIuC7jM3SOwROXTa6nnpJhzK0sQ24nDqyE6zXpCWEI,6209
21
- passagemath_repl-10.5.43.data/scripts/sage-valgrind,sha256=fZxy00oXU4PpHf_wc2uYKb7lzqSBY4VkhUxiuvXHKhA,1201
22
- sage/all__sagemath_repl.py,sha256=z6lERTYuw3I4LQ7-hnEYbY1i-hMJj2uAm2ujOmWitSo,5713
1
+ passagemath_repl-10.6.1rc1.data/data/share/jupyter/kernels/sagemath/kernel.json,sha256=8SIu3wTn79K8-fE1TQ8y9I9i3-rhH1E3czdxf_6xME8,144
2
+ passagemath_repl-10.6.1rc1.data/data/share/jupyter/kernels/sagemath/logo-64x64.png,sha256=pE3myKl2ywp6zDUD0JiMs-lvAk6T4O3z5PdEC_B0ZL4,3421
3
+ passagemath_repl-10.6.1rc1.data/data/share/jupyter/kernels/sagemath/logo.svg,sha256=C9lkyX-_DqtTKOlcLFRu36k7scdBufRnYdy4AMHa7GQ,19074
4
+ passagemath_repl-10.6.1rc1.data/scripts/sage-cachegrind,sha256=FRrT4BoRsrATlQOrXALHAbDI_KLhz0XuDOD6xzECEl8,651
5
+ passagemath_repl-10.6.1rc1.data/scripts/sage-callgrind,sha256=pWhrI8NsVa_XSuay052htjxcM3thrpX8rI6Uj_pK5Uo,442
6
+ passagemath_repl-10.6.1rc1.data/scripts/sage-cleaner,sha256=vM0CkzbxiSCE0Z85AViQIvoxb5oUz5WOmVOvShbLDUY,7778
7
+ passagemath_repl-10.6.1rc1.data/scripts/sage-coverage,sha256=IhvqnFvmvNJBMQtiSu5_Qy52a67hG-r3cAeyhYOOj7w,10199
8
+ passagemath_repl-10.6.1rc1.data/scripts/sage-eval,sha256=4IHv01xH34wJPj61wzcL5ufhoO6Y3UTTGz7b-0YKJFw,266
9
+ passagemath_repl-10.6.1rc1.data/scripts/sage-fixdoctests,sha256=xcbw2EmxtwE6Xkrdxx2-59srUwSgzenrNwLP0757UNs,37571
10
+ passagemath_repl-10.6.1rc1.data/scripts/sage-inline-fortran,sha256=T3U943WNPKrxQJuanBhTpXU3jJ5vjaXd56R8yWv_8PM,234
11
+ passagemath_repl-10.6.1rc1.data/scripts/sage-ipynb2rst,sha256=PynBPdthnpwGbILDRA38IwpT319Ze-g8UMmWaaTnimQ,1345
12
+ passagemath_repl-10.6.1rc1.data/scripts/sage-ipython,sha256=RYYd8-gmE5JE_-dCkOSDpC6rRsX6i6tma3pqgmXYJvM,342
13
+ passagemath_repl-10.6.1rc1.data/scripts/sage-massif,sha256=Tfqb6ON9d0OZnt6VlGS21asbdMq8zWzx8ZnvV1n_buI,613
14
+ passagemath_repl-10.6.1rc1.data/scripts/sage-notebook,sha256=QJ1Y4eTptc6TbNVXZswpcsn-NqaQNuSwjWE-lYmGpW8,8453
15
+ passagemath_repl-10.6.1rc1.data/scripts/sage-omega,sha256=4ARnHyZyB69ltxHj9xYpzad_YCBT3Nk0Wq3Ke09gExM,595
16
+ passagemath_repl-10.6.1rc1.data/scripts/sage-preparse,sha256=3L1KKgvSApvoK467Wza0S4WQLCXiYvivrhDKIvA1omc,10595
17
+ passagemath_repl-10.6.1rc1.data/scripts/sage-run,sha256=F1oAgPN7Kh5dO1smCyfGVT0Dy46NQ_dQ3OQZ8Wa6foM,689
18
+ passagemath_repl-10.6.1rc1.data/scripts/sage-run-cython,sha256=02mTGXokayRxISoCWWsDcKZwGrmh5B0mJJxTT87J01Q,235
19
+ passagemath_repl-10.6.1rc1.data/scripts/sage-runtests,sha256=nUvI3fCrBjqPUict01wIxwYPjvaZf4ttLp85tavUEpY,111
20
+ passagemath_repl-10.6.1rc1.data/scripts/sage-startuptime.py,sha256=RtIuC7jM3SOwROXTa6nnpJhzK0sQ24nDqyE6zXpCWEI,6209
21
+ passagemath_repl-10.6.1rc1.data/scripts/sage-valgrind,sha256=fZxy00oXU4PpHf_wc2uYKb7lzqSBY4VkhUxiuvXHKhA,1201
22
+ sage/all__sagemath_repl.py,sha256=N6FW5haXlnecMMj9JS9f3oCixqoDpmgf6vF8nAN2Cf8,5410
23
23
  sage/doctest/__init__.py,sha256=JJMNkq7Rh3gCshtynqXDTLJgUKweNFlUhpnbvTLRMwg,166
24
- sage/doctest/__main__.py,sha256=wGVNiaPbhQwzoAs3Y1xhYBlB18pBieEDhi71ggF8NkQ,13647
24
+ sage/doctest/__main__.py,sha256=gX1z-oKoU4JmoD8jC4uHXYQ6C0DB7JlJxRewQoXfhjQ,13646
25
25
  sage/doctest/all.py,sha256=SRWEXRjzsrFyY1rrErA7--1DrvjUQR0Th30P6vubnZ0,157
26
26
  sage/doctest/check_tolerance.py,sha256=YnYr981uSUZWfuv5OrXdytXsZx6PtJnQ7Mg8-Lj7pB4,8945
27
- sage/doctest/control.py,sha256=d9E_pElzAj7PsX_qZSXAUm1zqMN0u6DRTUlWFbnVX0g,68058
28
- sage/doctest/external.py,sha256=ddr7S0bt1bqAHWyAQj0z4O1SrjwgpdY7ghDt4KZzDRo,15601
29
- sage/doctest/fixtures.py,sha256=UDSykekKanmnD737VXFv7r5QzcZmqzfwn1Noc_fKcnE,12784
30
- sage/doctest/forker.py,sha256=tfE1vO0LTgEZkXIhutD5mJFU8x1t_fton73mES8Y2LU,111239
27
+ sage/doctest/control.py,sha256=DXlQq8jLbHZdyACAieEK0I5HowP4BjppwI5SN1ONy6o,68027
28
+ sage/doctest/external.py,sha256=JlYJSRR4RtOcXeQnWrdwnJG2QQKqaDFB02NtFBo3oXk,15857
29
+ sage/doctest/fixtures.py,sha256=ohN8nTvmR5MAjenv_kJuFYjw06XTgfqP9PYP9Y4CD1g,13911
30
+ sage/doctest/forker.py,sha256=GhHf3NtZ9lb_hEz_jB3Ds4quoOC28dVfiB6aOCaMdb8,111457
31
31
  sage/doctest/marked_output.py,sha256=EJThXbkhYvYR5r1uuZyfPjeYHiLpHUgqTm1QZ5JTDgw,3034
32
- sage/doctest/parsing.py,sha256=5g1R7niBaa_6RE5WcGFF_Eqmzak1SpXWHEGnow_8Ifw,71130
32
+ sage/doctest/parsing.py,sha256=u0FnYkw3p6XyAZy8vPjVXM4ci45GrA7QbyxMzIg-UWM,71742
33
33
  sage/doctest/parsing_test.py,sha256=7v3Y6kgLr7x5UF3CkdyNbRyhH4VRX275QPdCqG-jMxg,2652
34
34
  sage/doctest/reporting.py,sha256=8SBJ7I6Ea8OAENNdtfns4TlhLNvgF8Ss1Y8tef5-02o,33383
35
35
  sage/doctest/rif_tol.py,sha256=m8XljRCPyaj_Kpng-sNxsRSo0BJR3QY3CArhjEZ9c5s,4973
36
- sage/doctest/sources.py,sha256=JWQikdzIAL8CVfz-AFeqA6JmI-Q_Mm-O8bE3KzA9AQo,63535
37
- sage/doctest/test.py,sha256=XU8RASl7HPLM_YoPcyQ9uIwG9oUTUyjl7N7xH74vzdo,22616
38
- sage/doctest/util.py,sha256=vSzMRDxGlLjJ0SbT0VuKP-_w8LdSO5jDh-uUWF7zRaM,31025
36
+ sage/doctest/sources.py,sha256=qFxqbnSN0Qh9IScGLszsscXFE2Zq3ivVPuqaVVtZXXU,63778
37
+ sage/doctest/test.py,sha256=RHF3gIs2ZYd87x0Cts5u9Ec--e87K227nwiPxAITUn8,23321
38
+ sage/doctest/util.py,sha256=AGVnKp1nU6zmsrGY_CNvhbVPrnBK7dS5_r1wE9iSI-c,31054
39
39
  sage/doctest/tests/1second.rst,sha256=CHBQjhfvPPyBQmTslo-G7kC8Jr6i5DujXTT19AewsIk,74
40
40
  sage/doctest/tests/99seconds.rst,sha256=1FUWC-u5vVHqYd2VUUe_GELikmMvUEDZDt-kAU8u4TA,75
41
41
  sage/doctest/tests/abort.rst,sha256=lqKD_TZvcnO38zmXrp76HyLlVZNKd72rbaGGGhPgywQ,164
42
42
  sage/doctest/tests/atexit.rst,sha256=jRRcy7lhpNl01Ho9jnba-o9eSkPj2S3BsLDQW2SD81c,253
43
- sage/doctest/tests/fail_and_die.rst,sha256=6bkn2-1HAIYGIH2NbfVYEqspSU7-f2lcwsw3ZFhN_Qs,221
43
+ sage/doctest/tests/fail_and_die.rst,sha256=YcSU72z5wpAAfOzp6szbt-OYkK4LAFWkLNjLdkxewCg,309
44
44
  sage/doctest/tests/initial.rst,sha256=KND6KnKczk0MA6VDKrN44LQxBkd1t4nUuyaEqYsvVJk,330
45
45
  sage/doctest/tests/interrupt.rst,sha256=Zm5HOSnUIXazy_hhg_GGjdJyGH5aGGtPPlpSEBQNxpw,188
46
46
  sage/doctest/tests/interrupt_diehard.rst,sha256=TxJaZDeMmhOMpUp4Onb3Ob8F8gpYbur-pVlx_2DuYFU,517
@@ -58,15 +58,15 @@ sage/ext_data/notebook-ipython/logo-64x64.png,sha256=pE3myKl2ywp6zDUD0JiMs-lvAk6
58
58
  sage/ext_data/notebook-ipython/logo.svg,sha256=C9lkyX-_DqtTKOlcLFRu36k7scdBufRnYdy4AMHa7GQ,19074
59
59
  sage/interfaces/all__sagemath_repl.py,sha256=6mNw0BEw6mZsoOi004elrLvD4m4RffLmgY921IwsNXk,43
60
60
  sage/misc/all__sagemath_repl.py,sha256=Qxsf_bNAVB4CScgVoD0Lb9_RFwdK8BI3S0aqjFBz88c,1791
61
- sage/misc/banner.py,sha256=69sC578x0-t8a_l14w08xMLPBp0wcd8RsdTrcJq7ERQ,7883
61
+ sage/misc/banner.py,sha256=bc81_S22PfVvr_VHTHrKXNfsSNcStRf7Xt7QZLIaz0g,8103
62
62
  sage/misc/benchmark.py,sha256=4hW6hTGWfPb_E_U8V19Y_CPRN9_mUMsefrIb1rkzhfQ,6162
63
63
  sage/misc/classgraph.py,sha256=e9xZbH4cZhkY8uuNL-PrS1tyFXm8JcnhyE8uTDYOCoE,5155
64
64
  sage/misc/copying.py,sha256=jyY_AyAAFHAYGkj6Ca-kRd-PcW4qg18kDIUp1dVPk0M,423
65
- sage/misc/cython.py,sha256=0x7ohaPlQc-rxwaCoYxztBI2H9P-0aeZ8JOCml4nmbM,25865
66
- sage/misc/dev_tools.py,sha256=7Op4JFUXiYjUHN1lxO7blEVDr3vwYzDujO70XjwNDUE,28380
65
+ sage/misc/cython.py,sha256=loGC4rXRzogGhpYU4OsH4J5ba6XITKraERFIrhee2T8,26053
66
+ sage/misc/dev_tools.py,sha256=aRYppIYFv5AEpkTEcXovxjW27SxurTuF580R1tfJuVw,25564
67
67
  sage/misc/edit_module.py,sha256=A3EctK2BgolhFtsCXtiShKzr_c0r3eGmb9HYnKPyOto,10528
68
68
  sage/misc/explain_pickle.py,sha256=KLuoOx_7xEeawgnLvheim4qmgMhPPOL0CcRxbP7CpWM,107704
69
- sage/misc/gperftools.py,sha256=ZXGxmNSnp9EdBOVwcTPgiJrmH3EbW4bgp7vOWLNgZNA,10909
69
+ sage/misc/gperftools.py,sha256=-8ip5q6NEHctKuDfJ5WoNsdFBOvtGDv-9UWN_GNviac,10870
70
70
  sage/misc/inline_fortran.py,sha256=EFTYpw420JNKZdNNSuOcD4_TONPnfJRZ0UX9PZUO5so,6838
71
71
  sage/misc/messaging.py,sha256=NdHinsgrUq3Kd8QC-c8oIHqt3_hPQ2hEd20rih91qgY,3203
72
72
  sage/misc/pager.py,sha256=bTxQlO2MuJ54ZulqzkcpDW5Yoseile5M9q7RoklrLU0,664
@@ -81,13 +81,13 @@ sage/misc/trace.py,sha256=xEwmVVALZ7aCciIRpspoY4IJuE1T9502P5KL2VH0yl0,2978
81
81
  sage/repl/__init__.py,sha256=n6Dp28k-5BZmi9cePkg8G6S9qFWUGPBiFVRSiwsPLqk,663
82
82
  sage/repl/all.py,sha256=nh532qefRODsltlLeN-zFkX8UHc6g09pFh5gdIvMORI,508
83
83
  sage/repl/attach.py,sha256=XkGHf5OTMAwnTDqqRT6sw92G5pWMVDUueXrYAlWZQ40,19811
84
- sage/repl/configuration.py,sha256=rYmzn3UV6Azp4-_Dzq2b3YxmSsZ-0ZjYIoWiDQpqHo8,6040
84
+ sage/repl/configuration.py,sha256=TKAQIGNGfdsNU3-eBlh7Vg-xeGFTABZeEGoaqUZ5KRU,6040
85
85
  sage/repl/image.py,sha256=wS_m2idzx2PuKjh8yCj18RUi6MT1_C08oH3VaeUKieA,9337
86
86
  sage/repl/inputhook.py,sha256=o3Z6kWs_37yOBMZzoJNj48ajAc3KkMW3M8gydruEFrY,2506
87
87
  sage/repl/interface_magic.py,sha256=WFAC_HHNmenOfCF8IXq3FOnNGX799BiEJdkg7p346f4,9412
88
88
  sage/repl/interpreter.py,sha256=EL0grJK963zyiVg2Gki3XtGLCOG8pWdqvHVCBB8pLiI,30435
89
- sage/repl/ipython_extension.py,sha256=0qfjn3z9s8WSf0GUJqiuaMQnY-KO13UnGZvhAp25Kko,26433
90
- sage/repl/ipython_tests.py,sha256=6sXyZJnKMcXeS7wvBZ8X6Lx6juBy27RDxLbmsrEVY20,4807
89
+ sage/repl/ipython_extension.py,sha256=zTVg6kGj7TddK5KrYy68dnlebfwLyiWHNEm-jabOGUM,26592
90
+ sage/repl/ipython_tests.py,sha256=o0l_Cjc7mwP1K3OioleI_2Ya0XJQ9B8YX29d7Ture68,5338
91
91
  sage/repl/load.py,sha256=njH3sRvMV56p0-Nbe2IpQqA6u2k0rxAPfCVWdCHvdzk,11824
92
92
  sage/repl/preparse.py,sha256=ktz7bWppMvtBTSpOs6EPC76nKuna9MFsX3txoZJt5WY,77117
93
93
  sage/repl/prompts.py,sha256=wyd7z3sdOaOevvnqfwrQBiCaj6hLiWYJ3De6eePbQEA,2253
@@ -101,18 +101,18 @@ sage/repl/display/util.py,sha256=fL0GUr7NcB_AbWUFAgrADcyq212eEqJi0toEdJaVyFk,600
101
101
  sage/repl/ipython_kernel/__init__.py,sha256=6mNw0BEw6mZsoOi004elrLvD4m4RffLmgY921IwsNXk,43
102
102
  sage/repl/ipython_kernel/__main__.py,sha256=lS2SaEWCtM5I5LykXB0FBQA-5XIVkolXMpRSTSnMP8w,195
103
103
  sage/repl/ipython_kernel/all_jupyter.py,sha256=hpNw0ZQK89PkavLZD0UWqgPcA4AneXEIc5VOztOxLkA,364
104
- sage/repl/ipython_kernel/install.py,sha256=A-wxTNFxN7xGMbutT5e9xr-5sdfZz9X24zgzxM1SGSo,9495
104
+ sage/repl/ipython_kernel/install.py,sha256=b8eeZfK8v0lCt9ilcfUZFRonCh3LhiUK9naOnhGrXNs,9503
105
105
  sage/repl/ipython_kernel/interact.py,sha256=gqs9DTksXsbbVkvRGIbW_UnraoMZpoUuZWJjll_FE9k,11603
106
106
  sage/repl/ipython_kernel/kernel.py,sha256=uFQUDxGPtcLcP0YjNvFvLHNM-IIqPTpjG0sX4kF_pYs,7117
107
- sage/repl/ipython_kernel/widgets.py,sha256=DIyVibGr30DXFk79Zm3jDSyWiCd8h2z3R2ZbSxOxIOY,14878
107
+ sage/repl/ipython_kernel/widgets.py,sha256=LpXeZz7EBvenoOXbbV4PA_gCrIcz5EbZBlCRtzpzswA,14879
108
108
  sage/repl/ipython_kernel/widgets_sagenb.py,sha256=VgauLJQlQsvszXU-Rox65MRu7jM8mkVgC8wYDEHVT-o,20178
109
109
  sage/repl/rich_output/__init__.py,sha256=yHVVV_o6hHdQ5UscMtypHyqv_kl6uGC8SpkAsugLBCQ,132
110
110
  sage/repl/rich_output/backend_base.py,sha256=HvMaVFC0MfqKAnabvvotaH027xbsVp-NFz_KDYiqjZI,22159
111
111
  sage/repl/rich_output/backend_doctest.py,sha256=GUIcwHXWvTN16PFm3v4ZThk8F5FFnSkh1BIYlhVXMGo,13166
112
112
  sage/repl/rich_output/backend_emacs.py,sha256=lFlPjVe7XPju9yVl92YVNGoKMQS-37GqSBbZkBbpAFk,5919
113
- sage/repl/rich_output/backend_ipython.py,sha256=-TTxvWX35xcJw-ZX2L0QGDMEvusb3xbaTqKTS-BWeZ0,22126
113
+ sage/repl/rich_output/backend_ipython.py,sha256=PgsGRyESdPwz-ce4U8iVie1Yx2JrhcTDkNcokGyuWX0,22115
114
114
  sage/repl/rich_output/buffer.py,sha256=Lh2P_VBNQI8HIqwlyTmJ5uTsjg1sOWPeQ1tHdEnLns8,9928
115
- sage/repl/rich_output/display_manager.py,sha256=n4UKuI_2-otvtsc0aLAlOAB2wOf_XrqIrzA9pshCB5k,29715
115
+ sage/repl/rich_output/display_manager.py,sha256=XOjzIAXvP74JgDxBEjuD-p1ms8IXAEZ2NO0TQftCBvs,29710
116
116
  sage/repl/rich_output/example.avi,sha256=my4VexWs4c2gFV9mpO-BjvCMj1I241FjHkpk3-hQ8BY,7976
117
117
  sage/repl/rich_output/example.canvas3d,sha256=mT094XaOVY5oJ5iu4RyOXfcaKWbo2IktOyA5FJ09aMo,829
118
118
  sage/repl/rich_output/example.dvi,sha256=DdcTpMhkpPXSPiRJ_EexkihWPLgrykecbRUxFnJgb8k,212
@@ -140,14 +140,15 @@ sage/repl/rich_output/output_video.py,sha256=4-yQKBCr785qnb2Hdp2E8Ds39WbhNI5moHT
140
140
  sage/repl/rich_output/preferences.py,sha256=AQNOC0RrkcVXsvMAfyAw1IJJgbG6Xd2YjAUt_LPzcJU,12896
141
141
  sage/repl/rich_output/pretty_print.py,sha256=jtyu24T9vhStc74fRXKZFD5XAR8e3LJWs10kNK5V4fk,11057
142
142
  sage/repl/rich_output/test_backend.py,sha256=lWvrkhnjXBMw4kAoBW2F0qJXRXk-tBnbQj1MJKHVH0A,6607
143
+ sage/tests/all.py,sha256=6mNw0BEw6mZsoOi004elrLvD4m4RffLmgY921IwsNXk,43
143
144
  sage/tests/all__sagemath_repl.py,sha256=U0L7QUQRA5DQQ1cqv8tjHB1fr4uXj_q6q_H6e44PTh0,51
144
145
  sage/tests/article_heuberger_krenn_kropf_fsm-in-sage.py,sha256=bam9TtDj7Wic1Fs5XL3TOX0G4svjBqF7jmAa4vnWZsQ,19928
145
146
  sage/tests/arxiv_0812_2725.py,sha256=x1oO2O50QnrCm-zK2Wopzr5SnOlRz0LzNUo_AUORdZE,9942
146
- sage/tests/benchmark.py,sha256=MriMbhm2MfO0GnEMJgjfrtxjWRfz3Vk95exNTfWA-h8,55501
147
+ sage/tests/benchmark.py,sha256=gnKmLVL938MnMEuaryu67qbaYMAacqpsQXKzxoo7_rc,55546
147
148
  sage/tests/book_schilling_zabrocki_kschur_primer.py,sha256=mIr3XlcQKQXxjmagRuvBdpRG98PsDmx6ZCsGQfVdsq8,27118
148
149
  sage/tests/book_stein_ent.py,sha256=DN35XiYn-X6aC3-HlG9164FwxSuv-p0PTH1Ij-KMakE,19795
149
150
  sage/tests/book_stein_modform.py,sha256=zX0Y1OqrjXT5pEFSrhn6AwHkx43PhgpiLVh8lnPwKaM,21168
150
- sage/tests/cmdline.py,sha256=2JiDN3yvOjlHOYtcGHXBZa4y_qc3KGlR3vPTzShVxN8,26316
151
+ sage/tests/cmdline.py,sha256=IGDw44uJncT98xx-J2y0OPxcRjjXAVLb4oBuHxB13K4,26396
151
152
  sage/tests/combinatorial_hopf_algebras.py,sha256=FTzMq8JyyKLAU3vFacMZZAer7PxALQpg3SFdEjBdo_s,1849
152
153
  sage/tests/finite_poset.py,sha256=3lC1zEHE8_9uxsE0CPnZcgYsf8cFqfObYw7oAYfgFWI,26467
153
154
  sage/tests/functools_partial_src.py,sha256=1AJUja_PgA88SuhEsB-kedq3EEbr8Ry3AaAwUV7OpoU,598
@@ -156,7 +157,7 @@ sage/tests/lazy_imports.py,sha256=BVyEp2w0j52sHHDS8JZi0_uNUwuE0t9pKJMA9015jEM,10
156
157
  sage/tests/modular_group_cohomology.py,sha256=jeVYPdKlKoPIwYAFHn2TuRljQ2Ajc_oZI0qVBG4KP1E,2408
157
158
  sage/tests/numpy.py,sha256=N6sQAKAS0-AL3WEq5CdPFi_UAuqO4lL-n3ORFL2ppBA,445
158
159
  sage/tests/parigp.py,sha256=RaoBuT8kRh9GK7EDQHikejOTbCt-2DlakxrLdxgQyGA,3781
159
- sage/tests/startup.py,sha256=G8Co8afXEC1FO9pyFlryBzLXXwY40_BcWrimaPadw3w,1185
160
+ sage/tests/startup.py,sha256=Y6bCdu3ldKa5Y0_bXE1eVhnBU-8vBkvEUNPWCcNsPzg,1176
160
161
  sage/tests/symbolic-series.py,sha256=5WlGSwW4eq-Ydev0jYtLDtuk1KCIJ7QCNE0IhZpc37Q,2991
161
162
  sage/tests/sympy.py,sha256=SGzxN4faL0Y3lokTYV_n_IYjf65pc1foBfLbxDhPDgk,431
162
163
  sage/tests/test_deprecation.py,sha256=Y2uvLozCshTPhQgfAxT_pAkkgX5Q16yJwQ0CleKHDJw,917
@@ -164,7 +165,7 @@ sage/tests/books/__init__.py,sha256=7FeABQKWv91MY03iyMjh0SjIIvwreXZPjgmpIlP7OjE,
164
165
  sage/tests/books/computational-mathematics-with-sagemath/__init__.py,sha256=6mNw0BEw6mZsoOi004elrLvD4m4RffLmgY921IwsNXk,43
165
166
  sage/tests/books/computational-mathematics-with-sagemath/calculus_doctest.py,sha256=cO1Nz5InC5OhbLFhzniyJ1UiwPnhgoRSvFHNcoymt3o,14315
166
167
  sage/tests/books/computational-mathematics-with-sagemath/combinat_doctest.py,sha256=vSPxFXoKfqcWIFLvZRBbeqJXF2YkQInKNjTrDW9Vm6o,28342
167
- sage/tests/books/computational-mathematics-with-sagemath/domaines_doctest.py,sha256=6dvQVUeWzuk51m4q_lLGrWycSRZGspO9Z4JWP6qAlq0,10287
168
+ sage/tests/books/computational-mathematics-with-sagemath/domaines_doctest.py,sha256=l2UY7z1nvzZrJ9l2Lf-JuLKOTenmTYwZt4OM9uaNLw8,10298
168
169
  sage/tests/books/computational-mathematics-with-sagemath/float_doctest.py,sha256=FaQfsn95X3iEcUIpFGF3tmtSpcRNwvCYMaB0moH5umA,11659
169
170
  sage/tests/books/computational-mathematics-with-sagemath/graphique_doctest.py,sha256=n0l4Z9pVbCcVRC9m9CVgkSaudIek1E34NV1ut_IzI6M,9771
170
171
  sage/tests/books/computational-mathematics-with-sagemath/graphtheory_doctest.py,sha256=0_g61BiD1KN0uYbushiM8hFbcFhiC_RIJV0oUDyCMdA,12924
@@ -176,7 +177,7 @@ sage/tests/books/computational-mathematics-with-sagemath/mpoly_doctest.py,sha256
176
177
  sage/tests/books/computational-mathematics-with-sagemath/nonlinear_doctest.py,sha256=dtmCBeceWs3S8FoNYprbC1kRphm7WNSnQmccXCoQ3gk,15994
177
178
  sage/tests/books/computational-mathematics-with-sagemath/numbertheory_doctest.py,sha256=V0ODEcX8TKFR3RZFbzsy-sAUSDxuOPjkRkPnyMlEFMM,4287
178
179
  sage/tests/books/computational-mathematics-with-sagemath/polynomes_doctest.py,sha256=4HvSa47suD18pocaTVyZ1-gM2OvtW0kLJvRzGm4PPR4,12171
179
- sage/tests/books/computational-mathematics-with-sagemath/premierspas_doctest.py,sha256=dx8VNzWjeQpPO2pG5MRqnh3Ts0i-wH_4zaSxu-ThvPQ,3396
180
+ sage/tests/books/computational-mathematics-with-sagemath/premierspas_doctest.py,sha256=bLhoF_uNUfyP5hr_qPTIfknhJRMEmvYbl8XQhi-p1qE,3383
180
181
  sage/tests/books/computational-mathematics-with-sagemath/programmation_doctest.py,sha256=y_4qVYnvDMQz30iZJzAuElXTZApvzv18TmoJ-1PIsEw,17837
181
182
  sage/tests/books/computational-mathematics-with-sagemath/recequadiff_doctest.py,sha256=QvVGANF7q9BbKGRxLJsmFBDai1hqLypOzcuAvv0rOyw,11659
182
183
  sage/tests/books/computational-mathematics-with-sagemath/sol/__init__.py,sha256=6mNw0BEw6mZsoOi004elrLvD4m4RffLmgY921IwsNXk,43
@@ -227,7 +228,7 @@ sage/tests/memcheck/run_tests.py,sha256=waPUB_tHk1YvSCd45BOXHeWubtA2St4ZQR-O88R3
227
228
  sage/tests/memcheck/run_tests_in_valgrind.py,sha256=Ht4-bpgRl2sH4SICRKN5S5VyMhebmCvRRz4ktOmwKFo,933
228
229
  sage/tests/memcheck/symbolic_expression.py,sha256=oEFxHEpGZK8-sCr_vTiVu8bk-e5lTzp4GQSepnGN-OQ,272
229
230
  sage/tests/memcheck/verify_no_leak.py,sha256=6TiUam0TTe1D_Gbaftz5uGSb8QZygRGXQow-WpVH6kg,984
230
- passagemath_repl-10.5.43.dist-info/METADATA,sha256=k38D3-Wuhx-m05jc1oq5qpuDPa1L5dUMIraSCE9dcSs,4604
231
- passagemath_repl-10.5.43.dist-info/WHEEL,sha256=CmyFI0kx5cdEMTLiONQRbGQwjIoR1aIYB7eCAQ4KPJ0,91
232
- passagemath_repl-10.5.43.dist-info/top_level.txt,sha256=Kmzulf9WsphADFQuqgvdy5mvTLDj_V2zkFHU2s3UXos,6
233
- passagemath_repl-10.5.43.dist-info/RECORD,,
231
+ passagemath_repl-10.6.1rc1.dist-info/METADATA,sha256=0X_cFOHODQmd_BohQ8Che6ylBLxwOx2Awm0cNmQRvsQ,4558
232
+ passagemath_repl-10.6.1rc1.dist-info/WHEEL,sha256=CmyFI0kx5cdEMTLiONQRbGQwjIoR1aIYB7eCAQ4KPJ0,91
233
+ passagemath_repl-10.6.1rc1.dist-info/top_level.txt,sha256=Kmzulf9WsphADFQuqgvdy5mvTLDj_V2zkFHU2s3UXos,6
234
+ passagemath_repl-10.6.1rc1.dist-info/RECORD,,
@@ -100,12 +100,6 @@ warnings.filterwarnings('ignore', category=DeprecationWarning,
100
100
  message=r"Pickle, copy, and deepcopy support will be "
101
101
  r"removed from itertools in Python 3.14.")
102
102
 
103
- # triggered in Python 3.9 on Redhat-based distributions
104
- # https://github.com/sagemath/sage/issues/37863
105
- # https://github.com/networkx/networkx/issues/7101
106
- warnings.filterwarnings('ignore', category=RuntimeWarning,
107
- message="networkx backend defined more than once: nx-loopback")
108
-
109
103
  from sage.all__sagemath_objects import *
110
104
  from sage.all__sagemath_environment import *
111
105
 
sage/doctest/__main__.py CHANGED
@@ -142,7 +142,7 @@ def _make_parser():
142
142
  choices=["DEFAULT", "ALWAYS", "NEVER"],
143
143
  default=0,
144
144
  action=GCAction,
145
- help="control garbarge collection "
145
+ help="control garbage collection "
146
146
  "(ALWAYS: collect garbage before every test; NEVER: disable gc; DEFAULT: Python default)")
147
147
 
148
148
  # The --serial option is only really for internal use, better not
sage/doctest/control.py CHANGED
@@ -33,28 +33,31 @@ AUTHORS:
33
33
  # ****************************************************************************
34
34
 
35
35
  import importlib
36
- import random
36
+ import json
37
37
  import os
38
+ import random
39
+ import shlex
38
40
  import sys
39
41
  import time
40
- import json
41
- import shlex
42
42
  import types
43
- import sage.misc.flatten
44
- import sage.misc.randstate as randstate
45
- from sage.structure.sage_object import SageObject
46
- from sage.env import DOT_SAGE, SAGE_LIB, SAGE_SRC, SAGE_VENV, SAGE_EXTCODE
47
- from sage.misc.temporary_file import tmp_dir
48
- from cysignals.signals import AlarmInterrupt, init_cysignals
49
43
 
50
- from .sources import FileDocTestSource, DictAsObject, get_basename
51
- from .forker import DocTestDispatcher
52
- from .reporting import DocTestReporter
53
- from .util import Timer, count_noun, dict_difference
54
- from .external import available_software
55
- from .parsing import parse_optional_tags, parse_file_optional_tags, unparse_optional_tags, \
56
- nodoctest_regex, optionaltag_regex, optionalfiledirective_regex
44
+ from cysignals.signals import AlarmInterrupt, init_cysignals
57
45
 
46
+ import sage.misc.flatten
47
+ from sage.doctest.external import available_software
48
+ from sage.doctest.forker import DocTestDispatcher
49
+ from sage.doctest.parsing import (
50
+ optional_tag_regex,
51
+ parse_file_optional_tags,
52
+ unparse_optional_tags,
53
+ )
54
+ from sage.doctest.reporting import DocTestReporter
55
+ from sage.doctest.sources import DictAsObject, FileDocTestSource, get_basename
56
+ from sage.doctest.util import Timer, count_noun, dict_difference
57
+ from sage.env import DOT_SAGE, SAGE_EXTCODE, SAGE_LIB, SAGE_SRC
58
+ from sage.misc import randstate
59
+ from sage.misc.temporary_file import tmp_dir
60
+ from sage.structure.sage_object import SageObject
58
61
 
59
62
  # Optional tags which are always automatically added
60
63
 
@@ -470,7 +473,7 @@ class DocTestController(SageObject):
470
473
  s = options.hide.lower()
471
474
  options.hide = set(s.split(','))
472
475
  for h in options.hide:
473
- if not optionaltag_regex.search(h):
476
+ if not optional_tag_regex.search(h):
474
477
  raise ValueError('invalid optional tag {!r}'.format(h))
475
478
  if 'all' in options.hide:
476
479
  options.hide.discard('all')
@@ -513,10 +516,10 @@ class DocTestController(SageObject):
513
516
  # Check that all tags are valid
514
517
  for o in options.optional:
515
518
  if o.startswith('!'):
516
- if not optionaltag_regex.search(o[1:]):
519
+ if not optional_tag_regex.search(o[1:]):
517
520
  raise ValueError('invalid optional tag {!r}'.format(o))
518
521
  options.disabled_optional.add(o[1:])
519
- elif not optionaltag_regex.search(o):
522
+ elif not optional_tag_regex.search(o):
520
523
  raise ValueError('invalid optional tag {!r}'.format(o))
521
524
 
522
525
  options.optional |= auto_optional_tags
@@ -536,7 +539,7 @@ class DocTestController(SageObject):
536
539
  else:
537
540
  # Check that all tags are valid
538
541
  for o in options.probe:
539
- if not optionaltag_regex.search(o):
542
+ if not optional_tag_regex.search(o):
540
543
  raise ValueError('invalid optional tag {!r}'.format(o))
541
544
 
542
545
  self.options = options
@@ -895,7 +898,7 @@ class DocTestController(SageObject):
895
898
  Doctesting ...
896
899
  """
897
900
  opj = os.path.join
898
- from sage.env import SAGE_SRC, SAGE_DOC_SRC, SAGE_ROOT, SAGE_ROOT_GIT, SAGE_DOC
901
+ from sage.env import SAGE_DOC, SAGE_DOC_SRC, SAGE_ROOT, SAGE_ROOT_GIT, SAGE_SRC
899
902
  # SAGE_ROOT_GIT can be None on distributions which typically
900
903
  # only have the SAGE_LOCAL install tree but not SAGE_ROOT
901
904
  if SAGE_ROOT_GIT is not None:
@@ -1044,10 +1047,9 @@ class DocTestController(SageObject):
1044
1047
  bool(self.options.optional),
1045
1048
  if_installed=self.options.if_installed):
1046
1049
  yield os.path.join(root, file)
1047
- else:
1048
- if not skipfile(path, bool(self.options.optional),
1049
- if_installed=self.options.if_installed, log=self.log): # log when directly specified filenames are skipped
1050
- yield path
1050
+ elif not skipfile(path, bool(self.options.optional),
1051
+ if_installed=self.options.if_installed, log=self.log): # log when directly specified filenames are skipped
1052
+ yield path
1051
1053
  self.sources = [FileDocTestSource(path, self.options) for path in expand()]
1052
1054
 
1053
1055
  def filter_sources(self):
@@ -1553,7 +1555,7 @@ class DocTestController(SageObject):
1553
1555
  return self.run_val_gdb()
1554
1556
  else:
1555
1557
  self.create_run_id()
1556
- from sage.env import SAGE_ROOT_GIT, SAGE_LOCAL, SAGE_VENV
1558
+ from sage.env import SAGE_LOCAL, SAGE_ROOT_GIT, SAGE_VENV
1557
1559
  # SAGE_ROOT_GIT can be None on distributions which typically
1558
1560
  # only have the SAGE_LOCAL install tree but not SAGE_ROOT
1559
1561
  if (SAGE_ROOT_GIT is not None) and os.path.isdir(SAGE_ROOT_GIT):
@@ -1688,9 +1690,9 @@ def run_doctests(module, options=None):
1688
1690
  IP = get_ipython()
1689
1691
  if IP is not None:
1690
1692
  old_color = IP.colors
1691
- IP.run_line_magic('colors', 'NoColor')
1693
+ IP.run_line_magic('colors', 'nocolor')
1692
1694
  old_config_color = IP.config.TerminalInteractiveShell.colors
1693
- IP.config.TerminalInteractiveShell.colors = 'NoColor'
1695
+ IP.config.TerminalInteractiveShell.colors = 'nocolor'
1694
1696
 
1695
1697
  try:
1696
1698
  DC.run()
sage/doctest/external.py CHANGED
@@ -16,7 +16,7 @@ AUTHORS:
16
16
  - Kwankyu Lee (2016-03-09) -- initial version, based on code by Robert Bradshaw and Nathann Cohen
17
17
  """
18
18
 
19
- #*****************************************************************************
19
+ # ****************************************************************************
20
20
  # Copyright (C) 2016 Kwankyu Lee <ekwankyu@gmail.com>
21
21
  # 2018 Thierry Monteil
22
22
  # 2018-2021 Sébastien Labbé
@@ -28,8 +28,8 @@ AUTHORS:
28
28
  # it under the terms of the GNU General Public License as published by
29
29
  # the Free Software Foundation, either version 2 of the License, or
30
30
  # (at your option) any later version.
31
- # http://www.gnu.org/licenses/
32
- #*****************************************************************************
31
+ # https://www.gnu.org/licenses/
32
+ # ****************************************************************************
33
33
 
34
34
  import multiprocessing
35
35
  import platform
@@ -46,7 +46,7 @@ Array = multiprocessing.Array
46
46
  prefix = 'has_'
47
47
 
48
48
 
49
- def has_internet():
49
+ def has_internet() -> bool:
50
50
  """
51
51
  Test if Internet is available.
52
52
 
@@ -63,7 +63,7 @@ def has_internet():
63
63
  return Internet().is_present()
64
64
 
65
65
 
66
- def has_latex():
66
+ def has_latex() -> bool:
67
67
  """
68
68
  Test if Latex is available.
69
69
 
@@ -77,7 +77,7 @@ def has_latex():
77
77
  return latex().is_present()
78
78
 
79
79
 
80
- def has_xelatex():
80
+ def has_xelatex() -> bool:
81
81
  """
82
82
  Test if xelatex is available.
83
83
 
@@ -91,7 +91,7 @@ def has_xelatex():
91
91
  return xelatex().is_present()
92
92
 
93
93
 
94
- def has_pdflatex():
94
+ def has_pdflatex() -> bool:
95
95
  """
96
96
  Test if pdflatex is available.
97
97
 
@@ -105,7 +105,7 @@ def has_pdflatex():
105
105
  return pdflatex().is_present()
106
106
 
107
107
 
108
- def has_lualatex():
108
+ def has_lualatex() -> bool:
109
109
  """
110
110
  Test if lualatex is available.
111
111
 
@@ -119,7 +119,7 @@ def has_lualatex():
119
119
  return lualatex().is_present()
120
120
 
121
121
 
122
- def has_magma():
122
+ def has_magma() -> bool:
123
123
  """
124
124
  Test if Magma is available.
125
125
 
@@ -133,7 +133,7 @@ def has_magma():
133
133
  return Magma().is_present()
134
134
 
135
135
 
136
- def has_matlab():
136
+ def has_matlab() -> bool:
137
137
  """
138
138
  Test if Matlab is available.
139
139
 
@@ -147,7 +147,7 @@ def has_matlab():
147
147
  return Matlab().is_present()
148
148
 
149
149
 
150
- def has_mathematica():
150
+ def has_mathematica() -> bool:
151
151
  """
152
152
  Test if Mathematica is available.
153
153
 
@@ -161,7 +161,7 @@ def has_mathematica():
161
161
  return Mathematica().is_present()
162
162
 
163
163
 
164
- def has_maple():
164
+ def has_maple() -> bool:
165
165
  """
166
166
  Test if Maple is available.
167
167
 
@@ -175,7 +175,7 @@ def has_maple():
175
175
  return Maple().is_present()
176
176
 
177
177
 
178
- def has_macaulay2():
178
+ def has_macaulay2() -> bool:
179
179
  """
180
180
  Test if Macaulay2 is available.
181
181
 
@@ -189,7 +189,7 @@ def has_macaulay2():
189
189
  return Macaulay2().is_present()
190
190
 
191
191
 
192
- def has_octave():
192
+ def has_octave() -> bool:
193
193
  """
194
194
  Test if Octave is available.
195
195
 
@@ -203,7 +203,7 @@ def has_octave():
203
203
  return Octave().is_present()
204
204
 
205
205
 
206
- def has_pandoc():
206
+ def has_pandoc() -> bool:
207
207
  """
208
208
  Test if pandoc is available.
209
209
 
@@ -217,7 +217,7 @@ def has_pandoc():
217
217
  return Pandoc().is_present()
218
218
 
219
219
 
220
- def has_scilab():
220
+ def has_scilab() -> bool:
221
221
  """
222
222
  Test if Scilab is available.
223
223
 
@@ -235,7 +235,7 @@ def has_scilab():
235
235
  return False
236
236
 
237
237
 
238
- def has_cplex():
238
+ def has_cplex() -> bool:
239
239
  """
240
240
  Test if CPLEX is available.
241
241
 
@@ -249,7 +249,7 @@ def has_cplex():
249
249
  return CPLEX().is_present()
250
250
 
251
251
 
252
- def has_gurobi():
252
+ def has_gurobi() -> bool:
253
253
  """
254
254
  Test if Gurobi is available.
255
255
 
@@ -263,7 +263,7 @@ def has_gurobi():
263
263
  return Gurobi().is_present()
264
264
 
265
265
 
266
- def has_graphviz():
266
+ def has_graphviz() -> bool:
267
267
  """
268
268
  Test if graphviz (dot, twopi, neato) are available.
269
269
 
@@ -277,7 +277,7 @@ def has_graphviz():
277
277
  return Graphviz().is_present()
278
278
 
279
279
 
280
- def has_ffmpeg():
280
+ def has_ffmpeg() -> bool:
281
281
  """
282
282
  Test if ffmpeg is available.
283
283
 
@@ -291,7 +291,7 @@ def has_ffmpeg():
291
291
  return FFmpeg().is_present()
292
292
 
293
293
 
294
- def has_imagemagick():
294
+ def has_imagemagick() -> bool:
295
295
  """
296
296
  Test if ImageMagick (command magick or convert) is available.
297
297
 
@@ -305,7 +305,7 @@ def has_imagemagick():
305
305
  return ImageMagick().is_present()
306
306
 
307
307
 
308
- def has_dvipng():
308
+ def has_dvipng() -> bool:
309
309
  """
310
310
  Test if dvipng is available.
311
311
 
@@ -319,7 +319,7 @@ def has_dvipng():
319
319
  return dvipng().is_present()
320
320
 
321
321
 
322
- def has_pdf2svg():
322
+ def has_pdf2svg() -> bool:
323
323
  """
324
324
  Test if pdf2svg is available.
325
325
 
@@ -333,7 +333,7 @@ def has_pdf2svg():
333
333
  return pdf2svg().is_present()
334
334
 
335
335
 
336
- def has_rubiks():
336
+ def has_rubiks() -> bool:
337
337
  """
338
338
  Test if the rubiks package (``cu2``, ``cubex``, ``dikcube``,
339
339
  ``mcube``, ``optimal``, and ``size222``) is available.
@@ -348,7 +348,7 @@ def has_rubiks():
348
348
  return Rubiks().is_present()
349
349
 
350
350
 
351
- def has_4ti2():
351
+ def has_4ti2() -> bool:
352
352
  """
353
353
  Test if the 4ti2 package is available.
354
354
 
@@ -366,6 +366,10 @@ def external_features():
366
366
  r"""
367
367
  Generate the features that are only to be tested if ``--optional=external`` is used.
368
368
 
369
+ .. SEEALSO::
370
+
371
+ :func:`sage.features.all.all_features`
372
+
369
373
  EXAMPLES::
370
374
 
371
375
  sage: from sage.doctest.external import external_features
@@ -387,7 +391,7 @@ def external_features():
387
391
  yield Gurobi()
388
392
 
389
393
 
390
- def external_software() -> list[str]:
394
+ def _external_software() -> list[str]:
391
395
  """
392
396
  Return the alphabetical list of external software supported by this module.
393
397
 
@@ -400,7 +404,7 @@ def external_software() -> list[str]:
400
404
  return sorted(f.name for f in external_features())
401
405
 
402
406
 
403
- external_software = external_software()
407
+ external_software: list[str] = _external_software()
404
408
 
405
409
 
406
410
  class AvailableSoftware: