[Docpie]

Fork me on GitHub

使用docpie的理由


比起argparsedocpie可以

  1. 将代码部分缩减到最小,一切后续升级都只需要更新帮助文档即可
  2. 极大地减少学习曲线,所见即所得

比起docoptdocpie可以

  1. 一些BUG并不存在于docpie#71 >>#282 >>#130 >>#275 >>#209 >>
  2. 支持cp风格命令行

    '''
    Usage: mycopy.py <source_file>;... <target_directory>;
    '''
    
    from docpie import docpie
    from docopt import docopt
    
    print('---- docopt ----')
    try:
       print(docopt(__doc__))
    except BaseException as e:
       print(e)
    
    print('---- docpie ----')
    try:
       print(docpie(__doc__))
    except BaseException as e:
       print(e)
    

    输出:

    $ python mycopy.py ./docpie/*.py ./docpie/test/*.py ~/my_project
    ---- docopt ----
    Usage: mycopy.py <source_file>... <target_directory>
    ---- docpie ----
    {'--': False,
     '<source_file>': ['./docpie/setup.py', './docpie/test/*.py'],
     '<target_directory>': '/Users/tyler/my_project'}
    

    自己试试 >>

  3. 自动处理--命令。默认docpie会自动处理--命令,你不必在文档中声明。 (当然你也可以声明)

    """Usage: prog <hello>"""
    from docpie import docpie
    print(docpie(__doc__))
    

    自己试试 >>

    当输入-- --world时会返回{'--': True, '<hello>': '--world'}

  4. 你可以声明程序名称

    """
    Usage:
        myscript.py config
        $ python myscript.py make
        $ sudo python myscript.py make install
    """
    from docpie import docpie
    print(docpie(__doc__), name='myscript.py')

    自己试试 >>

  5. 可以序列化Docpie实例

  6. 可以自定义预处理option

如果你喜欢这个项目,可以买我一杯啤酒,让我做的更好! | Flattr this

侧栏导航