From 61289d436661025a3111065482275d49a4850b8d Mon Sep 17 00:00:00 2001 From: Kirill Date: Wed, 13 Nov 2019 19:13:53 +0300 Subject: [PATCH] bpo-38786: Add parsing of https links to pydoc (GH-17143) --- Lib/pydoc.py | 2 +- Lib/test/test_pydoc.py | 11 +++++++++++ Lib/xmlrpc/server.py | 2 +- .../Library/2019-11-13-16-49-03.bpo-38786.gNOwKh.rst | 1 + 4 files changed, 14 insertions(+), 2 deletions(-) create mode 100644 Misc/NEWS.d/next/Library/2019-11-13-16-49-03.bpo-38786.gNOwKh.rst diff --git a/Lib/pydoc.py b/Lib/pydoc.py index 9a22e56686f..e32fdf76978 100755 --- a/Lib/pydoc.py +++ b/Lib/pydoc.py @@ -585,7 +585,7 @@ class HTMLDoc(Doc): 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 c80477c50f0..b803b8bff2f 100644 --- a/Lib/test/test_pydoc.py +++ b/Lib/test/test_pydoc.py @@ -1311,6 +1311,17 @@ foo 'async 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( + 'https://localhost/', + html + ) + class PydocServerTest(unittest.TestCase): """Tests for pydoc._start_server""" diff --git a/Lib/xmlrpc/server.py b/Lib/xmlrpc/server.py index 32aba4df4c7..287e3243b10 100644 --- a/Lib/xmlrpc/server.py +++ b/Lib/xmlrpc/server.py @@ -732,7 +732,7 @@ class ServerHTMLDoc(pydoc.HTMLDoc): # 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 00000000000..f95d773e08c --- /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.