def check_func(name, info=False): INFO = '{0.project_name} - {0.version}\nInstalled in {0.location}' if not info: logger.info(is_installed(name)) return if info: try: dist = pkg_resources.get_distribution(name) logger.info(INFO.format(dist)) except pkg_resources.DistributionNotFound: logger.info(False)
def __init__(self, req): self.upgrading = False if is_installed(req): self.upgrading = True if not args_manager['install']['upgrade']: logger.info('{0} is already installed, use -U, --upgrade to upgrade', req) raise AlreadyInstalled ## We don't set args_manager['upgrade'] = False ## because we want to propagate it to dependencies logger.info('{0} is already installed, upgrading...', req) self.req = req
def list_releases(name): '''List all releases for the given requirement.''' name = name[:-1] + '_' if name.endswith('-') else name res = [] for v in get_versions(Requirement(name)): v = str(v) if is_installed('{0}=={1}'.format(name, v)): res.append((v, True)) else: res.append((v, False)) return res
def _install_deps(rs, name=None, updater=None): if not rs: return if args_manager['install']['no_deps']: logger.info('Skipping dependencies for {0}', name) logger.indent = 8 for req in rs: logger.info(req) logger.indent = 0 return logger.info('Installing dependencies...') dep_error = False newly_installed = [] for req in rs: if is_installed(req) and not args_manager['install']['upgrade_all']: logger.indent = 8 logger.info('{0} is already installed, use -A, --upgrade-all to upgrade dependencies', req) continue logger.indent = 0 logger.info('Installing {0} (from {1})', req, rs.comes_from) logger.indent = 8 try: Installer(req).install() newly_installed.append(req) except AlreadyInstalled: continue except InstallationError: dep_error = True logger.error('Error: {0} has not been installed correctly', req) continue logger.indent = 0 if dep_error: if updater: for req in newly_installed: updater.restore_files(req) updater.remove_files(rs.comes_from.name) updater.restore_files(rs.comes_from.name) logger.error("{0}'s dependencies installation failed", rs.comes_from.name, exc=InstallationError) else: logger.success('Finished installing dependencies for {0}', rs.comes_from.name)