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.
- passagemath_environment-10.4.1.data/scripts/sage +1140 -0
- passagemath_environment-10.4.1.data/scripts/sage-env +667 -0
- passagemath_environment-10.4.1.data/scripts/sage-num-threads.py +105 -0
- passagemath_environment-10.4.1.data/scripts/sage-python +2 -0
- passagemath_environment-10.4.1.data/scripts/sage-venv-config +42 -0
- passagemath_environment-10.4.1.data/scripts/sage-version.sh +9 -0
- passagemath_environment-10.4.1.dist-info/METADATA +76 -0
- passagemath_environment-10.4.1.dist-info/RECORD +70 -0
- passagemath_environment-10.4.1.dist-info/WHEEL +5 -0
- passagemath_environment-10.4.1.dist-info/top_level.txt +1 -0
- sage/all__sagemath_environment.py +4 -0
- sage/env.py +496 -0
- sage/features/__init__.py +981 -0
- sage/features/all.py +126 -0
- sage/features/bliss.py +85 -0
- sage/features/cddlib.py +38 -0
- sage/features/coxeter3.py +45 -0
- sage/features/csdp.py +83 -0
- sage/features/cython.py +38 -0
- sage/features/databases.py +302 -0
- sage/features/dvipng.py +40 -0
- sage/features/ecm.py +42 -0
- sage/features/ffmpeg.py +119 -0
- sage/features/four_ti_2.py +55 -0
- sage/features/fricas.py +66 -0
- sage/features/gap.py +86 -0
- sage/features/gfan.py +38 -0
- sage/features/giac.py +30 -0
- sage/features/graph_generators.py +171 -0
- sage/features/graphviz.py +117 -0
- sage/features/igraph.py +44 -0
- sage/features/imagemagick.py +138 -0
- sage/features/interfaces.py +256 -0
- sage/features/internet.py +65 -0
- sage/features/jmol.py +44 -0
- sage/features/join_feature.py +146 -0
- sage/features/kenzo.py +77 -0
- sage/features/latex.py +300 -0
- sage/features/latte.py +85 -0
- sage/features/lrs.py +164 -0
- sage/features/mcqd.py +45 -0
- sage/features/meataxe.py +46 -0
- sage/features/mip_backends.py +114 -0
- sage/features/msolve.py +68 -0
- sage/features/nauty.py +70 -0
- sage/features/normaliz.py +43 -0
- sage/features/palp.py +65 -0
- sage/features/pandoc.py +42 -0
- sage/features/pdf2svg.py +41 -0
- sage/features/phitigra.py +42 -0
- sage/features/pkg_systems.py +195 -0
- sage/features/polymake.py +43 -0
- sage/features/poppler.py +58 -0
- sage/features/rubiks.py +180 -0
- sage/features/sagemath.py +1205 -0
- sage/features/sat.py +103 -0
- sage/features/singular.py +48 -0
- sage/features/sirocco.py +45 -0
- sage/features/sphinx.py +71 -0
- sage/features/standard.py +38 -0
- sage/features/symengine_py.py +44 -0
- sage/features/tdlib.py +38 -0
- sage/features/threejs.py +75 -0
- sage/features/topcom.py +67 -0
- sage/misc/all__sagemath_environment.py +2 -0
- sage/misc/package.py +570 -0
- sage/misc/package_dir.py +621 -0
- sage/misc/temporary_file.py +546 -0
- sage/misc/viewer.py +369 -0
- 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()
|