summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorTakeshi KOMIYA <i.tkomiya@gmail.com>2018-12-16 20:01:43 +0900
committerGitHub <noreply@github.com>2018-12-16 20:01:43 +0900
commitea1d2d06f897a9685faab231b4ba2bca5fe7fbeb (patch)
tree74df35e11b24abf1393942e7927da20d171ee8ff
parent2597c4174e386552449991a0a247340de3dbcdcc (diff)
parent5bf25eb44529cb0546b9b690a142ca7529a062f0 (diff)
downloadsphinx-git-ea1d2d06f897a9685faab231b4ba2bca5fe7fbeb.tar.gz
Merge pull request #5803 from jdufresne/encoding-utf8
Avoid respecifying default encoding for .encode()/.decode() calls
-rw-r--r--sphinx/builders/html.py2
-rw-r--r--sphinx/cmd/quickstart.py2
-rw-r--r--sphinx/ext/graphviz.py6
-rw-r--r--sphinx/ext/imgmath.py2
-rw-r--r--sphinx/ext/inheritance_diagram.py2
-rw-r--r--sphinx/pycode/__init__.py2
-rw-r--r--sphinx/pycode/parser.py2
-rw-r--r--sphinx/search/__init__.py2
-rw-r--r--sphinx/transforms/post_transforms/images.py4
-rw-r--r--sphinx/util/__init__.py14
-rw-r--r--sphinx/util/images.py2
-rw-r--r--sphinx/util/inventory.py10
-rw-r--r--tests/test_build_html5.py2
-rw-r--r--tests/test_ext_intersphinx.py2
-rw-r--r--tests/test_quickstart.py4
-rw-r--r--tests/test_setup_command.py2
-rw-r--r--tests/test_util_inventory.py12
-rw-r--r--utils/jssplitter_generator.py2
18 files changed, 37 insertions, 37 deletions
diff --git a/sphinx/builders/html.py b/sphinx/builders/html.py
index 6d09d17cb..fdac3d8af 100644
--- a/sphinx/builders/html.py
+++ b/sphinx/builders/html.py
@@ -88,7 +88,7 @@ def get_stable_hash(obj):
return get_stable_hash(list(obj.items()))
elif isinstance(obj, (list, tuple)):
obj = sorted(get_stable_hash(o) for o in obj)
- return md5(text_type(obj).encode('utf8')).hexdigest()
+ return md5(text_type(obj).encode()).hexdigest()
class Stylesheet(text_type):
diff --git a/sphinx/cmd/quickstart.py b/sphinx/cmd/quickstart.py
index 21220a22b..8f8f5e9e9 100644
--- a/sphinx/cmd/quickstart.py
+++ b/sphinx/cmd/quickstart.py
@@ -172,7 +172,7 @@ def term_decode(text):
'and terminal encoding unknown -- assuming '
'UTF-8 or Latin-1.')))
try:
- return text.decode('utf-8')
+ return text.decode()
except UnicodeDecodeError:
return text.decode('latin1')
diff --git a/sphinx/ext/graphviz.py b/sphinx/ext/graphviz.py
index 108ef25ce..716fd1e42 100644
--- a/sphinx/ext/graphviz.py
+++ b/sphinx/ext/graphviz.py
@@ -73,7 +73,7 @@ class ClickableMapDefinition:
if self.id == '%3':
# graphviz generates wrong ID if graph name not specified
# https://gitlab.com/graphviz/graphviz/issues/1327
- hashed = sha1(dot.encode('utf-8')).hexdigest()
+ hashed = sha1(dot.encode()).hexdigest()
self.id = 'grapviz%s' % hashed[-10:]
self.content[0] = self.content[0].replace('%3', self.id)
@@ -221,7 +221,7 @@ def render_dot(self, code, options, format, prefix='graphviz'):
"""Render graphviz code into a PNG or PDF output file."""
graphviz_dot = options.get('graphviz_dot', self.builder.config.graphviz_dot)
hashkey = (code + str(options) + str(graphviz_dot) +
- str(self.builder.config.graphviz_dot_args)).encode('utf-8')
+ str(self.builder.config.graphviz_dot_args)).encode()
fname = '%s-%s.%s' % (prefix, sha1(hashkey).hexdigest(), format)
relfn = posixpath.join(self.builder.imgpath, fname)
@@ -257,7 +257,7 @@ def render_dot(self, code, options, format, prefix='graphviz'):
try:
# Graphviz may close standard input when an error occurs,
# resulting in a broken pipe on communicate()
- stdout, stderr = p.communicate(code.encode('utf-8'))
+ stdout, stderr = p.communicate(code.encode())
except (OSError, IOError) as err:
if err.errno not in (EPIPE, EINVAL):
raise
diff --git a/sphinx/ext/imgmath.py b/sphinx/ext/imgmath.py
index 467529564..43adf320c 100644
--- a/sphinx/ext/imgmath.py
+++ b/sphinx/ext/imgmath.py
@@ -231,7 +231,7 @@ def render_math(self, math):
latex = generate_latex_macro(math, self.builder.config)
- filename = "%s.%s" % (sha1(latex.encode('utf-8')).hexdigest(), image_format)
+ filename = "%s.%s" % (sha1(latex.encode()).hexdigest(), image_format)
relfn = posixpath.join(self.builder.imgpath, 'math', filename)
outfn = path.join(self.builder.outdir, self.builder.imagedir, 'math', filename)
if path.isfile(outfn):
diff --git a/sphinx/ext/inheritance_diagram.py b/sphinx/ext/inheritance_diagram.py
index c315ba8d3..c4ad64e34 100644
--- a/sphinx/ext/inheritance_diagram.py
+++ b/sphinx/ext/inheritance_diagram.py
@@ -389,7 +389,7 @@ class InheritanceDiagram(SphinxDirective):
def get_graph_hash(node):
# type: (inheritance_diagram) -> str
- encoded = (node['content'] + str(node['parts'])).encode('utf-8')
+ encoded = (node['content'] + str(node['parts'])).encode()
return md5(encoded).hexdigest()[-10:]
diff --git a/sphinx/pycode/__init__.py b/sphinx/pycode/__init__.py
index e3e80772c..e2538ad27 100644
--- a/sphinx/pycode/__init__.py
+++ b/sphinx/pycode/__init__.py
@@ -55,7 +55,7 @@ class ModuleAnalyzer:
eggpath, relpath = re.split('(?<=\\.egg)/', filename)
try:
with ZipFile(eggpath) as egg:
- code = egg.read(relpath).decode('utf-8')
+ code = egg.read(relpath).decode()
return cls.for_string(code, modname, filename)
except Exception as exc:
raise PycodeError('error opening %r' % filename, exc)
diff --git a/sphinx/pycode/parser.py b/sphinx/pycode/parser.py
index 71630aa3d..09dd8c635 100644
--- a/sphinx/pycode/parser.py
+++ b/sphinx/pycode/parser.py
@@ -480,7 +480,7 @@ class Parser:
def parse_comments(self):
# type: () -> None
"""Parse the code and pick up comments."""
- tree = ast.parse(self.code.encode('utf-8'))
+ tree = ast.parse(self.code.encode())
picker = VariableCommentPicker(self.code.splitlines(True), self.encoding)
picker.visit(tree)
self.comments = picker.comments
diff --git a/sphinx/search/__init__.py b/sphinx/search/__init__.py
index f599b01e6..204cd0581 100644
--- a/sphinx/search/__init__.py
+++ b/sphinx/search/__init__.py
@@ -289,7 +289,7 @@ class IndexBuilder:
if scoring:
with open(scoring, 'rb') as fp:
- self.js_scorer_code = fp.read().decode('utf-8')
+ self.js_scorer_code = fp.read().decode()
else:
self.js_scorer_code = u''
self.js_splitter_code = splitter_code
diff --git a/sphinx/transforms/post_transforms/images.py b/sphinx/transforms/post_transforms/images.py
index 00b897d64..996da85f5 100644
--- a/sphinx/transforms/post_transforms/images.py
+++ b/sphinx/transforms/post_transforms/images.py
@@ -75,12 +75,12 @@ class ImageDownloader(BaseImageConverter):
basename = basename.split('?')[0]
if basename == '' or len(basename) > MAX_FILENAME_LEN:
filename, ext = os.path.splitext(node['uri'])
- basename = sha1(filename.encode("utf-8")).hexdigest() + ext
+ basename = sha1(filename.encode()).hexdigest() + ext
dirname = node['uri'].replace('://', '/').translate({ord("?"): u"/",
ord("&"): u"/"})
if len(dirname) > MAX_FILENAME_LEN:
- dirname = sha1(dirname.encode('utf-8')).hexdigest()
+ dirname = sha1(dirname.encode()).hexdigest()
ensuredir(os.path.join(self.imagedir, dirname))
path = os.path.join(self.imagedir, dirname, basename)
diff --git a/sphinx/util/__init__.py b/sphinx/util/__init__.py
index dba327499..3e14a4981 100644
--- a/sphinx/util/__init__.py
+++ b/sphinx/util/__init__.py
@@ -179,7 +179,7 @@ class DownloadFiles(dict):
def add_file(self, docname, filename):
# type: (str, str) -> None
if filename not in self:
- digest = md5(filename.encode('utf-8')).hexdigest()
+ digest = md5(filename.encode()).hexdigest()
dest = '%s/%s' % (digest, os.path.basename(filename))
self[filename] = (set(), dest)
@@ -265,14 +265,14 @@ def save_traceback(app):
platform.python_implementation(),
docutils.__version__, docutils.__version_details__,
jinja2.__version__, # type: ignore
- last_msgs)).encode('utf-8'))
+ last_msgs)).encode())
if app is not None:
for ext in app.extensions.values():
modfile = getattr(ext.module, '__file__', 'unknown')
if ext.version != 'builtin':
os.write(fd, ('# %s (%s) from %s\n' %
- (ext.name, ext.version, modfile)).encode('utf-8'))
- os.write(fd, exc_format.encode('utf-8'))
+ (ext.name, ext.version, modfile)).encode())
+ os.write(fd, exc_format.encode())
os.close(fd)
return path
@@ -487,7 +487,7 @@ def force_decode(string, encoding):
string = string.decode(encoding)
else:
# try decoding with utf-8, should only work for real UTF-8
- string = string.decode('utf-8')
+ string = string.decode()
except UnicodeError:
# last resort -- can't fail
string = string.decode('latin1')
@@ -629,8 +629,8 @@ def encode_uri(uri):
# type: (str) -> str
split = list(urlsplit(uri))
split[1] = split[1].encode('idna').decode('ascii')
- split[2] = quote_plus(split[2].encode('utf-8'), '/')
- query = list((q, v.encode('utf-8')) for (q, v) in parse_qsl(split[3]))
+ split[2] = quote_plus(split[2].encode(), '/')
+ query = list((q, v.encode()) for (q, v) in parse_qsl(split[3]))
split[3] = urlencode(query)
return urlunsplit(split)
diff --git a/sphinx/util/images.py b/sphinx/util/images.py
index 5b3a27d77..41f41c0b1 100644
--- a/sphinx/util/images.py
+++ b/sphinx/util/images.py
@@ -129,7 +129,7 @@ def test_svg(h, f):
# type: (bytes, IO) -> str
"""An additional imghdr library helper; test the header is SVG's or not."""
try:
- if '<svg' in h.decode('utf-8').lower():
+ if '<svg' in h.decode().lower():
return 'svg+xml'
except UnicodeDecodeError:
pass
diff --git a/sphinx/util/inventory.py b/sphinx/util/inventory.py
index 31daa3f37..42fe6d90c 100644
--- a/sphinx/util/inventory.py
+++ b/sphinx/util/inventory.py
@@ -52,10 +52,10 @@ class InventoryFileReader:
# type: () -> str
pos = self.buffer.find(b'\n')
if pos != -1:
- line = self.buffer[:pos].decode('utf-8')
+ line = self.buffer[:pos].decode()
self.buffer = self.buffer[pos + 1:]
elif self.eof:
- line = self.buffer.decode('utf-8')
+ line = self.buffer.decode()
self.buffer = b''
else:
self.read_buffer()
@@ -86,7 +86,7 @@ class InventoryFileReader:
buf += chunk
pos = buf.find(b'\n')
while pos != -1:
- yield buf[:pos].decode('utf-8')
+ yield buf[:pos].decode()
buf = buf[pos + 1:]
pos = buf.find(b'\n')
@@ -167,7 +167,7 @@ class InventoryFile:
u'# Version: %s\n'
u'# The remainder of this file is compressed using zlib.\n' %
(escape(env.config.project),
- escape(env.config.version))).encode('utf-8'))
+ escape(env.config.version))).encode())
# body
compressor = zlib.compressobj(9)
@@ -184,5 +184,5 @@ class InventoryFile:
dispname = u'-'
entry = (u'%s %s:%s %s %s %s\n' %
(name, domainname, typ, prio, uri, dispname))
- f.write(compressor.compress(entry.encode('utf-8')))
+ f.write(compressor.compress(entry.encode()))
f.write(compressor.flush())
diff --git a/tests/test_build_html5.py b/tests/test_build_html5.py
index fc2c7e8eb..cb4290b9c 100644
--- a/tests/test_build_html5.py
+++ b/tests/test_build_html5.py
@@ -354,7 +354,7 @@ def test_html_download(app):
confoverrides={'html_experimental_html5_writer': True})
def test_html_download_role(app, status, warning):
app.build()
- digest = md5((app.srcdir / 'dummy.dat').encode('utf-8')).hexdigest()
+ digest = md5((app.srcdir / 'dummy.dat').encode()).hexdigest()
assert (app.outdir / '_downloads' / digest / 'dummy.dat').exists()
content = (app.outdir / 'index.html').text()
diff --git a/tests/test_ext_intersphinx.py b/tests/test_ext_intersphinx.py
index b9bb8421b..968ba7898 100644
--- a/tests/test_ext_intersphinx.py
+++ b/tests/test_ext_intersphinx.py
@@ -47,7 +47,7 @@ def reference_check(app, *args, **kwds):
@mock.patch('sphinx.ext.intersphinx._read_from_url')
def test_fetch_inventory_redirection(_read_from_url, InventoryFile, app, status, warning):
intersphinx_setup(app)
- _read_from_url().readline.return_value = '# Sphinx inventory version 2'.encode('utf-8')
+ _read_from_url().readline.return_value = '# Sphinx inventory version 2'.encode()
# same uri and inv, not redirected
_read_from_url().url = 'http://hostname/' + INVENTORY_FILENAME
diff --git a/tests/test_quickstart.py b/tests/test_quickstart.py
index 248b91d64..5905ae835 100644
--- a/tests/test_quickstart.py
+++ b/tests/test_quickstart.py
@@ -145,8 +145,8 @@ def test_quickstart_all_answers(tempdir):
'Root path': tempdir,
'Separate source and build': 'y',
'Name prefix for templates': '.',
- 'Project name': u'STASI™'.encode('utf-8'),
- 'Author name': u'Wolfgang Schäuble & G\'Beckstein'.encode('utf-8'),
+ 'Project name': u'STASI™'.encode(),
+ 'Author name': u'Wolfgang Schäuble & G\'Beckstein'.encode(),
'Project version': '2.0',
'Project release': '2.0.1',
'Project language': 'de',
diff --git a/tests/test_setup_command.py b/tests/test_setup_command.py
index 1e4111be9..bfd8e3903 100644
--- a/tests/test_setup_command.py
+++ b/tests/test_setup_command.py
@@ -99,7 +99,7 @@ def nonascii_srcdir(request, setup_command):
.. toctree::
%(mb_name)s/%(mb_name)s
- """ % locals())).encode('utf-8'))
+ """ % locals())).encode())
@pytest.mark.usefixtures('nonascii_srcdir')
diff --git a/tests/test_util_inventory.py b/tests/test_util_inventory.py
index 08a45d247..09feaf21c 100644
--- a/tests/test_util_inventory.py
+++ b/tests/test_util_inventory.py
@@ -21,14 +21,14 @@ inventory_v1 = '''\
# Version: 1.0
module mod foo.html
module.cls class foo.html
-'''.encode('utf-8')
+'''.encode()
inventory_v2 = '''\
# Sphinx inventory version 2
# Project: foo
# Version: 2.0
# The remainder of this file is compressed with zlib.
-'''.encode('utf-8') + zlib.compress('''\
+'''.encode() + zlib.compress('''\
module1 py:module 0 foo.html#module-module1 Long Module desc
module2 py:module 0 foo.html#module-$ -
module1.func py:function 1 sub/foo.html#$ -
@@ -47,16 +47,16 @@ foo.bar js:class 1 index.html#foo.bar -
foo.bar.baz js:method 1 index.html#foo.bar.baz -
foo.bar.qux js:data 1 index.html#foo.bar.qux -
a term including:colon std:term -1 glossary.html#term-a-term-including-colon -
-'''.encode('utf-8'))
+'''.encode())
inventory_v2_not_having_version = '''\
# Sphinx inventory version 2
# Project: foo
-# Version:
+# Version:
# The remainder of this file is compressed with zlib.
-'''.encode('utf-8') + zlib.compress('''\
+'''.encode() + zlib.compress('''\
module1 py:module 0 foo.html#module-module1 Long Module desc
-'''.encode('utf-8'))
+'''.encode())
def test_read_inventory_v1():
diff --git a/utils/jssplitter_generator.py b/utils/jssplitter_generator.py
index f6c0a3b7f..2ffe4cc99 100644
--- a/utils/jssplitter_generator.py
+++ b/utils/jssplitter_generator.py
@@ -134,7 +134,7 @@ with open('../sphinx/search/jssplitter.py', 'w') as f:
f.write(python_src)
with open('./regression_test.js', 'w') as f:
- f.write(js_test_src.encode('utf-8'))
+ f.write(js_test_src.encode())
print("starting test...")
result = subprocess.call(['node', './regression_test.js'])