Merge branch 'dev-2.x' into sourcery/pull-2

This commit is contained in:
M.Furkan 2020-11-09 00:32:42 +03:00 committed by GitHub
commit 7d723a1083
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23
14 changed files with 55 additions and 75 deletions

View file

@ -206,12 +206,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]

View file

@ -219,15 +219,10 @@ 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 = []
for update in updates:
results.append(await self.updates_handler.notify(update))
return results
return [await self.updates_handler.notify(update) for update in updates]
async def process_update(self, update: types.Update):
"""

View file

@ -278,9 +278,11 @@ class Text(Filter):
elif check == 0:
raise ValueError(f"No one mode is specified!")
equals, contains, endswith, startswith = map(lambda e: [e] if isinstance(e, str) or isinstance(e, LazyProxy)
else e,
(equals, contains, endswith, startswith))
equals, contains, endswith, startswith = map(
lambda e: [e] if isinstance(e, (str, LazyProxy)) else e,
(equals, contains, endswith, startswith),
)
self.equals = equals
self.contains = contains
self.endswith = endswith

View file

@ -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)

View file

@ -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):
"""

View file

@ -25,8 +25,7 @@ class CancelHandler(Exception):
def _get_spec(func: callable):
while hasattr(func, '__wrapped__'): # Try to resolve decorated callbacks
func = func.__wrapped__
spec = inspect.getfullargspec(func)
return spec
return inspect.getfullargspec(func)
def _check_spec(spec: inspect.FullArgSpec, kwargs: dict):

View file

@ -242,8 +242,7 @@ class TelegramObject(ContextInstanceMixin, metaclass=MetaTelegramObject):
:return:
"""
for item in self.to_python().items():
yield item
yield from self.to_python().items()
def iter_keys(self) -> typing.Generator[typing.Any, None, None]:
"""

View file

@ -126,42 +126,32 @@ class ListField(Field):
if default is None:
default = []
super(ListField, self).__init__(*args, default=default, **kwargs)
super().__init__(*args, default=default, **kwargs)
def serialize(self, value):
result = []
serialize = super(ListField, self).serialize
for item in value:
result.append(serialize(item))
return result
serialize = super().serialize
return [serialize(item) for item in value]
def deserialize(self, value, parent=None):
result = []
deserialize = super(ListField, self).deserialize
for item in value:
result.append(deserialize(item, parent=parent))
return result
deserialize = super().deserialize
return [deserialize(item, parent=parent) for item in value]
class ListOfLists(Field):
def serialize(self, value):
result = []
serialize = super(ListOfLists, self).serialize
serialize = super().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
def deserialize(self, value, parent=None):
result = []
deserialize = super(ListOfLists, self).deserialize
deserialize = super().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
@ -183,7 +173,7 @@ class DateTimeField(Field):
class TextField(Field):
def __init__(self, *, prefix=None, suffix=None, default=None, alias=None):
super(TextField, self).__init__(default=default, alias=alias)
super().__init__(default=default, alias=alias)
self.prefix = prefix
self.suffix = suffix

View file

@ -50,7 +50,7 @@ class InlineKeyboardMarkup(base.TelegramObject):
if index % self.row_width == 0:
self.inline_keyboard.append(row)
row = []
if len(row) > 0:
if row:
self.inline_keyboard.append(row)
return self
@ -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

View file

@ -50,7 +50,11 @@ class MessageEntity(base.TelegramObject):
if sys.maxunicode == 0xFFFF:
return text[self.offset : self.offset + self.length]
entity_text = text.encode("utf-16-le") if not isinstance(text, bytes) else text
if not isinstance(text, bytes):
entity_text = text.encode("utf-16-le")
else:
entity_text = text
entity_text = entity_text[self.offset * 2 : (self.offset + self.length) * 2]
return entity_text.decode("utf-16-le")
@ -130,4 +134,4 @@ class MessageEntityType(helper.Helper):
UNDERLINE = helper.Item() # underline
STRIKETHROUGH = helper.Item() # strikethrough
TEXT_LINK = helper.Item() # text_link - for clickable text URLs
TEXT_MENTION = helper.Item() # text_mention - for users without usernames
TEXT_MENTION = helper.Item() # text_mention - for users without usernames

View file

@ -58,7 +58,7 @@ class ReplyKeyboardMarkup(base.TelegramObject):
if index % self.row_width == 0:
self.keyboard.append(row)
row = []
if len(row) > 0:
if row:
self.keyboard.append(row)
return self
@ -70,9 +70,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

View file

@ -70,10 +70,7 @@ class HelperMode(Helper):
return text
result = ''
for pos, symbol in enumerate(text):
if symbol.isupper() and pos > 0:
result += '_' + symbol
else:
result += symbol.upper()
result += '_' + symbol if symbol.isupper() and pos > 0 else symbol.upper()
return result
@classmethod
@ -103,10 +100,7 @@ class HelperMode(Helper):
if symbol == '_' and pos > 0:
need_upper = True
else:
if need_upper:
result += symbol.upper()
else:
result += symbol.lower()
result += symbol.upper() if need_upper else symbol.lower()
need_upper = False
if first_upper:
result = result[0].upper() + result[1:]
@ -153,9 +147,8 @@ class Item:
def __set_name__(self, owner, name):
if not name.isupper():
raise NameError('Name for helper item must be in uppercase!')
if not self._value:
if hasattr(owner, 'mode'):
self._value = HelperMode.apply(name, getattr(owner, 'mode'))
if not self._value and hasattr(owner, 'mode'):
self._value = HelperMode.apply(name, getattr(owner, 'mode'))
class ListItem(Item):
@ -201,10 +194,15 @@ class OrderedHelperMeta(type):
def __new__(mcs, name, bases, namespace, **kwargs):
cls = super().__new__(mcs, name, bases, namespace)
props_keys = []
props_keys = [
prop_name
for prop_name in (
name
for name, prop in namespace.items()
if isinstance(prop, (Item, ListItem))
)
]
for prop_name in (name for name, prop in namespace.items() if isinstance(prop, (Item, ListItem))):
props_keys.append(prop_name)
setattr(cls, PROPS_KEYS_ATTR_NAME, props_keys)

View file

@ -55,12 +55,12 @@ class TextDecoration(ABC):
:param entities: Array of MessageEntities
:return:
"""
result = "".join(
return "".join(
self._unparse_entities(
self._add_surrogates(text), sorted(entities, key=lambda item: item.offset) if entities else []
self._add_surrogates(text),
sorted(entities, key=lambda item: item.offset) if entities else [],
)
)
return result
def _unparse_entities(
self,

View file

@ -7,8 +7,8 @@ def test_DeprecatedReadOnlyClassVarCD():
assert DeprecatedReadOnlyClassVar.__slots__ == ("_new_value_getter", "_warning_message")
new_value_of_deprecated_cls_cd = "mpa"
pseudo_owner_cls = type("OpekaCla$$", (), {})
deprecated_cd = DeprecatedReadOnlyClassVar("mopekaa", lambda owner: new_value_of_deprecated_cls_cd)
with pytest.warns(DeprecationWarning):
pseudo_owner_cls = type("OpekaCla$$", (), {})
assert deprecated_cd.__get__(None, pseudo_owner_cls) == new_value_of_deprecated_cls_cd