在Jupyter Magic自定义函数中应用common_exclusive_group

时间:2018-10-15 14:49:21

标签: python jupyter-notebook

我想编写自定义魔术,该魔术获得--first或--second参数,但是当根本没有参数时会引发错误。在简单的argparse中,我可以使用common_exclusive_group做到这一点,但是我不知道如何在Magics的情况下应用此方法。硬编码示例:

from IPython.core import magic_arguments
from IPython.core.magic import cell_magic, Magics, magics_class

@magics_class
class TestMagics(Magics):
    @cell_magic
    @magic_arguments.magic_arguments()
    @magic_arguments.argument('--first', '-f',
          action='store_true',
          help='Whether to print the results'
    )
    @magic_arguments.argument('--second', '-s',
          action='store_true',
          help='Whether to print the results'
    )
    def hello(self, line='', cell=None):
        args = magic_arguments.parse_argstring(self.hello, line)
        if args.first or args.second:
            print('hello ' + cell)
        else:
            print('error should occur!')

ip = get_ipython()
ip.register_magics(TestMagics)

在块中:

%%hello 
world

应该引发错误

0 个答案:

没有答案