def app_install(fn, prefix=config.root_dir): """ Install the application `fn` into prefix (which defauts to the root environment). """ import conda.plan as plan index = get_index() actions = plan.install_actions(prefix, index, [fn2spec(fn)]) plan.execute_actions(actions, index)
def app_info_packages(fn): """ given the filename of a package, return which packages (and their sizes) still need to be downloaded, in order to install the package. That is, the package itself and it's dependencies. Returns a list of tuples (pkg_name, pkg_version, size, fetched? True or False). """ from conda.resolve import Resolve index = get_index() r = Resolve(index) res = [] for fn2 in r.solve([fn2spec(fn)]): info = index[fn2] res.append((info['name'], info['version'], info['size'], install.is_fetched(config.pkgs_dir, fn2[:-8]))) return res
def app_uninstall(fn, prefix=config.root_dir): """ Uninstall application `fn` (but not its dependencies). Like `conda remove fn`. """ import conda.cli.common as common import conda.plan as plan index = None specs = [fn2spec(fn)] if (plan.is_root_prefix(prefix) and common.names_in_specs(common.root_no_rm, specs)): raise ValueError("Cannot remove %s from the root environment" % ', '.join(common.root_no_rm)) actions = plan.remove_actions(prefix, specs) if plan.nothing_to_do(actions): raise ValueError("Nothing to do") plan.execute_actions(actions, index)