'Add items to distribution that are named in keyword arguments
For example, \'dist.exclude(py_modules=["x"])\' would add \'x\' to
the distribution\'s \'py_modules\' attribute, if it was not already
there.
Currently, this method only supports inclusion for attributes that are
lists or tuples.  If you need to add support for adding to other
attributes in this or a subclass, you can add an \'_include_X\' method,
where \'X\' is the name of the attribute.  The method will be called with
the value passed to \'include()\'.  So, \'dist.include(foo={"bar":"baz"})\'
will try to call \'dist._include_foo({"bar":"baz"})\', which can then
handle whatever special inclusion logic is needed.'

def include(self, **attrs):

    for (k, v) in attrs.items():
        include = getattr(self, ('_include_' + k), None)
        if include:
            include(v)
        else:
            self._include_misc(k, v)
