from zope.interface import Interface class ICustomizationPolicy(Interface): """ A Customization Policy is responsible for setting up a raw Plone instance according to the instruction provided for the Policy. The Policy must register via Products.CMFPlone.Portal.addPolicy """ def customize(portal): """ the customize method takes the portal object and massages it. the only thing that really needs to be understood is that the Policy itself is not persisted. Most likely a CustomizationPolicy would be derived from the DefaultCustomizationPolicy, you would call its customize() method and then continue on customization the portal. """