def _push_progress_to_output(self): mytxt = _("[F]") eta_txt = _("ETA") sec_txt = _("sec") # as in XX kb/sec current_txt = darkred(" %s: " % (mytxt,)) + \ darkgreen(str(round(float(self.__downloadedsize)/1000, 1))) + "/" \ + red(str(round(self.__remotesize, 1))) + " kB" # create progress bar barsize = 10 bartext = "[" curbarsize = 1 averagesize = (self.__average*barsize)/100 while averagesize > 0: curbarsize += 1 bartext += "=" averagesize -= 1 bartext += ">" diffbarsize = barsize - curbarsize while diffbarsize > 0: bartext += " " diffbarsize -= 1 if self.__show_speed: bartext += "] => %s" % (bytes_into_human(self.__datatransfer),) bartext += "/%s : %s: %s" % (sec_txt, eta_txt, self.__time_remaining,) else: bartext += "]" average = str(self.__average) if len(average) < 2: average = " "+average current_txt += " <-> "+average+"% "+bartext TextInterface.output(current_txt, back = True)
def _update_progress(self, force = False): if self._silent: # stfu ! return upload_percent = 100.0 upload_size = round(self.__filekbcount, 1) if self.__filesize >= 1: kbcount_round = round(self.__filekbcount, 1) upload_percent = round((kbcount_round / self.__filesize) * 100, 1) delta_secs = 0.5 cur_t = time.time() if (cur_t > (self.__oldprogress_t + delta_secs)) or force: upload_percent = str(upload_percent)+"%" # create text mytxt = _("Transfer status") current_txt = brown(" <-> %s: " % (mytxt,)) + \ darkgreen(str(upload_size)) + "/" + \ red(str(self.__filesize)) + " kB " + \ brown("[") + str(upload_percent) + brown("]") + \ " " + self.__time_remaining + " " + \ bytes_into_human(self.__datatransfer) + \ "/" + _("sec") self.output(current_txt, back = True) self.__oldprogress_t = cur_t
def _update_progress(self, force=False): if self._silent: # stfu ! return upload_percent = 100.0 upload_size = round(self.__filekbcount, 1) if self.__filesize >= 1: kbcount_round = round(self.__filekbcount, 1) upload_percent = round((kbcount_round / self.__filesize) * 100, 1) delta_secs = 0.5 cur_t = time.time() if (cur_t > (self.__oldprogress_t + delta_secs)) or force: upload_percent = str(upload_percent) + "%" # create text mytxt = _("Transfer status") current_txt = brown(" <-> %s: " % (mytxt,)) + \ darkgreen(str(upload_size)) + "/" + \ red(str(self.__filesize)) + " kB " + \ brown("[") + str(upload_percent) + brown("]") + \ " " + self.__time_remaining + " " + \ bytes_into_human(self.__datatransfer) + \ "/" + _("sec") self.output(current_txt, back=True) self.__oldprogress_t = cur_t
def _push_progress_to_output(self, force = False): stats = self._compute_progress_stats() downloaded_size = stats["downloaded_size"] total_size = stats["total_size"] time_remaining = stats["time_remaining"] data_transfer = stats["data_transfer"] average = stats["average"] time_remaining_str = stats["time_remaining_str"] self.__data_transfer = data_transfer self.__average = average self.__time_remaining_secs = time_remaining update_time_delta = 0.5 cur_t = time.time() if ((cur_t > (self.__progress_update_t + update_time_delta)) \ or force or (self.__first_refreshes > 0)) and self.__show_progress: self.__first_refreshes -= 1 self.__progress_update_t = cur_t eta_txt = _("ETA") sec_txt = _("sec") # as in XX kb/sec down_size_txt = str(round(float(downloaded_size) / 1000, 1)) total_size_txt = str(round(total_size, 1)) current_txt = darkgreen(down_size_txt) + "/" + red(total_size_txt) current_txt += " kB" # create progress bar barsize = 10 bartext = "[" curbarsize = 1 averagesize = (average*barsize)/100 while averagesize > 0: curbarsize += 1 bartext += "=" averagesize -= 1 bartext += ">" diffbarsize = barsize-curbarsize while diffbarsize > 0: bartext += " " diffbarsize -= 1 if self.__show_speed: bartext += "] => %s" % (bytes_into_human(data_transfer),) bartext += "/%s : %s: %s" % ( sec_txt, eta_txt, time_remaining_str,) else: bartext += "]" myavg = str(average) if len(myavg) < 2: myavg = " "+myavg current_txt += " <-> "+myavg+"% "+bartext+" " TextInterface.output(current_txt, back = True) self.__old_average = average
def _get_api_package_detailed_info(self, entropy_repository, ugc, package_id, repository_id, arch, branch, product): """ Internal method. Return a dict containing all the detailed info of a package. See below. NOTE: can return None! """ base_data = entropy_repository.getBaseData(package_id) if base_data is None: return None atom, name, version, tag, desc, cat, chost, cflags, cxxflags, \ homepage, license, branch, download, digest, slot, api, \ date, size, rev = base_data if size is None: size = "0b" else: size = entropy_tools.bytes_into_human(size) on_disk_size = entropy_repository.retrieveOnDiskSize(package_id) pkg_key = entropy_dep.dep_getkey(atom) t_time = float(date) has_more, docs = ugc.get_ugc_metadata_doctypes(pkg_key, [ugc.DOC_TYPES[x] for x in ugc.DOC_TYPES]) pkg_data = { 'version': version, 'revision': rev, 'homepage': homepage, 'size': size, 'md5': digest, 'api': api, 'date': date, 'download': download, 'cflags': cflags, 'chost': chost, 'cxxflags': cxxflags, 'license': license.split(), 'tag': tag, 'ondisksize': entropy_tools.bytes_into_human(on_disk_size), 'use': sorted(entropy_repository.retrieveUseflags(package_id)), 'date': entropy_tools.convert_unix_time_to_human_time(t_time), 'time': t_time, 'repository_id': repository_id, 'arch': arch, 'product': product, 'package_id': package_id, 'docs': docs, 'has_more_docs': has_more, } for mydoc in pkg_data['docs']: self._expand_ugc_doc_metadata(ugc, mydoc) dependencies = entropy_repository.retrieveDependencies(package_id, extended = True) pkg_data['build_deps'] = sorted([x for x, y in dependencies if y == \ etpConst['dependency_type_ids']['bdepend_id']]) pkg_data['run_deps'] = sorted([x for x, y in dependencies if y == \ etpConst['dependency_type_ids']['rdepend_id']]) pkg_data['post_deps'] = sorted([x for x, y in dependencies if y == \ etpConst['dependency_type_ids']['pdepend_id']]) pkg_data['manual_deps'] = sorted([x for x, y in dependencies if y == \ etpConst['dependency_type_ids']['mdepend_id']]) pkg_data['conflicts'] = sorted( entropy_repository.retrieveConflicts(package_id)) pkg_data['sha1'], pkg_data['sha256'], pkg_data['sha512'], \ pkg_data['gpg'] = entropy_repository.retrieveSignatures( package_id) return pkg_data
def _push_progress_to_output(self, force = False): downloaded_size = 0 total_size = 0 time_remaining = 0 update_step = 0 pd = self.__progress_data.copy() pdlen = len(pd) # calculation for th_id in sorted(pd): data = pd.get(th_id) downloaded_size += data.get('downloaded_size', 0) total_size += data.get('total_size', 0) # data_transfer from Python threading bullshit is not reliable # with multiple threads and causes inaccurate informations to be # printed # data_transfer += data.get('data_transfer', 0) tr = data.get('time_remaining_secs', 0) if tr > 0: time_remaining += tr update_step += data.get('update_step', 0) elapsed_t = time.time() - self.__startup_time if elapsed_t < 0.1: elapsed_t = 0.1 data_transfer = downloaded_size / elapsed_t self.__data_transfer = data_transfer average = 100 # total_size is in kbytes # downloaded_size is in bytes if total_size > 0: average = int(float(downloaded_size/1024)/total_size * 100) self.__average = average if pdlen > 0: update_step = update_step/pdlen else: update_step = 0 time_remaining = convert_seconds_to_fancy_output(time_remaining) self.__time_remaining_sec = time_remaining update_time_delta = 0.5 cur_t = time.time() if ((cur_t > (self.__progress_update_t + update_time_delta)) \ or force or (self.__first_refreshes > 0)) and self.__show_progress: self.__first_refreshes -= 1 self.__progress_update_t = cur_t eta_txt = _("ETA") sec_txt = _("sec") # as in XX kb/sec down_size_txt = str(round(float(downloaded_size)/1024, 1)) total_size_txt = str(round(total_size, 1)) current_txt = darkgreen(down_size_txt) + "/" + red(total_size_txt) current_txt += " kB" # create progress bar barsize = 10 bartext = "[" curbarsize = 1 averagesize = (average*barsize)/100 while averagesize > 0: curbarsize += 1 bartext += "=" averagesize -= 1 bartext += ">" diffbarsize = barsize-curbarsize while diffbarsize > 0: bartext += " " diffbarsize -= 1 if self.__show_speed: bartext += "] => %s" % (bytes_into_human(data_transfer),) bartext += "/%s : %s: %s" % (sec_txt, eta_txt, time_remaining,) else: bartext += "]" myavg = str(average) if len(myavg) < 2: myavg = " "+myavg current_txt += " <-> "+myavg+"% "+bartext+" " TextInterface.output(self, current_txt, back = True) self.__old_average = average