itango.py 文件源码

python
阅读 25 收藏 0 点赞 0 评论 0

项目:itango 作者: tango-controls 项目源码 文件源码
def patch_qt_console():
    """Overwrite the original IPython Qt widget with our own
    so we can put a customized banner.

    Return the customized application class.
    """
    # Traitlets imports
    try:  # IPython 4.x
        from traitlets import Unicode
    except ImportError:  # IPython < 4.x
        from IPython.utils.traitlets import Unicode

    # Qt concole imports
    try:
        from qtconsole import rich_ipython_widget
        from qtconsole import qtconsoleapp
    except ImportError:
        from IPython.qt.console import rich_ipython_widget
        from IPython.qt.console import qtconsoleapp

    # Patch widget factory
    try:
        WidgetClass = rich_ipython_widget.RichJupyterWidget
    except AttributeError:
        WidgetClass = rich_ipython_widget.RichIPythonWidget

    # Custom widget class
    class ITangoConsole(WidgetClass):

        banner = Unicode(config=True)

        def _banner_default(self):
            config = get_config()
            banner = config.ITangoConsole.banner
            return banner if isinstance(banner, str) else ''

    # Patch widget factory
    try:
        AppClass = qtconsoleapp.JupyterQtConsoleApp
    except AttributeError:
        AppClass = qtconsoleapp.IPythonQtConsoleApp
    AppClass.widget_factory = ITangoConsole

    # Return patched application class
    return AppClass
评论列表
文章目录


问题


面经


文章

微信
公众号

扫码关注公众号