帮助启动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)
- 初始版本