Skip to content

AttributeError: 'CPU' object has no attribute 'panel' #103

@petersulyok

Description

@petersulyok

Installed with pip and received this error on ArchLinux kernel 5.19, CPU Intel i7-12700K

[root@gianta ~]# tiptop
╭───────────────────── Traceback (most recent call last) ──────────────────────╮
│ /usr/lib/python3.10/site-packages/tiptop/_cpu.py:129 in on_mount             │
│                                                                              │
│   126 │   │   num_threads = psutil.cpu_count(logical=True)                   │
│   127 │   │                                                                  │
│   128 │   │   # 8 threads, 4 cores -> [[0, 4], [1, 5], [2, 6], [3, 7]]       │
│ ❱ 129 │   │   assert num_threads % self.num_cores == 0                       │
│   130 │   │   self.core_threads = transpose(list(chunks(range(num_threads),  │
│   131 │   │                                                                  │
│   132 │   │   self.cpu_total_stream = BrailleStream(50, 7, 0.0, 100.0)       │
│                                                                              │
│ ╭──────────── locals ─────────────╮                                          │
│ │ num_threads = 20                │                                          │
│ │        self = CPU(name='CPU#1') │                                          │
│ ╰─────────────────────────────────╯                                          │
╰──────────────────────────────────────────────────────────────────────────────╯
AssertionError
╭───────────────────── Traceback (most recent call last) ──────────────────────╮
│ /usr/lib/python3.10/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 = CPU(name='CPU#1') │                                                 │
│ ╰──────────────────────────╯                                                 │
│                                                                              │
│ /usr/lib/python3.10/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 = 8                 │                                               │
│ │   self = CPU(name='CPU#1') │                                               │
│ │  width = 49                │                                               │
│ ╰────────────────────────────╯                                               │
│                                                                              │
│ /usr/lib/python3.10/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 = CPU(name='CPU#1') │                                                 │
│ ╰──────────────────────────╯                                                 │
│                                                                              │
│ /usr/lib/python3.10/site-packages/tiptop/_cpu.py:312 in render               │
│                                                                              │
│   309 │   │   self.info_box_width = 4 + len(Text.from_markup(lines[0]))      │
│   310 │                                                                      │
│   311 │   def render(self):                                                  │
│ ❱ 312 │   │   return self.panel                                              │
│   313 │                                                                      │
│   314 │   async def on_resize(self, event):                                  │
│   315 │   │   self.width = event.width                                       │
│                                                                              │
│ ╭───────── locals ─────────╮                                                 │
│ │ self = CPU(name='CPU#1') │                                                 │
│ ╰──────────────────────────╯                                                 │
╰──────────────────────────────────────────────────────────────────────────────╯
AttributeError: 'CPU' object has no attribute 'panel'
╭───────────────────── Traceback (most recent call last) ──────────────────────╮
│ /usr/lib/python3.10/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 = CPU(name='CPU#1') │                                                 │
│ ╰──────────────────────────╯                                                 │
│                                                                              │
│ /usr/lib/python3.10/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 = 8                 │                                               │
│ │   self = CPU(name='CPU#1') │                                               │
│ │  width = 49                │                                               │
│ ╰────────────────────────────╯                                               │
│                                                                              │
│ /usr/lib/python3.10/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 = CPU(name='CPU#1') │                                                 │
│ ╰──────────────────────────╯                                                 │
│                                                                              │
│ /usr/lib/python3.10/site-packages/tiptop/_cpu.py:312 in render               │
│                                                                              │
│   309 │   │   self.info_box_width = 4 + len(Text.from_markup(lines[0]))      │
│   310 │                                                                      │
│   311 │   def render(self):                                                  │
│ ❱ 312 │   │   return self.panel                                              │
│   313 │                                                                      │
│   314 │   async def on_resize(self, event):                                  │
│   315 │   │   self.width = event.width                                       │
│                                                                              │
│ ╭───────── locals ─────────╮                                                 │
│ │ self = CPU(name='CPU#1') │                                                 │
│ ╰──────────────────────────╯                                                 │
╰──────────────────────────────────────────────────────────────────────────────╯
AttributeError: 'CPU' object has no attribute 'panel'
╭───────────────────── Traceback (most recent call last) ──────────────────────╮
│ /usr/lib/python3.10/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 = CPU(name='CPU#1') │                                                 │
│ ╰──────────────────────────╯                                                 │
│                                                                              │
│ /usr/lib/python3.10/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 = 8                 │                                               │
│ │   self = CPU(name='CPU#1') │                                               │
│ │  width = 49                │                                               │
│ ╰────────────────────────────╯                                               │
│                                                                              │
│ /usr/lib/python3.10/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 = CPU(name='CPU#1') │                                                 │
│ ╰──────────────────────────╯                                                 │
│                                                                              │
│ /usr/lib/python3.10/site-packages/tiptop/_cpu.py:312 in render               │
│                                                                              │
│   309 │   │   self.info_box_width = 4 + len(Text.from_markup(lines[0]))      │
│   310 │                                                                      │
│   311 │   def render(self):                                                  │
│ ❱ 312 │   │   return self.panel                                              │
│   313 │                                                                      │
│   314 │   async def on_resize(self, event):                                  │
│   315 │   │   self.width = event.width                                       │
│                                                                              │
│ ╭───────── locals ─────────╮                                                 │
│ │ self = CPU(name='CPU#1') │                                                 │
│ ╰──────────────────────────╯                                                 │
╰──────────────────────────────────────────────────────────────────────────────╯

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions