Files
sablink-distro/sys-apps/entropy/files/entropy-fetchers-zero-div.patch
T
2010-02-26 20:20:56 +01:00

64 lines
2.7 KiB
Diff

diff --git a/libraries/entropy/fetchers.py b/libraries/entropy/fetchers.py
index 3511762..8e53488 100644
--- a/libraries/entropy/fetchers.py
+++ b/libraries/entropy/fetchers.py
@@ -352,38 +352,35 @@ class UrlFetcher:
x_delta = self.__downloadedsize - self.__startingposition
x_delta_now = self.__downloadedsize - self.__last_downloadedsize
- f = self.__elapsed
+ el_factor = self.__elapsed
if self.__elapsed > 1:
- f = 1
+ el_factor = 1
- self.__datatransfer = 0.5 * self.__datatransfer + \
- 0.5 * ( \
- f * x_delta / self.__elapsed + \
- (1-f) * x_delta_now / last_elapsed \
- )
+ if (last_elapsed > 0) and (self.__elapsed > 0):
+ self.__datatransfer = 0.5 * self.__datatransfer + \
+ 0.5 * (el_factor * x_delta / self.__elapsed + \
+ (1-el_factor) * x_delta_now / last_elapsed)
+ else:
+ self.__datatransfer = 0.0
self.__last_update_time = cur_time
self.__last_downloadedsize = self.__downloadedsize
if self.__datatransfer < 0:
- self.__datatransfer = 0
- try:
- rounded_remote = int(round(self.__remotesize*1024, 0))
- rounded_downloaded = int(round(self.__downloadedsize, 0))
- x_delta = rounded_remote - rounded_downloaded
- tx_round = 0
- if self.__datatransfer > 0:
- tx_round = int(round(x_delta/self.__datatransfer, 0))
- self.__time_remaining_secs = tx_round
-
- if tx_round < 0:
- self.__time_remaining = "(%s)" % (_("infinite"),)
- else:
- self.__time_remaining = \
- convert_seconds_to_fancy_output(self.__time_remaining_secs)
+ self.__datatransfer = 0.0
- except (ValueError, TypeError,):
+ rounded_remote = int(round(self.__remotesize*1024, 0))
+ rounded_downloaded = int(round(self.__downloadedsize, 0))
+ x_delta = rounded_remote - rounded_downloaded
+ if self.__datatransfer > 0:
+ tx_round = round(x_delta/self.__datatransfer, 0)
+ self.__time_remaining_secs = int(tx_round)
+
+ if self.__time_remaining_secs < 0:
self.__time_remaining = "(%s)" % (_("infinite"),)
+ else:
+ self.__time_remaining = \
+ convert_seconds_to_fancy_output(self.__time_remaining_secs)
def get_transfer_rate(self):
return self.__datatransfer