自动包含ZCML
z3c.autoinclude的Python项目详细描述
概述
这个包添加了两个新的zcml指令来自动检测 zcml文件包括:"includedependencies"和"includeplugins"。
当您希望在应用程序中包含基于zope的包时,您可以 你必须在两个地方重复你的话:你必须加上包裹 本身(在setup.py、buildout等文件中),还必须包括 带有<;include>;指令或包包含slug的zcml。因为 你必须重复你自己,你很容易犯错误 添加一个新包,但忘记包含其zcml。
autoinclude允许您使用 ZCML文件的自动检测和包含。
包括依赖性
"includedependencies"指令搜索依赖项 在setup.py文件中(install_需要),并包括zcml文件 在找到的那些包裹里。包含顺序与中的顺序匹配 setup.py文件。您可以为要传递的包传递路径 包括的依赖项,但通常您传入 包装如下:
<includeDependencies package="." />
使用此指令,您不再需要添加显式 <;include package=new.dependency>; 用于项目的每个新依赖项。
grok 和 grokproject 使用此功能。这个 grokproject命令将自动添加 includededependencies 它生成的项目的zcml中的指令。你可以停下来 担心在绝大多数情况下手动包含zcml。
包括行李
"includeplugins"指令使用入口点查找已安装的 将自身作为插件广播到特定基础的包 包裹。您可以传递要包含的包的路径 插件,但通常您将当前包作为 以下:
<includePlugins package="." />
将包作为插件广播到名为"My_Base"的基本包中, 将以下行添加到插件包的setup.py中:
entry_points=""" [z3c.autoinclude.plugin] target = my_base """