-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathDataConverter.py
More file actions
69 lines (64 loc) · 2 KB
/
Copy pathDataConverter.py
File metadata and controls
69 lines (64 loc) · 2 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
def convert(**kwrg):
max_len = 3
convert_to = "KB"
mode = "Bits"
if 'max_len' in kwrg :
max_len = kwrg['max_len']
convert_to = None
if 'mode' in kwrg :
print(True)
mode = kwrg["mode"]
elif 'convert_to' in kwrg :
convert_to = kwrg['convert_to']
max_len = None
else:
max_len = 3
mode = kwrg["mode"]
convert_to = None
by_modes = ['B' ,'KB' ,'MB' ,'GB' ,'TB' ,'PB' ,'EB']
bi_modes = ['b' ,'kb' ,'mb' ,'gb' ,'tb' ,'pb' ,'eb']
size,d_mode = kwrg['size'].split()
d_mode = d_mode.strip()
size = float(size)
#Convert to INPUT size bits
if d_mode in by_modes:
input_type = 'byte'
for i in range(by_modes.index(d_mode)):
size *= 1024
size *= 8
elif d_mode in bi_modes:
input_type = 'bit'
for i in range(bi_modes.index(d_mode)):
size *= 1024
if convert_to != None:
conv = kwrg['convert_to'].strip()
if conv in by_modes:
size /= 8
i = 0
while conv != by_modes[i] :
size /= 1024
i +=1
return str(round(size,4)) + " " + by_modes[i]
elif conv in bi_modes :
i = 0
while conv != bi_modes[i] :
size /= 1024
i +=1
return str(round(size,4)) + " " + bi_modes[i]
else:
if mode == "Bits":
input_type = 'bit'
elif mode == "Bytes":
input_type = 'byte'
i = 0
if input_type == 'byte' :
size /= 8
while max_len < len(str(int(size))) and (i+1)<len(bi_modes) :
size /= 1024
i+= 1
return str(round(size,4)) + " " + by_modes[i]
elif input_type == 'bit' :
while max_len < len(str(int(size))) and (i+1)<len(bi_modes) :
size /= 1024
i+= 1
return str(round(size,4)) + " " + bi_modes[i]