帮助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)
初始发布