def add_platforms(in_wheel, platforms, out_path=None, clobber=False):
    """ Add platform tags `platforms` to `in_wheel` filename and WHEEL tags

    Add any platform tags in `platforms` that are missing from `in_wheel`
    filename.

    Add any platform tags in `platforms` that are missing from `in_wheel`
    ``WHEEL`` file.

    Parameters
    ----------
    in_wheel : str
        Filename of wheel to which to add platform tags
    platforms : iterable
        platform tags to add to wheel filename and WHEEL tags - e.g.
        ``('macosx_10_9_intel', 'macosx_10_9_x86_64')
    out_path : None or str, optional
        Directory to which to write new wheel.  Default is directory containing
        `in_wheel`
    clobber : bool, optional
        If True, overwrite existing output filename, otherwise raise error

    Returns
    -------
    out_wheel : None or str
        Absolute path of wheel file written, or None if no wheel file written.
    """
    in_wheel = abspath(in_wheel)
    out_path = dirname(in_wheel) if out_path is None else abspath(out_path)
    wf = WheelFile(in_wheel)
    info_fname = _get_wheelinfo_name(wf)
    # Check what tags we have
    in_fname_tags = wf.parsed_filename.groupdict()['plat'].split('.')
    extra_fname_tags = [tag for tag in platforms if tag not in in_fname_tags]
    in_wheel_base, ext = splitext(basename(in_wheel))
    out_wheel_base = '.'.join([in_wheel_base] + list(extra_fname_tags))
    out_wheel = pjoin(out_path, out_wheel_base + ext)
    if exists(out_wheel) and not clobber:
        raise WheelToolsError('Not overwriting {0}; set clobber=True '
                              'to overwrite'.format(out_wheel))
    with InWheelCtx(in_wheel) as ctx:
        info = read_pkg_info(info_fname)
        if info['Root-Is-Purelib'] == 'true':
            raise WheelToolsError('Cannot add platforms to pure wheel')
        in_info_tags = [tag for name, tag in info.items() if name == 'Tag']
        # Python version, C-API version combinations
        pyc_apis = ['-'.join(tag.split('-')[:2]) for tag in in_info_tags]
        # unique Python version, C-API version combinations
        pyc_apis = unique_by_index(pyc_apis)
        # Add new platform tags for each Python version, C-API combination
        required_tags = ['-'.join(tup) for tup in product(pyc_apis, platforms)]
        needs_write = False
        for req_tag in required_tags:
            if req_tag in in_info_tags: continue
            needs_write = True
            info.add_header('Tag', req_tag)
        if needs_write:
            write_pkg_info(info_fname, info)
            # Tell context manager to write wheel on exit by setting filename
            ctx.out_wheel = out_wheel
    return ctx.out_wheel
def add_platforms ( in_wheel , platforms , out_path = None , clobber = False ) : in_wheel = abspath ( in_wheel ) out_path = dirname ( in_wheel ) if out_path is None else abspath ( out_path ) wf = WheelFile ( in_wheel ) info_fname = _get_wheelinfo_name ( wf ) in_fname_tags = wf . parsed_filename . groupdict ( ) [ 'plat' ] . split ( '.' ) extra_fname_tags = [ tag for tag in platforms if tag not in in_fname_tags ] in_wheel_base , ext = splitext ( basename ( in_wheel ) ) out_wheel_base = '.' . join ( [ in_wheel_base ] + list ( extra_fname_tags ) ) out_wheel = pjoin ( out_path , out_wheel_base + ext ) if exists ( out_wheel ) and not clobber : raise WheelToolsError ( 'Not overwriting {0}; set clobber=True ' 'to overwrite' . format ( out_wheel ) ) with InWheelCtx ( in_wheel ) as ctx : info = read_pkg_info ( info_fname ) if info [ 'Root-Is-Purelib' ] == 'true' : raise WheelToolsError ( 'Cannot add platforms to pure wheel' ) in_info_tags = [ tag for name , tag in info . items ( ) if name == 'Tag' ] pyc_apis = [ '-' . join ( tag . split ( '-' ) [ : 2 ] ) for tag in in_info_tags ] pyc_apis = unique_by_index ( pyc_apis ) required_tags = [ '-' . join ( tup ) for tup in product ( pyc_apis , platforms ) ] needs_write = False for req_tag in required_tags : if req_tag in in_info_tags : continue needs_write = True info . add_header ( 'Tag' , req_tag ) if needs_write : write_pkg_info ( info_fname , info ) ctx . out_wheel = out_wheel return ctx . out_wheel
Add platform tags `platforms` to `in_wheel` filename and WHEEL tags

    Add any platform tags in `platforms` that are missing from `in_wheel`
    filename.

    Add any platform tags in `platforms` that are missing from `in_wheel`
    ``WHEEL`` file.

    Parameters
    ----------
    in_wheel : str
        Filename of wheel to which to add platform tags
    platforms : iterable
        platform tags to add to wheel filename and WHEEL tags - e.g.
        ``('macosx_10_9_intel', 'macosx_10_9_x86_64')
    out_path : None or str, optional
        Directory to which to write new wheel.  Default is directory containing
        `in_wheel`
    clobber : bool, optional
        If True, overwrite existing output filename, otherwise raise error

    Returns
    -------
    out_wheel : None or str
        Absolute path of wheel file written, or None if no wheel file written.