跳转到主要内容

项目骨架的基本模板系统。

项目描述

skeleton类似于PasteScript的模板部分,但没有任何依赖项;它也与Python 3兼容。

需求

  • Python 2.6或3.1

它目前仅在Mac OSX上对Python 2.6和3.1进行了测试。

安装

获取骨架的最简单方法是您已安装setuptools / distributepip

easy_install skeleton

pip install skeleton

当前的开发版本可以在http://github.com/dinoboff/skeleton/tarball/master找到。

使用示例

让我们创建一个基本的模块模板;一个带有setup.pyREADME和模块文件的模板。

首先,创建骨架脚本布局

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__方法来设置变量(Skeletondict的子类),并使用write(dst_dir)run(dst_dir)方法来应用骨架。write()如果未设置变量将引发一个KeyExceptionrun()将提示用户缺失的变量

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]

配置 virtualenvwrappervirtualenwrapper.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_runpost_writepre_write 方法。覆盖 writerun

  • 添加了 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 (61.7 kB 查看哈希值)

上传时间: 源代码

构建版本

skeleton-0.6-py3.1.egg (98.6 kB 查看哈希值)

上传时间: 源代码

由以下支持

AWS AWS 云计算和安全赞助商 Datadog Datadog 监控 Fastly Fastly CDN Google Google 下载分析 Microsoft Microsoft PSF赞助商 Pingdom Pingdom 监控 Sentry Sentry 错误日志 StatusPage StatusPage 状态页面