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