passagemath-repl 10.4.17__tar.gz → 10.4.19__tar.gz

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 (258) hide show
  1. {passagemath_repl-10.4.17 → passagemath_repl-10.4.19}/MANIFEST.in +9 -0
  2. {passagemath_repl-10.4.17/passagemath_repl.egg-info → passagemath_repl-10.4.19}/PKG-INFO +3 -3
  3. passagemath_repl-10.4.19/VERSION.txt +1 -0
  4. {passagemath_repl-10.4.17 → passagemath_repl-10.4.19}/bin/sage-update-version +1 -0
  5. {passagemath_repl-10.4.17 → passagemath_repl-10.4.19}/bin/sage-version.sh +3 -3
  6. {passagemath_repl-10.4.17 → passagemath_repl-10.4.19}/known-test-failures.json +17 -12
  7. {passagemath_repl-10.4.17 → passagemath_repl-10.4.19/passagemath_repl.egg-info}/PKG-INFO +3 -3
  8. {passagemath_repl-10.4.17 → passagemath_repl-10.4.19}/passagemath_repl.egg-info/SOURCES.txt +8 -0
  9. {passagemath_repl-10.4.17 → passagemath_repl-10.4.19}/passagemath_repl.egg-info/requires.txt +2 -2
  10. {passagemath_repl-10.4.17 → passagemath_repl-10.4.19}/pyproject.toml +10 -2
  11. {passagemath_repl-10.4.17 → passagemath_repl-10.4.19}/pyproject.toml.m4 +8 -0
  12. {passagemath_repl-10.4.17 → passagemath_repl-10.4.19}/sage/doctest/rif_tol.py +1 -0
  13. passagemath_repl-10.4.19/sage/misc/benchmark.py +220 -0
  14. passagemath_repl-10.4.19/sage/misc/classgraph.py +130 -0
  15. passagemath_repl-10.4.19/sage/misc/copying.py +22 -0
  16. passagemath_repl-10.4.19/sage/misc/gperftools.py +382 -0
  17. passagemath_repl-10.4.19/sage/misc/messaging.py +86 -0
  18. passagemath_repl-10.4.19/sage/misc/python.py +70 -0
  19. passagemath_repl-10.4.19/sage/misc/remote_file.py +53 -0
  20. {passagemath_repl-10.4.17 → passagemath_repl-10.4.19}/sage/misc/sage_eval.py +12 -3
  21. passagemath_repl-10.4.19/sage/misc/sh.py +38 -0
  22. {passagemath_repl-10.4.17 → passagemath_repl-10.4.19}/sage/repl/interface_magic.py +4 -2
  23. passagemath_repl-10.4.17/VERSION.txt +0 -1
  24. {passagemath_repl-10.4.17 → passagemath_repl-10.4.19}/README.rst +0 -0
  25. {passagemath_repl-10.4.17 → passagemath_repl-10.4.19}/bin/math-readline +0 -0
  26. {passagemath_repl-10.4.17 → passagemath_repl-10.4.19}/bin/sage +0 -0
  27. {passagemath_repl-10.4.17 → passagemath_repl-10.4.19}/bin/sage-cachegrind +0 -0
  28. {passagemath_repl-10.4.17 → passagemath_repl-10.4.19}/bin/sage-callgrind +0 -0
  29. {passagemath_repl-10.4.17 → passagemath_repl-10.4.19}/bin/sage-cleaner +0 -0
  30. {passagemath_repl-10.4.17 → passagemath_repl-10.4.19}/bin/sage-coverage +0 -0
  31. {passagemath_repl-10.4.17 → passagemath_repl-10.4.19}/bin/sage-cython +0 -0
  32. {passagemath_repl-10.4.17 → passagemath_repl-10.4.19}/bin/sage-env +0 -0
  33. {passagemath_repl-10.4.17 → passagemath_repl-10.4.19}/bin/sage-env-config.in +0 -0
  34. {passagemath_repl-10.4.17 → passagemath_repl-10.4.19}/bin/sage-eval +0 -0
  35. {passagemath_repl-10.4.17 → passagemath_repl-10.4.19}/bin/sage-fixdoctests +0 -0
  36. {passagemath_repl-10.4.17 → passagemath_repl-10.4.19}/bin/sage-grep +0 -0
  37. {passagemath_repl-10.4.17 → passagemath_repl-10.4.19}/bin/sage-grepdoc +0 -0
  38. {passagemath_repl-10.4.17 → passagemath_repl-10.4.19}/bin/sage-inline-fortran +0 -0
  39. {passagemath_repl-10.4.17 → passagemath_repl-10.4.19}/bin/sage-ipynb2rst +0 -0
  40. {passagemath_repl-10.4.17 → passagemath_repl-10.4.19}/bin/sage-ipython +0 -0
  41. {passagemath_repl-10.4.17 → passagemath_repl-10.4.19}/bin/sage-list-packages +0 -0
  42. {passagemath_repl-10.4.17 → passagemath_repl-10.4.19}/bin/sage-massif +0 -0
  43. {passagemath_repl-10.4.17 → passagemath_repl-10.4.19}/bin/sage-notebook +0 -0
  44. {passagemath_repl-10.4.17 → passagemath_repl-10.4.19}/bin/sage-num-threads.py +0 -0
  45. {passagemath_repl-10.4.17 → passagemath_repl-10.4.19}/bin/sage-omega +0 -0
  46. {passagemath_repl-10.4.17 → passagemath_repl-10.4.19}/bin/sage-preparse +0 -0
  47. {passagemath_repl-10.4.17 → passagemath_repl-10.4.19}/bin/sage-python +0 -0
  48. {passagemath_repl-10.4.17 → passagemath_repl-10.4.19}/bin/sage-run +0 -0
  49. {passagemath_repl-10.4.17 → passagemath_repl-10.4.19}/bin/sage-run-cython +0 -0
  50. {passagemath_repl-10.4.17 → passagemath_repl-10.4.19}/bin/sage-runtests +0 -0
  51. {passagemath_repl-10.4.17 → passagemath_repl-10.4.19}/bin/sage-src-env-config.in +0 -0
  52. {passagemath_repl-10.4.17 → passagemath_repl-10.4.19}/bin/sage-startuptime.py +0 -0
  53. {passagemath_repl-10.4.17 → passagemath_repl-10.4.19}/bin/sage-valgrind +0 -0
  54. {passagemath_repl-10.4.17 → passagemath_repl-10.4.19}/bin/sage-venv-config +0 -0
  55. {passagemath_repl-10.4.17 → passagemath_repl-10.4.19}/passagemath_repl.egg-info/dependency_links.txt +0 -0
  56. {passagemath_repl-10.4.17 → passagemath_repl-10.4.19}/passagemath_repl.egg-info/top_level.txt +0 -0
  57. {passagemath_repl-10.4.17 → passagemath_repl-10.4.19}/requirements-editable.txt.m4 +0 -0
  58. {passagemath_repl-10.4.17 → passagemath_repl-10.4.19}/requirements.txt.m4 +0 -0
  59. {passagemath_repl-10.4.17 → passagemath_repl-10.4.19}/sage/all__sagemath_repl.py +0 -0
  60. {passagemath_repl-10.4.17 → passagemath_repl-10.4.19}/sage/doctest/__init__.py +0 -0
  61. {passagemath_repl-10.4.17 → passagemath_repl-10.4.19}/sage/doctest/__main__.py +0 -0
  62. {passagemath_repl-10.4.17 → passagemath_repl-10.4.19}/sage/doctest/all.py +0 -0
  63. {passagemath_repl-10.4.17 → passagemath_repl-10.4.19}/sage/doctest/check_tolerance.py +0 -0
  64. {passagemath_repl-10.4.17 → passagemath_repl-10.4.19}/sage/doctest/control.py +0 -0
  65. {passagemath_repl-10.4.17 → passagemath_repl-10.4.19}/sage/doctest/external.py +0 -0
  66. {passagemath_repl-10.4.17 → passagemath_repl-10.4.19}/sage/doctest/fixtures.py +0 -0
  67. {passagemath_repl-10.4.17 → passagemath_repl-10.4.19}/sage/doctest/forker.py +0 -0
  68. {passagemath_repl-10.4.17 → passagemath_repl-10.4.19}/sage/doctest/marked_output.py +0 -0
  69. {passagemath_repl-10.4.17 → passagemath_repl-10.4.19}/sage/doctest/parsing.py +0 -0
  70. {passagemath_repl-10.4.17 → passagemath_repl-10.4.19}/sage/doctest/parsing_test.py +0 -0
  71. {passagemath_repl-10.4.17 → passagemath_repl-10.4.19}/sage/doctest/reporting.py +0 -0
  72. {passagemath_repl-10.4.17 → passagemath_repl-10.4.19}/sage/doctest/sources.py +0 -0
  73. {passagemath_repl-10.4.17 → passagemath_repl-10.4.19}/sage/doctest/test.py +0 -0
  74. {passagemath_repl-10.4.17 → passagemath_repl-10.4.19}/sage/doctest/tests/1second.rst +0 -0
  75. {passagemath_repl-10.4.17 → passagemath_repl-10.4.19}/sage/doctest/tests/99seconds.rst +0 -0
  76. {passagemath_repl-10.4.17 → passagemath_repl-10.4.19}/sage/doctest/tests/abort.rst +0 -0
  77. {passagemath_repl-10.4.17 → passagemath_repl-10.4.19}/sage/doctest/tests/atexit.rst +0 -0
  78. {passagemath_repl-10.4.17 → passagemath_repl-10.4.19}/sage/doctest/tests/fail_and_die.rst +0 -0
  79. {passagemath_repl-10.4.17 → passagemath_repl-10.4.19}/sage/doctest/tests/initial.rst +0 -0
  80. {passagemath_repl-10.4.17 → passagemath_repl-10.4.19}/sage/doctest/tests/interrupt.rst +0 -0
  81. {passagemath_repl-10.4.17 → passagemath_repl-10.4.19}/sage/doctest/tests/interrupt_diehard.rst +0 -0
  82. {passagemath_repl-10.4.17 → passagemath_repl-10.4.19}/sage/doctest/tests/keyboardinterrupt.rst +0 -0
  83. {passagemath_repl-10.4.17 → passagemath_repl-10.4.19}/sage/doctest/tests/longtime.rst +0 -0
  84. {passagemath_repl-10.4.17 → passagemath_repl-10.4.19}/sage/doctest/tests/nodoctest +0 -0
  85. {passagemath_repl-10.4.17 → passagemath_repl-10.4.19}/sage/doctest/tests/random_seed.rst +0 -0
  86. {passagemath_repl-10.4.17 → passagemath_repl-10.4.19}/sage/doctest/tests/show_skipped.rst +0 -0
  87. {passagemath_repl-10.4.17 → passagemath_repl-10.4.19}/sage/doctest/tests/sig_on.rst +0 -0
  88. {passagemath_repl-10.4.17 → passagemath_repl-10.4.19}/sage/doctest/tests/simple_failure.rst +0 -0
  89. {passagemath_repl-10.4.17 → passagemath_repl-10.4.19}/sage/doctest/tests/sleep_and_raise.rst +0 -0
  90. {passagemath_repl-10.4.17 → passagemath_repl-10.4.19}/sage/doctest/tests/tolerance.rst +0 -0
  91. {passagemath_repl-10.4.17 → passagemath_repl-10.4.19}/sage/doctest/util.py +0 -0
  92. {passagemath_repl-10.4.17 → passagemath_repl-10.4.19}/sage/misc/all__sagemath_repl.py +0 -0
  93. {passagemath_repl-10.4.17 → passagemath_repl-10.4.19}/sage/misc/banner.py +0 -0
  94. {passagemath_repl-10.4.17 → passagemath_repl-10.4.19}/sage/misc/cython.py +0 -0
  95. {passagemath_repl-10.4.17 → passagemath_repl-10.4.19}/sage/misc/dev_tools.py +0 -0
  96. {passagemath_repl-10.4.17 → passagemath_repl-10.4.19}/sage/misc/edit_module.py +0 -0
  97. {passagemath_repl-10.4.17 → passagemath_repl-10.4.19}/sage/misc/explain_pickle.py +0 -0
  98. {passagemath_repl-10.4.17 → passagemath_repl-10.4.19}/sage/misc/inline_fortran.py +0 -0
  99. {passagemath_repl-10.4.17 → passagemath_repl-10.4.19}/sage/misc/pager.py +0 -0
  100. {passagemath_repl-10.4.17 → passagemath_repl-10.4.19}/sage/misc/profiler.py +0 -0
  101. {passagemath_repl-10.4.17 → passagemath_repl-10.4.19}/sage/misc/sage_input.py +0 -0
  102. {passagemath_repl-10.4.17 → passagemath_repl-10.4.19}/sage/misc/sagedoc.py +0 -0
  103. {passagemath_repl-10.4.17 → passagemath_repl-10.4.19}/sage/misc/trace.py +0 -0
  104. {passagemath_repl-10.4.17 → passagemath_repl-10.4.19}/sage/repl/__init__.py +0 -0
  105. {passagemath_repl-10.4.17 → passagemath_repl-10.4.19}/sage/repl/all.py +0 -0
  106. {passagemath_repl-10.4.17 → passagemath_repl-10.4.19}/sage/repl/attach.py +0 -0
  107. {passagemath_repl-10.4.17 → passagemath_repl-10.4.19}/sage/repl/configuration.py +0 -0
  108. {passagemath_repl-10.4.17 → passagemath_repl-10.4.19}/sage/repl/display/__init__.py +0 -0
  109. {passagemath_repl-10.4.17 → passagemath_repl-10.4.19}/sage/repl/display/fancy_repr.py +0 -0
  110. {passagemath_repl-10.4.17 → passagemath_repl-10.4.19}/sage/repl/display/formatter.py +0 -0
  111. {passagemath_repl-10.4.17 → passagemath_repl-10.4.19}/sage/repl/display/jsmol_iframe.py +0 -0
  112. {passagemath_repl-10.4.17 → passagemath_repl-10.4.19}/sage/repl/display/pretty_print.py +0 -0
  113. {passagemath_repl-10.4.17 → passagemath_repl-10.4.19}/sage/repl/display/util.py +0 -0
  114. {passagemath_repl-10.4.17 → passagemath_repl-10.4.19}/sage/repl/image.py +0 -0
  115. {passagemath_repl-10.4.17 → passagemath_repl-10.4.19}/sage/repl/inputhook.py +0 -0
  116. {passagemath_repl-10.4.17 → passagemath_repl-10.4.19}/sage/repl/interpreter.py +0 -0
  117. {passagemath_repl-10.4.17 → passagemath_repl-10.4.19}/sage/repl/ipython_extension.py +0 -0
  118. {passagemath_repl-10.4.17 → passagemath_repl-10.4.19}/sage/repl/ipython_kernel/__init__.py +0 -0
  119. {passagemath_repl-10.4.17 → passagemath_repl-10.4.19}/sage/repl/ipython_kernel/__main__.py +0 -0
  120. {passagemath_repl-10.4.17 → passagemath_repl-10.4.19}/sage/repl/ipython_kernel/all_jupyter.py +0 -0
  121. {passagemath_repl-10.4.17 → passagemath_repl-10.4.19}/sage/repl/ipython_kernel/install.py +0 -0
  122. {passagemath_repl-10.4.17 → passagemath_repl-10.4.19}/sage/repl/ipython_kernel/interact.py +0 -0
  123. {passagemath_repl-10.4.17 → passagemath_repl-10.4.19}/sage/repl/ipython_kernel/kernel.py +0 -0
  124. {passagemath_repl-10.4.17 → passagemath_repl-10.4.19}/sage/repl/ipython_kernel/widgets.py +0 -0
  125. {passagemath_repl-10.4.17 → passagemath_repl-10.4.19}/sage/repl/ipython_kernel/widgets_sagenb.py +0 -0
  126. {passagemath_repl-10.4.17 → passagemath_repl-10.4.19}/sage/repl/ipython_tests.py +0 -0
  127. {passagemath_repl-10.4.17 → passagemath_repl-10.4.19}/sage/repl/load.py +0 -0
  128. {passagemath_repl-10.4.17 → passagemath_repl-10.4.19}/sage/repl/preparse.py +0 -0
  129. {passagemath_repl-10.4.17 → passagemath_repl-10.4.19}/sage/repl/prompts.py +0 -0
  130. {passagemath_repl-10.4.17 → passagemath_repl-10.4.19}/sage/repl/rich_output/__init__.py +0 -0
  131. {passagemath_repl-10.4.17 → passagemath_repl-10.4.19}/sage/repl/rich_output/backend_base.py +0 -0
  132. {passagemath_repl-10.4.17 → passagemath_repl-10.4.19}/sage/repl/rich_output/backend_doctest.py +0 -0
  133. {passagemath_repl-10.4.17 → passagemath_repl-10.4.19}/sage/repl/rich_output/backend_emacs.py +0 -0
  134. {passagemath_repl-10.4.17 → passagemath_repl-10.4.19}/sage/repl/rich_output/backend_ipython.py +0 -0
  135. {passagemath_repl-10.4.17 → passagemath_repl-10.4.19}/sage/repl/rich_output/buffer.py +0 -0
  136. {passagemath_repl-10.4.17 → passagemath_repl-10.4.19}/sage/repl/rich_output/display_manager.py +0 -0
  137. {passagemath_repl-10.4.17 → passagemath_repl-10.4.19}/sage/repl/rich_output/example.avi +0 -0
  138. {passagemath_repl-10.4.17 → passagemath_repl-10.4.19}/sage/repl/rich_output/example.canvas3d +0 -0
  139. {passagemath_repl-10.4.17 → passagemath_repl-10.4.19}/sage/repl/rich_output/example.dvi +0 -0
  140. {passagemath_repl-10.4.17 → passagemath_repl-10.4.19}/sage/repl/rich_output/example.flv +0 -0
  141. {passagemath_repl-10.4.17 → passagemath_repl-10.4.19}/sage/repl/rich_output/example.gif +0 -0
  142. {passagemath_repl-10.4.17 → passagemath_repl-10.4.19}/sage/repl/rich_output/example.jpg +0 -0
  143. {passagemath_repl-10.4.17 → passagemath_repl-10.4.19}/sage/repl/rich_output/example.mkv +0 -0
  144. {passagemath_repl-10.4.17 → passagemath_repl-10.4.19}/sage/repl/rich_output/example.mov +0 -0
  145. {passagemath_repl-10.4.17 → passagemath_repl-10.4.19}/sage/repl/rich_output/example.mp4 +0 -0
  146. {passagemath_repl-10.4.17 → passagemath_repl-10.4.19}/sage/repl/rich_output/example.ogv +0 -0
  147. {passagemath_repl-10.4.17 → passagemath_repl-10.4.19}/sage/repl/rich_output/example.pdf +0 -0
  148. {passagemath_repl-10.4.17 → passagemath_repl-10.4.19}/sage/repl/rich_output/example.png +0 -0
  149. {passagemath_repl-10.4.17 → passagemath_repl-10.4.19}/sage/repl/rich_output/example.svg +0 -0
  150. {passagemath_repl-10.4.17 → passagemath_repl-10.4.19}/sage/repl/rich_output/example.webm +0 -0
  151. {passagemath_repl-10.4.17 → passagemath_repl-10.4.19}/sage/repl/rich_output/example.wmv +0 -0
  152. {passagemath_repl-10.4.17 → passagemath_repl-10.4.19}/sage/repl/rich_output/example_jmol.spt.zip +0 -0
  153. {passagemath_repl-10.4.17 → passagemath_repl-10.4.19}/sage/repl/rich_output/example_wavefront_scene.mtl +0 -0
  154. {passagemath_repl-10.4.17 → passagemath_repl-10.4.19}/sage/repl/rich_output/example_wavefront_scene.obj +0 -0
  155. {passagemath_repl-10.4.17 → passagemath_repl-10.4.19}/sage/repl/rich_output/output_basic.py +0 -0
  156. {passagemath_repl-10.4.17 → passagemath_repl-10.4.19}/sage/repl/rich_output/output_browser.py +0 -0
  157. {passagemath_repl-10.4.17 → passagemath_repl-10.4.19}/sage/repl/rich_output/output_catalog.py +0 -0
  158. {passagemath_repl-10.4.17 → passagemath_repl-10.4.19}/sage/repl/rich_output/output_graphics.py +0 -0
  159. {passagemath_repl-10.4.17 → passagemath_repl-10.4.19}/sage/repl/rich_output/output_graphics3d.py +0 -0
  160. {passagemath_repl-10.4.17 → passagemath_repl-10.4.19}/sage/repl/rich_output/output_video.py +0 -0
  161. {passagemath_repl-10.4.17 → passagemath_repl-10.4.19}/sage/repl/rich_output/preferences.py +0 -0
  162. {passagemath_repl-10.4.17 → passagemath_repl-10.4.19}/sage/repl/rich_output/pretty_print.py +0 -0
  163. {passagemath_repl-10.4.17 → passagemath_repl-10.4.19}/sage/repl/rich_output/test_backend.py +0 -0
  164. {passagemath_repl-10.4.17 → passagemath_repl-10.4.19}/sage/repl/user_globals.py +0 -0
  165. {passagemath_repl-10.4.17 → passagemath_repl-10.4.19}/sage/tests/__init__.py +0 -0
  166. {passagemath_repl-10.4.17 → passagemath_repl-10.4.19}/sage/tests/all.py +0 -0
  167. {passagemath_repl-10.4.17 → passagemath_repl-10.4.19}/sage/tests/article_heuberger_krenn_kropf_fsm-in-sage.py +0 -0
  168. {passagemath_repl-10.4.17 → passagemath_repl-10.4.19}/sage/tests/arxiv_0812_2725.py +0 -0
  169. {passagemath_repl-10.4.17 → passagemath_repl-10.4.19}/sage/tests/benchmark.py +0 -0
  170. {passagemath_repl-10.4.17 → passagemath_repl-10.4.19}/sage/tests/book_schilling_zabrocki_kschur_primer.py +0 -0
  171. {passagemath_repl-10.4.17 → passagemath_repl-10.4.19}/sage/tests/book_stein_ent.py +0 -0
  172. {passagemath_repl-10.4.17 → passagemath_repl-10.4.19}/sage/tests/book_stein_modform.py +0 -0
  173. {passagemath_repl-10.4.17 → passagemath_repl-10.4.19}/sage/tests/books/__init__.py +0 -0
  174. {passagemath_repl-10.4.17 → passagemath_repl-10.4.19}/sage/tests/books/computational-mathematics-with-sagemath/README +0 -0
  175. {passagemath_repl-10.4.17 → passagemath_repl-10.4.19}/sage/tests/books/computational-mathematics-with-sagemath/__init__.py +0 -0
  176. {passagemath_repl-10.4.17 → passagemath_repl-10.4.19}/sage/tests/books/computational-mathematics-with-sagemath/calculus_doctest.py +0 -0
  177. {passagemath_repl-10.4.17 → passagemath_repl-10.4.19}/sage/tests/books/computational-mathematics-with-sagemath/combinat_doctest.py +0 -0
  178. {passagemath_repl-10.4.17 → passagemath_repl-10.4.19}/sage/tests/books/computational-mathematics-with-sagemath/domaines_doctest.py +0 -0
  179. {passagemath_repl-10.4.17 → passagemath_repl-10.4.19}/sage/tests/books/computational-mathematics-with-sagemath/float_doctest.py +0 -0
  180. {passagemath_repl-10.4.17 → passagemath_repl-10.4.19}/sage/tests/books/computational-mathematics-with-sagemath/graphique_doctest.py +0 -0
  181. {passagemath_repl-10.4.17 → passagemath_repl-10.4.19}/sage/tests/books/computational-mathematics-with-sagemath/graphtheory_doctest.py +0 -0
  182. {passagemath_repl-10.4.17 → passagemath_repl-10.4.19}/sage/tests/books/computational-mathematics-with-sagemath/integration_doctest.py +0 -0
  183. {passagemath_repl-10.4.17 → passagemath_repl-10.4.19}/sage/tests/books/computational-mathematics-with-sagemath/linalg_doctest.py +0 -0
  184. {passagemath_repl-10.4.17 → passagemath_repl-10.4.19}/sage/tests/books/computational-mathematics-with-sagemath/linsolve_doctest.py +0 -0
  185. {passagemath_repl-10.4.17 → passagemath_repl-10.4.19}/sage/tests/books/computational-mathematics-with-sagemath/lp_doctest.py +0 -0
  186. {passagemath_repl-10.4.17 → passagemath_repl-10.4.19}/sage/tests/books/computational-mathematics-with-sagemath/mpoly_doctest.py +0 -0
  187. {passagemath_repl-10.4.17 → passagemath_repl-10.4.19}/sage/tests/books/computational-mathematics-with-sagemath/nonlinear_doctest.py +0 -0
  188. {passagemath_repl-10.4.17 → passagemath_repl-10.4.19}/sage/tests/books/computational-mathematics-with-sagemath/numbertheory_doctest.py +0 -0
  189. {passagemath_repl-10.4.17 → passagemath_repl-10.4.19}/sage/tests/books/computational-mathematics-with-sagemath/polynomes_doctest.py +0 -0
  190. {passagemath_repl-10.4.17 → passagemath_repl-10.4.19}/sage/tests/books/computational-mathematics-with-sagemath/premierspas_doctest.py +0 -0
  191. {passagemath_repl-10.4.17 → passagemath_repl-10.4.19}/sage/tests/books/computational-mathematics-with-sagemath/programmation_doctest.py +0 -0
  192. {passagemath_repl-10.4.17 → passagemath_repl-10.4.19}/sage/tests/books/computational-mathematics-with-sagemath/recequadiff_doctest.py +0 -0
  193. {passagemath_repl-10.4.17 → passagemath_repl-10.4.19}/sage/tests/books/computational-mathematics-with-sagemath/sol/__init__.py +0 -0
  194. {passagemath_repl-10.4.17 → passagemath_repl-10.4.19}/sage/tests/books/computational-mathematics-with-sagemath/sol/calculus_doctest.py +0 -0
  195. {passagemath_repl-10.4.17 → passagemath_repl-10.4.19}/sage/tests/books/computational-mathematics-with-sagemath/sol/combinat_doctest.py +0 -0
  196. {passagemath_repl-10.4.17 → passagemath_repl-10.4.19}/sage/tests/books/computational-mathematics-with-sagemath/sol/domaines_doctest.py +0 -0
  197. {passagemath_repl-10.4.17 → passagemath_repl-10.4.19}/sage/tests/books/computational-mathematics-with-sagemath/sol/float_doctest.py +0 -0
  198. {passagemath_repl-10.4.17 → passagemath_repl-10.4.19}/sage/tests/books/computational-mathematics-with-sagemath/sol/graphique_doctest.py +0 -0
  199. {passagemath_repl-10.4.17 → passagemath_repl-10.4.19}/sage/tests/books/computational-mathematics-with-sagemath/sol/graphtheory_doctest.py +0 -0
  200. {passagemath_repl-10.4.17 → passagemath_repl-10.4.19}/sage/tests/books/computational-mathematics-with-sagemath/sol/integration_doctest.py +0 -0
  201. {passagemath_repl-10.4.17 → passagemath_repl-10.4.19}/sage/tests/books/computational-mathematics-with-sagemath/sol/linalg_doctest.py +0 -0
  202. {passagemath_repl-10.4.17 → passagemath_repl-10.4.19}/sage/tests/books/computational-mathematics-with-sagemath/sol/linsolve_doctest.py +0 -0
  203. {passagemath_repl-10.4.17 → passagemath_repl-10.4.19}/sage/tests/books/computational-mathematics-with-sagemath/sol/lp_doctest.py +0 -0
  204. {passagemath_repl-10.4.17 → passagemath_repl-10.4.19}/sage/tests/books/computational-mathematics-with-sagemath/sol/mpoly_doctest.py +0 -0
  205. {passagemath_repl-10.4.17 → passagemath_repl-10.4.19}/sage/tests/books/computational-mathematics-with-sagemath/sol/nonlinear_doctest.py +0 -0
  206. {passagemath_repl-10.4.17 → passagemath_repl-10.4.19}/sage/tests/books/computational-mathematics-with-sagemath/sol/numbertheory_doctest.py +0 -0
  207. {passagemath_repl-10.4.17 → passagemath_repl-10.4.19}/sage/tests/books/computational-mathematics-with-sagemath/sol/polynomes_doctest.py +0 -0
  208. {passagemath_repl-10.4.17 → passagemath_repl-10.4.19}/sage/tests/books/computational-mathematics-with-sagemath/sol/recequadiff_doctest.py +0 -0
  209. {passagemath_repl-10.4.17 → passagemath_repl-10.4.19}/sage/tests/books/judson-abstract-algebra/__init__.py +0 -0
  210. {passagemath_repl-10.4.17 → passagemath_repl-10.4.19}/sage/tests/books/judson-abstract-algebra/actions-sage-exercises.py +0 -0
  211. {passagemath_repl-10.4.17 → passagemath_repl-10.4.19}/sage/tests/books/judson-abstract-algebra/actions-sage.py +0 -0
  212. {passagemath_repl-10.4.17 → passagemath_repl-10.4.19}/sage/tests/books/judson-abstract-algebra/algcodes-sage.py +0 -0
  213. {passagemath_repl-10.4.17 → passagemath_repl-10.4.19}/sage/tests/books/judson-abstract-algebra/boolean-sage.py +0 -0
  214. {passagemath_repl-10.4.17 → passagemath_repl-10.4.19}/sage/tests/books/judson-abstract-algebra/cosets-sage-exercises.py +0 -0
  215. {passagemath_repl-10.4.17 → passagemath_repl-10.4.19}/sage/tests/books/judson-abstract-algebra/cosets-sage.py +0 -0
  216. {passagemath_repl-10.4.17 → passagemath_repl-10.4.19}/sage/tests/books/judson-abstract-algebra/crypt-sage.py +0 -0
  217. {passagemath_repl-10.4.17 → passagemath_repl-10.4.19}/sage/tests/books/judson-abstract-algebra/cyclic-sage.py +0 -0
  218. {passagemath_repl-10.4.17 → passagemath_repl-10.4.19}/sage/tests/books/judson-abstract-algebra/domains-sage.py +0 -0
  219. {passagemath_repl-10.4.17 → passagemath_repl-10.4.19}/sage/tests/books/judson-abstract-algebra/fields-sage.py +0 -0
  220. {passagemath_repl-10.4.17 → passagemath_repl-10.4.19}/sage/tests/books/judson-abstract-algebra/finite-sage.py +0 -0
  221. {passagemath_repl-10.4.17 → passagemath_repl-10.4.19}/sage/tests/books/judson-abstract-algebra/galois-sage.py +0 -0
  222. {passagemath_repl-10.4.17 → passagemath_repl-10.4.19}/sage/tests/books/judson-abstract-algebra/groups-sage.py +0 -0
  223. {passagemath_repl-10.4.17 → passagemath_repl-10.4.19}/sage/tests/books/judson-abstract-algebra/homomorph-sage-exercises.py +0 -0
  224. {passagemath_repl-10.4.17 → passagemath_repl-10.4.19}/sage/tests/books/judson-abstract-algebra/homomorph-sage.py +0 -0
  225. {passagemath_repl-10.4.17 → passagemath_repl-10.4.19}/sage/tests/books/judson-abstract-algebra/integers-sage.py +0 -0
  226. {passagemath_repl-10.4.17 → passagemath_repl-10.4.19}/sage/tests/books/judson-abstract-algebra/isomorph-sage.py +0 -0
  227. {passagemath_repl-10.4.17 → passagemath_repl-10.4.19}/sage/tests/books/judson-abstract-algebra/normal-sage.py +0 -0
  228. {passagemath_repl-10.4.17 → passagemath_repl-10.4.19}/sage/tests/books/judson-abstract-algebra/permute-sage.py +0 -0
  229. {passagemath_repl-10.4.17 → passagemath_repl-10.4.19}/sage/tests/books/judson-abstract-algebra/poly-sage.py +0 -0
  230. {passagemath_repl-10.4.17 → passagemath_repl-10.4.19}/sage/tests/books/judson-abstract-algebra/rings-sage.py +0 -0
  231. {passagemath_repl-10.4.17 → passagemath_repl-10.4.19}/sage/tests/books/judson-abstract-algebra/sets-sage.py +0 -0
  232. {passagemath_repl-10.4.17 → passagemath_repl-10.4.19}/sage/tests/books/judson-abstract-algebra/struct-sage.py +0 -0
  233. {passagemath_repl-10.4.17 → passagemath_repl-10.4.19}/sage/tests/books/judson-abstract-algebra/sylow-sage.py +0 -0
  234. {passagemath_repl-10.4.17 → passagemath_repl-10.4.19}/sage/tests/books/judson-abstract-algebra/vect-sage-exercises.py +0 -0
  235. {passagemath_repl-10.4.17 → passagemath_repl-10.4.19}/sage/tests/books/judson-abstract-algebra/vect-sage.py +0 -0
  236. {passagemath_repl-10.4.17 → passagemath_repl-10.4.19}/sage/tests/cmdline.py +0 -0
  237. {passagemath_repl-10.4.17 → passagemath_repl-10.4.19}/sage/tests/combinatorial_hopf_algebras.py +0 -0
  238. {passagemath_repl-10.4.17 → passagemath_repl-10.4.19}/sage/tests/cython.pyx +0 -0
  239. {passagemath_repl-10.4.17 → passagemath_repl-10.4.19}/sage/tests/finite_poset.py +0 -0
  240. {passagemath_repl-10.4.17 → passagemath_repl-10.4.19}/sage/tests/functools_partial_src.py +0 -0
  241. {passagemath_repl-10.4.17 → passagemath_repl-10.4.19}/sage/tests/gosper-sum.py +0 -0
  242. {passagemath_repl-10.4.17 → passagemath_repl-10.4.19}/sage/tests/lazy_imports.py +0 -0
  243. {passagemath_repl-10.4.17 → passagemath_repl-10.4.19}/sage/tests/memcheck/__init__.py +0 -0
  244. {passagemath_repl-10.4.17 → passagemath_repl-10.4.19}/sage/tests/memcheck/run_tests.py +0 -0
  245. {passagemath_repl-10.4.17 → passagemath_repl-10.4.19}/sage/tests/memcheck/run_tests_in_valgrind.py +0 -0
  246. {passagemath_repl-10.4.17 → passagemath_repl-10.4.19}/sage/tests/memcheck/symbolic_expression.py +0 -0
  247. {passagemath_repl-10.4.17 → passagemath_repl-10.4.19}/sage/tests/memcheck/verify_no_leak.py +0 -0
  248. {passagemath_repl-10.4.17 → passagemath_repl-10.4.19}/sage/tests/modular_group_cohomology.py +0 -0
  249. {passagemath_repl-10.4.17 → passagemath_repl-10.4.19}/sage/tests/numpy.py +0 -0
  250. {passagemath_repl-10.4.17 → passagemath_repl-10.4.19}/sage/tests/parigp.py +0 -0
  251. {passagemath_repl-10.4.17 → passagemath_repl-10.4.19}/sage/tests/startup.py +0 -0
  252. {passagemath_repl-10.4.17 → passagemath_repl-10.4.19}/sage/tests/stl_vector.pyx +0 -0
  253. {passagemath_repl-10.4.17 → passagemath_repl-10.4.19}/sage/tests/symbolic-series.py +0 -0
  254. {passagemath_repl-10.4.17 → passagemath_repl-10.4.19}/sage/tests/sympy.py +0 -0
  255. {passagemath_repl-10.4.17 → passagemath_repl-10.4.19}/sage/tests/test_deprecation.py +0 -0
  256. {passagemath_repl-10.4.17 → passagemath_repl-10.4.19}/setup.cfg +0 -0
  257. {passagemath_repl-10.4.17 → passagemath_repl-10.4.19}/setup.py +0 -0
  258. {passagemath_repl-10.4.17 → passagemath_repl-10.4.19}/tox.ini +0 -0
@@ -19,6 +19,15 @@ include sage/misc/pager.py
19
19
  include sage/misc/cython.py
20
20
  include sage/misc/inline_fortran.py
21
21
 
22
+ include sage/misc/benchmark.py
23
+ include sage/misc/classgraph.py
24
+ include sage/misc/copying.py
25
+ include sage/misc/gperftools.py
26
+ include sage/misc/messaging.py
27
+ include sage/misc/python.py
28
+ include sage/misc/remote_file.py
29
+ include sage/misc/sh.py
30
+
22
31
  include VERSION.txt
23
32
 
24
33
  global-exclude all__*.py
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.1
2
2
  Name: passagemath-repl
3
- Version: 10.4.17
3
+ Version: 10.4.19
4
4
  Summary: passagemath: IPython kernel, Sage preparser, doctester
5
5
  Author-email: The Sage Developers <sage-support@googlegroups.com>
6
6
  License: GNU General Public License (GPL) v2 or later
@@ -25,8 +25,8 @@ Classifier: Programming Language :: Python :: Implementation :: CPython
25
25
  Classifier: Topic :: Scientific/Engineering :: Mathematics
26
26
  Requires-Python: <3.13,>=3.9
27
27
  Description-Content-Type: text/x-rst
28
- Requires-Dist: passagemath-objects~=10.4.17
29
- Requires-Dist: passagemath-environment~=10.4.17
28
+ Requires-Dist: passagemath-objects~=10.4.19
29
+ Requires-Dist: passagemath-environment~=10.4.19
30
30
  Requires-Dist: ipykernel>=5.2.1
31
31
  Requires-Dist: ipython>=7.13.0
32
32
  Requires-Dist: ipywidgets>=7.5.1
@@ -0,0 +1 @@
1
+ 10.4.19
@@ -79,6 +79,7 @@ done
79
79
 
80
80
  # Update Sage version file for Python in SAGE_SRC/sage
81
81
  cat <<EOF > "$SAGE_SRC/sage/version.py"
82
+ # sage_setup: distribution = sagemath-environment
82
83
  # Sage version information for Python scripts
83
84
  # This file is auto-generated by the sage-update-version script, do not edit!
84
85
  version = '$SAGE_VERSION'
@@ -4,6 +4,6 @@
4
4
  # which stops "setup.py develop" from rewriting it as a Python file.
5
5
  :
6
6
  # This file is auto-generated by the sage-update-version script, do not edit!
7
- SAGE_VERSION='10.4.17'
8
- SAGE_RELEASE_DATE='2024-10-20'
9
- SAGE_VERSION_BANNER='passagemath version 10.4.17, Release Date: 2024-10-20'
7
+ SAGE_VERSION='10.4.19'
8
+ SAGE_RELEASE_DATE='2024-10-21'
9
+ SAGE_VERSION_BANNER='passagemath version 10.4.19, Release Date: 2024-10-21'
@@ -1,7 +1,14 @@
1
1
  {
2
+ "sage.doctest.__main__": {
3
+ "ntests": 9
4
+ },
5
+ "sage.doctest.check_tolerance": {
6
+ "failed": true,
7
+ "ntests": 19
8
+ },
2
9
  "sage.doctest.control": {
3
10
  "failed": true,
4
- "ntests": 229
11
+ "ntests": 228
5
12
  },
6
13
  "sage.doctest.external": {
7
14
  "ntests": 40
@@ -11,11 +18,15 @@
11
18
  },
12
19
  "sage.doctest.forker": {
13
20
  "failed": true,
14
- "ntests": 412
21
+ "ntests": 413
22
+ },
23
+ "sage.doctest.marked_output": {
24
+ "failed": true,
25
+ "ntests": 21
15
26
  },
16
27
  "sage.doctest.parsing": {
17
28
  "failed": true,
18
- "ntests": 308
29
+ "ntests": 273
19
30
  },
20
31
  "sage.doctest.reporting": {
21
32
  "ntests": 126
@@ -28,8 +39,7 @@
28
39
  "ntests": 23
29
40
  },
30
41
  "sage.doctest.util": {
31
- "failed": true,
32
- "ntests": 141
42
+ "ntests": 137
33
43
  },
34
44
  "sage.misc.sage_eval": {
35
45
  "failed": true,
@@ -50,8 +60,7 @@
50
60
  "ntests": 24
51
61
  },
52
62
  "sage.repl.display.formatter": {
53
- "failed": true,
54
- "ntests": 47
63
+ "ntests": 46
55
64
  },
56
65
  "sage.repl.display.jsmol_iframe": {
57
66
  "ntests": 24
@@ -63,10 +72,6 @@
63
72
  "sage.repl.display.util": {
64
73
  "ntests": 6
65
74
  },
66
- "sage.repl.image": {
67
- "failed": true,
68
- "ntests": 42
69
- },
70
75
  "sage.repl.inputhook": {
71
76
  "ntests": 7
72
77
  },
@@ -111,7 +116,7 @@
111
116
  },
112
117
  "sage.repl.preparse": {
113
118
  "failed": true,
114
- "ntests": 347
119
+ "ntests": 345
115
120
  },
116
121
  "sage.repl.rich_output.backend_base": {
117
122
  "failed": true,
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.1
2
2
  Name: passagemath-repl
3
- Version: 10.4.17
3
+ Version: 10.4.19
4
4
  Summary: passagemath: IPython kernel, Sage preparser, doctester
5
5
  Author-email: The Sage Developers <sage-support@googlegroups.com>
6
6
  License: GNU General Public License (GPL) v2 or later
@@ -25,8 +25,8 @@ Classifier: Programming Language :: Python :: Implementation :: CPython
25
25
  Classifier: Topic :: Scientific/Engineering :: Mathematics
26
26
  Requires-Python: <3.13,>=3.9
27
27
  Description-Content-Type: text/x-rst
28
- Requires-Dist: passagemath-objects~=10.4.17
29
- Requires-Dist: passagemath-environment~=10.4.17
28
+ Requires-Dist: passagemath-objects~=10.4.19
29
+ Requires-Dist: passagemath-environment~=10.4.19
30
30
  Requires-Dist: ipykernel>=5.2.1
31
31
  Requires-Dist: ipython>=7.13.0
32
32
  Requires-Dist: ipywidgets>=7.5.1
@@ -81,16 +81,24 @@ sage/doctest/tests/sleep_and_raise.rst
81
81
  sage/doctest/tests/tolerance.rst
82
82
  sage/misc/all__sagemath_repl.py
83
83
  sage/misc/banner.py
84
+ sage/misc/benchmark.py
85
+ sage/misc/classgraph.py
86
+ sage/misc/copying.py
84
87
  sage/misc/cython.py
85
88
  sage/misc/dev_tools.py
86
89
  sage/misc/edit_module.py
87
90
  sage/misc/explain_pickle.py
91
+ sage/misc/gperftools.py
88
92
  sage/misc/inline_fortran.py
93
+ sage/misc/messaging.py
89
94
  sage/misc/pager.py
90
95
  sage/misc/profiler.py
96
+ sage/misc/python.py
97
+ sage/misc/remote_file.py
91
98
  sage/misc/sage_eval.py
92
99
  sage/misc/sage_input.py
93
100
  sage/misc/sagedoc.py
101
+ sage/misc/sh.py
94
102
  sage/misc/trace.py
95
103
  sage/repl/__init__.py
96
104
  sage/repl/all.py
@@ -1,5 +1,5 @@
1
- passagemath-objects~=10.4.17
2
- passagemath-environment~=10.4.17
1
+ passagemath-objects~=10.4.19
2
+ passagemath-environment~=10.4.19
3
3
  ipykernel>=5.2.1
4
4
  ipython>=7.13.0
5
5
  ipywidgets>=7.5.1
@@ -10,8 +10,8 @@ build-backend = "setuptools.build_meta"
10
10
  name = "passagemath-repl"
11
11
  description = "passagemath: IPython kernel, Sage preparser, doctester"
12
12
  dependencies = [
13
- 'passagemath-objects ~= 10.4.17',
14
- 'passagemath-environment ~= 10.4.17',
13
+ 'passagemath-objects ~= 10.4.19',
14
+ 'passagemath-environment ~= 10.4.19',
15
15
  'ipykernel >=5.2.1',
16
16
  'ipython >=7.13.0',
17
17
  'ipywidgets >=7.5.1',
@@ -71,6 +71,14 @@ py-modules = [
71
71
  "sage.misc.pager",
72
72
  "sage.misc.cython",
73
73
  "sage.misc.inline_fortran",
74
+ "sage.misc.benchmark",
75
+ "sage.misc.classgraph",
76
+ "sage.misc.copying",
77
+ "sage.misc.gperftools",
78
+ "sage.misc.messaging",
79
+ "sage.misc.python",
80
+ "sage.misc.remote_file",
81
+ "sage.misc.sh",
74
82
  ]
75
83
  packages = [
76
84
  "sage.doctest",
@@ -46,6 +46,14 @@ py-modules = [
46
46
  "sage.misc.pager",
47
47
  "sage.misc.cython",
48
48
  "sage.misc.inline_fortran",
49
+ "sage.misc.benchmark",
50
+ "sage.misc.classgraph",
51
+ "sage.misc.copying",
52
+ "sage.misc.gperftools",
53
+ "sage.misc.messaging",
54
+ "sage.misc.python",
55
+ "sage.misc.remote_file",
56
+ "sage.misc.sh",
49
57
  ]
50
58
  packages = [
51
59
  "sage.doctest",
@@ -1,4 +1,5 @@
1
1
  # sage_setup: distribution = sagemath-repl
2
+ # sage.doctest: needs sage.rings.real_interval_field
2
3
  """
3
4
  Helpers for tolerance checking in doctests
4
5
  """
@@ -0,0 +1,220 @@
1
+ # sage_setup: distribution = sagemath-repl
2
+ "Benchmarks"
3
+
4
+ from sage.misc.misc import cputime
5
+
6
+ from sage.all import *
7
+
8
+
9
+ def benchmark(n=-1):
10
+ """
11
+ Run a well-chosen range of Sage commands and record the time it
12
+ takes for each to run.
13
+
14
+ INPUT:
15
+
16
+ - ``n`` -- integer (default: -1); the benchmark number; the default
17
+ of -1 runs all the benchmarks
18
+
19
+ OUTPUT:
20
+
21
+ list -- summary of timings for each benchmark.
22
+ int -- if n == -1, also return the total time
23
+
24
+ EXAMPLES::
25
+
26
+ sage: from sage.misc.benchmark import *
27
+ sage: _ = benchmark()
28
+ Running benchmark 0
29
+ Benchmark 0: Factor the following polynomial over
30
+ the rational numbers: (x^97+19*x+1)*(x^103-19*x^97+14)*(x^100-1)
31
+ Time: ... seconds
32
+ Running benchmark 1
33
+ Find the Mordell-Weil group of the elliptic curve 5077A using mwrank
34
+ Time: ... seconds
35
+ Running benchmark 2
36
+ Some basic arithmetic with very large Integer numbers: '3^1000001 * 19^100001
37
+ Time: ... seconds
38
+ Running benchmark 3
39
+ Some basic arithmetic with very large Rational numbers: '(2/3)^100001 * (17/19)^100001
40
+ Time: ... seconds
41
+ Running benchmark 4
42
+ Rational polynomial arithmetic using Sage. Compute (x^29+17*x-5)^200.
43
+ Time: ... seconds
44
+ Running benchmark 5
45
+ Rational polynomial arithmetic using Sage. Compute (x^19 - 18*x + 1)^50 one hundred times.
46
+ Time: ... seconds
47
+ Running benchmark 6
48
+ Compute the p-division polynomials of y^2 = x^3 + 37*x - 997 for primes p < 40.
49
+ Time: ... seconds
50
+ Running benchmark 7
51
+ Compute the Mordell-Weil group of y^2 = x^3 + 37*x - 997.
52
+ Time: ... seconds
53
+ Running benchmark 8
54
+ """
55
+
56
+ if isinstance(n, list):
57
+ t = cputime()
58
+ v = [benchmark(m) for m in n]
59
+ return v, cputime(t)
60
+
61
+ if n != -1:
62
+ print("Running benchmark {}".format(n))
63
+ try:
64
+ desc, t = eval("bench{}()".format(n))
65
+ except NameError:
66
+ raise RuntimeError("no benchmark {}".format(n))
67
+ print(desc)
68
+ print("Time: {} seconds".format(t))
69
+ return (n, t, desc)
70
+
71
+ t = cputime()
72
+ m = 0
73
+ v = []
74
+ while True:
75
+ try:
76
+ v.append(benchmark(m))
77
+ m += 1
78
+ except RuntimeError:
79
+ break
80
+ return v, cputime(t)
81
+
82
+
83
+ def bench0():
84
+ """
85
+ Run a benchmark.
86
+
87
+ BENCHMARK::
88
+
89
+ sage: from sage.misc.benchmark import *
90
+ sage: print(bench0()[0])
91
+ Benchmark 0: Factor the following polynomial over
92
+ the rational numbers: (x^97+19*x+1)*(x^103-19*x^97+14)*(x^100-1)
93
+ """
94
+ desc = """Benchmark 0: Factor the following polynomial over
95
+ the rational numbers: (x^97+19*x+1)*(x^103-19*x^97+14)*(x^100-1)"""
96
+ x = polygen(QQ, "x")
97
+ f = (x**97+19*x+1)*(x**103-19*x**97+14)*(x**100-1)
98
+ t = cputime()
99
+ F = f.factor()
100
+ return (desc, cputime(t))
101
+
102
+
103
+ def bench1():
104
+ """
105
+ Run a benchmark.
106
+
107
+ BENCHMARK::
108
+
109
+ sage: from sage.misc.benchmark import *
110
+ sage: print(bench1()[0])
111
+ Find the Mordell-Weil group of the elliptic curve 5077A using mwrank
112
+ """
113
+ desc = """Find the Mordell-Weil group of the elliptic curve 5077A using mwrank"""
114
+ E = mwrank_EllipticCurve([0, 0, 1, -7, 6])
115
+ t = cputime()
116
+ g = E.gens()
117
+ return (desc, cputime(t))
118
+
119
+
120
+ def bench2():
121
+ """
122
+ Run a benchmark.
123
+
124
+ BENCHMARK::
125
+
126
+ sage: from sage.misc.benchmark import *
127
+ sage: print(bench2()[0])
128
+ Some basic arithmetic with very large Integer numbers: '3^1000001 * 19^100001
129
+ """
130
+ desc = """Some basic arithmetic with very large Integer numbers: '3^1000001 * 19^100001"""
131
+ t = cputime()
132
+ a = ZZ(3)**1000001 * ZZ(19)**100001
133
+ return (desc, cputime(t))
134
+
135
+
136
+ def bench3():
137
+ """
138
+ Run a benchmark.
139
+
140
+ BENCHMARK::
141
+
142
+ sage: from sage.misc.benchmark import *
143
+ sage: print(bench3()[0])
144
+ Some basic arithmetic with very large Rational numbers: '(2/3)^100001 * (17/19)^100001
145
+ """
146
+ desc = """Some basic arithmetic with very large Rational numbers: '(2/3)^100001 * (17/19)^100001"""
147
+ t = cputime()
148
+ a = QQ((2, 3))**100001 * QQ((17, 19))**100001
149
+ return (desc, cputime(t))
150
+
151
+
152
+ def bench4():
153
+ """
154
+ Run a benchmark.
155
+
156
+ BENCHMARK::
157
+
158
+ sage: from sage.misc.benchmark import *
159
+ sage: print(bench4()[0])
160
+ Rational polynomial arithmetic using Sage. Compute (x^29+17*x-5)^200.
161
+ """
162
+ desc = """Rational polynomial arithmetic using Sage. Compute (x^29+17*x-5)^200."""
163
+ x = PolynomialRing(QQ, 'x').gen()
164
+ t = cputime()
165
+ f = x**29 + 17*x-5
166
+ a = f**200
167
+ return (desc, cputime(t))
168
+
169
+
170
+ def bench5():
171
+ """
172
+ Run a benchmark.
173
+
174
+ BENCHMARK::
175
+
176
+ sage: from sage.misc.benchmark import *
177
+ sage: print(bench5()[0])
178
+ Rational polynomial arithmetic using Sage. Compute (x^19 - 18*x + 1)^50 one hundred times.
179
+ """
180
+ desc = """Rational polynomial arithmetic using Sage. Compute (x^19 - 18*x + 1)^50 one hundred times."""
181
+ x = PolynomialRing(QQ, 'x').gen()
182
+ t = cputime()
183
+ f = x**19 - 18*x + 1
184
+ w = [f**50 for _ in range(100)]
185
+ return (desc, cputime(t))
186
+
187
+
188
+ def bench6():
189
+ """
190
+ Run a benchmark.
191
+
192
+ BENCHMARK::
193
+
194
+ sage: from sage.misc.benchmark import *
195
+ sage: print(bench6()[0])
196
+ Compute the p-division polynomials of y^2 = x^3 + 37*x - 997 for primes p < 40.
197
+ """
198
+ desc = """Compute the p-division polynomials of y^2 = x^3 + 37*x - 997 for primes p < 40."""
199
+ E = EllipticCurve([0, 0, 0, 37, -997])
200
+ t = cputime()
201
+ for p in [2, 3, 5, 7, 11, 13, 17, 19, 23, 29, 31, 37]:
202
+ f = E.division_polynomial(p)
203
+ return (desc, cputime(t))
204
+
205
+
206
+ def bench7():
207
+ """
208
+ Run a benchmark.
209
+
210
+ BENCHMARK::
211
+
212
+ sage: from sage.misc.benchmark import *
213
+ sage: print(bench7()[0])
214
+ Compute the Mordell-Weil group of y^2 = x^3 + 37*x - 997.
215
+ """
216
+ desc = """Compute the Mordell-Weil group of y^2 = x^3 + 37*x - 997."""
217
+ E = EllipticCurve([0, 0, 0, 37, -997])
218
+ t = cputime()
219
+ G = E.gens()
220
+ return (desc, cputime(t))
@@ -0,0 +1,130 @@
1
+ # sage_setup: distribution = sagemath-repl
2
+ r"""
3
+ Class inheritance graphs
4
+ """
5
+ # ****************************************************************************
6
+ # Copyright (C) 2007 William Stein <wstein@math.ucsd.edu>
7
+ # 2011 Nicolas M. Thiery <nthiery at users.sf.net>
8
+ #
9
+ # Distributed under the terms of the GNU General Public License (GPL)
10
+ # https://www.gnu.org/licenses/
11
+ # *****************************************************************************
12
+
13
+ import inspect
14
+
15
+
16
+ def class_graph(top, depth=5, name_filter=None, classes=None, as_graph=True):
17
+ """
18
+ Return the class inheritance graph of a module, class, or object.
19
+
20
+ INPUT:
21
+
22
+ - ``top`` -- the module, class, or object to start with (e.g. ``sage``,
23
+ ``Integer``, ``3``)
24
+ - ``depth`` -- maximal recursion depth within submodules (default: 5)
25
+ - ``name_filter`` -- e.g. 'sage.rings' to only consider classes in
26
+ :mod:`sage.rings`
27
+ - ``classes`` -- (optional) dictionary to be filled in (it is also returned)
28
+ - ``as_graph`` -- boolean (default: ``True``)
29
+
30
+ OUTPUT:
31
+
32
+ An oriented graph, with class names as vertices, and an edge
33
+ from each class to each of its bases.
34
+
35
+ EXAMPLES:
36
+
37
+ We construct the inheritance graph of the classes within a given module::
38
+
39
+ sage: from sage.rings.polynomial.padics import polynomial_padic_capped_relative_dense, polynomial_padic_flat
40
+ sage: G = class_graph(sage.rings.polynomial.padics); G
41
+ Digraph on 6 vertices
42
+ sage: G.vertices(sort=True)
43
+ ['Polynomial',
44
+ 'Polynomial_generic_cdv',
45
+ 'Polynomial_generic_dense',
46
+ 'Polynomial_padic',
47
+ 'Polynomial_padic_capped_relative_dense',
48
+ 'Polynomial_padic_flat']
49
+ sage: G.edges(sort=True, labels=False)
50
+ [('Polynomial_padic', 'Polynomial'),
51
+ ('Polynomial_padic_capped_relative_dense', 'Polynomial_generic_cdv'),
52
+ ('Polynomial_padic_capped_relative_dense', 'Polynomial_padic'),
53
+ ('Polynomial_padic_flat', 'Polynomial_generic_dense'),
54
+ ('Polynomial_padic_flat', 'Polynomial_padic')]
55
+
56
+ We construct the inheritance graph of a given class::
57
+
58
+ sage: class_graph(Parent).edges(sort=True, labels=False)
59
+ [('CategoryObject', 'SageObject'), ('Parent', 'CategoryObject'), ('SageObject', 'object')]
60
+
61
+ We construct the inheritance graph of the class of an object::
62
+
63
+ sage: class_graph([1,2,3]).edges(sort=True, labels=False)
64
+ [('list', 'object')]
65
+
66
+ .. warning:: the output of ``class_graph`` used to be a dictionary
67
+ mapping each class name to the list of names of its bases. This
68
+ can be emulated by setting the option ``as_graph`` to ``False``::
69
+
70
+ sage: class_graph(sage.rings.polynomial.padics, depth=2, as_graph=False)
71
+ {'Polynomial_padic': ['Polynomial'],
72
+ 'Polynomial_padic_capped_relative_dense': ['Polynomial_generic_cdv',
73
+ 'Polynomial_padic'],
74
+ 'Polynomial_padic_flat': ['Polynomial_generic_dense', 'Polynomial_padic']}
75
+
76
+ .. NOTE:: the ``classes`` and ``as_graph`` options are mostly
77
+ intended for internal recursive use.
78
+
79
+ .. NOTE:: ``class_graph`` does not yet handle nested classes
80
+
81
+ TESTS::
82
+
83
+ sage: G = class_graph(sage.rings.polynomial.padics, depth=2); G
84
+ Digraph on 6 vertices
85
+ """
86
+ # This function descends recursively down the submodules of the
87
+ # top module (if ``top`` is a module) and then down the hierarchy
88
+ # of classes. Along the way, the result is stored in the "global"
89
+ # dictionary ``classes`` which associates to each class the list
90
+ # of its bases.
91
+
92
+ # Termination
93
+ if depth < 0:
94
+ return classes
95
+
96
+ # (first recursive call)
97
+ if classes is None:
98
+ classes = {}
99
+
100
+ # Build the list ``children`` of submodules (resp. base classes)
101
+ # of ``top`` the function will recurse through
102
+ if inspect.ismodule(top):
103
+ if top.__name__.endswith('.all'): # Ignore sage.rings.all and friends
104
+ return classes
105
+ if name_filter is None:
106
+ name_filter = top.__name__
107
+ children = [item for item in top.__dict__.values()
108
+ if inspect.ismodule(item) or inspect.isclass(item)]
109
+ depth -= 1
110
+ elif inspect.isclass(top):
111
+ if name_filter is None:
112
+ name_filter = ""
113
+ if not top.__module__.startswith(name_filter):
114
+ return classes
115
+ children = top.__bases__
116
+ classes[top.__name__] = [e.__name__ for e in children]
117
+ else: # top is a plain Python object; inspect its class
118
+ children = [top.__class__]
119
+
120
+ # Recurse
121
+ for child in children:
122
+ class_graph(child, depth=depth, name_filter=name_filter,
123
+ classes=classes, as_graph=False)
124
+
125
+ # (first recursive call): construct the graph
126
+ if as_graph:
127
+ from sage.graphs.digraph import DiGraph
128
+ return DiGraph(classes)
129
+ else:
130
+ return classes
@@ -0,0 +1,22 @@
1
+ # sage_setup: distribution = sagemath-repl
2
+ "License"
3
+
4
+ import os
5
+ from sage.misc import pager
6
+
7
+ from sage.env import SAGE_ROOT
8
+
9
+
10
+ class License:
11
+ def __call__(self):
12
+ pager.pager()(str(self))
13
+
14
+ def __repr__(self):
15
+ return "Type license() to see the full license text."
16
+
17
+ def __str__(self):
18
+ with open(os.path.join(SAGE_ROOT, 'COPYING.txt')) as f:
19
+ return f.read()
20
+
21
+
22
+ license = License()