예제 #1
0
def test_format_floats():
    assert format_size(1.0) == '1 B'
    assert format_size(10.0) == '10 B'
    assert format_size(512.0) == '512 B'
    assert format_size(1023.0) == '1023 B'
    assert format_size(1024.0) == '1 KB'
    assert format_size(1024.0**2) == '1 MB'
    assert format_size(1024.0**3) == '1 GB'
예제 #2
0
def test_format_ints():
    assert format_size(1) == '1 B'
    assert format_size(10) == '10 B'
    assert format_size(512) == '512 B'
    assert format_size(1023) == '1023 B'
    assert format_size(1024) == '1 KB'
    assert format_size(1024**2) == '1 MB'
    assert format_size(1024**3) == '1 GB'
예제 #3
0
 def update(self, state):
     if state.board_info:
         self.board_label.set_text('{} ({})'.format(state.board_info,
                                                    state.board_revision))
     else:
         self.board_label.set_text(state.board_revision)
     self.serial_label.set_text(state.board_serial)
     self.os_label.set_text('{} {}'.format(state.os_name, state.os_version))
     if not state.stats:
         self.disk_bar.update(())
         self.swap_bar.update(())
         self.memory_bar.update(())
         self.queue_bar.update({})
         self.builds_bar.update({})
         self.downloads_bar.update(())
         self.load_bar.update(())
         self.temperature_bar.update(())
         self.builds_size_label.set_text('-')
         self.builds_time_label.set_text('-')
         self.files_count_label.set_text('-')
     else:
         latest = state.stats[-1]
         self.disk_bar.maximum = latest.disk_size
         self.swap_bar.maximum = latest.swap_size
         self.memory_bar.maximum = latest.mem_size
         self.disk_bar.update(invert(state.stats, 'disk_free', 'disk_size'))
         self.swap_bar.update(invert(state.stats, 'swap_free', 'swap_size'))
         self.memory_bar.update(invert(state.stats, 'mem_free', 'mem_size'))
         self.queue_bar.update(state.stats[-1].builds_pending)
         self.builds_bar.update(state.stats[-1].builds_last_hour)
         self.downloads_bar.update(
             extract(state.stats, 'downloads_last_hour'))
         self.load_bar.update(extract(state.stats, 'load_average'))
         self.temperature_bar.update(extract(state.stats, 'cpu_temp'))
         self.builds_size_label.set_text(format_size(latest.builds_size))
         self.builds_time_label.set_text(
             format_timedelta(latest.builds_time))
         self.files_count_label.set_text('{:,}'.format(latest.files_count))
예제 #4
0
 def __init__(self):
     self.board_label = wdg.Text('-')
     self.serial_label = wdg.Text('-')
     self.os_label = wdg.Text('-')
     self.load_bar = wdg.GraphBar(minimum=0.0,
                                  maximum=4.0,
                                  format=' {max:.1f}')
     self.temperature_bar = wdg.GraphBar(minimum=40,
                                         maximum=80,
                                         format=' {min}-{max}°C')
     self.disk_bar = wdg.GraphBar(
         minimum=0, format=lambda min, max: ' ' + format_size(max))
     self.swap_bar = wdg.GraphBar(
         minimum=0, format=lambda min, max: ' ' + format_size(max))
     self.memory_bar = wdg.GraphBar(
         minimum=0, format=lambda min, max: ' ' + format_size(max))
     self.builds_bar = wdg.RatioBar()
     self.queue_bar = wdg.RatioBar()
     self.downloads_bar = wdg.GraphBar(format=' {max}')
     self.builds_size_label = wdg.Text('-')
     self.builds_time_label = wdg.Text('-')
     self.files_count_label = wdg.Text('-')
     super().__init__(
         wdg.AttrMap(
             wdg.LineBox(
                 wdg.Columns([
                     (12,
                      wdg.Pile([
                          wdg.Text('Board'),
                          wdg.Text('Serial #'),
                          wdg.Text('OS'),
                          wdg.Text('Build Size'),
                          wdg.Text('Build Time'),
                          wdg.Text('File Count'),
                          wdg.Text('Queue'),
                      ])),
                     wdg.Pile([
                         self.board_label,
                         self.serial_label,
                         self.os_label,
                         self.builds_size_label,
                         self.builds_time_label,
                         self.files_count_label,
                         self.queue_bar,
                     ]),
                     (12,
                      wdg.Pile([
                          wdg.Text('Builds/hr'),
                          wdg.Text('Downloads/hr'),
                          wdg.Text('Temperature'),
                          wdg.Text('Load Avg'),
                          wdg.Text('Disk'),
                          wdg.Text('Swap'),
                          wdg.Text('Memory'),
                      ])),
                     wdg.Pile([
                         self.builds_bar,
                         self.downloads_bar,
                         self.temperature_bar,
                         self.load_bar,
                         self.disk_bar,
                         self.swap_bar,
                         self.memory_bar,
                     ]),
                 ],
                             dividechars=1), ),
             'dialog',
         ))
예제 #5
0
 def __init__(self):
     self.board_label = wdg.Text('-')
     self.serial_label = wdg.Text('-')
     self.python_label = wdg.Text('-')
     self.os_label = wdg.Text('-')
     self.clock_label = wdg.Text('-')
     self.load_bar = wdg.GraphBar(minimum=0.0,
                                  maximum=4.0,
                                  delta=timedelta(seconds=15),
                                  format=' {max:.1f}')
     self.temperature_bar = wdg.GraphBar(minimum=40,
                                         maximum=80,
                                         delta=timedelta(seconds=15),
                                         format=' {min}-{max}°C')
     self.disk_bar = wdg.GraphBar(
         format=lambda min, max: ' ' + format_size(max),
         minimum=0,
         delta=timedelta(seconds=15))
     self.swap_bar = wdg.GraphBar(
         format=lambda min, max: ' ' + format_size(max),
         minimum=0,
         delta=timedelta(seconds=15))
     self.memory_bar = wdg.GraphBar(
         format=lambda min, max: ' ' + format_size(max),
         minimum=0,
         delta=timedelta(seconds=15))
     super().__init__(
         wdg.AttrMap(
             wdg.LineBox(
                 wdg.Columns([
                     (11,
                      wdg.Pile([
                          wdg.Text('Board'),
                          wdg.Text('Serial #'),
                          wdg.Text('OS'),
                          wdg.Text('Python'),
                          wdg.Text('Clock Delta'),
                      ])),
                     wdg.Pile([
                         self.board_label,
                         self.serial_label,
                         self.os_label,
                         self.python_label,
                         self.clock_label,
                     ]),
                     (11,
                      wdg.Pile([
                          wdg.Text('Temperature'),
                          wdg.Text('Load Avg'),
                          wdg.Text('Disk'),
                          wdg.Text('Swap'),
                          wdg.Text('Memory'),
                      ])),
                     wdg.Pile([
                         self.temperature_bar,
                         self.load_bar,
                         self.disk_bar,
                         self.swap_bar,
                         self.memory_bar,
                     ]),
                 ],
                             dividechars=1)), 'dialog'))
예제 #6
0
def test_format_templates():
    assert format_size(1, template='{size:.0f}{suffix}') == '1B'
    assert format_size(1024, template='{size}{suffix}') == '1.0KB'
    assert format_size(1536, template='{size:.1f} {suffix}') == '1.5 KB'
예제 #7
0
def test_format_zero():
    assert format_size(0) == '0 B'
    assert format_size(0, zero='-') == '-'
    assert format_size(0.0, zero='-') == '-'