convert.py revision 1519
112027Sjungma@eit.uni-kl.de# metric prefixes
212027Sjungma@eit.uni-kl.deexa  = 1.0e18
312027Sjungma@eit.uni-kl.depeta = 1.0e15
412027Sjungma@eit.uni-kl.detera = 1.0e12
512027Sjungma@eit.uni-kl.degiga = 1.0e9
612027Sjungma@eit.uni-kl.demega = 1.0e6
712027Sjungma@eit.uni-kl.dekilo = 1.0e3
812027Sjungma@eit.uni-kl.de
912027Sjungma@eit.uni-kl.demilli = 1.0e-3
1012027Sjungma@eit.uni-kl.demicro = 1.0e-6
1112027Sjungma@eit.uni-kl.denano  = 1.0e-9
1212027Sjungma@eit.uni-kl.depico  = 1.0e-12
1312027Sjungma@eit.uni-kl.defemto = 1.0e-15
1412027Sjungma@eit.uni-kl.deatto  = 1.0e-18
1512027Sjungma@eit.uni-kl.de
1612027Sjungma@eit.uni-kl.de# power of 2 prefixes
1712027Sjungma@eit.uni-kl.dekibi = 1024
1812027Sjungma@eit.uni-kl.demebi = kibi * 1024
1912027Sjungma@eit.uni-kl.degibi = mebi * 1024
2012027Sjungma@eit.uni-kl.detebi = gibi * 1024
2112027Sjungma@eit.uni-kl.depebi = tebi * 1024
2212027Sjungma@eit.uni-kl.deexbi = pebi * 1024
2312027Sjungma@eit.uni-kl.de
2412027Sjungma@eit.uni-kl.de# memory size configuration stuff
2512027Sjungma@eit.uni-kl.dedef to_integer(value):
2612027Sjungma@eit.uni-kl.de    if not isinstance(value, str):
2712027Sjungma@eit.uni-kl.de        result = int(value)
2812027Sjungma@eit.uni-kl.de    elif value.endswith('Ei'):
2912027Sjungma@eit.uni-kl.de        result = int(value[:-2]) * exbi
3012027Sjungma@eit.uni-kl.de    elif value.endswith('Pi'):
3112027Sjungma@eit.uni-kl.de        result = int(value[:-2]) * pebi
3212027Sjungma@eit.uni-kl.de    elif value.endswith('Ti'):
3312027Sjungma@eit.uni-kl.de        result = int(value[:-2]) * tebi
3412027Sjungma@eit.uni-kl.de    elif value.endswith('Gi'):
3512027Sjungma@eit.uni-kl.de        result = int(value[:-2]) * gibi
3612027Sjungma@eit.uni-kl.de    elif value.endswith('Mi'):
3712027Sjungma@eit.uni-kl.de        result = int(value[:-2]) * mebi
3812027Sjungma@eit.uni-kl.de    elif value.endswith('ki'):
3912027Sjungma@eit.uni-kl.de        result = int(value[:-2]) * kibi
4012027Sjungma@eit.uni-kl.de    elif value.endswith('E'):
4112027Sjungma@eit.uni-kl.de        result = int(value[:-1]) * exa
4212027Sjungma@eit.uni-kl.de    elif value.endswith('P'):
4312027Sjungma@eit.uni-kl.de        result = int(value[:-1]) * peta
4412027Sjungma@eit.uni-kl.de    elif value.endswith('T'):
4512027Sjungma@eit.uni-kl.de        result = int(value[:-1]) * tera
4612027Sjungma@eit.uni-kl.de    elif value.endswith('G'):
4712027Sjungma@eit.uni-kl.de        result = int(value[:-1]) * giga
4812027Sjungma@eit.uni-kl.de    elif value.endswith('M'):
4912027Sjungma@eit.uni-kl.de        result = int(value[:-1]) * mega
5012027Sjungma@eit.uni-kl.de    elif value.endswith('k'):
5112027Sjungma@eit.uni-kl.de        result = int(value[:-1]) * kilo
5212027Sjungma@eit.uni-kl.de    elif value.endswith('m'):
5312027Sjungma@eit.uni-kl.de        result = int(value[:-1]) * milli
5412027Sjungma@eit.uni-kl.de    elif value.endswith('u'):
5512027Sjungma@eit.uni-kl.de        result = int(value[:-1]) * micro
5612027Sjungma@eit.uni-kl.de    elif value.endswith('n'):
5712027Sjungma@eit.uni-kl.de        result = int(value[:-1]) * nano
5812027Sjungma@eit.uni-kl.de    elif value.endswith('p'):
5912027Sjungma@eit.uni-kl.de        result = int(value[:-1]) * pico
6012027Sjungma@eit.uni-kl.de    elif value.endswith('f'):
6112027Sjungma@eit.uni-kl.de        result = int(value[:-1]) * femto
6212027Sjungma@eit.uni-kl.de    else:
6312027Sjungma@eit.uni-kl.de        result = int(value)
6412027Sjungma@eit.uni-kl.de
6512027Sjungma@eit.uni-kl.de    return result
6612027Sjungma@eit.uni-kl.de
6712027Sjungma@eit.uni-kl.dedef to_bool(val):
6812027Sjungma@eit.uni-kl.de    t = type(val)
6912027Sjungma@eit.uni-kl.de    if t == bool:
7012027Sjungma@eit.uni-kl.de        return val
7112027Sjungma@eit.uni-kl.de
7212027Sjungma@eit.uni-kl.de    if t == None:
7312027Sjungma@eit.uni-kl.de        return False
7412027Sjungma@eit.uni-kl.de
7512027Sjungma@eit.uni-kl.de    if t == int or t == long:
7612027Sjungma@eit.uni-kl.de        return bool(val)
7712027Sjungma@eit.uni-kl.de
7812027Sjungma@eit.uni-kl.de    if t == str:
7912027Sjungma@eit.uni-kl.de        val = val.lower()
8012027Sjungma@eit.uni-kl.de        if val == "true" or val == "t" or val == "yes" or val == "y":
8112027Sjungma@eit.uni-kl.de            return True
8212027Sjungma@eit.uni-kl.de        elif val == "false" or val == "f" or val == "no" or val == "n":
8312027Sjungma@eit.uni-kl.de            return False
8412027Sjungma@eit.uni-kl.de
8512027Sjungma@eit.uni-kl.de    return to_integer(val) != 0
8612027Sjungma@eit.uni-kl.de
8712027Sjungma@eit.uni-kl.dedef to_frequency(value):
8812027Sjungma@eit.uni-kl.de    if not isinstance(value, str):
8912027Sjungma@eit.uni-kl.de        result = float(value)
9012027Sjungma@eit.uni-kl.de    elif value.endswith('THz'):
9112027Sjungma@eit.uni-kl.de        result = float(value[:-3]) * tera
9212027Sjungma@eit.uni-kl.de    elif value.endswith('GHz'):
9312027Sjungma@eit.uni-kl.de        result = float(value[:-3]) * giga
9412027Sjungma@eit.uni-kl.de    elif value.endswith('MHz'):
9512027Sjungma@eit.uni-kl.de        result = float(value[:-3]) * mega
9612027Sjungma@eit.uni-kl.de    elif value.endswith('kHz'):
9712027Sjungma@eit.uni-kl.de        result = float(value[:-3]) * kilo
9812027Sjungma@eit.uni-kl.de    elif value.endswith('Hz'):
9912027Sjungma@eit.uni-kl.de        result = float(value[:-2])
10012027Sjungma@eit.uni-kl.de    else:
10112027Sjungma@eit.uni-kl.de        result = float(value)
10212027Sjungma@eit.uni-kl.de
10312027Sjungma@eit.uni-kl.de    return result
10412027Sjungma@eit.uni-kl.de
10512027Sjungma@eit.uni-kl.dedef to_latency(value):
10612027Sjungma@eit.uni-kl.de    if not isinstance(value, str):
10712027Sjungma@eit.uni-kl.de        result = float(value)
10812027Sjungma@eit.uni-kl.de    elif value.endswith('c'):
10912027Sjungma@eit.uni-kl.de        result = float(value[:-1])
11012027Sjungma@eit.uni-kl.de    elif value.endswith('ps'):
11112027Sjungma@eit.uni-kl.de        result = float(value[:-2]) * pico
11212027Sjungma@eit.uni-kl.de    elif value.endswith('ns'):
11312027Sjungma@eit.uni-kl.de        result = float(value[:-2]) * nano
11412027Sjungma@eit.uni-kl.de    elif value.endswith('us'):
11512027Sjungma@eit.uni-kl.de        result = float(value[:-2]) * micro
11612027Sjungma@eit.uni-kl.de    elif value.endswith('ms'):
11712027Sjungma@eit.uni-kl.de        result = float(value[:-2]) * milli
11812027Sjungma@eit.uni-kl.de    elif value.endswith('s'):
11912027Sjungma@eit.uni-kl.de        result = float(value[:-1])
12012027Sjungma@eit.uni-kl.de    else:
12112027Sjungma@eit.uni-kl.de        result = float(value)
12212027Sjungma@eit.uni-kl.de
12312027Sjungma@eit.uni-kl.de    return result;
12412027Sjungma@eit.uni-kl.de
12512027Sjungma@eit.uni-kl.dedef to_network_bandwidth(value):
12612027Sjungma@eit.uni-kl.de    if not isinstance(value, str):
12712027Sjungma@eit.uni-kl.de        result = float(value)
12812027Sjungma@eit.uni-kl.de    elif value.endswith('Tbps'):
12912027Sjungma@eit.uni-kl.de        result = float(value[:-3]) * tera
13012027Sjungma@eit.uni-kl.de    elif value.endswith('Gbps'):
13112027Sjungma@eit.uni-kl.de        result = float(value[:-3]) * giga
13212027Sjungma@eit.uni-kl.de    elif value.endswith('Mbps'):
13312027Sjungma@eit.uni-kl.de        result = float(value[:-3]) * mega
13412027Sjungma@eit.uni-kl.de    elif value.endswith('kbps'):
13512027Sjungma@eit.uni-kl.de        result = float(value[:-3]) * kilo
13612027Sjungma@eit.uni-kl.de    elif value.endswith('bps'):
13712027Sjungma@eit.uni-kl.de        result = float(value[:-2])
13812027Sjungma@eit.uni-kl.de    else:
13912027Sjungma@eit.uni-kl.de        result = float(value)
14012027Sjungma@eit.uni-kl.de
14112027Sjungma@eit.uni-kl.de    return result
14212027Sjungma@eit.uni-kl.de
14312027Sjungma@eit.uni-kl.dedef to_memory_bandwidth(value):
14412027Sjungma@eit.uni-kl.de    if not isinstance(value, str):
14512027Sjungma@eit.uni-kl.de        result = int(value)
14612027Sjungma@eit.uni-kl.de    elif value.endswith('PB/s'):
14712027Sjungma@eit.uni-kl.de        result = int(value[:-4]) * pebi
14812027Sjungma@eit.uni-kl.de    elif value.endswith('TB/s'):
14912027Sjungma@eit.uni-kl.de        result = int(value[:-4]) * tebi
15012027Sjungma@eit.uni-kl.de    elif value.endswith('GB/s'):
15112027Sjungma@eit.uni-kl.de        result = int(value[:-4]) * gibi
15212027Sjungma@eit.uni-kl.de    elif value.endswith('MB/s'):
15312027Sjungma@eit.uni-kl.de        result = int(value[:-4]) * mebi
15412027Sjungma@eit.uni-kl.de    elif value.endswith('kB/s'):
15512027Sjungma@eit.uni-kl.de        result = int(value[:-4]) * kibi
15612027Sjungma@eit.uni-kl.de    elif value.endswith('B/s'):
15712027Sjungma@eit.uni-kl.de        result = int(value[:-3])
15812027Sjungma@eit.uni-kl.de    else:
15912027Sjungma@eit.uni-kl.de        result = int(value)
16012027Sjungma@eit.uni-kl.de
16112027Sjungma@eit.uni-kl.de    return result
16212027Sjungma@eit.uni-kl.de
16312027Sjungma@eit.uni-kl.dedef to_memory_size(value):
16412027Sjungma@eit.uni-kl.de    if not isinstance(value, str):
16512027Sjungma@eit.uni-kl.de        result = int(value)
16612027Sjungma@eit.uni-kl.de    elif value.endswith('PB'):
16712027Sjungma@eit.uni-kl.de        result = int(value[:-2]) * pebi
16812027Sjungma@eit.uni-kl.de    elif value.endswith('TB'):
16912027Sjungma@eit.uni-kl.de        result = int(value[:-2]) * tebi
17012027Sjungma@eit.uni-kl.de    elif value.endswith('GB'):
17112027Sjungma@eit.uni-kl.de        result = int(value[:-2]) * gibi
17212027Sjungma@eit.uni-kl.de    elif value.endswith('MB'):
17312027Sjungma@eit.uni-kl.de        result = int(value[:-2]) * mebi
17412027Sjungma@eit.uni-kl.de    elif value.endswith('kB'):
17512027Sjungma@eit.uni-kl.de        result = int(value[:-2]) * kibi
17612027Sjungma@eit.uni-kl.de    elif value.endswith('B'):
17712027Sjungma@eit.uni-kl.de        result = int(value[:-1])
17812027Sjungma@eit.uni-kl.de    else:
17912027Sjungma@eit.uni-kl.de        result = int(value)
18012027Sjungma@eit.uni-kl.de
18112027Sjungma@eit.uni-kl.de    return result
18212027Sjungma@eit.uni-kl.de