diff --git a/telebot/asyncio_handler_backends.py b/telebot/asyncio_handler_backends.py index 96e13ee..a565023 100644 --- a/telebot/asyncio_handler_backends.py +++ b/telebot/asyncio_handler_backends.py @@ -74,12 +74,18 @@ class StatesGroup: my_state = State() # returns my_state:State string. """ def __init_subclass__(cls) -> None: - + state_list = [] for name, value in cls.__dict__.items(): if not name.startswith('__') and not callable(value) and isinstance(value, State): # change value of that variable value.name = ':'.join((cls.__name__, name)) value.group = cls + state_list.append(value) + cls._state_list = state_list + + @property + def state_list(self): + return self._state_list class SkipHandler: diff --git a/telebot/handler_backends.py b/telebot/handler_backends.py index be2714c..2e4f86e 100644 --- a/telebot/handler_backends.py +++ b/telebot/handler_backends.py @@ -185,13 +185,20 @@ class StatesGroup: my_state = State() # returns my_state:State string. """ def __init_subclass__(cls) -> None: + state_list = [] for name, value in cls.__dict__.items(): if not name.startswith('__') and not callable(value) and isinstance(value, State): # change value of that variable value.name = ':'.join((cls.__name__, name)) value.group = cls + state_list.append(value) + cls._state_list = state_list + + @property + def state_list(self): + return self._state_list + - class BaseMiddleware: """ Base class for middleware.