Skip to content

gotcha/cleanup_zope_persistent_registry

Repository files navigation

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

About

Cleanup of keys leftover in zope component registries

Resources

Stars

Watchers

Forks

Packages

No packages published

Languages