项目骨架的基本模板系统。
项目描述
skeleton类似于PasteScript的模板部分,但没有任何依赖项;它也与Python 3兼容。
需求
Python 2.6或3.1
它目前仅在Mac OSX上对Python 2.6和3.1进行了测试。
安装
获取骨架的最简单方法是您已安装setuptools / distribute或pip
easy_install skeleton
或
pip install skeleton
当前的开发版本可以在http://github.com/dinoboff/skeleton/tarball/master找到。
使用示例
让我们创建一个基本的模块模板;一个带有setup.py、README和模块文件的模板。
首先,创建骨架脚本布局
mkmodule.py basic-module/README basic-module/setup.py_tmpl basic-module/{module_name}.py
mkmodule.py
mkmodule.py是创建新模块的脚本
#!/usr/bin/env python """ Basic script to create an empty python package containing one module """ from skeleton import Skeleton, Var class BasicModule(Skeleton): """ Create an empty module with its etup script and a README file. """ src = 'basic-module' variables = [ Var('module_name'), Var('author'), Var('author_email'), ] def main(): """Basic command line bootstrap for the BasicModule Skeleton""" BasicModule.cmd() if __name__ == '__main__': main()
“src”属性设置脚本的相对路径到骨架目录,其中脚本将找到要创建的文件和目录。
“variables”属性列出了模板所需的变量。具有默认值的变量可以被用户留空。
Skeleton.cmd()是一个方便的方法,用于设置optparser和基本的日志配置,并应用骨架
Usage: mkmodule.py [options] dst_dir Options: -h, --help show this help message and exit -q, --quiet -v, --verbose -d, --debug --module-name=NAME Module Name --author=AUTHOR Author --author-email=EMAIL Author Email
如果您需要自己运行一个Skeleton,您将使用构造函数、update或__setitem__方法来设置变量(Skeleton是dict的子类),并使用write(dst_dir)或run(dst_dir)方法来应用骨架。write()如果未设置变量将引发一个KeyException;run()将提示用户缺失的变量
basic-module/README
README是一个静态文件,将直接复制
TODO: write the description of this module.
基本模块/setup.py_tmpl
setup.py_tmpl 是一个模板(以 _tmpl 后缀结尾),它将被用于创建 setup.py 文件。
#!/usr/bin/env python from distutils.core import setup PROJECT = {module_name!r} VERSION = '0.1' AUTHOR = {author!r} AUTHOR_EMAIL = {author_email!r} DESC = "A short description..." setup( name=PROJECT, version=VERSION, description=DESC, long_description=open('README.rst').read(), author=AUTHOR, author_email=AUTHOR_EMAIL, py_module=[{module_name!r},], )
默认情况下,骨架 使用 python 2.6+ 字符串格式化。
基本模块/{module_name}.py
{module_name}.py 是一个模块文件,其名称将在运行时动态设置。
额外
skeleton 包含了一个基本包布局的骨架,您可以通过以下方式运行它:
python -m skeleton.examples.basicpackage <dst_dir>
或者使用 virtualenvwrapper.project。安装它
pip install skeleton[virtualenv-templates]
配置 virtualenvwrapper 和 virtualenwrapper.project;然后,创建一个新的项目
mkproject -t package <project name>
待办事项
添加更多示例。
开发
在 http://github.com/dinoboff/skeleton/ 上报告任何问题并分叉 squeleton。
历史
0.6 (2010年5月12日)
添加 skeleton.insert_into_file()。
添加 skeleton.Bool。
将 Skeleton.skel_dir 重命名为 Skeleton.real_dir。
将 Skelton.vars 重命名为 Skeleton.variables。
将 Skeleton.check_vars 重命名为 Skeleton.check_variables。
Skeleton 构造函数可以接受任何映射对象,而不仅仅是 Skeleton。
添加 Var.valiadte(response) 以验证用户输入。
将 Var.prompt() 重命名为 Var.do_prompt()。Var.prompt 现在是一个属性,返回提示消息。
0.7 将是 1.0 版本之前的最后一个次要版本。版本 0.6 和 1.0 之间将会有向后不兼容的更改,这些更改将在 0.7 中通过警告标记。
0.5.1 (2010年5月11日)
修复包 virtualenvwrapper.project 扩展中的语法错误。
0.5 (2010年5月10日)
取消对 Python 2.5 的支持(可能会恢复基本支持)。
在 1.0 版本发布之前的各种内部更改。
改进与模板和文件名中意外变量名称相关的错误。
0.4 (2010年5月8日)
将 Var 名称转换为 lower_case_with_underscores。
改进命令中的 Var 名称显示。
改进命令行中 Vars 的长字符串选项。
修复 mkmodule.py 示例中 setup.py_tmpl 的错误。
0.3 (2010年5月6日)
添加了新的类方法 Skeleton.cmd,用于创建记录器和 optparser。
Skeleton.run 不再设置记录器和 optparser。
Skeleton.write 如果缺少密钥,则引发 KeyError 异常,而不是提示用户。
删除了 pre_run、post_write 和 pre_write 方法。覆盖 write 和 run。
添加了 configure_parser(),用于配置由 Skeleton.cmd 设置的解析器。
将 required_skeleton 属性添加到 Skeleton。这些骨架将在主程序之前运行。它们都共享相同的条目。
在 Skeleton optparser 中添加了详细选项。
为 virtualenwrapper.project 添加了基本包模板扩展。
0.2.1 (2010年5月2日)
修复了 Var._prompt 静态方法中的错误,该错误阻止了对变量赋值的提示。
0.2 (2010年5月1日)
添加了 Python 3 支持。
0.1 (2010年4月31日)
第一个版本。
项目详情
下载文件
下载适合您平台文件的文件。如果您不确定选择哪一个,请了解更多关于 安装包 的信息。
源分发
构建版本
skeleton-0.6.tar.gz 的哈希值
算法 | 哈希摘要 | |
---|---|---|
SHA256 | ade7815fe1878e3083b4e7ba954373439227df5e7123c125cbe5c87f85a31516 |
|
MD5 | 8fed3ba159c8725fe964321e987c0c8a |
|
BLAKE2b-256 | b2e71e55141ec76bd6f29b8b4a216112c8f1bc1d41375f427bc98c6098174b39 |
skeleton-0.6-py3.1.egg 的哈希值
算法 | 哈希摘要 | |
---|---|---|
SHA256 | b7fbf7b122e75e99bc32de1ad0a7d1316c951dc1ce4203568334709d75658ce3 |
|
MD5 | 4ca80a762db01692ae13b5535658e8a0 |
|
BLAKE2b-256 | bc1fe4194b54f8dc215806f1a2cc4dcc8a98242a0d6b0db8c82da13f6983be8f |