--
You received this message because you are subscribed to the Google Groups
"sage-support" group.
To unsubscribe from this group and stop receiving emails from it, send an email
to [email protected].
To post to this group, send email to [email protected].
Visit this group at http://groups.google.com/group/sage-support.
For more options, visit https://groups.google.com/d/optout.
***************************************************************************
IPython post-mortem report
{'commit_hash': 'af17558',
'commit_source': 'installation',
'default_encoding': 'UTF-8',
'ipython_path': '/usr/lib/python2.7/site-packages/IPython',
'ipython_version': '2.4.1',
'os_name': 'posix',
'platform': 'Linux-4.1.6-201.fc22.x86_64-x86_64-with-fedora-22-Twenty_Two',
'sys_executable': '/usr/bin/python',
'sys_platform': 'linux2',
'sys_version': '2.7.10 (default, Jul 5 2015, 14:15:43) \n[GCC 5.1.1 20150618
(Red Hat 5.1.1-4)]'}
***************************************************************************
***************************************************************************
Crash traceback:
---------------------------------------------------------------------------
ImportError Python 2.7.10: /usr/bin/python
Fri Sep 18 14:34:20 2015
A problem occured executing Python code. Here is the sequence of function
calls leading up to the error, with the most recent (innermost) call last.
/usr/lib64/sagemath/local/bin/sage-ipython in <module>()
1 #!/usr/bin/env python
2 # -*- coding: utf-8 -*-
3 """
4 Sage IPython startup script.
5 """
6 from sage.repl.interpreter import SageTerminalApp
7
8 # installs the extra readline commands before the IPython
initialization begins.
9 from sage.repl.readline_extra_commands import *
10
11 app = SageTerminalApp.instance()
---> 12 app.initialize()
global app.initialize = <bound method SageTerminalApp.initialize of
<sage.repl.interpreter.SageTerminalApp object at 0x7f4912ab0a50>>
13 app.start()
/usr/lib/python2.7/site-packages/IPython/terminal/ipapp.pyc in
initialize(self=<sage.repl.interpreter.SageTerminalApp object>, argv=None)
/usr/lib/python2.7/site-packages/IPython/config/application.pyc in
catch_config_error(method=<function initialize>,
app=<sage.repl.interpreter.SageTerminalApp object>, *args=(None,), **kwargs={})
77
78
#-----------------------------------------------------------------------------
79 # Application class
80
#-----------------------------------------------------------------------------
81
82 @decorator
83 def catch_config_error(method, app, *args, **kwargs):
84 """Method decorator for catching invalid config
(Trait/ArgumentErrors) during init.
85
86 On a TraitError (generally caused by bad config), this will print
the trait's
87 message, and exit the app.
88
89 For use on init methods, to prevent invoking excepthook on invalid
input.
90 """
91 try:
---> 92 return method(app, *args, **kwargs)
method = <function initialize at 0x7f4912aa61b8>
app = <sage.repl.interpreter.SageTerminalApp object at 0x7f4912ab0a50>
args = (None,)
kwargs = {}
93 except (TraitError, ArgumentError) as e:
94 app.print_help()
95 app.log.fatal("Bad config encountered during initialization:")
96 app.log.fatal(str(e))
97 app.log.debug("Config at the time: %s", app.config)
98 app.exit(1)
99
100
101 class ApplicationError(Exception):
102 pass
103
104 class LevelFormatter(logging.Formatter):
105 """Formatter with additional `highlevel` record
106
107 This field is empty if log level is less than highlevel_limit,
/usr/lib/python2.7/site-packages/IPython/terminal/ipapp.pyc in
initialize(self=<sage.repl.interpreter.SageTerminalApp object>, argv=None)
317
318 @catch_config_error
319 def initialize(self, argv=None):
320 """Do actions after construct, but before starting the app."""
321 super(TerminalIPythonApp, self).initialize(argv)
322 if self.subapp is not None:
323 # don't bother initializing further, starting subapp
324 return
325 if not self.ignore_old_config:
326 check_for_old_config(self.ipython_dir)
327 # print self.extra_args
328 if self.extra_args and not self.something_to_run:
329 self.file_to_run = self.extra_args[0]
330 self.init_path()
331 # create the shell
--> 332 self.init_shell()
self.init_shell = <bound method SageTerminalApp.init_shell of
<sage.repl.interpreter.SageTerminalApp object at 0x7f4912ab0a50>>
333 # and draw the banner
334 self.init_banner()
335 # Now a variety of things that happen after the banner is
printed.
336 self.init_gui_pylab()
337 self.init_extensions()
338 self.init_code()
339
340 def init_shell(self):
341 """initialize the InteractiveShell instance"""
342 # Create an InteractiveShell instance.
343 # shell.display_banner should always be False for the terminal
344 # based app, because we call shell.show_banner() by hand below
345 # so the banner shows *before* all extension loading stuff.
346 self.shell = TerminalInteractiveShell.instance(parent=self,
347 display_banner=False,
profile_dir=self.profile_dir,
/usr/lib64/python2.7/site-packages/sage/repl/interpreter.pyc in
init_shell(self=<sage.repl.interpreter.SageTerminalApp object>)
599 # Shell initialization
600 self.shell = SageTerminalInteractiveShell.instance(
601 parent=self,
602 config=self.config,
603 display_banner=False,
604 profile_dir=self.profile_dir,
605 ipython_dir=self.ipython_dir)
606 self.shell.configurables.append(self)
607 self.shell.has_sage_extensions = SAGE_EXTENSION in
self.extensions
608
609 if self.shell.has_sage_extensions:
610 self.extensions.remove(SAGE_EXTENSION)
611
612 # load sage extension here to get a crash if
613 # something is wrong with the sage library
--> 614 self.shell.extension_manager.load_extension(SAGE_EXTENSION)
self.shell.extension_manager.load_extension = <bound method
ExtensionManager.load_extension of <IPython.core.extensions.ExtensionManager
object at 0x7f490fb20090>>
global SAGE_EXTENSION = 'sage'
615
616
/usr/lib/python2.7/site-packages/IPython/core/extensions.pyc in
load_extension(self=<IPython.core.extensions.ExtensionManager object>,
module_str='sage')
85
86 Returns the string "already loaded" if the extension is already
loaded,
87 "no load function" if the module doesn't have a
load_ipython_extension
88 function, or None if it succeeded.
89 """
90 if module_str in self.loaded:
91 return "already loaded"
92
93 from IPython.utils.syspathcontext import prepended_to_syspath
94
95 with self.shell.builtin_trap:
96 if module_str not in sys.modules:
97 with prepended_to_syspath(self.ipython_extension_dir):
98 __import__(module_str)
99 mod = sys.modules[module_str]
--> 100 if self._call_load_ipython_extension(mod):
self._call_load_ipython_extension = <bound method
ExtensionManager._call_load_ipython_extension of
<IPython.core.extensions.ExtensionManager object at 0x7f490fb20090>>
mod = <module 'sage' from
'/usr/lib64/python2.7/site-packages/sage/__init__.pyc'>
101 self.loaded.add(module_str)
102 else:
103 return "no load function"
104
105 def unload_extension(self, module_str):
106 """Unload an IPython extension by its module name.
107
108 This function looks up the extension's name in ``sys.modules``
and
109 simply calls ``mod.unload_ipython_extension(self)``.
110
111 Returns the string "no unload function" if the extension
doesn't define
112 a function to unload itself, "not loaded" if the extension
isn't loaded,
113 otherwise None.
114 """
115 if module_str not in self.loaded:
/usr/lib/python2.7/site-packages/IPython/core/extensions.pyc in
_call_load_ipython_extension(self=<IPython.core.extensions.ExtensionManager
object>, mod=<module 'sage' from
'/usr/lib64/python2.7/site-packages/sage/__init__.pyc'>)
132 """
133 from IPython.utils.syspathcontext import prepended_to_syspath
134
135 if (module_str in self.loaded) and (module_str in sys.modules):
136 self.unload_extension(module_str)
137 mod = sys.modules[module_str]
138 with prepended_to_syspath(self.ipython_extension_dir):
139 reload(mod)
140 if self._call_load_ipython_extension(mod):
141 self.loaded.add(module_str)
142 else:
143 self.load_extension(module_str)
144
145 def _call_load_ipython_extension(self, mod):
146 if hasattr(mod, 'load_ipython_extension'):
--> 147 mod.load_ipython_extension(self.shell)
mod.load_ipython_extension = <function load_ipython_extension at
0x7f4912aaad70>
self.shell = <sage.repl.interpreter.SageTerminalInteractiveShell object
at 0x7f4912ab0fd0>
148 return True
149
150 def _call_unload_ipython_extension(self, mod):
151 if hasattr(mod, 'unload_ipython_extension'):
152 mod.unload_ipython_extension(self.shell)
153 return True
154
155 def install_extension(self, url, filename=None):
156 """Download and install an IPython extension.
157
158 If filename is given, the file will be so named (inside the
extension
159 directory). Otherwise, the name from the URL will be used. The
file must
160 have a .py or .zip extension; otherwise, a ValueError will be
raised.
161
162 Returns the full path to the installed file.
/usr/lib64/python2.7/site-packages/sage/repl/ipython_extension.pyc in
wrapper(*args=(<sage.repl.interpreter.SageTerminalInteractiveShell object>,),
**kwargs={})
416 ....: if work:
417 ....: return 'foo worked'
418 ....: raise RuntimeError("foo didn't work")
419 sage: foo(False)
420 Traceback (most recent call last):
421 ...
422 RuntimeError: foo didn't work
423 sage: foo(True)
424 'foo worked'
425 sage: foo(False)
426 sage: foo(True)
427 """
428 @wraps(func)
429 def wrapper(*args, **kwargs):
430 if not wrapper.has_run:
--> 431 result = func(*args, **kwargs)
result = undefined
global func = undefined
args = (<sage.repl.interpreter.SageTerminalInteractiveShell object at
0x7f4912ab0fd0>,)
kwargs = {}
432 wrapper.has_run = True
433 return result
434 wrapper.has_run = False
435 return wrapper
436
437
438 @run_once
439 def load_ipython_extension(ip):
440 """
441 Load the extension in IPython.
442 """
443 # this modifies ip
444 SageCustomizations(shell=ip)
/usr/lib64/python2.7/site-packages/sage/repl/ipython_extension.pyc in
load_ipython_extension(ip=<sage.repl.interpreter.SageTerminalInteractiveShell
object>)
429 def wrapper(*args, **kwargs):
430 if not wrapper.has_run:
431 result = func(*args, **kwargs)
432 wrapper.has_run = True
433 return result
434 wrapper.has_run = False
435 return wrapper
436
437
438 @run_once
439 def load_ipython_extension(ip):
440 """
441 Load the extension in IPython.
442 """
443 # this modifies ip
--> 444 SageCustomizations(shell=ip)
global SageCustomizations = <class
'sage.repl.ipython_extension.SageCustomizations'>
global shell = undefined
ip = <sage.repl.interpreter.SageTerminalInteractiveShell object at
0x7f4912ab0fd0>
/usr/lib64/python2.7/site-packages/sage/repl/ipython_extension.pyc in
__init__(self=<sage.repl.ipython_extension.SageCustomizations object>,
shell=<sage.repl.interpreter.SageTerminalInteractiveShell object>)
286
287
self.shell.display_formatter.formatters['text/plain'].set_display(
288 self._magic_display_status)
289
290 class SageCustomizations(object):
291
292 def __init__(self, shell=None):
293 """
294 Initialize the Sage plugin.
295 """
296 self.shell = shell
297
298 self.auto_magics = SageMagics(shell)
299 self.shell.register_magics(self.auto_magics)
300
--> 301 import sage.repl.display.formatter as formatter
sage.repl.display.formatter = undefined
formatter = undefined
302 self.shell.display_formatter.formatters['text/plain'] = (
303 formatter.SageConsoleTextFormatter(config=shell.config))
304
305 import sage.misc.edit_module as edit_module
306 self.shell.set_hook('editor', edit_module.edit_devel)
307
308 self.init_inspector()
309 self.init_line_transforms()
310
311 import inputhook
312 inputhook.install()
313
314 import sage.all # until sage's import hell is fixed
315
316 self.shell.verbose_quit = True
/usr/lib64/python2.7/site-packages/sage/repl/display/formatter.py in <module>()
49 This other facility uses a simple
50 :class:`~sage.misc.ascii_art.AsciiArt` object (see and
51 :meth:`sage.structure.sage_object.SageObject._ascii_art_`). """
52
53
#*****************************************************************************
54 # Copyright (C) 2014 Volker Braun <[email protected]>
55 #
56 # Distributed under the terms of the GNU General Public License (GPL)
57 # as published by the Free Software Foundation; either version 2 of
58 # the License, or (at your option) any later version.
59 # http://www.gnu.org/licenses/
60
#*****************************************************************************
61
62
63 from IPython.core.formatters import PlainTextFormatter
---> 64 from IPython.core.formatters import catch_format_error as
warn_format_error
global IPython.core.formatters = undefined
global catch_format_error = undefined
global warn_format_error = undefined
65 from IPython.utils.py3compat import str_to_unicode, unicode_to_str
66
67 from sage.repl.display.pretty_print import (
68 SagePrettyPrinter, AsciiArtPrettyPrinter, TypesetPrettyPrinter
69 )
70
71
72 class SagePlainTextFormatter(PlainTextFormatter):
73
74 def __init__(self, *args, **kwds):
75 r"""
76 Improved plain text formatter.
77
78 In particular, it has the following two features:
79
ImportError: cannot import name catch_format_error
***************************************************************************
History of session input:
*** Last line of input (may not be in above history):