':raises InvalidWheelFilename: when the filename is invalid for a wheel'

def __init__(self, filename):

    wheel_info = self.wheel_file_re.match(filename)
    if (not wheel_info):
        raise InvalidWheelFilename(('%s    is    not    a    valid    wheel    filename.' % filename))
    self.filename = filename
    self.name = wheel_info.group('name').replace('_', '-')
    self.version = wheel_info.group('ver').replace('_', '-')
    self.pyversions = wheel_info.group('pyver').split('.')
    self.abis = wheel_info.group('abi').split('.')
    self.plats = wheel_info.group('plat').split('.')
    self.file_tags = set(((x, y, z) for x in self.pyversions for y in self.abis for z in self.plats))
