Skip to content

monitor: fix crash when filter_regex is None from argparse by default#779

Merged
andlaus merged 1 commit intocantools:masterfrom
trnila:monitor_argparse_filter_is_empty_str
Mar 6, 2026
Merged

monitor: fix crash when filter_regex is None from argparse by default#779
andlaus merged 1 commit intocantools:masterfrom
trnila:monitor_argparse_filter_is_empty_str

Conversation

@trnila
Copy link
Collaborator

@trnila trnila commented Mar 4, 2026

Argparse passes None instead of an empty string, causing a crash when the filter argument is not provided:

 $ cantools -d monitor -i socketcan tests/files/dbc/motohawk.dbc

  ... press f

    Monitor(stdscr, args).run()
    ~~~~~~~~~~~~~~~~~~~~~~~~~^^
  File "cantools/subparsers/monitor.py", line 109, in run
    self.tick(max_num_keys_per_tick)
    ~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^
  File "cantools/subparsers/monitor.py", line 121, in tick
    self.process_user_input(max_num_keys)
    ~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^
  File "cantools/subparsers/monitor.py", line 247, in process_user_input
    self.process_user_input_menu(key)
    ~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^
  File "cantools/subparsers/monitor.py", line 271, in process_user_input_menu
    self._filter_cursor_pos = len(self._filter)
                              ~~~^^^^^^^^^^^^^^
TypeError: object of type 'NoneType' has no len()

 $ cantools -d monitor -i socketcan tests/files/dbc/motohawk.dbc

  ... press f

    Monitor(stdscr, args).run()
    ~~~~~~~~~~~~~~~~~~~~~~~~~^^
  File "cantools/subparsers/monitor.py", line 109, in run
    self.tick(max_num_keys_per_tick)
    ~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^
  File "cantools/subparsers/monitor.py", line 121, in tick
    self.process_user_input(max_num_keys)
    ~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^
  File "cantools/subparsers/monitor.py", line 247, in process_user_input
    self.process_user_input_menu(key)
    ~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^
  File "cantools/subparsers/monitor.py", line 271, in process_user_input_menu
    self._filter_cursor_pos = len(self._filter)
                              ~~~^^^^^^^^^^^^^^
TypeError: object of type 'NoneType' has no len()
@trnila trnila requested a review from andlaus March 4, 2026 23:50
@andlaus
Copy link
Member

andlaus commented Mar 6, 2026

thanks, merging. @zariiii9003: you may merge such obvious fixes yourself. i.e., you don't need to wait for me if you're happy with a PR...

@andlaus andlaus merged commit 5bb0801 into cantools:master Mar 6, 2026
19 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants