def _parse(self, lines): cpu = Bunch(zip(["user", "nice", "system", "idle", "iowait", "irq", "softirq", "steal", "guest", "guest_nice"], map(int, lines[0].split(' ')[2:]))) cpu.total = cpu.user + cpu.nice + cpu.system + cpu.idle + cpu.iowait + cpu.irq + cpu.softirq + cpu.steal + cpu.guest + cpu.guest_nice cpu.active = cpu.total - (cpu.idle + cpu.iowait) mem = Bunch(zip(["total", "free", "buffers", "cache"], [int(line.split(' ')[-2]) for line in lines[1:5]])) mem.used = mem.total - mem.free - mem.buffers - mem.cache bat = Bunch(percent = int(lines[5]) / 100.0) processes = {} for line in lines[6:]: cols = line.split(' ') pid, user, system = map(int, [cols[0], cols[13], cols[14]]) processes[pid] = Bunch(cpu = Bunch(user = user, system = system)) return Bunch(cpu = cpu, mem = mem, bat = bat, processes = processes)