def download(self, reference, package_ids, remote=None): """ Download conanfile and specified packages to local repository @param reference: ConanFileReference @param package_ids: Package ids or empty for download all @param remote: install only from that remote """ assert (isinstance(reference, ConanFileReference)) remote_proxy = ConanProxy(self._client_cache, self._user_io, self._remote_manager, remote) package = remote_proxy.search(reference, None) if not package: # Search the reference first, and raise if it doesn't exist raise ConanException("'%s' not found in remote" % str(reference)) if package_ids: remote_proxy.download_packages(reference, package_ids) else: self._user_io.out.info("Getting the complete package list " "from '%s'..." % str(reference)) packages_props = remote_proxy.search_packages(reference, None) if not packages_props: output = ScopedOutput(str(reference), self._user_io.out) output.warn("No remote binary packages found in remote") else: remote_proxy.download_packages(reference, list(packages_props.keys()))
def search(self, pattern=None, remote=None, ignorecase=True, verbose=False, extra_verbose=False, package_pattern=None): """ Print the single information saved in conan.vars about all the packages or the packages which match with a pattern Attributes: pattern = string to match packages remote = search on another origin to get packages info """ if remote: remote_proxy = ConanProxy(self._paths, self._user_io, self._remote_manager, remote) info = remote_proxy.search(pattern, ignorecase) else: info = self.file_manager.search(pattern, ignorecase) filtered_info = info # Filter packages if package_pattern if package_pattern: try: # Prepare ER to be more user natural if ".*" not in package_pattern: package_pattern = package_pattern.replace("*", ".*") # Compile expression package_pattern = re.compile(package_pattern, re.IGNORECASE) filtered_info = SearchInfo() for conan_ref, packages in sorted(info.items()): filtered_packages = { pid: data for pid, data in packages.items() if package_pattern.match(pid) } if filtered_packages: filtered_info[conan_ref] = filtered_packages except Exception: # Invalid pattern raise ConanException("Invalid package pattern") printer = Printer(self._user_io.out) printer.print_search(filtered_info, pattern, verbose, extra_verbose)
def download(self, reference, package_ids, remote=None): """ Download conanfile and specified packages to local repository @param reference: ConanFileReference @param package_ids: Package ids or empty for download all @param remote: install only from that remote """ assert(isinstance(reference, ConanFileReference)) remote_proxy = ConanProxy(self._paths, self._user_io, self._remote_manager, remote) if package_ids: remote_proxy.download_packages(reference, package_ids) else: # Not specified packages, download all info = remote_proxy.search(str(reference), ignorecase=False) if reference not in info: remote = remote or self._remote_manager.default_remote raise ConanException("'%s' not found in remote '%s'" % (str(reference), remote)) remote_proxy.download_packages(reference, list(info[reference].keys()))
def download(self, reference, package_ids, remote=None): """ Download conanfile and specified packages to local repository @param reference: ConanFileReference @param package_ids: Package ids or empty for download all @param remote: install only from that remote """ assert(isinstance(reference, ConanFileReference)) remote_proxy = ConanProxy(self._paths, self._user_io, self._remote_manager, remote) if package_ids: remote_proxy.download_packages(reference, package_ids) else: # Not specified packages, download all info = remote_proxy.search(str(reference), ignorecase=False) if reference not in info: remote = remote or self._remote_manager.default_remote raise ConanException("'%s' not found in remote '%s'" % (str(reference), remote)) remote_proxy.download_packages(reference, list(info[reference].keys()))
def download(self, reference, package_ids, remote=None): """ Download conanfile and specified packages to local repository @param reference: ConanFileReference @param package_ids: Package ids or empty for download all @param remote: install only from that remote """ assert(isinstance(reference, ConanFileReference)) remote_proxy = ConanProxy(self._client_cache, self._user_io, self._remote_manager, remote) package = remote_proxy.search(reference, None) if not package: # Search the reference first, and raise if it doesn't exist raise ConanException("'%s' not found in remote" % str(reference)) if package_ids: remote_proxy.download_packages(reference, package_ids) else: packages_props = remote_proxy.search_packages(reference, None) if not packages_props: output = ScopedOutput(str(reference), self._user_io.out) output.warn("No remote binary packages found in remote") else: remote_proxy.download_packages(reference, list(packages_props.keys()))
def search(self, pattern=None, remote=None, ignorecase=True, verbose=False, extra_verbose=False, package_pattern=None): """ Print the single information saved in conan.vars about all the packages or the packages which match with a pattern Attributes: pattern = string to match packages remote = search on another origin to get packages info """ if remote: remote_proxy = ConanProxy(self._paths, self._user_io, self._remote_manager, remote) info = remote_proxy.search(pattern, ignorecase) else: info = self.file_manager.search(pattern, ignorecase) filtered_info = info # Filter packages if package_pattern if package_pattern: try: # Prepare ER to be more user natural if ".*" not in package_pattern: package_pattern = package_pattern.replace("*", ".*") # Compile expression package_pattern = re.compile(package_pattern, re.IGNORECASE) filtered_info = SearchInfo() for conan_ref, packages in sorted(info.items()): filtered_packages = {pid: data for pid, data in packages.items() if package_pattern.match(pid)} if filtered_packages: filtered_info[conan_ref] = filtered_packages except Exception: # Invalid pattern raise ConanException("Invalid package pattern") printer = Printer(self._user_io.out) printer.print_search(filtered_info, pattern, verbose, extra_verbose)