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 <[email protected]>

> Signed-off-by: Wander Lairson Costa <[email protected]>
> ---
>  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]:


Reply via email to