Kaydet (Commit) e54fe0dd authored tarafından Barış Metin's avatar Barış Metin

fetcher'dan progress'i kaldır. progress göstermek ui'nin işi.

Burada bir-iki düzenleme daha gerekebilir...
üst a8d75c75
......@@ -19,11 +19,6 @@ class FetchError (Exception):
pass
# helper functions
def displayProgress(pd):
out = '\r%-30.30s %3d%% %12.2f %s' % \
(pd['filename'], pd['percent'], pd['rate'], pd['symbol'])
ui.info(out)
def fetchUrl(url, dest, percentHook=None):
fetch = Fetcher(url, dest)
fetch.percentHook = percentHook
......@@ -66,7 +61,7 @@ class Fetcher:
symbols = [' B/s', 'KB/s', 'MB/s', 'GB/s']
from time import time
tt, oldsize = int(time()), 0
p = Progress(totalsize)
p = ui.Progress(totalsize)
bs, size = 1024, 0
symbol, depth = "B/s", 0
st = time()
......@@ -87,7 +82,7 @@ class Fetcher:
oldsize, tt = size, time()
if p.update(size):
self.percent = p.percent
if self.percentHook != None:
if self.percentHook:
retval = {'filename': self.url.filename(),
'percent' : self.percent,
'rate': self.rate,
......@@ -141,18 +136,3 @@ class Fetcher:
def err (self, error):
raise FetchError(error)
class Progress:
def __init__(self, totalsize):
self.totalsize = totalsize
self.percent = 0
def update(self, size):
if not self.totalsize:
return 100
percent = (size * 100) / self.totalsize
if percent and self.percent is not percent:
self.percent = percent
return percent
else:
return 0
......@@ -25,9 +25,9 @@ class Index(XmlFile):
url = PUrl(filename)
if url.isRemoteFile():
from os import getcwd
from fetcher import fetchUrl, displayProgress
from fetcher import fetchUrl
# TODO: index dosyasını indirmek için bir yer bulmak lazım.
fetchUrl(url, getcwd(), displayProgress)
fetchUrl(url, getcwd(), ui.displayProgress)
self.filename = url.filename()
self.readxml(self.filename)
......
......@@ -16,10 +16,11 @@ class Package:
if url.isRemoteFile():
from os import getcwd
from fetcher import fetchUrl, displayProgress
from fetcher import fetchUrl
from ui import ui
# TODO: belki Constants.packages_dir() gibi bir yere
# indirmek daha iyi olur.
fetchUrl(url, getcwd(), displayProgress)
fetchUrl(url, getcwd(), ui.displayProgress)
self.filename = url.filename()
self.impl = archive.ArchiveZip(self.filename, 'zip', mode)
......
......@@ -16,7 +16,8 @@ from config import config
from bsddb import db
class PackageDB(object):
"""PackageDB class provides an interface to the package database with
a delegated dbshelve object"""
def __init__(self):
util.check_dir(config.db_dir())
filename = os.path.join(config.db_dir(), 'package.bdb')
......
......@@ -12,7 +12,7 @@ from archive import Archive
from purl import PUrl
from ui import ui
from config import config
from fetcher import fetchUrl, displayProgress
from fetcher import fetchUrl
import util
......@@ -31,7 +31,7 @@ class SourceArchive:
def fetch(self, interactive=True):
if not self.isCached(interactive):
if interactive:
self.showProgress = displayProgress
self.showProgress = ui.displayProgress
fetchUrl(self.url, config.archives_dir(), self.showProgress)
def isCached(self, interactive=True):
......
......@@ -14,13 +14,6 @@ class CLI:
def __init__(self, debuggy = True):
self.showDebug = debuggy
class Progress:
def __init__(self, name, symbol):
self.name = name
self.percent = 0
self.rate = 0
self.symbol = symbol
def info(self, msg):
sys.stdout.write(colorize(msg, 'blue'))
sys.stdout.flush()
......@@ -34,18 +27,25 @@ class CLI:
sys.stdout.write(colorize(msg, 'red'))
sys.stdout.flush()
def startProgress(self, name, symbol):
## support one progress for now
self.activeProgress = Progress(name, symbol)
def updateProgress(self, percent, rate):
self.activeProgress.percent = percent
self.activeProgress.rate = rate
self.displayProgress(pd)
def displayProgress(pd):
class Progress:
def __init__(self, totalsize):
self.totalsize = totalsize
self.percent = 0
def update(self, size):
if not self.totalsize:
return 100
percent = (size * 100) / self.totalsize
if percent and self.percent is not percent:
self.percent = percent
return percent
else:
return 0
def displayProgress(self, pd):
out = '\r%-30.30s %3d%% %12.2f %s' % \
(self.name, self.percent, self.rate, self.symbol)
(pd['filename'], pd['percent'], pd['rate'], pd['symbol'])
self.info(out)
# default UI is CLI
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment