diff --git a/qt/python/mantidqt/widgets/ipythonconsole/widget.py b/qt/python/mantidqt/widgets/ipythonconsole/widget.py index 4802640b15d70379d89101b114c989fa934412b2..7d8c44a628c81d5380d2d039b6d11378b12e0c3d 100644 --- a/qt/python/mantidqt/widgets/ipythonconsole/widget.py +++ b/qt/python/mantidqt/widgets/ipythonconsole/widget.py @@ -39,6 +39,15 @@ from mantidqt.utils.async import blocking_async_task class InProcessIPythonConsole(RichIPythonWidget): def __init__(self, *args, **kwargs): + """ + A constructor matching that of RichIPythonWidget + :param args: Positional arguments passed directly to RichIPythonWidget + :param kwargs: Keyword arguments. The following are used by this + widget: + - banner_extra: An additinal string to append to the default banner + """ + # remove our arguments + banner_extra = kwargs.pop("banner_extra", "") super(InProcessIPythonConsole, self).__init__(*args, **kwargs) # create an in-process kernel @@ -51,6 +60,10 @@ class InProcessIPythonConsole(RichIPythonWidget): shell = kernel.shell shell.run_code = async_wrapper(shell.run_code, shell) + # custom banner + if banner_extra: + self.banner += "\n" + banner_extra + # attach channels and start kenel kernel_client = kernel_manager.client() kernel_client.start_channels() diff --git a/qt/python/mantidqt/widgets/test/test_ipythonconsole.py b/qt/python/mantidqt/widgets/test/test_ipythonconsole.py index 02fd4399127d4c4a7fa7c86a10d24a8d8c0a5610..3ba6575b90bb8a08599f7c8eed9858d23872491a 100644 --- a/qt/python/mantidqt/widgets/test/test_ipythonconsole.py +++ b/qt/python/mantidqt/widgets/test/test_ipythonconsole.py @@ -34,6 +34,11 @@ class InProcessIPythonConsoleTest(unittest.TestCase): self.assertTrue(hasattr(widget, "kernel_manager")) self.assertTrue(hasattr(widget, "kernel_client")) + def test_banner_extra_updates_banner(self): + widget = InProcessIPythonConsole(banner_extra="foo") + self.assertTrue(widget.banner.endswith("foo")) + self.assertTrue(widget.banner.startswith("Python")) + if __name__ == '__main__': unittest.main()