A Zope product with memcached-backed ZCache and Zope session implementations.
The Products.mcdutils product supplies a replacement for the ZODB-based session data container supplied by the Transience product, shipped with the Zope core prior to Zope 4 and available as a separate package after that. Rather than using a ZODB storage as the backing store for session data, as Transience does, Products.mcdutils stores session data in a cluster of one or more memcached servers.
This approach is a bit of a cheat, as it uses the daemons as primary stores, rather than as caches for results of an expensive query. Nevertheless, the semantics are not a bad match for typical session usage.
Adds invalidate method to MemCacheMapping and test
Drop support for Python 2.7, 3.5, 3.6.
Add support for Python 3.10 and 3.11.
reorganized package to use current zopefoundation standards
claim compatibility with Python 3.9 and Zope 5
fixed type error on adding session items via ZMI test page
revised ZMI ‘Test Adding Items to Session’
packaging cleanup and test fixing due to shifting dependencies
drop Zope 2 compatibility claims and tests
implement transaction savepoint support (#3)
attempt to hide session values that may contain passwords in __repr__ which is used when rendering the REQUEST object as string.
rely on the Zope 4.x branch for Python 2 compatibility
update description to replace Zope2 wording with just Zope
reorganize source folder structure and drop the src folder
add an implementation for has_key which is gone under Python 3
fix wrong method call during cache manager record invalidation (#1)
make sure zcache.aggregateKey does not create unsuitable MemCache keys
allow storing values that don’t conform to IMemCacheMapping
add ability to set a title for a MemCacheZCacheManager
Python 3 compatibility
switch to the python-memcached library and remove the old memcache library module inside this package, which is actually a really old version of python-memcached.
Possible breaking change
The objects returned by Zope’s session data manager are implicitly expected to support Acquisition. Zope’s session data manager uses it to insert itself into the object’s acquisition chain. However, under Python 3 Acquisition can no longer be supported by the session data objects due to a metaclass conflict between the classes permisstence.mapping.PersistentMapping and Acquisition.Explicit. This may break expectations for code consuming the session data objects from this package.
Zope 4 compatibility
documentation using Sphinx
tox configuration for unit, coverage and code quality tests
package configuration cleanup
full flake8 compliance
add ability to set a title for a MemcacheProxy
add ability to set a title for a MemcacheSessionDataContainer
Extend MANIFEST.in to include other missing files (.gif, .pt, .txt)
Fix source distribution by including README.txt and CHANGES.txt via manifest.
Include test runner in buildout and fix broken tests.
Turn product into an egg and release on PyPI.
Implement a forced refresh of the in-process cache of memcache data at the end of transactions to avoid stale data.
mapping.py: Added ‘getContainerKey’ method to ‘MemCacheMapping’ in order to make it compatible with the API of the TemporaryFolder version (allows the session testing rig code can generate error messages).
Added (preliminary) RAMCacheManager replacement.
Removed proxy’s ‘create’ method, to allow other multiple of data to be stored. The session data container now handles instantiating the mapping.
Fixed the pickling of mappings correctly, instead of requiring that the proxy pick out the ‘data’ member.
Expanded API for IProxy to expose more of the memcached client API.
CVS tag, ‘mcdutils-0_1’
Initial public release.
Release history Release notifications | RSS feed
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Hashes for Products.mcdutils-4.1-py3-none-any.whl