def install(self, name, requirements=None, with_packages=None, without_packages=None, skip_default_package=False, trigger_event=True, silent=False, force=False, **_): # pylint: disable=too-many-arguments, arguments-differ platform_dir = BasePkgManager.install( self, name, requirements, silent=silent, force=force) p = PlatformFactory.newPlatform(platform_dir) # @Hook: when 'update' operation (trigger_event is False), # don't cleanup packages or install them if not trigger_event: return True p.install_packages( with_packages, without_packages, skip_default_package, silent=silent, force=force) self.cleanup_packages(p.packages.keys()) return True
def install(self, name, requirements=None, with_packages=None, without_packages=None, skip_default_package=False, after_update=False, silent=False, force=False, **_): # pylint: disable=too-many-arguments, arguments-differ platform_dir = BasePkgManager.install(self, name, requirements, silent=silent, force=force) p = PlatformFactory.newPlatform(platform_dir) # don't cleanup packages or install them after update # we check packages for updates in def update() if after_update: return True p.install_packages(with_packages, without_packages, skip_default_package, silent=silent, force=force) return self.cleanup_packages(list(p.packages))
def install( # pylint: disable=arguments-differ self, name, requirements=None, silent=False, trigger_event=True, interactive=False): pkg_dir = None try: _name, _requirements, _url = self.parse_pkg_input( name, requirements) if not _url: name = "id=%d" % self.get_pkg_id_by_name( _name, _requirements, silent=silent, interactive=interactive) requirements = _requirements pkg_dir = BasePkgManager.install(self, name, requirements, silent, trigger_event) except exception.InternetIsOffline as e: if not silent: click.secho(str(e), fg="yellow") return if not pkg_dir: return manifest = self.load_manifest(pkg_dir) if "dependencies" not in manifest: return pkg_dir if not silent: click.secho("Installing dependencies", fg="yellow") for filters in self.normalize_dependencies(manifest['dependencies']): assert "name" in filters if any([s in filters.get("version", "") for s in ("\\", "/")]): self.install("{name}={version}".format(**filters)) else: try: lib_info = self.search_for_library(filters, silent, interactive) except exception.LibNotFound as e: if not silent: click.secho("Warning! %s" % e, fg="yellow") continue if filters.get("version"): self.install( lib_info['id'], requirements=filters.get("version"), silent=silent, trigger_event=trigger_event) else: self.install( lib_info['id'], silent=silent, trigger_event=trigger_event) return pkg_dir
def install(self, # pylint: disable=too-many-arguments name, requirements=None, with_packages=None, without_packages=None, skip_default_package=False, **_): platform_dir = BasePkgManager.install(self, name, requirements) p = PlatformFactory.newPlatform(self.get_manifest_path(platform_dir)) p.install_packages(with_packages, without_packages, skip_default_package) self.cleanup_packages(p.packages.keys()) return True
def install( self, # pylint: disable=too-many-arguments name, requirements=None, silent=False, trigger_event=True, interactive=False): _name, _requirements, _url = self.parse_pkg_name(name, requirements) if not _url: _name = "id=%d" % self._get_pkg_id_by_name( _name, _requirements, silent=silent, interactive=interactive) already_installed = self.get_package(_name, _requirements, _url) pkg_dir = BasePkgManager.install(self, _name if not _url else name, _requirements, silent, trigger_event) if already_installed: return manifest = self.load_manifest(pkg_dir) if "dependencies" not in manifest: return pkg_dir if not silent: click.secho("Installing dependencies", fg="yellow") for filters in self.normalize_dependencies(manifest['dependencies']): assert "name" in filters if any([s in filters.get("version", "") for s in ("\\", "/")]): self.install("{name}={version}".format(**filters)) else: lib_info = self.search_for_library(filters, silent, interactive) if filters.get("version"): self.install(lib_info['id'], requirements=filters.get("version"), silent=silent, trigger_event=trigger_event) else: self.install(lib_info['id'], silent=silent, trigger_event=trigger_event) return pkg_dir
def install( # pylint: disable=arguments-differ self, name, requirements=None, silent=False, trigger_event=True, interactive=False, force=False): _name, _requirements, _url = self.parse_pkg_uri(name, requirements) if not _url: name = "id=%d" % self.search_lib_id( { "name": _name, "requirements": _requirements }, silent=silent, interactive=interactive) requirements = _requirements pkg_dir = BasePkgManager.install(self, name, requirements, silent=silent, trigger_event=trigger_event, force=force) if not pkg_dir: return None manifest = self.load_manifest(pkg_dir) if "dependencies" not in manifest: return pkg_dir if not silent: click.secho("Installing dependencies", fg="yellow") for filters in self.normalize_dependencies(manifest['dependencies']): assert "name" in filters if any([s in filters.get("version", "") for s in ("\\", "/")]): self.install("{name}={version}".format(**filters), silent=silent, trigger_event=trigger_event, interactive=interactive, force=force) else: try: lib_id = self.search_lib_id(filters, silent, interactive) except exception.LibNotFound as e: if not silent or is_builtin_lib(filters['name']): click.secho("Warning! %s" % e, fg="yellow") continue if filters.get("version"): self.install(lib_id, filters.get("version"), silent=silent, trigger_event=trigger_event, interactive=interactive, force=force) else: self.install(lib_id, silent=silent, trigger_event=trigger_event, interactive=interactive, force=force) return pkg_dir
def install( # pylint: disable=arguments-differ self, name, requirements=None, silent=False, after_update=False, interactive=False, force=False, ): _name, _requirements, _url = self.parse_pkg_uri(name, requirements) if not _url: name = "id=%d" % self.search_lib_id( { "name": _name, "requirements": _requirements }, silent=silent, interactive=interactive, ) requirements = _requirements pkg_dir = BasePkgManager.install( self, name, requirements, silent=silent, after_update=after_update, force=force, ) if not pkg_dir: return None manifest = None try: manifest = ManifestParserFactory.new_from_dir(pkg_dir).as_dict() except ManifestException: pass if not manifest or not manifest.get("dependencies"): return pkg_dir if not silent: click.secho("Installing dependencies", fg="yellow") builtin_lib_storages = None for filters in manifest["dependencies"]: assert "name" in filters # avoid circle dependencies if not self.INSTALL_HISTORY: self.INSTALL_HISTORY = [] history_key = str(filters) if history_key in self.INSTALL_HISTORY: continue self.INSTALL_HISTORY.append(history_key) if any(s in filters.get("version", "") for s in ("\\", "/")): self.install( "{name}={version}".format(**filters), silent=silent, after_update=after_update, interactive=interactive, force=force, ) else: try: lib_id = self.search_lib_id(filters, silent, interactive) except exception.LibNotFound as e: if builtin_lib_storages is None: builtin_lib_storages = get_builtin_libs() if not silent or is_builtin_lib(builtin_lib_storages, filters["name"]): click.secho("Warning! %s" % e, fg="yellow") continue if filters.get("version"): self.install( lib_id, filters.get("version"), silent=silent, after_update=after_update, interactive=interactive, force=force, ) else: self.install( lib_id, silent=silent, after_update=after_update, interactive=interactive, force=force, ) return pkg_dir