Skip to content

Commit

Permalink
Close sphinx-doc#7840: i18n: Optimize the dependencies check on boots…
Browse files Browse the repository at this point in the history
…trap

Replace a nested-loop comparision by hash-search to improve the
performance of dependencies check on bootstrap.
  • Loading branch information
tk0miya committed Jul 19, 2020
1 parent 00e4a9e commit 346386b
Show file tree
Hide file tree
Showing 2 changed files with 4 additions and 3 deletions.
1 change: 1 addition & 0 deletions CHANGES
Expand Up @@ -26,6 +26,7 @@ Features added
* #7745: html: inventory is broken if the docname contains a space
* #7902: html theme: Add a new option :confval:`globaltoc_maxdepth` to control
the behavior of globaltoc in sidebar
* #7840: i18n: Optimize the dependencies check on bootstrap
* #7052: add ``:noindexentry:`` to the Python, C, C++, and Javascript domains.
Update the documentation to better reflect the relationship between this option
and the ``:noindex:`` option.
Expand Down
6 changes: 3 additions & 3 deletions sphinx/environment/__init__.py
Expand Up @@ -387,11 +387,11 @@ def find_files(self, config: Config, builder: "Builder") -> None:
# add catalog mo file dependency
repo = CatalogRepository(self.srcdir, self.config.locale_dirs,
self.config.language, self.config.source_encoding)
mo_paths = {c.domain: c.mo_path for c in repo.catalogs}
for docname in self.found_docs:
domain = docname_to_domain(docname, self.config.gettext_compact)
for catalog in repo.catalogs:
if catalog.domain == domain:
self.dependencies[docname].add(catalog.mo_path)
if domain in mo_paths:
self.dependencies[docname].add(mo_paths[domain])
except OSError as exc:
raise DocumentError(__('Failed to scan documents in %s: %r') %
(self.srcdir, exc)) from exc
Expand Down

0 comments on commit 346386b

Please sign in to comment.