On Mon, 2026-01-19 at 17:45 -0300, Wander Lairson Costa wrote:
> Replace hardcoded string literal and magic number with a class
> constant for the initial state marker in DOT file parsing. The
> previous implementation used the magic string "__init_" directly
> in the code along with a hardcoded length of 7 for substring
> extraction, which made the code less maintainable and harder to
> understand.
>
> This change introduces a class constant init_marker to serve as
> a single source of truth for the initial state prefix. The code
> now uses startswith() for clearer intent and calculates the
> substring position dynamically using len(), eliminating the magic
> number. If the marker value needs to change in the future, only
> the constant definition requires updating rather than multiple
> locations in the code.
>
> The refactoring improves code readability and maintainability
> while preserving the exact same runtime behavior.
>
Looks good, thanks.
Reviewed-by: Gabriele Monaco <gmonaco@redhat.com>
> Signed-off-by: Wander Lairson Costa <wander@redhat.com>
> ---
> tools/verification/rvgen/rvgen/automata.py | 5 +++--
> 1 file changed, 3 insertions(+), 2 deletions(-)
>
> diff --git a/tools/verification/rvgen/rvgen/automata.py
> b/tools/verification/rvgen/rvgen/automata.py
> index b302af3e5133e..8548265955570 100644
> --- a/tools/verification/rvgen/rvgen/automata.py
> +++ b/tools/verification/rvgen/rvgen/automata.py
> @@ -25,6 +25,7 @@ class Automata:
> """
>
> invalid_state_str = "INVALID_STATE"
> + init_marker = "__init_"
>
> def __init__(self, file_path, model_name=None):
> self.__dot_path = file_path
> @@ -96,8 +97,8 @@ class Automata:
>
> # "enabled_fired"}; -> enabled_fired
> state = raw_state.replace('"', '').replace('};', '').replace(',',
> '_')
> - if state[0:7] == "__init_":
> - initial_state = state[7:]
> + if state.startswith(self.init_marker):
> + initial_state = state[len(self.init_marker):]
> else:
> states.append(state)
> if "doublecircle" in self.__dot_lines[cursor]: