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