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=" ")
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=" ")
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
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('')
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('')
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
def _print(self, text): """Print action text indicating progress""" if self.verbose: utils.print_box(text) else: print(text + "...", end=" ")
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
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
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
def _print(self, text): """Print action text indicating progress""" if self.verbose: utils.print_box(text) else: print(text + '...', end=" ")