跳转到主要内容

帮助Zope 3项目快速启动的工具

项目描述

此包提供了ZBoiler Zope功能。

详细文档

ZBoiler - 快速启动项目的简便方法

ZBoiler包提供了一个小脚本,可以从简单的、高级的功能XML文件生成项目的样板。此类配置文件的示例是 sample-project.xml

>>> from z3c.boiler import script
>>> def boil(args, showLog=False):
...     try:
...         script.main(args)
...     except SystemExit, err:
...         print 'Exit Code: %i' % err.code
...     else:
...         print 'Error: No proper exit.'

让我们使用脚本生成项目。我们需要指定配置文件和一个目标目录。

>>> import os
>>> featureFile = os.path.join(
...     os.path.dirname(script.__file__), 'sample-project.xml')
>>> boil(['-i', featureFile, '-o', buildPath])
INFO - Creating directory .../z3c.sampleproject
INFO - Creating file .../z3c.sampleproject/bootstrap.py
INFO - Creating file .../z3c.sampleproject/setup.py
INFO - Creating file .../z3c.sampleproject/buildout.cfg
INFO - Creating directory .../z3c.sampleproject/src
INFO - Creating directory .../z3c.sampleproject/src/z3c
INFO - Creating directory .../z3c.sampleproject/src/z3c/sampleproject
INFO - Creating file .../z3c.sampleproject/src/z3c/sampleproject/application.zcml
INFO - Creating directory .../z3c.sampleproject/src/z3c/sampleproject/browser
INFO - Creating file .../z3c.sampleproject/src/z3c/sampleproject/browser/configure.zcml
INFO - Creating file .../z3c.sampleproject/src/z3c/sampleproject/browser/message.py
INFO - Creating file .../z3c.sampleproject/src/z3c/sampleproject/browser/__init__.py
INFO - Creating file .../z3c.sampleproject/src/z3c/sampleproject/configure.zcml
INFO - Creating file .../z3c.sampleproject/src/z3c/sampleproject/interfaces.py
INFO - Creating file .../z3c.sampleproject/src/z3c/sampleproject/index.txt
INFO - Creating directory .../z3c.sampleproject/src/z3c/sampleproject/tests
INFO - Creating file .../z3c.sampleproject/src/z3c/sampleproject/tests/test_doc.py
INFO - Creating file .../z3c.sampleproject/src/z3c/sampleproject/tests/__init__.py
INFO - Creating file .../z3c.sampleproject/src/z3c/sampleproject/README.txt
INFO - Creating file .../z3c.sampleproject/src/z3c/sampleproject/message.py
INFO - Creating file .../z3c.sampleproject/src/z3c/sampleproject/__init__.py
INFO - Creating file .../z3c.sampleproject/src/z3c/__init__.py
INFO - Creating file .../z3c.sampleproject/ZBOILER.txt
INFO - Build finished
Exit Code: 0

现在让我们看看生成的目录

>>> ls(buildPath)
z3c.sampleproject/
  ZBOILER.txt
  bootstrap.py
  buildout.cfg
  setup.py
  src/
    z3c/
      __init__.py
      sampleproject/
        README.txt
        __init__.py
        application.zcml
        configure.zcml
        index.txt
        interfaces.py
        message.py
        browser/
          __init__.py
          configure.zcml
          message.pytests/
          __init__.py
          test_doc.py

当我们再次尝试生成项目时,由于目录已存在,我们将遇到失败

>>> boil(['-i', featureFile, '-o', buildPath])
CRITICAL - Failed building package because file .../z3c.sampleproject
           already exists.  Use --force to overwrite it.
Exit Code: 1

然而,我们可以根据提示强制覆盖目录

>>> boil(['-f', '-i', featureFile, '-o', buildPath])
INFO - Creating directory .../z3c.sampleproject
INFO - Creating file .../z3c.sampleproject/bootstrap.py
INFO - Creating file .../z3c.sampleproject/setup.py
INFO - Creating file .../z3c.sampleproject/buildout.cfg
INFO - Creating directory .../z3c.sampleproject/src
INFO - Creating directory .../z3c.sampleproject/src/z3c
INFO - Creating directory .../z3c.sampleproject/src/z3c/sampleproject
INFO - Creating file .../z3c.sampleproject/src/z3c/sampleproject/application.zcml
INFO - Creating directory .../z3c.sampleproject/src/z3c/sampleproject/browser
INFO - Creating file .../z3c.sampleproject/src/z3c/sampleproject/browser/configure.zcml
INFO - Creating file .../z3c.sampleproject/src/z3c/sampleproject/browser/message.py
INFO - Creating file .../z3c.sampleproject/src/z3c/sampleproject/browser/__init__.py
INFO - Creating file .../z3c.sampleproject/src/z3c/sampleproject/configure.zcml
INFO - Creating file .../z3c.sampleproject/src/z3c/sampleproject/interfaces.py
INFO - Creating file .../z3c.sampleproject/src/z3c/sampleproject/index.txt
INFO - Creating directory .../z3c.sampleproject/src/z3c/sampleproject/tests
INFO - Creating file .../z3c.sampleproject/src/z3c/sampleproject/tests/test_doc.py
INFO - Creating file .../z3c.sampleproject/src/z3c/sampleproject/tests/__init__.py
INFO - Creating file .../z3c.sampleproject/src/z3c/sampleproject/README.txt
INFO - Creating file .../z3c.sampleproject/src/z3c/sampleproject/message.py
INFO - Creating file .../z3c.sampleproject/src/z3c/sampleproject/__init__.py
INFO - Creating file .../z3c.sampleproject/src/z3c/__init__.py
INFO - Creating file .../z3c.sampleproject/ZBOILER.txt
INFO - Build finished
Exit Code: 0

如果我们想得到更少的信息,我们可以简单地告诉脚本保持安静

>>> boil(['-q', '-f', '-i', featureFile, '-o', buildPath])
Exit Code: 0

仍然会显示致命消息

>>> boil(['-q', '-i', featureFile, '-o', buildPath])
CRITICAL - Failed building package because file .../z3c.sampleproject
           already exists.  Use --force to overwrite it.
Exit Code: 1

我们也可以要求更多的信息

>>> boil(['-v', '-f', '-i', featureFile, '-o', buildPath])
DEBUG - Updating <SimpleFileBuilder u'bootstrap.py'>
DEBUG - Updating <PartBuilder u'versions'>
DEBUG - Updating <PartBuilder u'zope3'>
DEBUG - Updating <PartBuilder u'z3c.sampleproject-app'>
DEBUG - Updating <PartBuilder u'z3c.sampleproject'>
DEBUG - Updating <PartBuilder u'database'>
DEBUG - Updating <PartBuilder u'docs'>
DEBUG - Updating <PartBuilder u'python'>
DEBUG - Updating <PartBuilder u'test'>
DEBUG - Updating <PartBuilder u'coverage-test'>
DEBUG - Updating <PartBuilder u'coverage-report'>
DEBUG - Updating <PackageBuilder u'z3c'>
DEBUG - Updating <PackageBuilder u'sampleproject'>
DEBUG - Updating <PackageBuilder u'browser'>
DEBUG - Updating <ModuleBuilder u'message.py'>
DEBUG - Updating <ModuleBuilder u'interfaces.py'>
DEBUG - Updating <PackageBuilder u'tests'>
DEBUG - Updating <SimpleFileBuilder u'test_doc.py'>
DEBUG - Updating <SimpleFileBuilder u'README.txt'>
DEBUG - Updating <ModuleBuilder u'message.py'>
DEBUG - Updating <FeatureDocBuilder u'ZBOILER.txt'>
INFO - Creating directory .../z3c.sampleproject
INFO - Creating file .../z3c.sampleproject/bootstrap.py
INFO - Creating file .../z3c.sampleproject/setup.py
INFO - Creating file .../z3c.sampleproject/buildout.cfg
INFO - Creating directory .../z3c.sampleproject/src
INFO - Creating directory .../z3c.sampleproject/src/z3c
INFO - Creating directory .../z3c.sampleproject/src/z3c/sampleproject
INFO - Creating file .../z3c.sampleproject/src/z3c/sampleproject/application.zcml
INFO - Creating directory .../z3c.sampleproject/src/z3c/sampleproject/browser
INFO - Creating file .../z3c.sampleproject/src/z3c/sampleproject/browser/configure.zcml
INFO - Creating file .../z3c.sampleproject/src/z3c/sampleproject/browser/message.py
INFO - Creating file .../z3c.sampleproject/src/z3c/sampleproject/browser/__init__.py
INFO - Creating file .../z3c.sampleproject/src/z3c/sampleproject/configure.zcml
INFO - Creating file .../z3c.sampleproject/src/z3c/sampleproject/interfaces.py
INFO - Creating file .../z3c.sampleproject/src/z3c/sampleproject/index.txt
INFO - Creating directory .../z3c.sampleproject/src/z3c/sampleproject/tests
INFO - Creating file .../z3c.sampleproject/src/z3c/sampleproject/tests/test_doc.py
INFO - Creating file .../z3c.sampleproject/src/z3c/sampleproject/tests/__init__.py
INFO - Creating file .../z3c.sampleproject/src/z3c/sampleproject/README.txt
INFO - Creating file .../z3c.sampleproject/src/z3c/sampleproject/message.py
INFO - Creating file .../z3c.sampleproject/src/z3c/sampleproject/__init__.py
INFO - Creating file .../z3c.sampleproject/src/z3c/__init__.py
INFO - Creating file .../z3c.sampleproject/ZBOILER.txt
INFO - Build finished
Exit Code: 0

我们还可以使用内置的项目模板作为新项目的基础。要查看内置模板的可用列表,我们使用–list选项。

>>> boil(['--list'])
Available Templates:
<BLANKLINE>
  zope-project   "Zope 3 Web Application"
                   Includes all the features you would want for a Zope 3 Web Application.
  command-line   "Command Line Program"
                   Includes all the features you would want for a command line program.
  python-package "Python Package"
                   Just a simple python package with few bells and whistles.
Exit Code: 0

如果我们尝试使用不存在的模板,我们被告知使用–list

>>> boil(['-t','foobar'])
Could not find the template "foobar".
Use --list to see available templates.
Exit Code: 1

最后但同样重要的是,我们还有关于 boil 脚本的帮助

>>> boil(['-h'])
Usage: test [options]
<BLANKLINE>
Options:
  -h, --help            show this help message and exit
  -i FILE, --input-file=FILE
                        The file containing the XML definition of the project.
  -t TEMPLATE, --template=TEMPLATE
                        A project template.  Use --list to see available
                        templates
  -l, --list            Show a list of available templates for use with
                        --template
  -k, --interactive     When specified, runs in interactive mode prompting you
                        to enter missing values.
  -o DIR, --output-dir=DIR
                        The directory where project files should be generated.
  -q, --quiet           When specified, no messages are displayed.
  -v, --verbose         When specified, debug information is created.
  -f, --force           Force the package to be generated even overwriting any
                        existing files.
Exit Code: 0

如果没有指定任何参数,也会显示帮助信息

>>> boil([])
Usage: test [options]
...
Exit Code: 0

变更日志

版本 0.1.1 (2009-03-27)

  • 初始发布

项目详情


下载文件

下载适用于您平台的文件。如果您不确定选择哪个,请了解有关 安装包 的更多信息。

源分布

z3c.boiler-0.1.1.tar.gz (9.2 kB 查看哈希值)

上传于 来源

支持者