+
+ # helper functions for progress
+ def fromBytesToMB(numBytes, decimalPlaces=2):
+ return round(int(numBytes)/1000000, decimalPlaces)
+
+ def getDownloadSpeed(lastSize, currentSize, timeTaken, decimalPlaces=2):
+ # sizes are in mb and timeTaken in seconds
+ speedUnit = "mbps"
+ sizeDifference = currentSize-lastSize
+
+ if sizeDifference < 1:
+ # sizeDifference is less than 1 mb
+ # convert sizeDifference to kb and speedUnit to kbps,
+ # for better readability
+ sizeDifference*=1000
+ speedUnit = "kbps"
+
+ # sizeDifference mb(or kb) was downloaded in timeTaken seconds
+ # so downloadSpeed = sizeDifference/timeTaken mbps(or kbps)
+ return (round(sizeDifference/timeTaken, decimalPlaces), speedUnit)