帮助启动Zope3项目的实用程序

z3c.boiler的Python项目详细描述


这个包提供了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

如果我们试图使用一个不存在的模板,那么我们被告知 使用–列表:

>>> 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)

  • 初始版本

欢迎加入QQ群-->: 979659372 Python中文网_新手群

推荐PyPI第三方库


热门话题
java Android将字符串拆分为数组   java如何读取底层HttpServerExchange对象中的响应数据?   在jenkins上安装gitplugin时出现java错误   java DecimalFormat格式decimal,用于保留可变数量的尾随零   java Jaxws、spring和SpringBeanAutowiringSupport   Gson中抽象类的java反序列化   监视Windows服务器中的UDP数据包丢失,Java   java从侦听器调用所有者类   java Scala和Robocode类循环错误   java映像未上载到数据库   java如何将XML文件直接写入zip存档?   java为什么需要EventSourcingHandler(在聚合对象中)?   接受特定对象或其子类型的java通用方法   java Spring安全过滤器映射在特定Url模式上禁用