跳转到主要内容

一个使用memcached支持的ZCache和Zope会话实现的Zope产品。

项目描述

https://github.com/dataflake/Products.mcdutils/actions/workflows/tests.yml/badge.svg https://coveralls.io/repos/github/dataflake/Products.mcdutils/badge.svg Documentation Status Current version on PyPI Supported Python versions

Products.mcdutils

Products.mcdutils 产品提供了一个替代品,用于替换在 Zope 4 之前与 Zope 核心一起提供的、由 Transience 产品提供的基于 ZODB 的会话数据容器。在 Zope 4 之后,它作为一个单独的包提供。与 Transience 使用 ZODB 存储作为会话数据后端存储不同,Products.mcdutils 在一个或多个 memcached 服务器集群中存储会话数据。

这种做法有点取巧,因为它使用守护进程作为主存储,而不是作为昂贵查询结果的缓存。尽管如此,语义与典型的会话使用并不坏。

变更日志

4.2 (2023-12-28)

  • 添加对 Python 3.12 的支持。

4.1 (2023-10-03)

  • 为 MemCacheMapping 和测试添加了无效化方法

4.0 (2023-02-02)

  • 放弃对 Python 2.7、3.5、3.6 的支持。

3.3 (2023-01-15)

  • 添加对 Python 3.10 和 3.11 的支持。

3.2 (2021-09-03)

  • 重新组织包以使用当前的 zopefoundation 标准

  • 声明与 Python 3.9 和 Zope 5 的兼容性

  • 修复了通过 ZMI 测试页面添加会话项时的类型错误

3.1 (2021-01-01)

  • 修订了 ZMI 的“测试向会话添加项”

3.0 (2020-08-07)

  • 由于依赖关系的变化,进行了打包清理和测试修复

  • 放弃 Zope 2 兼容性声明和测试

2.5 (2019-11-13)

  • 实现事务保存点支持(《https://github.com/dataflake/Products.mcdutils/issues/3》#3)

2.4 (2019-10-23)

  • 尝试隐藏可能包含密码的会话值,在渲染 REQUEST 对象为字符串时使用 __repr__

2.3 (2019-10-13)

  • 依赖于 Zope 4.x 分支以实现 Python 2 兼容性

  • 更新描述以用 Zope 代替 Zope2 词汇

  • 重新组织源文件夹结构并删除 src 文件夹

2.2 (2019-05-21)

  • 添加了 has_key 的实现,它在 Python 3 中已消失

2.1 (2019-03-31)

  • 修复了在缓存管理器记录无效化过程中方法调用错误(《https://github.com/dataflake/Products.mcdutils/issues/1》#1)

2.0 (2019-03-28)

  • 确保 zcache.aggregateKey 不会创建不合适的 MemCache 键

  • 允许存储不遵守 IMemCacheMapping 的值

  • 添加为 MemCacheZCacheManager 设置标题的能力

  • Python 3 兼容性

  • 切换到 python-memcached 库并从该包中删除旧的 memcache 库模块,该模块实际上是 python-memcached 的一个非常旧的版本。

可能的破坏性更改

由 Zope 的会话数据管理器返回的对象隐式地期望支持获取。Zope 的会话数据管理器使用它将自己插入对象的获取链中。然而,由于 permisstence.mapping.PersistentMapping 类和 Acquisition.Explicit 类之间的元类冲突,Python 3 中会话数据对象将无法再支持获取。这可能会破坏使用此包中的会话数据对象消耗代码的期望。

1.0 (2019-03-28)

  • Zope 4 兼容性

  • 使用 Sphinx 编写文档

  • tox 配置用于单元、覆盖和代码质量测试

  • 包配置清理

  • 完全遵守 flake8

  • 添加为 MemcacheProxy 设置标题的能力

  • 添加为 MemcacheSessionDataContainer 设置标题的能力

0.2b3(2011-11-21)

  • 扩展 MANIFEST.in 以包括其他缺失的文件(.gif、.pt、.txt)

0.2b2(2011-11-21)

  • 通过清单包括 README.txt 和 CHANGES.txt 以修复源分发

  • 在 buildout 中包括测试运行程序并修复损坏的测试

0.2b1(2011-11-19)

  • 将产品转换为 egg 并在 PyPI 上发布。

  • 在事务结束时强制刷新进程内缓存以避免过时数据。

  • mapping.py: 在“MemCacheMapping”中添加了“getContainerKey”方法,以便与 TemporaryFolder 版本的 API 兼容(允许会话测试工具代码生成错误消息)。

  • 添加了(初步)RAMCacheManager 替代品。

  • 移除了代理的‘create’方法,以允许存储更多的数据。会话数据容器现在处理映射的实例化。

  • 正确修复了映射的序列化,不再需要代理挑选出‘data’成员。

  • 扩展了IProxy的API,以暴露更多的memcached客户端API。

0.1 (2006-05-31)

  • CVS标签,‘mcdutils-0_1’

  • 首次公开发布。

项目详情


下载文件

下载适用于您的平台的文件。如果您不确定选择哪个,请了解有关安装包的更多信息。

源分布

Products.mcdutils-4.2.tar.gz (2.5 MB 查看散列值)

上传时间

构建分布

Products.mcdutils-4.2-py3-none-any.whl (28.2 kB 查看散列值)

上传时间 Python 3

由以下组织支持

AWSAWS 云计算和安全赞助商 DatadogDatadog 监控 FastlyFastly CDN GoogleGoogle 下载分析 MicrosoftMicrosoft PSF赞助商 PingdomPingdom 监控 SentrySentry 错误记录 StatusPageStatusPage 状态页