bpo-38786: Add parsing of https links to pydoc (GH-17143)
diff --git a/Lib/pydoc.py b/Lib/pydoc.py
index 9a22e56..e32fdf7 100755
--- a/Lib/pydoc.py
+++ b/Lib/pydoc.py
@@ -585,7 +585,7 @@
escape = escape or self.escape
results = []
here = 0
- pattern = re.compile(r'\b((http|ftp)://\S+[\w/]|'
+ pattern = re.compile(r'\b((http|https|ftp)://\S+[\w/]|'
r'RFC[- ]?(\d+)|'
r'PEP[- ]?(\d+)|'
r'(self\.)?(\w+))')
diff --git a/Lib/test/test_pydoc.py b/Lib/test/test_pydoc.py
index c80477c..b803b8b 100644
--- a/Lib/test/test_pydoc.py
+++ b/Lib/test/test_pydoc.py
@@ -1311,6 +1311,17 @@
'async <a name="-an_async_generator"><strong>an_async_generator',
html)
+ def test_html_for_https_links(self):
+ def a_fn_with_https_link():
+ """a link https://localhost/"""
+ pass
+
+ html = pydoc.HTMLDoc().document(a_fn_with_https_link)
+ self.assertIn(
+ '<a href="https://localhost/">https://localhost/</a>',
+ html
+ )
+
class PydocServerTest(unittest.TestCase):
"""Tests for pydoc._start_server"""
diff --git a/Lib/xmlrpc/server.py b/Lib/xmlrpc/server.py
index 32aba4d..287e324 100644
--- a/Lib/xmlrpc/server.py
+++ b/Lib/xmlrpc/server.py
@@ -732,7 +732,7 @@
# hyperlinking of arbitrary strings being used as method
# names. Only methods with names consisting of word characters
# and '.'s are hyperlinked.
- pattern = re.compile(r'\b((http|ftp)://\S+[\w/]|'
+ pattern = re.compile(r'\b((http|https|ftp)://\S+[\w/]|'
r'RFC[- ]?(\d+)|'
r'PEP[- ]?(\d+)|'
r'(self\.)?((?:\w|\.)+))\b')
diff --git a/Misc/NEWS.d/next/Library/2019-11-13-16-49-03.bpo-38786.gNOwKh.rst b/Misc/NEWS.d/next/Library/2019-11-13-16-49-03.bpo-38786.gNOwKh.rst
new file mode 100644
index 0000000..f95d773
--- /dev/null
+++ b/Misc/NEWS.d/next/Library/2019-11-13-16-49-03.bpo-38786.gNOwKh.rst
@@ -0,0 +1 @@
+pydoc now recognizes and parses HTTPS URLs. Patch by python273.