fetcher.py : fetcher'in geri dönüş değerleri bir dictionary haline geldi (böyle bir fonkisyon için çok daha mantıklı), semboller (KB/s, MB/s vs) eklendi, bir de artık hatasız dlrate hesaplıyor..
tests/fetch_file : fetcher'ın değişen dönüş değerine göre güncellendi. pisibuild.py : fetcher'ın değişen dönüş değerine göre güncellendi, += fixindentation(pisibuild.py).. pisi-build : pisi-build += fixindentation(pisi-build)
This commit is contained in:
+19
-8
@@ -27,7 +27,7 @@ class Fetcher:
|
||||
self.filepath = ""
|
||||
self.filename = ""
|
||||
self.percent = 0
|
||||
self.rate = 0
|
||||
self.rate = 0.0
|
||||
self.percentHook = None
|
||||
from string import split
|
||||
u = urlparse.urlparse(self.uri)
|
||||
@@ -54,11 +54,13 @@ class Fetcher:
|
||||
return self.filedest + "/" + self.filename
|
||||
|
||||
def doGrab(self, file, dest, totalsize):
|
||||
symbols = [' B/s', 'KB/s', 'MB/s', 'GB/s']
|
||||
from time import time
|
||||
tnow, oldsize = int(time()), 0
|
||||
tt, oldsize = int(time()), 0
|
||||
p = Progress(totalsize)
|
||||
bs, size = 1024*4, 0
|
||||
|
||||
bs, size = 1024, 0
|
||||
symbol, depth = "B/s", 0
|
||||
st = time()
|
||||
chunk = file.read(bs)
|
||||
size = size + len(chunk)
|
||||
self.percent = p.update(size)
|
||||
@@ -66,13 +68,22 @@ class Fetcher:
|
||||
dest.write(chunk)
|
||||
chunk = file.read(bs)
|
||||
size = size + len(chunk)
|
||||
if tnow != int(time()):
|
||||
self.rate = (size - oldsize) / (int(time()) - tnow) / 1024
|
||||
oldsize, tnow = size, int(time())
|
||||
ct = time()
|
||||
if int(tt) != int(ct):
|
||||
self.rate = size / (ct - st)
|
||||
while self.rate > 1000 and depth < 3:
|
||||
self.rate /= 1024
|
||||
depth += 1
|
||||
symbol, depth = symbols[depth], 0
|
||||
oldsize, tt = size, time()
|
||||
if p.update(size):
|
||||
self.percent = p.percent
|
||||
if self.percentHook != None:
|
||||
self.percentHook(self.filename, self.percent, self.rate)
|
||||
retval = {'filename': self.filename,
|
||||
'percent' : self.percent,
|
||||
'rate': self.rate,
|
||||
'symbol': symbol}
|
||||
self.percentHook(retval)
|
||||
|
||||
dest.close()
|
||||
print ""
|
||||
|
||||
+3
-2
@@ -9,8 +9,9 @@ import util
|
||||
from pisibuild import PisiBuild, PisiBuildError
|
||||
|
||||
|
||||
def doProgress(filename, percent, rate):
|
||||
out = '\r%-30.30s %%%3d %d KB/s' % (filename, percent, rate)
|
||||
def doProgress(filename, percent, rate, symbol):
|
||||
out = '\r%-30.30s %3d%% %12.2f %s' % \
|
||||
(pd['filename'], pd['percent'], pd['rate'], pd['symbol'])
|
||||
util.information(out)
|
||||
|
||||
def main():
|
||||
|
||||
@@ -13,8 +13,9 @@ sys.path.append("..")
|
||||
import fetcher
|
||||
import pisiconfig
|
||||
|
||||
def doProgress(filename, percent, rate):
|
||||
out = '\r%-30.30s %%%3d %d KB/s' % (filename, percent, rate)
|
||||
def doProgress(pd):
|
||||
out = '\r%-30.30s %3d%% %12.2f %s' % \
|
||||
(pd['filename'], pd['percent'], pd['rate'], pd['symbol'])
|
||||
stderr.write(out)
|
||||
stderr.flush()
|
||||
|
||||
|
||||
Reference in New Issue
Block a user