*************************************************************************** IPython post-mortem report {'commit_hash': 'c963f6b', 'commit_source': 'installation', 'default_encoding': 'UTF-8', 'ipython_path': '/opt/local/Library/Frameworks/Python.framework/Versions/3.5/lib/python3.5/site-packages/IPython', 'ipython_version': '4.2.0', 'os_name': 'posix', 'platform': 'Darwin-12.5.0-x86_64-i386-64bit', 'sys_executable': '/opt/local/Library/Frameworks/Python.framework/Versions/3.5/bin/python3.5', 'sys_platform': 'darwin', 'sys_version': '3.5.1 (default, Mar 2 2016, 00:45:44) \n' '[GCC 4.2.1 Compatible Apple LLVM 5.1 (clang-503.0.40)]'} *************************************************************************** *************************************************************************** Crash traceback: --------------------------------------------------------------------------- --------------------------------------------------------------------------- AttributeErrorPython 3.5.1: /opt/local/Library/Frameworks/Python.framework/Versions/3.5/bin/python3.5 Mon May 30 20:02:21 2016 A problem occurred executing Python code. Here is the sequence of function calls leading up to the error, with the most recent (innermost) call last. /opt/local/Library/Frameworks/Python.framework/Versions/Current/bin/ipython3 in () 1 #!/opt/local/Library/Frameworks/Python.framework/Versions/3.5/bin/python3.5 2 3 # -*- coding: utf-8 -*- 4 import re 5 import sys 6 7 from IPython import start_ipython 8 9 if __name__ == '__main__': 10 sys.argv[0] = re.sub(r'(-script\.pyw|\.exe)?$', '', sys.argv[0]) ---> 11 sys.exit(start_ipython()) global sys.exit = global start_ipython = /opt/local/Library/Frameworks/Python.framework/Versions/3.5/lib/python3.5/site-packages/IPython/__init__.py in start_ipython(argv=None, **kwargs={}) 104 This is a public API method, and will survive implementation changes. 105 106 Parameters 107 ---------- 108 109 argv : list or None, optional 110 If unspecified or None, IPython will parse command-line options from sys.argv. 111 To prevent any command-line parsing, pass an empty list: `argv=[]`. 112 user_ns : dict, optional 113 specify this dictionary to initialize the IPython user namespace with particular values. 114 kwargs : various, optional 115 Any other kwargs will be passed to the Application constructor, 116 such as `config`. 117 """ 118 from IPython.terminal.ipapp import launch_new_instance --> 119 return launch_new_instance(argv=argv, **kwargs) launch_new_instance = > argv = None kwargs = {} 120 121 def start_kernel(argv=None, **kwargs): 122 """Launch a normal IPython kernel instance (as opposed to embedded) 123 124 `IPython.embed_kernel()` puts a shell in a particular calling scope, 125 such as a function or method for debugging purposes, 126 which is often not desirable. 127 128 `start_kernel()` does full, regular IPython initialization, 129 including loading startup files, configuration, etc. 130 much of which is skipped by `embed()`. 131 132 Parameters 133 ---------- 134 /opt/local/Library/Frameworks/Python.framework/Versions/3.5/lib/python3.5/site-packages/traitlets/config/application.py in launch_instance(cls=, argv=None, **kwargs={}) 580 lines.append(cls.class_config_section()) 581 return '\n'.join(lines) 582 583 def exit(self, exit_status=0): 584 self.log.debug("Exiting application: %s" % self.name) 585 logging.shutdown() 586 sys.exit(exit_status) 587 588 @classmethod 589 def launch_instance(cls, argv=None, **kwargs): 590 """Launch a global instance of this Application 591 592 If a global instance already exists, this reinitializes and starts it 593 """ 594 app = cls.instance(**kwargs) --> 595 app.initialize(argv) app.initialize = > argv = None 596 app.start() 597 598 #----------------------------------------------------------------------------- 599 # utility functions, for convenience 600 #----------------------------------------------------------------------------- 601 602 def boolean_flag(name, configurable, set_help='', unset_help=''): 603 """Helper for building basic --trait, --no-trait flags. 604 605 Parameters 606 ---------- 607 608 name : str 609 The name of the flag. 610 configurable : str in initialize(self=, argv=None) /opt/local/Library/Frameworks/Python.framework/Versions/3.5/lib/python3.5/site-packages/traitlets/config/application.py in catch_config_error(method=, app=, *args=(None,), **kwargs={}) 59 60 #----------------------------------------------------------------------------- 61 # Application class 62 #----------------------------------------------------------------------------- 63 64 @decorator 65 def catch_config_error(method, app, *args, **kwargs): 66 """Method decorator for catching invalid config (Trait/ArgumentErrors) during init. 67 68 On a TraitError (generally caused by bad config), this will print the trait's 69 message, and exit the app. 70 71 For use on init methods, to prevent invoking excepthook on invalid input. 72 """ 73 try: ---> 74 return method(app, *args, **kwargs) method = app = args = (None,) kwargs = {} 75 except (TraitError, ArgumentError) as e: 76 app.print_help() 77 app.log.fatal("Bad config encountered during initialization:") 78 app.log.fatal(str(e)) 79 app.log.debug("Config at the time: %s", app.config) 80 app.exit(1) 81 82 83 class ApplicationError(Exception): 84 pass 85 86 87 class LevelFormatter(logging.Formatter): 88 """Formatter with additional `highlevel` record 89 /opt/local/Library/Frameworks/Python.framework/Versions/3.5/lib/python3.5/site-packages/IPython/terminal/ipapp.py in initialize(self=, argv=None) 290 291 return super(TerminalIPythonApp, self).parse_command_line(argv) 292 293 @catch_config_error 294 def initialize(self, argv=None): 295 """Do actions after construct, but before starting the app.""" 296 super(TerminalIPythonApp, self).initialize(argv) 297 if self.subapp is not None: 298 # don't bother initializing further, starting subapp 299 return 300 # print self.extra_args 301 if self.extra_args and not self.something_to_run: 302 self.file_to_run = self.extra_args[0] 303 self.init_path() 304 # create the shell --> 305 self.init_shell() self.init_shell = > 306 # and draw the banner 307 self.init_banner() 308 # Now a variety of things that happen after the banner is printed. 309 self.init_gui_pylab() 310 self.init_extensions() 311 self.init_code() 312 313 def init_shell(self): 314 """initialize the InteractiveShell instance""" 315 # Create an InteractiveShell instance. 316 # shell.display_banner should always be False for the terminal 317 # based app, because we call shell.show_banner() by hand below 318 # so the banner shows *before* all extension loading stuff. 319 self.shell = TerminalInteractiveShell.instance(parent=self, 320 display_banner=False, profile_dir=self.profile_dir, /opt/local/Library/Frameworks/Python.framework/Versions/3.5/lib/python3.5/site-packages/IPython/terminal/ipapp.py in init_shell(self=) 306 # and draw the banner 307 self.init_banner() 308 # Now a variety of things that happen after the banner is printed. 309 self.init_gui_pylab() 310 self.init_extensions() 311 self.init_code() 312 313 def init_shell(self): 314 """initialize the InteractiveShell instance""" 315 # Create an InteractiveShell instance. 316 # shell.display_banner should always be False for the terminal 317 # based app, because we call shell.show_banner() by hand below 318 # so the banner shows *before* all extension loading stuff. 319 self.shell = TerminalInteractiveShell.instance(parent=self, 320 display_banner=False, profile_dir=self.profile_dir, --> 321 ipython_dir=self.ipython_dir, user_ns=self.user_ns) global ipython_dir = undefined self.ipython_dir = '/Users/mattmorrison/.ipython' global user_ns = undefined self.user_ns = None 322 self.shell.configurables.append(self) 323 324 def init_banner(self): 325 """optionally display the banner""" 326 if self.display_banner and self.interact: 327 self.shell.show_banner() 328 # Make sure there is a space below the banner. 329 if self.log_level <= logging.INFO: print() 330 331 def _pylab_changed(self, name, old, new): 332 """Replace --pylab='inline' with --pylab='auto'""" 333 if new == 'inline': 334 warn.warn("'inline' not available as pylab backend, " 335 "using 'auto' instead.") 336 self.pylab = 'auto' /opt/local/Library/Frameworks/Python.framework/Versions/3.5/lib/python3.5/site-packages/traitlets/config/configurable.py in instance(cls=, *args=(), **kwargs={'display_banner': False, 'ipython_dir': '/Users/mattmorrison/.ipython', 'parent': , 'profile_dir': , 'user_ns': None}) 390 >>> class Foo(SingletonConfigurable): pass 391 >>> foo = Foo.instance() 392 >>> foo == Foo.instance() 393 True 394 395 Create a subclass that is retrived using the base class instance:: 396 397 >>> class Bar(SingletonConfigurable): pass 398 >>> class Bam(Bar): pass 399 >>> bam = Bam.instance() 400 >>> bam == Bar.instance() 401 True 402 """ 403 # Create and save the instance 404 if cls._instance is None: --> 405 inst = cls(*args, **kwargs) inst = undefined cls = args = () kwargs = {'user_ns': None, 'ipython_dir': '/Users/mattmorrison/.ipython', 'display_banner': False, 'parent': , 'profile_dir': } 406 # Now make sure that the instance will also be returned by 407 # parent classes' _instance attribute. 408 for subclass in cls._walk_mro(): 409 subclass._instance = inst 410 411 if isinstance(cls._instance, cls): 412 return cls._instance 413 else: 414 raise MultipleInstanceError( 415 'Multiple incompatible subclass instances of ' 416 '%s are being created.' % cls.__name__ 417 ) 418 419 @classmethod 420 def initialized(cls): /opt/local/Library/Frameworks/Python.framework/Versions/3.5/lib/python3.5/site-packages/IPython/core/interactiveshell.py in __init__(self=, ipython_dir='/Users/mattmorrison/.ipython', profile_dir=, user_module=None, user_ns=None, custom_exceptions=((), None), **kwargs={'display_banner': False, 'parent': }) 486 # raw_input. 487 if py3compat.PY3: 488 self.raw_input_original = input 489 else: 490 self.raw_input_original = raw_input 491 # init_completer must come after init_readline, because it needs to 492 # know whether readline is present or not system-wide to configure the 493 # completers, since the completion machinery can now operate 494 # independently of readline (e.g. over the network) 495 self.init_completer() 496 # TODO: init_io() needs to happen before init_traceback handlers 497 # because the traceback handlers hardcode the stdout/stderr streams. 498 # This logic in in debugger.Pdb and should eventually be changed. 499 self.init_io() 500 self.init_traceback_handlers(custom_exceptions) --> 501 self.init_prompts() self.init_prompts = > 502 self.init_display_formatter() 503 self.init_display_pub() 504 self.init_data_pub() 505 self.init_displayhook() 506 self.init_magics() 507 self.init_alias() 508 self.init_logstart() 509 self.init_pdb() 510 self.init_extension_manager() 511 self.init_payload() 512 self.init_deprecation_warnings() 513 self.hooks.late_startup_hook() 514 self.events.trigger('shell_initialized', self) 515 atexit.register(self.atexit_operations) 516 /opt/local/Library/Frameworks/Python.framework/Versions/3.5/lib/python3.5/site-packages/IPython/core/interactiveshell.py in init_prompts(self=) 659 'NoColor', 660 self.object_info_string_level) 661 662 def init_io(self): 663 # This will just use sys.stdout and sys.stderr. If you want to 664 # override sys.stdout and sys.stderr themselves, you need to do that 665 # *before* instantiating this class, because io holds onto 666 # references to the underlying streams. 667 if (sys.platform == 'win32' or sys.platform == 'cli') and self.has_readline: 668 io.stdout = io.stderr = io.IOStream(self.readline._outputfile) 669 else: 670 io.stdout = io.IOStream(sys.stdout) 671 io.stderr = io.IOStream(sys.stderr) 672 673 def init_prompts(self): --> 674 self.prompt_manager = PromptManager(shell=self, parent=self) self.prompt_manager = undefined global PromptManager = global shell = undefined self = global parent = undefined 675 self.configurables.append(self.prompt_manager) 676 # Set system prompts, so that scripts can decide if they are running 677 # interactively. 678 sys.ps1 = 'In : ' 679 sys.ps2 = '...: ' 680 sys.ps3 = 'Out: ' 681 682 def init_display_formatter(self): 683 self.display_formatter = DisplayFormatter(parent=self) 684 self.configurables.append(self.display_formatter) 685 686 def init_display_pub(self): 687 self.display_pub = self.display_pub_class(parent=self) 688 self.configurables.append(self.display_pub) 689 /opt/local/Library/Frameworks/Python.framework/Versions/3.5/lib/python3.5/site-packages/IPython/core/prompts.py in __init__(self=, shell=, **kwargs={'parent': }) 285 286 # We actually store the expanded templates here: 287 templates = Dict() 288 289 # The number of characters in the last prompt rendered, not including 290 # colour characters. 291 width = Int() 292 txtwidth = Int() # Not including right-justification 293 294 # The number of characters in each prompt which don't contribute to width 295 invisible_chars = Dict() 296 def _invisible_chars_default(self): 297 return {'in': 0, 'in2': 0, 'out': 0, 'rewrite':0} 298 299 def __init__(self, shell, **kwargs): --> 300 super(PromptManager, self).__init__(shell=shell, **kwargs) global super = undefined global PromptManager = self.__init__ = > shell = kwargs = {'parent': } 301 302 # Prepare colour scheme table 303 self.color_scheme_table = coloransi.ColorSchemeTable([NoColor, 304 LinuxColors, LightBGColors], self.color_scheme) 305 306 self._formatter = UserNSFormatter(shell) 307 # Prepare templates & numbers of invisible characters 308 self.update_prompt('in', self.in_template) 309 self.update_prompt('in2', self.in2_template) 310 self.update_prompt('out', self.out_template) 311 self.update_prompt('rewrite') 312 self.on_trait_change(self._update_prompt_trait, ['in_template', 313 'in2_template', 'out_template']) 314 315 def update_prompt(self, name, new_template=None): /opt/local/Library/Frameworks/Python.framework/Versions/3.5/lib/python3.5/site-packages/traitlets/config/configurable.py in __init__(self=, **kwargs={'shell': }) 70 71 config = kwargs.pop('config', None) 72 73 # load kwarg traits, other than config 74 super(Configurable, self).__init__(**kwargs) 75 76 # load config 77 if config is not None: 78 # We used to deepcopy, but for now we are trying to just save 79 # by reference. This *could* have side effects as all components 80 # will share config. In fact, I did find such a side effect in 81 # _config_changed below. If a config attribute value was a mutable type 82 # all instances of a component were getting the same copy, effectively 83 # making that a class attribute. 84 # self.config = deepcopy(config) ---> 85 self.config = config self.config = {'InteractiveShellApp': {'gui': 'osx', 'exec_lines': ['import numpy as np', 'import pandas as pd', 'from pandas import Series, DataFrame', 'import matplotlib as mpl', 'from pprint import pprint as pp', 'def fixquote(): print(\'"\'*3)'], 'pylab_import_all': False, 'pylab': 'osx'}, 'TerminalInteractiveShell': {'confirm_exit': False, 'autoindent': True, 'editor': 'subl -w', 'colors': 'NoColor'}, 'PlainTextFormatter': {'pprint': False}, 'IPCompleter': {'limit_to__all__': False, 'omit__names': 0}, 'TerminalIPythonApp': {'gui': 'osx', 'pylab': 'osx', 'verbose_crash': True}, 'PromptManager': {'color_scheme': 'NoColor'}} config = {'InteractiveShellApp': {'gui': 'osx', 'exec_lines': ['import numpy as np', 'import pandas as pd', 'from pandas import Series, DataFrame', 'import matplotlib as mpl', 'from pprint import pprint as pp', 'def fixquote(): print(\'"\'*3)'], 'pylab_import_all': False, 'pylab': 'osx'}, 'TerminalInteractiveShell': {'confirm_exit': False, 'autoindent': True, 'editor': 'subl -w', 'colors': 'NoColor'}, 'PlainTextFormatter': {'pprint': False}, 'IPCompleter': {'limit_to__all__': False, 'omit__names': 0}, 'TerminalIPythonApp': {'gui': 'osx', 'pylab': 'osx', 'verbose_crash': True}, 'PromptManager': {'color_scheme': 'NoColor'}} 86 else: 87 # allow _config_default to return something 88 self._load_config(self.config) 89 90 # Ensure explicit kwargs are applied after loading config. 91 # This is usually redundant, but ensures config doesn't override 92 # explicitly assigned values. 93 for key, value in kwargs.items(): 94 setattr(self, key, value) 95 96 #------------------------------------------------------------------------- 97 # Static trait notifiations 98 #------------------------------------------------------------------------- 99 100 @classmethod /opt/local/Library/Frameworks/Python.framework/Versions/3.5/lib/python3.5/site-packages/traitlets/traitlets.py in __set__(self=, obj=, value={'InteractiveShellApp': {'gui': 'osx', 'exec_lin...e}, 'PromptManager': {'color_scheme': 'NoColor'}}) 543 silent = False 544 if silent is not True: 545 # we explicitly compare silent to True just in case the equality 546 # comparison above returns something other than True/False 547 obj._notify_trait(self.name, old_value, new_value) 548 549 def __set__(self, obj, value): 550 """Set the value of the trait by self.name for the instance. 551 552 Values pass through a validation stage where errors are raised when 553 impropper types, or types that cannot be coerced, are encountered. 554 """ 555 if self.read_only: 556 raise TraitError('The "%s" trait is read-only.' % self.name) 557 else: --> 558 self.set(obj, value) self.set = > obj = value = {'InteractiveShellApp': {'gui': 'osx', 'exec_lines': ['import numpy as np', 'import pandas as pd', 'from pandas import Series, DataFrame', 'import matplotlib as mpl', 'from pprint import pprint as pp', 'def fixquote(): print(\'"\'*3)'], 'pylab_import_all': False, 'pylab': 'osx'}, 'TerminalInteractiveShell': {'confirm_exit': False, 'autoindent': True, 'editor': 'subl -w', 'colors': 'NoColor'}, 'PlainTextFormatter': {'pprint': False}, 'IPCompleter': {'limit_to__all__': False, 'omit__names': 0}, 'TerminalIPythonApp': {'gui': 'osx', 'pylab': 'osx', 'verbose_crash': True}, 'PromptManager': {'color_scheme': 'NoColor'}} 559 560 def _validate(self, obj, value): 561 if value is None and self.allow_none: 562 return value 563 if hasattr(self, 'validate'): 564 value = self.validate(obj, value) 565 if obj._cross_validation_lock is False: 566 value = self._cross_validate(obj, value) 567 return value 568 569 def _cross_validate(self, obj, value): 570 if self.name in obj._trait_validators: 571 proposal = {'trait': self, 'value': value, 'owner': obj} 572 value = obj._trait_validators[self.name](obj, proposal) 573 elif hasattr(obj, '_%s_validate' % self.name): /opt/local/Library/Frameworks/Python.framework/Versions/3.5/lib/python3.5/site-packages/traitlets/traitlets.py in set(self=, obj=, value={'InteractiveShellApp': {'gui': 'osx', 'exec_lin...e}, 'PromptManager': {'color_scheme': 'NoColor'}}) 532 new_value = self._validate(obj, value) 533 try: 534 old_value = obj._trait_values[self.name] 535 except KeyError: 536 old_value = self.default_value 537 538 obj._trait_values[self.name] = new_value 539 try: 540 silent = bool(old_value == new_value) 541 except: 542 # if there is an error in comparing, default to notify 543 silent = False 544 if silent is not True: 545 # we explicitly compare silent to True just in case the equality 546 # comparison above returns something other than True/False --> 547 obj._notify_trait(self.name, old_value, new_value) obj._notify_trait = > self.name = 'config' old_value = traitlets.Undefined new_value = {'InteractiveShellApp': {'gui': 'osx', 'exec_lines': ['import numpy as np', 'import pandas as pd', 'from pandas import Series, DataFrame', 'import matplotlib as mpl', 'from pprint import pprint as pp', 'def fixquote(): print(\'"\'*3)'], 'pylab_import_all': False, 'pylab': 'osx'}, 'TerminalInteractiveShell': {'confirm_exit': False, 'autoindent': True, 'editor': 'subl -w', 'colors': 'NoColor'}, 'PlainTextFormatter': {'pprint': False}, 'IPCompleter': {'limit_to__all__': False, 'omit__names': 0}, 'TerminalIPythonApp': {'gui': 'osx', 'pylab': 'osx', 'verbose_crash': True}, 'PromptManager': {'color_scheme': 'NoColor'}} 548 549 def __set__(self, obj, value): 550 """Set the value of the trait by self.name for the instance. 551 552 Values pass through a validation stage where errors are raised when 553 impropper types, or types that cannot be coerced, are encountered. 554 """ 555 if self.read_only: 556 raise TraitError('The "%s" trait is read-only.' % self.name) 557 else: 558 self.set(obj, value) 559 560 def _validate(self, obj, value): 561 if value is None and self.allow_none: 562 return value /opt/local/Library/Frameworks/Python.framework/Versions/3.5/lib/python3.5/site-packages/traitlets/traitlets.py in _notify_trait(self=, name='config', old_value=traitlets.Undefined, new_value={'InteractiveShellApp': {'gui': 'osx', 'exec_lin...e}, 'PromptManager': {'color_scheme': 'NoColor'}}) 1078 # Presence of the notify_change method 1079 # on __dict__ can cause memory leaks 1080 # and prevents pickleability 1081 self.__dict__.pop('notify_change') 1082 # trigger delayed notifications 1083 for changes in cache.values(): 1084 for change in changes: 1085 self.notify_change(change) 1086 1087 def _notify_trait(self, name, old_value, new_value): 1088 self.notify_change({ 1089 'name': name, 1090 'old': old_value, 1091 'new': new_value, 1092 'owner': self, -> 1093 'type': 'change', 1094 }) 1095 1096 def notify_change(self, change): 1097 name, type = change['name'], change['type'] 1098 1099 callables = [] 1100 callables.extend(self._trait_notifiers.get(name, {}).get(type, [])) 1101 callables.extend(self._trait_notifiers.get(name, {}).get(All, [])) 1102 callables.extend(self._trait_notifiers.get(All, {}).get(type, [])) 1103 callables.extend(self._trait_notifiers.get(All, {}).get(All, [])) 1104 1105 # Now static ones 1106 magic_name = '_%s_changed' % name 1107 if hasattr(self, magic_name): 1108 class_value = getattr(self.__class__, magic_name) /opt/local/Library/Frameworks/Python.framework/Versions/3.5/lib/python3.5/site-packages/traitlets/traitlets.py in notify_change(self=, change={'name': 'config', 'new': {'InteractiveShellApp': {'gui': 'osx', 'exec_lin...e}, 'PromptManager': {'color_scheme': 'NoColor'}}, 'old': traitlets.Undefined, 'owner': , 'type': 'change'}) 1112 cb = getattr(self, magic_name) 1113 # Only append the magic method if it was not manually registered 1114 if cb not in callables: 1115 callables.append(_callback_wrapper(cb)) 1116 1117 # Call them all now 1118 # Traits catches and logs errors here. I allow them to raise 1119 for c in callables: 1120 # Bound methods have an additional 'self' argument. 1121 1122 if isinstance(c, _CallbackWrapper): 1123 c = c.__call__ 1124 elif isinstance(c, EventHandler) and c.name is not None: 1125 c = getattr(self, c.name) 1126 -> 1127 c(change) c = .compatible_observer of > change = {'name': 'config', 'owner': , 'new': {'InteractiveShellApp': {'gui': 'osx', 'exec_lines': ['import numpy as np', 'import pandas as pd', 'from pandas import Series, DataFrame', 'import matplotlib as mpl', 'from pprint import pprint as pp', 'def fixquote(): print(\'"\'*3)'], 'pylab_import_all': False, 'pylab': 'osx'}, 'TerminalInteractiveShell': {'confirm_exit': False, 'autoindent': True, 'editor': 'subl -w', 'colors': 'NoColor'}, 'PlainTextFormatter': {'pprint': False}, 'IPCompleter': {'limit_to__all__': False, 'omit__names': 0}, 'TerminalIPythonApp': {'gui': 'osx', 'pylab': 'osx', 'verbose_crash': True}, 'PromptManager': {'color_scheme': 'NoColor'}}, 'type': 'change', 'old': traitlets.Undefined} 1128 1129 def _add_notifiers(self, handler, name, type): 1130 if name not in self._trait_notifiers: 1131 nlist = [] 1132 self._trait_notifiers[name] = {type: nlist} 1133 else: 1134 if type not in self._trait_notifiers[name]: 1135 nlist = [] 1136 self._trait_notifiers[name][type] = nlist 1137 else: 1138 nlist = self._trait_notifiers[name][type] 1139 if handler not in nlist: 1140 nlist.append(handler) 1141 1142 def _remove_notifiers(self, handler, name, type): /opt/local/Library/Frameworks/Python.framework/Versions/3.5/lib/python3.5/site-packages/traitlets/traitlets.py in compatible_observer(self=, change_or_name={'name': 'config', 'new': {'InteractiveShellApp': {'gui': 'osx', 'exec_lin...e}, 'PromptManager': {'color_scheme': 'NoColor'}}, 'old': traitlets.Undefined, 'owner': , 'type': 'change'}, old=traitlets.Undefined, new=traitlets.Undefined) 763 """ 764 def compatible_observer(self, change_or_name, old=Undefined, new=Undefined): 765 if isinstance(change_or_name, dict): 766 change = change_or_name 767 else: 768 clsname = self.__class__.__name__ 769 warn("A parent of %s._%s_changed has adopted the new @observe(change) API" % ( 770 clsname, change_or_name), DeprecationWarning) 771 change = { 772 'type': 'change', 773 'old': old, 774 'new': new, 775 'name': change_or_name, 776 'owner': self, 777 } --> 778 return func(self, change) global func = undefined self = change = {'name': 'config', 'owner': , 'new': {'InteractiveShellApp': {'gui': 'osx', 'exec_lines': ['import numpy as np', 'import pandas as pd', 'from pandas import Series, DataFrame', 'import matplotlib as mpl', 'from pprint import pprint as pp', 'def fixquote(): print(\'"\'*3)'], 'pylab_import_all': False, 'pylab': 'osx'}, 'TerminalInteractiveShell': {'confirm_exit': False, 'autoindent': True, 'editor': 'subl -w', 'colors': 'NoColor'}, 'PlainTextFormatter': {'pprint': False}, 'IPCompleter': {'limit_to__all__': False, 'omit__names': 0}, 'TerminalIPythonApp': {'gui': 'osx', 'pylab': 'osx', 'verbose_crash': True}, 'PromptManager': {'color_scheme': 'NoColor'}}, 'type': 'change', 'old': traitlets.Undefined} 779 return compatible_observer 780 781 782 def validate(*names): 783 """A decorator to register cross validator of HasTraits object's state 784 when a Trait is set. 785 786 The handler passed to the decorator must have one ``proposal`` dict argument. 787 The proposal dictionary must hold the following keys: 788 * ``owner`` : the HasTraits instance 789 * ``value`` : the proposed value for the modified trait attribute 790 * ``trait`` : the TraitType instance associated with the attribute 791 792 Parameters 793 ---------- /opt/local/Library/Frameworks/Python.framework/Versions/3.5/lib/python3.5/site-packages/traitlets/config/configurable.py in _config_changed(self=, change={'name': 'config', 'new': {'InteractiveShellApp': {'gui': 'osx', 'exec_lin...e}, 'PromptManager': {'color_scheme': 'NoColor'}}, 'old': traitlets.Undefined, 'owner': , 'type': 'change'}) 172 @observe_compat 173 def _config_changed(self, change): 174 """Update all the class traits having ``config=True`` in metadata. 175 176 For any class trait with a ``config`` metadata attribute that is 177 ``True``, we update the trait with the value of the corresponding 178 config entry. 179 """ 180 # Get all traits with a config metadata entry that is True 181 traits = self.traits(config=True) 182 183 # We auto-load config section for this class as well as any parent 184 # classes that are Configurable subclasses. This starts with Configurable 185 # and works down the mro loading the config for each section. 186 section_names = self.section_names() --> 187 self._load_config(change['new'], traits=traits, section_names=section_names) self._load_config = > change = {'name': 'config', 'owner': , 'new': {'InteractiveShellApp': {'gui': 'osx', 'exec_lines': ['import numpy as np', 'import pandas as pd', 'from pandas import Series, DataFrame', 'import matplotlib as mpl', 'from pprint import pprint as pp', 'def fixquote(): print(\'"\'*3)'], 'pylab_import_all': False, 'pylab': 'osx'}, 'TerminalInteractiveShell': {'confirm_exit': False, 'autoindent': True, 'editor': 'subl -w', 'colors': 'NoColor'}, 'PlainTextFormatter': {'pprint': False}, 'IPCompleter': {'limit_to__all__': False, 'omit__names': 0}, 'TerminalIPythonApp': {'gui': 'osx', 'pylab': 'osx', 'verbose_crash': True}, 'PromptManager': {'color_scheme': 'NoColor'}}, 'type': 'change', 'old': traitlets.Undefined} traits = {'color_scheme': , 'in2_template': , 'out_template': , 'justify': , 'in_template': } section_names = ['Configurable', 'PromptManager'] 188 189 def update_config(self, config): 190 """Update config and load the new values""" 191 # load config 192 self._load_config(config) 193 # merge it into self.config 194 self.config.merge(config) 195 # TODO: trigger change event if/when dict-update change events take place 196 # DO NOT trigger full trait-change 197 198 @classmethod 199 def class_get_help(cls, inst=None): 200 """Get the help string for this class in ReST format. 201 202 If `inst` is given, it's current trait values will be used in place of /opt/local/Library/Frameworks/Python.framework/Versions/3.5/lib/python3.5/site-packages/traitlets/config/configurable.py in _load_config(self=, cfg={'InteractiveShellApp': {'gui': 'osx', 'exec_lin...e}, 'PromptManager': {'color_scheme': 'NoColor'}}, section_names=['Configurable', 'PromptManager'], traits={'color_scheme': , 'in2_template': , 'in_template': , 'justify': , 'out_template': }) 154 setattr(self, name, deepcopy(config_value)) 155 elif not _is_section_key(name) and not isinstance(config_value, Config): 156 from difflib import get_close_matches 157 if isinstance(self, LoggingConfigurable): 158 warn = self.log.warning 159 else: 160 warn = lambda msg: warnings.warn(msg, stacklevel=9) 161 matches = get_close_matches(name, traits) 162 msg = u"Config option `{option}` not recognized by `{klass}`.".format( 163 option=name, klass=self.__class__.__name__) 164 165 if len(matches) == 1: 166 msg += u" Did you mean `{matches}`?".format(matches=matches[0]) 167 elif len(matches) >= 1: 168 msg +=" Did you mean one of: `{matches}`?".format(matches=', '.join(sorted(matches))) --> 169 warn(msg) warn = undefined msg = undefined 170 171 @observe('config') 172 @observe_compat 173 def _config_changed(self, change): 174 """Update all the class traits having ``config=True`` in metadata. 175 176 For any class trait with a ``config`` metadata attribute that is 177 ``True``, we update the trait with the value of the corresponding 178 config entry. 179 """ 180 # Get all traits with a config metadata entry that is True 181 traits = self.traits(config=True) 182 183 # We auto-load config section for this class as well as any parent 184 # classes that are Configurable subclasses. This starts with Configurable /opt/local/Library/Frameworks/Python.framework/Versions/3.5/lib/python3.5/contextlib.py in __exit__(self=, type=None, value=None, traceback=None) 51 def _recreate_cm(self): 52 # _GCM instances are one-shot context managers, so the 53 # CM must be recreated each time a decorated function is 54 # called 55 return self.__class__(self.func, self.args, self.kwds) 56 57 def __enter__(self): 58 try: 59 return next(self.gen) 60 except StopIteration: 61 raise RuntimeError("generator didn't yield") from None 62 63 def __exit__(self, type, value, traceback): 64 if type is None: 65 try: ---> 66 next(self.gen) global next = undefined self.gen = 67 except StopIteration: 68 return 69 else: 70 raise RuntimeError("generator didn't stop") 71 else: 72 if value is None: 73 # Need to force instantiation so we can reliably 74 # tell if we get the same exception back 75 value = type() 76 try: 77 self.gen.throw(type, value, traceback) 78 raise RuntimeError("generator didn't stop after throw()") 79 except StopIteration as exc: 80 # Suppress StopIteration *unless* it's the same exception that 81 # was passed to throw(). This prevents a StopIteration /opt/local/Library/Frameworks/Python.framework/Versions/3.5/lib/python3.5/site-packages/traitlets/traitlets.py in hold_trait_notifications(self=) 1070 raise e 1071 finally: 1072 # Reset the notify_change to original value, enable cross-validation 1073 # and fire resulting change notifications. 1074 self.notify_change = notify_change 1075 self._cross_validation_lock = False 1076 1077 if isinstance(notify_change, types.MethodType): 1078 # Presence of the notify_change method 1079 # on __dict__ can cause memory leaks 1080 # and prevents pickleability 1081 self.__dict__.pop('notify_change') 1082 # trigger delayed notifications 1083 for changes in cache.values(): 1084 for change in changes: -> 1085 self.notify_change(change) self.notify_change = > change = {'name': 'color_scheme', 'owner': , 'new': 'NoColor', 'type': 'change', 'old': 'Linux'} 1086 1087 def _notify_trait(self, name, old_value, new_value): 1088 self.notify_change({ 1089 'name': name, 1090 'old': old_value, 1091 'new': new_value, 1092 'owner': self, 1093 'type': 'change', 1094 }) 1095 1096 def notify_change(self, change): 1097 name, type = change['name'], change['type'] 1098 1099 callables = [] 1100 callables.extend(self._trait_notifiers.get(name, {}).get(type, [])) /opt/local/Library/Frameworks/Python.framework/Versions/3.5/lib/python3.5/site-packages/traitlets/traitlets.py in notify_change(self=, change={'name': 'color_scheme', 'new': 'NoColor', 'old': 'Linux', 'owner': , 'type': 'change'}) 1112 cb = getattr(self, magic_name) 1113 # Only append the magic method if it was not manually registered 1114 if cb not in callables: 1115 callables.append(_callback_wrapper(cb)) 1116 1117 # Call them all now 1118 # Traits catches and logs errors here. I allow them to raise 1119 for c in callables: 1120 # Bound methods have an additional 'self' argument. 1121 1122 if isinstance(c, _CallbackWrapper): 1123 c = c.__call__ 1124 elif isinstance(c, EventHandler) and c.name is not None: 1125 c = getattr(self, c.name) 1126 -> 1127 c(change) c = > change = {'name': 'color_scheme', 'owner': , 'new': 'NoColor', 'type': 'change', 'old': 'Linux'} 1128 1129 def _add_notifiers(self, handler, name, type): 1130 if name not in self._trait_notifiers: 1131 nlist = [] 1132 self._trait_notifiers[name] = {type: nlist} 1133 else: 1134 if type not in self._trait_notifiers[name]: 1135 nlist = [] 1136 self._trait_notifiers[name][type] = nlist 1137 else: 1138 nlist = self._trait_notifiers[name][type] 1139 if handler not in nlist: 1140 nlist.append(handler) 1141 1142 def _remove_notifiers(self, handler, name, type): /opt/local/Library/Frameworks/Python.framework/Versions/3.5/lib/python3.5/site-packages/traitlets/traitlets.py in __call__(self=, change={'name': 'color_scheme', 'new': 'NoColor', 'old': 'Linux', 'owner': , 'type': 'change'}) 655 656 def __eq__(self, other): 657 # The wrapper is equal to the wrapped element 658 if isinstance(other, _CallbackWrapper): 659 return self.cb == other.cb 660 else: 661 return self.cb == other 662 663 def __call__(self, change): 664 # The wrapper is callable 665 if self.nargs == 0: 666 self.cb() 667 elif self.nargs == 1: 668 self.cb(change['name']) 669 elif self.nargs == 2: --> 670 self.cb(change['name'], change['new']) self.cb = > change = {'name': 'color_scheme', 'owner': , 'new': 'NoColor', 'type': 'change', 'old': 'Linux'} 671 elif self.nargs == 3: 672 self.cb(change['name'], change['old'], change['new']) 673 elif self.nargs == 4: 674 self.cb(change['name'], change['old'], change['new'], change['owner']) 675 676 def _callback_wrapper(cb): 677 if isinstance(cb, _CallbackWrapper): 678 return cb 679 else: 680 return _CallbackWrapper(cb) 681 682 683 class MetaHasDescriptors(type): 684 """A metaclass for HasDescriptors. 685 /opt/local/Library/Frameworks/Python.framework/Versions/3.5/lib/python3.5/site-packages/IPython/core/prompts.py in _color_scheme_changed(self=, name='color_scheme', new_value='NoColor') 246 # next, look in user_ns and builtins: 247 for container in (self.shell.user_ns, __builtins__): 248 if key in container: 249 return container[key] 250 # nothing found, put error message in its place 251 return "" % key 252 253 254 class PromptManager(Configurable): 255 """This is the primary interface for producing IPython's prompts.""" 256 shell = Instance('IPython.core.interactiveshell.InteractiveShellABC', allow_none=True) 257 258 color_scheme_table = Instance(coloransi.ColorSchemeTable, allow_none=True) 259 color_scheme = Unicode('Linux', config=True) 260 def _color_scheme_changed(self, name, new_value): --> 261 self.color_scheme_table.set_active_scheme(new_value) self.color_scheme_table.set_active_scheme = undefined new_value = 'NoColor' 262 for pname in ['in', 'in2', 'out', 'rewrite']: 263 # We need to recalculate the number of invisible characters 264 self.update_prompt(pname) 265 266 lazy_evaluate_fields = Dict(help=""" 267 This maps field names used in the prompt templates to functions which 268 will be called when the prompt is rendered. This allows us to include 269 things like the current time in the prompts. Functions are only called 270 if they are used in the prompt. 271 """) 272 def _lazy_evaluate_fields_default(self): return lazily_evaluate.copy() 273 274 in_template = Unicode('In [\\#]: ', config=True, 275 help="Input prompt. '\\#' will be transformed to the prompt number") 276 in2_template = Unicode(' .\\D.: ', config=True, AttributeError: 'NoneType' object has no attribute 'set_active_scheme' *************************************************************************** History of session input: