"""
1. Crash On IPython
"""


def set_crash_on_ipdb(debug_mode):
    if debug_mode:
        import sys

        class ExceptionHook:
            instance = None

            def __call__(self, *args, **kwargs):
                if self.instance is None:
                    from IPython.core import ultratb
                    self.instance = ultratb.FormattedTB(mode='Plain', color_scheme='Linux', call_pdb=1)
                return self.instance(*args, **kwargs)

        sys.excepthook = ExceptionHook()

"""
1. Crash On IPython
"""


def set_crash_on_ipdb(debug_mode):
    if debug_mode:
        import sys

        class ExceptionHook:
            instance = None

            def __call__(self, *args, **kwargs):
                if self.instance is None:
                    from IPython.core import ultratb
                    self.instance = ultratb.FormattedTB(mode='Plain', color_scheme='Linux', call_pdb=1)
                return self.instance(*args, **kwargs)

        sys.excepthook = ExceptionHook()

1. Crash On IPython