'Verify that feature makes sense in context of distribution
This method is called by the distribution just before it parses its
command line.  It checks to ensure that the \'remove\' attribute, if any,
contains only valid package/module names that are present in the base
distribution when \'setup()\' is called.  You may override it in a
subclass to perform any other required validation of the feature
against a target distribution.'

def validate(self, dist):

    for item in self.remove:
        if (not dist.has_contents_for(item)):
            raise DistutilsSetupError(("%s    wants    to    be    able    to    remove    %s,    but    the    distribution    doesn't    contain    any    packages    or    modules    under    %s" % (self.description, item, item)))
