~/sagefiles/sage-9.2.rc0/src/bin/sage-ipython in 1 #!/usr/bin/env sage-python 2 # -*- coding: utf-8 -*- 3 """ 4 Sage IPython startup script. 5 """ 6 7 # Display startup banner. Do this before anything else to give the user 8 # early feedback that Sage is starting. 9 from sage.misc.banner import banner 10 banner() 11 12 from sage.repl.interpreter import SageTerminalApp 13 14 app = SageTerminalApp.instance() ---> 15 app.initialize() global app.initialize = > 16 app.start() in initialize(self=, argv=None) ~/sagefiles/sage-9.2.rc0/local/lib/python3.8/site-packages/traitlets/config/application.py in catch_config_error(method=, app=, *args=(None,), **kwargs={}) 72 TRAITLETS_APPLICATION_RAISE_CONFIG_FILE_ERROR = False 73 else: 74 raise ValueError("Unsupported value for environment variable: 'TRAITLETS_APPLICATION_RAISE_CONFIG_FILE_ERROR' is set to '%s' which is none of {'0', '1', 'false', 'true', ''}."% _envvar ) 75 76 77 @decorator 78 def catch_config_error(method, app, *args, **kwargs): 79 """Method decorator for catching invalid config (Trait/ArgumentErrors) during init. 80 81 On a TraitError (generally caused by bad config), this will print the trait's 82 message, and exit the app. 83 84 For use on init methods, to prevent invoking excepthook on invalid input. 85 """ 86 try: ---> 87 return method(app, *args, **kwargs) method = app = args = (None,) kwargs = {} 88 except (TraitError, ArgumentError) as e: 89 app.print_help() 90 app.log.fatal("Bad config encountered during initialization:") 91 app.log.fatal(str(e)) 92 app.log.debug("Config at the time: %s", app.config) 93 app.exit(1) 94 95 96 class ApplicationError(Exception): 97 pass 98 99 100 class LevelFormatter(logging.Formatter): 101 """Formatter with additional `highlevel` record 102 ~/sagefiles/sage-9.2.rc0/local/lib/python3.8/site-packages/IPython/terminal/ipapp.py in initialize(self=, argv=None) 302 303 return super(TerminalIPythonApp, self).parse_command_line(argv) 304 305 @catch_config_error 306 def initialize(self, argv=None): 307 """Do actions after construct, but before starting the app.""" 308 super(TerminalIPythonApp, self).initialize(argv) 309 if self.subapp is not None: 310 # don't bother initializing further, starting subapp 311 return 312 # print self.extra_args 313 if self.extra_args and not self.something_to_run: 314 self.file_to_run = self.extra_args[0] 315 self.init_path() 316 # create the shell --> 317 self.init_shell() self.init_shell = > 318 # and draw the banner 319 self.init_banner() 320 # Now a variety of things that happen after the banner is printed. 321 self.init_gui_pylab() 322 self.init_extensions() 323 self.init_code() 324 325 def init_shell(self): 326 """initialize the InteractiveShell instance""" 327 # Create an InteractiveShell instance. 328 # shell.display_banner should always be False for the terminal 329 # based app, because we call shell.show_banner() by hand below 330 # so the banner shows *before* all extension loading stuff. 331 self.shell = self.interactive_shell_class.instance(parent=self, 332 profile_dir=self.profile_dir, ~/sagefiles/sage-9.2.rc0/local/lib/python3.8/site-packages/sage/repl/interpreter.py in init_shell(self=) 755 Initialize the :class:`SageInteractiveShell` instance. 756 757 .. note:: 758 759 This code is based on 760 :meth:`TerminalIPythonApp.init_shell`. 761 762 EXAMPLES:: 763 764 sage: from sage.repl.interpreter import SageTerminalApp 765 sage: app = SageTerminalApp.instance() 766 sage: app.shell 767 768 """ 769 # Shell initialization --> 770 self.shell = self.shell_class.instance( self.shell = None self.shell_class.instance = > global parent = undefined self = global config = undefined self.config = {'TerminalIPythonApp': {'display_banner': False, 'verbose_crash': True, 'test_shell': False, 'shell_class': }, 'InteractiveShell': {'prompts_class': , 'ast_node_interactivity': 'all', 'colors': 'LightBG', 'simple_prompt': False, 'term_title': True, 'confirm_exit': False, 'separate_in': ''}, 'TerminalInteractiveShell': {'prompts_class': , 'ast_node_interactivity': 'all', 'colors': 'LightBG', 'simple_prompt': False, 'term_title': True, 'confirm_exit': False, 'separate_in': ''}, 'InteractiveShellApp': {'extensions': ['sage']}, 'SageTerminalApp': {'force_interact': True}} global profile_dir = undefined self.profile_dir = global ipython_dir = undefined self.ipython_dir = '/Users/wdj/.sage/ipython-5.0.0' 771 parent=self, 772 config=self.config, 773 profile_dir=self.profile_dir, 774 ipython_dir=self.ipython_dir) 775 self.shell.configurables.append(self) 776 self.shell.has_sage_extensions = SAGE_EXTENSION in self.extensions 777 778 # Load the %lprun extension if available 779 try: 780 import line_profiler 781 except ImportError: 782 pass 783 else: 784 self.extensions.append('line_profiler') 785 ~/sagefiles/sage-9.2.rc0/local/lib/python3.8/site-packages/traitlets/config/configurable.py in instance(cls=, *args=(), **kwargs={'config': {'TerminalIPythonApp': {'display_banner': False,...']}, 'SageTerminalApp': {'force_interact': True}}, 'ipython_dir': '/Users/wdj/.sage/ipython-5.0.0', 'parent': , 'profile_dir': }) 397 >>> class Foo(SingletonConfigurable): pass 398 >>> foo = Foo.instance() 399 >>> foo == Foo.instance() 400 True 401 402 Create a subclass that is retrived using the base class instance:: 403 404 >>> class Bar(SingletonConfigurable): pass 405 >>> class Bam(Bar): pass 406 >>> bam = Bam.instance() 407 >>> bam == Bar.instance() 408 True 409 """ 410 # Create and save the instance 411 if cls._instance is None: --> 412 inst = cls(*args, **kwargs) inst = undefined cls = args = () kwargs = {'parent': , 'config': {'TerminalIPythonApp': {'display_banner': False, 'verbose_crash': True, 'test_shell': False, 'shell_class': }, 'InteractiveShell': {'prompts_class': , 'ast_node_interactivity': 'all', 'colors': 'LightBG', 'simple_prompt': False, 'term_title': True, 'confirm_exit': False, 'separate_in': ''}, 'TerminalInteractiveShell': {'prompts_class': , 'ast_node_interactivity': 'all', 'colors': 'LightBG', 'simple_prompt': False, 'term_title': True, 'confirm_exit': False, 'separate_in': ''}, 'InteractiveShellApp': {'extensions': ['sage']}, 'SageTerminalApp': {'force_interact': True}}, 'profile_dir': , 'ipython_dir': '/Users/wdj/.sage/ipython-5.0.0'} 413 # Now make sure that the instance will also be returned by 414 # parent classes' _instance attribute. 415 for subclass in cls._walk_mro(): 416 subclass._instance = inst 417 418 if isinstance(cls._instance, cls): 419 return cls._instance 420 else: 421 raise MultipleInstanceError( 422 'Multiple incompatible subclass instances of ' 423 '%s are being created.' % cls.__name__ 424 ) 425 426 @classmethod 427 def initialized(cls): ~/sagefiles/sage-9.2.rc0/local/lib/python3.8/site-packages/IPython/terminal/interactiveshell.py in __init__(self=, *args=(), **kwargs={'config': {'TerminalIPythonApp': {'display_banner': False,...']}, 'SageTerminalApp': {'force_interact': True}}, 'ipython_dir': '/Users/wdj/.sage/ipython-5.0.0', 'parent': , 'profile_dir': }) 504 505 def init_alias(self): 506 # The parent class defines aliases that can be safely used with any 507 # frontend. 508 super(TerminalInteractiveShell, self).init_alias() 509 510 # Now define aliases that only make sense on the terminal, because they 511 # need direct access to the console in a way that we can't emulate in 512 # GUI or web frontend 513 if os.name == 'posix': 514 for cmd in ('clear', 'more', 'less', 'man'): 515 self.alias_manager.soft_define_alias(cmd, cmd) 516 517 518 def __init__(self, *args, **kwargs): --> 519 super(TerminalInteractiveShell, self).__init__(*args, **kwargs) global super = undefined global TerminalInteractiveShell = self.__init__ = > args = () kwargs = {'parent': , 'config': {'TerminalIPythonApp': {'display_banner': False, 'verbose_crash': True, 'test_shell': False, 'shell_class': }, 'InteractiveShell': {'prompts_class': , 'ast_node_interactivity': 'all', 'colors': 'LightBG', 'simple_prompt': False, 'term_title': True, 'confirm_exit': False, 'separate_in': ''}, 'TerminalInteractiveShell': {'prompts_class': , 'ast_node_interactivity': 'all', 'colors': 'LightBG', 'simple_prompt': False, 'term_title': True, 'confirm_exit': False, 'separate_in': ''}, 'InteractiveShellApp': {'extensions': ['sage']}, 'SageTerminalApp': {'force_interact': True}}, 'profile_dir': , 'ipython_dir': '/Users/wdj/.sage/ipython-5.0.0'} 520 self.init_prompt_toolkit_cli() 521 self.init_term_title() 522 self.keep_running = True 523 524 self.debugger_history = InMemoryHistory() 525 526 def ask_exit(self): 527 self.keep_running = False 528 529 rl_next_input = None 530 531 def interact(self, display_banner=DISPLAY_BANNER_DEPRECATED): 532 533 if display_banner is not DISPLAY_BANNER_DEPRECATED: 534 warn('interact `display_banner` argument is deprecated since IPython 5.0. Call `show_banner()` if needed.', DeprecationWarning, stacklevel=2) ~/sagefiles/sage-9.2.rc0/local/lib/python3.8/site-packages/IPython/core/interactiveshell.py in __init__(self=, ipython_dir='/Users/wdj/.sage/ipython-5.0.0', profile_dir=, user_module=None, user_ns=None, custom_exceptions=((), None), **kwargs={'config': {'TerminalIPythonApp': {'display_banner': False,...']}, 'SageTerminalApp': {'force_interact': True}}, 'parent': }) 668 self.init_pushd_popd_magic() 669 self.init_user_ns() 670 self.init_logger() 671 self.init_builtins() 672 673 # The following was in post_config_initialization 674 self.init_inspector() 675 self.raw_input_original = input 676 self.init_completer() 677 # TODO: init_io() needs to happen before init_traceback handlers 678 # because the traceback handlers hardcode the stdout/stderr streams. 679 # This logic in in debugger.Pdb and should eventually be changed. 680 self.init_io() 681 self.init_traceback_handlers(custom_exceptions) 682 self.init_prompts() --> 683 self.init_display_formatter() self.init_display_formatter = > 684 self.init_display_pub() 685 self.init_data_pub() 686 self.init_displayhook() 687 self.init_magics() 688 self.init_alias() 689 self.init_logstart() 690 self.init_pdb() 691 self.init_extension_manager() 692 self.init_payload() 693 self.init_deprecation_warnings() 694 self.hooks.late_startup_hook() 695 self.events.trigger('shell_initialized', self) 696 atexit.register(self.atexit_operations) 697 698 # The trio runner is used for running Trio in the foreground thread. It ~/sagefiles/sage-9.2.rc0/local/lib/python3.8/site-packages/sage/repl/interpreter.py in init_display_formatter(self=) 281 282 sage: from sage.repl.interpreter import SageTerminalInteractiveShell 283 sage: SageTerminalInteractiveShell() # not tested 284 285 """ 286 287 def init_display_formatter(self): 288 """ 289 Switch to the Sage IPython commandline rich output backend 290 291 EXAMPLES:: 292 293 sage: from sage.repl.interpreter import SageTerminalInteractiveShell 294 sage: SageTerminalInteractiveShell().init_display_formatter() # not tested 295 """ --> 296 from sage.repl.rich_output.backend_ipython import BackendIPythonCommandline global sage.repl.rich_output.backend_ipython = undefined BackendIPythonCommandline = undefined 297 backend = BackendIPythonCommandline() 298 backend.get_display_manager().switch_backend(backend, shell=self) 299 300 301 class SageTestShell(SageShellOverride, TerminalInteractiveShell): 302 """ 303 Test Shell 304 305 Care must be taken in these doctests to quit the test shell in 306 order to switch back the rich output display backend to the 307 doctest backend. 308 309 EXAMPLES:: 310 311 sage: from sage.repl.interpreter import get_test_shell ~/sagefiles/sage-9.2.rc0/local/lib/python3.8/site-packages/sage/repl/rich_output/__init__.py in 1 # -*- encoding: utf-8 -*- 2 ----> 3 from .display_manager import get_display_manager global display_manager = undefined global get_display_manager = undefined 4 from .pretty_print import pretty_print 5 6 ~/sagefiles/sage-9.2.rc0/local/lib/python3.8/site-packages/sage/repl/rich_output/display_manager.py in 24 The Sage display manager using the doctest backend 25 """ 26 27 # **************************************************************************** 28 # Copyright (C) 2015 Volker Braun 29 # 30 # Distributed under the terms of the GNU General Public License (GPL) 31 # as published by the Free Software Foundation; either version 2 of 32 # the License, or (at your option) any later version. 33 # http://www.gnu.org/licenses/ 34 # **************************************************************************** 35 36 37 import warnings 38 ---> 39 from sage.structure.sage_object import SageObject global sage.structure.sage_object = undefined global SageObject = undefined 40 from sage.repl.rich_output.output_basic import ( 41 OutputPlainText, OutputAsciiArt, OutputUnicodeArt, OutputLatex, 42 ) 43 from sage.repl.rich_output.preferences import DisplayPreferences 44 45 46 class DisplayException(Exception): 47 """ 48 Base exception for all rich output-related exceptions. 49 50 EXAMPLES:: 51 52 sage: from sage.repl.rich_output.display_manager import DisplayException 53 sage: raise DisplayException('foo') 54 Traceback (most recent call last): ~/sagefiles/sage-9.2.rc0/local/lib/python3.8/site-packages/sage/structure/__init__.py in 1 # Resolve a cyclic import ----> 2 import sage.structure.element global sage.structure.element = undefined ~/sagefiles/sage-9.2.rc0/local/lib/python3.8/site-packages/sage/structure/element.pyx in init sage.structure.element (build/cythonized/sage/structure/element.c:35676)() ----> 1 # Compile this with -Os because it works around a bug with 2 # GCC-4.7.3 + Cython 0.19 on Itanium, see Trac #14452. Moreover, it 3 # actually results in faster code than -O3. 4 # 5 # distutils: extra_compile_args = -Os 6 7 r""" 8 Elements 9 10 AUTHORS: 11 12 - David Harvey (2006-10-16): changed CommutativeAlgebraElement to 13 derive from CommutativeRingElement instead of AlgebraElement 14 15 - David Harvey (2006-10-29): implementation and documentation of new 16 arithmetic architecture 17 18 - William Stein (2006-11): arithmetic architecture -- pushing it 19 through to completion. 20 21 - Gonzalo Tornaria (2007-06): recursive base extend for coercion -- 22 lots of tests 23 24 - Robert Bradshaw (2007-2010): arithmetic operators and coercion 25 26 - Maarten Derickx (2010-07): added architecture for is_square and sqrt 27 28 - Jeroen Demeyer (2016-08): moved all coercion to the base class 29 :class:`Element`, see :trac:`20767` 30 31 The Abstract Element Class Hierarchy ~/sagefiles/sage-9.2.rc0/local/lib/python3.8/site-packages/sage/structure/sage_object.pyx in init sage.structure.sage_object (build/cythonized/sage/structure/sage_object.c:11967)() 1 # -*- encoding: utf-8 -*- 2 r""" 3 Abstract base class for Sage objects 4 """ 5 ----> 6 from sage.misc.persist import (_base_dumps, _base_save, global sage.misc.persist = undefined global _base_dumps = undefined global _base_save = undefined global register_unpickle_override = undefined global make_None = undefined 7 register_unpickle_override, make_None) 8 9 from sage.misc.lazy_import import LazyImport 10 11 # NOTE: These imports are just for backwards-compatibility 12 loads = LazyImport('sage.misc.persist', 'loads', deprecation=25153) 13 dumps = LazyImport('sage.misc.persist', 'dumps', deprecation=25153) 14 save = LazyImport('sage.misc.persist', 'save', deprecation=25153) 15 load = LazyImport('sage.misc.persist', 'load', deprecation=25153) 16 unpickle_all = LazyImport('sage.misc.persist', 'unpickle_all', 17 deprecation=25153) 18 unpickle_global = LazyImport('sage.misc.persist', 'unpickle_global', 19 deprecation=25153) 20 unpickle_override = LazyImport('sage.misc.persist', 'unpickle_override', 21 deprecation=25153) 22 23 24 # Generators is no longer used (#21382) 25 register_unpickle_override('sage.structure.generators', 'make_list_gens', 26 make_None) 27 28 29 __all__ = ['SageObject'] 30 31 ~/sagefiles/sage-9.2.rc0/local/lib/python3.8/site-packages/sage/misc/persist.pyx in init sage.misc.persist (build/cythonized/sage/misc/persist.c:11955)() 25 correctly or work correctly. 26 27 - Objects are zlib compressed for space efficiency. 28 """ 29 30 import io 31 import os 32 import pickle 33 import sys 34 35 from textwrap import dedent 36 37 # change to import zlib to use zlib instead; but this 38 # slows down loading any data stored in the other format 39 import zlib; comp = zlib ---> 40 import bz2; comp_other = bz2 global bz2 = undefined global comp_other = undefined 41 42 from .misc import SAGE_DB 43 from .sage_unittest import TestSuite 44 45 46 cdef _normalize_filename(s): 47 """ 48 Append the .sobj extension to a filename if it doesn't already have it. 49 """ 50 if s[-5:] != '.sobj': 51 return s + '.sobj' 52 53 return s 54 55 ~/sagefiles/sage-9.2.rc0/local/lib/python3.8/bz2.py in 4 (de)compression, and functions for one-shot (de)compression. 5 """ 6 7 __all__ = ["BZ2File", "BZ2Compressor", "BZ2Decompressor", 8 "open", "compress", "decompress"] 9 10 __author__ = "Nadeem Vawda " 11 12 from builtins import open as _builtin_open 13 import io 14 import os 15 import warnings 16 import _compression 17 from threading import RLock 18 ---> 19 from _bz2 import BZ2Compressor, BZ2Decompressor global _bz2 = undefined global BZ2Compressor = undefined global BZ2Decompressor = undefined 20 21 22 _MODE_CLOSED = 0 23 _MODE_READ = 1 24 # Value 2 no longer used 25 _MODE_WRITE = 3 26 27 _sentinel = object() 28 29 30 class BZ2File(_compression.BaseStream): 31 32 """A file object providing transparent bzip2 (de)compression. 33 34 A BZ2File can act as a wrapper for an existing file object, or refer ModuleNotFoundError: No module named '_bz2' ********************************************************************** Oops, Sage crashed. We do our best to make it stable, but... A crash report was automatically generated with the following information: - A verbatim copy of the crash traceback. - A copy of your input history during this session. - Data on your current Sage configuration. It was left in the file named: '/Users/wdj/.sage/ipython-5.0.0/Sage_crash_report.txt' If you can email this file to the developers, the information in it will help them in understanding and correcting the problem. You can mail it to: sage-support at sage-support@googlegroups.com with the subject 'Sage Crash Report'. If you want to do it now, the following command will work (under Unix): mail -s 'Sage Crash Report' sage-support@googlegroups.com < /Users/wdj/.sage/ipython-5.0.0/Sage_crash_report.txt In your email, please also include information about: - The operating system under which the crash happened: Linux, macOS, Windows, other, and which exact version (for example: Ubuntu 16.04.3, macOS 10.13.2, Windows 10 Pro), and whether it is 32-bit or 64-bit; - How Sage was installed: using pip or conda, from GitHub, as part of a Docker container, or other, providing more detail if possible; - How to reproduce the crash: what exact sequence of instructions can one input to get the same crash? Ideally, find a minimal yet complete sequence of instructions that yields the crash. To ensure accurate tracking of this issue, please file a report about it at: http://trac.sagemath.org