简单的命令行程序
volkanic的Python项目详细描述
伏尔坎语
一个简单的命令行程序。安装(如有必要,添加sudo
)
python3 -m pip install volkanic
附件
列出子命令
$ volk
availabe commands:
- a
- o
- runconf
- where
使用volk where
:
$ volk where requests
requests /usr/local/lib/python3.6/site-packages/requests
您可以使用volk o
使用默认应用程序打开文件或url。
使用默认文件管理器打开当前目录(finder/explorer.exe/…)
$ volk o .
显示sys.argv
:
$ volk a \; "hello world" hello python
0 '/usr/local/bin/volk'
1 'a'
2 ';'
3 'hello world'
4 'hello'
5 'python'
子命令协议
假设您有一个名为newpkg
newpkg
├── MANIFEST.in
├── docs
├── newpkg
│ ├── __init__.py
│ ├── algors.py
│ ├── formatters.py
│ ├── main.py
│ └── parsers.py
├── requirements.txt
├── setup.py
└── test_newpkg
在一个功能模块中,例如newpkg/newpkg/formatter.py
,
提供一个只接受两个参数的入口函数:
importargparsedefformat_text(path):# actual code herereturndefrun(prog=None,args=None):desc='human readable formatter'parser=argparse.ArgumentParser(prog=prog,description=desc)parser.add_argument('-i','--input-file',help='path to your input file')ns=parser.parse_args(args)format_text(ns.input_file)
newpkg/newpkg/main.py
中的子命令注册表:
importvolkanicentries={# shorthand for "newpkg.formatter:run": "fmt","newpkg.formatter":"fmt","newpkg.parsers:run_yml_parser":"yml","newpkg.parsers:run_ini_parser":"ini",}registry=volkanic.CommandRegistry(entries)
注意newpkg.formatter
是newpkg.formatter:run
的简写。
在newpkg/setup.py
:
fromsetuptoolsimportsetupsetup(name="newpkg",entry_points={"console_scripts":["newcmd = newpkg.main:registry"]},# more arguments)
安装程序包newpkg
或链接到python3 setup.py develop
。
现在您有了命令newcmd
:
$ newcmd
availabe commands:
- fmt
- ini
- yml
使用子命令运行fmt
:
$ newcmd fmt -h
运行yaml
创建一个yaml文件,例如print.yml
default:module:builtinscall:printargs:-volkanic-commandkwargs:sep:"-"end:"~"
运行
$ volk runconf print.yml volkanic-command~