[Docpie]

Fork me on GitHub

修改日志与将来特性


TODO

  • 重构
  • 支持Options分组
  • 提供bash自动补全工具
  • 文档结构重组

修改日志

0.2.9

  • [修正] optionsfirst一个bug:无法检测option的需要argument,导致失败
    """
    Usage: prog [options] -w<val> <arg>
    """
    from docpie import docpie
    print(docpie(__doc__), ['prog', '-w', 'sth', 'arg'], optionsfirst=True)
    # {'--': False, '-w': 'sth', '<arg>': 'arg'}
    

0.2.8

  • [修正] 下面这个不会失败了(注:不要这么写,不是POSIX标准)
    """
    Usage: prog [options] <arg>
    
    Options:
        --force[=<value>]
    """
    
    from docpie import docpie
    docpie(__doc__, ['prog', '--force', '--', 'val'])
    # {'--': True, '--force': None, '<arg>': 'val'}
    

0.2.7

  • [修正] 修正一个笔误,在帮助信息语法错误时无法正确抛出错误
  • [修正] issue [#3]

0.2.6

  • [新增] 可重复参数更智能处理方式。

    第一,可重复元素可以为一个或多个argument,可以嵌套。但是只能是argument (不能为option,不能为command)

    (<arg1> <arg2>)... <arg3>
    

    第二,可重复元素后面的元素可以是argument或者command,可以分组。

    <arg>... <arg2> cmd
    <arg>... (cmd <arg2>) <arg3>
    

0.2.5

  • [修正] 当“Usage”包含“Options:”字样时(例如“prog <options:>”),不会把这部分当作“Options”区域

0.2.4

  • [修正]支持Widnows/r/n风格换行符

0.2.3

  • [修正] 当在"Usage"中声明形如-a<arg>并在"Options"中声明-a要求一个参数时,会报错

0.2.2

  • [修正] 测试中部分测试失败后不会汇报
  • [修正] 0.2.1版的修改导致helpversion参数无效,且不会被测试发现

0.2.1

  • [修正] set_config修改stdopt/attachopt/attachvalue 会导致重新初始化Docpie实例(如果你需要修改这些值,应该重新初始化一个)
  • [修正] 现在<a|b>不会被解释为<a | b>

0.2.0

  • [新增] appearedonly参数允许只显示出现的option。 (仅对options有效,不影响commands/arguments)
  • [新增] 支持多个options定义。现在你可以这么写:
    Usage: git <cmd> [options] [<args>...]
    
    Global Options:
        -h, --help      print this message
    rm Options:  # seperate with options by breaking the line
        -f, --force     force remove a file
    
    add Options:  # seperate with at least one visable line
        -n, --dry-run  Don't actually add the file(s)
    

0.1.1

  • [修改] 重构,Usage会根据Options的定义来解析。

    你现在可以这么写(不推荐!这样很不清楚!

    Usage: prog -iFILE
    
    Options: -i FILE    input file
    

    推荐写为-i<file>

  • [新增] 当一个option不存在时给出提示信息('Unknown option: <option>'

  • [修正] 在匹配之前处理预处理Option
  • [新增] optionsfirst参数
  • [修改] 不兼容修改:移除Docpie.option_text属性,新增Docpie.option_sections属性

0.1.0

  • [修正] 值合并问题,现在Usage: prog [--repeat=<sth> --repeat=<sth>] 匹配prog时会返回'--repeat=[]'而不是之前错误的'--repeat=0'

0.0.9

  • [新增] 更好的错误信息提示。
  • [修正] 更好的排他分组处理。排他分组会直接被拆分为多条对应的Usage。这样:

    Usage: prog [-v | -vv | -vvv] cmd

    就可以匹配-v cmd-vv cmd-vvv cmd。之前的写法依然可用:

    Usage: prog [-vvv | -vv | -v] cmd

    不过新写法可读性更强。

  • [修正] 去除旧接口,去除save.py

0.0.8

  • [修正] Docpie.tokens.Argv.auto_expand无法正确处理--

0.0.7

  • [新增] Docpie可以合理推测argv中传入的长option。例如当你同时 定义了--verbose--version时,--verb就会被解释为--verbose--vers--version,而--ver则会抛出一个错误。

0.0.6

  • [修正] Docpie会将所有option推到前面,从而修正 test.test_docpie.DocpieRunDefaultTest.test_option_unit_stack的问题
  • [修改] Docpie.option_text与定义的"Option" 完全一致(包含 "Option"标题)。
  • [修改] Docpie.usage_text与定义的"Usage" 完全一致(包含"Usage"标题)。
  • [修改] 将数据保存到Docpie实例中,从而允许一个程序初始化多个不同配置的Docpie实例。
  • [修改] 允许pickle直接序列化Docpieneed_picklerestore_pickle会弹出警告

0.0.5

  • [修改] 不兼容修改: [] 意味着里面的任何元素都是可选的。

    Usage: prog [-dir]

    等同于

    Usage: prog [-d] [-i] [-r]

    如果你希望所有元素都出现,可以使用:

    Usage: prog [(-dir)]

0.0.4

  • [修正] Usage: prog [-v] -- <args>...无法匹配porg -v -- -v --verb
  • [修正] #1 command 顺序问题。

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

侧栏导航