运行代码作为Zope控制台脚本的基类
项目描述
slc.zopescript
运行代码作为Zope控制台脚本的基类
安装
要安装 slc.zopescript,您需要将 slc.zopescript 添加到您自己的 egg 依赖项中。
用法
slc.zopescript 允许从命令行运行代码,同时拥有完整的 Zope 实例和请求。
控制台脚本
要创建一个控制台脚本,即可以从终端独立运行的脚本,您可以从 slc.zopescript.script.ConsoleScript 派生一个类并实现 run() 方法。Zope 应用程序将作为 self.app 提供,第一个 Plone 站点作为 self.portal 提供。如果您传递一个 context_path,则 self.context 将是此路径表示的对象;否则 self.context 也将是门户。将设置一个请求,以便您可以调用浏览器视图等。示例
from my.egg import MailHandler from slc.zopescript.script import ConsoleScript class MailHandlerScript(ConsoleScript): def run(self): mailhandler_view = MailHandler(self.context, self.context.REQUEST) mailhandler_view() mail_handler = MailHandlerScript()
在您的 buildout 中,您可以使用 zc.recipe.egg 生成控制台脚本,例如。
[mail_handler] recipe = zc.recipe.egg eggs = ${instance:eggs} scripts = mail_handler arguments = '${instance:location}/etc/zope.conf','admin',server_url='https://127.0.0.1:8081/Plone',context_path='/Plone/news'
第一个参数必须是有效 zope.conf 文件的路径。第二个参数是要运行脚本的用户。可选的服务器_url 应该是您的站点在外部可访问的 URL,并允许您使用有意义的 absolute_url() 调用。可选的 context_path 是在您的脚本类中将作为 self.context 提供的对象的路径。
实例脚本
要创建一个实例脚本,即可以通过 instance run my_script.py 传递给 Zope 实例的脚本,您可以从 slc.zopescript.script.InstanceScript 派生一个类并实现 run() 方法。其行为类似于 ConsoleScript,除了它不会设置应用程序对象,而是在实例化时期望传入。示例
from my.egg import MailHandler from slc.zopescript.script import InstanceScript class MailHandlerScript(InstanceScript): def run(self): mailhandler_view = MailHandler(self.context, self.context.REQUEST) mailhandler_view() if "app" in locals(): mail_handler = MailHandlerScript(app) mail_handler('admin', server_url='https://127.0.0.1:8081/Plone', context_path='/Plone/news')
将此代码保存为例如 mail_handler.py 并使用 instance run mail_handler.py 调用它。不需要 buildout 配置。调用最后一行的参数与传递给控制台脚本的 arguments 选项的参数相同,除了不能传递 zope.conf 文件。 :orphan
变更日志
1.1.4 (2021-11-30)
修复了事务提交时的未授权问题。 [reinhardt]
1.1.3 (2021-10-07)
支持旧版本的 Plone/Zope。 [reinhardt]
防止日志级别设置为 DEBUG [goibhniu]
1.1.2 (2021-02-15)
支持 WSGI。 [reinhardt]
1.1.1 (2021-02-15)
ZCML 命名空间清理。 [thet]
1.1.0 (2019-01-28)
为使用 instance run 添加了 InstanceScript 类。 [reinhardt]
1.0.4 (2017-08-29)
改进日志处理
仅记录启动期间的错误
将 INFO 记录到 stdout
将 ERROR 记录到 stderr
将记录到实例的 event.log 中
这使得在 cronjobs 中仅升级错误成为可能,将正常日志发送到 /dev/null,并在 instance.log 中记录所执行的操作。
[frisi]
1.0.3 (2016-05-19)
以 run_as 用户遍历上下文 [reinhardt]
允许通过 ID 选择门户 [reinhardt]
1.0.2 (2016-03-18)
更好的清单 [reinhardt]
1.0.1 (2016-03-18)
允许传递 context_path [reinhardt]
更新 README [reinhardt]
1.0 (2015-12-11)
初始发布。 [reinhardt]
- 孤儿:
许可(3条款 BSD)
版权(c)2013,Syslab.com GmbH。保留所有权利。
允许以源代码和二进制形式重新分发和使用,无论是否修改,前提是满足以下条件
源代码重新分发必须保留上述版权声明、本条件列表和以下免责声明。
二进制形式的重新分发必须复制上述版权声明、本条件列表和以下免责声明在随分发提供的文档和其他材料中。
未经具体预先书面的许可,不得使用 Syslab.com GmbH 的名称或其贡献者的名称来认可或推广源自本软件的产品。
本软件由版权所有者和贡献者“按原样”提供,并不承担任何明示或暗示的保证,包括但不限于适销性和针对特定用途的适用性保证。在任何情况下,SYSLAB.COM GMBH 对因使用本软件而引起的任何直接、间接、偶然、特殊、示范性或后续损害(包括但不限于替代商品或服务的采购;使用、数据或利润的损失;或业务中断)不承担任何责任,无论此类损害是由于何种原因引起,以及基于何种责任理论,无论是在合同、严格责任还是侵权(包括疏忽或其他)。
项目详情
slc.zopescript-1.1.4.tar.gz 的哈希值
算法 | 哈希摘要 | |
---|---|---|
SHA256 | 0dcb642fd555c9ae1f776fc9fb15beb6c1e5c3c6a0f23e6e3db77d3367b5b048 |
|
MD5 | aa9527e4acd7197ba1daa43d83c62825 |
|
BLAKE2b-256 | 9dd59b697068a8f252101d39cdbffb938bd7b2c7326f3370c230d7e50ffeabb5 |