Issue #21942: Fixed source file viewing in pydoc's server mode on Windows.
This commit is contained in:
parent
7cca28ffa2
commit
eb43214427
|
@ -64,6 +64,7 @@ import re
|
||||||
import sys
|
import sys
|
||||||
import time
|
import time
|
||||||
import tokenize
|
import tokenize
|
||||||
|
import urllib.parse
|
||||||
import warnings
|
import warnings
|
||||||
from collections import deque
|
from collections import deque
|
||||||
from reprlib import Repr
|
from reprlib import Repr
|
||||||
|
@ -648,10 +649,7 @@ class HTMLDoc(Doc):
|
||||||
head = '<big><big><strong>%s</strong></big></big>' % linkedname
|
head = '<big><big><strong>%s</strong></big></big>' % linkedname
|
||||||
try:
|
try:
|
||||||
path = inspect.getabsfile(object)
|
path = inspect.getabsfile(object)
|
||||||
url = path
|
url = urllib.parse.quote(path)
|
||||||
if sys.platform == 'win32':
|
|
||||||
import nturl2path
|
|
||||||
url = nturl2path.pathname2url(path)
|
|
||||||
filelink = self.filelink(url, path)
|
filelink = self.filelink(url, path)
|
||||||
except TypeError:
|
except TypeError:
|
||||||
filelink = '(built-in)'
|
filelink = '(built-in)'
|
||||||
|
@ -2353,7 +2351,7 @@ def _url_handler(url, content_type="text/html"):
|
||||||
|
|
||||||
def html_getfile(path):
|
def html_getfile(path):
|
||||||
"""Get and display a source file listing safely."""
|
"""Get and display a source file listing safely."""
|
||||||
path = path.replace('%20', ' ')
|
path = urllib.parse.unquote(path)
|
||||||
with tokenize.open(path) as fp:
|
with tokenize.open(path) as fp:
|
||||||
lines = html.escape(fp.read())
|
lines = html.escape(fp.read())
|
||||||
body = '<pre>%s</pre>' % lines
|
body = '<pre>%s</pre>' % lines
|
||||||
|
|
|
@ -14,6 +14,7 @@ import test.support
|
||||||
import time
|
import time
|
||||||
import types
|
import types
|
||||||
import unittest
|
import unittest
|
||||||
|
import urllib.parse
|
||||||
import xml.etree
|
import xml.etree
|
||||||
import textwrap
|
import textwrap
|
||||||
from io import StringIO
|
from io import StringIO
|
||||||
|
@ -406,11 +407,7 @@ class PydocDocTest(unittest.TestCase):
|
||||||
def test_html_doc(self):
|
def test_html_doc(self):
|
||||||
result, doc_loc = get_pydoc_html(pydoc_mod)
|
result, doc_loc = get_pydoc_html(pydoc_mod)
|
||||||
mod_file = inspect.getabsfile(pydoc_mod)
|
mod_file = inspect.getabsfile(pydoc_mod)
|
||||||
if sys.platform == 'win32':
|
mod_url = urllib.parse.quote(mod_file)
|
||||||
import nturl2path
|
|
||||||
mod_url = nturl2path.pathname2url(mod_file)
|
|
||||||
else:
|
|
||||||
mod_url = mod_file
|
|
||||||
expected_html = expected_html_pattern % (
|
expected_html = expected_html_pattern % (
|
||||||
(mod_url, mod_file, doc_loc) +
|
(mod_url, mod_file, doc_loc) +
|
||||||
expected_html_data_docstrings)
|
expected_html_data_docstrings)
|
||||||
|
|
|
@ -27,6 +27,8 @@ Core and Builtins
|
||||||
Library
|
Library
|
||||||
-------
|
-------
|
||||||
|
|
||||||
|
- Issue #21942: Fixed source file viewing in pydoc's server mode on Windows.
|
||||||
|
|
||||||
- Issue #11259: asynchat.async_chat().set_terminator() now raises a ValueError
|
- Issue #11259: asynchat.async_chat().set_terminator() now raises a ValueError
|
||||||
if the number of received bytes is negative.
|
if the number of received bytes is negative.
|
||||||
|
|
||||||
|
|
Loading…
Reference in New Issue