Esempio n. 1
0
 def compute_state(self, disk):
     cur_time = time()
     counters = None
     if len(disk) == 0:
         counters = psutil.disk_io_counters()
     else:
         counters = psutil.disk_io_counters(perdisk=True)
     if self.prev_counters is None:
         self.prev_counters = counters
         self.prev_time = cur_time
         return None
     data = {}
     if len(disk) == 0:
         data["read_speed"] = humanize_bytes(
             (counters.read_bytes - self.prev_counters.read_bytes) /
             (cur_time - self.prev_time))
         data["write_speed"] = humanize_bytes(
             (counters.write_bytes - self.prev_counters.write_bytes) /
             (cur_time - self.prev_time))
     else:
         if disk in counters.keys() and disk in self.prev_counters.keys():
             data["read_speed"] = humanize_bytes(
                 (counters[disk].read_bytes -
                  self.prev_counters[disk].read_bytes) /
                 (cur_time - self.prev_time))
             data["write_speed"] = humanize_bytes(
                 (counters[disk].write_bytes -
                  self.prev_counters[disk].write_bytes) /
                 (cur_time - self.prev_time))
     self.prev_counters = counters
     self.prev_time = cur_time
     return data
Esempio n. 2
0
	def test_humanize_bytes(self):
		self.assertEqual(humanize_bytes(0), '0 B')
		self.assertEqual(humanize_bytes(1), '1 B')
		self.assertEqual(humanize_bytes(1, suffix='bit'), '1 bit')
		self.assertEqual(humanize_bytes(1000, si_prefix=True), '1 kB')
		self.assertEqual(humanize_bytes(1024, si_prefix=True), '1 kB')
		self.assertEqual(humanize_bytes(1000000000, si_prefix=True), '1.00 GB')
		self.assertEqual(humanize_bytes(1000000000, si_prefix=False), '953.7 MiB')
Esempio n. 3
0
	def test_humanize_bytes(self):
		self.assertEqual(humanize_bytes(0), '0 B')
		self.assertEqual(humanize_bytes(1), '1 B')
		self.assertEqual(humanize_bytes(1, suffix='bit'), '1 bit')
		self.assertEqual(humanize_bytes(1000, si_prefix=True), '1 kB')
		self.assertEqual(humanize_bytes(1024, si_prefix=True), '1 kB')
		self.assertEqual(humanize_bytes(1000000000, si_prefix=True), '1.00 GB')
		self.assertEqual(humanize_bytes(1000000000, si_prefix=False), '953.7 MiB')
Esempio n. 4
0
 def test_humanize_bytes(self):
     self.assertEqual(humanize_bytes(0), "0 B")
     self.assertEqual(humanize_bytes(1), "1 B")
     self.assertEqual(humanize_bytes(1, suffix="bit"), "1 bit")
     self.assertEqual(humanize_bytes(1000, si_prefix=True), "1 kB")
     self.assertEqual(humanize_bytes(1024, si_prefix=True), "1 kB")
     self.assertEqual(humanize_bytes(1000000000, si_prefix=True), "1.00 GB")
     self.assertEqual(humanize_bytes(1000000000, si_prefix=False), "953.7 MiB")
Esempio n. 5
0
def file_size(pl, suffix='B', si_prefix=False):
	'''Return file size in &encoding.

	:param str suffix:
		string appended to the file size
	:param bool si_prefix:
		use SI prefix, e.g. MB instead of MiB
	:return: file size or None if the file isn't saved or if the size is too big to fit in a number
	'''
	# Note: returns file size in &encoding, not in &fileencoding. But returned 
	# size is updated immediately; and it is valid for any buffer
	file_size = vim_funcs['line2byte'](len(vim.current.buffer) + 1) - 1
	return humanize_bytes(file_size, suffix, si_prefix)
Esempio n. 6
0
def file_size(pl, suffix='B', si_prefix=False):
    '''Return file size in &encoding.

	:param str suffix:
		string appended to the file size
	:param bool si_prefix:
		use SI prefix, e.g. MB instead of MiB
	:return: file size or None if the file isn't saved or if the size is too big to fit in a number
	'''
    # Note: returns file size in &encoding, not in &fileencoding. But returned
    # size is updated immediately; and it is valid for any buffer
    file_size = vim_funcs['line2byte'](len(vim.current.buffer) + 1) - 1
    return humanize_bytes(file_size, suffix, si_prefix)
Esempio n. 7
0
    def render_one(self,
                   idata,
                   recv_format='⬇ {value:>8}',
                   sent_format='⬆ {value:>8}',
                   suffix='B/s',
                   si_prefix=False,
                   **kwargs):
        if not idata or 'prev' not in idata:
            return None

        t1, b1 = idata['prev']
        t2, b2 = idata['last']
        measure_interval = t2 - t1

        if None in (b1, b2):
            return None

        r = []
        for i, key in zip((0, 1), ('recv', 'sent')):
            format = locals()[key + '_format']
            try:
                value = (b2[i] - b1[i]) / measure_interval
            except ZeroDivisionError:
                self.warn('Measure interval zero.')
                value = 0
            max_key = key + '_max'
            is_gradient = max_key in kwargs
            hl_groups = ['network_load_' + key, 'network_load']
            if is_gradient:
                hl_groups[:0] = (group + '_gradient' for group in hl_groups)
            r.append({
                'contents':
                format.format(value=humanize_bytes(value, suffix, si_prefix)),
                'divider_highlight_group':
                'background:divider',
                'highlight_group':
                hl_groups,
            })
            if is_gradient:
                max = kwargs[max_key]
                if value >= max:
                    r[-1]['gradient_level'] = 100
                else:
                    r[-1]['gradient_level'] = value * 100.0 / max

        return r
Esempio n. 8
0
    def render_one(
        self, idata, recv_format="⬇ {value:>8}", sent_format="⬆ {value:>8}", suffix="B/s", si_prefix=False, **kwargs
    ):
        if not idata or "prev" not in idata:
            return None

        t1, b1 = idata["prev"]
        t2, b2 = idata["last"]
        measure_interval = t2 - t1

        if None in (b1, b2):
            return None

        r = []
        for i, key in zip((0, 1), ("recv", "sent")):
            format = locals()[key + "_format"]
            try:
                value = (b2[i] - b1[i]) / measure_interval
            except ZeroDivisionError:
                self.warn("Measure interval zero.")
                value = 0
            max_key = key + "_max"
            is_gradient = max_key in kwargs
            hl_groups = ["network_load_" + key, "network_load"]
            if is_gradient:
                hl_groups[:0] = (group + "_gradient" for group in hl_groups)
            r.append(
                {
                    "contents": format.format(value=humanize_bytes(value, suffix, si_prefix)),
                    "divider_highlight_group": "background:divider",
                    "highlight_group": hl_groups,
                }
            )
            if is_gradient:
                max = kwargs[max_key]
                if value >= max:
                    r[-1]["gradient_level"] = 100
                else:
                    r[-1]["gradient_level"] = value * 100.0 / max

        return r
Esempio n. 9
0
	def render_one(self, idata, recv_format='⬇ {value:>8}', sent_format='⬆ {value:>8}', suffix='B/s', si_prefix=False, **kwargs):
		if not idata or 'prev' not in idata:
			return None

		t1, b1 = idata['prev']
		t2, b2 = idata['last']
		measure_interval = t2 - t1

		if None in (b1, b2):
			return None

		r = []
		for i, key in zip((0, 1), ('recv', 'sent')):
			format = locals()[key + '_format']
			try:
				value = (b2[i] - b1[i]) / measure_interval
			except ZeroDivisionError:
				self.warn('Measure interval zero.')
				value = 0
			max_key = key + '_max'
			is_gradient = max_key in kwargs
			hl_groups = ['network_load_' + key, 'network_load']
			if is_gradient:
				hl_groups[:0] = (group + '_gradient' for group in hl_groups)
			r.append({
				'contents': format.format(value=humanize_bytes(value, suffix, si_prefix)),
				'divider_highlight_group': 'background:divider',
				'highlight_group': hl_groups,
			})
			if is_gradient:
				max = kwargs[max_key]
				if value >= max:
					r[-1]['gradient_level'] = 100
				else:
					r[-1]['gradient_level'] = value * 100.0 / max

		return r