1
0
mirror of https://github.com/eternnoir/pyTelegramBotAPI.git synced 2023-08-10 21:12:57 +03:00

Merge pull request #1964 from Cub11k/add_state_list

Add state_list to StatesGroup
This commit is contained in:
_run 2023-04-15 01:53:00 +05:00 committed by GitHub
commit 370f0370c7
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
2 changed files with 15 additions and 2 deletions

View File

@ -74,12 +74,18 @@ class StatesGroup:
my_state = State() # returns my_state:State string. my_state = State() # returns my_state:State string.
""" """
def __init_subclass__(cls) -> None: def __init_subclass__(cls) -> None:
state_list = []
for name, value in cls.__dict__.items(): for name, value in cls.__dict__.items():
if not name.startswith('__') and not callable(value) and isinstance(value, State): if not name.startswith('__') and not callable(value) and isinstance(value, State):
# change value of that variable # change value of that variable
value.name = ':'.join((cls.__name__, name)) value.name = ':'.join((cls.__name__, name))
value.group = cls value.group = cls
state_list.append(value)
cls._state_list = state_list
@property
def state_list(self):
return self._state_list
class SkipHandler: class SkipHandler:

View File

@ -185,11 +185,18 @@ class StatesGroup:
my_state = State() # returns my_state:State string. my_state = State() # returns my_state:State string.
""" """
def __init_subclass__(cls) -> None: def __init_subclass__(cls) -> None:
state_list = []
for name, value in cls.__dict__.items(): for name, value in cls.__dict__.items():
if not name.startswith('__') and not callable(value) and isinstance(value, State): if not name.startswith('__') and not callable(value) and isinstance(value, State):
# change value of that variable # change value of that variable
value.name = ':'.join((cls.__name__, name)) value.name = ':'.join((cls.__name__, name))
value.group = cls value.group = cls
state_list.append(value)
cls._state_list = state_list
@property
def state_list(self):
return self._state_list
class BaseMiddleware: class BaseMiddleware: