diff --git a/aiogram/contrib/fsm_storage/mongo.py b/aiogram/contrib/fsm_storage/mongo.py index ab7d3176..0055743a 100644 --- a/aiogram/contrib/fsm_storage/mongo.py +++ b/aiogram/contrib/fsm_storage/mongo.py @@ -213,12 +213,5 @@ class MongoStorage(BaseStorage): :return: list of tuples where first element is chat id and second is user id """ db = await self.get_db() - result = [] - items = await db[STATE].find().to_list() - for item in items: - result.append( - (int(item['chat']), int(item['user'])) - ) - - return result + return [(int(item['chat']), int(item['user'])) for item in items] diff --git a/aiogram/dispatcher/dispatcher.py b/aiogram/dispatcher/dispatcher.py index 5e696f19..1e36f202 100644 --- a/aiogram/dispatcher/dispatcher.py +++ b/aiogram/dispatcher/dispatcher.py @@ -232,9 +232,7 @@ class Dispatcher(DataMixin, ContextInstanceMixin): :return: """ if fast: - tasks = [] - for update in updates: - tasks.append(self.updates_handler.notify(update)) + tasks = [self.updates_handler.notify(update) for update in updates] return await asyncio.gather(*tasks) results = [] diff --git a/aiogram/dispatcher/filters/factory.py b/aiogram/dispatcher/filters/factory.py index 564e7f89..d53047d5 100644 --- a/aiogram/dispatcher/filters/factory.py +++ b/aiogram/dispatcher/filters/factory.py @@ -48,9 +48,13 @@ class FiltersFactory: :param full_config: :return: """ - filters_set = [] - filters_set.extend(self._resolve_registered(event_handler, - {k: v for k, v in full_config.items() if v is not None})) + filters_set = list( + self._resolve_registered( + event_handler, + {k: v for k, v in full_config.items() if v is not None}, + ) + ) + if custom_filters: filters_set.extend(custom_filters) diff --git a/aiogram/dispatcher/filters/filters.py b/aiogram/dispatcher/filters/filters.py index 220ef96c..47a4f22e 100644 --- a/aiogram/dispatcher/filters/filters.py +++ b/aiogram/dispatcher/filters/filters.py @@ -242,7 +242,7 @@ class NotFilter(_LogicFilter): class AndFilter(_LogicFilter): def __init__(self, *targets): - self.targets = list(wrap_async(target) for target in targets) + self.targets = [wrap_async(target) for target in targets] async def check(self, *args): """ @@ -268,7 +268,7 @@ class AndFilter(_LogicFilter): class OrFilter(_LogicFilter): def __init__(self, *targets): - self.targets = list(wrap_async(target) for target in targets) + self.targets = [wrap_async(target) for target in targets] async def check(self, *args): """ diff --git a/aiogram/types/fields.py b/aiogram/types/fields.py index 7994f04e..f898fc62 100644 --- a/aiogram/types/fields.py +++ b/aiogram/types/fields.py @@ -131,22 +131,14 @@ class ListField(Field): def serialize(self, value): if value is None: return None - - result = [] serialize = super(ListField, self).serialize - for item in value: - result.append(serialize(item)) - return result + return [serialize(item) for item in value] def deserialize(self, value, parent=None): if value is None: return None - - result = [] deserialize = super(ListField, self).deserialize - for item in value: - result.append(deserialize(item, parent=parent)) - return result + return [deserialize(item, parent=parent) for item in value] class ListOfLists(Field): @@ -154,9 +146,7 @@ class ListOfLists(Field): result = [] serialize = super(ListOfLists, self).serialize for row in value: - row_result = [] - for item in row: - row_result.append(serialize(item)) + row_result = [serialize(item) for item in row] result.append(row_result) return result @@ -165,9 +155,7 @@ class ListOfLists(Field): deserialize = super(ListOfLists, self).deserialize if hasattr(value, '__iter__'): for row in value: - row_result = [] - for item in row: - row_result.append(deserialize(item, parent=parent)) + row_result = [deserialize(item, parent=parent) for item in row] result.append(row_result) return result diff --git a/aiogram/types/inline_keyboard.py b/aiogram/types/inline_keyboard.py index 49a947be..195c1e67 100644 --- a/aiogram/types/inline_keyboard.py +++ b/aiogram/types/inline_keyboard.py @@ -62,9 +62,7 @@ class InlineKeyboardMarkup(base.TelegramObject): :return: self :rtype: :obj:`types.InlineKeyboardMarkup` """ - btn_array = [] - for button in args: - btn_array.append(button) + btn_array = [button for button in args] self.inline_keyboard.append(btn_array) return self diff --git a/aiogram/types/reply_keyboard.py b/aiogram/types/reply_keyboard.py index 7bfdb8e6..8455aff6 100644 --- a/aiogram/types/reply_keyboard.py +++ b/aiogram/types/reply_keyboard.py @@ -79,9 +79,7 @@ class ReplyKeyboardMarkup(base.TelegramObject): :return: self :rtype: :obj:`types.ReplyKeyboardMarkup` """ - btn_array = [] - for button in args: - btn_array.append(button) + btn_array = [button for button in args] self.keyboard.append(btn_array) return self diff --git a/aiogram/utils/helper.py b/aiogram/utils/helper.py index 2189d1dc..55a134a3 100644 --- a/aiogram/utils/helper.py +++ b/aiogram/utils/helper.py @@ -198,10 +198,14 @@ class OrderedHelperMeta(type): def __new__(mcs, name, bases, namespace, **kwargs): cls = super().__new__(mcs, name, bases, namespace) - props_keys = [] - - for prop_name in (name for name, prop in namespace.items() if isinstance(prop, (Item, ListItem))): - props_keys.append(prop_name) + props_keys = [ + prop_name + for prop_name in ( + name + for name, prop in namespace.items() + if isinstance(prop, (Item, ListItem)) + ) + ] setattr(cls, PROPS_KEYS_ATTR_NAME, props_keys)