Products.mcdutils


NameProducts.mcdutils JSON
Version 4.2 PyPI version JSON
download
home_pagehttps://mcdutils.readthedocs.io
SummaryA Zope product with memcached-backed ZCache and Zope session implementations.
upload_time2023-12-28 13:13:12
maintainerJens Vagelpohl
docs_urlNone
authorTres Seaver and contributors
requires_python>=3.7
licenseZPL 2.1
keywords zope session memcache memcached products
VCS
bugtrack_url
requirements No requirements were recorded.
Travis-CI No Travis.
coveralls test coverage No coveralls.
            .. image:: https://github.com/dataflake/Products.mcdutils/actions/workflows/tests.yml/badge.svg
   :target: https://github.com/dataflake/Products.mcdutils/actions/workflows/tests.yml

.. image:: https://coveralls.io/repos/github/dataflake/Products.mcdutils/badge.svg
   :target: https://coveralls.io/github/dataflake/Products.mcdutils

.. image:: https://readthedocs.org/projects/mcdutils/badge/?version=latest
   :target: https://mcdutils.readthedocs.io
   :alt: Documentation Status

.. image:: https://img.shields.io/pypi/v/Products.mcdutils.svg
   :target: https://pypi.python.org/pypi/Products.mcdutils
   :alt: Current version on PyPI

.. image:: https://img.shields.io/pypi/pyversions/Products.mcdutils.svg
   :target: https://pypi.python.org/pypi/Products.mcdutils
   :alt: Supported Python versions


===================
 Products.mcdutils
===================

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.


Change log
==========

4.2 (2023-12-28)
----------------

- Add support for Python 3.12.


4.1 (2023-10-03)
----------------

- Adds invalidate method to MemCacheMapping and test


4.0 (2023-02-02)
----------------

- Drop support for Python 2.7, 3.5, 3.6.


3.3 (2023-01-15)
----------------

- Add support for Python 3.10 and 3.11.


3.2 (2021-09-03)
----------------
- 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


3.1 (2021-01-01)
----------------
- revised ZMI 'Test Adding Items to Session'


3.0 (2020-08-07)
----------------
- packaging cleanup and test fixing due to shifting dependencies

- drop Zope 2 compatibility claims and tests


2.5 (2019-11-13)
----------------
- implement transaction savepoint support
  (`#3 <https://github.com/dataflake/Products.mcdutils/issues/3>`_)


2.4 (2019-10-23)
----------------
- attempt to hide session values that may contain passwords in ``__repr__``
  which is used when rendering the ``REQUEST`` object as string.


2.3 (2019-10-13)
----------------
- 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


2.2 (2019-05-21)
----------------
- add an implementation for ``has_key`` which is gone under Python 3


2.1 (2019-03-31)
----------------
- fix wrong method call during cache manager record invalidation
  (`#1 <https://github.com/dataflake/Products.mcdutils/issues/1>`_)


2.0 (2019-03-28)
----------------
- 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.


1.0 (2019-03-28)
----------------
- 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


0.2b3 (2011-11-21)
------------------
- Extend MANIFEST.in to include other missing files (.gif, .pt, .txt)


0.2b2 (2011-11-21)
------------------
- Fix source distribution by including README.txt and CHANGES.txt via
  manifest.

- Include test runner in buildout and fix broken tests.


0.2b1 (2011-11-19)
------------------
- 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.


0.1 (2006-05-31)
----------------
- CVS tag, 'mcdutils-0_1'

- Initial public release.

            

Raw data

            {
    "_id": null,
    "home_page": "https://mcdutils.readthedocs.io",
    "name": "Products.mcdutils",
    "maintainer": "Jens Vagelpohl",
    "docs_url": null,
    "requires_python": ">=3.7",
    "maintainer_email": "jens@dataflake.org",
    "keywords": "zope session memcache memcached Products",
    "author": "Tres Seaver and contributors",
    "author_email": "tseaver@palladion.com",
    "download_url": "https://files.pythonhosted.org/packages/5d/0b/cb22b62ac3fd5a54fb1f1a458d109827c493978052812cc24d6b988c51ae/Products.mcdutils-4.2.tar.gz",
    "platform": null,
    "description": ".. image:: https://github.com/dataflake/Products.mcdutils/actions/workflows/tests.yml/badge.svg\n   :target: https://github.com/dataflake/Products.mcdutils/actions/workflows/tests.yml\n\n.. image:: https://coveralls.io/repos/github/dataflake/Products.mcdutils/badge.svg\n   :target: https://coveralls.io/github/dataflake/Products.mcdutils\n\n.. image:: https://readthedocs.org/projects/mcdutils/badge/?version=latest\n   :target: https://mcdutils.readthedocs.io\n   :alt: Documentation Status\n\n.. image:: https://img.shields.io/pypi/v/Products.mcdutils.svg\n   :target: https://pypi.python.org/pypi/Products.mcdutils\n   :alt: Current version on PyPI\n\n.. image:: https://img.shields.io/pypi/pyversions/Products.mcdutils.svg\n   :target: https://pypi.python.org/pypi/Products.mcdutils\n   :alt: Supported Python versions\n\n\n===================\n Products.mcdutils\n===================\n\nThe `Products.mcdutils` product supplies a replacement for the ZODB-based\nsession data container supplied by the `Transience` product, shipped with\nthe Zope core prior to Zope 4 and available as a separate package after that.\nRather than using a ZODB storage as the backing store for session data, as\n`Transience` does, `Products.mcdutils` stores session data in a cluster of\none or more `memcached` servers.\n\nThis approach is a bit of a cheat, as it uses the daemons as primary stores,\nrather than as caches for results of an expensive query.  Nevertheless, the\nsemantics are not a bad match for typical session usage.\n\n\nChange log\n==========\n\n4.2 (2023-12-28)\n----------------\n\n- Add support for Python 3.12.\n\n\n4.1 (2023-10-03)\n----------------\n\n- Adds invalidate method to MemCacheMapping and test\n\n\n4.0 (2023-02-02)\n----------------\n\n- Drop support for Python 2.7, 3.5, 3.6.\n\n\n3.3 (2023-01-15)\n----------------\n\n- Add support for Python 3.10 and 3.11.\n\n\n3.2 (2021-09-03)\n----------------\n- reorganized package to use current zopefoundation standards\n\n- claim compatibility with Python 3.9 and Zope 5\n\n- fixed type error on adding session items via ZMI test page\n\n\n3.1 (2021-01-01)\n----------------\n- revised ZMI 'Test Adding Items to Session'\n\n\n3.0 (2020-08-07)\n----------------\n- packaging cleanup and test fixing due to shifting dependencies\n\n- drop Zope 2 compatibility claims and tests\n\n\n2.5 (2019-11-13)\n----------------\n- implement transaction savepoint support\n  (`#3 <https://github.com/dataflake/Products.mcdutils/issues/3>`_)\n\n\n2.4 (2019-10-23)\n----------------\n- attempt to hide session values that may contain passwords in ``__repr__``\n  which is used when rendering the ``REQUEST`` object as string.\n\n\n2.3 (2019-10-13)\n----------------\n- rely on the Zope 4.x branch for Python 2 compatibility\n\n- update description to replace Zope2 wording with just Zope\n\n- reorganize source folder structure and drop the ``src`` folder\n\n\n2.2 (2019-05-21)\n----------------\n- add an implementation for ``has_key`` which is gone under Python 3\n\n\n2.1 (2019-03-31)\n----------------\n- fix wrong method call during cache manager record invalidation\n  (`#1 <https://github.com/dataflake/Products.mcdutils/issues/1>`_)\n\n\n2.0 (2019-03-28)\n----------------\n- make sure ``zcache.aggregateKey`` does not create unsuitable MemCache keys\n\n- allow storing values that don't conform to ``IMemCacheMapping``\n\n- add ability to set a title for a MemCacheZCacheManager\n\n- Python 3 compatibility\n\n- switch to the ``python-memcached`` library and remove the old ``memcache``\n  library module inside this package, which is actually a really old version\n  of ``python-memcached``.\n\nPossible breaking change\n~~~~~~~~~~~~~~~~~~~~~~~~\nThe objects returned by Zope's session data manager are implicitly expected\nto support Acquisition. Zope's session data manager uses it to insert itself\ninto the object's acquisition chain. However, under Python 3 Acquisition can\nno longer be supported by the session data objects due to a metaclass conflict\nbetween the classes ``permisstence.mapping.PersistentMapping`` and\n``Acquisition.Explicit``. This may break expectations for code consuming the\nsession data objects from this package.\n\n\n1.0 (2019-03-28)\n----------------\n- Zope 4 compatibility\n\n- documentation using Sphinx\n\n- ``tox`` configuration for unit, coverage and code quality tests\n\n- package configuration cleanup\n\n- full ``flake8`` compliance\n\n- add ability to set a title for a MemcacheProxy\n\n- add ability to set a title for a MemcacheSessionDataContainer\n\n\n0.2b3 (2011-11-21)\n------------------\n- Extend MANIFEST.in to include other missing files (.gif, .pt, .txt)\n\n\n0.2b2 (2011-11-21)\n------------------\n- Fix source distribution by including README.txt and CHANGES.txt via\n  manifest.\n\n- Include test runner in buildout and fix broken tests.\n\n\n0.2b1 (2011-11-19)\n------------------\n- Turn product into an egg and release on PyPI.\n\n- Implement a forced refresh of the in-process cache of memcache data at the\n  end of transactions to avoid stale data.\n\n- mapping.py: Added 'getContainerKey' method to 'MemCacheMapping' in\n  order to make it compatible with the API of the TemporaryFolder version\n  (allows the session testing rig code can generate error messages).\n\n- Added (preliminary) RAMCacheManager replacement.\n\n- Removed  proxy's 'create' method, to allow other multiple of data to be\n  stored.  The session data container now handles instantiating the\n  mapping.\n\n- Fixed the pickling of mappings *correctly*, instead of requiring that\n  the proxy pick out the 'data' member.\n\n- Expanded API for IProxy to expose more of the memcached client API.\n\n\n0.1 (2006-05-31)\n----------------\n- CVS tag, 'mcdutils-0_1'\n\n- Initial public release.\n",
    "bugtrack_url": null,
    "license": "ZPL 2.1",
    "summary": "A Zope product with memcached-backed ZCache and Zope session implementations.",
    "version": "4.2",
    "project_urls": {
        "Documentation": "https://mcdutils.readthedocs.io",
        "Homepage": "https://mcdutils.readthedocs.io",
        "Issue Tracker": "https://github.com/dataflake/Products.mcdutils/issues",
        "Sources": "https://github.com/dataflake/Products.mcdutils"
    },
    "split_keywords": [
        "zope",
        "session",
        "memcache",
        "memcached",
        "products"
    ],
    "urls": [
        {
            "comment_text": "",
            "digests": {
                "blake2b_256": "154cbea975d3f6877e7b4516a0b488fc1605c0442961edb0547c46d7c10d9170",
                "md5": "89837f98779df483eac7ba29e71c01e7",
                "sha256": "b567d6090e50fb258132e5655039c762efe5c6ee835f61e2d681623c832495dc"
            },
            "downloads": -1,
            "filename": "Products.mcdutils-4.2-py3-none-any.whl",
            "has_sig": false,
            "md5_digest": "89837f98779df483eac7ba29e71c01e7",
            "packagetype": "bdist_wheel",
            "python_version": "py3",
            "requires_python": ">=3.7",
            "size": 28248,
            "upload_time": "2023-12-28T13:13:02",
            "upload_time_iso_8601": "2023-12-28T13:13:02.036060Z",
            "url": "https://files.pythonhosted.org/packages/15/4c/bea975d3f6877e7b4516a0b488fc1605c0442961edb0547c46d7c10d9170/Products.mcdutils-4.2-py3-none-any.whl",
            "yanked": false,
            "yanked_reason": null
        },
        {
            "comment_text": "",
            "digests": {
                "blake2b_256": "5d0bcb22b62ac3fd5a54fb1f1a458d109827c493978052812cc24d6b988c51ae",
                "md5": "ee38c8ea44617e97dfc3523a3b09fb5b",
                "sha256": "56473f8491e856744ab295479a646f3b79c04a4562f7bbfc277cf46d26fc527d"
            },
            "downloads": -1,
            "filename": "Products.mcdutils-4.2.tar.gz",
            "has_sig": false,
            "md5_digest": "ee38c8ea44617e97dfc3523a3b09fb5b",
            "packagetype": "sdist",
            "python_version": "source",
            "requires_python": ">=3.7",
            "size": 2479382,
            "upload_time": "2023-12-28T13:13:12",
            "upload_time_iso_8601": "2023-12-28T13:13:12.852573Z",
            "url": "https://files.pythonhosted.org/packages/5d/0b/cb22b62ac3fd5a54fb1f1a458d109827c493978052812cc24d6b988c51ae/Products.mcdutils-4.2.tar.gz",
            "yanked": false,
            "yanked_reason": null
        }
    ],
    "upload_time": "2023-12-28 13:13:12",
    "github": true,
    "gitlab": false,
    "bitbucket": false,
    "codeberg": false,
    "github_user": "dataflake",
    "github_project": "Products.mcdutils",
    "travis_ci": false,
    "coveralls": false,
    "github_actions": true,
    "tox": true,
    "lcname": "products.mcdutils"
}
        
Elapsed time: 0.15756s