跳转到主要内容

运行代码作为Zope控制台脚本的基类

项目描述

https://secure.travis-ci.org/syslabcom/slc.zopescript.png

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 (18.2 kB 查看哈希值)

上传时间 源代码

由...