jenkins-bot submitted this change.

View Change

Approvals: Xqt: Looks good to me, approved jenkins-bot: Verified
[IMPR] Deprecate textlib.unescape

This function is unused by pywikibot and python 3.4+ provides it...

https://docs.python.org/3/library/html.html#html.unescape

Change-Id: Ie4664ea814d735a10799be2c4576b054eb960798
---
M pywikibot/textlib.py
M tests/textlib_tests.py
2 files changed, 10 insertions(+), 9 deletions(-)

diff --git a/pywikibot/textlib.py b/pywikibot/textlib.py
index 75ae916..2ee62d1 100644
--- a/pywikibot/textlib.py
+++ b/pywikibot/textlib.py
@@ -11,6 +11,7 @@
# Distributed under the terms of the MIT license.
#
import datetime
+import html
import re

from collections.abc import Sequence
@@ -147,15 +148,10 @@
return phrase


+@deprecated('html.unescape', since='20210405', future_warning=True)
def unescape(s: str) -> str:
"""Replace escaped HTML-special characters by their originals."""
- if '&' in s:
- s = s.replace('&lt;', '<')
- s = s.replace('&gt;', '>')
- s = s.replace('&apos;', "'")
- s = s.replace('&quot;', '"')
- s = s.replace('&amp;', '&') # Must be last
- return s
+ return html.unescape(s)


class _MultiTemplateMatchBuilder:
diff --git a/tests/textlib_tests.py b/tests/textlib_tests.py
index 8b537b3..dadc2a3 100644
--- a/tests/textlib_tests.py
+++ b/tests/textlib_tests.py
@@ -1639,6 +1639,10 @@
self.assertEqual(set(lang_links), self.sites_set - {self.site})


+UNESCAPE_WARNING_MSG = (r'.*pywikibot\.textlib\.unescape .*'
+ r'is deprecated for .*; use html.unescape')
+
+
class TestUnescape(TestCase):

"""Test to verify that unescaping HTML chars are correctly done."""
@@ -1647,8 +1651,9 @@

def test_unescape(self):
"""Test unescaping HTML chars."""
- self.assertEqual(textlib.unescape('!23&lt;&gt;&apos;&quot;&amp;&'),
- '!23<>\'"&&')
+ with suppress_warnings(UNESCAPE_WARNING_MSG, category=FutureWarning):
+ self.assertEqual(textlib.unescape('!23&lt;&gt;&apos;&quot;&amp;&'),
+ '!23<>\'"&&')


class TestExtractSections(DefaultDrySiteTestCase):

To view, visit change 677042. To unsubscribe, or for help writing mail filters, visit settings.

Gerrit-Project: pywikibot/core
Gerrit-Branch: master
Gerrit-Change-Id: Ie4664ea814d735a10799be2c4576b054eb960798
Gerrit-Change-Number: 677042
Gerrit-PatchSet: 4
Gerrit-Owner: Damian <atagar1@gmail.com>
Gerrit-Reviewer: D3r1ck01 <xsavitar.wiki@aol.com>
Gerrit-Reviewer: Isaacandy <isaac@iznd.xyz>
Gerrit-Reviewer: Siebrand <siebrand@kitano.nl>
Gerrit-Reviewer: Xqt <info@gno.de>
Gerrit-Reviewer: jenkins-bot
Gerrit-MessageType: merged