diff --git a/telebot/asyncio_handler_backends.py b/telebot/asyncio_handler_backends.py index 99a7b17..a565023 100644 --- a/telebot/asyncio_handler_backends.py +++ b/telebot/asyncio_handler_backends.py @@ -74,17 +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 [value for name, value in self.__dict__.items() - if not name.startswith('__') and not callable(value) and isinstance(value, State)] + return self._state_list class SkipHandler: diff --git a/telebot/handler_backends.py b/telebot/handler_backends.py index fda6997..2e4f86e 100644 --- a/telebot/handler_backends.py +++ b/telebot/handler_backends.py @@ -185,16 +185,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 [value for name, value in self.__dict__.items() - if not name.startswith('__') and not callable(value) and isinstance(value, State)] + return self._state_list class BaseMiddleware: