nschloe / tiptop

:desktop_computer: Command-line system monitoring

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

ubuntu bugs

flowspeech opened this issue · comments

IndexError: list index out of range
╭───────────────────────────────────────────────────────────────────────────────────────────────── Traceback (most recent call last) ─────────────────────────────────────────────────────────────────────────────────────────────────╮
│ │
│ /media/anaconda3/lib/python3.7/site-packages/textual/widget.py:202 in _get_lines │
│ │
│ 199 │ def _get_lines(self) -> Lines: ╭───────── locals ─────────╮ │
│ 200 │ │ """Get segment lines to render the widget.""" │ self = CPU(name='CPU#1') │ │
│ 201 │ │ if self.render_cache is None: ╰──────────────────────────╯ │
│ ❱ 202 │ │ │ self.render_lines() │
│ 203 │ │ assert self.render_cache is not None │
│ 204 │ │ lines = self.render_cache.lines │
│ 205 │ │ return lines │
│ /media/anaconda3/lib/python3.7/site-packages/textual/widget.py:188 in render_lines │
│ │
│ 185 │ ╭────────── locals ──────────╮ │
│ 186 │ def render_lines(self) -> None: │ height = 22 │ │
│ 187 │ │ width, height = self.size │ self = CPU(name='CPU#1') │ │
│ ❱ 188 │ │ renderable = self.render_styled() │ width = 231 │ │
│ 189 │ │ options = self.console.options.update_dimensions(width, height) ╰────────────────────────────╯ │
│ 190 │ │ lines = self.console.render_lines(renderable, options) │
│ 191 │ │ self.render_cache = RenderCache(self.size, lines) │
│ │
│ /media/anaconda3/lib/python3.7/site-packages/textual/widget.py:128 in render_styled │
│ │
│ 125 │ │ Returns: ╭───────── locals ─────────╮ │
│ 126 │ │ │ RenderableType: A new renderable. │ self = CPU(name='CPU#1') │ │
│ 127 │ │ """ ╰──────────────────────────╯ │
│ ❱ 128 │ │ renderable = self.render() │
│ 129 │ │ if self.padding is not None: │
│ 130 │ │ │ renderable = Padding(renderable, self.padding) │
│ 131 │ │ if self.border in self.BOX_MAP: │
│ │
│ /media/anaconda3/lib/python3.7/site-packages/tiptop/_cpu.py:164 in render │
│ │
│ 161 │ │ self.refresh() ╭───────── locals ─────────╮ │
│ 162 │ │ self = CPU(name='CPU#1') │ │
│ 163 │ def render(self): ╰──────────────────────────╯ │
│ ❱ 164 │ │ return self.panel │
│ 165 │ │
│ 166 │ async def on_resize(self, event): │
│ 167 │ │ self.width = event.width │
╰─────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────╯
AttributeError: 'CPU' object has no attribute 'panel'
╭───────────────────────────────────────────────────────────────────────────────────────────────── Traceback (most recent call last) ─────────────────────────────────────────────────────────────────────────────────────────────────╮
│ │
│ /media/anaconda3/lib/python3.7/site-packages/textual/widget.py:202 in _get_lines │
│ │
│ 199 │ def _get_lines(self) -> Lines: ╭───────── locals ─────────╮ │
│ 200 │ │ """Get segment lines to render the widget.""" │ self = CPU(name='CPU#1') │ │
│ 201 │ │ if self.render_cache is None: ╰──────────────────────────╯ │
│ ❱ 202 │ │ │ self.render_lines() │
│ 203 │ │ assert self.render_cache is not None │
│ 204 │ │ lines = self.render_cache.lines │
│ 205 │ │ return lines │
│ /media/anaconda3/lib/python3.7/site-packages/textual/widget.py:188 in render_lines │
│ │
│ 185 │ ╭────────── locals ──────────╮ │
│ 186 │ def render_lines(self) -> None: │ height = 22 │ │
│ 187 │ │ width, height = self.size │ self = CPU(name='CPU#1') │ │
│ ❱ 188 │ │ renderable = self.render_styled() │ width = 231 │ │
│ 189 │ │ options = self.console.options.update_dimensions(width, height) ╰────────────────────────────╯ │
│ 190 │ │ lines = self.console.render_lines(renderable, options) │
│ 191 │ │ self.render_cache = RenderCache(self.size, lines) │
│ │
│ /media/anaconda3/lib/python3.7/site-packages/textual/widget.py:128 in render_styled │
│ │
│ 125 │ │ Returns: ╭───────── locals ─────────╮ │
│ 126 │ │ │ RenderableType: A new renderable. │ self = CPU(name='CPU#1') │ │
│ 127 │ │ """ ╰──────────────────────────╯ │
│ ❱ 128 │ │ renderable = self.render() │
│ 129 │ │ if self.padding is not None: │
│ 130 │ │ │ renderable = Padding(renderable, self.padding) │
│ 131 │ │ if self.border in self.BOX_MAP: │
│ │
│ /media/anaconda3/lib/python3.7/site-packages/tiptop/_cpu.py:164 in render │
│ │
│ 161 │ │ self.refresh() ╭───────── locals ─────────╮ │
│ 162 │ │ self = CPU(name='CPU#1') │ │
│ 163 │ def render(self): ╰──────────────────────────╯ │
│ ❱ 164 │ │ return self.panel │
│ 165 │ │
│ 166 │ async def on_resize(self, event): │
│ 167 │ │ self.width = event.width │
╰─────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────╯
AttributeError: 'CPU' object has no attribute 'panel'
╭───────────────────────────────────────────────────────────────────────────────────────────────── Traceback (most recent call last) ─────────────────────────────────────────────────────────────────────────────────────────────────╮
│ │
│ /media/anaconda3/lib/python3.7/site-packages/textual/widget.py:202 in _get_lines │
│ │
│ 199 │ def _get_lines(self) -> Lines: ╭───────── locals ─────────╮ │
│ 200 │ │ """Get segment lines to render the widget.""" │ self = CPU(name='CPU#1') │ │
│ 201 │ │ if self.render_cache is None: ╰──────────────────────────╯ │
│ ❱ 202 │ │ │ self.render_lines() │
│ 203 │ │ assert self.render_cache is not None │
│ 204 │ │ lines = self.render_cache.lines │
│ 205 │ │ return lines │
│ /media/anaconda3/lib/python3.7/site-packages/textual/widget.py:188 in render_lines │
│ │
│ 185 │ ╭────────── locals ──────────╮ │
│ 186 │ def render_lines(self) -> None: │ height = 22 │ │
│ 187 │ │ width, height = self.size │ self = CPU(name='CPU#1') │ │
│ ❱ 188 │ │ renderable = self.render_styled() │ width = 231 │ │
│ 189 │ │ options = self.console.options.update_dimensions(width, height) ╰────────────────────────────╯ │
│ 190 │ │ lines = self.console.render_lines(renderable, options) │
│ 191 │ │ self.render_cache = RenderCache(self.size, lines) │
│ │
│ /media/anaconda3/lib/python3.7/site-packages/textual/widget.py:128 in render_styled │
│ │
│ 125 │ │ Returns: ╭───────── locals ─────────╮ │
│ 126 │ │ │ RenderableType: A new renderable. │ self = CPU(name='CPU#1') │ │
│ 127 │ │ """ ╰──────────────────────────╯ │
│ ❱ 128 │ │ renderable = self.render() │
│ 129 │ │ if self.padding is not None: │
│ 130 │ │ │ renderable = Padding(renderable, self.padding) │
│ 131 │ │ if self.border in self.BOX_MAP: │
│ │
│ /media/anaconda3/lib/python3.7/site-packages/tiptop/_cpu.py:164 in render │
│ │
│ 161 │ │ self.refresh() ╭───────── locals ─────────╮ │
│ 162 │ │ self = CPU(name='CPU#1') │ │
│ 163 │ def render(self): ╰──────────────────────────╯ │
│ ❱ 164 │ │ return self.panel │
│ 165 │ │
│ 166 │ async def on_resize(self, event): │
│ 167 │ │ self.width = event.width │
╰─────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────╯
AttributeError: 'CPU' object has no attribute 'panel'

Something appears to be going wrong, but the error messages aren't very telling.

commented

Ubuntu 20.10
pip 21.3.1
Python 3.8.10
Looks like i have the same

╭──────────────────────────────────────────────────────────────────────────── Traceback (most recent call last) ────────────────────────────────────────────────────────────────────────────╮
│                                                                                                                                                                                           │
│ /home/atom/.local/lib/python3.8/site-packages/textual/widget.py:202 in _get_lines                                                                                                         │
│                                                                                                                                                                                           │
│   199 │   def _get_lines(self) -> Lines:                                                      ╭───────── locals ─────────╮                                                                │
│   200 │   │   """Get segment lines to render the widget."""                                   │ self = CPU(name='CPU#1') │                                                                │
│   201 │   │   if self.render_cache is None:                                                   ╰──────────────────────────╯                                                                │
│ ❱ 202 │   │   │   self.render_lines()                                                                                                                                                     │
│   203 │   │   assert self.render_cache is not None                                                                                                                                        │
│   204 │   │   lines = self.render_cache.lines                                                                                                                                             │
│   205 │   │   return lines                                                                                                                                                                │
│ /home/atom/.local/lib/python3.8/site-packages/textual/widget.py:188 in render_lines                                                                                                       │
│                                                                                                                                                                                           │
│   185 │                                                                                       ╭────────── locals ──────────╮                                                              │
│   186 │   def render_lines(self) -> None:                                                     │ height = 14                │                                                              │
│   187 │   │   width, height = self.size                                                       │   self = CPU(name='CPU#1') │                                                              │
│ ❱ 188 │   │   renderable = self.render_styled()                                               │  width = 189               │                                                              │
│   189 │   │   options = self.console.options.update_dimensions(width, height)                 ╰────────────────────────────╯                                                              │
│   190 │   │   lines = self.console.render_lines(renderable, options)                                                                                                                      │
│   191 │   │   self.render_cache = RenderCache(self.size, lines)                                                                                                                           │
│                                                                                                                                                                                           │
│ /home/atom/.local/lib/python3.8/site-packages/textual/widget.py:128 in render_styled                                                                                                      │
│                                                                                                                                                                                           │
│   125 │   │   Returns:                                                                        ╭───────── locals ─────────╮                                                                │
│   126 │   │   │   RenderableType: A new renderable.                                           │ self = CPU(name='CPU#1') │                                                                │
│   127 │   │   """                                                                             ╰──────────────────────────╯                                                                │
│ ❱ 128 │   │   renderable = self.render()                                                                                                                                                  │
│   129 │   │   if self.padding is not None:                                                                                                                                                │
│   130 │   │   │   renderable = Padding(renderable, self.padding)                                                                                                                          │
│   131 │   │   if self.border in self.BOX_MAP:                                                                                                                                             │
│                                                                                                                                                                                           │
│ /home/atom/.local/lib/python3.8/site-packages/tiptop/_cpu.py:170 in render                                                                                                                │
│                                                                                                                                                                                           │
│   167 │                                                                                       ╭───────── locals ─────────╮                                                                │
│   168 │   def render(self):                                                                   │ self = CPU(name='CPU#1') │                                                                │
│   169 │   │   if self.is_first_render:                                                        ╰──────────────────────────╯                                                                │
│ ❱ 170 │   │   │   self.collect_data()                                                                                                                                                     │
│   171 │   │   │   self.is_first_render = False                                                                                                                                            │
│   172 │   │   return self.panel                                                                                                                                                           │
│   173                                                                                                                                                                                     │
│                                                                                                                                                                                           │
│ /home/atom/.local/lib/python3.8/site-packages/tiptop/_cpu.py:126 in collect_data                                                                                                          │
│                                                                                                                                                                                           │
│   123 │   │   if self.has_temps:                                                                                                                                                          │
│   124 │   │   │   # add temperature in every other line                                                                                                                                   │
│   125 │   │   │   for k, stream in enumerate(self.core_temp_streams):                                                                                                                     │
│ ❱ 126 │   │   │   │   lines[                                                                                                                                                              │
│   127 │   │   │   │   │   2 * k                                                                                                                                                           │
│   128 │   │   │   │   ] += f" [color(5)]{stream.graph[0]} {round(stream.values[-1])}°C[/]"                                                                                                │
│   129                                                                                                                                                                                     │
│                                                                                                                                                                                           │
│ ╭─────────────────────────────────────────────────── locals ───────────────────────────────────────────────────╮                                                                          │
│ │          coretemps = [                                                                                       │                                                                          │
│ │                      │   shwtemp(label='Package id 0', current=46.0, high=100.0, critical=100.0),            │                                                                          │
│ │                      │   shwtemp(label='Core 0', current=45.0, high=100.0, critical=100.0),                  │                                                                          │
│ │                      │   shwtemp(label='Core 1', current=42.0, high=100.0, critical=100.0),                  │                                                                          │
│ │                      │   shwtemp(label='Core 2', current=46.0, high=100.0, critical=100.0),                  │                                                                          │
│ │                      │   shwtemp(label='Core 3', current=43.0, high=100.0, critical=100.0)                   │                                                                          │
│ │                      ]                                                                                       │                                                                          │
│ │ cpu_percent_colors = ['color(4)', 'color(4)', 'color(4)', 'color(2)']                                        │                                                                          │
│ │    cpu_total_graph = '[color(4)]                                             25.3%\n                   '+659 │                                                                          │
│ │                  k = 2                                                                                       │                                                                          │
│ │    last_val_string = ' 46°C'                                                                                 │                                                                          │
│ │              lines = [                                                                                       │                                                                          │
│ │                      │   '[color(4)]         ⢀   4%[/] [color(5)]    ⢠ 45°C[/]',                             │                                                                          │
│ │                      │   '[color(4)]         ⢀   2%[/]',                                                     │                                                                          │
│ │                      │   '[color(4)]         ⢀   9%[/] [color(5)]    ⢠ 42°C[/]',                             │                                                                          │
│ │                      │   '[color(2)]         ⢸  86%[/]'                                                      │                                                                          │
│ │                      ]                                                                                       │                                                                          │
│ │             lines0 = '                                              46°C'                                    │                                                                          │
│ │          lines_cpu = [                                                                                       │                                                                          │
│ │                      │   '                                             25.3%',                               │                                                                          │
│ │                      │   '                                                  ',                               │                                                                          │
│ │                      │   '                                                  ',                               │                                                                          │
│ │                      │   '                                                  ',                               │                                                                          │
│ │                      │   '                                                  ',                               │                                                                          │
│ │                      │   '                                                 ⢸',                               │                                                                          │
│ │                      │   '                                                 ⢸'                                │                                                                          │
│ │                      ]                                                                                       │                                                                          │
│ │         lines_temp = [                                                                                       │                                                                          │
│ │                      │   '                                                 ⢸',                               │                                                                          │
│ │                      │   '                                                 ⢸',                               │                                                                          │
│ │                      │   '                                                 ⠘',                               │                                                                          │
│ │                      │   '                                                  ',                               │                                                                          │
│ │                      │   '                                                  ',                               │                                                                          │
│ │                      │   '                                                  ',                               │                                                                          │
│ │                      │   '                                              46°C'                                │                                                                          │
│ │                      ]                                                                                       │                                                                          │
│ │               load = 85.7                                                                                    │                                                                          │
│ │         load_indiv = [4.0, 1.6, 9.4, 85.7]                                                                   │                                                                          │
│ │               self = CPU(name='CPU#1')                                                                       │                                                                          │
│ │             stream =                           │                                                                          │
│ │               temp = shwtemp(label='Core 3', current=43.0, high=100.0, critical=100.0)                       │                                                                          │
│ ╰──────────────────────────────────────────────────────────────────────────────────────────────────────────────╯                                                                          │
╰───────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────╯
IndexError: list index out of range
╭──────────────────────────────────────────────────────────────────────────── Traceback (most recent call last) ────────────────────────────────────────────────────────────────────────────╮
│                                                                                                                                                                                           │
│ /home/atom/.local/lib/python3.8/site-packages/textual/widget.py:202 in _get_lines                                                                                                         │
│                                                                                                                                                                                           │
│   199 │   def _get_lines(self) -> Lines:                                                      ╭───────── locals ─────────╮                                                                │
│   200 │   │   """Get segment lines to render the widget."""                                   │ self = CPU(name='CPU#1') │                                                                │
│   201 │   │   if self.render_cache is None:                                                   ╰──────────────────────────╯                                                                │
│ ❱ 202 │   │   │   self.render_lines()                                                                                                                                                     │
│   203 │   │   assert self.render_cache is not None                                                                                                                                        │
│   204 │   │   lines = self.render_cache.lines                                                                                                                                             │
│   205 │   │   return lines                                                                                                                                                                │
│ /home/atom/.local/lib/python3.8/site-packages/textual/widget.py:188 in render_lines                                                                                                       │
│                                                                                                                                                                                           │
│   185 │                                                                                       ╭────────── locals ──────────╮                                                              │
│   186 │   def render_lines(self) -> None:                                                     │ height = 14                │                                                              │
│   187 │   │   width, height = self.size                                                       │   self = CPU(name='CPU#1') │                                                              │
│ ❱ 188 │   │   renderable = self.render_styled()                                               │  width = 189               │                                                              │
│   189 │   │   options = self.console.options.update_dimensions(width, height)                 ╰────────────────────────────╯                                                              │
│   190 │   │   lines = self.console.render_lines(renderable, options)                                                                                                                      │
│   191 │   │   self.render_cache = RenderCache(self.size, lines)                                                                                                                           │
│                                                                                                                                                                                           │
│ /home/atom/.local/lib/python3.8/site-packages/textual/widget.py:128 in render_styled                                                                                                      │
│                                                                                                                                                                                           │
│   125 │   │   Returns:                                                                        ╭───────── locals ─────────╮                                                                │
│   126 │   │   │   RenderableType: A new renderable.                                           │ self = CPU(name='CPU#1') │                                                                │
│   127 │   │   """                                                                             ╰──────────────────────────╯                                                                │
│ ❱ 128 │   │   renderable = self.render()                                                                                                                                                  │
│   129 │   │   if self.padding is not None:                                                                                                                                                │
│   130 │   │   │   renderable = Padding(renderable, self.padding)                                                                                                                          │
│   131 │   │   if self.border in self.BOX_MAP:                                                                                                                                             │
│                                                                                                                                                                                           │
│ /home/atom/.local/lib/python3.8/site-packages/tiptop/_cpu.py:170 in render                                                                                                                │
│                                                                                                                                                                                           │
│   167 │                                                                                       ╭───────── locals ─────────╮                                                                │
│   168 │   def render(self):                                                                   │ self = CPU(name='CPU#1') │                                                                │
│   169 │   │   if self.is_first_render:                                                        ╰──────────────────────────╯                                                                │
│ ❱ 170 │   │   │   self.collect_data()                                                                                                                                                     │
│   171 │   │   │   self.is_first_render = False                                                                                                                                            │
│   172 │   │   return self.panel                                                                                                                                                           │
│   173                                                                                                                                                                                     │
│                                                                                                                                                                                           │
│ /home/atom/.local/lib/python3.8/site-packages/tiptop/_cpu.py:126 in collect_data                                                                                                          │
│                                                                                                                                                                                           │
│   123 │   │   if self.has_temps:                                                                                                                                                          │
│   124 │   │   │   # add temperature in every other line                                                                                                                                   │
│   125 │   │   │   for k, stream in enumerate(self.core_temp_streams):                                                                                                                     │
│ ❱ 126 │   │   │   │   lines[                                                                                                                                                              │
│   127 │   │   │   │   │   2 * k                                                                                                                                                           │
│   128 │   │   │   │   ] += f" [color(5)]{stream.graph[0]} {round(stream.values[-1])}°C[/]"                                                                                                │
│   129                                                                                                                                                                                     │
│                                                                                                                                                                                           │
│ ╭─────────────────────────────────────────────────── locals ───────────────────────────────────────────────────╮                                                                          │
│ │          coretemps = [                                                                                       │                                                                          │
│ │                      │   shwtemp(label='Package id 0', current=46.0, high=100.0, critical=100.0),            │                                                                          │
│ │                      │   shwtemp(label='Core 0', current=45.0, high=100.0, critical=100.0),                  │                                                                          │
│ │                      │   shwtemp(label='Core 1', current=42.0, high=100.0, critical=100.0),                  │                                                                          │
│ │                      │   shwtemp(label='Core 2', current=46.0, high=100.0, critical=100.0),                  │                                                                          │
│ │                      │   shwtemp(label='Core 3', current=43.0, high=100.0, critical=100.0)                   │                                                                          │
│ │                      ]                                                                                       │                                                                          │
│ │ cpu_percent_colors = ['color(4)', 'color(4)', 'color(6)', 'color(4)']                                        │                                                                          │
│ │    cpu_total_graph = '[color(4)]                                             11.1%\n                   '+659 │                                                                          │
│ │                  k = 2                                                                                       │                                                                          │
│ │    last_val_string = ' 46°C'                                                                                 │                                                                          │
│ │              lines = [                                                                                       │                                                                          │
│ │                      │   '[color(4)]         ⡀   0%[/] [color(5)]    ⣤ 45°C[/]',                             │                                                                          │
│ │                      │   '[color(4)]         ⡀   0%[/]',                                                     │                                                                          │
│ │                      │   '[color(6)]         ⣠  33%[/] [color(5)]    ⣤ 42°C[/]',                             │                                                                          │
│ │                      │   '[color(4)]         ⡇   0%[/]'                                                      │                                                                          │
│ │                      ]                                                                                       │                                                                          │
│ │             lines0 = '                                              46°C'                                    │                                                                          │
│ │          lines_cpu = [                                                                                       │                                                                          │
│ │                      │   '                                             11.1%',                               │                                                                          │
│ │                      │   '                                                  ',                               │                                                                          │
│ │                      │   '                                                  ',                               │                                                                          │
│ │                      │   '                                                  ',                               │                                                                          │
│ │                      │   '                                                  ',                               │                                                                          │
│ │                      │   '                                                 ⡇',                               │                                                                          │
│ │                      │   '                                                 ⣿'                                │                                                                          │
│ │                      ]                                                                                       │                                                                          │
│ │         lines_temp = [                                                                                       │                                                                          │
│ │                      │   '                                                 ⣿',                               │                                                                          │
│ │                      │   '                                                 ⣿',                               │                                                                          │
│ │                      │   '                                                 ⠛',                               │                                                                          │
│ │                      │   '                                                  ',                               │                                                                          │
│ │                      │   '                                                  ',                               │                                                                          │
│ │                      │   '                                                  ',                               │                                                                          │
│ │                      │   '                                              46°C'                                │                                                                          │
│ │                      ]                                                                                       │                                                                          │
│ │               load = 0.0                                                                                     │                                                                          │
│ │         load_indiv = [0.0, 0.0, 33.3, 0.0]                                                                   │                                                                          │
│ │               self = CPU(name='CPU#1')                                                                       │                                                                          │
│ │             stream =                           │                                                                          │
│ │               temp = shwtemp(label='Core 3', current=43.0, high=100.0, critical=100.0)                       │                                                                          │
│ ╰──────────────────────────────────────────────────────────────────────────────────────────────────────────────╯                                                                          │
╰───────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────╯
IndexError: list index out of range
╭──────────────────────────────────────────────────────────────────────────── Traceback (most recent call last) ────────────────────────────────────────────────────────────────────────────╮
│                                                                                                                                                                                           │
│ /home/atom/.local/lib/python3.8/site-packages/textual/widget.py:202 in _get_lines                                                                                                         │
│                                                                                                                                                                                           │
│   199 │   def _get_lines(self) -> Lines:                                                      ╭───────── locals ─────────╮                                                                │
│   200 │   │   """Get segment lines to render the widget."""                                   │ self = CPU(name='CPU#1') │                                                                │
│   201 │   │   if self.render_cache is None:                                                   ╰──────────────────────────╯                                                                │
│ ❱ 202 │   │   │   self.render_lines()                                                                                                                                                     │
│   203 │   │   assert self.render_cache is not None                                                                                                                                        │
│   204 │   │   lines = self.render_cache.lines                                                                                                                                             │
│   205 │   │   return lines                                                                                                                                                                │
│ /home/atom/.local/lib/python3.8/site-packages/textual/widget.py:188 in render_lines                                                                                                       │
│                                                                                                                                                                                           │
│   185 │                                                                                       ╭────────── locals ──────────╮                                                              │
│   186 │   def render_lines(self) -> None:                                                     │ height = 14                │                                                              │
│   187 │   │   width, height = self.size                                                       │   self = CPU(name='CPU#1') │                                                              │
│ ❱ 188 │   │   renderable = self.render_styled()                                               │  width = 189               │                                                              │
│   189 │   │   options = self.console.options.update_dimensions(width, height)                 ╰────────────────────────────╯                                                              │
│   190 │   │   lines = self.console.render_lines(renderable, options)                                                                                                                      │
│   191 │   │   self.render_cache = RenderCache(self.size, lines)                                                                                                                           │
│                                                                                                                                                                                           │
│ /home/atom/.local/lib/python3.8/site-packages/textual/widget.py:128 in render_styled                                                                                                      │
│                                                                                                                                                                                           │
│   125 │   │   Returns:                                                                        ╭───────── locals ─────────╮                                                                │
│   126 │   │   │   RenderableType: A new renderable.                                           │ self = CPU(name='CPU#1') │                                                                │
│   127 │   │   """                                                                             ╰──────────────────────────╯                                                                │
│ ❱ 128 │   │   renderable = self.render()                                                                                                                                                  │
│   129 │   │   if self.padding is not None:                                                                                                                                                │
│   130 │   │   │   renderable = Padding(renderable, self.padding)                                                                                                                          │
│   131 │   │   if self.border in self.BOX_MAP:                                                                                                                                             │
│                                                                                                                                                                                           │
│ /home/atom/.local/lib/python3.8/site-packages/tiptop/_cpu.py:170 in render                                                                                                                │
│                                                                                                                                                                                           │
│   167 │                                                                                       ╭───────── locals ─────────╮                                                                │
│   168 │   def render(self):                                                                   │ self = CPU(name='CPU#1') │                                                                │
│   169 │   │   if self.is_first_render:                                                        ╰──────────────────────────╯                                                                │
│ ❱ 170 │   │   │   self.collect_data()                                                                                                                                                     │
│   171 │   │   │   self.is_first_render = False                                                                                                                                            │
│   172 │   │   return self.panel                                                                                                                                                           │
│   173                                                                                                                                                                                     │
│                                                                                                                                                                                           │
│ /home/atom/.local/lib/python3.8/site-packages/tiptop/_cpu.py:126 in collect_data                                                                                                          │
│                                                                                                                                                                                           │
│   123 │   │   if self.has_temps:                                                                                                                                                          │
│   124 │   │   │   # add temperature in every other line                                                                                                                                   │
│   125 │   │   │   for k, stream in enumerate(self.core_temp_streams):                                                                                                                     │
│ ❱ 126 │   │   │   │   lines[                                                                                                                                                              │
│   127 │   │   │   │   │   2 * k                                                                                                                                                           │
│   128 │   │   │   │   ] += f" [color(5)]{stream.graph[0]} {round(stream.values[-1])}°C[/]"                                                                                                │
│   129                                                                                                                                                                                     │
│                                                                                                                                                                                           │
│ ╭──────────────────────────────────────────────────── locals ─────────────────────────────────────────────────────╮                                                                       │
│ │          coretemps = [                                                                                          │                                                                       │
│ │                      │   shwtemp(label='Package id 0', current=46.0, high=100.0, critical=100.0),               │                                                                       │
│ │                      │   shwtemp(label='Core 0', current=45.0, high=100.0, critical=100.0),                     │                                                                       │
│ │                      │   shwtemp(label='Core 1', current=42.0, high=100.0, critical=100.0),                     │                                                                       │
│ │                      │   shwtemp(label='Core 2', current=46.0, high=100.0, critical=100.0),                     │                                                                       │
│ │                      │   shwtemp(label='Core 3', current=43.0, high=100.0, critical=100.0)                      │                                                                       │
│ │                      ]                                                                                          │                                                                       │
│ │ cpu_percent_colors = ['color(4)', 'color(4)', 'color(6)', 'color(4)']                                           │                                                                       │
│ │    cpu_total_graph = '[color(4)]                                                                      '+1805    │                                                                       │
│ │                  k = 2                                                                                          │                                                                       │
│ │    last_val_string = ' 46°C'                                                                                    │                                                                       │
│ │              lines = [                                                                                          │                                                                       │
│ │                      │   '[color(4)]        ⢀    0%[/] [color(5)]   ⢠⣤ 45°C[/]',                                │                                                                       │
│ │                      │   '[color(4)]        ⢀    0%[/]',                                                        │                                                                       │
│ │                      │   '[color(6)]        ⢀⣴  67%[/] [color(5)]   ⢠⣤ 42°C[/]',                                │                                                                       │
│ │                      │   '[color(4)]        ⢸    0%[/]'                                                         │                                                                       │
│ │                      ]                                                                                          │                                                                       │
│ │             lines0 = '                                                                                '+74      │                                                                       │
│ │          lines_cpu = [                                                                                          │                                                                       │
│ │                      │   '                                                                                '+74, │                                                                       │
│ │                      │   '                                                                                '+74, │                                                                       │
│ │                      │   '                                                                                '+74, │                                                                       │
│ │                      │   '                                                                                '+74, │                                                                       │
│ │                      │   '                                                                                '+74, │                                                                       │
│ │                      │   '                                                                                '+74  │                                                                       │
│ │                      ]                                                                                          │                                                                       │
│ │         lines_temp = [                                                                                          │                                                                       │
│ │                      │   '                                                                                '+74, │                                                                       │
│ │                      │   '                                                                                '+74, │                                                                       │
│ │                      │   '                                                                                '+74, │                                                                       │
│ │                      │   '                                                                                '+74, │                                                                       │
│ │                      │   '                                                                                '+74, │                                                                       │
│ │                      │   '                                                                                '+74  │                                                                       │
│ │                      ]                                                                                          │                                                                       │
│ │               load = 0.0                                                                                        │                                                                       │
│ │         load_indiv = [0.0, 0.0, 66.7, 0.0]                                                                      │                                                                       │
│ │               self = CPU(name='CPU#1')                                                                          │                                                                       │
│ │             stream =                              │                                                                       │
│ │               temp = shwtemp(label='Core 3', current=43.0, high=100.0, critical=100.0)                          │                                                                       │
│ ╰─────────────────────────────────────────────────────────────────────────────────────────────────────────────────╯                                                                       │
╰───────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────╯
IndexError: list index out of range

Ubuntu 20.04
Pip 21.2.2
Python 3.9.7

Got

╭───────────────────────────────────────── Traceback (most recent call last) ──────────────────────────────────────────╮
│                                                                                                                      │
│ /home/horseinthesky/bla/.venv/lib/python3.8/site-packages/tiptop/_info.py:36 in on_mount                             │
│                                                                                                                      │
│   33 │   │                                                                                                           │
│   34 │   │   self.left_string = " ".join(                                                                            │
│   35 │   │   │   [                                                                                                   │
│ ❱ 36 │   │   │   │   f"{os.getlogin()} @ [b]{platform.node()}[/]",                                                   │
│   37 │   │   │   │   system_string,                                                                                  │
│   38 │   │   │   ]                                                                                                   │
│   39 │   │   )                                                                                                       │
│                                                                                                                      │
│ ╭────────────────────────────────────────────────── locals ───────────────────────────────────────────────────╮      │
│ │            ri = {                                                                                           │      │
│ │                 │   'name': 'Ubuntu',                                                                       │      │
│ │                 │   'version': '20.04.3 LTS (Focal Fossa)',                                                 │      │
│ │                 │   'id': 'ubuntu',                                                                         │      │
│ │                 │   'id_like': 'debian',                                                                    │      │
│ │                 │   'pretty_name': 'Ubuntu 20.04.3 LTS',                                                    │      │
│ │                 │   'version_id': '20.04',                                                                  │      │
│ │                 │   'home_url': 'https://www.ubuntu.com/',                                                  │      │
│ │                 │   'support_url': 'https://help.ubuntu.com/',                                              │      │
│ │                 │   'bug_report_url': 'https://bugs.launchpad.net/ubuntu/',                                 │      │
│ │                 │   'privacy_policy_url': 'https://www.ubuntu.com/legal/terms-and-policies/privacy-policy', │      │
│ │                 │   ... +3                                                                                  │      │
│ │                 }                                                                                           │      │
│ │          self = InfoLine(name='InfoLine#1')                                                                 │      │
│ │        system = 'Linux'                                                                                     │      │
│ │ system_string = 'Ubuntu 20.04 64bit / 5.10.60.1-microsoft-standard-WSL2'                                    │      │
│ ╰─────────────────────────────────────────────────────────────────────────────────────────────────────────────╯      │
╰──────────────────────────────────────────────────────────────────────────────────────────────────────────────────────╯
FileNotFoundError: [Errno 2] No such file or directory
╭───────────────────────────────────────── Traceback (most recent call last) ──────────────────────────────────────────╮
│                                                                                                                      │
│ /home/horseinthesky/bla/.venv/lib/python3.8/site-packages/textual/widget.py:202 in _get_lines                        │
│                                                                                                                      │
│   199 │   def _get_lines(self) -> Lines:                                                                             │
│   200 │   │   """Get segment lines to render the widget."""                                                          │
│   201 │   │   if self.render_cache is None:                                                                          │
│ ❱ 202 │   │   │   self.render_lines()                                                                                │
│   203 │   │   assert self.render_cache is not None                                                                   │
│   204 │   │   lines = self.render_cache.lines                                                                        │
│   205 │   │   return lines                                                                                           │
│                                                                                                                      │
│ ╭────────────── locals ──────────────╮                                                                               │
│ │ self = InfoLine(name='InfoLine#1') │                                                                               │
│ ╰────────────────────────────────────╯                                                                               │
│ /home/horseinthesky/bla/.venv/lib/python3.8/site-packages/textual/widget.py:188 in render_lines                      │
│                                                                                                                      │
│   185 │                                                                                                              │
│   186 │   def render_lines(self) -> None:                                                                            │
│   187 │   │   width, height = self.size                                                                              │
│ ❱ 188 │   │   renderable = self.render_styled()                                                                      │
│   189 │   │   options = self.console.options.update_dimensions(width, height)                                        │
│   190 │   │   lines = self.console.render_lines(renderable, options)                                                 │
│   191 │   │   self.render_cache = RenderCache(self.size, lines)                                                      │
│                                                                                                                      │
│ ╭─────────────── locals ───────────────╮                                                                             │
│ │ height = 1                           │                                                                             │
│ │   self = InfoLine(name='InfoLine#1') │                                                                             │
│ │  width = 120                         │                                                                             │
│ ╰──────────────────────────────────────╯                                                                             │
│                                                                                                                      │
│ /home/horseinthesky/bla/.venv/lib/python3.8/site-packages/textual/widget.py:128 in render_styled                     │
│                                                                                                                      │
│   125 │   │   Returns:                                                                                               │
│   126 │   │   │   RenderableType: A new renderable.                                                                  │
│   127 │   │   """                                                                                                    │
│ ❱ 128 │   │   renderable = self.render()                                                                             │
│   129 │   │   if self.padding is not None:                                                                           │
│   130 │   │   │   renderable = Padding(renderable, self.padding)                                                     │
│   131 │   │   if self.border in self.BOX_MAP:                                                                        │
│                                                                                                                      │
│ ╭────────────── locals ──────────────╮                                                                               │
│ │ self = InfoLine(name='InfoLine#1') │                                                                               │
│ ╰────────────────────────────────────╯                                                                               │
│                                                                                                                      │
│ /home/horseinthesky/bla/.venv/lib/python3.8/site-packages/tiptop/_info.py:43 in render                               │
│                                                                                                                      │
│   40 │   │   self.boot_time = psutil.boot_time()                                                                     │
│   41 │                                                                                                               │
│   42 │   def render(self):                                                                                           │
│ ❱ 43 │   │   uptime_s = time.time() - self.boot_time                                                                 │
│   44 │   │   d = datetime(1, 1, 1) + timedelta(seconds=uptime_s)                                                     │
│   45 │   │   right = [f"up {d.day - 1}d, {d.hour}:{d.minute:02d}h"]                                                  │
│   46                                                                                                                 │
│                                                                                                                      │
│ ╭────────────── locals ──────────────╮                                                                               │
│ │ self = InfoLine(name='InfoLine#1') │                                                                               │
│ ╰────────────────────────────────────╯                                                                               │
╰──────────────────────────────────────────────────────────────────────────────────────────────────────────────────────╯
AttributeError: 'InfoLine' object has no attribute 'boot_time'
╭───────────────────────────────────────── Traceback (most recent call last) ──────────────────────────────────────────╮
│                                                                                                                      │
│ /home/horseinthesky/bla/.venv/lib/python3.8/site-packages/textual/widget.py:202 in _get_lines                        │
│                                                                                                                      │
│   199 │   def _get_lines(self) -> Lines:                                                                             │
│   200 │   │   """Get segment lines to render the widget."""                                                          │
│   201 │   │   if self.render_cache is None:                                                                          │
│ ❱ 202 │   │   │   self.render_lines()                                                                                │
│   203 │   │   assert self.render_cache is not None                                                                   │
│   204 │   │   lines = self.render_cache.lines                                                                        │
│   205 │   │   return lines                                                                                           │
│                                                                                                                      │
│ ╭────────────── locals ──────────────╮                                                                               │
│ │ self = InfoLine(name='InfoLine#1') │                                                                               │
│ ╰────────────────────────────────────╯                                                                               │
│ /home/horseinthesky/bla/.venv/lib/python3.8/site-packages/textual/widget.py:188 in render_lines                      │
│                                                                                                                      │
│   185 │                                                                                                              │
│   186 │   def render_lines(self) -> None:                                                                            │
│   187 │   │   width, height = self.size                                                                              │
│ ❱ 188 │   │   renderable = self.render_styled()                                                                      │
│   189 │   │   options = self.console.options.update_dimensions(width, height)                                        │
│   190 │   │   lines = self.console.render_lines(renderable, options)                                                 │
│   191 │   │   self.render_cache = RenderCache(self.size, lines)                                                      │
│                                                                                                                      │
│ ╭─────────────── locals ───────────────╮                                                                             │
│ │ height = 1                           │                                                                             │
│ │   self = InfoLine(name='InfoLine#1') │                                                                             │
│ │  width = 120                         │                                                                             │
│ ╰──────────────────────────────────────╯                                                                             │
│                                                                                                                      │
│ /home/horseinthesky/bla/.venv/lib/python3.8/site-packages/textual/widget.py:128 in render_styled                     │
│                                                                                                                      │
│   125 │   │   Returns:                                                                                               │
│   126 │   │   │   RenderableType: A new renderable.                                                                  │
│   127 │   │   """                                                                                                    │
│ ❱ 128 │   │   renderable = self.render()                                                                             │
│   129 │   │   if self.padding is not None:                                                                           │
│   130 │   │   │   renderable = Padding(renderable, self.padding)                                                     │
│   131 │   │   if self.border in self.BOX_MAP:                                                                        │
│                                                                                                                      │
│ ╭────────────── locals ──────────────╮                                                                               │
│ │ self = InfoLine(name='InfoLine#1') │                                                                               │
│ ╰────────────────────────────────────╯                                                                               │
│                                                                                                                      │
│ /home/horseinthesky/bla/.venv/lib/python3.8/site-packages/tiptop/_info.py:43 in render                               │
│                                                                                                                      │
│   40 │   │   self.boot_time = psutil.boot_time()                                                                     │
│   41 │                                                                                                               │
│   42 │   def render(self):                                                                                           │
│ ❱ 43 │   │   uptime_s = time.time() - self.boot_time                                                                 │
│   44 │   │   d = datetime(1, 1, 1) + timedelta(seconds=uptime_s)                                                     │
│   45 │   │   right = [f"up {d.day - 1}d, {d.hour}:{d.minute:02d}h"]                                                  │
│   46                                                                                                                 │
│                                                                                                                      │
│ ╭────────────── locals ──────────────╮                                                                               │
│ │ self = InfoLine(name='InfoLine#1') │                                                                               │
│ ╰────────────────────────────────────╯                                                                               │
╰──────────────────────────────────────────────────────────────────────────────────────────────────────────────────────╯
AttributeError: 'InfoLine' object has no attribute 'boot_time'
╭───────────────────────────────────────── Traceback (most recent call last) ──────────────────────────────────────────╮
│                                                                                                                      │
│ /home/horseinthesky/bla/.venv/lib/python3.8/site-packages/textual/widget.py:202 in _get_lines                        │
│                                                                                                                      │
│   199 │   def _get_lines(self) -> Lines:                                                                             │
│   200 │   │   """Get segment lines to render the widget."""                                                          │
│   201 │   │   if self.render_cache is None:                                                                          │
│ ❱ 202 │   │   │   self.render_lines()                                                                                │
│   203 │   │   assert self.render_cache is not None                                                                   │
│   204 │   │   lines = self.render_cache.lines                                                                        │
│   205 │   │   return lines                                                                                           │
│                                                                                                                      │
│ ╭────────────── locals ──────────────╮                                                                               │
│ │ self = InfoLine(name='InfoLine#1') │                                                                               │
│ ╰────────────────────────────────────╯                                                                               │
│ /home/horseinthesky/bla/.venv/lib/python3.8/site-packages/textual/widget.py:188 in render_lines                      │
│                                                                                                                      │
│   185 │                                                                                                              │
│   186 │   def render_lines(self) -> None:                                                                            │
│   187 │   │   width, height = self.size                                                                              │
│ ❱ 188 │   │   renderable = self.render_styled()                                                                      │
│   189 │   │   options = self.console.options.update_dimensions(width, height)                                        │
│   190 │   │   lines = self.console.render_lines(renderable, options)                                                 │
│   191 │   │   self.render_cache = RenderCache(self.size, lines)                                                      │
│                                                                                                                      │
│ ╭─────────────── locals ───────────────╮                                                                             │
│ │ height = 1                           │                                                                             │
│ │   self = InfoLine(name='InfoLine#1') │                                                                             │
│ │  width = 120                         │                                                                             │
│ ╰──────────────────────────────────────╯                                                                             │
│                                                                                                                      │
│ /home/horseinthesky/bla/.venv/lib/python3.8/site-packages/textual/widget.py:128 in render_styled                     │
│                                                                                                                      │
│   125 │   │   Returns:                                                                                               │
│   126 │   │   │   RenderableType: A new renderable.                                                                  │
│   127 │   │   """                                                                                                    │
│ ❱ 128 │   │   renderable = self.render()                                                                             │
│   129 │   │   if self.padding is not None:                                                                           │
│   130 │   │   │   renderable = Padding(renderable, self.padding)                                                     │
│   131 │   │   if self.border in self.BOX_MAP:                                                                        │
│                                                                                                                      │
│ ╭────────────── locals ──────────────╮                                                                               │
│ │ self = InfoLine(name='InfoLine#1') │                                                                               │
│ ╰────────────────────────────────────╯                                                                               │
│                                                                                                                      │
│ /home/horseinthesky/bla/.venv/lib/python3.8/site-packages/tiptop/_info.py:43 in render                               │
│                                                                                                                      │
│   40 │   │   self.boot_time = psutil.boot_time()                                                                     │
│   41 │                                                                                                               │
│   42 │   def render(self):                                                                                           │
│ ❱ 43 │   │   uptime_s = time.time() - self.boot_time                                                                 │
│   44 │   │   d = datetime(1, 1, 1) + timedelta(seconds=uptime_s)                                                     │
│   45 │   │   right = [f"up {d.day - 1}d, {d.hour}:{d.minute:02d}h"]                                                  │
│   46                                                                                                                 │
│                                                                                                                      │
│ ╭────────────── locals ──────────────╮                                                                               │
│ │ self = InfoLine(name='InfoLine#1') │                                                                               │
│ ╰────────────────────────────────────╯                                                                               │
╰──────────────────────────────────────────────────────────────────────────────────────────────────────────────────────╯
AttributeError: 'InfoLine' object has no attribute 'boot_time'

Arch

╭───────────────────────────────── Traceback (most recent call last) ──────────────────────────────────╮
│                                                                                                      │
│ /home/horseinthesky/bla/.venv/lib/python3.9/site-packages/tiptop/_info.py:24 in on_mount             │
│                                                                                                      │
│   21 │   │   │   system_string = " ".join(                                                           │
│   22 │   │   │   │   [                                                                               │
│   23 │   │   │   │   │   ri["name"],                                                                 │
│ ❱ 24 │   │   │   │   │   ri["version_id"],                                                           │
│   25 │   │   │   │   │   f"{platform.architecture()[0]} / {platform.release()}",                     │
│   26 │   │   │   │   ]                                                                               │
│   27 │   │   │   )                                                                                   │
│                                                                                                      │
│ ╭───────────────────────────── locals ─────────────────────────────╮                                 │
│ │     ri = {                                                       │                                 │
│ │          │   'name': 'Arch Linux',                               │                                 │
│ │          │   'pretty_name': 'Arch Linux',                        │                                 │
│ │          │   'id': 'arch',                                       │                                 │
│ │          │   'build_id': 'rolling',                              │                                 │
│ │          │   'ansi_color': '38;2;23;147;209',                    │                                 │
│ │          │   'home_url': 'https://archlinux.org/',               │                                 │
│ │          │   'documentation_url': 'https://wiki.archlinux.org/', │                                 │
│ │          │   'support_url': 'https://bbs.archlinux.org/',        │                                 │
│ │          │   'bug_report_url': 'https://bugs.archlinux.org/',    │                                 │
│ │          │   'logo': 'archlinux'                                 │                                 │
│ │          }                                                       │                                 │
│ │   self = InfoLine(name='InfoLine#1')                             │                                 │
│ │ system = 'Linux'                                                 │                                 │
│ ╰──────────────────────────────────────────────────────────────────╯                                 │
╰──────────────────────────────────────────────────────────────────────────────────────────────────────╯
KeyError: 'version_id'
╭───────────────────────────────── Traceback (most recent call last) ──────────────────────────────────╮
│                                                                                                      │
│ /home/horseinthesky/bla/.venv/lib/python3.9/site-packages/textual/widget.py:202 in _get_lines        │
│                                                                                                      │
│   199 │   def _get_lines(self) -> Lines:                                                             │
│   200 │   │   """Get segment lines to render the widget."""                                          │
│   201 │   │   if self.render_cache is None:                                                          │
│ ❱ 202 │   │   │   self.render_lines()                                                                │
│   203 │   │   assert self.render_cache is not None                                                   │
│   204 │   │   lines = self.render_cache.lines                                                        │
│   205 │   │   return lines                                                                           │
│                                                                                                      │
│ ╭────────────── locals ──────────────╮                                                               │
│ │ self = InfoLine(name='InfoLine#1') │                                                               │
│ ╰────────────────────────────────────╯                                                               │
│ /home/horseinthesky/bla/.venv/lib/python3.9/site-packages/textual/widget.py:188 in render_lines      │
│                                                                                                      │
│   185 │                                                                                              │
│   186 │   def render_lines(self) -> None:                                                            │
│   187 │   │   width, height = self.size                                                              │
│ ❱ 188 │   │   renderable = self.render_styled()                                                      │
│   189 │   │   options = self.console.options.update_dimensions(width, height)                        │
│   190 │   │   lines = self.console.render_lines(renderable, options)                                 │
│   191 │   │   self.render_cache = RenderCache(self.size, lines)                                      │
│                                                                                                      │
│ ╭─────────────── locals ───────────────╮                                                             │
│ │ height = 1                           │                                                             │
│ │   self = InfoLine(name='InfoLine#1') │                                                             │
│ │  width = 104                         │                                                             │
│ ╰──────────────────────────────────────╯                                                             │
│                                                                                                      │
│ /home/horseinthesky/bla/.venv/lib/python3.9/site-packages/textual/widget.py:128 in render_styled     │
│                                                                                                      │
│   125 │   │   Returns:                                                                               │
│   126 │   │   │   RenderableType: A new renderable.                                                  │
│   127 │   │   """                                                                                    │
│ ❱ 128 │   │   renderable = self.render()                                                             │
│   129 │   │   if self.padding is not None:                                                           │
│   130 │   │   │   renderable = Padding(renderable, self.padding)                                     │
│   131 │   │   if self.border in self.BOX_MAP:                                                        │
│                                                                                                      │
│ ╭────────────── locals ──────────────╮                                                               │
│ │ self = InfoLine(name='InfoLine#1') │                                                               │
│ ╰────────────────────────────────────╯                                                               │
│                                                                                                      │
│ /home/horseinthesky/bla/.venv/lib/python3.9/site-packages/tiptop/_info.py:43 in render               │
│                                                                                                      │
│   40 │   │   self.boot_time = psutil.boot_time()                                                     │
│   41 │                                                                                               │
│   42 │   def render(self):                                                                           │
│ ❱ 43 │   │   uptime_s = time.time() - self.boot_time                                                 │
│   44 │   │   d = datetime(1, 1, 1) + timedelta(seconds=uptime_s)                                     │
│   45 │   │   right = [f"up {d.day - 1}d, {d.hour}:{d.minute:02d}h"]                                  │
│   46                                                                                                 │
│                                                                                                      │
│ ╭────────────── locals ──────────────╮                                                               │
│ │ self = InfoLine(name='InfoLine#1') │                                                               │
│ ╰────────────────────────────────────╯                                                               │
╰──────────────────────────────────────────────────────────────────────────────────────────────────────╯
AttributeError: 'InfoLine' object has no attribute 'boot_time'
╭───────────────────────────────── Traceback (most recent call last) ──────────────────────────────────╮
│                                                                                                      │
│ /home/horseinthesky/bla/.venv/lib/python3.9/site-packages/textual/widget.py:202 in _get_lines        │
│                                                                                                      │
│   199 │   def _get_lines(self) -> Lines:                                                             │
│   200 │   │   """Get segment lines to render the widget."""                                          │
│   201 │   │   if self.render_cache is None:                                                          │
│ ❱ 202 │   │   │   self.render_lines()                                                                │
│   203 │   │   assert self.render_cache is not None                                                   │
│   204 │   │   lines = self.render_cache.lines                                                        │
│   205 │   │   return lines                                                                           │
│                                                                                                      │
│ ╭────────────── locals ──────────────╮                                                               │
│ │ self = InfoLine(name='InfoLine#1') │                                                               │
│ ╰────────────────────────────────────╯                                                               │
│ /home/horseinthesky/bla/.venv/lib/python3.9/site-packages/textual/widget.py:188 in render_lines      │
│                                                                                                      │
│   185 │                                                                                              │
│   186 │   def render_lines(self) -> None:                                                            │
│   187 │   │   width, height = self.size                                                              │
│ ❱ 188 │   │   renderable = self.render_styled()                                                      │
│   189 │   │   options = self.console.options.update_dimensions(width, height)                        │
│   190 │   │   lines = self.console.render_lines(renderable, options)                                 │
│   191 │   │   self.render_cache = RenderCache(self.size, lines)                                      │
│                                                                                                      │
│ ╭─────────────── locals ───────────────╮                                                             │
│ │ height = 1                           │                                                             │
│ │   self = InfoLine(name='InfoLine#1') │                                                             │
│ │  width = 104                         │                                                             │
│ ╰──────────────────────────────────────╯                                                             │
│                                                                                                      │
│ /home/horseinthesky/bla/.venv/lib/python3.9/site-packages/textual/widget.py:128 in render_styled     │
│                                                                                                      │
│   125 │   │   Returns:                                                                               │
│   126 │   │   │   RenderableType: A new renderable.                                                  │
│   127 │   │   """                                                                                    │
│ ❱ 128 │   │   renderable = self.render()                                                             │
│   129 │   │   if self.padding is not None:                                                           │
│   130 │   │   │   renderable = Padding(renderable, self.padding)                                     │
│   131 │   │   if self.border in self.BOX_MAP:                                                        │
│                                                                                                      │
│ ╭────────────── locals ──────────────╮                                                               │
│ │ self = InfoLine(name='InfoLine#1') │                                                               │
│ ╰────────────────────────────────────╯                                                               │
│                                                                                                      │
│ /home/horseinthesky/bla/.venv/lib/python3.9/site-packages/tiptop/_info.py:43 in render               │
│                                                                                                      │
│   40 │   │   self.boot_time = psutil.boot_time()                                                     │
│   41 │                                                                                               │
│   42 │   def render(self):                                                                           │
│ ❱ 43 │   │   uptime_s = time.time() - self.boot_time                                                 │
│   44 │   │   d = datetime(1, 1, 1) + timedelta(seconds=uptime_s)                                     │
│   45 │   │   right = [f"up {d.day - 1}d, {d.hour}:{d.minute:02d}h"]                                  │
│   46                                                                                                 │
│                                                                                                      │
│ ╭────────────── locals ──────────────╮                                                               │
│ │ self = InfoLine(name='InfoLine#1') │                                                               │
│ ╰────────────────────────────────────╯                                                               │
╰──────────────────────────────────────────────────────────────────────────────────────────────────────╯
AttributeError: 'InfoLine' object has no attribute 'boot_time'
╭───────────────────────────────── Traceback (most recent call last) ──────────────────────────────────╮
│                                                                                                      │
│ /home/horseinthesky/bla/.venv/lib/python3.9/site-packages/textual/widget.py:202 in _get_lines        │
│                                                                                                      │
│   199 │   def _get_lines(self) -> Lines:                                                             │
│   200 │   │   """Get segment lines to render the widget."""                                          │
│   201 │   │   if self.render_cache is None:                                                          │
│ ❱ 202 │   │   │   self.render_lines()                                                                │
│   203 │   │   assert self.render_cache is not None                                                   │
│   204 │   │   lines = self.render_cache.lines                                                        │
│   205 │   │   return lines                                                                           │
│                                                                                                      │
│ ╭────────────── locals ──────────────╮                                                               │
│ │ self = InfoLine(name='InfoLine#1') │                                                               │
│ ╰────────────────────────────────────╯                                                               │
│ /home/horseinthesky/bla/.venv/lib/python3.9/site-packages/textual/widget.py:188 in render_lines      │
│                                                                                                      │
│   185 │                                                                                              │
│   186 │   def render_lines(self) -> None:                                                            │
│   187 │   │   width, height = self.size                                                              │
│ ❱ 188 │   │   renderable = self.render_styled()                                                      │
│   189 │   │   options = self.console.options.update_dimensions(width, height)                        │
│   190 │   │   lines = self.console.render_lines(renderable, options)                                 │
│   191 │   │   self.render_cache = RenderCache(self.size, lines)                                      │
│                                                                                                      │
│ ╭─────────────── locals ───────────────╮                                                             │
│ │ height = 1                           │                                                             │
│ │   self = InfoLine(name='InfoLine#1') │                                                             │
│ │  width = 104                         │                                                             │
│ ╰──────────────────────────────────────╯                                                             │
│                                                                                                      │
│ /home/horseinthesky/bla/.venv/lib/python3.9/site-packages/textual/widget.py:128 in render_styled     │
│                                                                                                      │
│   125 │   │   Returns:                                                                               │
│   126 │   │   │   RenderableType: A new renderable.                                                  │
│   127 │   │   """                                                                                    │
│ ❱ 128 │   │   renderable = self.render()                                                             │
│   129 │   │   if self.padding is not None:                                                           │
│   130 │   │   │   renderable = Padding(renderable, self.padding)                                     │
│   131 │   │   if self.border in self.BOX_MAP:                                                        │
│                                                                                                      │
│ ╭────────────── locals ──────────────╮                                                               │
│ │ self = InfoLine(name='InfoLine#1') │                                                               │
│ ╰────────────────────────────────────╯                                                               │
│                                                                                                      │
│ /home/horseinthesky/bla/.venv/lib/python3.9/site-packages/tiptop/_info.py:43 in render               │
│                                                                                                      │
│   40 │   │   self.boot_time = psutil.boot_time()                                                     │
│   41 │                                                                                               │
│   42 │   def render(self):                                                                           │
│ ❱ 43 │   │   uptime_s = time.time() - self.boot_time                                                 │
│   44 │   │   d = datetime(1, 1, 1) + timedelta(seconds=uptime_s)                                     │
│   45 │   │   right = [f"up {d.day - 1}d, {d.hour}:{d.minute:02d}h"]                                  │
│   46                                                                                                 │
│                                                                                                      │
│ ╭────────────── locals ──────────────╮                                                               │
│ │ self = InfoLine(name='InfoLine#1') │                                                               │
│ ╰────────────────────────────────────╯                                                               │
╰──────────────────────────────────────────────────────────────────────────────────────────────────────╯
AttributeError: 'InfoLine' object has no attribute 'boot_time'

@horseinthesky Some of those issue have been fixed.

@horseinthesky Some of those issue have been fixed.

Thank you. Both Ubuntu and Arch are fixed.

Thanks for checking!