帮助启动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确保我正确地解决了这个问题   对于Java接口中的常量,“publicstaticfinal”是多余的吗?   为什么是java。网SocketException:socket在java之后关闭。网ConnectException:连接被拒绝'?   安卓在Java中将JSON转换为多维数组的最佳方式是什么?   java如何为gradle构建使用lint4j插件,以及如何为Jenkins配置它?   JavaMaven:一个项目如何能够从一个二级依赖引用一个类   使用java的excel Linest函数   java如何完全禁用JTextPane的文本突出显示?   java jBoss概要如何?   java Pi4J类路径错误Intellij在Pi Zero W上远程运行   java如何根据特定条件在JPA/Play中使用EntityManager进行批量更新?   java如何在EJB调度中设置计时器值?   javasocket服务器没有连接   java如何在日期解析后以yyyyMMdd格式获取日期对象   java客户端python服务器发送udp数据   使用ArrayList从java文件中读取文本   框架上的java Selenium测试   java setOnClickListener匿名类?