用于创建脚本运行器的简单实用工具
项目描述
概述
clue_script用于定义子命令,特别关注Web风格的程序。该功能灵感来源于Django的manage.py脚本。
需求
Python 2.6或2.7(未在Python 3.x上测试)
runserver支持(可选)
Paste
argparse (如果部署在Python < 2.7)
用法
一个简单的示例,添加一个打印“hello world”的命令
from clue_script import command, Commander @command def helloworld(): print 'hello world' if __name__ == '__main__': Commander.scan(globals()).run()
要执行更复杂的命令,可以使用类似于Python 2.7的argparse(也在2.6上可用)。
import argparse from clue_script import command, Commander @command def foo(*argv): parser = argparse.ArgumentParser() parser.add_argument('-x', help='simple test', default='yes', metavar='x') ns = parser.parse_args(argv) # do something if __name__ == '__main__': Commander.scan(globals()).run()
提供的命令
目前有两个提供的命令工厂。
make_reloadable_server_command (有关runserver的详细说明,请参阅上面的注释)
make_syncdb_command
一个典型的Web应用可以使用这些命令如下
if __name__ == '__main__': def createtables(session): models.Base.metadata.create_all(session.bind) settings = init_settings() commander = script.Commander([script.make_reloadable_server_command(make_app), script.make_syncdb_command(settings['spitter.db_session_factory'], createtables)]) commander.scan(globals()) commander.run()
在没有参数的情况下运行脚本将产生类似以下内容
Commands: runserver Run a reloadable development web server. syncdb Update the database.
致谢
由Rocky Burt <rocky AT serverzen DOT com> 开发和维护
变更
0.3.1 (Jul-27-2011)
修复了print_usage()被错误调用的愚蠢错误
0.3 (Jul-10-2011)
添加了rfoo支持,用于启动与正在运行的服务器连接的shell http://code.google.com/p/rfoo/
改进了命令用法的格式化
删除了大部分无用的make_syncdb命令
使Commander.commands更易于访问
0.2.4 (Mar-3-2011)
修复了当代码更改时,非重新加载部分会关闭应用程序的问题
0.2.3 (Feb-20-2011)
从Khufu-Script重命名为clue_script
0.2.2 (Feb-16-2011)
更新项目URL
0.2.1 (2011年1月26日)
修复scan()方法以返回指挥实例
0.2 (2011年1月3日)
首次发布
项目详情
关闭
clue_script-0.3.1.tar.gz的哈希值
算法 | 哈希摘要 | |
---|---|---|
SHA256 | 6cf32c97e18b9347428a9fb825baa63fe99d63f7fcd335d346d49ff66ef97e54 |
|
MD5 | a5b09c456ceddbab47c0f1a19f673b38 |
|
BLAKE2b-256 | ba1e9f9bf0d3f0f2b70f8817a4240fd5fdcc567dee3b956768a15a0620cc59a7 |