Plone API。
项目描述
# plone.api
[](https://pypi.python.org/pypi/plone.api/)
](https://pypi.python.org/pypi/plone.api/)
为希望使用Plone进行开发的人构建的一个简单API。
意图是
尽可能覆盖Plone开发者执行的各项任务
为Plone功能提供清晰的API方法,这些功能可能令人困惑或难以访问,
将所有内容集中在一个地方,
保持可内省和可发现性,这是Python风格的重要方面。
## 文档
[plone.api 文档](https://6.docs.plone.org/plone.api/index.html)是官方Plone文档的一部分。
plone.api附带类似于食谱的文档和执行Plone常见开发任务的逐步说明。食谱试图假设用户对Plone内部没有深入的了解。
## 源代码和贡献
](https://github.com/plone/plone.api/actions/workflows/plone_python.yml)
- 贡献者
请阅读[向Plone贡献](https://6.docs.plone.org/contributing/index.html)和[向plone.api贡献](https://6.docs.plone.org/plone.api/contribute/index.html)。
- 源代码
位于[GitHub上托管的Plone代码仓库](https://github.com/plone/plone.api)。
- 问题
请使用[问题跟踪器](https://github.com/plone/plone.api/issues)
- 持续集成
在[GitHub Actions](https://github.com/plone/plone.api/actions)上测试。
- 代码覆盖率
在[Coveralls.io](https://coveralls.io/github/plone/plone.api)上测量。
变更日志
2.2.2 (2024-07-30)
文档
重写Plone 6的贡献文档。@stevepiercy (#539)
在文档中使用正确的no-index语法。@stevepiercy (#540)
2.2.1 (2024-06-26)
错误修复
从文档和测试中删除了portal_properties。[maurits] (#125)
2.2.0 (2024-05-06)
新功能
当调用api.user.has_permission时,报告如果权限不存在。[gforcada] (#515)
错误修复
在relation.create中:修复了现有RelationList值为None的边缘情况。[davisagli] (#535)
内部
更新配置文件。[plone devs] (cfffba8c)
2.1.0 (2024-02-22)
新功能
实现了内容类型的无限制查找。[gogobd] (#312)
内部
增强Makefile路径以解决空白兼容性问题。[Vivek-04022001] (#530)
2.0.9 (2024-02-12)
内部
通过将可用性检查推迟到错误处理中,提高了视图检索的效率。[samriddhi99] (#479)
2.0.8 (2023-12-14)
错误修复
修复了使用国家特定语言代码的api.portal.translate的使用。[ericof] (#524)
2.0.7 (2023-11-30)
文档
使用首选的git switch -c命令。见https://www.infoq.com/news/2019/08/git-2-23-switch-restore/。@stevepiercy (#520)
2.0.6 (2023-11-03)
错误修复
在plone.api.content.create()中提供更详细的自定义错误信息。[ajung] (#516)
2.0.5 (2023-10-25)
错误修复
替换已弃用的断言方法。[gforcada] (#1)
内部
更新GHA。[gforcada] (#1)
修复测试,因为PloneSite再次获得IContentish。[Akshat2Jain] @jaroel (#518)
2.0.4 (2023-07-14)
错误修复
不要运行GitHub Actions测试两次。仅在直接针对master或main提交或打开针对master或main的拉取请求时运行GitHub Actions测试。这避免了在同一环境中运行相同的测试套件两次。[thet] (#0)
Mockup TinyMCE设置:删除未使用的AtD相关视图。
修复了一个检查“checkDocument”等可用视图的测试。 “checkDocument”是未维护的“After the Deadline”插件的TinyMCE端点,现已删除。(#504)
文档
增强《portal.translate》API文档,以显示在某些情况下域名是可选的。@thet (#510)
2.0.3 (2023-05-22)
错误修复
只有当没有与相同源、目标和关系名称的现有关系时才创建关系。但标记源为已修改。@ksuess (#507)
2.0.2 (2023-04-14)
错误修复
修复通过关系名称删除关系的问题。@ksuess (#501)
文档
更新培训链接。@stevepiercy (#503)
2.0.1 (2023-01-26)
文档
切换到6.docs.plone.org(之前是6.dev-docs.plone.org)[ksuess] (#497)
在准备将docs.plone.org重定向到6.docs.plone.org之前,修复指向文档适当版本的链接。修复一些错别字。使用重命名的tox配置选项。[stevepiercy] (#498)
由于sphinx-book-theme 0.3.3的要求,将Sphinx版本锁定为<5,>=3。[stevepiercy] (#499)
更新文档链接以使用正确的版本。[stevepiercy] (#500)
2.0.0 (2022-11-26)
错误修复
要求Python 3.8或更高。[maurits] (#600)
2.0.0b4 (2022-11-11)
错误修复
当plone.api文档更新时,触发核心Plone文档的新部署。[esteele] (#496)
2.0.0b3 (2022-10-03)
错误修复
在测试中使用更长的密码。[davisagli] (#495)
2.0.0b2 (2022-09-07)
错误修复
确保即使发生错误,安全相关上下文管理器也能恢复上下文。(#374)
2.0.0b1 (2022-06-23)
错误修复
mutually_exclusive_parameters错误信息应仅包括相关参数。[martin.peeters] (#489)
2.0.0a4 (2022-06-07)
新功能
文档:添加元数据[ksuess, stevepiercy] (#485)
错误修复
plone.api.content.get应始终返回内容。[ericof] (#487)
2.0.0a3 (2022-05-26)
新功能
不需要指定请求参数。如果没有指定,则回退到全局请求。[ale-rt] (#412)
集成到新的Plone 6文档中。[ksuess] (#469)
按拉取请求预览文档。Netlify机器人将链接添加到PR注释中。[ksuess] (#469)
文档使用MyST markdown编写。以前是reStructuredText。[ksuess] (#470)
在MyST markdown文档中测试代码示例。更新文档[ksuess] 在plone.api.relation模块中添加一些doctests。[ksuess] (#474)
错误修复
从#469的审查中清理文档[stevepiercy] (#476)
在文档中不允许使用Unicode字面量。[ksuess] (#483)
2.0.0a2 (2021-10-13)
错误修复
当调用set_registry_record使用错误值时修复IndexError。[maurits] (#435)
防止在< span class="docutils literal">plone.app.iterate缺失时关系代码启动错误。[maurits] (#462)
2.0.0a1 (2021-09-01)
破坏性更改
取消对Archetypes和Python 2的支持。[pbauer] (#460)
新功能
现在有一个< span class="docutils literal">plone.api.relation模块,可以更轻松地处理关系。[pbauer] (#449)
1.11.0 (2021-06-30)
新功能
取消对Plone 4.3、5.0、5.1的支持,添加对6.0的支持。代码可能仍然可以工作,但不再进行测试。您可以在旧版本上使用1.10系列的版本。[maurits] (#431)
错误修复
添加测试以验证移动内容后intids实用程序是正确的。[ale-rt, maurits] (#430)
改进tox.ini,以便可以在本地测试plone.api。将所有测试添加到travis-ci配置中。将.editorconfig文件添加到plone.api中,以帮助强制执行编码约定[loechel] (#448)
修复plone.api.content.find对object_provides "not"查询的尊重。修复:#451 [thet] (#452)
1.10.4 (2020-09-28)
错误修复
修复了Python 3上使用Products.MailHost 4.10的测试失败。[maurits] (#3178)
1.10.3 (2020-09-07)
错误修复
修复了对CMFPlone.interfaces.ILanguageSchema的弃用警告。[maurits] (#3130)
1.10.2 (2020-04-20)
错误修复
小型的包装更新。(#1)
1.10.1 (2020-03-04)
错误修复
删除弃用警告[ale-rt] (#432)
在测试中使用更强的密码。[maurits] (#436)
删除了content.find的重复和失败的行内doctest。[maurits] (#437)
1.10.0 (2019-05-01)
新功能
- 优雅地处理接口上的丢失注册记录。
[gforcada] (#428)
1.9.2 (2019-03-04)
错误修复
修复使用“and”运算符查询多个接口的object_provides。[fRiSi] (#426)
1.9.1 (2018-11-20)
错误修复
当inherit=False时,仅显示本地角色。[tschorr]
1.9.0 (2018-09-27)
新功能
Python 2/3支持。[pbauer]
1.8.5 (2018-09-14)
错误修复
从base.cfg中删除allow-hosts,因此我们可以使用新的pypi仓库。参见https://github.com/plone/plone.api/issues/403 [jaroel]
修复文档字符串中的错别字 [tkimnguyen]
修复使用api.content.create时创建AT集合失败的错误。 [gbastien]
1.8.4 (2018-04-24)
错误修复
使用processForm函数时,传入的值为字典{None: None}。这防止了processForm使用REQUEST.form并覆盖由invokeFactory设置的值。修复了问题99。 [david-batranu]
简化/轻微加速:权限检查现在直接使用AccessControl。技术上与之前完全相同。之前需要查找工具,调用实用函数,调用AccessControl。 [jensens]
1.8.3 (2018-02-23)
错误修复
根据isort和flake8改进了代码质量。 [maurits]
修复了测试Plone版本的正则表达式。 [maurits]
1.8.2 (2018-01-17)
错误修复
修复了Zope4中的测试,其中Products.PlonePAS.tools.memberdata.MemberData现在是一个适配器。它不能在两次检索时被证明相等。[jensens]
修改api.group.get_groups以与CMF master兼容。[jaroel]
添加six以处理Python 2/3兼容性。[rudaporto]
1.8.1 (2017-10-17)
错误修复
当id已经是目标id时,不要重命名对象。修复了问题361。[jaroel]
更改content.delete以允许obj=None、objects=[]或objects=None。修复了问题383。[jaroel]
让zope.i18n为我们translate函数执行语言协商。我们的get_current_translation并不总是给出正确的语言,尤其是在组合语言的情况下:nl-be(比利时/荷兰语)应回退到nl(荷兰语)。正确的协商语言也可能因翻译域而异,而我们没有考虑这一点。zope.i18n做得更好。修复了问题379。[maurits]
修复了在Zope4中删除的Globals.DB的使用(修复https://github.com/plone/plone.api/issues/385)[pbauer]
1.8 (2017-08-05)
新功能
添加了检查ZODB是否处于只读模式的方法。[loechel]
添加了tox.ini和在setup.py和.editorconfig中的代码约定定义,以便可以强制执行它们。[loechel]
错误修复
修复了此存储库中的测试和代码约定。[loechel]
1.7 (2017-05-23)
新功能
将disable_roles_acquisition和enable_roles_acquisition添加到api.content中。[MrTango]
错误修复
简化了plone.api.content.delete方法。[thet]
当safe_id=False时,content.copy应抛出自定义异常。修复了#340。[jaroel]
1.6.1 (2017-03-31)
错误修复
简化了删除和转换函数。[adamcheasley]
使用user.grant_roles()时,不要将动态角色重新分配为本地角色。修复了与#351相同的问题(组)。[pbauer]
使用“inherit=False”时,将组中授予的本地角色包含在user.get_roles中。修复了#346。[pbauer]
使用“inherit=False”时,忽略在父对象上授予的本地角色。修复了#354。[pbauer]
修复了从GS设置处理程序调用时由api.content.create错误设置标题的问题。[gotcha, pgrunewald]
1.6 (2017-02-15)
新功能
将inherit=False传递给groups.get_roles()将仅获取组的本地角色。[pbauer]
错误修复
支持匿名用户的user.get_roles。参看#339。[jaroel]
修复了在Zope4中删除的从 Globals 导入的导入。[pbauer]
修复了“坏”引号。[adamcheasley]
文档中的错别字。[ale-rt]
修复了尝试添加已内置角色的测试中的错误,这在Zope4中不再静默失败。[MatthewWilkes]
使用group.grant_roles()时,不要将全局角色重新分配为本地角色。[pbauer]
文档中的reST语法,遵循风格指南,调整setup.py。[svx]
使用group.grant_roles()时,不要将动态角色重新分配为本地角色。[pbauer]
1.5.1 (2016-12-06)
新功能
api.portal.get_registry_record支持可选的default参数。[ale-rt]
修复了
修复翻译相关测试,使用plonelocales域而不是passwordresettool。Products.PasswordResetTool已在Plone 5.1中移除。[thet]
允许匿名用户使用plone.api.group.get_groups。参见#290 [jaroel]
允许采用特殊用户。修复#320 - 检查匿名用户的权限。[jaroel]
修复了api.user.revoke_roles中的AttributeError。[ale-rt]
移除打印语句并使用@security装饰器使代码分析更愉快。[ale-rt]
文档中的错别字。[ale-rt]
修复travis和coveralls。[gforcada]
各种文字调整。[tkimnguyen]
在api.content.move中,如果源和目标都已指定,且目标已经是源父级,则跳过操作。
修复测试[gforcada]
修复PRINTINGMAILHOST_ENABLED评估,使其遵守Products.PrintingMailHost的内部逻辑。[ale-rt]
1.5 (2016-02-20)
新功能
添加portal.translate。[ebrehault]
添加portal.get_default_language和portal.get_current_language。[ebrehault]
修复了
修复test_zope_version测试,使其能够处理Zope的开发版本。[thet]
移除Plone API约定。它们已移至https://5.docs.plone.org/develop/styleguide和https://5.docs.plone.org/develop/coredev/docs/git.html [thet]
清理代码以符合Plone风格指南。[gforcada]
修复content.transition代码的边缘情况:如果转换仅包含退出转换而没有转换返回它,find_path将失败。[gforcada]
处理api.content.transition上的自动转换。[gforcada]
1.4.11 (2016-01-08)
新功能
允许从一个接口设置/获取注册设置。https://github.com/plone/plone.api/issues/269 [gforcada]
1.4.10 (2015-11-19)
修复了
重新发布,因为1.4.9缺少doctests目录。[maurits]
1.4.9 (2015-11-19)
修复了
问题#283:portal.send_email不尊重事务中断[jensens]
1.4.8 (2015-10-27)
新功能
更新文档链接,我们现在住在docs.plone.org/develop/plone.api。[polyester]
修复了
修复测试中的Plone 5版本比较。[maurits]
1.4.7 (2015-09-27)
从配置注册表中获取email_charset值,如果找不到则回退到portal属性。[esteele]
1.4.6 (2015-09-14)
修复了api.content.find,结合了深度和路径。路径现在不再被忽略。[maurits]
移除unittest2依赖。[gforcada]
1.4.5 (2015-09-09)
修复了包的长期描述,使其成为有效的reStructuredText,并在PyPI上显示良好。[maurits]
1.4.4 (2015-09-08)
将doctests符号链接,以便它们将被包含在构建的egg中,并且不会破坏coredev构建。[esteele]
1.4.3 (2015-09-08)
首先尝试从注册表获取use_email_as_login。[pbauer]
1.4.2 (2015-09-07)
在env.plone_version中使用Products.CMFPlone中定义的版本,就像Plone的控制面板一样。同时修复了Jenkins测试运行器,因为我们没有Plone egg。[jaroel]
1.4.1 (2015-09-07)
移除对Products.CMFPlone的依赖,以避免循环依赖。Products.CMFPlone将存在。[jaroel]
1.4 (2015-09-04)
plone.api.content.delete:添加check_linkintegrity选项。如果为True,删除会导致断链,则引发异常。[pbauer]
plone.api.content.find:object_provides参数接受元组。修复#266。[ale-rt]
在Plone 5中修复了plone.api.content.create。参见160。[jaroel]
plone.api.content.transition现在接受可以传递给工作流转换的kwargs。[neilferreira]
1.3.3 (2015-07-14)
plone.api.content.get_state现在允许可选的默认值。当没有为对象定义工作流时使用此值。参见#246 [jaroel]
plone.api.portal.get_registry_record现在在找不到记录时建议类似记录。参见#249。[jaroel]
修复了针对Plone 5的测试。参见#241。[jaroel]
支持Products.PrintingMailHost。参见#228。[jaroel]
api.plone.org文档指向docs.plone.org/external/plone.api/docs/。参见#202 [jaroel]
plone.api.content.get_view不再吞咽异常。[jaroel]
添加plone.api.content.find。参见#210 [jaroel]
使send_email与Plone >= 5.0b2兼容。[pbauer]
如果没有指定目标,则使用源父级作为目标。[jaroel]
使Products.Archetypes依赖项可选。修复#197 [jaroel]
在主文档页面中添加本地TOC。修复#90 [jaroel]
允许删除多个对象。修复 #198 [jaroel]
修复了 make docs。 [jaroel]
在 user.adopt_user 中支持 Zope 用户。修复 #171 和 #157。 [jaroel]
在 setup.py 中明确依赖项,在测试中明确加载 zcml。 [jensens]
从原始位置导入 getToolByName [jensens]
改进文档:语义换行,修复少数链接,微调措辞。 [jensens]
修复 revoke_roles 方法:现在如果它没有使用 obj 参数调用,它不会在本地设置继承的角色。 [cekk]
1.3.2 (2014-11-17)
修复 #190 - 破坏的 MANIFEST.in。 [jensens]
1.3.1 (2014-11-17)
解决了 README.rst 符号链接的问题,这阻止了 1.3.0 的安装。并且请今后永远不要再在 eggs 中使用符号链接,好吗? [jensens]
1.3.0 (2014-11-17)
修复 #184 名称选择器在重命名时使用错误,并且在 safe_id=True 时失败。 [benniboy]
澄清了 content.copy 的文档,参考 #185。 [benniboy]
修复了当内容在同一文件夹或目标文件夹中复制时,如果存在相同的源 id,现有源(同一文件夹)或第三个对象(与源具有相同的 id)被重命名而不是目标的问题。 [benniboy]
在 adopt_user 中使用 getUserById 来查找用户。 [tschanzt]
使 api.portal.get_localized_time 也支持 datetime.date。 [nightmarebadger]
在 api.user.grant_roles 和 api.user.revoke_roles 中引发更好的/预期的错误。 [adamcheasley]
添加 api.user.has_permission 参考 #172。 [adamcheasley]
1.2.1 (2014-06-24)
解决了某些情况下阻止 1.2.0 安装的 CHANGES.rst 符号链接问题。 [mattss]
1.2.0 (2014-06-24)
增强 api.content.transition,使其能够从当前状态过渡到给定的状态,而无需知道过渡 '路径' 参考。 #162 [adamcheasley]
添加 api.env.plone_version() 和 api.env.zope_version(),参考 #126。 [hvelarde]
在 api.content.create 中停止吞咽 UnicodeDecodeError。 [mattss]
在 api.content.get 中捕获 AttributeError(如果只有部分遍历路径存在则引发)。 [mattss]
1.1.0 (2013-10-12)
在 setup.py 中列出支持的 Plone 版本。 [zupo]
Plone 4.0 和 4.1 现在在 CI 上使用 Python 2.6 进行测试。 [hvelarde]
默认使用 Plone 4.3 进行开发(之前是 4.2)。 [hvelarde]
1.1.0-rc.1 (2013-10-10)
修复 README.rst,使其在 PyPI 上正确渲染。 [zupo]
使用 api.plone.org/foo 重定向。 [zupo]
添加 MANIFEST.in 文件。 [hvelarde]
1.0.0-rc.3 (2013-10-09)
打包问题。 [zupo]
1.0.0-rc.2 (2013-10-09)
校对文档,改进语法和措辞。 [cewing]
将 plone.recipe.codeanalysis 添加到我们的 buildout 中。 [flohcim]
使所有 assertRaise() 调用使用 with 关键字。 [winstonf88]
修改 user.get 方法以接受一个 userid 参数,参考 #112。 [cewing, xiru, winstonf88]
添加 api.env.debug_mode() 和 api.env.test_mode(),参考 #125。 [sdelcourt]
将大部分文本从 docs/index.rst 移动到 README.rst,使其在 PyPI 和 GitHub 上也可见。 [zupo]
在 ReadTheDocs 上弃用 plone.api 并重定向到 api.plone.org,参考 #130。 [wormj, zupo]
添加一个新的 make coverage 命令,并添加支持将覆盖率发布到 Coveralls.io。 [zupo]
使 api.content.create() 也打印出底层错误,参考 #118。 [winston88]
修复 api.content 的 copy/move/rename 函数,在更改内容后返回对象,参考 #115。 [rodfersou]
使 Travis IRC 通知消息为单行,而不是三行。 [zupo]
在文档中添加更多好与坏的代码块示例,更多关于如何编写良好的 docstrings 的信息。 [zupo]
在代码风格中优先使用单引号而不是双引号。 [zupo]
新增 bootstrap.py 以保持 zc.buildout 1.x 的环境。 [zupo]
软件包现在包括 GPLv2 许可证的副本,如 GNU 通用公共许可证文档中所述。 [hvelarde]
修复了复制文件夹对象。 [pingviini]
修复了移动文件夹对象。 [pingviini]
1.0.0-rc.1 (2013-01-27)
增加测试覆盖率。 [cillianderoiste, JessN, reinhardt, zupo]
实现 api.env.adopt_roles() 上下文管理器,用于在块内临时切换角色。 [RichyB]
创建 api.env 模块,用于与全局环境交互。 [RichyB]
用于定义 api 方法约束的装饰器。依赖于 decorator 包。 [JessN]
解决 #61:改进 api.portal.get()。 [cillianderoiste]
在 plone.api 代码库中使用 plone.api 方法。 [zupo]
切换到 flake8 而不是 pep8`+`pyflakes。 [zupo]
使用 absolute_url_path 获取门户路径。 [cillianderoiste]
Travis 构建速度提升。 [zupo]
支持 Python 2.6。 [RichyB, zupo]
支持 Plone 4.0。 [adamcheasley]
支持 Plone 4.3。 [cillianderoiste, zupo]
拼写修正。 [adamtheturtle]
使 get_view 和 get_tool 测试不具有硬编码的 所有 期望值列表。 [RichyB, cillianderoiste]
代码风格指南。 [iElectric, cillianderoiste, marciomazza, RichyB, thet, zupo]
在 setup.py 中依赖 manuel。 [zupo]
如何获取/设置成员属性的文档。 [zupo]
改进 get_registry_record。 [zupo]
0.1b1 (2012-10-23)
贡献者指南和风格指南。 [zupo]
强制执行 PEP257 对 docstrings。 [zupo]
修复 get_navigation_root() 以返回对象而不是路径。 [pbauer]
为用户和组实现 get_permissions()、get_roles()、grant_roles() 和 revoke roles()。 [rudaporto, xiru]
实现 get_registry_record 和 set_registry_record。 [pbauer]
使用 Makefile 构建、运行测试、生成文档等。 [witsch]
将所有 ReadTheDocs 依赖项移动到 rtd_requirements.txt。 [zupo]
0.1a2 (2012-09-03)
更新版本,添加新功能、测试覆盖率、清理与重构。 [hvelarde, avelino, ericof, jpgimenez, xiru, macagua, zupo]
0.1a1 (2012-07-13)
首次发布。 [davisagli, fulv, iElectric, jcerjak, jonstahl, kcleong, mauritsvanrees, wamdam, witsch, zupo]
许可
版权 (C) 2012-2013 Plone 基金会
本程序是自由软件;您可以在自由软件基金会发布的 GNU 通用公共许可证版本 2 的条款下重新分发和/或修改它。
本程序以希望它将是有用的,但没有任何保证;甚至没有适销性或针对特定目的的隐含保证。有关详细信息,请参阅 GNU 通用公共许可证。
您应该已经收到本程序的 GNU 通用公共许可证副本;如果没有,请写信给自由软件基金会,51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA。
项目详情
下载文件
下载适合您平台的文件。如果您不确定该选择哪个,请了解更多关于 安装包 的信息。
源代码分发
构建分发
plone_api-2.2.2.tar.gz 的哈希值
算法 | 哈希摘要 | |
---|---|---|
SHA256 | 002c36caa62293ad7b99ba6aa66e3c847de1dbe49f5072644cd71593707f8f6b |
|
MD5 | e3506ca05b0c0289267838c68bc986bb |
|
BLAKE2b-256 | 4998c6eb9adece334e27964f319848bec3a88c7317990bd528dbbbfb2bbbbaf0 |
plone.api-2.2.2-py3-none-any.whl 的哈希值
算法 | 哈希摘要 | |
---|---|---|
SHA256 | 6f12b8b357630352bcc0cd0b9325dc6c78bcdbc8cf48a7c2adff303327e18310 |
|
MD5 | 02c9f54a7df4149f73abe44604eee58c |
|
BLAKE2b-256 | c1b4dcefb9eb583a111aee27b83543b1abef51e3ab61b57af06b98686b421fc7 |