passagemath-environment 10.4.1__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 (70) hide show
  1. passagemath_environment-10.4.1.data/scripts/sage +1140 -0
  2. passagemath_environment-10.4.1.data/scripts/sage-env +667 -0
  3. passagemath_environment-10.4.1.data/scripts/sage-num-threads.py +105 -0
  4. passagemath_environment-10.4.1.data/scripts/sage-python +2 -0
  5. passagemath_environment-10.4.1.data/scripts/sage-venv-config +42 -0
  6. passagemath_environment-10.4.1.data/scripts/sage-version.sh +9 -0
  7. passagemath_environment-10.4.1.dist-info/METADATA +76 -0
  8. passagemath_environment-10.4.1.dist-info/RECORD +70 -0
  9. passagemath_environment-10.4.1.dist-info/WHEEL +5 -0
  10. passagemath_environment-10.4.1.dist-info/top_level.txt +1 -0
  11. sage/all__sagemath_environment.py +4 -0
  12. sage/env.py +496 -0
  13. sage/features/__init__.py +981 -0
  14. sage/features/all.py +126 -0
  15. sage/features/bliss.py +85 -0
  16. sage/features/cddlib.py +38 -0
  17. sage/features/coxeter3.py +45 -0
  18. sage/features/csdp.py +83 -0
  19. sage/features/cython.py +38 -0
  20. sage/features/databases.py +302 -0
  21. sage/features/dvipng.py +40 -0
  22. sage/features/ecm.py +42 -0
  23. sage/features/ffmpeg.py +119 -0
  24. sage/features/four_ti_2.py +55 -0
  25. sage/features/fricas.py +66 -0
  26. sage/features/gap.py +86 -0
  27. sage/features/gfan.py +38 -0
  28. sage/features/giac.py +30 -0
  29. sage/features/graph_generators.py +171 -0
  30. sage/features/graphviz.py +117 -0
  31. sage/features/igraph.py +44 -0
  32. sage/features/imagemagick.py +138 -0
  33. sage/features/interfaces.py +256 -0
  34. sage/features/internet.py +65 -0
  35. sage/features/jmol.py +44 -0
  36. sage/features/join_feature.py +146 -0
  37. sage/features/kenzo.py +77 -0
  38. sage/features/latex.py +300 -0
  39. sage/features/latte.py +85 -0
  40. sage/features/lrs.py +164 -0
  41. sage/features/mcqd.py +45 -0
  42. sage/features/meataxe.py +46 -0
  43. sage/features/mip_backends.py +114 -0
  44. sage/features/msolve.py +68 -0
  45. sage/features/nauty.py +70 -0
  46. sage/features/normaliz.py +43 -0
  47. sage/features/palp.py +65 -0
  48. sage/features/pandoc.py +42 -0
  49. sage/features/pdf2svg.py +41 -0
  50. sage/features/phitigra.py +42 -0
  51. sage/features/pkg_systems.py +195 -0
  52. sage/features/polymake.py +43 -0
  53. sage/features/poppler.py +58 -0
  54. sage/features/rubiks.py +180 -0
  55. sage/features/sagemath.py +1205 -0
  56. sage/features/sat.py +103 -0
  57. sage/features/singular.py +48 -0
  58. sage/features/sirocco.py +45 -0
  59. sage/features/sphinx.py +71 -0
  60. sage/features/standard.py +38 -0
  61. sage/features/symengine_py.py +44 -0
  62. sage/features/tdlib.py +38 -0
  63. sage/features/threejs.py +75 -0
  64. sage/features/topcom.py +67 -0
  65. sage/misc/all__sagemath_environment.py +2 -0
  66. sage/misc/package.py +570 -0
  67. sage/misc/package_dir.py +621 -0
  68. sage/misc/temporary_file.py +546 -0
  69. sage/misc/viewer.py +369 -0
  70. sage/version.py +5 -0
sage/misc/viewer.py ADDED
@@ -0,0 +1,369 @@
1
+ # sage_setup: distribution = sagemath-environment
2
+ r"""
3
+ Determination of programs for viewing web pages, etc.
4
+
5
+ The function :func:`default_viewer` defines reasonable defaults for
6
+ these programs. To use something else, use ``viewer``. First
7
+ import it::
8
+
9
+ sage: from sage.misc.viewer import viewer
10
+
11
+ On OS X, PDFs are opened by default using the 'open' command, which
12
+ runs whatever has been designated as the PDF viewer in the OS. To
13
+ change this to use 'Adobe Reader'::
14
+
15
+ sage: viewer.pdf_viewer('open -a /Applications/Adobe\ Reader.app') # not tested
16
+
17
+ Similarly, you can set ``viewer.browser(...)``, ``viewer.dvi_viewer(...)``,
18
+ and ``viewer.png_viewer(...)``. You can make this change permanent by adding
19
+ lines like these to your :file:`SAGE_STARTUP_FILE` (which is
20
+ :file:`$HOME/.sage/init.sage` by default)::
21
+
22
+ from sage.misc.viewer import viewer
23
+ viewer.pdf_viewer('open -a /Applications/Adobe\ Reader.app')
24
+
25
+ Functions and classes
26
+ ---------------------
27
+ """
28
+
29
+ from sage.structure.sage_object import SageObject
30
+
31
+
32
+ VIEWERS = ['browser', 'dvi_viewer', 'pdf_viewer', 'png_viewer']
33
+
34
+
35
+ def default_viewer(viewer=None):
36
+ """
37
+ Set up default programs for opening web pages, PDFs, PNGs, and DVI files.
38
+
39
+ INPUT:
40
+
41
+ - ``viewer`` -- ``None`` or a string; one of ``'browser'``, ``'pdf'``,
42
+ ``'png'``, ``'dvi'``. Return the name of the corresponding program.
43
+ ``None`` is treated the same as ``'browser'``.
44
+
45
+ EXAMPLES::
46
+
47
+ sage: from sage.misc.viewer import default_viewer
48
+ sage: default_viewer(None) # random -- depends on OS, etc.
49
+ 'open'
50
+ sage: default_viewer('pdf') # random -- depends on OS, etc.
51
+ 'xdg-open'
52
+ sage: default_viewer('jpg')
53
+ Traceback (most recent call last):
54
+ ...
55
+ ValueError: Unknown type of viewer: jpg.
56
+ """
57
+ import os
58
+ from sage.misc.sage_ostools import have_program
59
+
60
+ if isinstance(viewer, str):
61
+ viewer = viewer.lower()
62
+
63
+ if 'BROWSER' in os.environ:
64
+ BROWSER = os.environ['BROWSER']
65
+ DVI_VIEWER = BROWSER
66
+ PDF_VIEWER = BROWSER
67
+ PNG_VIEWER = BROWSER
68
+
69
+ elif os.uname()[0] == 'Darwin':
70
+ # Simple on OS X, since there is an open command that opens
71
+ # anything, using the user's preferences.
72
+ BROWSER = 'open -W'
73
+ DVI_VIEWER = BROWSER
74
+ PDF_VIEWER = BROWSER
75
+ PNG_VIEWER = BROWSER
76
+
77
+ elif have_program('xdg-open'):
78
+ # On other OS'es try xdg-open if present.
79
+ # See http://portland.freedesktop.org/xdg-utils-1.0.
80
+ BROWSER = 'xdg-open'
81
+ DVI_VIEWER = BROWSER
82
+ PDF_VIEWER = BROWSER
83
+ PNG_VIEWER = BROWSER
84
+
85
+ else:
86
+ # If all fails try to get something from the environment.
87
+ try:
88
+ BROWSER = os.environ['BROWSER']
89
+ except KeyError:
90
+ BROWSER = 'less' # silly default; lets hope it doesn't come to this!
91
+ for cmd in ['firefox', 'konqueror', 'mozilla', 'mozilla-firefox']:
92
+ if have_program(cmd):
93
+ BROWSER = cmd
94
+ break
95
+ DVI_VIEWER = BROWSER
96
+ PDF_VIEWER = BROWSER
97
+ PNG_VIEWER = BROWSER
98
+
99
+ # Alternatives, if they are set in the environment or available.
100
+ try:
101
+ DVI_VIEWER = os.environ['DVI_VIEWER']
102
+ except KeyError:
103
+ for cmd in ['xdvi', 'kdvi']:
104
+ if have_program(cmd):
105
+ DVI_VIEWER = cmd
106
+ break
107
+ try:
108
+ PDF_VIEWER = os.environ['PDF_VIEWER']
109
+ except KeyError:
110
+ for cmd in ['acroread', 'xpdf']:
111
+ if have_program(cmd):
112
+ PDF_VIEWER = cmd
113
+ break
114
+
115
+ if viewer is None or viewer.startswith('browse'):
116
+ return BROWSER
117
+ elif viewer.startswith('dvi'):
118
+ return DVI_VIEWER
119
+ elif viewer.startswith('png'):
120
+ return PNG_VIEWER
121
+ elif viewer.startswith('pdf'):
122
+ return PDF_VIEWER
123
+ else:
124
+ raise ValueError('Unknown type of viewer: {}.'.format(viewer))
125
+
126
+
127
+ # _viewer_prefs: a dictionary holding global preferences for viewers.
128
+ _viewer_prefs = {}
129
+
130
+
131
+ class Viewer(SageObject):
132
+ """
133
+ Set defaults for various viewing applications: a web browser, a
134
+ dvi viewer, a pdf viewer, and a png viewer.
135
+
136
+ EXAMPLES::
137
+
138
+ sage: from sage.misc.viewer import viewer
139
+ sage: old_browser = viewer.browser() # indirect doctest
140
+ sage: viewer.browser('open -a /Applications/Firefox.app')
141
+ sage: viewer.browser()
142
+ 'open -a /Applications/Firefox.app'
143
+ sage: viewer.browser(old_browser) # restore old value
144
+ """
145
+ def _set(self, app=None, TYPE='browser'):
146
+ r"""
147
+ Change the default viewer. Return the current setting if the
148
+ argument ``app`` is ``None``.
149
+
150
+ INPUT:
151
+
152
+ - ``app`` -- ``None`` or a string; the program to use
153
+ - ``TYPE`` -- string (default: ``'browser'``); must be in the list
154
+ ``VIEWERS`` defined in :mod:`sage.misc.viewer`
155
+
156
+ EXAMPLES::
157
+
158
+ sage: from sage.misc.viewer import viewer
159
+ sage: old_browser = viewer.browser()
160
+ sage: viewer.browser('open -a /Applications/Firefox.app') # indirect doctest
161
+ sage: viewer.browser()
162
+ 'open -a /Applications/Firefox.app'
163
+ sage: viewer.browser(old_browser) # restore old value
164
+ """
165
+ TYPE = TYPE.lower()
166
+ if TYPE not in VIEWERS:
167
+ raise ValueError('Unrecognized type of viewer: {}'.format(TYPE))
168
+ if app is None:
169
+ try:
170
+ return _viewer_prefs[TYPE]
171
+ except KeyError:
172
+ return default_viewer(TYPE)
173
+ elif app == 'default':
174
+ try:
175
+ del _viewer_prefs[TYPE]
176
+ except KeyError:
177
+ pass
178
+ else:
179
+ _viewer_prefs[TYPE] = app
180
+
181
+ def browser(self, app=None):
182
+ r"""
183
+ Change the default browser. Return the current setting if arg
184
+ is ``None``, which is the default.
185
+
186
+ INPUT:
187
+
188
+ - ``app`` -- ``None`` or a string, the program to use
189
+
190
+ EXAMPLES::
191
+
192
+ sage: from sage.misc.viewer import viewer
193
+ sage: old_browser = viewer.browser()
194
+ sage: viewer.browser('open -a /Applications/Firefox.app') # indirect doctest
195
+ sage: viewer.browser()
196
+ 'open -a /Applications/Firefox.app'
197
+ sage: viewer.browser(old_browser) # restore old value
198
+ """
199
+ return self._set(app, TYPE='browser')
200
+
201
+ def dvi_viewer(self, app=None):
202
+ r"""
203
+ Change the default dvi viewer. Return the current setting if arg
204
+ is ``None``, which is the default.
205
+
206
+ INPUT:
207
+
208
+ - ``app`` -- ``None`` or a string, the program to use
209
+
210
+ EXAMPLES::
211
+
212
+ sage: from sage.misc.viewer import viewer
213
+ sage: old_dvi_app = viewer.dvi_viewer()
214
+ sage: viewer.dvi_viewer('/usr/bin/xdvi') # indirect doctest
215
+ sage: viewer.dvi_viewer()
216
+ '/usr/bin/xdvi'
217
+ sage: viewer.dvi_viewer(old_dvi_app) # restore old value
218
+ """
219
+ return self._set(app, TYPE='dvi_viewer')
220
+
221
+ def pdf_viewer(self, app=None):
222
+ r"""
223
+ Change the default pdf viewer. Return the current setting if arg
224
+ is ``None``, which is the default.
225
+
226
+ INPUT:
227
+
228
+ - ``app`` -- ``None`` or a string, the program to use
229
+
230
+ EXAMPLES::
231
+
232
+ sage: from sage.misc.viewer import viewer
233
+ sage: old_pdf_app = viewer.pdf_viewer()
234
+ sage: viewer.pdf_viewer('/usr/bin/pdfopen') # indirect doctest
235
+ sage: viewer.pdf_viewer()
236
+ '/usr/bin/pdfopen'
237
+ sage: viewer.pdf_viewer(old_pdf_app) # restore old value
238
+ """
239
+ return self._set(app, TYPE='pdf_viewer')
240
+
241
+ def png_viewer(self, app=None):
242
+ r"""
243
+ Change the default png viewer. Return the current setting if arg
244
+ is ``None``, which is the default.
245
+
246
+ INPUT:
247
+
248
+ - ``app`` -- ``None`` or a string, the program to use
249
+
250
+ EXAMPLES::
251
+
252
+ sage: from sage.misc.viewer import viewer
253
+ sage: old_png_app = viewer.png_viewer()
254
+ sage: viewer.png_viewer('display') # indirect doctest
255
+ sage: viewer.png_viewer()
256
+ 'display'
257
+ sage: viewer.png_viewer(old_png_app) # restore old value
258
+ """
259
+ return self._set(app, TYPE='png_viewer')
260
+
261
+ def __call__(self, x=None):
262
+ """
263
+ Return the current setting for a viewer program.
264
+
265
+ INPUT:
266
+
267
+ - ``x`` -- string
268
+
269
+ If ``x`` is ``None`` or starts with 'browse', then return the
270
+ current browser app. If ``x`` starts with 'dvi', return the
271
+ current dvi viewer, and similarly if ``x`` starts with 'png'
272
+ or 'pdf'.
273
+
274
+ EXAMPLES::
275
+
276
+ sage: from sage.misc.viewer import viewer
277
+ sage: viewer('pdf') # random -- depends on OS, etc.
278
+ 'mozilla'
279
+ sage: viewer('browser') == viewer()
280
+ True
281
+ """
282
+ if isinstance(x, str):
283
+ x = x.lower()
284
+
285
+ if x is None or x.startswith('browse'):
286
+ return self.browser()
287
+ elif x.startswith('dvi'):
288
+ return self.dvi_viewer()
289
+ elif x.startswith('png'):
290
+ return self.png_viewer()
291
+ elif x.startswith('pdf'):
292
+ return self.pdf_viewer()
293
+
294
+
295
+ viewer = Viewer()
296
+
297
+
298
+ def browser():
299
+ """
300
+ Return the program used to open a web page. By default, the
301
+ program used depends on the platform and other factors, like
302
+ settings of certain environment variables. To use a different
303
+ program, call ``viewer.browser('PROG')``, where 'PROG' is the
304
+ desired program.
305
+
306
+ EXAMPLES::
307
+
308
+ sage: from sage.misc.viewer import browser
309
+ sage: browser() # random -- depends on OS, etc.
310
+ 'open'
311
+ """
312
+ return viewer.browser()
313
+
314
+
315
+ def dvi_viewer():
316
+ """
317
+ Return the program used to display a dvi file. By default, the
318
+ program used depends on the platform and other factors, like
319
+ settings of certain environment variables. To use a different
320
+ program, call ``viewer.dvi_viewer('PROG')``, where 'PROG' is the
321
+ desired program.
322
+
323
+ EXAMPLES::
324
+
325
+ sage: from sage.misc.viewer import dvi_viewer
326
+ sage: dvi_viewer() # random -- depends on OS, etc.
327
+ 'open'
328
+ """
329
+ viewer()
330
+ return viewer.dvi_viewer()
331
+
332
+
333
+ def pdf_viewer():
334
+ """
335
+ Return the program used to display a pdf file. By default, the
336
+ program used depends on the platform and other factors, like
337
+ settings of certain environment variables. To use a different
338
+ program, call ``viewer.pdf_viewer('PROG')``, where 'PROG' is the
339
+ desired program.
340
+
341
+ EXAMPLES::
342
+
343
+ sage: from sage.misc.viewer import pdf_viewer, viewer
344
+ sage: old_pdf_app = viewer.pdf_viewer()
345
+ sage: viewer.pdf_viewer('acroread')
346
+ sage: pdf_viewer()
347
+ 'acroread'
348
+ sage: viewer.pdf_viewer('old_pdf_app')
349
+ """
350
+ viewer()
351
+ return viewer.pdf_viewer()
352
+
353
+
354
+ def png_viewer():
355
+ """
356
+ Return the program used to display a png file. By default, the
357
+ program used depends on the platform and other factors, like
358
+ settings of certain environment variables. To use a different
359
+ program, call ``viewer.png_viewer('PROG')``, where 'PROG' is the
360
+ desired program.
361
+
362
+ EXAMPLES::
363
+
364
+ sage: from sage.misc.viewer import png_viewer
365
+ sage: png_viewer() # random -- depends on OS, etc.
366
+ 'xdg-open'
367
+ """
368
+ viewer()
369
+ return viewer.png_viewer()
sage/version.py ADDED
@@ -0,0 +1,5 @@
1
+ # Sage version information for Python scripts
2
+ # This file is auto-generated by the sage-update-version script, do not edit!
3
+ version = '10.4.1'
4
+ date = '2024-10-15'
5
+ banner = 'passagemath version 10.4.1, Release Date: 2024-10-15'