From 21dbbc3f0b5b8a8856e84520fbc7bf37d242b7f6 Mon Sep 17 00:00:00 2001 From: Dan <14043624+delivrance@users.noreply.github.com> Date: Mon, 31 Dec 2018 17:13:50 +0100 Subject: [PATCH] Fix style parsers randomly returning "unsorted" dicts. This is due to Python <3.6 having "unsorted" dicts. Dicts are inherently unsorted, but starting from Python 3.6 they keep the order in which the keys are inserted (useful for unpacking) --- pyrogram/client/style/html.py | 10 ++++++---- pyrogram/client/style/markdown.py | 10 ++++++---- 2 files changed, 12 insertions(+), 8 deletions(-) diff --git a/pyrogram/client/style/html.py b/pyrogram/client/style/html.py index 63a80733..ec839fcd 100644 --- a/pyrogram/client/style/html.py +++ b/pyrogram/client/style/html.py @@ -17,6 +17,7 @@ # along with Pyrogram. If not, see . import re +from collections import OrderedDict from pyrogram.api.types import ( MessageEntityBold as Bold, @@ -75,10 +76,11 @@ class HTML: text = text.replace(match.group(), body) offset += len(style) * 2 + 5 + (len(url) + 8 if url else 0) - return dict( - message=utils.remove_surrogates(text), - entities=entities - ) + # TODO: OrderedDict to be removed in Python3.6 + return OrderedDict([ + ("message", utils.remove_surrogates(text)), + ("entities", entities) + ]) def unparse(self, message: str, entities: list): message = utils.add_surrogates(message).strip() diff --git a/pyrogram/client/style/markdown.py b/pyrogram/client/style/markdown.py index 7a67d0ae..f1ea23fc 100644 --- a/pyrogram/client/style/markdown.py +++ b/pyrogram/client/style/markdown.py @@ -17,6 +17,7 @@ # along with Pyrogram. If not, see . import re +from collections import OrderedDict from pyrogram.api.types import ( MessageEntityBold as Bold, @@ -97,10 +98,11 @@ class Markdown: entities.append(entity) message = message.replace(match.group(), body) - return dict( - message=utils.remove_surrogates(message), - entities=entities - ) + # TODO: OrderedDict to be removed in Python3.6 + return OrderedDict([ + ("message", utils.remove_surrogates(message)), + ("entities", entities) + ]) def unparse(self, message: str, entities: list): message = utils.add_surrogates(message).strip()