Merge pull request #5415 from tk0miya/5410_replace_open_file_by_open

refactor: Repalce HTMLHelpBuilder.open_file() by standard open()
This commit is contained in:
Takeshi KOMIYA 2019-01-07 00:59:03 +09:00 committed by GitHub
commit 353c3e9fd6
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
3 changed files with 18 additions and 4 deletions

View File

@ -70,6 +70,7 @@ Deprecated
``IndexBuilder.feed()`` method is deprecated. ``IndexBuilder.feed()`` method is deprecated.
* ``sphinx.addnodes.abbreviation`` * ``sphinx.addnodes.abbreviation``
* ``sphinx.application.Sphinx._setting_up_extension`` * ``sphinx.application.Sphinx._setting_up_extension``
* ``sphinx.builders.htmlhelp.HTMLHelpBuilder.open_file()``
* ``sphinx.cmd.quickstart.term_decode()`` * ``sphinx.cmd.quickstart.term_decode()``
* ``sphinx.cmd.quickstart.TERM_ENCODING`` * ``sphinx.cmd.quickstart.TERM_ENCODING``
* ``sphinx.config.check_unicode()`` * ``sphinx.config.check_unicode()``

View File

@ -263,6 +263,11 @@ The following is a list of deprecated interfaces.
- 4.0 - 4.0
- ``docutils.nodes.abbreviation`` - ``docutils.nodes.abbreviation``
* - ``sphinx.builders.htmlhelp.HTMLHelpBuilder.open_file()``
- 2.0
- 4.0
- ``open()``
* - ``sphinx.cmd.quickstart.term_decode()`` * - ``sphinx.cmd.quickstart.term_decode()``
- 2.0 - 2.0
- 4.0 - 4.0

View File

@ -11,12 +11,14 @@
import html import html
import os import os
import warnings
from os import path from os import path
from docutils import nodes from docutils import nodes
from sphinx import addnodes from sphinx import addnodes
from sphinx.builders.html import StandaloneHTMLBuilder from sphinx.builders.html import StandaloneHTMLBuilder
from sphinx.deprecation import RemovedInSphinx40Warning
from sphinx.environment.adapters.indexentries import IndexEntries from sphinx.environment.adapters.indexentries import IndexEntries
from sphinx.locale import __ from sphinx.locale import __
from sphinx.util import logging from sphinx.util import logging
@ -221,6 +223,8 @@ class HTMLHelpBuilder(StandaloneHTMLBuilder):
def open_file(self, outdir, basename, mode='w'): def open_file(self, outdir, basename, mode='w'):
# type: (str, str, str) -> IO # type: (str, str, str) -> IO
# open a file with the correct encoding for the selected language # open a file with the correct encoding for the selected language
warnings.warn('HTMLHelpBuilder.open_file() is deprecated.',
RemovedInSphinx40Warning)
return open(path.join(outdir, basename), mode, encoding=self.encoding, return open(path.join(outdir, basename), mode, encoding=self.encoding,
errors='xmlcharrefreplace') errors='xmlcharrefreplace')
@ -244,12 +248,14 @@ class HTMLHelpBuilder(StandaloneHTMLBuilder):
def build_hhx(self, outdir, outname): def build_hhx(self, outdir, outname):
# type: (str, str) -> None # type: (str, str) -> None
logger.info(__('dumping stopword list...')) logger.info(__('dumping stopword list...'))
with self.open_file(outdir, outname + '.stp') as f: filename = path.join(outdir, outname + '.stp')
with open(filename, 'w', encoding=self.encoding, errors='xmlcharrefreplace') as f:
for word in sorted(stopwords): for word in sorted(stopwords):
print(word, file=f) print(word, file=f)
logger.info(__('writing project file...')) logger.info(__('writing project file...'))
with self.open_file(outdir, outname + '.hhp') as f: filename = path.join(outdir, outname + '.hhp')
with open(filename, 'w', encoding=self.encoding, errors='xmlcharrefreplace') as f:
f.write(project_template % { f.write(project_template % {
'outname': outname, 'outname': outname,
'title': self.config.html_title, 'title': self.config.html_title,
@ -272,7 +278,8 @@ class HTMLHelpBuilder(StandaloneHTMLBuilder):
file=f) file=f)
logger.info(__('writing TOC file...')) logger.info(__('writing TOC file...'))
with self.open_file(outdir, outname + '.hhc') as f: filename = path.join(outdir, outname + '.hhc')
with open(filename, 'w', encoding=self.encoding, errors='xmlcharrefreplace') as f:
f.write(contents_header) f.write(contents_header)
# special books # special books
f.write('<LI> ' + object_sitemap % (self.config.html_short_title, f.write('<LI> ' + object_sitemap % (self.config.html_short_title,
@ -312,7 +319,8 @@ class HTMLHelpBuilder(StandaloneHTMLBuilder):
logger.info(__('writing index file...')) logger.info(__('writing index file...'))
index = IndexEntries(self.env).create_index(self) index = IndexEntries(self.env).create_index(self)
with self.open_file(outdir, outname + '.hhk') as f: filename = path.join(outdir, outname + '.hhk')
with open(filename, 'w', encoding=self.encoding, errors='xmlcharrefreplace') as f:
f.write('<UL>\n') f.write('<UL>\n')
def write_index(title, refs, subitems): def write_index(title, refs, subitems):