def build_pkg(dist, live_objects, top_node): if dist.package_dir is not None: for package, path in dist.package_dir.iteritems(): if not os.path.samefile(package.replace(".", os.sep), path): raise ConvertionError("setup.py with package_dir arguments is not supported (was %r)." % dist.package_dir) pkg = distutils_to_package_description(dist) modules = [] for m in pkg.py_modules: if isinstance(m, basestring): modules.append(m) else: warnings.warn("The module %s it not understood" % str(m)) pkg.py_modules = modules path_options = [] pkg.data_files = {} if live_objects["package_data"]: gendatafiles = {} for package, files in live_objects["package_data"].iteritems(): if len(files) > 0: # FIXME: use nodes here instead of ugly path manipulations name = "gendata_%s" % package.replace(".", "_") target_dir = os.path.join("$gendatadir", package.replace(".", "/")) data_section = DataFiles(name, files, target_dir) pkg.data_files[name] = data_section path_options.append(PathOption("gendatadir", "$sitedir", "Directory for datafiles obtained from distutils conversion" )) extra_source_files = [] if live_objects["extra_data"]: extra_source_files.extend([canonalize_path(f) for f in live_objects["extra_data"]]) pkg.extra_source_files = sorted(prune_extra_files(extra_source_files, pkg, top_node)) if live_objects["data_files"]: data_files = live_objects["data_files"] for pkg_name, source_dir, _, files in data_files: if len(files) > 0: name = "%s_data" % pkg_name.replace(".", "_") target_dir = os.path.join("$sitedir", pkg_name.replace(".", os.sep)) pkg.data_files[name] = DataFiles(name, files, target_dir, source_dir) if dist.scripts: name = "%s_scripts" % pkg.name target_dir = "$eprefix" pkg.data_files[name] = DataFiles(name, dist.scripts, target_dir, ".") # numpy.distutils bug: packages are appended twice to the Distribution # instance, so we prune the list here pkg.packages = sorted(list(set(pkg.packages))) options = {"path_options": path_options} return pkg, options
def build_pkg(dist, package_objects, top_node): pkg = distutils_to_package_description(dist) modules = [] for m in pkg.py_modules: if isinstance(m, basestring): modules.append(m) else: warnings.warn("The module %s it not understood" % str(m)) pkg.py_modules = modules path_options = [] data_sections = {} extra_source_files = [] if package_objects.extra_source_files: extra_source_files.extend( [canonalize_path(f) for f in package_objects.extra_source_files]) for pkg_name, source_dir, target_dir, files in package_objects.iter_data_files( top_node): if len(files) > 0: if len(pkg_name) > 0: name = "%s_data" % pkg_name.replace(".", "_") else: name = "dist_data" source_dir = canonalize_path(source_dir) target_dir = canonalize_path(target_dir) files = [canonalize_path(f) for f in files] data_sections[name] = DataFiles(name, files, target_dir, source_dir) pkg.data_files.update(data_sections) if dist.scripts: name = "%s_scripts" % pkg.name target_dir = "$bindir" pkg.data_files[name] = DataFiles(name, dist.scripts, target_dir, ".") # numpy.distutils bug: packages are appended twice to the Distribution # instance, so we prune the list here pkg.packages = sorted(list(set(pkg.packages))) options = {"path_options": path_options} pkg.extra_source_files = sorted( prune_extra_files(extra_source_files, pkg, top_node)) return pkg, options
def build_pkg(dist, package_objects, top_node): pkg = distutils_to_package_description(dist) modules = [] for m in pkg.py_modules: if isinstance(m, basestring): modules.append(m) else: warnings.warn("The module %s it not understood" % str(m)) pkg.py_modules = modules path_options = [] data_sections = {} extra_source_files = [] if package_objects.extra_source_files: extra_source_files.extend([canonalize_path(f) for f in package_objects.extra_source_files]) for pkg_name, source_dir, target_dir, files in package_objects.iter_data_files(top_node): if len(files) > 0: if len(pkg_name) > 0: name = "%s_data" % pkg_name.replace(".", "_") else: name = "dist_data" source_dir = canonalize_path(source_dir) target_dir = canonalize_path(target_dir) files = [canonalize_path(f) for f in files] data_sections[name] = DataFiles(name, files, target_dir, source_dir) pkg.data_files.update(data_sections) if dist.scripts: name = "%s_scripts" % pkg.name target_dir = "$bindir" pkg.data_files[name] = DataFiles(name, dist.scripts, target_dir, ".") # numpy.distutils bug: packages are appended twice to the Distribution # instance, so we prune the list here pkg.packages = sorted(list(set(pkg.packages))) options = {"path_options": path_options} pkg.extra_source_files = sorted(prune_extra_files(extra_source_files, pkg, top_node)) return pkg, options
def build_pkg(dist, live_objects): pkg = distutils_to_package_description(dist) modules = [] for m in pkg.py_modules: if isinstance(m, basestring): modules.append(m) else: warnings.warn("The module %s it not understood" % str(m)) pkg.py_modules = modules path_options = [] pkg.data_files = {} if live_objects["package_data"]: gendatafiles = {} for d in live_objects["package_data"]: if len(d["files"]) > 0: name = "gendata_%s" % d["target"].replace(os.path.sep, "_") gendatafiles[name] = { "srcdir": canonalize_path(d["srcdir"]), "target": posjoin("$gendatadir", canonalize_path(d["target"])), "files": [canonalize_path(f) for f in d["files"]] } path_options.append(PathOption("gendatadir", "$sitedir", "Directory for datafiles obtained from distutils conversion" )) pkg.data_files.update(gendatafiles) extra_source_files = [] if live_objects["extra_data"]: extra_source_files.extend([canonalize_path(f) for f in live_objects["extra_data"]]) pkg.extra_source_files = sorted(prune_extra_files(extra_source_files, pkg)) if live_objects["data_files"]: pkg.data_files = combine_groups(live_objects["data_files"]) # numpy.distutils bug: packages are appended twice to the Distribution # instance, so we prune the list here pkg.packages = sorted(list(set(pkg.packages))) options = {"path_options": path_options} return pkg, options