more python3

This commit is contained in:
Ville Rantanen
2020-10-12 11:41:17 +03:00
parent 52db6b9bf4
commit dfd5111bea
3 changed files with 220 additions and 171 deletions

View File

@@ -41,9 +41,9 @@ def get_files_size(path):
def get_numerical(num_string):
num_string = num_string.lower()
numerical_part = ''
numerical_part = ""
last_digit = 0
for i,c in enumerate(num_string):
for i, c in enumerate(num_string):
if is_digit(c):
last_digit = i + 1
numerical_part = num_string[0:last_digit]
@@ -56,18 +56,23 @@ def get_numerical(num_string):
def parse_options():
parser = argparse.ArgumentParser(
description = 'Transfer time calculator',
epilog = "You may omit the 'b' to time events. ex. '20 minutes / task, 7 tasks to do': %(prog)s 3/h 7"
description="Transfer time calculator",
epilog="You may omit the 'b' to time events. ex. '20 minutes / task, 7 tasks to do': %(prog)s 3/h 7",
)
parser.add_argument(
'-r',
dest = 'rate',
help = "Rate: inverse of speed. Instead of 10b/s, write 0.1s/b",
action = "store_true",
default = False
"-r",
dest="rate",
help="Rate: inverse of speed. Instead of 10b/s, write 0.1s/b",
action="store_true",
default=False,
)
parser.add_argument(
"speed", help="Speed of transfer (ex. 3.2Mb/s). Time units: s, m, h, d, w"
)
parser.add_argument(
"size",
help="Data size (ex. 4.55GB), or folder/file path. Units: b, kb, mb, gb, tb, pb or kib, mib ... ",
)
parser.add_argument('speed', help = "Speed of transfer (ex. 3.2Mb/s). Time units: s, m, h, d, w")
parser.add_argument('size', help = "Data size (ex. 4.55GB), or folder/file path. Units: b, kb, mb, gb, tb, pb or kib, mib ... ")
return parser.parse_args()
@@ -86,7 +91,7 @@ def parse_rate(rate_string):
numerical_part = float(numerical_part)
multiplier = divisor_string[last_digit:]
divider = parse_size("1"+divider_string)
divider = parse_size("1" + divider_string)
if divider == None:
# Cannot parse
return divider
@@ -113,30 +118,30 @@ def parse_size(size_string):
numerical_part = float(numerical_part)
multiplier_part = size_string[last_digit:]
if multiplier_part in ("b", ""):
if multiplier_part in ("b", ""):
return numerical_part
if multiplier_part == "kb":
return 1024 * numerical_part
if multiplier_part == "mb":
return 1024**2 * numerical_part
return 1024 ** 2 * numerical_part
if multiplier_part == "gb":
return 1024**3 * numerical_part
return 1024 ** 3 * numerical_part
if multiplier_part == "tb":
return 1024**4 * numerical_part
return 1024 ** 4 * numerical_part
if multiplier_part == "pb":
return 1024**5 * numerical_part
return 1024 ** 5 * numerical_part
if multiplier_part == "kib":
return 1000 * numerical_part
if multiplier_part == "mib":
return 1000**2 * numerical_part
return 1000 ** 2 * numerical_part
if multiplier_part == "gib":
return 1000**3 * numerical_part
return 1000 ** 3 * numerical_part
if multiplier_part == "tib":
return 1000**4 * numerical_part
return 1000 ** 4 * numerical_part
if multiplier_part == "pib":
return 1000**5 * numerical_part
return 1000 ** 5 * numerical_part
return None
@@ -167,12 +172,12 @@ def parse_speed(speed_string):
def print_err(s):
sys.stderr.write(str(s)+"\n")
sys.stderr.write(str(s) + "\n")
sys.stderr.flush()
def time_human(num):
return str(datetime.timedelta(seconds = num))
return str(datetime.timedelta(seconds=num))
if __name__ == "__main__":
@@ -182,13 +187,13 @@ if __name__ == "__main__":
speed = parse_rate(opts.speed.lower())
if speed == None:
print_err("Cannot parse rate ( ex. 3.5s/kb )")
print_err("Rate: %s"%( opts.speed, ))
print_err("Rate: %s" % (opts.speed,))
sys.exit(1)
else:
speed = parse_speed(opts.speed.lower())
if speed == None:
print_err("Cannot parse speed ( ex. 3.5Mb/s )")
print_err("Speed: %s"%( opts.speed, ))
print_err("Speed: %s" % (opts.speed,))
sys.exit(1)
if os.path.isfile(opts.size):
@@ -197,11 +202,10 @@ if __name__ == "__main__":
size = parse_size(opts.size.lower())
if size == None:
print_err("Cannot parse size, and it's not a path either ( ex. 11Gb / file.name )")
print_err("Size: %s"%( opts.size, ))
print_err(
"Cannot parse size, and it's not a path either ( ex. 11Gb / file.name )"
)
print_err("Size: %s" % (opts.size,))
sys.exit(1)
print(time_human(round(size/speed)))
print(time_human(round(size / speed)))