Example #1
0
 def _print(self, package, action):
     """Print package-related action text (e.g. 'Installing')
     indicating progress"""
     text = " ".join([action, package.name, package.version])
     if self.verbose:
         utils.print_box(text)
     else:
         if self.indent:
             text = (' ' * 4) + text
         print(text + '...', end=" ")
Example #2
0
 def _print(self, package, action):
     """Print package-related action text (e.g. 'Installing')
     indicating progress"""
     text = " ".join([action, package.name, package.version])
     if self.verbose:
         utils.print_box(text)
     else:
         if self.indent:
             text = (' '*4) + text
         print(text + '...', end=" ")
Example #3
0
def make_winpython(build_number,
                   release_level,
                   architecture,
                   basedir=None,
                   verbose=False,
                   remove_existing=True,
                   create_installer=True,
                   simulation=False,
                   rootdir=None,
                   install_options=None):
    """Make WinPython distribution, for a given base directory and
    architecture:

    make_winpython(build_number, release_level, architecture,
                   basedir=None, verbose=False, remove_existing=True,
                   create_installer=True, simulation=False)

    `build_number`: build number [int]
    `release_level`: release level (e.g. 'beta1', '') [str]
    `architecture`: [int] (32 or 64)
    `basedir`: [str] if None, WINPYTHONBASEDIR env var must be set
    (rootdir: root directory containing 'basedir27', 'basedir33', etc.)
    """ + utils.ROOTDIR_DOC
    basedir = basedir if basedir is not None else utils.BASE_DIR
    assert basedir is not None, "The *basedir* directory must be specified"
    assert architecture in (32, 64)
    utils.print_box("Making WinPython %dbits" % architecture)
    suffix = '.win32' if architecture == 32 else '.win-amd64'
    packdir = osp.join(basedir, 'packages' + suffix)
    assert osp.isdir(packdir)
    srcdir = osp.join(basedir, 'packages.src')
    assert osp.isdir(srcdir)
    builddir = osp.join(basedir, 'build')
    if not osp.isdir(builddir):
        os.mkdir(builddir)
    toolsdir1 = osp.join(basedir, 'tools')
    assert osp.isdir(toolsdir1)
    toolsdirs = [toolsdir1]
    toolsdir2 = osp.join(basedir, 'tools' + suffix)
    if osp.isdir(toolsdir2):
        toolsdirs.append(toolsdir2)
    dist = WinPythonDistribution(build_number,
                                 release_level,
                                 builddir,
                                 packdir,
                                 srcdir,
                                 toolsdirs,
                                 verbose=verbose,
                                 simulation=simulation,
                                 rootdir=rootdir,
                                 install_options=install_options)
    dist.make(remove_existing=remove_existing)
    if create_installer and not simulation:
        dist.create_installer()
    return dist
Example #4
0
def make_winpython(build_number, release_level, architecture,
                   basedir=None, verbose=False, remove_existing=True,
                   create_installer=True, simulation=False, rootdir=None,
                   install_options=None):
    """Make WinPython distribution, for a given base directory and
    architecture:

    make_winpython(build_number, release_level, architecture,
                   basedir=None, verbose=False, remove_existing=True,
                   create_installer=True, simulation=False)

    `build_number`: build number [int]
    `release_level`: release level (e.g. 'beta1', '') [str]
    `architecture`: [int] (32 or 64)
    `basedir`: [str] if None, WINPYTHONBASEDIR env var must be set
    (rootdir: root directory containing 'basedir27', 'basedir33', etc.)
    """ + utils.ROOTDIR_DOC
    basedir = basedir if basedir is not None else utils.BASE_DIR
    assert basedir is not None, "The *basedir* directory must be specified"
    assert architecture in (32, 64)
    utils.print_box("Making WinPython %dbits" % architecture)
    suffix = '.win32' if architecture == 32 else '.win-amd64'
    packdir = osp.join(basedir, 'packages' + suffix)
    assert osp.isdir(packdir)
    srcdir = osp.join(basedir, 'packages.src')
    assert osp.isdir(srcdir)
    builddir = osp.join(basedir, 'build')
    if not osp.isdir(builddir):
        os.mkdir(builddir)
    toolsdir1 = osp.join(basedir, 'tools')
    assert osp.isdir(toolsdir1)
    toolsdirs = [toolsdir1]
    toolsdir2 = osp.join(basedir, 'tools' + suffix)
    if osp.isdir(toolsdir2):
        toolsdirs.append(toolsdir2)
    dist = WinPythonDistribution(build_number, release_level,
                                 builddir, packdir, srcdir, toolsdirs,
                                 verbose=verbose, simulation=simulation,
                                 rootdir=rootdir,
                                 install_options=install_options)
    dist.make(remove_existing=remove_existing)
    if create_installer and not simulation:
        dist.create_installer()
    return dist
Example #5
0
def test_parse_package_index_wiki(version, rootdir=None):
    """Parse the package index Wiki page"""
    pi = PackageIndex(version, rootdir=rootdir)
    utils.print_box("WinPython %s:" % pi.version)
    utils.print_box("Tools:")
    for package in pi.other_packages.values():
        print(package)
        print('')
    utils.print_box("Python packages:")
    for package in pi.python_packages.values():
        print(package)
        print('')
Example #6
0
def test_parse_package_index_wiki(version, rootdir=None):
    """Parse the package index Wiki page"""
    pi = PackageIndex(version, rootdir=rootdir)
    utils.print_box("WinPython %s:" % pi.version)
    utils.print_box("Tools:")
    for package in pi.other_packages.values():
        print(package)
        print('')
    utils.print_box("Python packages:")
    for package in pi.python_packages.values():
        print(package)
        print('')
Example #7
0
def test_parse_package_index_wiki(version, basedir=None, flavor='', architecture=64):
    """Parse the package index Wiki page"""
    pi = PackageIndex(version, basedir=basedir, flavor=flavor, architecture=architecture)
    utils.print_box("WinPython %s:" % pi.version)
    utils.print_box("Tools:")
    for package in pi.other_packages.values():
        print(package)
        print('')
    utils.print_box("Python packages:")
    for package in pi.python_packages.values():
        print(package)
        print('')
Example #8
0
def test_parse_package_index_wiki(version,
                                  basedir=None,
                                  flavor='',
                                  architecture=64):
    """Parse the package index Wiki page"""
    pi = PackageIndex(version,
                      basedir=basedir,
                      flavor=flavor,
                      architecture=architecture)
    utils.print_box("WinPython %s:" % pi.version)
    utils.print_box("Tools:")
    for package in pi.other_packages.values():
        print(package)
        print('')
    utils.print_box("Python packages:")
    for package in pi.python_packages.values():
        print(package)
        print('')
Example #9
0
def make_winpython(
    build_number,
    release_level,
    architecture,
    basedir=None,
    verbose=False,
    remove_existing=True,
    create_installer=True,
    simulation=False,
    rootdir=None,
    install_options=None,
    flavor="",
    requirements=None,
    find_links=None,
    source_dirs=None,
    toolsdirs=None,
    docsdirs=None,
):
    """Make WinPython distribution, for a given base directory and
    architecture:

    make_winpython(build_number, release_level, architecture,
                   basedir=None, verbose=False, remove_existing=True,
                   create_installer=True, simulation=False)

    `build_number`: build number [int]
    `release_level`: release level (e.g. 'beta1', '') [str]
    `architecture`: [int] (32 or 64)
    `basedir`: [str] if None, WINPYTHONBASEDIR env var must be set
    (rootdir: root directory containing 'basedir27', 'basedir33', etc.)
    """ + utils.ROOTDIR_DOC
    basedir = basedir if basedir is not None else utils.BASE_DIR
    assert basedir is not None, "The *basedir* directory must be specified"
    assert architecture in (32, 64)
    utils.print_box("Making WinPython %dbits" % architecture)
    suffix = ".win32" if architecture == 32 else ".win-amd64"

    # Create Build director, where Winpython will be constructed
    builddir = osp.join(basedir, "build" + flavor)
    if not osp.isdir(builddir):
        os.mkdir(builddir)

    # Create 1 wheel directory to receive all packages whished  for build
    wheeldir = osp.join(builddir, "wheels_tmp_%s" % architecture)
    if osp.isdir(wheeldir):
        shutil.rmtree(wheeldir, onerror=utils.onerror)
    os.mkdir(wheeldir)

    # Rebuild Winpython in this wheel dir
    rebuild_winpython(basedir=basedir, archis=(architecture,), targetdir=wheeldir)

    #  Copy Every package directory to the wheel directory

    # Optional pre-defined source_dirs
    if source_dirs is None:
        source_dirs = ""
    if not source_dirs == list(source_dirs):
        source_dirs = source_dirs.split()

    # Default natural behavior
    if source_dirs == []:
        source_dirs = [
            osp.join(basedir, "packages" + suffix),
            osp.join(basedir, "packages.src"),
            osp.join(basedir, flavor, "packages" + suffix),
            osp.join(basedir, flavor, "packages.src"),
        ]
    print("source_dirs=", source_dirs)
    for m in list(set(source_dirs)):
        if osp.isdir(m):
            src_files = os.listdir(m)
            for file_name in src_files:
                full_file_name = os.path.join(m, file_name)
                shutil.copy(full_file_name, wheeldir)

    # Optional pre-defined toolsdirs
    if toolsdirs is None:
        toolsdirs = ""
    if not toolsdirs == list(toolsdirs):
        toolsdirs = toolsdirs.split()

    # Default natural behavior
    if toolsdirs == []:

        # Define List of Tools directory to collect
        toolsdir1 = osp.join(basedir, "tools")
        assert osp.isdir(toolsdir1)
        toolsdirs = [toolsdir1]
        toolsdir2 = osp.join(basedir, "tools" + suffix)
        if osp.isdir(toolsdir2):
            toolsdirs.append(toolsdir2)
    print("toolsdirs=", toolsdirs)

    # Optional pre-defined toolsdirs
    if docsdirs is None:
        docsdirs = ""
    if not docsdirs == list(docsdirs):
        docsdirs = docsdirs.split()

    # Default natural behavior
    if docsdirs == []:
        # Define List of docs directory to collect
        docsdir1 = osp.join(basedir, "docs")
        assert osp.isdir(docsdir1)
        docsdirs = [docsdir1]
        docsdir2 = osp.join(basedir, "docs" + suffix)
        if osp.isdir(docsdir2):
            docsdirs.append(docsdir2)
    print("docsdirs=", docsdirs)

    # install_options = ['--no-index', '--pre', '--find-links=%s' % wheeldir]

    if find_links is None:
        find_links = ""
    if not find_links == list(find_links):
        find_links = find_links.split()
    find_list = ["--find-links=%s" % l for l in find_links + [wheeldir]]
    dist = WinPythonDistribution(
        build_number,
        release_level,
        builddir,
        wheeldir,
        toolsdirs,
        verbose=verbose,
        simulation=simulation,
        rootdir=rootdir,
        install_options=install_options + find_list,
        flavor=flavor,
        docsdirs=docsdirs,
    )
    dist.make(remove_existing=remove_existing, requirements=requirements)
    #          ,find_links=osp.join(basedir, 'packages.srcreq'))
    if create_installer and not simulation:
        dist.create_installer()
    return dist
Example #10
0
 def _print(self, text):
     """Print action text indicating progress"""
     if self.verbose:
         utils.print_box(text)
     else:
         print(text + "...", end=" ")
Example #11
0
def make_winpython(build_number, release_level, architecture,
                   basedir=None, verbose=False, remove_existing=True,
                   create_installer=True, simulation=False, rootdir=None,
                   install_options=None, flavor='', requirements=None,
                   find_links=None):
    """Make WinPython distribution, for a given base directory and
    architecture:

    make_winpython(build_number, release_level, architecture,
                   basedir=None, verbose=False, remove_existing=True,
                   create_installer=True, simulation=False)

    `build_number`: build number [int]
    `release_level`: release level (e.g. 'beta1', '') [str]
    `architecture`: [int] (32 or 64)
    `basedir`: [str] if None, WINPYTHONBASEDIR env var must be set
    (rootdir: root directory containing 'basedir27', 'basedir33', etc.)
    """ + utils.ROOTDIR_DOC
    basedir = basedir if basedir is not None else utils.BASE_DIR
    assert basedir is not None, "The *basedir* directory must be specified"
    assert architecture in (32, 64)
    utils.print_box("Making WinPython %dbits" % architecture)
    suffix = '.win32' if architecture == 32 else '.win-amd64'

    # Create Build director, where Winpython will be constructed
    builddir = osp.join(basedir, 'build' + flavor)
    if not osp.isdir(builddir):
        os.mkdir(builddir)

    # Create 1 wheel directory to receive all packages whished  for build
    wheeldir = osp.join(builddir, 'wheels_tmp_%s' % architecture)
    if osp.isdir(wheeldir):
        shutil.rmtree(wheeldir, onerror=utils.onerror)
    os.mkdir(wheeldir)
    #  Copy Every package directory to the wheel directory
    source_dirs = [osp.join(basedir, 'packages' + suffix),
                   osp.join(basedir, 'packages.src'),
                   osp.join(basedir, flavor, 'packages' + suffix),
                   osp.join(basedir, flavor, 'packages.src')]
    for m in list(set(source_dirs)):
        if osp.isdir(m):
            src_files = os.listdir(m)
            for file_name in src_files:
                full_file_name = os.path.join(m, file_name)
                shutil.copy(full_file_name, wheeldir)

    # Define List of Tools directory to collect
    toolsdir1 = osp.join(basedir, 'tools')
    assert osp.isdir(toolsdir1)
    toolsdirs = [toolsdir1]
    toolsdir2 = osp.join(basedir, 'tools' + suffix)
    if osp.isdir(toolsdir2):
        toolsdirs.append(toolsdir2)
    # add flavor tools
    if flavor != '':
        toolsdir3 = osp.join(basedir, flavor, 'tools')
        toolsdir4 = osp.join(basedir, flavor, 'tools' + suffix)
        for flavor_tools in [toolsdir3, toolsdir4]:
            if osp.isdir(flavor_tools):
                toolsdirs.append(flavor_tools)

    # Define List of docs directory to collect
    docsdir1 = osp.join(basedir, 'docs')
    assert osp.isdir(docsdir1)
    docsdirs = [docsdir1]
    docsdir2 = osp.join(basedir, 'docs' + suffix)
    if osp.isdir(docsdir2):
        docsdirs.append(docsdir2)
    # add flavor docs
    if flavor != '':
        docsdir3 = osp.join(basedir, flavor, 'docs')
        docsdir4 = osp.join(basedir, flavor, 'docs' + suffix)
        for flavor_docs in [docsdir3, docsdir4]:
            if osp.isdir(flavor_docs):
                docsdirs.append(flavor_docs)

    # install_options = ['--no-index', '--pre', '--find-links=%s' % wheeldir]

    if find_links is None:
        find_links = ''
    if not find_links == list(find_links):
        find_links = find_links.split()
    find_list = ['--find-links=%s' % l for l in find_links +[wheeldir]]
    dist = WinPythonDistribution(build_number, release_level,
                                 builddir, wheeldir, toolsdirs,
                                 verbose=verbose, simulation=simulation,
                                 rootdir=rootdir,
                                 install_options=install_options + find_list,
                                 flavor=flavor, docsdirs=docsdirs)
    dist.make(remove_existing=remove_existing, requirements=requirements)
    #          ,find_links=osp.join(basedir, 'packages.srcreq'))
    if create_installer and not simulation:
        dist.create_installer()
    return dist
Example #12
0
def make_all(build_number, release_level, pyver, architecture,
                   basedir, verbose=False, remove_existing=True,
                   create_installer=True, simulation=False,
                   install_options=['--no-index'], flavor='', requirements=None,
                   find_links=None, source_dirs=None, toolsdirs=None,
                   docsdirs=None):
    """Make WinPython distribution, for a given base directory and
    architecture:

    make_winpython(build_number, release_level, architecture,
                   basedir=None, verbose=False, remove_existing=True,
                   create_installer=True, simulation=False)

    `build_number`: build number [int]
    `release_level`: release level (e.g. 'beta1', '') [str]
    `pyver`: python version ('3.4' or 3.5')
    `architecture`: [int] (32 or 64)
    `basedir`: where will be created  tmp_wheel dir. and Winpython-xyz dir.
    """ + utils.ROOTDIR_DOC
    
    if basedir is None:
        basedir = utils.BASE_DIR

    assert basedir is not None, "The *basedir* directory must be specified"
    assert architecture in (32, 64)
    utils.print_box("Making WinPython %dbits" % architecture)

    # Create Build director, where Winpython will be constructed
    builddir = osp.join(basedir, 'build' + flavor)
    if not osp.isdir(builddir):
        os.mkdir(builddir)

    # Create 1 wheel directory to receive all packages whished  for build
    wheeldir = osp.join(builddir, 'wheels_tmp_%s' % architecture)
    if osp.isdir(wheeldir):
        shutil.rmtree(wheeldir, onerror=utils.onerror)
    os.mkdir(wheeldir)

    # Rebuild Winpython in this wheel dir
    rebuild_winpython(basedir=basedir, architecture=architecture, targetdir=wheeldir)

    #  Copy Every package directory to the wheel directory

    # Optional pre-defined source_dirs
    source_dirs = transform_in_list(source_dirs, 'source_dirs=')

    for m in list(set(source_dirs)):
        if osp.isdir(m):
            src_files = os.listdir(m)
            for file_name in src_files:
                full_file_name = os.path.join(m, file_name)
                shutil.copy(full_file_name, wheeldir)

    # Optional pre-defined toolsdirs
    toolsdirs = transform_in_list(toolsdirs, 'toolsdirs=')

    # Optional pre-defined toolsdirs
    docsdirs = transform_in_list(docsdirs, 'docsdirs=')

    # install_options = ['--no-index', '--pre', '--find-links=%s' % wheeldir]
    install_options = transform_in_list(install_options, 'install_options')
        
    find_links = transform_in_list(find_links, 'find_links')

    find_list = ['--find-links=%s' % l for l in find_links +[wheeldir]]
    dist = WinPythonDistribution(build_number, release_level,
                                 builddir, wheeldir, toolsdirs,
                                 verbose=verbose, simulation=simulation,
                                 basedir=basedir,
                                 install_options=install_options + find_list,
                                 flavor=flavor, docsdirs=docsdirs)
    # define a pre-defined winpydir, instead of having to guess
    my_winpydir = ('winpython-' + ('%s' % architecture) +'bit-' + pyver +
     '.x.' + ('%s' %build_number) )  # + flavor + release_level)   
    
    dist.make(remove_existing=remove_existing, requirements=requirements,
              my_winpydir=my_winpydir)
    #          ,find_links=osp.join(basedir, 'packages.srcreq'))
    if create_installer and not simulation:
        dist.create_installer()
    return dist
Example #13
0
def make_winpython(build_number, release_level, architecture,
                   basedir=None, verbose=False, remove_existing=True,
                   create_installer=True, simulation=False, rootdir=None,
                   install_options=None, flavor=''):
    """Make WinPython distribution, for a given base directory and
    architecture:

    make_winpython(build_number, release_level, architecture,
                   basedir=None, verbose=False, remove_existing=True,
                   create_installer=True, simulation=False)

    `build_number`: build number [int]
    `release_level`: release level (e.g. 'beta1', '') [str]
    `architecture`: [int] (32 or 64)
    `basedir`: [str] if None, WINPYTHONBASEDIR env var must be set
    (rootdir: root directory containing 'basedir27', 'basedir33', etc.)
    """ + utils.ROOTDIR_DOC
    basedir = basedir if basedir is not None else utils.BASE_DIR
    assert basedir is not None, "The *basedir* directory must be specified"
    assert architecture in (32, 64)
    utils.print_box("Making WinPython %dbits" % architecture)
    suffix = '.win32' if architecture == 32 else '.win-amd64'

    # Create Build director, where Winpython will be constructed
    builddir = osp.join(basedir, 'build' + flavor)
    if not osp.isdir(builddir):
        os.mkdir(builddir)

    # Create 1 wheel directory to receive all packages whished  for build
    wheeldir = osp.join(builddir, 'wheels_tmp' + suffix)
    if osp.isdir(wheeldir):
        shutil.rmtree(wheeldir, onerror=utils.onerror)
    os.mkdir(wheeldir)
    #  Copy Every package directory to the wheel directory
    source_dirs = [osp.join(basedir, 'packages' + suffix),
                   osp.join(basedir, 'packages.src'),
                   osp.join(basedir, flavor, 'packages' + suffix),
                   osp.join(basedir, flavor, 'packages.src')]
    for m in list(set(source_dirs)):
        if osp.isdir(m):
            src_files = os.listdir(m)
            for file_name in src_files:
                full_file_name = os.path.join(m, file_name)
                shutil.copy(full_file_name, wheeldir)

    # Define List of Tools directory to collect
    toolsdir1 = osp.join(basedir, 'tools')
    assert osp.isdir(toolsdir1)
    toolsdirs = [toolsdir1]
    toolsdir2 = osp.join(basedir, 'tools' + suffix)
    if osp.isdir(toolsdir2):
        toolsdirs.append(toolsdir2)
    # add flavor tools
    if flavor != '':
        toolsdir3 = osp.join(basedir, flavor, 'tools')
        toolsdir4 = osp.join(basedir, flavor, 'tools' + suffix)
        for flavor_tools in [toolsdir3, toolsdir4]:
            if osp.isdir(flavor_tools):
                toolsdirs.append(flavor_tools)

    # Define List of docs directory to collect
    docsdir1 = osp.join(basedir, 'docs')
    assert osp.isdir(docsdir1)
    docsdirs = [docsdir1]
    docsdir2 = osp.join(basedir, 'docs' + suffix)
    if osp.isdir(docsdir2):
        docsdirs.append(docsdir2)
    # add flavor docs
    if flavor != '':
        docsdir3 = osp.join(basedir, flavor, 'docs')
        docsdir4 = osp.join(basedir, flavor, 'docs' + suffix)
        for flavor_docs in [docsdir3, docsdir4]:
            if osp.isdir(flavor_docs):
                docsdirs.append(flavor_docs)

    install_options = ['--no-index', '--pre', '--find-links=%s' % wheeldir]

    dist = WinPythonDistribution(build_number, release_level,
                                 builddir, wheeldir, toolsdirs,
                                 verbose=verbose, simulation=simulation,
                                 rootdir=rootdir,
                                 install_options=install_options,
                                 flavor=flavor, docsdirs=docsdirs)
    dist.make(remove_existing=remove_existing)
    if create_installer and not simulation:
        dist.create_installer()
    return dist
Example #14
0
 def _print(self, text):
     """Print action text indicating progress"""
     if self.verbose:
         utils.print_box(text)
     else:
         print(text + '...', end=" ")
Example #15
0
def make_all(build_number, release_level, pyver, architecture,
                   basedir, verbose=False, remove_existing=True,
                   create_installer=True, simulation=False,
                   install_options=['--no-index'], flavor='', requirements=None,
                   find_links=None, source_dirs=None, toolsdirs=None,
                   docsdirs=None):
    """Make WinPython distribution, for a given base directory and
    architecture:

    make_winpython(build_number, release_level, architecture,
                   basedir=None, verbose=False, remove_existing=True,
                   create_installer=True, simulation=False)

    `build_number`: build number [int]
    `release_level`: release level (e.g. 'beta1', '') [str]
    `pyver`: python version ('3.4' or 3.5')
    `architecture`: [int] (32 or 64)
    `basedir`: where will be created  tmp_wheel dir. and Winpython-xyz dir.
    """ + utils.ROOTDIR_DOC
    
    if basedir is None:
        basedir = utils.BASE_DIR

    assert basedir is not None, "The *basedir* directory must be specified"
    assert architecture in (32, 64)
    utils.print_box("Making WinPython %dbits" % architecture)

    # Create Build director, where Winpython will be constructed
    builddir = osp.join(basedir, 'build' + flavor)
    if not osp.isdir(builddir):
        os.mkdir(builddir)

    # Create 1 wheel directory to receive all packages whished  for build
    wheeldir = osp.join(builddir, 'wheels_tmp_%s' % architecture)
    if osp.isdir(wheeldir):
        shutil.rmtree(wheeldir, onerror=utils.onerror)
    os.mkdir(wheeldir)

    # Rebuild Winpython in this wheel dir
    rebuild_winpython(basedir=basedir, architecture=architecture, targetdir=wheeldir)

    #  Copy Every package directory to the wheel directory

    # Optional pre-defined source_dirs
    source_dirs = transform_in_list(source_dirs, 'source_dirs=')

    for m in list(set(source_dirs)):
        if osp.isdir(m):
            src_files = os.listdir(m)
            for file_name in src_files:
                full_file_name = os.path.join(m, file_name)
                shutil.copy(full_file_name, wheeldir)

    # Optional pre-defined toolsdirs
    toolsdirs = transform_in_list(toolsdirs, 'toolsdirs=')

    # Optional pre-defined toolsdirs
    docsdirs = transform_in_list(docsdirs, 'docsdirs=')

    # install_options = ['--no-index', '--pre', '--find-links=%s' % wheeldir]
    install_options = transform_in_list(install_options, 'install_options')
        
    find_links = transform_in_list(find_links, 'find_links')

    find_list = ['--find-links=%s' % l for l in find_links +[wheeldir]]
    dist = WinPythonDistribution(build_number, release_level,
                                 builddir, wheeldir, toolsdirs,
                                 verbose=verbose, simulation=simulation,
                                 basedir=basedir,
                                 install_options=install_options + find_list,
                                 flavor=flavor, docsdirs=docsdirs)
    # define a pre-defined winpydir, instead of having to guess
    my_winpydir = ('winpython-' + ('%s' % architecture) +'bit-' + pyver +
     '.x.' + ('%s' %build_number) )  # + flavor + release_level)   
    
    dist.make(remove_existing=remove_existing, requirements=requirements,
              my_winpydir=my_winpydir)
    #          ,find_links=osp.join(basedir, 'packages.srcreq'))
    if create_installer and not simulation:
        dist.create_installer()
    return dist