dooit-org/dooit

[BUG] IndexError: list index out of range

GrimPixel opened this issue ยท 3 comments

Describe the bug ๐Ÿ›
A clear and concise description of what the bug is.

To Reproduce ๐Ÿฃ
Just typed some keys I forgot, with some Arabic input.

Expected behavior ๐Ÿค”
Nothing wrong happens.

Screenshots ๐Ÿง

Desktop (please complete the following information): ๐Ÿค–

  • OS: Linux
  • Version 2.0.1

Additional context ๐Ÿ“

โ•ญโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€ Traceback (most recent call last) โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ•ฎ
โ”‚ /home/user/venv/lib/python3.11/site-packages/dooit/ui/screens/index.py:63 in on_key                                        โ”‚
โ”‚                                                                                                                            โ”‚
โ”‚    60 โ”‚   โ”‚   โ”‚   return await self.query_one(Searcher).keypress(key)                                                      โ”‚
โ”‚    61 โ”‚   โ”‚                                                                                                                โ”‚
โ”‚    62 โ”‚   โ”‚   visible_focused = [i for i in self.query(".focus") if i.display][0]                                          โ”‚
โ”‚ โฑ  63 โ”‚   โ”‚   await visible_focused.keypress(key)                                                                          โ”‚
โ”‚    64 โ”‚                                                                                                                    โ”‚
โ”‚    65 โ”‚   async def clear_right(self) -> None:                                                                             โ”‚
โ”‚    66 โ”‚   โ”‚   try:                                                                                                         โ”‚
โ”‚                                                                                                                            โ”‚
โ”‚ โ•ญโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€ locals โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ•ฎ      โ”‚
โ”‚ โ”‚           event = Key(key='enter', character='\r', name='enter', is_printable=False, aliases=['enter', 'ctrl+m']) โ”‚      โ”‚
โ”‚ โ”‚             key = 'enter'                                                                                         โ”‚      โ”‚
โ”‚ โ”‚            self = MainScreen(name='main')                                                                         โ”‚      โ”‚
โ”‚ โ”‚ visible_focused = TodoTree(id='Tree-workspace_8758079a-caaa-4067-8109-017502b92d0c')                              โ”‚      โ”‚
โ”‚ โ•ฐโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ•ฏ      โ”‚
โ”‚                                                                                                                            โ”‚
โ”‚ /home/user/venv/lib/python3.11/site-packages/dooit/ui/widgets/tree.py:488 in keypress                                      โ”‚
โ”‚                                                                                                                            โ”‚
โ”‚   485 โ”‚   โ”‚   if self.current_visible_widget and hasattr(                                                                  โ”‚
โ”‚   486 โ”‚   โ”‚   โ”‚   self.current_visible_widget, "keypress"                                                                  โ”‚
โ”‚   487 โ”‚   โ”‚   ):                                                                                                           โ”‚
โ”‚ โฑ 488 โ”‚   โ”‚   โ”‚   return await getattr(self.current_visible_widget, "keypress")(key)                                       โ”‚
โ”‚   489 โ”‚   โ”‚                                                                                                                โ”‚
โ”‚   490 โ”‚   โ”‚   if self.current and self.current._is_editing():                                                              โ”‚
โ”‚   491 โ”‚   โ”‚   โ”‚   return await self.current.keypress(key)                                                                  โ”‚
โ”‚                                                                                                                            โ”‚
โ”‚ โ•ญโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€ locals โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ•ฎ                                              โ”‚
โ”‚ โ”‚  key = 'enter'                                                            โ”‚                                              โ”‚
โ”‚ โ”‚ self = TodoTree(id='Tree-workspace_8758079a-caaa-4067-8109-017502b92d0c') โ”‚                                              โ”‚
โ”‚ โ•ฐโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ•ฏ                                              โ”‚
โ”‚                                                                                                                            โ”‚
โ”‚ /home/user/venv/lib/python3.11/site-packages/dooit/ui/widgets/base.py:41 in keypress                                       โ”‚
โ”‚                                                                                                                            โ”‚
โ”‚   38 โ”‚   โ”‚   โ”‚   โ”‚   if bind.check_for_cursor and not self.is_cursor_available:                                            โ”‚
โ”‚   39 โ”‚   โ”‚   โ”‚   โ”‚   โ”‚   return                                                                                            โ”‚
โ”‚   40 โ”‚   โ”‚   โ”‚   โ”‚                                                                                                         โ”‚
โ”‚ โฑ 41 โ”‚   โ”‚   โ”‚   โ”‚   res = await func(*bind.params)                                                                        โ”‚
โ”‚   42 โ”‚   โ”‚   โ”‚   โ”‚   if isinstance(res, Result) and res.message:                                                           โ”‚
โ”‚   43 โ”‚   โ”‚   โ”‚   โ”‚   โ”‚   self.post_message(Notify(res.text()))                                                             โ”‚
โ”‚   44                                                                                                                       โ”‚
โ”‚                                                                                                                            โ”‚
โ”‚ โ•ญโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€ locals โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ•ฎ    โ”‚
โ”‚ โ”‚ bind = <dooit.utils.keybinder.Bind object at 0x7f8c744b92d0>                                                        โ”‚    โ”‚
โ”‚ โ”‚ func = <bound method SearchMenu.stop of SearchMenu(id='SearchMenu-workspace_8758079a-caaa-4067-8109-017502b92d0c')> โ”‚    โ”‚
โ”‚ โ”‚  key = 'enter'                                                                                                      โ”‚    โ”‚
โ”‚ โ”‚ self = SearchMenu(id='SearchMenu-workspace_8758079a-caaa-4067-8109-017502b92d0c')                                   โ”‚    โ”‚
โ”‚ โ•ฐโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ•ฏ    โ”‚
โ”‚                                                                                                                            โ”‚
โ”‚ /home/user/venv/lib/python3.11/site-packages/dooit/ui/widgets/search_menu.py:55 in stop                                    โ”‚
โ”‚                                                                                                                            โ”‚
โ”‚   52 โ”‚   async def stop(self) -> None:                                                                                     โ”‚
โ”‚   53 โ”‚   โ”‚   from dooit.ui.widgets.tree import Tree                                                                        โ”‚
โ”‚   54 โ”‚   โ”‚                                                                                                                 โ”‚
โ”‚ โฑ 55 โ”‚   โ”‚   if self.current_option:                                                                                       โ”‚
โ”‚   56 โ”‚   โ”‚   โ”‚   query = (                                                                                                 โ”‚
โ”‚   57 โ”‚   โ”‚   โ”‚   โ”‚   "WorkspaceTree"                                                                                       โ”‚
โ”‚   58 โ”‚   โ”‚   โ”‚   โ”‚   if self.children_type == "workspace"                                                                  โ”‚
โ”‚                                                                                                                            โ”‚
โ”‚ โ•ญโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€ locals โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ•ฎ                                      โ”‚
โ”‚ โ”‚ self = SearchMenu(id='SearchMenu-workspace_8758079a-caaa-4067-8109-017502b92d0c') โ”‚                                      โ”‚
โ”‚ โ”‚ Tree = <class 'dooit.ui.widgets.tree.Tree'>                                       โ”‚                                      โ”‚
โ”‚ โ•ฐโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ•ฏ                                      โ”‚
โ”‚                                                                                                                            โ”‚
โ”‚ /home/user/venv/lib/python3.11/site-packages/dooit/ui/widgets/search_menu.py:21 in current_option                          โ”‚
โ”‚                                                                                                                            โ”‚
โ”‚   18 โ”‚                                                                                                                     โ”‚
โ”‚   19 โ”‚   @property                                                                                                         โ”‚
โ”‚   20 โ”‚   def current_option(self) -> Optional[str]:                                                                        โ”‚
โ”‚ โฑ 21 โ”‚   โ”‚   return self.visible_options[self.current][1]                                                                  โ”‚
โ”‚   22 โ”‚                                                                                                                     โ”‚
โ”‚   23 โ”‚   def refresh_options(self) -> None:                                                                                โ”‚
โ”‚   24 โ”‚   โ”‚   self.filter = []                                                                                              โ”‚
โ”‚                                                                                                                            โ”‚
โ”‚ โ•ญโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€ locals โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ•ฎ                                      โ”‚
โ”‚ โ”‚ self = SearchMenu(id='SearchMenu-workspace_8758079a-caaa-4067-8109-017502b92d0c') โ”‚                                      โ”‚
โ”‚ โ•ฐโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ•ฏ                                      โ”‚
โ•ฐโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ•ฏ
IndexError: list index out of range

Did we solve your problem?
Glad we could help!

Consider sponsoring my work through github sponsors ๐Ÿ˜„
โ€“ @kraanzu

Hey! This was an error because you started search mode and dooit tried to find an item but it couldn't find it because the list was empty

You'd have typed '/' which started the search mode

It looks like PyPi has some extra authentication stuff that prevented it from publishing

You can install the latest version using this command:

pip install git+https://github.com/kraanzu/dooit.git