Skip to main content
PyCon US is happening May 14th-22nd in Pittsburgh, PA USA.  Learn more

Cleanup of keys leftover in zope component registries

Project description

cleanup_zope_persistent_registry

Before 3.5.2, zope.interface was broken : it did not remove keys when unregistering adapters or unsubscribing subscribers.

This implies that even when proper unregistration of adapters and subscribers had been done, interfaces were left over, pickled in persistent registries.

This leads to nasty bugs when the code that defined those interfaces is removed from the system.

This package defines a function that cleans up those leftover interfaces. It must be called on a site manager, instance of PersistentComponents like the local site manager of a Plone site:

from zope.component import getSiteManager
from cleanup_zope_persistent_registry import cleanup_leftovers

site_manager = getSiteManager(my_plone_site)
cleanup_leftovers(site_manager)

Tested

https://secure.travis-ci.org/gotcha/cleanup_zope_persistent_registry.png?branch=master

Changelog

0.1.1 (2012-10-03)

  • Fix : cleanup was not properly persisted.

0.1 (2012-08-20)

  • Initial release.

Supported by

AWS AWS Cloud computing and Security Sponsor Datadog Datadog Monitoring Fastly Fastly CDN Google Google Download Analytics Pingdom Pingdom Monitoring Sentry Sentry Error logging StatusPage StatusPage Status page