passagemath-repl 10.4.62__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 (162) hide show
  1. passagemath_repl-10.4.62.data/scripts/sage-cachegrind +25 -0
  2. passagemath_repl-10.4.62.data/scripts/sage-callgrind +16 -0
  3. passagemath_repl-10.4.62.data/scripts/sage-cleaner +230 -0
  4. passagemath_repl-10.4.62.data/scripts/sage-coverage +327 -0
  5. passagemath_repl-10.4.62.data/scripts/sage-eval +14 -0
  6. passagemath_repl-10.4.62.data/scripts/sage-fixdoctests +708 -0
  7. passagemath_repl-10.4.62.data/scripts/sage-inline-fortran +12 -0
  8. passagemath_repl-10.4.62.data/scripts/sage-ipynb2rst +50 -0
  9. passagemath_repl-10.4.62.data/scripts/sage-ipython +16 -0
  10. passagemath_repl-10.4.62.data/scripts/sage-massif +25 -0
  11. passagemath_repl-10.4.62.data/scripts/sage-notebook +267 -0
  12. passagemath_repl-10.4.62.data/scripts/sage-omega +25 -0
  13. passagemath_repl-10.4.62.data/scripts/sage-preparse +302 -0
  14. passagemath_repl-10.4.62.data/scripts/sage-run +27 -0
  15. passagemath_repl-10.4.62.data/scripts/sage-run-cython +10 -0
  16. passagemath_repl-10.4.62.data/scripts/sage-runtests +9 -0
  17. passagemath_repl-10.4.62.data/scripts/sage-startuptime.py +163 -0
  18. passagemath_repl-10.4.62.data/scripts/sage-valgrind +34 -0
  19. passagemath_repl-10.4.62.dist-info/METADATA +77 -0
  20. passagemath_repl-10.4.62.dist-info/RECORD +162 -0
  21. passagemath_repl-10.4.62.dist-info/WHEEL +5 -0
  22. passagemath_repl-10.4.62.dist-info/top_level.txt +1 -0
  23. sage/all__sagemath_repl.py +119 -0
  24. sage/doctest/__init__.py +4 -0
  25. sage/doctest/__main__.py +236 -0
  26. sage/doctest/all.py +4 -0
  27. sage/doctest/check_tolerance.py +261 -0
  28. sage/doctest/control.py +1727 -0
  29. sage/doctest/external.py +534 -0
  30. sage/doctest/fixtures.py +383 -0
  31. sage/doctest/forker.py +2665 -0
  32. sage/doctest/marked_output.py +102 -0
  33. sage/doctest/parsing.py +1708 -0
  34. sage/doctest/parsing_test.py +79 -0
  35. sage/doctest/reporting.py +733 -0
  36. sage/doctest/rif_tol.py +124 -0
  37. sage/doctest/sources.py +1657 -0
  38. sage/doctest/test.py +584 -0
  39. sage/doctest/tests/1second.rst +4 -0
  40. sage/doctest/tests/99seconds.rst +4 -0
  41. sage/doctest/tests/abort.rst +5 -0
  42. sage/doctest/tests/atexit.rst +7 -0
  43. sage/doctest/tests/fail_and_die.rst +6 -0
  44. sage/doctest/tests/initial.rst +15 -0
  45. sage/doctest/tests/interrupt.rst +7 -0
  46. sage/doctest/tests/interrupt_diehard.rst +14 -0
  47. sage/doctest/tests/keyboardinterrupt.rst +11 -0
  48. sage/doctest/tests/longtime.rst +5 -0
  49. sage/doctest/tests/nodoctest +5 -0
  50. sage/doctest/tests/random_seed.rst +4 -0
  51. sage/doctest/tests/show_skipped.rst +18 -0
  52. sage/doctest/tests/sig_on.rst +9 -0
  53. sage/doctest/tests/simple_failure.rst +8 -0
  54. sage/doctest/tests/sleep_and_raise.rst +106 -0
  55. sage/doctest/tests/tolerance.rst +31 -0
  56. sage/doctest/util.py +750 -0
  57. sage/interfaces/cleaner.py +48 -0
  58. sage/interfaces/quit.py +163 -0
  59. sage/misc/all__sagemath_repl.py +51 -0
  60. sage/misc/banner.py +235 -0
  61. sage/misc/benchmark.py +221 -0
  62. sage/misc/classgraph.py +131 -0
  63. sage/misc/copying.py +22 -0
  64. sage/misc/cython.py +694 -0
  65. sage/misc/dev_tools.py +745 -0
  66. sage/misc/edit_module.py +304 -0
  67. sage/misc/explain_pickle.py +3079 -0
  68. sage/misc/gperftools.py +361 -0
  69. sage/misc/inline_fortran.py +212 -0
  70. sage/misc/messaging.py +86 -0
  71. sage/misc/pager.py +21 -0
  72. sage/misc/profiler.py +179 -0
  73. sage/misc/python.py +70 -0
  74. sage/misc/remote_file.py +53 -0
  75. sage/misc/sage_eval.py +246 -0
  76. sage/misc/sage_input.py +3621 -0
  77. sage/misc/sagedoc.py +1742 -0
  78. sage/misc/sh.py +38 -0
  79. sage/misc/trace.py +90 -0
  80. sage/repl/__init__.py +16 -0
  81. sage/repl/all.py +15 -0
  82. sage/repl/attach.py +625 -0
  83. sage/repl/configuration.py +186 -0
  84. sage/repl/display/__init__.py +1 -0
  85. sage/repl/display/fancy_repr.py +354 -0
  86. sage/repl/display/formatter.py +318 -0
  87. sage/repl/display/jsmol_iframe.py +290 -0
  88. sage/repl/display/pretty_print.py +153 -0
  89. sage/repl/display/util.py +163 -0
  90. sage/repl/image.py +302 -0
  91. sage/repl/inputhook.py +91 -0
  92. sage/repl/interface_magic.py +298 -0
  93. sage/repl/interpreter.py +854 -0
  94. sage/repl/ipython_extension.py +593 -0
  95. sage/repl/ipython_kernel/__init__.py +1 -0
  96. sage/repl/ipython_kernel/__main__.py +4 -0
  97. sage/repl/ipython_kernel/all_jupyter.py +10 -0
  98. sage/repl/ipython_kernel/install.py +301 -0
  99. sage/repl/ipython_kernel/interact.py +278 -0
  100. sage/repl/ipython_kernel/kernel.py +217 -0
  101. sage/repl/ipython_kernel/widgets.py +466 -0
  102. sage/repl/ipython_kernel/widgets_sagenb.py +587 -0
  103. sage/repl/ipython_tests.py +163 -0
  104. sage/repl/load.py +326 -0
  105. sage/repl/preparse.py +2218 -0
  106. sage/repl/prompts.py +90 -0
  107. sage/repl/rich_output/__init__.py +4 -0
  108. sage/repl/rich_output/backend_base.py +648 -0
  109. sage/repl/rich_output/backend_doctest.py +316 -0
  110. sage/repl/rich_output/backend_emacs.py +151 -0
  111. sage/repl/rich_output/backend_ipython.py +596 -0
  112. sage/repl/rich_output/buffer.py +311 -0
  113. sage/repl/rich_output/display_manager.py +829 -0
  114. sage/repl/rich_output/example.avi +0 -0
  115. sage/repl/rich_output/example.canvas3d +1 -0
  116. sage/repl/rich_output/example.dvi +0 -0
  117. sage/repl/rich_output/example.flv +0 -0
  118. sage/repl/rich_output/example.gif +0 -0
  119. sage/repl/rich_output/example.jpg +0 -0
  120. sage/repl/rich_output/example.mkv +0 -0
  121. sage/repl/rich_output/example.mov +0 -0
  122. sage/repl/rich_output/example.mp4 +0 -0
  123. sage/repl/rich_output/example.ogv +0 -0
  124. sage/repl/rich_output/example.pdf +0 -0
  125. sage/repl/rich_output/example.png +0 -0
  126. sage/repl/rich_output/example.svg +54 -0
  127. sage/repl/rich_output/example.webm +0 -0
  128. sage/repl/rich_output/example.wmv +0 -0
  129. sage/repl/rich_output/example_jmol.spt.zip +0 -0
  130. sage/repl/rich_output/example_wavefront_scene.mtl +7 -0
  131. sage/repl/rich_output/example_wavefront_scene.obj +17 -0
  132. sage/repl/rich_output/output_basic.py +391 -0
  133. sage/repl/rich_output/output_browser.py +103 -0
  134. sage/repl/rich_output/output_catalog.py +54 -0
  135. sage/repl/rich_output/output_graphics.py +320 -0
  136. sage/repl/rich_output/output_graphics3d.py +345 -0
  137. sage/repl/rich_output/output_video.py +231 -0
  138. sage/repl/rich_output/preferences.py +432 -0
  139. sage/repl/rich_output/pretty_print.py +339 -0
  140. sage/repl/rich_output/test_backend.py +201 -0
  141. sage/repl/user_globals.py +214 -0
  142. sage/tests/__init__.py +1 -0
  143. sage/tests/all.py +3 -0
  144. sage/tests/article_heuberger_krenn_kropf_fsm-in-sage.py +630 -0
  145. sage/tests/arxiv_0812_2725.py +351 -0
  146. sage/tests/benchmark.py +1923 -0
  147. sage/tests/book_schilling_zabrocki_kschur_primer.py +795 -0
  148. sage/tests/book_stein_ent.py +651 -0
  149. sage/tests/book_stein_modform.py +558 -0
  150. sage/tests/cmdline.py +790 -0
  151. sage/tests/combinatorial_hopf_algebras.py +52 -0
  152. sage/tests/finite_poset.py +623 -0
  153. sage/tests/functools_partial_src.py +27 -0
  154. sage/tests/gosper-sum.py +218 -0
  155. sage/tests/lazy_imports.py +28 -0
  156. sage/tests/modular_group_cohomology.py +80 -0
  157. sage/tests/numpy.py +21 -0
  158. sage/tests/parigp.py +76 -0
  159. sage/tests/startup.py +27 -0
  160. sage/tests/symbolic-series.py +76 -0
  161. sage/tests/sympy.py +16 -0
  162. sage/tests/test_deprecation.py +31 -0
@@ -0,0 +1,124 @@
1
+ # sage_setup: distribution = sagemath-repl
2
+ # sage.doctest: needs sage.rings.real_interval_field
3
+ """
4
+ Helpers for tolerance checking in doctests
5
+ """
6
+
7
+ # ****************************************************************************
8
+ # Copyright (C) 2012-2018 David Roe <roed.math@gmail.com>
9
+ # 2012 Robert Bradshaw <robertwb@gmail.com>
10
+ # 2012 William Stein <wstein@gmail.com>
11
+ # 2013 R. Andrew Ohana
12
+ # 2013 Volker Braun
13
+ # 2013-2018 Jeroen Demeyer <jdemeyer@cage.ugent.be>
14
+ # 2016-2021 Frédéric Chapoton
15
+ # 2017-2018 Erik M. Bray
16
+ # 2020 Marc Mezzarobba
17
+ # 2020-2023 Matthias Koeppe
18
+ # 2022 John H. Palmieri
19
+ # 2022 Sébastien Labbé
20
+ # 2023 Kwankyu Lee
21
+ #
22
+ # Distributed under the terms of the GNU General Public License (GPL)
23
+ # as published by the Free Software Foundation; either version 2 of
24
+ # the License, or (at your option) any later version.
25
+ # https://www.gnu.org/licenses/
26
+ # ****************************************************************************
27
+
28
+ from sage.doctest.marked_output import MarkedOutput
29
+
30
+
31
+ _RIFtol = None
32
+
33
+
34
+ def RIFtol(*args):
35
+ """
36
+ Create an element of the real interval field used for doctest tolerances.
37
+
38
+ It allows large numbers like 1e1000, it parses strings with spaces
39
+ like ``RIF(" - 1 ")`` out of the box and it carries a lot of
40
+ precision. The latter is useful for testing libraries using
41
+ arbitrary precision but not guaranteed rounding such as PARI. We use
42
+ 1044 bits of precision, which should be good to deal with tolerances
43
+ on numbers computed with 1024 bits of precision.
44
+
45
+ The interval approach also means that we do not need to worry about
46
+ rounding errors and it is also very natural to see a number with
47
+ tolerance as an interval.
48
+
49
+ EXAMPLES::
50
+
51
+ sage: from sage.doctest.parsing import RIFtol
52
+ sage: RIFtol(-1, 1)
53
+ 0.?
54
+ sage: RIFtol(" - 1 ")
55
+ -1
56
+ sage: RIFtol("1e1000")
57
+ 1.00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000?e1000
58
+ """
59
+ global _RIFtol
60
+ if _RIFtol is None:
61
+ try:
62
+ # We need to import from sage.all to avoid circular imports.
63
+ from sage.rings.real_mpfi import RealIntervalField
64
+ except ImportError:
65
+ from warnings import warn
66
+ warn("RealIntervalField not available, ignoring all tolerance specifications in doctests")
67
+
68
+ def fake_RIFtol(*args):
69
+ return 0
70
+ _RIFtol = fake_RIFtol
71
+ else:
72
+ _RIFtol = RealIntervalField(1044)
73
+ return _RIFtol(*args)
74
+
75
+
76
+ def add_tolerance(wantval, want: MarkedOutput):
77
+ """
78
+ Enlarge the real interval element ``wantval`` according to
79
+ the tolerance options in ``want``.
80
+
81
+ INPUT:
82
+
83
+ - ``wantval`` -- a real interval element
84
+ - ``want`` -- a :class:`MarkedOutput` describing the tolerance
85
+
86
+ OUTPUT: an interval element containing ``wantval``
87
+
88
+ EXAMPLES::
89
+
90
+ sage: from sage.doctest.parsing import MarkedOutput, SageOutputChecker
91
+ sage: from sage.doctest.rif_tol import add_tolerance
92
+ sage: want_tol = MarkedOutput().update(tol=0.0001)
93
+ sage: want_abs = MarkedOutput().update(abs_tol=0.0001)
94
+ sage: want_rel = MarkedOutput().update(rel_tol=0.0001)
95
+ sage: add_tolerance(RIF(pi.n(64)), want_tol).endpoints() # needs sage.symbolic
96
+ (3.14127849432443, 3.14190681285516)
97
+ sage: add_tolerance(RIF(pi.n(64)), want_abs).endpoints() # needs sage.symbolic
98
+ (3.14149265358979, 3.14169265358980)
99
+ sage: add_tolerance(RIF(pi.n(64)), want_rel).endpoints() # needs sage.symbolic
100
+ (3.14127849432443, 3.14190681285516)
101
+ sage: add_tolerance(RIF(1e1000), want_tol)
102
+ 1.000?e1000
103
+ sage: add_tolerance(RIF(1e1000), want_abs)
104
+ 1.000000000000000?e1000
105
+ sage: add_tolerance(RIF(1e1000), want_rel)
106
+ 1.000?e1000
107
+ sage: add_tolerance(0, want_tol)
108
+ 0.000?
109
+ sage: add_tolerance(0, want_abs)
110
+ 0.000?
111
+ sage: add_tolerance(0, want_rel)
112
+ 0
113
+ """
114
+ if want.tol:
115
+ if wantval == 0:
116
+ return RIFtol(want.tol) * RIFtol(-1, 1)
117
+ else:
118
+ return wantval * (1 + RIFtol(want.tol) * RIFtol(-1, 1))
119
+ elif want.abs_tol:
120
+ return wantval + RIFtol(want.abs_tol) * RIFtol(-1, 1)
121
+ elif want.rel_tol:
122
+ return wantval * (1 + RIFtol(want.rel_tol) * RIFtol(-1, 1))
123
+ else:
124
+ return wantval