From e9a3ca6c8eb45112a53d95a9c216e66832404bd5 Mon Sep 17 00:00:00 2001 From: Alex Root Junior Date: Wed, 23 Aug 2017 23:27:03 +0300 Subject: [PATCH] Refactor filter checker. --- aiogram/dispatcher/filters.py | 13 ++++--------- 1 file changed, 4 insertions(+), 9 deletions(-) diff --git a/aiogram/dispatcher/filters.py b/aiogram/dispatcher/filters.py index d1968968..d62f5310 100644 --- a/aiogram/dispatcher/filters.py +++ b/aiogram/dispatcher/filters.py @@ -5,18 +5,13 @@ from ..utils.helper import Helper, HelperMode, Item async def check_filter(filter_, args, kwargs): - # TODO: Refactor that shit. + if not callable(filter_): + raise TypeError('Filter must be callable and/or awaitable!') - if any((inspect.isasyncgen(filter_), - inspect.iscoroutine(filter_), - inspect.isawaitable(filter_), - inspect.isasyncgenfunction(filter_), - inspect.iscoroutinefunction(filter_))): + if inspect.isawaitable(filter_) or inspect.iscoroutinefunction(filter_): return await filter_(*args, **kwargs) - elif callable(filter_): - return filter_(*args, **kwargs) else: - return True + return filter_(*args, **kwargs) async def check_filters(filters, args, kwargs):