def mk_class_name(*parts):
    """Create a valid class name from a list of strings."""
    cap = lambda s: s and (s[0].capitalize() + s[1:])
    return "".join(["".join([cap(i)
                             for i in re.split("[\ \-\_\.]", str(p))])
                    for p in parts])