From 0949735210abaa05b6448e531984f159403053f4 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Fran=C3=A7ois=20Freitag?= Date: Wed, 11 Nov 2020 12:00:27 +0100 Subject: [PATCH 1/5] Sort imports with isort Keep imports alphabetically sorted and their order homogeneous across Python source files. The isort project has more feature and is more active than the flake8-import-order plugin. Most issues caught were simply import ordering from the same module. Where imports were purposefully placed out of order, tag with isort:skip. --- .github/workflows/lint.yml | 2 +- doc/conf.py | 1 - doc/development/tutorials/examples/recipe.py | 3 +- setup.cfg | 3 ++ setup.py | 7 ++-- sphinx/application.py | 14 +++---- sphinx/builders/__init__.py | 13 +++---- sphinx/builders/_epub_base.py | 5 +-- sphinx/builders/applehelp.py | 8 +--- sphinx/builders/changes.py | 4 +- sphinx/builders/devhelp.py | 1 - sphinx/builders/epub3.py | 2 +- sphinx/builders/gettext.py | 15 ++++---- sphinx/builders/html/__init__.py | 17 +++++---- sphinx/builders/htmlhelp.py | 6 +-- sphinx/builders/latex/__init__.py | 11 +++--- sphinx/builders/latex/constants.py | 1 - sphinx/builders/latex/transforms.py | 8 ++-- sphinx/builders/linkcheck.py | 7 +--- sphinx/builders/manpage.py | 6 +-- sphinx/builders/qthelp.py | 1 - sphinx/builders/singlehtml.py | 3 +- sphinx/builders/texinfo.py | 9 ++--- sphinx/builders/text.py | 2 +- sphinx/builders/xml.py | 2 +- sphinx/cmd/build.py | 4 +- sphinx/cmd/make_mode.py | 3 +- sphinx/cmd/quickstart.py | 5 +-- sphinx/config.py | 7 ++-- sphinx/directives/__init__.py | 22 ++++------- sphinx/directives/code.py | 3 +- sphinx/directives/other.py | 5 +-- sphinx/directives/patches.py | 5 +-- sphinx/domains/__init__.py | 4 +- sphinx/domains/c.py | 21 +++++----- sphinx/domains/changeset.py | 4 +- sphinx/domains/citation.py | 3 +- sphinx/domains/cpp.py | 22 +++++------ sphinx/domains/index.py | 3 +- sphinx/domains/javascript.py | 4 +- sphinx/domains/math.py | 3 +- sphinx/domains/python.py | 10 ++--- sphinx/domains/rst.py | 4 +- sphinx/domains/std.py | 6 +-- sphinx/environment/__init__.py | 8 ++-- sphinx/environment/adapters/indexentries.py | 6 +-- sphinx/environment/adapters/toctree.py | 5 +-- sphinx/environment/collectors/asset.py | 1 - sphinx/environment/collectors/indexentries.py | 3 +- sphinx/environment/collectors/metadata.py | 3 +- sphinx/environment/collectors/toctree.py | 5 +-- sphinx/events.py | 1 + sphinx/ext/autodoc/__init__.py | 22 +++++------ sphinx/ext/autodoc/importer.py | 5 +-- sphinx/ext/autodoc/type_comment.py | 6 +-- sphinx/ext/autodoc/typehints.py | 3 +- sphinx/ext/autosectionlabel.py | 4 +- sphinx/ext/autosummary/__init__.py | 12 +++--- sphinx/ext/autosummary/generate.py | 23 +++++------ sphinx/ext/coverage.py | 2 +- sphinx/ext/doctest.py | 3 +- sphinx/ext/duration.py | 3 +- sphinx/ext/graphviz.py | 2 +- sphinx/ext/imgconverter.py | 3 +- sphinx/ext/imgmath.py | 2 +- sphinx/ext/inheritance_diagram.py | 10 ++--- sphinx/ext/intersphinx.py | 5 +-- sphinx/ext/jsmath.py | 7 +--- sphinx/ext/mathjax.py | 3 +- sphinx/ext/napoleon/__init__.py | 2 +- sphinx/ext/todo.py | 3 +- sphinx/ext/viewcode.py | 1 - sphinx/highlighting.py | 8 ++-- sphinx/io.py | 14 +++---- sphinx/jinja2glue.py | 2 +- sphinx/parsers.py | 4 +- sphinx/project.py | 4 +- sphinx/pycode/__init__.py | 2 +- sphinx/pycode/ast.py | 2 +- sphinx/pycode/parser.py | 3 +- sphinx/pygments_styles.py | 4 +- sphinx/registry.py | 1 + sphinx/roles.py | 5 +-- sphinx/search/__init__.py | 5 +-- sphinx/search/da.py | 1 - sphinx/search/de.py | 1 - sphinx/search/es.py | 1 - sphinx/search/fi.py | 1 - sphinx/search/fr.py | 1 - sphinx/search/hu.py | 1 - sphinx/search/it.py | 1 - sphinx/search/ja.py | 2 +- sphinx/search/nl.py | 1 - sphinx/search/no.py | 1 - sphinx/search/pt.py | 1 - sphinx/search/ro.py | 1 - sphinx/search/ru.py | 1 - sphinx/search/sv.py | 1 - sphinx/search/tr.py | 1 - sphinx/setup_command.py | 4 +- sphinx/testing/fixtures.py | 1 - sphinx/testing/path.py | 3 +- sphinx/testing/util.py | 3 +- sphinx/transforms/__init__.py | 8 ++-- sphinx/transforms/compact_bullet_list.py | 3 +- sphinx/transforms/i18n.py | 12 +++--- sphinx/transforms/post_transforms/__init__.py | 4 +- sphinx/transforms/post_transforms/code.py | 1 - sphinx/transforms/post_transforms/images.py | 6 +-- sphinx/util/__init__.py | 38 +++++++++---------- sphinx/util/cfamily.py | 4 +- sphinx/util/console.py | 2 +- sphinx/util/docfields.py | 6 +-- sphinx/util/docstrings.py | 1 - sphinx/util/docutils.py | 6 +-- sphinx/util/inspect.py | 13 ++----- sphinx/util/inventory.py | 3 +- sphinx/util/jsdump.py | 2 +- sphinx/util/jsonimpl.py | 3 +- sphinx/util/logging.py | 3 +- sphinx/util/nodes.py | 4 +- sphinx/util/png.py | 1 - sphinx/util/pycompat.py | 3 +- sphinx/util/rst.py | 6 +-- sphinx/util/smartypants.py | 1 - sphinx/util/texescape.py | 1 - sphinx/util/typing.py | 1 - sphinx/writers/html.py | 8 ++-- sphinx/writers/html5.py | 5 +-- sphinx/writers/latex.py | 20 +++++----- sphinx/writers/manpage.py | 12 ++---- sphinx/writers/texinfo.py | 8 ++-- sphinx/writers/text.py | 7 ++-- tests/conftest.py | 2 +- tests/roots/test-api-set-translator/conf.py | 1 - tests/roots/test-apidoc-toc/mypackage/main.py | 1 - .../test-ext-autodoc/autodoc_dummy_module.py | 2 +- .../roots/test-ext-autodoc/target/__init__.py | 1 - .../test-ext-autodoc/target/annotations.py | 2 +- .../test-ext-autodoc/target/generic_class.py | 3 +- .../test-ext-autodoc/target/genericalias.py | 2 +- .../target/name_conflict/__init__.py | 1 + .../test-ext-autodoc/target/need_mocks.py | 16 ++++---- .../test-ext-autodoc/target/singledispatch.py | 2 +- .../conf.py | 1 + .../test-ext-autosummary-mock_imports/conf.py | 1 + .../autosummary_dummy_module.py | 1 - .../not_a_package/__init__.py | 2 +- .../roots/test-ext-viewcode/spam/__init__.py | 4 +- tests/roots/test-ext-viewcode/spam/mod3.py | 1 + tests/roots/test-prolog/conf.py | 1 + tests/roots/test-pycode-egg/src/setup.py | 1 - tests/roots/test-root/autodoc_target.py | 1 - tests/roots/test-root/conf.py | 1 - tests/roots/test-theming/setup.py | 2 +- tests/roots/test-warnings/conf.py | 1 + tests/test_build_epub.py | 2 +- tests/test_build_gettext.py | 2 +- tests/test_build_html.py | 3 +- tests/test_build_latex.py | 3 +- tests/test_build_linkcheck.py | 1 + tests/test_build_texinfo.py | 3 +- tests/test_build_text.py | 2 +- tests/test_config.py | 4 +- tests/test_domain_c.py | 7 ++-- tests/test_domain_cpp.py | 4 +- tests/test_domain_js.py | 6 +-- tests/test_domain_py.py | 14 +++---- tests/test_domain_rst.py | 5 +-- tests/test_domain_std.py | 10 ++--- tests/test_environment.py | 3 +- tests/test_environment_toctree.py | 2 +- tests/test_ext_autodoc.py | 2 +- tests/test_ext_autodoc_autoclass.py | 1 - tests/test_ext_autodoc_autofunction.py | 1 - tests/test_ext_autodoc_configs.py | 3 +- tests/test_ext_autodoc_events.py | 2 +- tests/test_ext_autodoc_private_members.py | 1 - tests/test_ext_autosummary.py | 12 +++--- tests/test_ext_doctest.py | 2 +- tests/test_ext_duration.py | 1 + tests/test_ext_inheritance_diagram.py | 7 ++-- tests/test_ext_intersphinx.py | 8 ++-- tests/test_ext_napoleon.py | 2 +- tests/test_ext_napoleon_docstring.py | 10 ++--- tests/test_ext_napoleon_iterators.py | 2 +- tests/test_highlighting.py | 2 +- tests/test_intl.py | 9 ++--- tests/test_markup.py | 9 ++--- tests/test_pycode.py | 3 +- tests/test_quickstart.py | 3 +- tests/test_search.py | 2 +- tests/test_theming.py | 2 +- tests/test_util.py | 8 ++-- tests/test_util_docstrings.py | 4 +- tests/test_util_docutils.py | 5 +-- tests/test_util_images.py | 5 +-- tests/test_util_inspect.py | 16 ++++---- tests/test_util_matching.py | 2 +- tests/test_util_nodes.py | 8 ++-- tests/test_util_rst.py | 4 +- tests/test_util_typing.py | 5 +-- tests/test_versioning.py | 3 +- tests/typing_test_data.py | 2 +- tox.ini | 11 ++++++ utils/doclinter.py | 1 - 206 files changed, 408 insertions(+), 586 deletions(-) diff --git a/.github/workflows/lint.yml b/.github/workflows/lint.yml index fea1f17a2ac..913abcedd53 100644 --- a/.github/workflows/lint.yml +++ b/.github/workflows/lint.yml @@ -8,7 +8,7 @@ jobs: strategy: fail-fast: false matrix: - tool: [docslint, flake8, mypy, twine] + tool: [docslint, flake8, isort, mypy, twine] steps: - uses: actions/checkout@v2 diff --git a/doc/conf.py b/doc/conf.py index 8b242dc7ee2..80ee2b01ccd 100644 --- a/doc/conf.py +++ b/doc/conf.py @@ -4,7 +4,6 @@ import sphinx - extensions = ['sphinx.ext.autodoc', 'sphinx.ext.doctest', 'sphinx.ext.todo', 'sphinx.ext.autosummary', 'sphinx.ext.extlinks', 'sphinx.ext.intersphinx', diff --git a/doc/development/tutorials/examples/recipe.py b/doc/development/tutorials/examples/recipe.py index 2464302dafa..c7317578b51 100644 --- a/doc/development/tutorials/examples/recipe.py +++ b/doc/development/tutorials/examples/recipe.py @@ -4,8 +4,7 @@ from sphinx import addnodes from sphinx.directives import ObjectDescription -from sphinx.domains import Domain -from sphinx.domains import Index +from sphinx.domains import Domain, Index from sphinx.roles import XRefRole from sphinx.util.nodes import make_refnode diff --git a/setup.cfg b/setup.cfg index abda98124a8..56d19663bb9 100644 --- a/setup.cfg +++ b/setup.cfg @@ -39,6 +39,9 @@ extension = paths = . +[isort] +line_length = 95 + [mypy] python_version = 3.5 disallow_incomplete_defs = True diff --git a/setup.py b/setup.py index 27bbb3ae038..ca08a6d4a8c 100644 --- a/setup.py +++ b/setup.py @@ -43,7 +43,7 @@ ], 'lint': [ 'flake8>=3.5.0', - 'flake8-import-order', + 'isort', 'mypy>=0.790', 'docutils-stubs', ], @@ -76,9 +76,10 @@ def flush(self): try: - from babel.messages.pofile import read_po - from babel.messages.frontend import compile_catalog from json import dump + + from babel.messages.frontend import compile_catalog + from babel.messages.pofile import read_po except ImportError: pass else: diff --git a/sphinx/application.py b/sphinx/application.py index 59ac04b20cf..a382b701b11 100644 --- a/sphinx/application.py +++ b/sphinx/application.py @@ -18,7 +18,7 @@ from collections import deque from io import StringIO from os import path -from typing import Any, Callable, Dict, IO, List, Optional, Tuple, Union +from typing import IO, Any, Callable, Dict, List, Optional, Tuple, Union from docutils import nodes from docutils.nodes import Element, TextElement @@ -28,7 +28,7 @@ from pygments.lexer import Lexer import sphinx -from sphinx import package_dir, locale +from sphinx import locale, package_dir from sphinx.config import Config from sphinx.deprecation import RemovedInSphinx40Warning from sphinx.domains import Domain, Index @@ -43,9 +43,7 @@ from sphinx.registry import SphinxComponentRegistry from sphinx.roles import XRefRole from sphinx.theming import Theme -from sphinx.util import docutils -from sphinx.util import logging -from sphinx.util import progress_message +from sphinx.util import docutils, logging, progress_message from sphinx.util.build_phase import BuildPhase from sphinx.util.console import bold # type: ignore from sphinx.util.i18n import CatalogRepository @@ -56,8 +54,10 @@ if False: # For type annotation - from docutils.nodes import Node # NOQA from typing import Type # for python3.5.1 + + from docutils.nodes import Node # NOQA + from sphinx.builders import Builder @@ -1103,7 +1103,7 @@ def add_search_language(self, cls: Any) -> None: .. versionadded:: 1.1 """ logger.debug('[app] adding search language: %r', cls) - from sphinx.search import languages, SearchLanguage + from sphinx.search import SearchLanguage, languages assert issubclass(cls, SearchLanguage) languages[cls.lang] = cls diff --git a/sphinx/builders/__init__.py b/sphinx/builders/__init__.py index 93c246c69b1..b2cae7f47b0 100644 --- a/sphinx/builders/__init__.py +++ b/sphinx/builders/__init__.py @@ -17,26 +17,24 @@ from docutils.nodes import Node from sphinx.config import Config -from sphinx.environment import BuildEnvironment, CONFIG_OK, CONFIG_CHANGED_REASON +from sphinx.environment import CONFIG_CHANGED_REASON, CONFIG_OK, BuildEnvironment from sphinx.environment.adapters.asset import ImageAdapter from sphinx.errors import SphinxError from sphinx.events import EventManager from sphinx.io import read_doc from sphinx.locale import __ -from sphinx.util import import_object, logging, rst, progress_message, status_iterator +from sphinx.util import import_object, logging, progress_message, rst, status_iterator from sphinx.util.build_phase import BuildPhase from sphinx.util.console import bold # type: ignore from sphinx.util.docutils import sphinx_domains from sphinx.util.i18n import CatalogInfo, CatalogRepository, docname_to_domain from sphinx.util.osutil import SEP, ensuredir, relative_uri, relpath -from sphinx.util.parallel import ParallelTasks, SerialTasks, make_chunks, \ - parallel_available +from sphinx.util.parallel import ParallelTasks, SerialTasks, make_chunks, parallel_available from sphinx.util.tags import Tags # side effect: registers roles and directives -from sphinx import roles # noqa -from sphinx import directives # noqa - +from sphinx import directives # NOQA isort:skip +from sphinx import roles # NOQA isort:skip try: import multiprocessing except ImportError: @@ -45,6 +43,7 @@ if False: # For type annotation from typing import Type # for python3.5.1 + from sphinx.application import Sphinx diff --git a/sphinx/builders/_epub_base.py b/sphinx/builders/_epub_base.py index b126182e9f8..9751fae809e 100644 --- a/sphinx/builders/_epub_base.py +++ b/sphinx/builders/_epub_base.py @@ -25,11 +25,10 @@ from sphinx.builders.html import BuildInfo, StandaloneHTMLBuilder from sphinx.deprecation import RemovedInSphinx40Warning from sphinx.locale import __ -from sphinx.util import logging -from sphinx.util import status_iterator +from sphinx.util import logging, status_iterator from sphinx.util.fileutil import copy_asset_file from sphinx.util.i18n import format_date -from sphinx.util.osutil import ensuredir, copyfile +from sphinx.util.osutil import copyfile, ensuredir try: from PIL import Image diff --git a/sphinx/builders/applehelp.py b/sphinx/builders/applehelp.py index 82a74f4b6c5..08669a8afa0 100644 --- a/sphinx/builders/applehelp.py +++ b/sphinx/builders/applehelp.py @@ -11,16 +11,12 @@ import warnings from typing import Any, Dict -from sphinxcontrib.applehelp import ( - AppleHelpCodeSigningFailed, - AppleHelpIndexerFailed, - AppleHelpBuilder, -) +from sphinxcontrib.applehelp import (AppleHelpBuilder, AppleHelpCodeSigningFailed, + AppleHelpIndexerFailed) from sphinx.application import Sphinx from sphinx.deprecation import RemovedInSphinx40Warning, deprecated_alias - deprecated_alias('sphinx.builders.applehelp', { 'AppleHelpCodeSigningFailed': AppleHelpCodeSigningFailed, diff --git a/sphinx/builders/changes.py b/sphinx/builders/changes.py index 7cf9d098bda..ea3a778fc79 100644 --- a/sphinx/builders/changes.py +++ b/sphinx/builders/changes.py @@ -10,8 +10,7 @@ import html from os import path -from typing import Any, Dict, List, Tuple -from typing import cast +from typing import Any, Dict, List, Tuple, cast from sphinx import package_dir from sphinx.application import Sphinx @@ -24,7 +23,6 @@ from sphinx.util.fileutil import copy_asset_file from sphinx.util.osutil import ensuredir, os_path - logger = logging.getLogger(__name__) diff --git a/sphinx/builders/devhelp.py b/sphinx/builders/devhelp.py index 3e402690a67..f14e3a2dac7 100644 --- a/sphinx/builders/devhelp.py +++ b/sphinx/builders/devhelp.py @@ -18,7 +18,6 @@ from sphinx.application import Sphinx from sphinx.deprecation import RemovedInSphinx40Warning, deprecated_alias - deprecated_alias('sphinx.builders.devhelp', { 'DevhelpBuilder': DevhelpBuilder, diff --git a/sphinx/builders/epub3.py b/sphinx/builders/epub3.py index cf795f3baf4..cb2f2dbd6a5 100644 --- a/sphinx/builders/epub3.py +++ b/sphinx/builders/epub3.py @@ -18,7 +18,7 @@ from sphinx import package_dir from sphinx.application import Sphinx from sphinx.builders import _epub_base -from sphinx.config import Config, ENUM +from sphinx.config import ENUM, Config from sphinx.deprecation import RemovedInSphinx40Warning from sphinx.locale import __ from sphinx.util import logging, xmlname_checker diff --git a/sphinx/builders/gettext.py b/sphinx/builders/gettext.py index f8a19c57aa5..cbc6fc4441e 100644 --- a/sphinx/builders/gettext.py +++ b/sphinx/builders/gettext.py @@ -9,28 +9,27 @@ """ from codecs import open -from collections import defaultdict, OrderedDict -from datetime import datetime, tzinfo, timedelta -from os import path, walk, getenv +from collections import OrderedDict, defaultdict +from datetime import datetime, timedelta, tzinfo +from os import getenv, path, walk from time import time -from typing import Any, Dict, Iterable, Generator, List, Set, Tuple, Union +from typing import Any, Dict, Generator, Iterable, List, Set, Tuple, Union from uuid import uuid4 from docutils import nodes from docutils.nodes import Element -from sphinx import addnodes -from sphinx import package_dir +from sphinx import addnodes, package_dir from sphinx.application import Sphinx from sphinx.builders import Builder from sphinx.domains.python import pairindextypes from sphinx.errors import ThemeError from sphinx.locale import __ -from sphinx.util import split_index_msg, logging, status_iterator +from sphinx.util import logging, split_index_msg, status_iterator from sphinx.util.console import bold # type: ignore from sphinx.util.i18n import CatalogInfo, docname_to_domain from sphinx.util.nodes import extract_messages, traverse_translatable_index -from sphinx.util.osutil import ensuredir, canon_path, relpath +from sphinx.util.osutil import canon_path, ensuredir, relpath from sphinx.util.tags import Tags from sphinx.util.template import SphinxRenderer diff --git a/sphinx/builders/html/__init__.py b/sphinx/builders/html/__init__.py index beb65099156..d7986e7dc6b 100644 --- a/sphinx/builders/html/__init__.py +++ b/sphinx/builders/html/__init__.py @@ -14,7 +14,7 @@ import sys import warnings from os import path -from typing import Any, Dict, IO, Iterable, Iterator, List, Set, Tuple +from typing import IO, Any, Dict, Iterable, Iterator, List, Set, Tuple from urllib.parse import quote from docutils import nodes @@ -24,10 +24,10 @@ from docutils.nodes import Node from docutils.utils import relative_path -from sphinx import package_dir, __display_version__ +from sphinx import __display_version__, package_dir from sphinx.application import Sphinx from sphinx.builders import Builder -from sphinx.config import Config, ENUM +from sphinx.config import ENUM, Config from sphinx.deprecation import RemovedInSphinx40Warning from sphinx.domains import Domain, Index, IndexEntry from sphinx.environment.adapters.asset import ImageAdapter @@ -38,15 +38,15 @@ from sphinx.locale import _, __ from sphinx.search import js_index from sphinx.theming import HTMLThemeFactory -from sphinx.util import logging, progress_message, status_iterator, md5 +from sphinx.util import logging, md5, progress_message, status_iterator from sphinx.util.docutils import is_html5_writer_available, new_document from sphinx.util.fileutil import copy_asset from sphinx.util.i18n import format_date from sphinx.util.inventory import InventoryFile -from sphinx.util.matching import patmatch, Matcher, DOTFILES -from sphinx.util.osutil import os_path, relative_uri, ensuredir, movefile, copyfile +from sphinx.util.matching import DOTFILES, Matcher, patmatch +from sphinx.util.osutil import copyfile, ensuredir, movefile, os_path, relative_uri from sphinx.util.tags import Tags -from sphinx.writers.html import HTMLWriter, HTMLTranslator +from sphinx.writers.html import HTMLTranslator, HTMLWriter if False: # For type annotation @@ -1190,9 +1190,10 @@ def validate_html_favicon(app: Sphinx, config: Config) -> None: # for compatibility +import sphinxcontrib.serializinghtml # NOQA + import sphinx.builders.dirhtml # NOQA import sphinx.builders.singlehtml # NOQA -import sphinxcontrib.serializinghtml # NOQA def setup(app: Sphinx) -> Dict[str, Any]: diff --git a/sphinx/builders/htmlhelp.py b/sphinx/builders/htmlhelp.py index d30f9805a72..642ae7da603 100644 --- a/sphinx/builders/htmlhelp.py +++ b/sphinx/builders/htmlhelp.py @@ -12,14 +12,12 @@ import warnings from typing import Any, Dict -from sphinxcontrib.htmlhelp import ( - chm_locales, chm_htmlescape, HTMLHelpBuilder, default_htmlhelp_basename -) +from sphinxcontrib.htmlhelp import (HTMLHelpBuilder, chm_htmlescape, chm_locales, + default_htmlhelp_basename) from sphinx.application import Sphinx from sphinx.deprecation import RemovedInSphinx40Warning, deprecated_alias - deprecated_alias('sphinx.builders.htmlhelp', { 'chm_locales': chm_locales, diff --git a/sphinx/builders/latex/__init__.py b/sphinx/builders/latex/__init__.py index 8fd1c077d7e..77825f0eaec 100644 --- a/sphinx/builders/latex/__init__.py +++ b/sphinx/builders/latex/__init__.py @@ -17,18 +17,18 @@ from docutils.nodes import Node import sphinx.builders.latex.nodes # NOQA # Workaround: import this before writer to avoid ImportError -from sphinx import package_dir, addnodes, highlighting +from sphinx import addnodes, highlighting, package_dir from sphinx.application import Sphinx from sphinx.builders import Builder from sphinx.builders.latex.constants import ADDITIONAL_SETTINGS, DEFAULT_SETTINGS, SHORTHANDOFF from sphinx.builders.latex.theming import Theme, ThemeFactory from sphinx.builders.latex.util import ExtBabel -from sphinx.config import Config, ENUM +from sphinx.config import ENUM, Config from sphinx.deprecation import RemovedInSphinx40Warning, RemovedInSphinx50Warning from sphinx.environment.adapters.asset import ImageAdapter from sphinx.errors import NoUri, SphinxError from sphinx.locale import _, __ -from sphinx.util import texescape, logging, progress_message, status_iterator +from sphinx.util import logging, progress_message, status_iterator, texescape from sphinx.util.console import bold, darkgreen # type: ignore from sphinx.util.docutils import SphinxFileOutput, new_document from sphinx.util.fileutil import copy_asset_file @@ -36,11 +36,10 @@ from sphinx.util.nodes import inline_all_toctrees from sphinx.util.osutil import SEP, make_filename_from_project from sphinx.util.template import LaTeXRenderer -from sphinx.writers.latex import LaTeXWriter, LaTeXTranslator +from sphinx.writers.latex import LaTeXTranslator, LaTeXWriter # load docutils.nodes after loading sphinx.builders.latex.nodes -from docutils import nodes # NOQA - +from docutils import nodes # isort:skip XINDY_LANG_OPTIONS = { # language codes from docutils.writers.latex2e.Babel diff --git a/sphinx/builders/latex/constants.py b/sphinx/builders/latex/constants.py index 7146079ff46..aab64c67981 100644 --- a/sphinx/builders/latex/constants.py +++ b/sphinx/builders/latex/constants.py @@ -10,7 +10,6 @@ from typing import Any, Dict - PDFLATEX_DEFAULT_FONTPKG = r''' \usepackage{times} \expandafter\ifx\csname T@LGR\endcsname\relax diff --git a/sphinx/builders/latex/transforms.py b/sphinx/builders/latex/transforms.py index 174483be6a2..5b8370d6c80 100644 --- a/sphinx/builders/latex/transforms.py +++ b/sphinx/builders/latex/transforms.py @@ -8,8 +8,7 @@ :license: BSD, see LICENSE for details. """ -from typing import Any, Dict, List, Set, Tuple -from typing import cast +from typing import Any, Dict, List, Set, Tuple, cast from docutils import nodes from docutils.nodes import Element, Node @@ -17,9 +16,8 @@ from sphinx import addnodes from sphinx.application import Sphinx -from sphinx.builders.latex.nodes import ( - captioned_literal_block, footnotemark, footnotetext, math_reference, thebibliography -) +from sphinx.builders.latex.nodes import (captioned_literal_block, footnotemark, footnotetext, + math_reference, thebibliography) from sphinx.domains.citation import CitationDomain from sphinx.transforms import SphinxTransform from sphinx.transforms.post_transforms import SphinxPostTransform diff --git a/sphinx/builders/linkcheck.py b/sphinx/builders/linkcheck.py index cb99de9e1b6..40e54a8d76a 100644 --- a/sphinx/builders/linkcheck.py +++ b/sphinx/builders/linkcheck.py @@ -25,14 +25,11 @@ from sphinx.application import Sphinx from sphinx.builders import Builder from sphinx.locale import __ -from sphinx.util import encode_uri, requests, logging -from sphinx.util.console import ( # type: ignore - purple, red, darkgreen, darkgray, turquoise -) +from sphinx.util import encode_uri, logging, requests +from sphinx.util.console import darkgray, darkgreen, purple, red, turquoise # type: ignore from sphinx.util.nodes import get_node_line from sphinx.util.requests import is_ssl_error - logger = logging.getLogger(__name__) uri_re = re.compile('([a-z]+:)?//') # matches to foo:// and // (a protocol relative URL) diff --git a/sphinx/builders/manpage.py b/sphinx/builders/manpage.py index 2a10ba62f63..b5e8c77cb15 100644 --- a/sphinx/builders/manpage.py +++ b/sphinx/builders/manpage.py @@ -20,13 +20,11 @@ from sphinx.config import Config from sphinx.errors import NoUri from sphinx.locale import __ -from sphinx.util import logging -from sphinx.util import progress_message +from sphinx.util import logging, progress_message from sphinx.util.console import darkgreen # type: ignore from sphinx.util.nodes import inline_all_toctrees from sphinx.util.osutil import ensuredir, make_filename_from_project -from sphinx.writers.manpage import ManualPageWriter, ManualPageTranslator - +from sphinx.writers.manpage import ManualPageTranslator, ManualPageWriter logger = logging.getLogger(__name__) diff --git a/sphinx/builders/qthelp.py b/sphinx/builders/qthelp.py index cec4d338ee4..a1fe446669b 100644 --- a/sphinx/builders/qthelp.py +++ b/sphinx/builders/qthelp.py @@ -17,7 +17,6 @@ from sphinx.application import Sphinx from sphinx.deprecation import RemovedInSphinx40Warning, deprecated_alias - deprecated_alias('sphinx.builders.qthelp', { 'render_file': render_file, diff --git a/sphinx/builders/singlehtml.py b/sphinx/builders/singlehtml.py index df90b4c73fb..d8ab978ed42 100644 --- a/sphinx/builders/singlehtml.py +++ b/sphinx/builders/singlehtml.py @@ -19,8 +19,7 @@ from sphinx.deprecation import RemovedInSphinx40Warning, deprecated_alias from sphinx.environment.adapters.toctree import TocTree from sphinx.locale import __ -from sphinx.util import logging -from sphinx.util import progress_message +from sphinx.util import logging, progress_message from sphinx.util.console import darkgreen # type: ignore from sphinx.util.nodes import inline_all_toctrees diff --git a/sphinx/builders/texinfo.py b/sphinx/builders/texinfo.py index 5e2e6e24067..345934bd414 100644 --- a/sphinx/builders/texinfo.py +++ b/sphinx/builders/texinfo.py @@ -16,23 +16,20 @@ from docutils.frontend import OptionParser from docutils.io import FileOutput -from sphinx import addnodes -from sphinx import package_dir +from sphinx import addnodes, package_dir from sphinx.application import Sphinx from sphinx.builders import Builder from sphinx.config import Config from sphinx.environment.adapters.asset import ImageAdapter from sphinx.errors import NoUri from sphinx.locale import _, __ -from sphinx.util import logging -from sphinx.util import progress_message, status_iterator +from sphinx.util import logging, progress_message, status_iterator from sphinx.util.console import darkgreen # type: ignore from sphinx.util.docutils import new_document from sphinx.util.fileutil import copy_asset_file from sphinx.util.nodes import inline_all_toctrees from sphinx.util.osutil import SEP, ensuredir, make_filename_from_project -from sphinx.writers.texinfo import TexinfoWriter, TexinfoTranslator - +from sphinx.writers.texinfo import TexinfoTranslator, TexinfoWriter logger = logging.getLogger(__name__) template_dir = os.path.join(package_dir, 'templates', 'texinfo') diff --git a/sphinx/builders/text.py b/sphinx/builders/text.py index 89b041abd93..463f4bc55f1 100644 --- a/sphinx/builders/text.py +++ b/sphinx/builders/text.py @@ -19,7 +19,7 @@ from sphinx.locale import __ from sphinx.util import logging from sphinx.util.osutil import ensuredir, os_path -from sphinx.writers.text import TextWriter, TextTranslator +from sphinx.writers.text import TextTranslator, TextWriter logger = logging.getLogger(__name__) diff --git a/sphinx/builders/xml.py b/sphinx/builders/xml.py index 81d729def9a..c31c6d79907 100644 --- a/sphinx/builders/xml.py +++ b/sphinx/builders/xml.py @@ -21,7 +21,7 @@ from sphinx.locale import __ from sphinx.util import logging from sphinx.util.osutil import ensuredir, os_path -from sphinx.writers.xml import XMLWriter, PseudoXMLWriter +from sphinx.writers.xml import PseudoXMLWriter, XMLWriter if False: # For type annotation diff --git a/sphinx/cmd/build.py b/sphinx/cmd/build.py index c4cf11cc4f9..f75b13fc818 100644 --- a/sphinx/cmd/build.py +++ b/sphinx/cmd/build.py @@ -16,7 +16,7 @@ import pdb import sys import traceback -from typing import Any, IO, List +from typing import IO, Any, List from docutils.utils import SystemMessage @@ -26,7 +26,7 @@ from sphinx.errors import SphinxError from sphinx.locale import __ from sphinx.util import Tee, format_exception_cut_frames, save_traceback -from sphinx.util.console import red, nocolor, color_terminal, terminal_safe # type: ignore +from sphinx.util.console import color_terminal, nocolor, red, terminal_safe # type: ignore from sphinx.util.docutils import docutils_namespace, patch_docutils diff --git a/sphinx/cmd/make_mode.py b/sphinx/cmd/make_mode.py index aff2ea7f537..9043868e150 100644 --- a/sphinx/cmd/make_mode.py +++ b/sphinx/cmd/make_mode.py @@ -22,10 +22,9 @@ import sphinx from sphinx.cmd.build import build_main -from sphinx.util.console import color_terminal, nocolor, bold, blue # type: ignore +from sphinx.util.console import blue, bold, color_terminal, nocolor # type: ignore from sphinx.util.osutil import cd, rmtree - BUILDERS = [ ("", "html", "to make standalone HTML files"), ("", "dirhtml", "to make HTML files named index.html in directories"), diff --git a/sphinx/cmd/quickstart.py b/sphinx/cmd/quickstart.py index 2363f9fe430..f9def265613 100644 --- a/sphinx/cmd/quickstart.py +++ b/sphinx/cmd/quickstart.py @@ -37,9 +37,8 @@ from sphinx import __display_version__, package_dir from sphinx.deprecation import RemovedInSphinx40Warning from sphinx.locale import __ -from sphinx.util.console import ( # type: ignore - colorize, bold, red, turquoise, nocolor, color_terminal -) +from sphinx.util.console import (bold, color_terminal, colorize, nocolor, red, # type: ignore + turquoise) from sphinx.util.osutil import ensuredir from sphinx.util.template import SphinxRenderer diff --git a/sphinx/config.py b/sphinx/config.py index 353268e3881..b3cd1dc6dbf 100644 --- a/sphinx/config.py +++ b/sphinx/config.py @@ -13,10 +13,9 @@ import types import warnings from collections import OrderedDict -from os import path, getenv -from typing import ( - Any, Callable, Dict, Generator, Iterator, List, NamedTuple, Set, Tuple, Union -) +from os import getenv, path +from typing import (Any, Callable, Dict, Generator, Iterator, List, NamedTuple, Set, Tuple, + Union) from sphinx.deprecation import RemovedInSphinx40Warning from sphinx.errors import ConfigError, ExtensionError diff --git a/sphinx/directives/__init__.py b/sphinx/directives/__init__.py index e6313ddab15..ecfbbd69d60 100644 --- a/sphinx/directives/__init__.py +++ b/sphinx/directives/__init__.py @@ -9,8 +9,7 @@ """ import re -from typing import Any, Dict, List, Tuple -from typing import cast +from typing import Any, Dict, List, Tuple, cast from docutils import nodes from docutils.nodes import Node @@ -18,9 +17,8 @@ from sphinx import addnodes from sphinx.addnodes import desc_signature -from sphinx.deprecation import ( - RemovedInSphinx40Warning, RemovedInSphinx50Warning, deprecated_alias -) +from sphinx.deprecation import (RemovedInSphinx40Warning, RemovedInSphinx50Warning, + deprecated_alias) from sphinx.util import docutils from sphinx.util.docfields import DocFieldTransformer, Field, TypedField from sphinx.util.docutils import SphinxDirective @@ -266,16 +264,10 @@ def run(self) -> List[Node]: self.env.temp_data['default_domain'] = self.env.domains.get(domain_name) return [] -from sphinx.directives.code import ( # noqa - Highlight, CodeBlock, LiteralInclude -) -from sphinx.directives.other import ( # noqa - TocTree, Author, VersionChange, SeeAlso, - TabularColumns, Centered, Acks, HList, Only, Include, Class -) -from sphinx.directives.patches import ( # noqa - Figure, Meta -) +from sphinx.directives.code import CodeBlock, Highlight, LiteralInclude # noqa +from sphinx.directives.other import (Acks, Author, Centered, Class, HList, Include, # noqa + Only, SeeAlso, TabularColumns, TocTree, VersionChange) +from sphinx.directives.patches import Figure, Meta # noqa from sphinx.domains.index import IndexDirective # noqa deprecated_alias('sphinx.directives', diff --git a/sphinx/directives/code.py b/sphinx/directives/code.py index 4ca849cf00b..df193017d34 100644 --- a/sphinx/directives/code.py +++ b/sphinx/directives/code.py @@ -20,8 +20,7 @@ from sphinx.config import Config from sphinx.deprecation import RemovedInSphinx40Warning from sphinx.locale import __ -from sphinx.util import logging -from sphinx.util import parselinenos +from sphinx.util import logging, parselinenos from sphinx.util.docutils import SphinxDirective if False: diff --git a/sphinx/directives/other.py b/sphinx/directives/other.py index f55f95219fc..8158f56a897 100644 --- a/sphinx/directives/other.py +++ b/sphinx/directives/other.py @@ -7,8 +7,7 @@ """ import re -from typing import Any, Dict, List -from typing import cast +from typing import Any, Dict, List, cast from docutils import nodes from docutils.nodes import Element, Node @@ -21,7 +20,7 @@ from sphinx.deprecation import RemovedInSphinx40Warning, deprecated_alias from sphinx.domains.changeset import VersionChange # NOQA # for compatibility from sphinx.locale import _ -from sphinx.util import url_re, docname_join +from sphinx.util import docname_join, url_re from sphinx.util.docutils import SphinxDirective from sphinx.util.matching import Matcher, patfilter from sphinx.util.nodes import explicit_title_re diff --git a/sphinx/directives/patches.py b/sphinx/directives/patches.py index 4b73a795550..acb79f6365c 100644 --- a/sphinx/directives/patches.py +++ b/sphinx/directives/patches.py @@ -6,13 +6,12 @@ :license: BSD, see LICENSE for details. """ -from typing import Any, Dict, List, Tuple -from typing import cast +from typing import Any, Dict, List, Tuple, cast from docutils import nodes from docutils.nodes import Node, make_id, system_message from docutils.parsers.rst import directives -from docutils.parsers.rst.directives import images, html, tables +from docutils.parsers.rst.directives import html, images, tables from sphinx import addnodes from sphinx.directives import optional_int diff --git a/sphinx/domains/__init__.py b/sphinx/domains/__init__.py index 11b3a46043e..c351a30c2a6 100644 --- a/sphinx/domains/__init__.py +++ b/sphinx/domains/__init__.py @@ -10,8 +10,7 @@ """ import copy -from typing import Any, Callable, Dict, Iterable, List, NamedTuple, Tuple, Union -from typing import cast +from typing import Any, Callable, Dict, Iterable, List, NamedTuple, Tuple, Union, cast from docutils import nodes from docutils.nodes import Element, Node, system_message @@ -26,6 +25,7 @@ if False: # For type annotation from typing import Type # for python3.5.1 + from sphinx.builders import Builder from sphinx.environment import BuildEnvironment diff --git a/sphinx/domains/c.py b/sphinx/domains/c.py index e3570b593f6..ad38682d89f 100644 --- a/sphinx/domains/c.py +++ b/sphinx/domains/c.py @@ -9,9 +9,8 @@ """ import re -from typing import ( - Any, Callable, cast, Dict, Generator, Iterator, List, Type, TypeVar, Tuple, Union -) +from typing import (Any, Callable, Dict, Generator, Iterator, List, Tuple, Type, TypeVar, + Union, cast) from docutils import nodes from docutils.nodes import Element, Node, TextElement, system_message @@ -30,15 +29,13 @@ from sphinx.transforms import SphinxTransform from sphinx.transforms.post_transforms import ReferencesResolver from sphinx.util import logging -from sphinx.util.cfamily import ( - NoOldIdError, ASTBaseBase, ASTAttribute, ASTBaseParenExprList, - verify_description_mode, StringifyTransform, - BaseParser, DefinitionError, UnsupportedMultiCharacterCharLiteral, - identifier_re, anon_identifier_re, integer_literal_re, octal_literal_re, - hex_literal_re, binary_literal_re, integers_literal_suffix_re, - float_literal_re, float_literal_suffix_re, - char_literal_re -) +from sphinx.util.cfamily import (ASTAttribute, ASTBaseBase, ASTBaseParenExprList, BaseParser, + DefinitionError, NoOldIdError, StringifyTransform, + UnsupportedMultiCharacterCharLiteral, anon_identifier_re, + binary_literal_re, char_literal_re, float_literal_re, + float_literal_suffix_re, hex_literal_re, identifier_re, + integer_literal_re, integers_literal_suffix_re, + octal_literal_re, verify_description_mode) from sphinx.util.docfields import Field, TypedField from sphinx.util.docutils import SphinxDirective from sphinx.util.nodes import make_refnode diff --git a/sphinx/domains/changeset.py b/sphinx/domains/changeset.py index a07944db897..d51e2f1a199 100644 --- a/sphinx/domains/changeset.py +++ b/sphinx/domains/changeset.py @@ -9,8 +9,7 @@ """ from collections import namedtuple -from typing import Any, Dict, List -from typing import cast +from typing import Any, Dict, List, cast from docutils import nodes from docutils.nodes import Node @@ -20,7 +19,6 @@ from sphinx.locale import _ from sphinx.util.docutils import SphinxDirective - if False: # For type annotation from sphinx.application import Sphinx diff --git a/sphinx/domains/citation.py b/sphinx/domains/citation.py index 38901867a74..9546211d561 100644 --- a/sphinx/domains/citation.py +++ b/sphinx/domains/citation.py @@ -8,8 +8,7 @@ :license: BSD, see LICENSE for details. """ -from typing import Any, Dict, List, Set, Tuple -from typing import cast +from typing import Any, Dict, List, Set, Tuple, cast from docutils import nodes from docutils.nodes import Element diff --git a/sphinx/domains/cpp.py b/sphinx/domains/cpp.py index 72d42503550..35df74027ad 100644 --- a/sphinx/domains/cpp.py +++ b/sphinx/domains/cpp.py @@ -9,9 +9,8 @@ """ import re -from typing import ( - Any, Callable, Dict, Generator, Iterator, List, Tuple, Type, TypeVar, Union, Optional -) +from typing import (Any, Callable, Dict, Generator, Iterator, List, Optional, Tuple, Type, + TypeVar, Union) from docutils import nodes from docutils.nodes import Element, Node, TextElement, system_message @@ -30,20 +29,17 @@ from sphinx.transforms import SphinxTransform from sphinx.transforms.post_transforms import ReferencesResolver from sphinx.util import logging -from sphinx.util.cfamily import ( - NoOldIdError, ASTBaseBase, ASTAttribute, ASTBaseParenExprList, - verify_description_mode, StringifyTransform, - BaseParser, DefinitionError, UnsupportedMultiCharacterCharLiteral, - identifier_re, anon_identifier_re, integer_literal_re, octal_literal_re, - hex_literal_re, binary_literal_re, integers_literal_suffix_re, - float_literal_re, float_literal_suffix_re, - char_literal_re -) +from sphinx.util.cfamily import (ASTAttribute, ASTBaseBase, ASTBaseParenExprList, BaseParser, + DefinitionError, NoOldIdError, StringifyTransform, + UnsupportedMultiCharacterCharLiteral, anon_identifier_re, + binary_literal_re, char_literal_re, float_literal_re, + float_literal_suffix_re, hex_literal_re, identifier_re, + integer_literal_re, integers_literal_suffix_re, + octal_literal_re, verify_description_mode) from sphinx.util.docfields import Field, GroupedField from sphinx.util.docutils import SphinxDirective from sphinx.util.nodes import make_refnode - logger = logging.getLogger(__name__) T = TypeVar('T') diff --git a/sphinx/domains/index.py b/sphinx/domains/index.py index 18a256bacc9..552b46cf988 100644 --- a/sphinx/domains/index.py +++ b/sphinx/domains/index.py @@ -17,8 +17,7 @@ from sphinx import addnodes from sphinx.domains import Domain from sphinx.environment import BuildEnvironment -from sphinx.util import logging -from sphinx.util import split_index_msg +from sphinx.util import logging, split_index_msg from sphinx.util.docutils import ReferenceRole, SphinxDirective from sphinx.util.nodes import process_index_entry diff --git a/sphinx/domains/javascript.py b/sphinx/domains/javascript.py index dc7d610c223..6a431540c24 100644 --- a/sphinx/domains/javascript.py +++ b/sphinx/domains/javascript.py @@ -8,8 +8,7 @@ :license: BSD, see LICENSE for details. """ -from typing import Any, Dict, Iterator, List, Tuple -from typing import cast +from typing import Any, Dict, Iterator, List, Tuple, cast from docutils import nodes from docutils.nodes import Element, Node @@ -30,7 +29,6 @@ from sphinx.util.docutils import SphinxDirective from sphinx.util.nodes import make_id, make_refnode - logger = logging.getLogger(__name__) diff --git a/sphinx/domains/math.py b/sphinx/domains/math.py index e77bd0ed792..a2f4bd964f8 100644 --- a/sphinx/domains/math.py +++ b/sphinx/domains/math.py @@ -12,8 +12,7 @@ from typing import Any, Dict, Iterable, List, Tuple from docutils import nodes -from docutils.nodes import Element, Node, system_message -from docutils.nodes import make_id +from docutils.nodes import Element, Node, make_id, system_message from sphinx.addnodes import pending_xref from sphinx.deprecation import RemovedInSphinx40Warning diff --git a/sphinx/domains/python.py b/sphinx/domains/python.py index f4bc58b6980..79d7e4f466d 100644 --- a/sphinx/domains/python.py +++ b/sphinx/domains/python.py @@ -15,23 +15,23 @@ import typing import warnings from inspect import Parameter -from typing import Any, Dict, Iterable, Iterator, List, NamedTuple, Tuple -from typing import cast +from typing import Any, Dict, Iterable, Iterator, List, NamedTuple, Tuple, cast from docutils import nodes from docutils.nodes import Element, Node from docutils.parsers.rst import directives from sphinx import addnodes -from sphinx.addnodes import pending_xref, desc_signature +from sphinx.addnodes import desc_signature, pending_xref from sphinx.application import Sphinx from sphinx.builders import Builder from sphinx.deprecation import RemovedInSphinx40Warning, RemovedInSphinx50Warning from sphinx.directives import ObjectDescription -from sphinx.domains import Domain, ObjType, Index, IndexEntry +from sphinx.domains import Domain, Index, IndexEntry, ObjType from sphinx.environment import BuildEnvironment from sphinx.locale import _, __ -from sphinx.pycode.ast import ast, parse as ast_parse +from sphinx.pycode.ast import ast +from sphinx.pycode.ast import parse as ast_parse from sphinx.roles import XRefRole from sphinx.util import logging from sphinx.util.docfields import Field, GroupedField, TypedField diff --git a/sphinx/domains/rst.py b/sphinx/domains/rst.py index e25b319368f..bc9ffda07b5 100644 --- a/sphinx/domains/rst.py +++ b/sphinx/domains/rst.py @@ -9,8 +9,7 @@ """ import re -from typing import Any, Dict, Iterator, List, Tuple -from typing import cast +from typing import Any, Dict, Iterator, List, Tuple, cast from docutils.nodes import Element from docutils.parsers.rst import directives @@ -27,7 +26,6 @@ from sphinx.util import logging from sphinx.util.nodes import make_id, make_refnode - logger = logging.getLogger(__name__) dir_sig_re = re.compile(r'\.\. (.+?)::(.*)$') diff --git a/sphinx/domains/std.py b/sphinx/domains/std.py index 7ea468404a3..4bde579305a 100644 --- a/sphinx/domains/std.py +++ b/sphinx/domains/std.py @@ -12,8 +12,7 @@ import unicodedata import warnings from copy import copy -from typing import Any, Callable, Dict, Iterable, Iterator, List, Optional, Tuple, Union -from typing import cast +from typing import Any, Callable, Dict, Iterable, Iterator, List, Optional, Tuple, Union, cast from docutils import nodes from docutils.nodes import Element, Node, system_message @@ -27,7 +26,7 @@ from sphinx.domains import Domain, ObjType from sphinx.locale import _, __ from sphinx.roles import XRefRole -from sphinx.util import ws_re, logging, docname_join +from sphinx.util import docname_join, logging, ws_re from sphinx.util.docutils import SphinxDirective from sphinx.util.nodes import clean_astext, make_id, make_refnode from sphinx.util.typing import RoleFunction @@ -35,6 +34,7 @@ if False: # For type annotation from typing import Type # for python3.5.1 + from sphinx.application import Sphinx from sphinx.builders import Builder from sphinx.environment import BuildEnvironment diff --git a/sphinx/environment/__init__.py b/sphinx/environment/__init__.py index 8ce9fa365a9..d52e895beea 100644 --- a/sphinx/environment/__init__.py +++ b/sphinx/environment/__init__.py @@ -14,8 +14,7 @@ from collections import defaultdict from copy import copy from os import path -from typing import Any, Callable, Dict, Generator, Iterator, List, Set, Tuple, Union -from typing import cast +from typing import Any, Callable, Dict, Generator, Iterator, List, Set, Tuple, Union, cast from docutils import nodes from docutils.nodes import Node @@ -25,13 +24,12 @@ from sphinx.deprecation import RemovedInSphinx40Warning from sphinx.domains import Domain from sphinx.environment.adapters.toctree import TocTree -from sphinx.errors import SphinxError, BuildEnvironmentError, DocumentError, ExtensionError +from sphinx.errors import BuildEnvironmentError, DocumentError, ExtensionError, SphinxError from sphinx.events import EventManager from sphinx.locale import __ from sphinx.project import Project from sphinx.transforms import SphinxTransformer -from sphinx.util import DownloadFiles, FilenameUniqDict -from sphinx.util import logging +from sphinx.util import DownloadFiles, FilenameUniqDict, logging from sphinx.util.docutils import LoggingReporter from sphinx.util.i18n import CatalogRepository, docname_to_domain from sphinx.util.nodes import is_translatable diff --git a/sphinx/environment/adapters/indexentries.py b/sphinx/environment/adapters/indexentries.py index b13ac97c34b..427024a0069 100644 --- a/sphinx/environment/adapters/indexentries.py +++ b/sphinx/environment/adapters/indexentries.py @@ -11,16 +11,14 @@ import re import unicodedata from itertools import groupby -from typing import Any, Dict, Pattern, List, Tuple -from typing import cast +from typing import Any, Dict, List, Pattern, Tuple, cast from sphinx.builders import Builder from sphinx.domains.index import IndexDomain from sphinx.environment import BuildEnvironment from sphinx.errors import NoUri from sphinx.locale import _, __ -from sphinx.util import split_into, logging - +from sphinx.util import logging, split_into logger = logging.getLogger(__name__) diff --git a/sphinx/environment/adapters/toctree.py b/sphinx/environment/adapters/toctree.py index 9a1ef73d4b6..c49da5637e1 100644 --- a/sphinx/environment/adapters/toctree.py +++ b/sphinx/environment/adapters/toctree.py @@ -8,15 +8,14 @@ :license: BSD, see LICENSE for details. """ -from typing import Any, Iterable, List -from typing import cast +from typing import Any, Iterable, List, cast from docutils import nodes from docutils.nodes import Element, Node from sphinx import addnodes from sphinx.locale import __ -from sphinx.util import url_re, logging +from sphinx.util import logging, url_re from sphinx.util.matching import Matcher from sphinx.util.nodes import clean_astext, process_only_nodes diff --git a/sphinx/environment/collectors/asset.py b/sphinx/environment/collectors/asset.py index 3da2a6e4b84..7f913ebbc23 100644 --- a/sphinx/environment/collectors/asset.py +++ b/sphinx/environment/collectors/asset.py @@ -26,7 +26,6 @@ from sphinx.util.i18n import get_image_filename_for_language, search_image_for_language from sphinx.util.images import guess_mimetype - logger = logging.getLogger(__name__) diff --git a/sphinx/environment/collectors/indexentries.py b/sphinx/environment/collectors/indexentries.py index a4c0450d2e2..8c60fa98536 100644 --- a/sphinx/environment/collectors/indexentries.py +++ b/sphinx/environment/collectors/indexentries.py @@ -18,8 +18,7 @@ from sphinx.deprecation import RemovedInSphinx40Warning from sphinx.environment import BuildEnvironment from sphinx.environment.collectors import EnvironmentCollector -from sphinx.util import split_index_msg, logging - +from sphinx.util import logging, split_index_msg logger = logging.getLogger(__name__) diff --git a/sphinx/environment/collectors/metadata.py b/sphinx/environment/collectors/metadata.py index bcff1f2739f..ef872759be2 100644 --- a/sphinx/environment/collectors/metadata.py +++ b/sphinx/environment/collectors/metadata.py @@ -8,8 +8,7 @@ :license: BSD, see LICENSE for details. """ -from typing import Any, Dict, List, Set -from typing import cast +from typing import Any, Dict, List, Set, cast from docutils import nodes diff --git a/sphinx/environment/collectors/toctree.py b/sphinx/environment/collectors/toctree.py index d6cdc835477..14ff4ed7462 100644 --- a/sphinx/environment/collectors/toctree.py +++ b/sphinx/environment/collectors/toctree.py @@ -8,8 +8,7 @@ :license: BSD, see LICENSE for details. """ -from typing import Any, Dict, List, Set, Tuple, TypeVar -from typing import cast +from typing import Any, Dict, List, Set, Tuple, TypeVar, cast from docutils import nodes from docutils.nodes import Element, Node @@ -21,7 +20,7 @@ from sphinx.environment.collectors import EnvironmentCollector from sphinx.locale import __ from sphinx.transforms import SphinxContentsFilter -from sphinx.util import url_re, logging +from sphinx.util import logging, url_re if False: # For type annotation diff --git a/sphinx/events.py b/sphinx/events.py index 214654706f2..c8d07eb6155 100644 --- a/sphinx/events.py +++ b/sphinx/events.py @@ -23,6 +23,7 @@ if False: # For type annotation from typing import Type # for python3.5.1 + from sphinx.application import Sphinx diff --git a/sphinx/ext/autodoc/__init__.py b/sphinx/ext/autodoc/__init__.py index 3c9d9ceadff..8414ce348a3 100644 --- a/sphinx/ext/autodoc/__init__.py +++ b/sphinx/ext/autodoc/__init__.py @@ -15,33 +15,31 @@ import warnings from inspect import Parameter, Signature from types import ModuleType -from typing import ( - Any, Callable, Dict, Iterator, List, Optional, Sequence, Set, Tuple, Type, TypeVar, Union -) -from typing import get_type_hints +from typing import (Any, Callable, Dict, Iterator, List, Optional, Sequence, Set, Tuple, Type, + TypeVar, Union, get_type_hints) from docutils.statemachine import StringList import sphinx from sphinx.application import Sphinx -from sphinx.config import Config, ENUM +from sphinx.config import ENUM, Config from sphinx.deprecation import RemovedInSphinx40Warning, RemovedInSphinx50Warning from sphinx.environment import BuildEnvironment -from sphinx.ext.autodoc.importer import import_object, get_module_members, get_object_members +from sphinx.ext.autodoc.importer import get_module_members, get_object_members, import_object from sphinx.ext.autodoc.mock import mock from sphinx.locale import _, __ from sphinx.pycode import ModuleAnalyzer, PycodeError -from sphinx.util import inspect -from sphinx.util import logging +from sphinx.util import inspect, logging from sphinx.util.docstrings import extract_metadata, prepare_docstring -from sphinx.util.inspect import ( - evaluate_signature, getdoc, object_description, safe_getattr, stringify_signature -) -from sphinx.util.typing import restify, stringify as stringify_typehint +from sphinx.util.inspect import (evaluate_signature, getdoc, object_description, safe_getattr, + stringify_signature) +from sphinx.util.typing import restify +from sphinx.util.typing import stringify as stringify_typehint if False: # For type annotation from typing import Type # NOQA # for python3.5.1 + from sphinx.ext.autodoc.directive import DocumenterBridge diff --git a/sphinx/ext/autodoc/importer.py b/sphinx/ext/autodoc/importer.py index 52b07639af6..29c56c54b3e 100644 --- a/sphinx/ext/autodoc/importer.py +++ b/sphinx/ext/autodoc/importer.py @@ -240,9 +240,8 @@ def get_object_members(subject: Any, objpath: List[str], attrgetter: Callable, return members -from sphinx.ext.autodoc.mock import ( # NOQA - _MockModule, _MockObject, MockFinder, MockLoader, mock -) +from sphinx.ext.autodoc.mock import (MockFinder, MockLoader, _MockModule, _MockObject, # NOQA + mock) deprecated_alias('sphinx.ext.autodoc.importer', { diff --git a/sphinx/ext/autodoc/type_comment.py b/sphinx/ext/autodoc/type_comment.py index 7f11e3d120d..debbc14428a 100644 --- a/sphinx/ext/autodoc/type_comment.py +++ b/sphinx/ext/autodoc/type_comment.py @@ -9,8 +9,7 @@ """ from inspect import Parameter, Signature, getsource -from typing import Any, Dict, List -from typing import cast +from typing import Any, Dict, List, cast import sphinx from sphinx.application import Sphinx @@ -18,8 +17,7 @@ from sphinx.pycode.ast import ast from sphinx.pycode.ast import parse as ast_parse from sphinx.pycode.ast import unparse as ast_unparse -from sphinx.util import inspect -from sphinx.util import logging +from sphinx.util import inspect, logging logger = logging.getLogger(__name__) diff --git a/sphinx/ext/autodoc/typehints.py b/sphinx/ext/autodoc/typehints.py index 4f81a6eaeb8..70cbc3ba129 100644 --- a/sphinx/ext/autodoc/typehints.py +++ b/sphinx/ext/autodoc/typehints.py @@ -10,8 +10,7 @@ import re from collections import OrderedDict -from typing import Any, Dict, Iterable -from typing import cast +from typing import Any, Dict, Iterable, cast from docutils import nodes from docutils.nodes import Element diff --git a/sphinx/ext/autosectionlabel.py b/sphinx/ext/autosectionlabel.py index 4bb401791fb..73a4601174c 100644 --- a/sphinx/ext/autosectionlabel.py +++ b/sphinx/ext/autosectionlabel.py @@ -8,8 +8,7 @@ :license: BSD, see LICENSE for details. """ -from typing import Any, Dict -from typing import cast +from typing import Any, Dict, cast from docutils import nodes from docutils.nodes import Node @@ -20,7 +19,6 @@ from sphinx.util import logging from sphinx.util.nodes import clean_astext - logger = logging.getLogger(__name__) diff --git a/sphinx/ext/autosummary/__init__.py b/sphinx/ext/autosummary/__init__.py index 0fb7c9fc5ed..d107750bef2 100644 --- a/sphinx/ext/autosummary/__init__.py +++ b/sphinx/ext/autosummary/__init__.py @@ -60,8 +60,7 @@ import warnings from os import path from types import ModuleType -from typing import Any, Dict, List, Tuple -from typing import cast +from typing import Any, Dict, List, Tuple, cast from docutils import nodes from docutils.nodes import Element, Node, system_message @@ -76,16 +75,15 @@ from sphinx.deprecation import RemovedInSphinx40Warning, RemovedInSphinx50Warning from sphinx.environment import BuildEnvironment from sphinx.environment.adapters.toctree import TocTree -from sphinx.ext.autodoc import Documenter, INSTANCEATTR +from sphinx.ext.autodoc import INSTANCEATTR, Documenter from sphinx.ext.autodoc.directive import DocumenterBridge, Options from sphinx.ext.autodoc.importer import import_module from sphinx.ext.autodoc.mock import mock from sphinx.locale import __ from sphinx.pycode import ModuleAnalyzer, PycodeError -from sphinx.util import rst, logging -from sphinx.util.docutils import ( - NullReporter, SphinxDirective, SphinxRole, new_document, switch_source_input -) +from sphinx.util import logging, rst +from sphinx.util.docutils import (NullReporter, SphinxDirective, SphinxRole, new_document, + switch_source_input) from sphinx.util.matching import Matcher from sphinx.writers.html import HTMLTranslator diff --git a/sphinx/ext/autosummary/generate.py b/sphinx/ext/autosummary/generate.py index 7580285aa69..7e187e36a5d 100644 --- a/sphinx/ext/autosummary/generate.py +++ b/sphinx/ext/autosummary/generate.py @@ -34,20 +34,17 @@ from jinja2.sandbox import SandboxedEnvironment import sphinx.locale -from sphinx import __display_version__ -from sphinx import package_dir +from sphinx import __display_version__, package_dir from sphinx.application import Sphinx from sphinx.builders import Builder from sphinx.config import Config from sphinx.deprecation import RemovedInSphinx40Warning, RemovedInSphinx50Warning from sphinx.ext.autodoc import Documenter -from sphinx.ext.autosummary import import_by_name, import_ivar_by_name, get_documenter +from sphinx.ext.autosummary import get_documenter, import_by_name, import_ivar_by_name from sphinx.locale import __ from sphinx.pycode import ModuleAnalyzer, PycodeError from sphinx.registry import SphinxComponentRegistry -from sphinx.util import logging -from sphinx.util import rst -from sphinx.util import split_full_qualified_name +from sphinx.util import logging, rst, split_full_qualified_name from sphinx.util.inspect import safe_getattr from sphinx.util.osutil import ensuredir from sphinx.util.template import SphinxTemplateLoader @@ -88,13 +85,13 @@ def emit_firstresult(self, *args: Any) -> None: def setup_documenters(app: Any) -> None: - from sphinx.ext.autodoc import ( - ModuleDocumenter, ClassDocumenter, ExceptionDocumenter, DataDocumenter, - FunctionDocumenter, MethodDocumenter, AttributeDocumenter, - InstanceAttributeDocumenter, DecoratorDocumenter, PropertyDocumenter, - SlotsAttributeDocumenter, DataDeclarationDocumenter, GenericAliasDocumenter, - SingledispatchFunctionDocumenter, - ) + from sphinx.ext.autodoc import (AttributeDocumenter, ClassDocumenter, + DataDeclarationDocumenter, DataDocumenter, + DecoratorDocumenter, ExceptionDocumenter, + FunctionDocumenter, GenericAliasDocumenter, + InstanceAttributeDocumenter, MethodDocumenter, + ModuleDocumenter, PropertyDocumenter, + SingledispatchFunctionDocumenter, SlotsAttributeDocumenter) documenters = [ ModuleDocumenter, ClassDocumenter, ExceptionDocumenter, DataDocumenter, FunctionDocumenter, MethodDocumenter, AttributeDocumenter, diff --git a/sphinx/ext/coverage.py b/sphinx/ext/coverage.py index 536b3b9d295..b971b5f25ae 100644 --- a/sphinx/ext/coverage.py +++ b/sphinx/ext/coverage.py @@ -15,7 +15,7 @@ import re from importlib import import_module from os import path -from typing import Any, Dict, IO, List, Pattern, Set, Tuple +from typing import IO, Any, Dict, List, Pattern, Set, Tuple import sphinx from sphinx.application import Sphinx diff --git a/sphinx/ext/doctest.py b/sphinx/ext/doctest.py index 7cd89ad3227..aeeb7f5ec67 100644 --- a/sphinx/ext/doctest.py +++ b/sphinx/ext/doctest.py @@ -21,7 +21,7 @@ from docutils import nodes from docutils.nodes import Element, Node, TextElement from docutils.parsers.rst import directives -from packaging.specifiers import SpecifierSet, InvalidSpecifier +from packaging.specifiers import InvalidSpecifier, SpecifierSet from packaging.version import Version import sphinx @@ -36,6 +36,7 @@ if False: # For type annotation from typing import Type # for python3.5.1 + from sphinx.application import Sphinx diff --git a/sphinx/ext/duration.py b/sphinx/ext/duration.py index 669baf2f1a9..7073f7769a8 100644 --- a/sphinx/ext/duration.py +++ b/sphinx/ext/duration.py @@ -11,8 +11,7 @@ from datetime import datetime, timedelta from itertools import islice from operator import itemgetter -from typing import Any, Dict, List -from typing import cast +from typing import Any, Dict, List, cast from docutils import nodes diff --git a/sphinx/ext/graphviz.py b/sphinx/ext/graphviz.py index d97a7505ec1..62375f95bc2 100644 --- a/sphinx/ext/graphviz.py +++ b/sphinx/ext/graphviz.py @@ -13,7 +13,7 @@ import re import subprocess from os import path -from subprocess import CalledProcessError, PIPE +from subprocess import PIPE, CalledProcessError from typing import Any, Dict, List, Tuple from docutils import nodes diff --git a/sphinx/ext/imgconverter.py b/sphinx/ext/imgconverter.py index dd13a98796d..a82b35a5e96 100644 --- a/sphinx/ext/imgconverter.py +++ b/sphinx/ext/imgconverter.py @@ -10,7 +10,7 @@ import subprocess import sys -from subprocess import CalledProcessError, PIPE +from subprocess import PIPE, CalledProcessError from typing import Any, Dict from sphinx.application import Sphinx @@ -19,7 +19,6 @@ from sphinx.transforms.post_transforms.images import ImageConverter from sphinx.util import logging - logger = logging.getLogger(__name__) diff --git a/sphinx/ext/imgmath.py b/sphinx/ext/imgmath.py index d11c5d7c542..9e124749ec3 100644 --- a/sphinx/ext/imgmath.py +++ b/sphinx/ext/imgmath.py @@ -15,7 +15,7 @@ import sys import tempfile from os import path -from subprocess import CalledProcessError, PIPE +from subprocess import PIPE, CalledProcessError from typing import Any, Dict, List, Tuple from docutils import nodes diff --git a/sphinx/ext/inheritance_diagram.py b/sphinx/ext/inheritance_diagram.py index 71a123b150e..9e38041dff5 100644 --- a/sphinx/ext/inheritance_diagram.py +++ b/sphinx/ext/inheritance_diagram.py @@ -39,8 +39,7 @@ class E(B): pass import inspect import re from importlib import import_module -from typing import Any, Dict, Iterable, List, Tuple -from typing import cast +from typing import Any, Dict, Iterable, List, Tuple, cast from docutils import nodes from docutils.nodes import Node @@ -50,17 +49,14 @@ class E(B): pass from sphinx import addnodes from sphinx.application import Sphinx from sphinx.environment import BuildEnvironment -from sphinx.ext.graphviz import ( - graphviz, figure_wrapper, - render_dot_html, render_dot_latex, render_dot_texinfo -) +from sphinx.ext.graphviz import (figure_wrapper, graphviz, render_dot_html, render_dot_latex, + render_dot_texinfo) from sphinx.util import md5 from sphinx.util.docutils import SphinxDirective from sphinx.writers.html import HTMLTranslator from sphinx.writers.latex import LaTeXTranslator from sphinx.writers.texinfo import TexinfoTranslator - module_sig_re = re.compile(r'''^(?:([\w.]*)\.)? # module names (\w+) \s* $ # class/final module name ''', re.VERBOSE) diff --git a/sphinx/ext/intersphinx.py b/sphinx/ext/intersphinx.py index a6c4ef6944c..52ba11782d9 100644 --- a/sphinx/ext/intersphinx.py +++ b/sphinx/ext/intersphinx.py @@ -29,7 +29,7 @@ import sys import time from os import path -from typing import Any, Dict, IO, List, Tuple +from typing import IO, Any, Dict, List, Tuple from urllib.parse import urlsplit, urlunsplit from docutils import nodes @@ -42,11 +42,10 @@ from sphinx.config import Config from sphinx.environment import BuildEnvironment from sphinx.locale import _, __ -from sphinx.util import requests, logging +from sphinx.util import logging, requests from sphinx.util.inventory import InventoryFile from sphinx.util.typing import Inventory - logger = logging.getLogger(__name__) diff --git a/sphinx/ext/jsmath.py b/sphinx/ext/jsmath.py index 75369a5ca62..1d4eb4826f6 100644 --- a/sphinx/ext/jsmath.py +++ b/sphinx/ext/jsmath.py @@ -12,11 +12,8 @@ import warnings from typing import Any, Dict -from sphinxcontrib.jsmath import ( # NOQA - html_visit_math, - html_visit_displaymath, - install_jsmath, -) +from sphinxcontrib.jsmath import (html_visit_displaymath, html_visit_math, # NOQA + install_jsmath) import sphinx from sphinx.application import Sphinx diff --git a/sphinx/ext/mathjax.py b/sphinx/ext/mathjax.py index cc3cd4ba34e..6317a13150a 100644 --- a/sphinx/ext/mathjax.py +++ b/sphinx/ext/mathjax.py @@ -11,8 +11,7 @@ """ import json -from typing import Any, Dict -from typing import cast +from typing import Any, Dict, cast from docutils import nodes diff --git a/sphinx/ext/napoleon/__init__.py b/sphinx/ext/napoleon/__init__.py index e62ef71520a..e2ff5439d4e 100644 --- a/sphinx/ext/napoleon/__init__.py +++ b/sphinx/ext/napoleon/__init__.py @@ -443,8 +443,8 @@ def _skip_member(app: Sphinx, what: str, name: str, obj: Any, if cls_path: try: if '.' in cls_path: - import importlib import functools + import importlib mod = importlib.import_module(obj.__module__) mod_path = cls_path.split('.') diff --git a/sphinx/ext/todo.py b/sphinx/ext/todo.py index bfb46903feb..273cf3f73e1 100644 --- a/sphinx/ext/todo.py +++ b/sphinx/ext/todo.py @@ -12,8 +12,7 @@ """ import warnings -from typing import Any, Dict, Iterable, List, Tuple -from typing import cast +from typing import Any, Dict, Iterable, List, Tuple, cast from docutils import nodes from docutils.nodes import Element, Node diff --git a/sphinx/ext/viewcode.py b/sphinx/ext/viewcode.py index dc24a1993e0..812b3d6a2a3 100644 --- a/sphinx/ext/viewcode.py +++ b/sphinx/ext/viewcode.py @@ -23,7 +23,6 @@ from sphinx.util import get_full_modname, logging, status_iterator from sphinx.util.nodes import make_refnode - logger = logging.getLogger(__name__) diff --git a/sphinx/highlighting.py b/sphinx/highlighting.py index 4dc9ce543ff..a341212cf86 100644 --- a/sphinx/highlighting.py +++ b/sphinx/highlighting.py @@ -17,18 +17,16 @@ from pygments.formatter import Formatter from pygments.formatters import HtmlFormatter, LatexFormatter from pygments.lexer import Lexer -from pygments.lexers import get_lexer_by_name, guess_lexer -from pygments.lexers import PythonLexer, Python3Lexer, PythonConsoleLexer, \ - CLexer, TextLexer, RstLexer +from pygments.lexers import (CLexer, Python3Lexer, PythonConsoleLexer, PythonLexer, RstLexer, + TextLexer, get_lexer_by_name, guess_lexer) from pygments.style import Style from pygments.styles import get_style_by_name from pygments.util import ClassNotFound from sphinx.locale import __ -from sphinx.pygments_styles import SphinxStyle, NoneStyle +from sphinx.pygments_styles import NoneStyle, SphinxStyle from sphinx.util import logging, texescape - logger = logging.getLogger(__name__) lexers = {} # type: Dict[str, Lexer] diff --git a/sphinx/io.py b/sphinx/io.py index fd30b86a98d..e4c2e00b065 100644 --- a/sphinx/io.py +++ b/sphinx/io.py @@ -26,21 +26,19 @@ from sphinx.deprecation import RemovedInSphinx40Warning, deprecated_alias from sphinx.environment import BuildEnvironment from sphinx.errors import FiletypeNotFoundError -from sphinx.transforms import ( - AutoIndexUpgrader, DoctreeReadEvent, FigureAligner, SphinxTransformer -) -from sphinx.transforms.i18n import ( - PreserveTranslatableMessages, Locale, RemoveTranslatableInline, -) +from sphinx.transforms import (AutoIndexUpgrader, DoctreeReadEvent, FigureAligner, + SphinxTransformer) +from sphinx.transforms.i18n import (Locale, PreserveTranslatableMessages, + RemoveTranslatableInline) from sphinx.transforms.references import SphinxDomains -from sphinx.util import logging, get_filetype -from sphinx.util import UnicodeDecodeErrorHandler +from sphinx.util import UnicodeDecodeErrorHandler, get_filetype, logging from sphinx.util.docutils import LoggingReporter from sphinx.versioning import UIDTransform if False: # For type annotation from typing import Type # for python3.5.1 + from sphinx.application import Sphinx diff --git a/sphinx/jinja2glue.py b/sphinx/jinja2glue.py index 52d0257e58e..0a26fc9824c 100644 --- a/sphinx/jinja2glue.py +++ b/sphinx/jinja2glue.py @@ -12,7 +12,7 @@ from pprint import pformat from typing import Any, Callable, Dict, Iterator, List, Tuple, Union -from jinja2 import FileSystemLoader, BaseLoader, TemplateNotFound, contextfunction +from jinja2 import BaseLoader, FileSystemLoader, TemplateNotFound, contextfunction from jinja2.environment import Environment from jinja2.sandbox import SandboxedEnvironment from jinja2.utils import open_if_exists diff --git a/sphinx/parsers.py b/sphinx/parsers.py index 6a07d18016d..19f726b0dda 100644 --- a/sphinx/parsers.py +++ b/sphinx/parsers.py @@ -23,8 +23,10 @@ if False: # For type annotation - from docutils.transforms import Transform # NOQA from typing import Type # NOQA # for python3.5.1 + + from docutils.transforms import Transform # NOQA + from sphinx.application import Sphinx diff --git a/sphinx/project.py b/sphinx/project.py index f4afdadad37..e5f05c9d3af 100644 --- a/sphinx/project.py +++ b/sphinx/project.py @@ -12,9 +12,7 @@ from glob import glob from sphinx.locale import __ -from sphinx.util import get_matching_files -from sphinx.util import logging -from sphinx.util import path_stabilize +from sphinx.util import get_matching_files, logging, path_stabilize from sphinx.util.matching import compile_matchers from sphinx.util.osutil import SEP, relpath diff --git a/sphinx/pycode/__init__.py b/sphinx/pycode/__init__.py index 4fef4a394c5..471ee675a8a 100644 --- a/sphinx/pycode/__init__.py +++ b/sphinx/pycode/__init__.py @@ -16,7 +16,7 @@ from inspect import Signature from io import StringIO from os import path -from typing import Any, Dict, IO, List, Tuple, Optional +from typing import IO, Any, Dict, List, Optional, Tuple from zipfile import ZipFile from sphinx.deprecation import RemovedInSphinx40Warning diff --git a/sphinx/pycode/ast.py b/sphinx/pycode/ast.py index 17d78f4eb1c..e8b0832eaca 100644 --- a/sphinx/pycode/ast.py +++ b/sphinx/pycode/ast.py @@ -9,7 +9,7 @@ """ import sys -from typing import Dict, List, Type, Optional +from typing import Dict, List, Optional, Type if sys.version_info > (3, 8): import ast diff --git a/sphinx/pycode/parser.py b/sphinx/pycode/parser.py index be9bfc96d38..d2401211183 100644 --- a/sphinx/pycode/parser.py +++ b/sphinx/pycode/parser.py @@ -14,14 +14,13 @@ import tokenize from collections import OrderedDict from inspect import Signature -from token import NAME, NEWLINE, INDENT, DEDENT, NUMBER, OP, STRING +from token import DEDENT, INDENT, NAME, NEWLINE, NUMBER, OP, STRING from tokenize import COMMENT, NL from typing import Any, Dict, List, Optional, Tuple from sphinx.pycode.ast import ast # for py37 or older from sphinx.pycode.ast import parse, unparse - comment_re = re.compile('^\\s*#: ?(.*)\r?\n?$') indent_re = re.compile('^\\s*$') emptyline_re = re.compile('^\\s*(#.*)?$') diff --git a/sphinx/pygments_styles.py b/sphinx/pygments_styles.py index c5b07e75fd7..248ae536ea1 100644 --- a/sphinx/pygments_styles.py +++ b/sphinx/pygments_styles.py @@ -10,8 +10,8 @@ from pygments.style import Style from pygments.styles.friendly import FriendlyStyle -from pygments.token import Generic, Comment, Number, Whitespace, Keyword, \ - Operator, Name, String, Error +from pygments.token import (Comment, Error, Generic, Keyword, Name, Number, Operator, String, + Whitespace) class NoneStyle(Style): diff --git a/sphinx/registry.py b/sphinx/registry.py index d0c00b85f62..0e3b954364a 100644 --- a/sphinx/registry.py +++ b/sphinx/registry.py @@ -38,6 +38,7 @@ if False: # For type annotation from typing import Type # for python3.5.1 + from sphinx.application import Sphinx from sphinx.ext.autodoc import Documenter diff --git a/sphinx/roles.py b/sphinx/roles.py index 2ff66d07b96..2d3042f8f63 100644 --- a/sphinx/roles.py +++ b/sphinx/roles.py @@ -21,14 +21,13 @@ from sphinx.locale import _ from sphinx.util import ws_re from sphinx.util.docutils import ReferenceRole, SphinxRole -from sphinx.util.nodes import ( - split_explicit_title, process_index_entry, set_role_source_info -) +from sphinx.util.nodes import process_index_entry, set_role_source_info, split_explicit_title from sphinx.util.typing import RoleFunction if False: # For type annotation from typing import Type # for python3.5.1 + from sphinx.application import Sphinx from sphinx.environment import BuildEnvironment diff --git a/sphinx/search/__init__.py b/sphinx/search/__init__.py index 048b333d523..2b7f160997f 100644 --- a/sphinx/search/__init__.py +++ b/sphinx/search/__init__.py @@ -13,13 +13,12 @@ import warnings from importlib import import_module from os import path -from typing import Any, Dict, IO, Iterable, List, Tuple, Set +from typing import IO, Any, Dict, Iterable, List, Set, Tuple from docutils import nodes from docutils.nodes import Node -from sphinx import addnodes -from sphinx import package_dir +from sphinx import addnodes, package_dir from sphinx.deprecation import RemovedInSphinx40Warning from sphinx.environment import BuildEnvironment from sphinx.search.jssplitter import splitter_code diff --git a/sphinx/search/da.py b/sphinx/search/da.py index b04679e1091..57af4a7bebd 100644 --- a/sphinx/search/da.py +++ b/sphinx/search/da.py @@ -14,7 +14,6 @@ from sphinx.search import SearchLanguage, parse_stop_word - danish_stopwords = parse_stop_word(''' | source: http://snowball.tartarus.org/algorithms/danish/stop.txt og | and diff --git a/sphinx/search/de.py b/sphinx/search/de.py index ae1827bf93d..6c84d463aad 100644 --- a/sphinx/search/de.py +++ b/sphinx/search/de.py @@ -14,7 +14,6 @@ from sphinx.search import SearchLanguage, parse_stop_word - german_stopwords = parse_stop_word(''' |source: http://snowball.tartarus.org/algorithms/german/stop.txt aber | but diff --git a/sphinx/search/es.py b/sphinx/search/es.py index 1009961c89f..1e8a21085ed 100644 --- a/sphinx/search/es.py +++ b/sphinx/search/es.py @@ -14,7 +14,6 @@ from sphinx.search import SearchLanguage, parse_stop_word - spanish_stopwords = parse_stop_word(''' |source: http://snowball.tartarus.org/algorithms/spanish/stop.txt de | from, of diff --git a/sphinx/search/fi.py b/sphinx/search/fi.py index 67bee89fe5e..e98ef980560 100644 --- a/sphinx/search/fi.py +++ b/sphinx/search/fi.py @@ -14,7 +14,6 @@ from sphinx.search import SearchLanguage, parse_stop_word - finnish_stopwords = parse_stop_word(''' | source: http://snowball.tartarus.org/algorithms/finnish/stop.txt | forms of BE diff --git a/sphinx/search/fr.py b/sphinx/search/fr.py index b15271888b9..7cc35e2c809 100644 --- a/sphinx/search/fr.py +++ b/sphinx/search/fr.py @@ -14,7 +14,6 @@ from sphinx.search import SearchLanguage, parse_stop_word - french_stopwords = parse_stop_word(''' | source: http://snowball.tartarus.org/algorithms/french/stop.txt au | a + le diff --git a/sphinx/search/hu.py b/sphinx/search/hu.py index 085773383ff..01ade35b7b1 100644 --- a/sphinx/search/hu.py +++ b/sphinx/search/hu.py @@ -14,7 +14,6 @@ from sphinx.search import SearchLanguage, parse_stop_word - hungarian_stopwords = parse_stop_word(''' | source: http://snowball.tartarus.org/algorithms/hungarian/stop.txt | prepared by Anna Tordai diff --git a/sphinx/search/it.py b/sphinx/search/it.py index e76cd99dddf..fa81260fba3 100644 --- a/sphinx/search/it.py +++ b/sphinx/search/it.py @@ -14,7 +14,6 @@ from sphinx.search import SearchLanguage, parse_stop_word - italian_stopwords = parse_stop_word(''' | source: http://snowball.tartarus.org/algorithms/italian/stop.txt ad | a (to) before vowel diff --git a/sphinx/search/ja.py b/sphinx/search/ja.py index c1e72b8f86f..b248eb281e7 100644 --- a/sphinx/search/ja.py +++ b/sphinx/search/ja.py @@ -33,7 +33,7 @@ except ImportError: janome_module = False -from sphinx.errors import SphinxError, ExtensionError +from sphinx.errors import ExtensionError, SphinxError from sphinx.search import SearchLanguage from sphinx.util import import_object diff --git a/sphinx/search/nl.py b/sphinx/search/nl.py index 0e2e2ef2365..f30ee690a79 100644 --- a/sphinx/search/nl.py +++ b/sphinx/search/nl.py @@ -14,7 +14,6 @@ from sphinx.search import SearchLanguage, parse_stop_word - dutch_stopwords = parse_stop_word(''' | source: http://snowball.tartarus.org/algorithms/dutch/stop.txt de | the diff --git a/sphinx/search/no.py b/sphinx/search/no.py index 68c1ac2074c..324264bde2f 100644 --- a/sphinx/search/no.py +++ b/sphinx/search/no.py @@ -14,7 +14,6 @@ from sphinx.search import SearchLanguage, parse_stop_word - norwegian_stopwords = parse_stop_word(''' | source: http://snowball.tartarus.org/algorithms/norwegian/stop.txt og | and diff --git a/sphinx/search/pt.py b/sphinx/search/pt.py index 2538511f75d..7783f65c0af 100644 --- a/sphinx/search/pt.py +++ b/sphinx/search/pt.py @@ -14,7 +14,6 @@ from sphinx.search import SearchLanguage, parse_stop_word - portuguese_stopwords = parse_stop_word(''' | source: http://snowball.tartarus.org/algorithms/portuguese/stop.txt de | of, from diff --git a/sphinx/search/ro.py b/sphinx/search/ro.py index cfae772c9a2..ddb008b6452 100644 --- a/sphinx/search/ro.py +++ b/sphinx/search/ro.py @@ -14,7 +14,6 @@ from sphinx.search import SearchLanguage - js_stemmer = """ var JSX={};(function(j){function l(b,e){var a=function(){};a.prototype=e.prototype;var c=new a;for(var d in b){b[d].prototype=c}}function L(c,b){for(var a in b.prototype)if(b.prototype.hasOwnProperty(a))c.prototype[a]=b.prototype[a]}function h(a,b,d){function c(a,b,c){delete a[b];a[b]=c;return c}Object.defineProperty(a,b,{get:function(){return c(a,b,d())},set:function(d){c(a,b,d)},enumerable:true,configurable:true})}function M(a,b,c){return a[b]=a[b]/c|0}var E=parseInt;var C=parseFloat;function N(a){return a!==a}var A=isFinite;var z=encodeURIComponent;var y=decodeURIComponent;var x=encodeURI;var w=decodeURI;var u=Object.prototype.toString;var D=Object.prototype.hasOwnProperty;function k(){}j.require=function(b){var a=r[b];return a!==undefined?a:null};j.profilerIsRunning=function(){return k.getResults!=null};j.getProfileResults=function(){return(k.getResults||function(){return{}})()};j.postProfileResults=function(a,b){if(k.postResults==null)throw new Error('profiler has not been turned on');return k.postResults(a,b)};j.resetProfileResults=function(){if(k.resetResults==null)throw new Error('profiler has not been turned on');return k.resetResults()};j.DEBUG=false;function t(){};l([t],Error);function a(a,b,c){this.F=a.length;this.K=a;this.L=b;this.I=c;this.H=null;this.P=null};l([a],Object);function n(){};l([n],Object);function g(){var a;var b;var c;this.G={};a=this.E='';b=this._=0;c=this.A=a.length;this.D=0;this.B=b;this.C=c};l([g],n);function v(a,b){a.E=b.E;a._=b._;a.A=b.A;a.D=b.D;a.B=b.B;a.C=b.C};function d(b,d,c,e){var a;if(b._>=b.A){return false}a=b.E.charCodeAt(b._);if(a>e||a>>3]&1<<(a&7))===0){return false}b._++;return true};function e(a,d,c,e){var b;if(a._>=a.A){return false}b=a.E.charCodeAt(a._);if(b>e||b>>3]&1<<(b&7))===0){a._++;return true}return false};function p(a,d,c,e){var b;if(a._<=a.D){return false}b=a.E.charCodeAt(a._-1);if(b>e||b>>3]&1<<(b&7))===0){a._--;return true}return false};function m(a,b,d){var c;if(a.A-a._>>1);h=0;c=g0){break}if(d===b){break}if(l){break}l=true}}while(true){a=m[b];if(g>=a.F){f._=e+a.F|0;if(a.H==null){return a.I}o=a.H(a.P);f._=e+a.F|0;if(o){return a.I}}b=a.L;if(b<0){return 0}}return-1};function f(d,m,p){var b;var g;var e;var n;var f;var k;var l;var i;var h;var c;var a;var j;var o;b=0;g=p;e=d._;n=d.D;f=0;k=0;l=false;while(true){i=b+(g-b>>1);h=0;c=f=0;j--){if(e-c===n){h=-1;break}h=d.E.charCodeAt(e-1-c)-a.K.charCodeAt(j);if(h!==0){break}c++}if(h<0){g=i;k=c}else{b=i;f=c}if(g-b<=1){if(b>0){break}if(g===b){break}if(l){break}l=true}}while(true){a=m[b];if(f>=a.F){d._=e-a.F|0;if(a.H==null){return a.I}o=a.H(d);d._=e-a.F|0;if(o){return a.I}}b=a.L;if(b<0){return 0}}return-1};function s(a,b,d,e){var c;c=e.length-(d-b);a.E=a.E.slice(0,b)+e+a.E.slice(d);a.A+=c|0;if(a._>=d){a._+=c|0}else if(a._>b){a._=b}return c|0};function c(a,f){var b;var c;var d;var e;b=false;if((c=a.B)<0||c>(d=a.C)||d>(e=a.A)||e>a.E.length?false:true){s(a,a.B,a.C,f);b=true}return b};g.prototype.J=function(){return false};g.prototype.b=function(b){var a;var c;var d;var e;a=this.G['.'+b];if(a==null){c=this.E=b;d=this._=0;e=this.A=c.length;this.D=0;this.B=d;this.C=e;this.J();a=this.E;this.G['.'+b]=a}return a};g.prototype.stemWord=g.prototype.b;g.prototype.c=function(e){var d;var b;var c;var a;var f;var g;var h;d=[];for(b=0;b=this.A){break d}this._++}continue b}this._=i;break b}return true};b.prototype.r_prelude=b.prototype.W;function G(a){var j;var e;var k;var f;var g;var h;var i;var l;b:while(true){j=a._;f=true;d:while(f===true){f=false;e:while(true){e=a._;g=true;a:while(g===true){g=false;if(!d(a,b.g_v,97,259)){break a}a.B=a._;h=true;f:while(h===true){h=false;k=a._;i=true;c:while(i===true){i=false;if(!m(a,1,'u')){break c}a.C=a._;if(!d(a,b.g_v,97,259)){break c}if(!c(a,'U')){return false}break f}a._=k;if(!m(a,1,'i')){break a}a.C=a._;if(!d(a,b.g_v,97,259)){break a}if(!c(a,'I')){return false}}a._=e;break e}l=a._=e;if(l>=a.A){break d}a._++}continue b}a._=j;break b}return true};b.prototype.U=function(){var u;var w;var x;var y;var t;var l;var f;var g;var h;var i;var c;var j;var k;var a;var m;var n;var o;var p;var q;var r;var s;var v;this.I_pV=s=this.A;this.I_p1=s;this.I_p2=s;u=this._;l=true;a:while(l===true){l=false;f=true;g:while(f===true){f=false;w=this._;g=true;b:while(g===true){g=false;if(!d(this,b.g_v,97,259)){break b}h=true;f:while(h===true){h=false;x=this._;i=true;c:while(i===true){i=false;if(!e(this,b.g_v,97,259)){break c}d:while(true){c=true;e:while(c===true){c=false;if(!d(this,b.g_v,97,259)){break e}break d}if(this._>=this.A){break c}this._++}break f}this._=x;if(!d(this,b.g_v,97,259)){break b}c:while(true){j=true;d:while(j===true){j=false;if(!e(this,b.g_v,97,259)){break d}break c}if(this._>=this.A){break b}this._++}}break g}this._=w;if(!e(this,b.g_v,97,259)){break a}k=true;c:while(k===true){k=false;y=this._;a=true;b:while(a===true){a=false;if(!e(this,b.g_v,97,259)){break b}e:while(true){m=true;d:while(m===true){m=false;if(!d(this,b.g_v,97,259)){break d}break e}if(this._>=this.A){break b}this._++}break c}this._=y;if(!d(this,b.g_v,97,259)){break a}if(this._>=this.A){break a}this._++}}this.I_pV=this._}v=this._=u;t=v;n=true;a:while(n===true){n=false;b:while(true){o=true;c:while(o===true){o=false;if(!d(this,b.g_v,97,259)){break c}break b}if(this._>=this.A){break a}this._++}b:while(true){p=true;c:while(p===true){p=false;if(!e(this,b.g_v,97,259)){break c}break b}if(this._>=this.A){break a}this._++}this.I_p1=this._;b:while(true){q=true;c:while(q===true){q=false;if(!d(this,b.g_v,97,259)){break c}break b}if(this._>=this.A){break a}this._++}c:while(true){r=true;b:while(r===true){r=false;if(!e(this,b.g_v,97,259)){break b}break c}if(this._>=this.A){break a}this._++}this.I_p2=this._}this._=t;return true};b.prototype.r_mark_regions=b.prototype.U;function H(a){var x;var y;var z;var u;var v;var l;var f;var g;var h;var i;var j;var k;var c;var m;var n;var o;var p;var q;var r;var s;var t;var w;a.I_pV=t=a.A;a.I_p1=t;a.I_p2=t;x=a._;l=true;a:while(l===true){l=false;f=true;g:while(f===true){f=false;y=a._;g=true;b:while(g===true){g=false;if(!d(a,b.g_v,97,259)){break b}h=true;f:while(h===true){h=false;z=a._;i=true;c:while(i===true){i=false;if(!e(a,b.g_v,97,259)){break c}d:while(true){j=true;e:while(j===true){j=false;if(!d(a,b.g_v,97,259)){break e}break d}if(a._>=a.A){break c}a._++}break f}a._=z;if(!d(a,b.g_v,97,259)){break b}c:while(true){k=true;d:while(k===true){k=false;if(!e(a,b.g_v,97,259)){break d}break c}if(a._>=a.A){break b}a._++}}break g}a._=y;if(!e(a,b.g_v,97,259)){break a}c=true;c:while(c===true){c=false;u=a._;m=true;b:while(m===true){m=false;if(!e(a,b.g_v,97,259)){break b}e:while(true){n=true;d:while(n===true){n=false;if(!d(a,b.g_v,97,259)){break d}break e}if(a._>=a.A){break b}a._++}break c}a._=u;if(!d(a,b.g_v,97,259)){break a}if(a._>=a.A){break a}a._++}}a.I_pV=a._}w=a._=x;v=w;o=true;a:while(o===true){o=false;b:while(true){p=true;c:while(p===true){p=false;if(!d(a,b.g_v,97,259)){break c}break b}if(a._>=a.A){break a}a._++}b:while(true){q=true;c:while(q===true){q=false;if(!e(a,b.g_v,97,259)){break c}break b}if(a._>=a.A){break a}a._++}a.I_p1=a._;b:while(true){r=true;c:while(r===true){r=false;if(!d(a,b.g_v,97,259)){break c}break b}if(a._>=a.A){break a}a._++}c:while(true){s=true;b:while(s===true){s=false;if(!e(a,b.g_v,97,259)){break b}break c}if(a._>=a.A){break a}a._++}a.I_p2=a._}a._=v;return true};b.prototype.V=function(){var a;var e;var d;b:while(true){e=this._;d=true;a:while(d===true){d=false;this.B=this._;a=q(this,b.a_0,3);if(a===0){break a}this.C=this._;switch(a){case 0:break a;case 1:if(!c(this,'i')){return false}break;case 2:if(!c(this,'u')){return false}break;case 3:if(this._>=this.A){break a}this._++;break}continue b}this._=e;break b}return true};b.prototype.r_postlude=b.prototype.V;function I(a){var d;var f;var e;b:while(true){f=a._;e=true;a:while(e===true){e=false;a.B=a._;d=q(a,b.a_0,3);if(d===0){break a}a.C=a._;switch(d){case 0:break a;case 1:if(!c(a,'i')){return false}break;case 2:if(!c(a,'u')){return false}break;case 3:if(a._>=a.A){break a}a._++;break}continue b}a._=f;break b}return true};b.prototype.S=function(){return!(this.I_pV<=this._)?false:true};b.prototype.r_RV=b.prototype.S;b.prototype.Q=function(){return!(this.I_p1<=this._)?false:true};b.prototype.r_R1=b.prototype.Q;b.prototype.R=function(){return!(this.I_p2<=this._)?false:true};b.prototype.r_R2=b.prototype.R;b.prototype.Y=function(){var a;var e;var d;var g;this.C=this._;a=f(this,b.a_1,16);if(a===0){return false}this.B=g=this._;if(!(!(this.I_p1<=g)?false:true)){return false}switch(a){case 0:return false;case 1:if(!c(this,'')){return false}break;case 2:if(!c(this,'a')){return false}break;case 3:if(!c(this,'e')){return false}break;case 4:if(!c(this,'i')){return false}break;case 5:e=this.A-this._;d=true;a:while(d===true){d=false;if(!i(this,2,'ab')){break a}return false}this._=this.A-e;if(!c(this,'i')){return false}break;case 6:if(!c(this,'at')){return false}break;case 7:if(!c(this,'aţi')){return false}break}return true};b.prototype.r_step_0=b.prototype.Y;function J(a){var d;var g;var e;var h;a.C=a._;d=f(a,b.a_1,16);if(d===0){return false}a.B=h=a._;if(!(!(a.I_p1<=h)?false:true)){return false}switch(d){case 0:return false;case 1:if(!c(a,'')){return false}break;case 2:if(!c(a,'a')){return false}break;case 3:if(!c(a,'e')){return false}break;case 4:if(!c(a,'i')){return false}break;case 5:g=a.A-a._;e=true;a:while(e===true){e=false;if(!i(a,2,'ab')){break a}return false}a._=a.A-g;if(!c(a,'i')){return false}break;case 6:if(!c(a,'at')){return false}break;case 7:if(!c(a,'aţi')){return false}break}return true};b.prototype.T=function(){var a;var d;var e;var g;d=this.A-(e=this._);this.C=e;a=f(this,b.a_2,46);if(a===0){return false}this.B=g=this._;if(!(!(this.I_p1<=g)?false:true)){return false}switch(a){case 0:return false;case 1:if(!c(this,'abil')){return false}break;case 2:if(!c(this,'ibil')){return false}break;case 3:if(!c(this,'iv')){return false}break;case 4:if(!c(this,'ic')){return false}break;case 5:if(!c(this,'at')){return false}break;case 6:if(!c(this,'it')){return false}break}this.B_standard_suffix_removed=true;this._=this.A-d;return true};b.prototype.r_combo_suffix=b.prototype.T;function o(a){var d;var e;var g;var h;e=a.A-(g=a._);a.C=g;d=f(a,b.a_2,46);if(d===0){return false}a.B=h=a._;if(!(!(a.I_p1<=h)?false:true)){return false}switch(d){case 0:return false;case 1:if(!c(a,'abil')){return false}break;case 2:if(!c(a,'ibil')){return false}break;case 3:if(!c(a,'iv')){return false}break;case 4:if(!c(a,'ic')){return false}break;case 5:if(!c(a,'at')){return false}break;case 6:if(!c(a,'it')){return false}break}a.B_standard_suffix_removed=true;a._=a.A-e;return true};b.prototype.X=function(){var a;var e;var d;var g;this.B_standard_suffix_removed=false;a:while(true){e=this.A-this._;d=true;b:while(d===true){d=false;if(!o(this)){break b}continue a}this._=this.A-e;break a}this.C=this._;a=f(this,b.a_3,62);if(a===0){return false}this.B=g=this._;if(!(!(this.I_p2<=g)?false:true)){return false}switch(a){case 0:return false;case 1:if(!c(this,'')){return false}break;case 2:if(!i(this,1,'ţ')){return false}this.B=this._;if(!c(this,'t')){return false}break;case 3:if(!c(this,'ist')){return false}break}this.B_standard_suffix_removed=true;return true};b.prototype.r_standard_suffix=b.prototype.X;function K(a){var d;var g;var e;var h;a.B_standard_suffix_removed=false;a:while(true){g=a.A-a._;e=true;b:while(e===true){e=false;if(!o(a)){break b}continue a}a._=a.A-g;break a}a.C=a._;d=f(a,b.a_3,62);if(d===0){return false}a.B=h=a._;if(!(!(a.I_p2<=h)?false:true)){return false}switch(d){case 0:return false;case 1:if(!c(a,'')){return false}break;case 2:if(!i(a,1,'ţ')){return false}a.B=a._;if(!c(a,'t')){return false}break;case 3:if(!c(a,'ist')){return false}break}a.B_standard_suffix_removed=true;return true};b.prototype.Z=function(){var d;var h;var a;var j;var e;var g;var k;var l;var m;h=this.A-(k=this._);if(k=b.A){return false}a=b.E.charCodeAt(b._);if(a>e||a>>3]&1<<(a&7))===0){return false}b._++;return true};function f(b,d,c,e){var a;if(b._<=b.D){return false}a=b.E.charCodeAt(b._-1);if(a>e||a>>3]&1<<(a&7))===0){return false}b._--;return true};function t(a,d,c,e){var b;if(a._<=a.D){return false}b=a.E.charCodeAt(a._-1);if(b>e||b>>3]&1<<(b&7))===0){a._--;return true}return false};function s(a,b,d){var c;if(a.A-a._>1);h=0;c=f=0;j--){if(e-c===n){h=-1;break}h=d.E.charCodeAt(e-1-c)-a.A_.charCodeAt(j);if(h!==0){break}c++}if(h<0){g=i;k=c}else{b=i;f=c}if(g-b<=1){if(b>0){break}if(g===b){break}if(l){break}l=true}}while(true){a=m[b];if(f>=a.G){d._=e-a.G|0;if(a.I==null){return a.J}o=a.I(d);d._=e-a.G|0;if(o){return a.J}}b=a.D_;if(b<0){return 0}}return-1};function n(a,b,d,e){var c;c=e.length-(d-b);a.E=a.E.slice(0,b)+e+a.E.slice(d);a.A+=c|0;if(a._>=d){a._+=c|0}else if(a._>b){a._=b}return c|0};function e(a,f){var b;var c;var d;var e;b=false;if((c=a.B)<0||c>(d=a.C)||d>(e=a.A)||e>a.E.length?false:true){n(a,a.B,a.C,f);b=true}return b};m.prototype.H=function(){return false};m.prototype.B_=function(b){var a;var c;var d;var e;a=this.F['.'+b];if(a==null){c=this.E=b;d=this._=0;e=this.A=c.length;this.D=0;this.B=d;this.C=e;this.H();a=this.E;this.F['.'+b]=a}return a};m.prototype.stemWord=m.prototype.B_;m.prototype.C_=function(e){var d;var b;var c;var a;var f;var g;var h;d=[];for(b=0;b=this.A){break b}this._++}b--;continue a}this._=f;break a}if(b>0){return false}this._=e;return true};a.prototype.r_more_than_one_syllable_word=a.prototype.v;function N(b){var f;var g;var c;var d;var e;f=b._;c=2;a:while(true){g=b._;d=true;b:while(d===true){d=false;c:while(true){e=true;d:while(e===true){e=false;if(!v(b,a.g_vowel,97,305)){break d}break c}if(b._>=b.A){break b}b._++}c--;continue a}b._=g;break a}if(c>0){return false}b._=f;return true};a.prototype.P=function(){var f;var g;var h;var b;var a;var c;var d;var i;var j;var e;b=true;b:while(b===true){b=false;f=this._;a=true;a:while(a===true){a=false;g=this._;c:while(true){c=true;d:while(c===true){c=false;if(!s(this,2,'ad')){break d}break c}if(this._>=this.A){break a}this._++}i=this.I_strlen=2;if(!(i===this.A)){break a}this._=g;break b}j=this._=f;h=j;a:while(true){d=true;c:while(d===true){d=false;if(!s(this,5,'soyad')){break c}break a}if(this._>=this.A){return false}this._++}e=this.I_strlen=5;if(!(e===this.A)){return false}this._=h}return true};a.prototype.r_is_reserved_word=a.prototype.P;function x(a){var g;var h;var i;var c;var b;var d;var e;var j;var k;var f;c=true;b:while(c===true){c=false;g=a._;b=true;a:while(b===true){b=false;h=a._;c:while(true){d=true;d:while(d===true){d=false;if(!s(a,2,'ad')){break d}break c}if(a._>=a.A){break a}a._++}j=a.I_strlen=2;if(!(j===a.A)){break a}a._=h;break b}k=a._=g;i=k;a:while(true){e=true;c:while(e===true){e=false;if(!s(a,5,'soyad')){break c}break a}if(a._>=a.A){return false}a._++}f=a.I_strlen=5;if(!(f===a.A)){return false}a._=i}return true};a.prototype.x=function(){var d;var e;var a;var b;var c;var f;var g;var h;d=this._;a=true;a:while(a===true){a=false;if(!x(this)){break a}return false}f=this._=d;this.D=f;h=this._=g=this.A;e=g-h;b=true;a:while(b===true){b=false;if(!z(this)){break a}}this._=this.A-e;c=true;a:while(c===true){c=false;if(!w(this)){break a}}this._=this.D;return true};a.prototype.r_postlude=a.prototype.x;function O(a){var e;var f;var b;var c;var d;var g;var h;var i;e=a._;b=true;a:while(b===true){b=false;if(!x(a)){break a}return false}g=a._=e;a.D=g;i=a._=h=a.A;f=h-i;c=true;a:while(c===true){c=false;if(!z(a)){break a}}a._=a.A-f;d=true;a:while(d===true){d=false;if(!w(a)){break a}}a._=a.D;return true};a.prototype.H=function(){var c;var a;var b;var d;var e;if(!N(this)){return false}this.D=this._;e=this._=d=this.A;c=d-e;a=true;a:while(a===true){a=false;if(!J(this)){break a}}this._=this.A-c;if(!this.B_continue_stemming_noun_suffixes){return false}b=true;a:while(b===true){b=false;if(!L(this)){break a}}this._=this.D;return!O(this)?false:true};a.prototype.stem=a.prototype.H;a.prototype.L=function(b){return b instanceof a};a.prototype.equals=a.prototype.L;a.prototype.M=function(){var c;var a;var b;var d;c='TurkishStemmer';a=0;for(b=0;b None: node.attributes.update(info) -from sphinx.domains.citation import ( # NOQA - CitationDefinitionTransform, CitationReferenceTransform -) +from sphinx.domains.citation import CitationDefinitionTransform # NOQA +from sphinx.domains.citation import CitationReferenceTransform # NOQA deprecated_alias('sphinx.transforms', { diff --git a/sphinx/transforms/compact_bullet_list.py b/sphinx/transforms/compact_bullet_list.py index 1cde3b1f08b..e30efa92b06 100644 --- a/sphinx/transforms/compact_bullet_list.py +++ b/sphinx/transforms/compact_bullet_list.py @@ -8,8 +8,7 @@ :license: BSD, see LICENSE for details. """ -from typing import Any, Dict, List -from typing import cast +from typing import Any, Dict, List, cast from docutils import nodes from docutils.nodes import Node diff --git a/sphinx/transforms/i18n.py b/sphinx/transforms/i18n.py index c935ab19522..bffcb511d8c 100644 --- a/sphinx/transforms/i18n.py +++ b/sphinx/transforms/i18n.py @@ -20,18 +20,18 @@ from sphinx import addnodes from sphinx.config import Config from sphinx.domains.std import make_glossary_term, split_term_classifiers -from sphinx.locale import __, init as init_locale +from sphinx.locale import __ +from sphinx.locale import init as init_locale from sphinx.transforms import SphinxTransform -from sphinx.util import split_index_msg, logging, get_filetype +from sphinx.util import get_filetype, logging, split_index_msg from sphinx.util.i18n import docname_to_domain -from sphinx.util.nodes import ( - LITERAL_TYPE_NODES, IMAGE_TYPE_NODES, NodeMatcher, - extract_messages, is_pending_meta, traverse_translatable_index, -) +from sphinx.util.nodes import (IMAGE_TYPE_NODES, LITERAL_TYPE_NODES, NodeMatcher, + extract_messages, is_pending_meta, traverse_translatable_index) if False: # For type annotation from typing import Type # for python3.5.1 + from sphinx.application import Sphinx diff --git a/sphinx/transforms/post_transforms/__init__.py b/sphinx/transforms/post_transforms/__init__.py index 6633d6434c1..f9feab2a618 100644 --- a/sphinx/transforms/post_transforms/__init__.py +++ b/sphinx/transforms/post_transforms/__init__.py @@ -8,8 +8,7 @@ :license: BSD, see LICENSE for details. """ -from typing import Any, Dict, List, Tuple, Type -from typing import cast +from typing import Any, Dict, List, Tuple, Type, cast from docutils import nodes from docutils.nodes import Element @@ -25,7 +24,6 @@ from sphinx.util.docutils import SphinxTranslator from sphinx.util.nodes import process_only_nodes - logger = logging.getLogger(__name__) diff --git a/sphinx/transforms/post_transforms/code.py b/sphinx/transforms/post_transforms/code.py index 2012d6e119f..d306b5c8011 100644 --- a/sphinx/transforms/post_transforms/code.py +++ b/sphinx/transforms/post_transforms/code.py @@ -20,7 +20,6 @@ from sphinx.ext import doctest from sphinx.transforms import SphinxTransform - HighlightSetting = NamedTuple('HighlightSetting', [('language', str), ('force', bool), ('lineno_threshold', int)]) diff --git a/sphinx/transforms/post_transforms/images.py b/sphinx/transforms/post_transforms/images.py index 949c09dde59..4865aa61536 100644 --- a/sphinx/transforms/post_transforms/images.py +++ b/sphinx/transforms/post_transforms/images.py @@ -18,12 +18,10 @@ from sphinx.application import Sphinx from sphinx.locale import __ from sphinx.transforms import SphinxTransform -from sphinx.util import epoch_to_rfc1123, rfc1123_to_epoch, sha1 -from sphinx.util import logging, requests -from sphinx.util.images import guess_mimetype, get_image_extension, parse_data_uri +from sphinx.util import epoch_to_rfc1123, logging, requests, rfc1123_to_epoch, sha1 +from sphinx.util.images import get_image_extension, guess_mimetype, parse_data_uri from sphinx.util.osutil import ensuredir, movefile - logger = logging.getLogger(__name__) MAX_FILENAME_LEN = 32 diff --git a/sphinx/util/__init__.py b/sphinx/util/__init__.py index 082c5caa30b..9349ed0e498 100644 --- a/sphinx/util/__init__.py +++ b/sphinx/util/__init__.py @@ -25,33 +25,29 @@ from importlib import import_module from os import path from time import mktime, strptime -from typing import Any, Callable, Dict, IO, Iterable, Iterator, List, Pattern, Set, Tuple -from urllib.parse import urlsplit, urlunsplit, quote_plus, parse_qsl, urlencode +from typing import IO, Any, Callable, Dict, Iterable, Iterator, List, Pattern, Set, Tuple +from urllib.parse import parse_qsl, quote_plus, urlencode, urlsplit, urlunsplit from sphinx.deprecation import RemovedInSphinx40Warning, RemovedInSphinx50Warning -from sphinx.errors import ( - PycodeError, SphinxParallelError, ExtensionError, FiletypeNotFoundError -) +from sphinx.errors import (ExtensionError, FiletypeNotFoundError, PycodeError, + SphinxParallelError) from sphinx.locale import __ -from sphinx.util import logging -from sphinx.util.console import strip_colors, colorize, bold, term_width_line # type: ignore -from sphinx.util.typing import PathMatcher from sphinx.util import smartypants # noqa - +from sphinx.util import logging +from sphinx.util.console import bold, colorize, strip_colors, term_width_line # type: ignore +from sphinx.util.matching import patfilter # noqa +from sphinx.util.nodes import (caption_ref_re, explicit_title_re, # noqa + nested_parse_with_titles, split_explicit_title) # import other utilities; partly for backwards compatibility, so don't # prune unused ones indiscriminately -from sphinx.util.osutil import ( # noqa - SEP, os_path, relative_uri, ensuredir, walk, mtimes_of_files, movefile, - copyfile, copytimes, make_filename) -from sphinx.util.nodes import ( # noqa - nested_parse_with_titles, split_explicit_title, explicit_title_re, - caption_ref_re) -from sphinx.util.matching import patfilter # noqa - +from sphinx.util.osutil import (SEP, copyfile, copytimes, ensuredir, make_filename, # noqa + movefile, mtimes_of_files, os_path, relative_uri, walk) +from sphinx.util.typing import PathMatcher if False: # For type annotation from typing import Type # for python3.5.1 + from sphinx.application import Sphinx @@ -241,10 +237,12 @@ def merge_other(self, docnames: Set[str], other: Dict[str, Tuple[Set[str], Any]] def save_traceback(app: "Sphinx") -> str: """Save the current exception's traceback in a temporary file.""" - import sphinx - import jinja2 - import docutils import platform + + import docutils + import jinja2 + + import sphinx exc = sys.exc_info()[1] if isinstance(exc, SphinxParallelError): exc_format = '(Error in parallel process)\n' + exc.traceback diff --git a/sphinx/util/cfamily.py b/sphinx/util/cfamily.py index 0edea128c50..17c335b607a 100644 --- a/sphinx/util/cfamily.py +++ b/sphinx/util/cfamily.py @@ -11,9 +11,7 @@ import re import warnings from copy import deepcopy -from typing import ( - Any, Callable, List, Match, Optional, Pattern, Tuple, Union -) +from typing import Any, Callable, List, Match, Optional, Pattern, Tuple, Union from docutils import nodes from docutils.nodes import TextElement diff --git a/sphinx/util/console.py b/sphinx/util/console.py index d429be602ce..579a9513461 100644 --- a/sphinx/util/console.py +++ b/sphinx/util/console.py @@ -32,9 +32,9 @@ def terminal_safe(s: str) -> str: def get_terminal_width() -> int: """Borrowed from the py lib.""" try: - import termios import fcntl import struct + import termios call = fcntl.ioctl(0, termios.TIOCGWINSZ, struct.pack('hhhh', 0, 0, 0, 0)) height, width = struct.unpack('hhhh', call)[:2] terminal_width = width diff --git a/sphinx/util/docfields.py b/sphinx/util/docfields.py index c07bc7f668c..404bb127f82 100644 --- a/sphinx/util/docfields.py +++ b/sphinx/util/docfields.py @@ -10,8 +10,7 @@ """ import warnings -from typing import Any, Dict, List, Tuple, Union -from typing import cast +from typing import Any, Dict, List, Tuple, Union, cast from docutils import nodes from docutils.nodes import Node @@ -23,8 +22,9 @@ if False: # For type annotation from typing import Type # for python3.5.1 - from sphinx.environment import BuildEnvironment + from sphinx.directive import ObjectDescription + from sphinx.environment import BuildEnvironment def _is_single_paragraph(node: nodes.field_body) -> bool: diff --git a/sphinx/util/docstrings.py b/sphinx/util/docstrings.py index 67a00864348..206986bd05c 100644 --- a/sphinx/util/docstrings.py +++ b/sphinx/util/docstrings.py @@ -17,7 +17,6 @@ from sphinx.deprecation import RemovedInSphinx50Warning - field_list_item_re = re.compile(Body.patterns['field_marker']) diff --git a/sphinx/util/docutils.py b/sphinx/util/docutils.py index 3ba7813b62e..7831f267c1d 100644 --- a/sphinx/util/docutils.py +++ b/sphinx/util/docutils.py @@ -15,8 +15,7 @@ from distutils.version import LooseVersion from os import path from types import ModuleType -from typing import Any, Callable, Dict, Generator, IO, List, Optional, Set, Tuple -from typing import cast +from typing import IO, Any, Callable, Dict, Generator, List, Optional, Set, Tuple, cast import docutils from docutils import nodes @@ -24,7 +23,7 @@ from docutils.nodes import Element, Node, system_message from docutils.parsers.rst import Directive, directives, roles from docutils.parsers.rst.states import Inliner -from docutils.statemachine import StateMachine, State, StringList +from docutils.statemachine import State, StateMachine, StringList from docutils.utils import Reporter, unescape from sphinx.errors import SphinxError @@ -37,6 +36,7 @@ if False: # For type annotation from typing import Type # for python3.5.1 + from sphinx.builders import Builder from sphinx.config import Config from sphinx.environment import BuildEnvironment diff --git a/sphinx/util/inspect.py b/sphinx/util/inspect.py index 1eaccb6789e..2eafa124f09 100644 --- a/sphinx/util/inspect.py +++ b/sphinx/util/inspect.py @@ -18,12 +18,9 @@ import typing import warnings from functools import partial, partialmethod -from inspect import ( # NOQA - Parameter, isclass, ismethod, ismethoddescriptor, ismodule -) +from inspect import Parameter, isclass, ismethod, ismethoddescriptor, ismodule # NOQA from io import StringIO -from typing import Any, Callable, Dict, Mapping, List, Optional, Tuple -from typing import cast +from typing import Any, Callable, Dict, List, Mapping, Optional, Tuple, cast from sphinx.deprecation import RemovedInSphinx40Warning, RemovedInSphinx50Warning from sphinx.pycode.ast import ast # for py35-37 @@ -33,11 +30,7 @@ from sphinx.util.typing import stringify as stringify_annotation if sys.version_info > (3, 7): - from types import ( - ClassMethodDescriptorType, - MethodDescriptorType, - WrapperDescriptorType - ) + from types import ClassMethodDescriptorType, MethodDescriptorType, WrapperDescriptorType else: ClassMethodDescriptorType = type(object.__init__) MethodDescriptorType = type(str.join) diff --git a/sphinx/util/inventory.py b/sphinx/util/inventory.py index 1e3572323d6..6d3b5f4551e 100644 --- a/sphinx/util/inventory.py +++ b/sphinx/util/inventory.py @@ -10,12 +10,11 @@ import os import re import zlib -from typing import Callable, IO, Iterator +from typing import IO, Callable, Iterator from sphinx.util import logging from sphinx.util.typing import Inventory - BUFSIZE = 16 * 1024 logger = logging.getLogger(__name__) diff --git a/sphinx/util/jsdump.py b/sphinx/util/jsdump.py index 1f0e258cbb5..0cd3c8b8ca7 100644 --- a/sphinx/util/jsdump.py +++ b/sphinx/util/jsdump.py @@ -10,7 +10,7 @@ """ import re -from typing import Any, Dict, IO, List, Match, Union +from typing import IO, Any, Dict, List, Match, Union _str_re = re.compile(r'"(\\\\|\\"|[^"])*"') _int_re = re.compile(r'\d+') diff --git a/sphinx/util/jsonimpl.py b/sphinx/util/jsonimpl.py index 35501f03a6c..4cb3bc93fa9 100644 --- a/sphinx/util/jsonimpl.py +++ b/sphinx/util/jsonimpl.py @@ -11,11 +11,10 @@ import json import warnings from collections import UserString -from typing import Any, IO +from typing import IO, Any from sphinx.deprecation import RemovedInSphinx40Warning - warnings.warn('sphinx.util.jsonimpl is deprecated', RemovedInSphinx40Warning, stacklevel=2) diff --git a/sphinx/util/logging.py b/sphinx/util/logging.py index 5889f3860c1..0f2a8b6f0f3 100644 --- a/sphinx/util/logging.py +++ b/sphinx/util/logging.py @@ -12,7 +12,7 @@ import logging.handlers from collections import defaultdict from contextlib import contextmanager -from typing import Any, Dict, Generator, IO, List, Tuple, Union +from typing import IO, Any, Dict, Generator, List, Tuple, Union from docutils import nodes from docutils.nodes import Node @@ -24,6 +24,7 @@ if False: # For type annotation from typing import Type # for python3.5.1 + from sphinx.application import Sphinx diff --git a/sphinx/util/nodes.py b/sphinx/util/nodes.py index b4d796f6184..05e9cb7b2e8 100644 --- a/sphinx/util/nodes.py +++ b/sphinx/util/nodes.py @@ -11,8 +11,7 @@ import re import unicodedata import warnings -from typing import Any, Callable, Iterable, List, Set, Tuple -from typing import cast +from typing import Any, Callable, Iterable, List, Set, Tuple, cast from docutils import nodes from docutils.nodes import Element, Node @@ -28,6 +27,7 @@ if False: # For type annotation from typing import Type # for python3.5.1 + from sphinx.builders import Builder from sphinx.domain import IndexEntry from sphinx.environment import BuildEnvironment diff --git a/sphinx/util/png.py b/sphinx/util/png.py index 22c35d991f8..3dd22d7ffad 100644 --- a/sphinx/util/png.py +++ b/sphinx/util/png.py @@ -12,7 +12,6 @@ import struct from typing import Optional - LEN_IEND = 12 LEN_DEPTH = 22 diff --git a/sphinx/util/pycompat.py b/sphinx/util/pycompat.py index 50eee5ce328..6474cf1418c 100644 --- a/sphinx/util/pycompat.py +++ b/sphinx/util/pycompat.py @@ -21,7 +21,6 @@ from sphinx.util.console import terminal_safe from sphinx.util.typing import NoneType - logger = logging.getLogger(__name__) @@ -32,8 +31,8 @@ # support for running 2to3 over config files def convert_with_2to3(filepath: str) -> str: try: - from lib2to3.refactor import RefactoringTool, get_fixers_from_package from lib2to3.pgen2.parse import ParseError + from lib2to3.refactor import RefactoringTool, get_fixers_from_package except ImportError as exc: # python 3.9.0a6+ emits PendingDeprecationWarning for lib2to3. # Additionally, removal of the module is still discussed at PEP-594. diff --git a/sphinx/util/rst.py b/sphinx/util/rst.py index e93849b705b..b67b68c4a99 100644 --- a/sphinx/util/rst.py +++ b/sphinx/util/rst.py @@ -18,12 +18,10 @@ from docutils.parsers.rst.languages import en as english from docutils.statemachine import StringList from docutils.utils import Reporter -from jinja2 import Environment -from jinja2 import environmentfilter +from jinja2 import Environment, environmentfilter from sphinx.locale import __ -from sphinx.util import docutils -from sphinx.util import logging +from sphinx.util import docutils, logging logger = logging.getLogger(__name__) diff --git a/sphinx/util/smartypants.py b/sphinx/util/smartypants.py index 43f8bc7248c..ec6b2172c52 100644 --- a/sphinx/util/smartypants.py +++ b/sphinx/util/smartypants.py @@ -32,7 +32,6 @@ from sphinx.util.docutils import __version_info__ as docutils_version - langquotes = {'af': '“”‘’', 'af-x-altquot': '„”‚’', 'bg': '„“‚‘', # Bulgarian, https://bg.wikipedia.org/wiki/Кавички diff --git a/sphinx/util/texescape.py b/sphinx/util/texescape.py index afa1c349e92..98e763aaf01 100644 --- a/sphinx/util/texescape.py +++ b/sphinx/util/texescape.py @@ -13,7 +13,6 @@ from sphinx.deprecation import RemovedInSphinx40Warning, deprecated_alias - tex_replacements = [ # map TeX special chars ('$', r'\$'), diff --git a/sphinx/util/typing.py b/sphinx/util/typing.py index 7b3509b62d6..0a2d7f3d06b 100644 --- a/sphinx/util/typing.py +++ b/sphinx/util/typing.py @@ -15,7 +15,6 @@ from docutils import nodes from docutils.parsers.rst.states import Inliner - if sys.version_info > (3, 7): from typing import ForwardRef else: diff --git a/sphinx/writers/html.py b/sphinx/writers/html.py index 8813c2d12c7..d3c87076f7e 100644 --- a/sphinx/writers/html.py +++ b/sphinx/writers/html.py @@ -13,17 +13,17 @@ import posixpath import re import warnings -from typing import Any, Iterable, Tuple -from typing import cast +from typing import Any, Iterable, Tuple, cast from docutils import nodes from docutils.nodes import Element, Node, Text -from docutils.writers.html4css1 import Writer, HTMLTranslator as BaseTranslator +from docutils.writers.html4css1 import HTMLTranslator as BaseTranslator +from docutils.writers.html4css1 import Writer from sphinx import addnodes from sphinx.builders import Builder from sphinx.deprecation import RemovedInSphinx40Warning -from sphinx.locale import admonitionlabels, _, __ +from sphinx.locale import _, __, admonitionlabels from sphinx.util import logging from sphinx.util.docutils import SphinxTranslator from sphinx.util.images import get_image_size diff --git a/sphinx/writers/html5.py b/sphinx/writers/html5.py index 4ceeaafdf70..7824f54f5d1 100644 --- a/sphinx/writers/html5.py +++ b/sphinx/writers/html5.py @@ -12,8 +12,7 @@ import posixpath import re import warnings -from typing import Any, Iterable, Tuple -from typing import cast +from typing import Any, Iterable, Tuple, cast from docutils import nodes from docutils.nodes import Element, Node, Text @@ -22,7 +21,7 @@ from sphinx import addnodes from sphinx.builders import Builder from sphinx.deprecation import RemovedInSphinx40Warning -from sphinx.locale import admonitionlabels, _, __ +from sphinx.locale import _, __, admonitionlabels from sphinx.util import logging from sphinx.util.docutils import SphinxTranslator from sphinx.util.images import get_image_size diff --git a/sphinx/writers/latex.py b/sphinx/writers/latex.py index b772029516d..cb8e5dff38d 100644 --- a/sphinx/writers/latex.py +++ b/sphinx/writers/latex.py @@ -15,22 +15,19 @@ import warnings from collections import defaultdict from os import path -from typing import Any, Dict, Iterable, Iterator, List, Tuple, Set, Union -from typing import cast +from typing import Any, Dict, Iterable, Iterator, List, Set, Tuple, Union, cast from docutils import nodes, writers from docutils.nodes import Element, Node, Text -from sphinx import addnodes -from sphinx import highlighting -from sphinx.deprecation import ( - RemovedInSphinx40Warning, RemovedInSphinx50Warning, deprecated_alias -) +from sphinx import addnodes, highlighting +from sphinx.deprecation import (RemovedInSphinx40Warning, RemovedInSphinx50Warning, + deprecated_alias) from sphinx.domains import IndexEntry from sphinx.domains.std import StandardDomain from sphinx.errors import SphinxError -from sphinx.locale import admonitionlabels, _, __ -from sphinx.util import split_into, logging, texescape +from sphinx.locale import _, __, admonitionlabels +from sphinx.util import logging, split_into, texescape from sphinx.util.docutils import SphinxTranslator from sphinx.util.nodes import clean_astext, get_prev_node from sphinx.util.template import LaTeXRenderer @@ -2128,7 +2125,6 @@ def generate_numfig_format(self, builder: "LaTeXBuilder") -> str: from sphinx.builders.latex import constants # NOQA from sphinx.builders.latex.util import ExtBabel # NOQA - deprecated_alias('sphinx.writers.latex', { 'ADDITIONAL_SETTINGS': constants.ADDITIONAL_SETTINGS, @@ -2161,4 +2157,6 @@ def generate_numfig_format(self, builder: "LaTeXBuilder") -> str: # FIXME: Workaround to avoid circular import # refs: https://github.com/sphinx-doc/sphinx/issues/5433 -from sphinx.builders.latex.nodes import HYPERLINK_SUPPORT_NODES, captioned_literal_block, footnotetext # NOQA +from sphinx.builders.latex.nodes import ( # NOQA isort:skip + HYPERLINK_SUPPORT_NODES, captioned_literal_block, footnotetext, +) diff --git a/sphinx/writers/manpage.py b/sphinx/writers/manpage.py index 7da2f4e8f04..c8593c6e84f 100644 --- a/sphinx/writers/manpage.py +++ b/sphinx/writers/manpage.py @@ -9,26 +9,22 @@ """ import warnings -from typing import Any, Dict, Iterable -from typing import cast +from typing import Any, Dict, Iterable, cast from docutils import nodes from docutils.nodes import Element, Node, TextElement -from docutils.writers.manpage import ( - Writer, - Translator as BaseTranslator -) +from docutils.writers.manpage import Translator as BaseTranslator +from docutils.writers.manpage import Writer from sphinx import addnodes from sphinx.builders import Builder from sphinx.deprecation import RemovedInSphinx40Warning -from sphinx.locale import admonitionlabels, _ +from sphinx.locale import _, admonitionlabels from sphinx.util import logging from sphinx.util.docutils import SphinxTranslator from sphinx.util.i18n import format_date from sphinx.util.nodes import NodeMatcher - logger = logging.getLogger(__name__) diff --git a/sphinx/writers/texinfo.py b/sphinx/writers/texinfo.py index e0d7d04fa28..5e7f98de7b8 100644 --- a/sphinx/writers/texinfo.py +++ b/sphinx/writers/texinfo.py @@ -12,18 +12,18 @@ import textwrap import warnings from os import path -from typing import Any, Dict, Iterable, Iterator, List, Optional, Pattern, Set, Tuple, Union -from typing import cast +from typing import (Any, Dict, Iterable, Iterator, List, Optional, Pattern, Set, Tuple, Union, + cast) from docutils import nodes, writers from docutils.nodes import Element, Node, Text -from sphinx import addnodes, __display_version__ +from sphinx import __display_version__, addnodes from sphinx.deprecation import RemovedInSphinx50Warning from sphinx.domains import IndexEntry from sphinx.domains.index import IndexDomain from sphinx.errors import ExtensionError -from sphinx.locale import admonitionlabels, _, __ +from sphinx.locale import _, __, admonitionlabels from sphinx.util import logging from sphinx.util.docutils import SphinxTranslator from sphinx.util.i18n import format_date diff --git a/sphinx/writers/text.py b/sphinx/writers/text.py index 9cb066e0bd3..c110f80e8d0 100644 --- a/sphinx/writers/text.py +++ b/sphinx/writers/text.py @@ -11,16 +11,15 @@ import os import re import textwrap -from itertools import groupby, chain -from typing import Any, Dict, Generator, List, Iterable, Optional, Set, Tuple, Union -from typing import cast +from itertools import chain, groupby +from typing import Any, Dict, Generator, Iterable, List, Optional, Set, Tuple, Union, cast from docutils import nodes, writers from docutils.nodes import Element, Node, Text from docutils.utils import column_width from sphinx import addnodes -from sphinx.locale import admonitionlabels, _ +from sphinx.locale import _, admonitionlabels from sphinx.util.docutils import SphinxTranslator if False: diff --git a/tests/conftest.py b/tests/conftest.py index 6a08dba76b2..bacd13013a6 100644 --- a/tests/conftest.py +++ b/tests/conftest.py @@ -13,8 +13,8 @@ import pytest import sphinx -from sphinx.testing.path import path from sphinx.testing import comparer +from sphinx.testing.path import path pytest_plugins = 'sphinx.testing.fixtures' diff --git a/tests/roots/test-api-set-translator/conf.py b/tests/roots/test-api-set-translator/conf.py index 15f45a6798f..671f3905a68 100644 --- a/tests/roots/test-api-set-translator/conf.py +++ b/tests/roots/test-api-set-translator/conf.py @@ -11,7 +11,6 @@ from sphinx.writers.texinfo import TexinfoTranslator from sphinx.writers.text import TextTranslator - project = 'test' diff --git a/tests/roots/test-apidoc-toc/mypackage/main.py b/tests/roots/test-apidoc-toc/mypackage/main.py index 813db805eb8..c43573a38e2 100755 --- a/tests/roots/test-apidoc-toc/mypackage/main.py +++ b/tests/roots/test-apidoc-toc/mypackage/main.py @@ -5,7 +5,6 @@ import mod_resource import mod_something - if __name__ == "__main__": print("Hello, world! -> something returns: {}".format(mod_something.something())) diff --git a/tests/roots/test-ext-autodoc/autodoc_dummy_module.py b/tests/roots/test-ext-autodoc/autodoc_dummy_module.py index 5cc427ea40d..1e9ed19dced 100644 --- a/tests/roots/test-ext-autodoc/autodoc_dummy_module.py +++ b/tests/roots/test-ext-autodoc/autodoc_dummy_module.py @@ -1,4 +1,4 @@ -from dummy import * # NOQA +from dummy import * # NOQA def test(): diff --git a/tests/roots/test-ext-autodoc/target/__init__.py b/tests/roots/test-ext-autodoc/target/__init__.py index b6684ee85b1..e49f9a14104 100644 --- a/tests/roots/test-ext-autodoc/target/__init__.py +++ b/tests/roots/test-ext-autodoc/target/__init__.py @@ -3,7 +3,6 @@ from sphinx.util import save_traceback # NOQA - __all__ = ['Class'] #: documentation for the integer diff --git a/tests/roots/test-ext-autodoc/target/annotations.py b/tests/roots/test-ext-autodoc/target/annotations.py index 667149b2682..691176b0806 100644 --- a/tests/roots/test-ext-autodoc/target/annotations.py +++ b/tests/roots/test-ext-autodoc/target/annotations.py @@ -1,6 +1,6 @@ from __future__ import annotations -from typing import overload +from typing import overload myint = int diff --git a/tests/roots/test-ext-autodoc/target/generic_class.py b/tests/roots/test-ext-autodoc/target/generic_class.py index cf4c5ed37ef..e6ff38abc7c 100644 --- a/tests/roots/test-ext-autodoc/target/generic_class.py +++ b/tests/roots/test-ext-autodoc/target/generic_class.py @@ -1,5 +1,4 @@ -from typing import TypeVar, Generic - +from typing import Generic, TypeVar T = TypeVar('T') diff --git a/tests/roots/test-ext-autodoc/target/genericalias.py b/tests/roots/test-ext-autodoc/target/genericalias.py index 78b68cd63e0..d37bcb7faa5 100644 --- a/tests/roots/test-ext-autodoc/target/genericalias.py +++ b/tests/roots/test-ext-autodoc/target/genericalias.py @@ -1,4 +1,4 @@ -from typing import List, Callable +from typing import Callable, List #: A list of int T = List[int] diff --git a/tests/roots/test-ext-autodoc/target/name_conflict/__init__.py b/tests/roots/test-ext-autodoc/target/name_conflict/__init__.py index 7ad521fc25a..0a6f4965305 100644 --- a/tests/roots/test-ext-autodoc/target/name_conflict/__init__.py +++ b/tests/roots/test-ext-autodoc/target/name_conflict/__init__.py @@ -1,5 +1,6 @@ from .foo import bar + class foo: """docstring of target.name_conflict::foo.""" pass diff --git a/tests/roots/test-ext-autodoc/target/need_mocks.py b/tests/roots/test-ext-autodoc/target/need_mocks.py index b8a66158198..275ce8d5f2d 100644 --- a/tests/roots/test-ext-autodoc/target/need_mocks.py +++ b/tests/roots/test-ext-autodoc/target/need_mocks.py @@ -1,12 +1,12 @@ -import missing_module # NOQA -import missing_package1.missing_module1 # NOQA -from missing_module import missing_name # NOQA -from missing_package2 import missing_module2 # NOQA -from missing_package3.missing_module3 import missing_name # NOQA - -import sphinx.missing_module4 # NOQA -from sphinx.missing_module4 import missing_name2 # NOQA +import missing_module # NOQA +import missing_package1.missing_module1 # NOQA +from missing_module import missing_name # NOQA +from missing_package2 import missing_module2 # NOQA +from missing_package3.missing_module3 import missing_name # NOQA + +import sphinx.missing_module4 # NOQA +from sphinx.missing_module4 import missing_name2 # NOQA @missing_name diff --git a/tests/roots/test-ext-autodoc/target/singledispatch.py b/tests/roots/test-ext-autodoc/target/singledispatch.py index 33dcae43a9f..3fa81dcae4c 100644 --- a/tests/roots/test-ext-autodoc/target/singledispatch.py +++ b/tests/roots/test-ext-autodoc/target/singledispatch.py @@ -1,5 +1,5 @@ -from functools import singledispatch import inspect +from functools import singledispatch def assign_signature(func): diff --git a/tests/roots/test-ext-autosummary-imported_members/conf.py b/tests/roots/test-ext-autosummary-imported_members/conf.py index 4cfff02dcfe..77af668ab99 100644 --- a/tests/roots/test-ext-autosummary-imported_members/conf.py +++ b/tests/roots/test-ext-autosummary-imported_members/conf.py @@ -1,5 +1,6 @@ import os import sys + sys.path.insert(0, os.path.abspath('.')) extensions = ['sphinx.ext.autosummary'] diff --git a/tests/roots/test-ext-autosummary-mock_imports/conf.py b/tests/roots/test-ext-autosummary-mock_imports/conf.py index 1097e3c0475..121f8145931 100644 --- a/tests/roots/test-ext-autosummary-mock_imports/conf.py +++ b/tests/roots/test-ext-autosummary-mock_imports/conf.py @@ -1,5 +1,6 @@ import os import sys + sys.path.insert(0, os.path.abspath('.')) extensions = ['sphinx.ext.autosummary'] diff --git a/tests/roots/test-ext-autosummary/autosummary_dummy_module.py b/tests/roots/test-ext-autosummary/autosummary_dummy_module.py index 77eee8b5cdb..ca347545989 100644 --- a/tests/roots/test-ext-autosummary/autosummary_dummy_module.py +++ b/tests/roots/test-ext-autosummary/autosummary_dummy_module.py @@ -1,7 +1,6 @@ from os import path # NOQA from typing import Union - #: module variable CONSTANT1 = None CONSTANT2 = None diff --git a/tests/roots/test-ext-viewcode-find/not_a_package/__init__.py b/tests/roots/test-ext-viewcode-find/not_a_package/__init__.py index 8efc933b883..f79ec81f5ca 100644 --- a/tests/roots/test-ext-viewcode-find/not_a_package/__init__.py +++ b/tests/roots/test-ext-viewcode-find/not_a_package/__init__.py @@ -1 +1 @@ -from .submodule import func1, Class1 # NOQA +from .submodule import Class1, func1 # NOQA diff --git a/tests/roots/test-ext-viewcode/spam/__init__.py b/tests/roots/test-ext-viewcode/spam/__init__.py index 2d5ca82399e..c438f605042 100644 --- a/tests/roots/test-ext-viewcode/spam/__init__.py +++ b/tests/roots/test-ext-viewcode/spam/__init__.py @@ -1,2 +1,2 @@ -from .mod1 import func1, Class1 # NOQA -from .mod2 import func2, Class2 # NOQA +from .mod1 import Class1, func1 # NOQA +from .mod2 import Class2, func2 # NOQA diff --git a/tests/roots/test-ext-viewcode/spam/mod3.py b/tests/roots/test-ext-viewcode/spam/mod3.py index f7b6afbe0e7..812c9b58643 100644 --- a/tests/roots/test-ext-viewcode/spam/mod3.py +++ b/tests/roots/test-ext-viewcode/spam/mod3.py @@ -1,2 +1,3 @@ from spam.mod1 import Class3 + __all__ = ('Class3',) diff --git a/tests/roots/test-prolog/conf.py b/tests/roots/test-prolog/conf.py index e5ce871519d..f6be09c5e86 100644 --- a/tests/roots/test-prolog/conf.py +++ b/tests/roots/test-prolog/conf.py @@ -1,5 +1,6 @@ import os import sys + sys.path.insert(0, os.path.abspath('.')) diff --git a/tests/roots/test-pycode-egg/src/setup.py b/tests/roots/test-pycode-egg/src/setup.py index 6ad4986e497..1dfb1de2981 100644 --- a/tests/roots/test-pycode-egg/src/setup.py +++ b/tests/roots/test-pycode-egg/src/setup.py @@ -1,5 +1,4 @@ from setuptools import setup - setup(name='sample', py_modules=['sample']) diff --git a/tests/roots/test-root/autodoc_target.py b/tests/roots/test-root/autodoc_target.py index a1540d90a66..a49ffc1fffd 100644 --- a/tests/roots/test-root/autodoc_target.py +++ b/tests/roots/test-root/autodoc_target.py @@ -1,7 +1,6 @@ import enum from io import StringIO - __all__ = ['Class'] #: documentation for the integer diff --git a/tests/roots/test-root/conf.py b/tests/roots/test-root/conf.py index c3a890045d7..34cafa7671e 100644 --- a/tests/roots/test-root/conf.py +++ b/tests/roots/test-root/conf.py @@ -6,7 +6,6 @@ from sphinx import addnodes - sys.path.append(os.path.abspath('.')) extensions = ['sphinx.ext.autodoc', diff --git a/tests/roots/test-theming/setup.py b/tests/roots/test-theming/setup.py index 02ee259c0f6..7b504e807ec 100644 --- a/tests/roots/test-theming/setup.py +++ b/tests/roots/test-theming/setup.py @@ -1,4 +1,4 @@ -from setuptools import setup, find_packages +from setuptools import find_packages, setup setup( name='test-theme', diff --git a/tests/roots/test-warnings/conf.py b/tests/roots/test-warnings/conf.py index 9d12e2d79e9..25b8aba0748 100644 --- a/tests/roots/test-warnings/conf.py +++ b/tests/roots/test-warnings/conf.py @@ -1,5 +1,6 @@ import os import sys + sys.path.append(os.path.abspath('.')) extensions = ['sphinx.ext.autodoc'] diff --git a/tests/test_build_epub.py b/tests/test_build_epub.py index c17954fd32e..47041491509 100644 --- a/tests/test_build_epub.py +++ b/tests/test_build_epub.py @@ -10,7 +10,7 @@ import os import subprocess -from subprocess import CalledProcessError, PIPE +from subprocess import PIPE, CalledProcessError from xml.etree import ElementTree import pytest diff --git a/tests/test_build_gettext.py b/tests/test_build_gettext.py index 074602ea998..08fda96446f 100644 --- a/tests/test_build_gettext.py +++ b/tests/test_build_gettext.py @@ -12,7 +12,7 @@ import os import re import subprocess -from subprocess import CalledProcessError, PIPE +from subprocess import PIPE, CalledProcessError import pytest diff --git a/tests/test_build_html.py b/tests/test_build_html.py index 1f9f8eac7dc..6b66a2c67dd 100644 --- a/tests/test_build_html.py +++ b/tests/test_build_html.py @@ -11,7 +11,7 @@ import os import re from distutils.version import LooseVersion -from itertools import cycle, chain +from itertools import chain, cycle import pygments import pytest @@ -23,7 +23,6 @@ from sphinx.util import docutils, md5 from sphinx.util.inventory import InventoryFile - ENV_WARNINGS = """\ %(root)s/autodoc_fodder.py:docstring of autodoc_fodder.MarkupError:\\d+: \ WARNING: Explicit markup ends without a blank line; unexpected unindent. diff --git a/tests/test_build_latex.py b/tests/test_build_latex.py index 8dbe2a48c8e..ebaeecef2fe 100644 --- a/tests/test_build_latex.py +++ b/tests/test_build_latex.py @@ -13,7 +13,7 @@ import subprocess from itertools import product from shutil import copyfile -from subprocess import CalledProcessError, PIPE +from subprocess import PIPE, CalledProcessError import pytest from test_build_html import ENV_WARNINGS @@ -26,7 +26,6 @@ from sphinx.util.osutil import cd, ensuredir from sphinx.writers.latex import LaTeXTranslator - LATEX_ENGINES = ['pdflatex', 'lualatex', 'xelatex'] DOCCLASSES = ['howto', 'manual'] STYLEFILES = ['article.cls', 'fancyhdr.sty', 'titlesec.sty', 'amsmath.sty', diff --git a/tests/test_build_linkcheck.py b/tests/test_build_linkcheck.py index 908319e6b31..502a082f3fc 100644 --- a/tests/test_build_linkcheck.py +++ b/tests/test_build_linkcheck.py @@ -12,6 +12,7 @@ import json import re from unittest import mock + import pytest from utils import http_server diff --git a/tests/test_build_texinfo.py b/tests/test_build_texinfo.py index 9833218d74d..18cb42eb505 100644 --- a/tests/test_build_texinfo.py +++ b/tests/test_build_texinfo.py @@ -11,7 +11,7 @@ import os import re import subprocess -from subprocess import CalledProcessError, PIPE +from subprocess import PIPE, CalledProcessError from unittest.mock import Mock import pytest @@ -23,7 +23,6 @@ from sphinx.util.docutils import new_document from sphinx.writers.texinfo import TexinfoTranslator - TEXINFO_WARNINGS = ENV_WARNINGS + """\ %(root)s/index.rst:\\d+: WARNING: unknown option: &option %(root)s/index.rst:\\d+: WARNING: citation not found: missing diff --git a/tests/test_build_text.py b/tests/test_build_text.py index 8c00f5550f8..0ada5bb703d 100644 --- a/tests/test_build_text.py +++ b/tests/test_build_text.py @@ -11,7 +11,7 @@ import pytest from docutils.utils import column_width -from sphinx.writers.text import MAXWIDTH, Table, Cell +from sphinx.writers.text import MAXWIDTH, Cell, Table def with_text_app(*args, **kw): diff --git a/tests/test_config.py b/tests/test_config.py index 552cbc90d94..64face9fc56 100644 --- a/tests/test_config.py +++ b/tests/test_config.py @@ -14,8 +14,8 @@ import pytest import sphinx -from sphinx.config import Config, ENUM, check_confval_types -from sphinx.errors import ExtensionError, ConfigError, VersionRequirementError +from sphinx.config import ENUM, Config, check_confval_types +from sphinx.errors import ConfigError, ExtensionError, VersionRequirementError from sphinx.testing.path import path diff --git a/tests/test_domain_c.py b/tests/test_domain_c.py index f1014f6b876..57a7c49e669 100644 --- a/tests/test_domain_c.py +++ b/tests/test_domain_c.py @@ -7,14 +7,13 @@ :copyright: Copyright 2007-2020 by the Sphinx team, see AUTHORS. :license: BSD, see LICENSE for details. """ -import pytest - from xml.etree import ElementTree +import pytest + from sphinx import addnodes from sphinx.addnodes import desc -from sphinx.domains.c import DefinitionParser, DefinitionError -from sphinx.domains.c import _max_id, _id_prefix, Symbol +from sphinx.domains.c import DefinitionError, DefinitionParser, Symbol, _id_prefix, _max_id from sphinx.testing import restructuredtext from sphinx.testing.util import assert_node diff --git a/tests/test_domain_cpp.py b/tests/test_domain_cpp.py index b22a51730ce..2c8a4307126 100644 --- a/tests/test_domain_cpp.py +++ b/tests/test_domain_cpp.py @@ -15,8 +15,8 @@ import sphinx.domains.cpp as cppDomain from sphinx import addnodes from sphinx.addnodes import desc -from sphinx.domains.cpp import DefinitionParser, DefinitionError, NoOldIdError -from sphinx.domains.cpp import Symbol, _max_id, _id_prefix +from sphinx.domains.cpp import (DefinitionError, DefinitionParser, NoOldIdError, Symbol, + _id_prefix, _max_id) from sphinx.testing import restructuredtext from sphinx.testing.util import assert_node from sphinx.util import docutils diff --git a/tests/test_domain_js.py b/tests/test_domain_js.py index 9d0b59b9198..58c54c7666a 100644 --- a/tests/test_domain_js.py +++ b/tests/test_domain_js.py @@ -14,10 +14,8 @@ from docutils import nodes from sphinx import addnodes -from sphinx.addnodes import ( - desc, desc_annotation, desc_content, desc_name, - desc_parameter, desc_parameterlist, desc_signature -) +from sphinx.addnodes import (desc, desc_annotation, desc_content, desc_name, desc_parameter, + desc_parameterlist, desc_signature) from sphinx.domains.javascript import JavaScriptDomain from sphinx.testing import restructuredtext from sphinx.testing.util import assert_node diff --git a/tests/test_domain_py.py b/tests/test_domain_py.py index d81b406c225..2dc97bed99e 100644 --- a/tests/test_domain_py.py +++ b/tests/test_domain_py.py @@ -15,15 +15,13 @@ from docutils import nodes from sphinx import addnodes -from sphinx.addnodes import ( - desc, desc_addname, desc_annotation, desc_content, desc_name, desc_optional, - desc_parameter, desc_parameterlist, desc_returns, desc_signature, - desc_sig_name, desc_sig_operator, desc_sig_punctuation, pending_xref, -) +from sphinx.addnodes import (desc, desc_addname, desc_annotation, desc_content, desc_name, + desc_optional, desc_parameter, desc_parameterlist, desc_returns, + desc_sig_name, desc_sig_operator, desc_sig_punctuation, + desc_signature, pending_xref) from sphinx.domains import IndexEntry -from sphinx.domains.python import ( - py_sig_re, _parse_annotation, _pseudo_parse_arglist, PythonDomain, PythonModuleIndex -) +from sphinx.domains.python import (PythonDomain, PythonModuleIndex, _parse_annotation, + _pseudo_parse_arglist, py_sig_re) from sphinx.testing import restructuredtext from sphinx.testing.util import assert_node diff --git a/tests/test_domain_rst.py b/tests/test_domain_rst.py index 86fe7ef3f2e..93401e6c938 100644 --- a/tests/test_domain_rst.py +++ b/tests/test_domain_rst.py @@ -9,9 +9,8 @@ """ from sphinx import addnodes -from sphinx.addnodes import ( - desc, desc_addname, desc_annotation, desc_content, desc_name, desc_signature -) +from sphinx.addnodes import (desc, desc_addname, desc_annotation, desc_content, desc_name, + desc_signature) from sphinx.domains.rst import parse_directive from sphinx.testing import restructuredtext from sphinx.testing.util import assert_node diff --git a/tests/test_domain_std.py b/tests/test_domain_std.py index 33a000a3fb5..92876fa6aa2 100644 --- a/tests/test_domain_std.py +++ b/tests/test_domain_std.py @@ -8,20 +8,16 @@ :license: BSD, see LICENSE for details. """ -import pytest - from unittest import mock +import pytest from docutils import nodes from docutils.nodes import definition, definition_list, definition_list_item, term - from html5lib import HTMLParser from sphinx import addnodes -from sphinx.addnodes import ( - desc, desc_addname, desc_content, desc_name, desc_signature, glossary, index, - pending_xref -) +from sphinx.addnodes import (desc, desc_addname, desc_content, desc_name, desc_signature, + glossary, index, pending_xref) from sphinx.domains.std import StandardDomain from sphinx.testing import restructuredtext from sphinx.testing.util import assert_node diff --git a/tests/test_environment.py b/tests/test_environment.py index 7290eb6a0cb..0cc1247c038 100644 --- a/tests/test_environment.py +++ b/tests/test_environment.py @@ -9,11 +9,12 @@ """ import os import shutil + import pytest from sphinx.builders.html import StandaloneHTMLBuilder from sphinx.builders.latex import LaTeXBuilder -from sphinx.environment import CONFIG_OK, CONFIG_CHANGED, CONFIG_EXTENSIONS_CHANGED, CONFIG_NEW +from sphinx.environment import CONFIG_CHANGED, CONFIG_EXTENSIONS_CHANGED, CONFIG_NEW, CONFIG_OK from sphinx.testing.comparer import PathComparer diff --git a/tests/test_environment_toctree.py b/tests/test_environment_toctree.py index 4059e5cb21d..db79c358f4b 100644 --- a/tests/test_environment_toctree.py +++ b/tests/test_environment_toctree.py @@ -10,7 +10,7 @@ import pytest from docutils import nodes -from docutils.nodes import bullet_list, list_item, caption, comment, reference +from docutils.nodes import bullet_list, caption, comment, list_item, reference from sphinx import addnodes from sphinx.addnodes import compact_paragraph, only diff --git a/tests/test_ext_autodoc.py b/tests/test_ext_autodoc.py index 703cc13f6a8..140c9351e91 100644 --- a/tests/test_ext_autodoc.py +++ b/tests/test_ext_autodoc.py @@ -17,7 +17,7 @@ from docutils.statemachine import ViewList from sphinx import addnodes -from sphinx.ext.autodoc import ModuleLevelDocumenter, ALL, Options +from sphinx.ext.autodoc import ALL, ModuleLevelDocumenter, Options from sphinx.ext.autodoc.directive import DocumenterBridge, process_documenter_options from sphinx.testing.util import SphinxTestApp, Struct # NOQA from sphinx.util.docutils import LoggingReporter diff --git a/tests/test_ext_autodoc_autoclass.py b/tests/test_ext_autodoc_autoclass.py index fdbff1186b4..f71ffd679af 100644 --- a/tests/test_ext_autodoc_autoclass.py +++ b/tests/test_ext_autodoc_autoclass.py @@ -12,7 +12,6 @@ import sys import pytest - from test_ext_autodoc import do_autodoc diff --git a/tests/test_ext_autodoc_autofunction.py b/tests/test_ext_autodoc_autofunction.py index 3c8165995c7..c6a7af7c9a7 100644 --- a/tests/test_ext_autodoc_autofunction.py +++ b/tests/test_ext_autodoc_autofunction.py @@ -12,7 +12,6 @@ import sys import pytest - from test_ext_autodoc import do_autodoc diff --git a/tests/test_ext_autodoc_configs.py b/tests/test_ext_autodoc_configs.py index a0eba20c8ad..19d69d55896 100644 --- a/tests/test_ext_autodoc_configs.py +++ b/tests/test_ext_autodoc_configs.py @@ -12,11 +12,10 @@ import sys import pytest +from test_ext_autodoc import do_autodoc from sphinx.testing import restructuredtext -from test_ext_autodoc import do_autodoc - IS_PYPY = platform.python_implementation() == 'PyPy' diff --git a/tests/test_ext_autodoc_events.py b/tests/test_ext_autodoc_events.py index 798f593dcee..193d6e87bc8 100644 --- a/tests/test_ext_autodoc_events.py +++ b/tests/test_ext_autodoc_events.py @@ -9,9 +9,9 @@ """ import pytest +from test_ext_autodoc import do_autodoc from sphinx.ext.autodoc import between, cut_lines -from test_ext_autodoc import do_autodoc @pytest.mark.sphinx('html', testroot='ext-autodoc') diff --git a/tests/test_ext_autodoc_private_members.py b/tests/test_ext_autodoc_private_members.py index 9d7ff487a03..88cceefed6a 100644 --- a/tests/test_ext_autodoc_private_members.py +++ b/tests/test_ext_autodoc_private_members.py @@ -9,7 +9,6 @@ """ import pytest - from test_ext_autodoc import do_autodoc diff --git a/tests/test_ext_autosummary.py b/tests/test_ext_autosummary.py index 96b39ce0ea0..3832bc96307 100644 --- a/tests/test_ext_autosummary.py +++ b/tests/test_ext_autosummary.py @@ -16,13 +16,11 @@ from docutils import nodes from sphinx import addnodes -from sphinx.ext.autosummary import ( - autosummary_table, autosummary_toc, mangle_signature, import_by_name, extract_summary -) -from sphinx.ext.autosummary.generate import ( - AutosummaryEntry, generate_autosummary_content, generate_autosummary_docs, - main as autogen_main -) +from sphinx.ext.autosummary import (autosummary_table, autosummary_toc, extract_summary, + import_by_name, mangle_signature) +from sphinx.ext.autosummary.generate import (AutosummaryEntry, generate_autosummary_content, + generate_autosummary_docs) +from sphinx.ext.autosummary.generate import main as autogen_main from sphinx.testing.util import assert_node, etree_parse from sphinx.util.docutils import new_document from sphinx.util.osutil import cd diff --git a/tests/test_ext_doctest.py b/tests/test_ext_doctest.py index ebf7e19d36b..0ba53e79112 100644 --- a/tests/test_ext_doctest.py +++ b/tests/test_ext_doctest.py @@ -10,8 +10,8 @@ import os from collections import Counter -from docutils import nodes import pytest +from docutils import nodes from packaging.specifiers import InvalidSpecifier from packaging.version import InvalidVersion diff --git a/tests/test_ext_duration.py b/tests/test_ext_duration.py index 51b3e63aa92..debe7fa5687 100644 --- a/tests/test_ext_duration.py +++ b/tests/test_ext_duration.py @@ -9,6 +9,7 @@ """ import re + import pytest diff --git a/tests/test_ext_inheritance_diagram.py b/tests/test_ext_inheritance_diagram.py index 2ecb3f4e44c..4eff0e35c26 100644 --- a/tests/test_ext_inheritance_diagram.py +++ b/tests/test_ext_inheritance_diagram.py @@ -8,15 +8,14 @@ :license: BSD, see LICENSE for details. """ -import re import os +import re import sys import pytest -from sphinx.ext.inheritance_diagram import ( - InheritanceDiagram, InheritanceException, import_classes -) +from sphinx.ext.inheritance_diagram import (InheritanceDiagram, InheritanceException, + import_classes) @pytest.mark.sphinx(buildername="html", testroot="inheritance") diff --git a/tests/test_ext_intersphinx.py b/tests/test_ext_intersphinx.py index a88f64c71e2..ef621e2b680 100644 --- a/tests/test_ext_intersphinx.py +++ b/tests/test_ext_intersphinx.py @@ -19,12 +19,10 @@ from test_util_inventory import inventory_v2, inventory_v2_not_having_version from sphinx import addnodes -from sphinx.ext.intersphinx import ( - load_mappings, missing_reference, normalize_intersphinx_mapping, _strip_basic_auth, - _get_safe_url, fetch_inventory, INVENTORY_FILENAME, inspect_main -) +from sphinx.ext.intersphinx import (INVENTORY_FILENAME, _get_safe_url, _strip_basic_auth, + fetch_inventory, inspect_main, load_mappings, + missing_reference, normalize_intersphinx_mapping) from sphinx.ext.intersphinx import setup as intersphinx_setup - from utils import http_server diff --git a/tests/test_ext_napoleon.py b/tests/test_ext_napoleon.py index 9f356ce9e7c..c271a7c9a8a 100644 --- a/tests/test_ext_napoleon.py +++ b/tests/test_ext_napoleon.py @@ -14,8 +14,8 @@ from unittest import TestCase, mock from sphinx.application import Sphinx +from sphinx.ext.napoleon import Config, _process_docstring, _skip_member, setup from sphinx.testing.util import simple_decorator -from sphinx.ext.napoleon import _process_docstring, _skip_member, Config, setup def _private_doc(): diff --git a/tests/test_ext_napoleon_docstring.py b/tests/test_ext_napoleon_docstring.py index 0ebc145b624..0d2f8727ecb 100644 --- a/tests/test_ext_napoleon_docstring.py +++ b/tests/test_ext_napoleon_docstring.py @@ -19,13 +19,9 @@ import pytest from sphinx.ext.napoleon import Config -from sphinx.ext.napoleon.docstring import GoogleDocstring, NumpyDocstring -from sphinx.ext.napoleon.docstring import ( - _tokenize_type_spec, - _recombine_set_tokens, - _convert_numpy_type_spec, - _token_type -) +from sphinx.ext.napoleon.docstring import (GoogleDocstring, NumpyDocstring, + _convert_numpy_type_spec, _recombine_set_tokens, + _token_type, _tokenize_type_spec) class NamedtupleSubclass(namedtuple('NamedtupleSubclass', ('attr1', 'attr2'))): diff --git a/tests/test_ext_napoleon_iterators.py b/tests/test_ext_napoleon_iterators.py index de28031cbb0..456287e7c4d 100644 --- a/tests/test_ext_napoleon_iterators.py +++ b/tests/test_ext_napoleon_iterators.py @@ -11,7 +11,7 @@ from unittest import TestCase -from sphinx.ext.napoleon.iterators import peek_iter, modify_iter +from sphinx.ext.napoleon.iterators import modify_iter, peek_iter class BaseIteratorsTest(TestCase): diff --git a/tests/test_highlighting.py b/tests/test_highlighting.py index c2b470a6b66..19ca8bde9e6 100644 --- a/tests/test_highlighting.py +++ b/tests/test_highlighting.py @@ -12,7 +12,7 @@ from pygments.formatters.html import HtmlFormatter from pygments.lexer import RegexLexer -from pygments.token import Text, Name +from pygments.token import Name, Text from sphinx.highlighting import PygmentsBridge diff --git a/tests/test_intl.py b/tests/test_intl.py index c0b87d5ceb6..de242be72a3 100644 --- a/tests/test_intl.py +++ b/tests/test_intl.py @@ -13,16 +13,13 @@ import re import pytest -from babel.messages import pofile, mofile +from babel.messages import mofile, pofile from babel.messages.catalog import Catalog from docutils import nodes from sphinx import locale -from sphinx.testing.util import ( - path, etree_parse, strip_escseq, - assert_re_search, assert_not_re_search, assert_startswith, assert_node -) - +from sphinx.testing.util import (assert_node, assert_not_re_search, assert_re_search, + assert_startswith, etree_parse, path, strip_escseq) sphinx_intl = pytest.mark.sphinx( testroot='intl', diff --git a/tests/test_markup.py b/tests/test_markup.py index 5fb83560500..e7d855c360a 100644 --- a/tests/test_markup.py +++ b/tests/test_markup.py @@ -11,7 +11,7 @@ import re import pytest -from docutils import frontend, utils, nodes +from docutils import frontend, nodes, utils from docutils.parsers.rst import Parser as RstParser from sphinx import addnodes @@ -21,11 +21,10 @@ from sphinx.roles import XRefRole from sphinx.testing.util import Struct, assert_node from sphinx.transforms import SphinxSmartQuotes -from sphinx.util import docutils -from sphinx.util import texescape +from sphinx.util import docutils, texescape from sphinx.util.docutils import sphinx_domains -from sphinx.writers.html import HTMLWriter, HTMLTranslator -from sphinx.writers.latex import LaTeXWriter, LaTeXTranslator +from sphinx.writers.html import HTMLTranslator, HTMLWriter +from sphinx.writers.latex import LaTeXTranslator, LaTeXWriter @pytest.fixture diff --git a/tests/test_pycode.py b/tests/test_pycode.py index 20f01f17d47..ac3b34c9ff9 100644 --- a/tests/test_pycode.py +++ b/tests/test_pycode.py @@ -10,11 +10,12 @@ import os import sys + import pytest import sphinx -from sphinx.pycode import ModuleAnalyzer from sphinx.errors import PycodeError +from sphinx.pycode import ModuleAnalyzer SPHINX_MODULE_PATH = os.path.splitext(sphinx.__file__)[0] + '.py' diff --git a/tests/test_quickstart.py b/tests/test_quickstart.py index bdd7073d175..26f1d0d9ed5 100644 --- a/tests/test_quickstart.py +++ b/tests/test_quickstart.py @@ -15,10 +15,9 @@ from sphinx import application from sphinx.cmd import quickstart as qs -from sphinx.util.console import nocolor, coloron +from sphinx.util.console import coloron, nocolor from sphinx.util.pycompat import execfile_ - warnfile = StringIO() diff --git a/tests/test_search.py b/tests/test_search.py index a4cefbc67f9..5f8e4630219 100644 --- a/tests/test_search.py +++ b/tests/test_search.py @@ -8,8 +8,8 @@ :license: BSD, see LICENSE for details. """ -from io import BytesIO from collections import namedtuple +from io import BytesIO import pytest from docutils import frontend, utils diff --git a/tests/test_theming.py b/tests/test_theming.py index 93671eab8da..f1cb5a3e8bf 100644 --- a/tests/test_theming.py +++ b/tests/test_theming.py @@ -11,8 +11,8 @@ import os import alabaster - import pytest + from sphinx.theming import ThemeError diff --git a/tests/test_util.py b/tests/test_util.py index 434d96d3a8c..c58931bb4bb 100644 --- a/tests/test_util.py +++ b/tests/test_util.py @@ -17,11 +17,9 @@ import sphinx from sphinx.errors import ExtensionError, PycodeError from sphinx.testing.util import strip_escseq -from sphinx.util import ( - SkipProgressMessage, display_chunk, encode_uri, ensuredir, - import_object, parselinenos, progress_message, status_iterator, xmlname_checker -) -from sphinx.util import logging +from sphinx.util import (SkipProgressMessage, display_chunk, encode_uri, ensuredir, + import_object, logging, parselinenos, progress_message, + status_iterator, xmlname_checker) def test_encode_uri(): diff --git a/tests/test_util_docstrings.py b/tests/test_util_docstrings.py index a57e3f9b114..e6ae32306dd 100644 --- a/tests/test_util_docstrings.py +++ b/tests/test_util_docstrings.py @@ -8,9 +8,7 @@ :license: BSD, see LICENSE for details. """ -from sphinx.util.docstrings import ( - extract_metadata, prepare_docstring, prepare_commentdoc -) +from sphinx.util.docstrings import extract_metadata, prepare_commentdoc, prepare_docstring def test_extract_metadata(): diff --git a/tests/test_util_docutils.py b/tests/test_util_docutils.py index a22cf277a8b..41be9b8d133 100644 --- a/tests/test_util_docutils.py +++ b/tests/test_util_docutils.py @@ -12,9 +12,8 @@ from docutils import nodes -from sphinx.util.docutils import ( - SphinxFileOutput, SphinxTranslator, docutils_namespace, new_document, register_node -) +from sphinx.util.docutils import (SphinxFileOutput, SphinxTranslator, docutils_namespace, + new_document, register_node) def test_register_node(): diff --git a/tests/test_util_images.py b/tests/test_util_images.py index 2a256577fd7..dd2044dffaa 100644 --- a/tests/test_util_images.py +++ b/tests/test_util_images.py @@ -10,9 +10,8 @@ import pytest -from sphinx.util.images import ( - get_image_size, guess_mimetype, get_image_extension, parse_data_uri -) +from sphinx.util.images import (get_image_extension, get_image_size, guess_mimetype, + parse_data_uri) GIF_FILENAME = 'img.gif' PNG_FILENAME = 'img.png' diff --git a/tests/test_util_inspect.py b/tests/test_util_inspect.py index 204fa65b7e5..19c48a4afa1 100644 --- a/tests/test_util_inspect.py +++ b/tests/test_util_inspect.py @@ -8,7 +8,6 @@ :license: BSD, see LICENSE for details. """ -import _testcapi import ast import datetime import functools @@ -16,10 +15,11 @@ import types from inspect import Parameter +import _testcapi import pytest from sphinx.util import inspect -from sphinx.util.inspect import stringify_signature, is_builtin_class_method +from sphinx.util.inspect import is_builtin_class_method, stringify_signature def test_signature(): @@ -129,8 +129,8 @@ def meth2(self, arg1, arg2): def test_signature_annotations(): - from typing_test_data import (f0, f1, f2, f3, f4, f5, f6, f7, f8, f9, f10, - f11, f12, f13, f14, f15, f16, f17, f18, f19, f20, f21, Node) + from typing_test_data import (Node, f0, f1, f2, f3, f4, f5, f6, f7, f8, f9, f10, f11, f12, + f13, f14, f15, f16, f17, f18, f19, f20, f21) # Class annotations sig = inspect.signature(f0) @@ -240,7 +240,7 @@ def test_signature_annotations(): @pytest.mark.skipif(sys.version_info < (3, 8), reason='python 3.8+ is required.') @pytest.mark.sphinx(testroot='ext-autodoc') def test_signature_annotations_py38(app): - from target.pep570 import foo, bar, baz, qux + from target.pep570 import bar, baz, foo, qux # case: separator at head sig = inspect.signature(foo) @@ -528,8 +528,7 @@ def test_iscoroutinefunction(app): @pytest.mark.sphinx(testroot='ext-autodoc') def test_isfunction(app): - from target.functions import builtin_func, partial_builtin_func - from target.functions import func, partial_func + from target.functions import builtin_func, func, partial_builtin_func, partial_func from target.methods import Base assert inspect.isfunction(func) is True # function @@ -543,8 +542,7 @@ def test_isfunction(app): @pytest.mark.sphinx(testroot='ext-autodoc') def test_isbuiltin(app): - from target.functions import builtin_func, partial_builtin_func - from target.functions import func, partial_func + from target.functions import builtin_func, func, partial_builtin_func, partial_func from target.methods import Base assert inspect.isbuiltin(builtin_func) is True # builtin function diff --git a/tests/test_util_matching.py b/tests/test_util_matching.py index 0a6bdc7b346..9d90f5a903d 100644 --- a/tests/test_util_matching.py +++ b/tests/test_util_matching.py @@ -7,7 +7,7 @@ :copyright: Copyright 2007-2020 by the Sphinx team, see AUTHORS. :license: BSD, see LICENSE for details. """ -from sphinx.util.matching import compile_matchers, Matcher +from sphinx.util.matching import Matcher, compile_matchers def test_compile_matchers(): diff --git a/tests/test_util_nodes.py b/tests/test_util_nodes.py index 8fe9ee773c3..dd41022f334 100644 --- a/tests/test_util_nodes.py +++ b/tests/test_util_nodes.py @@ -11,15 +11,13 @@ from typing import Any import pytest -from docutils import frontend -from docutils import nodes +from docutils import frontend, nodes from docutils.parsers import rst from docutils.utils import new_document from sphinx.transforms import ApplySourceWorkaround -from sphinx.util.nodes import ( - NodeMatcher, extract_messages, clean_astext, make_id, split_explicit_title -) +from sphinx.util.nodes import (NodeMatcher, clean_astext, extract_messages, make_id, + split_explicit_title) def _transform(doctree): diff --git a/tests/test_util_rst.py b/tests/test_util_rst.py index dd78fe5ba04..58cf46fe8a6 100644 --- a/tests/test_util_rst.py +++ b/tests/test_util_rst.py @@ -11,9 +11,7 @@ from docutils.statemachine import StringList from jinja2 import Environment -from sphinx.util.rst import ( - append_epilog, escape, heading, prepend_prolog, textwidth -) +from sphinx.util.rst import append_epilog, escape, heading, prepend_prolog, textwidth def test_escape(): diff --git a/tests/test_util_typing.py b/tests/test_util_typing.py index 4059dc6bdda..354db15671a 100644 --- a/tests/test_util_typing.py +++ b/tests/test_util_typing.py @@ -10,9 +10,8 @@ import sys from numbers import Integral -from typing import ( - Any, Dict, Generator, List, TypeVar, Union, Callable, Tuple, Optional, Generic -) +from typing import (Any, Callable, Dict, Generator, Generic, List, Optional, Tuple, TypeVar, + Union) import pytest diff --git a/tests/test_versioning.py b/tests/test_versioning.py index 7fe3bce6f84..e5f5474cf8d 100644 --- a/tests/test_versioning.py +++ b/tests/test_versioning.py @@ -15,8 +15,7 @@ from sphinx import addnodes from sphinx.testing.util import SphinxTestApp -from sphinx.versioning import add_uids, merge_doctrees, get_ratio - +from sphinx.versioning import add_uids, get_ratio, merge_doctrees app = original = original_uids = None diff --git a/tests/typing_test_data.py b/tests/typing_test_data.py index 6c0357911c9..8b30c843f85 100644 --- a/tests/typing_test_data.py +++ b/tests/typing_test_data.py @@ -1,6 +1,6 @@ from inspect import Signature from numbers import Integral -from typing import Any, Dict, List, TypeVar, Union, Callable, Tuple, Optional +from typing import Any, Callable, Dict, List, Optional, Tuple, TypeVar, Union def f0(x: int, y: Integral) -> None: diff --git a/tox.ini b/tox.ini index 316655d20a0..5bb5b4639fc 100644 --- a/tox.ini +++ b/tox.ini @@ -41,6 +41,17 @@ extras = commands = flake8 {posargs} +[testenv:isort] +basepython = python3 +description = + Run import sorting checks. +whitelist_externals = + isort +extras = + lint +commands = + isort --check-only --diff . + [testenv:coverage] basepython = python3 description = diff --git a/utils/doclinter.py b/utils/doclinter.py index bb11decaf5a..f8df20bf7f8 100644 --- a/utils/doclinter.py +++ b/utils/doclinter.py @@ -13,7 +13,6 @@ import sys from typing import List - MAX_LINE_LENGTH = 85 LONG_INTERPRETED_TEXT = re.compile(r'^\s*\W*(:(\w+:)+)?`.*`\W*$') CODE_BLOCK_DIRECTIVE = re.compile(r'^(\s*)\.\. code-block::') From c90eef1f674daac9b51b73662d0d6969f8ad31f7 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Fran=C3=A7ois=20Freitag?= Date: Wed, 11 Nov 2020 13:48:07 +0100 Subject: [PATCH 2/5] linkcheck: Remove unused arguments from tests --- tests/test_build_linkcheck.py | 12 ++++++------ 1 file changed, 6 insertions(+), 6 deletions(-) diff --git a/tests/test_build_linkcheck.py b/tests/test_build_linkcheck.py index 908319e6b31..80beb71b70d 100644 --- a/tests/test_build_linkcheck.py +++ b/tests/test_build_linkcheck.py @@ -18,7 +18,7 @@ @pytest.mark.sphinx('linkcheck', testroot='linkcheck', freshenv=True) -def test_defaults(app, status, warning): +def test_defaults(app): app.builder.build_all() assert (app.outdir / 'output.txt').exists() @@ -39,7 +39,7 @@ def test_defaults(app, status, warning): @pytest.mark.sphinx('linkcheck', testroot='linkcheck', freshenv=True) -def test_defaults_json(app, status, warning): +def test_defaults_json(app): app.builder.build_all() assert (app.outdir / 'output.json').exists() @@ -100,7 +100,7 @@ def test_defaults_json(app, status, warning): 'https://www.google.com/image2.png', 'path/to/notfound'] }) -def test_anchors_ignored(app, status, warning): +def test_anchors_ignored(app): app.builder.build_all() assert (app.outdir / 'output.txt').exists() @@ -110,7 +110,7 @@ def test_anchors_ignored(app, status, warning): assert not content @pytest.mark.sphinx('linkcheck', testroot='linkcheck-localserver', freshenv=True) -def test_raises_for_invalid_status(app, status, warning): +def test_raises_for_invalid_status(app): class InternalServerErrorHandler(http.server.BaseHTTPRequestHandler): def do_GET(self): self.send_error(500, "Internal Server Error") @@ -132,7 +132,7 @@ def do_GET(self): (r'.+google\.com.+', 'authinfo2'), ] }) -def test_auth(app, status, warning): +def test_auth(app): mock_req = mock.MagicMock() mock_req.return_value = 'fake-response' @@ -160,7 +160,7 @@ def test_auth(app, status, warning): "X-Secret": "open sesami", } }}) -def test_linkcheck_request_headers(app, status, warning): +def test_linkcheck_request_headers(app): mock_req = mock.MagicMock() mock_req.return_value = 'fake-response' From 22a4ed531c1c22416e92409408b78933cb01cf00 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Fran=C3=A7ois=20Freitag?= Date: Wed, 11 Nov 2020 14:16:34 +0100 Subject: [PATCH 3/5] Run tests with Python Development mode Helps catching more issues with the test suite. https://docs.python.org/3/library/devmode.html#devmode --- Makefile | 4 ++-- tox.ini | 2 +- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/Makefile b/Makefile index 9cff012d484..5ba113dc334 100644 --- a/Makefile +++ b/Makefile @@ -66,11 +66,11 @@ doclinter: .PHONY: test test: - @$(PYTHON) -m pytest -v $(TEST) + @$(PYTHON) -X dev -m pytest -v $(TEST) .PHONY: covertest covertest: - @$(PYTHON) -m pytest -v --cov=sphinx --junitxml=.junit.xml $(TEST) + @$(PYTHON) -X dev -m pytest -v --cov=sphinx --junitxml=.junit.xml $(TEST) .PHONY: build build: diff --git a/tox.ini b/tox.ini index 316655d20a0..89ac4455994 100644 --- a/tox.ini +++ b/tox.ini @@ -28,7 +28,7 @@ setenv = PYTHONWARNINGS = all,ignore::ImportWarning:importlib._bootstrap_external,ignore::DeprecationWarning:site,ignore::DeprecationWarning:distutils PYTEST_ADDOPTS = {env:PYTEST_ADDOPTS:} --color yes commands= - pytest --durations 25 {posargs} + python -X dev -m pytest --durations 25 {posargs} [testenv:flake8] basepython = python3 From b718aef7d876ca6a9e08fc225f8f2031845083a4 Mon Sep 17 00:00:00 2001 From: Takeshi KOMIYA Date: Thu, 12 Nov 2020 02:52:50 +0900 Subject: [PATCH 4/5] Do isort --- sphinx/__init__.py | 1 - sphinx/addnodes.py | 3 +-- sphinx/builders/__init__.py | 3 +-- sphinx/builders/gettext.py | 2 +- sphinx/builders/html/__init__.py | 1 - sphinx/builders/xml.py | 1 - sphinx/directives/code.py | 3 +-- sphinx/domains/index.py | 3 +-- sphinx/domains/math.py | 3 +-- sphinx/domains/python.py | 1 - sphinx/environment/collectors/__init__.py | 3 +-- sphinx/environment/collectors/toctree.py | 1 - sphinx/events.py | 3 +-- sphinx/ext/autodoc/directive.py | 1 - sphinx/ext/autosummary/__init__.py | 1 - sphinx/ext/autosummary/generate.py | 1 - sphinx/ext/doctest.py | 4 ++-- sphinx/ext/napoleon/docstring.py | 1 - sphinx/extension.py | 3 +-- sphinx/io.py | 3 +-- sphinx/jinja2glue.py | 3 +-- sphinx/parsers.py | 3 +-- sphinx/registry.py | 3 +-- sphinx/roles.py | 3 +-- sphinx/theming.py | 3 +-- sphinx/transforms/__init__.py | 3 +-- sphinx/transforms/i18n.py | 3 +-- sphinx/transforms/references.py | 3 +-- sphinx/util/__init__.py | 2 -- sphinx/util/compat.py | 3 +-- sphinx/util/fileutil.py | 3 +-- sphinx/util/i18n.py | 3 +-- sphinx/util/pycompat.py | 1 - sphinx/versioning.py | 3 +-- 34 files changed, 24 insertions(+), 57 deletions(-) diff --git a/sphinx/__init__.py b/sphinx/__init__.py index 574ede34617..bb84d0d1799 100644 --- a/sphinx/__init__.py +++ b/sphinx/__init__.py @@ -19,7 +19,6 @@ from .deprecation import RemovedInNextVersionWarning - # by default, all DeprecationWarning under sphinx package will be emit. # Users can avoid this by using environment variable: PYTHONWARNINGS= if 'PYTHONWARNINGS' not in os.environ: diff --git a/sphinx/addnodes.py b/sphinx/addnodes.py index 5b3dc08c504..0ad07aa5f6a 100644 --- a/sphinx/addnodes.py +++ b/sphinx/addnodes.py @@ -8,8 +8,7 @@ :license: BSD, see LICENSE for details. """ -from typing import Any, Dict, List, Sequence -from typing import TYPE_CHECKING +from typing import TYPE_CHECKING, Any, Dict, List, Sequence from docutils import nodes from docutils.nodes import Element diff --git a/sphinx/builders/__init__.py b/sphinx/builders/__init__.py index f161dcf7168..2e7add5db81 100644 --- a/sphinx/builders/__init__.py +++ b/sphinx/builders/__init__.py @@ -11,8 +11,7 @@ import pickle import time from os import path -from typing import Any, Dict, Iterable, List, Sequence, Set, Tuple, Type, Union -from typing import TYPE_CHECKING +from typing import TYPE_CHECKING, Any, Dict, Iterable, List, Sequence, Set, Tuple, Type, Union from docutils import nodes from docutils.nodes import Node diff --git a/sphinx/builders/gettext.py b/sphinx/builders/gettext.py index a5ba822dbc6..439c8512df8 100644 --- a/sphinx/builders/gettext.py +++ b/sphinx/builders/gettext.py @@ -13,7 +13,7 @@ from datetime import datetime, timedelta, tzinfo from os import getenv, path, walk from time import time -from typing import Any, DefaultDict, Dict, Iterable, Generator, List, Set, Tuple, Union +from typing import Any, DefaultDict, Dict, Generator, Iterable, List, Set, Tuple, Union from uuid import uuid4 from docutils import nodes diff --git a/sphinx/builders/html/__init__.py b/sphinx/builders/html/__init__.py index bea13045fb2..0af5dde286b 100644 --- a/sphinx/builders/html/__init__.py +++ b/sphinx/builders/html/__init__.py @@ -47,7 +47,6 @@ from sphinx.util.tags import Tags from sphinx.writers.html import HTMLTranslator, HTMLWriter - # HTML5 Writer is available or not if is_html5_writer_available(): from sphinx.writers.html5 import HTML5Translator diff --git a/sphinx/builders/xml.py b/sphinx/builders/xml.py index 65d29b3ca8f..e6964f338e2 100644 --- a/sphinx/builders/xml.py +++ b/sphinx/builders/xml.py @@ -23,7 +23,6 @@ from sphinx.util.osutil import ensuredir, os_path from sphinx.writers.xml import PseudoXMLWriter, XMLWriter - logger = logging.getLogger(__name__) diff --git a/sphinx/directives/code.py b/sphinx/directives/code.py index 275ca1b2d16..116cc6c41b8 100644 --- a/sphinx/directives/code.py +++ b/sphinx/directives/code.py @@ -8,8 +8,7 @@ import sys from difflib import unified_diff -from typing import Any, Dict, List, Tuple -from typing import TYPE_CHECKING +from typing import TYPE_CHECKING, Any, Dict, List, Tuple from docutils import nodes from docutils.nodes import Element, Node diff --git a/sphinx/domains/index.py b/sphinx/domains/index.py index 16963f2d1db..840b417c235 100644 --- a/sphinx/domains/index.py +++ b/sphinx/domains/index.py @@ -8,8 +8,7 @@ :license: BSD, see LICENSE for details. """ -from typing import Any, Dict, Iterable, List, Tuple -from typing import TYPE_CHECKING +from typing import TYPE_CHECKING, Any, Dict, Iterable, List, Tuple from docutils import nodes from docutils.nodes import Node, system_message diff --git a/sphinx/domains/math.py b/sphinx/domains/math.py index 5b6062ecbcf..30ba5b66d53 100644 --- a/sphinx/domains/math.py +++ b/sphinx/domains/math.py @@ -8,8 +8,7 @@ :license: BSD, see LICENSE for details. """ -from typing import Any, Dict, Iterable, List, Tuple -from typing import TYPE_CHECKING +from typing import TYPE_CHECKING, Any, Dict, Iterable, List, Tuple from docutils import nodes from docutils.nodes import Element, Node, make_id, system_message diff --git a/sphinx/domains/python.py b/sphinx/domains/python.py index 0fc5e996114..d71a4891da1 100644 --- a/sphinx/domains/python.py +++ b/sphinx/domains/python.py @@ -40,7 +40,6 @@ from sphinx.util.nodes import make_id, make_refnode from sphinx.util.typing import TextlikeNode - logger = logging.getLogger(__name__) diff --git a/sphinx/environment/collectors/__init__.py b/sphinx/environment/collectors/__init__.py index 2dd33c767c4..20035db71c3 100644 --- a/sphinx/environment/collectors/__init__.py +++ b/sphinx/environment/collectors/__init__.py @@ -8,8 +8,7 @@ :license: BSD, see LICENSE for details. """ -from typing import Dict, List, Set -from typing import TYPE_CHECKING +from typing import TYPE_CHECKING, Dict, List, Set from docutils import nodes diff --git a/sphinx/environment/collectors/toctree.py b/sphinx/environment/collectors/toctree.py index 995685d75d0..13ab2498c31 100644 --- a/sphinx/environment/collectors/toctree.py +++ b/sphinx/environment/collectors/toctree.py @@ -22,7 +22,6 @@ from sphinx.transforms import SphinxContentsFilter from sphinx.util import logging, url_re - N = TypeVar('N') logger = logging.getLogger(__name__) diff --git a/sphinx/events.py b/sphinx/events.py index 59d38daf05c..1ffb11561cb 100644 --- a/sphinx/events.py +++ b/sphinx/events.py @@ -12,8 +12,7 @@ from collections import defaultdict from operator import attrgetter -from typing import Any, Callable, Dict, List, NamedTuple, Tuple, Type -from typing import TYPE_CHECKING +from typing import TYPE_CHECKING, Any, Callable, Dict, List, NamedTuple, Tuple, Type from sphinx.errors import ExtensionError, SphinxError from sphinx.locale import __ diff --git a/sphinx/ext/autodoc/directive.py b/sphinx/ext/autodoc/directive.py index 5543059cb7d..604a9d51d85 100644 --- a/sphinx/ext/autodoc/directive.py +++ b/sphinx/ext/autodoc/directive.py @@ -21,7 +21,6 @@ from sphinx.util.docutils import SphinxDirective, switch_source_input from sphinx.util.nodes import nested_parse_with_titles - logger = logging.getLogger(__name__) diff --git a/sphinx/ext/autosummary/__init__.py b/sphinx/ext/autosummary/__init__.py index 4983496d504..fce5439b26e 100644 --- a/sphinx/ext/autosummary/__init__.py +++ b/sphinx/ext/autosummary/__init__.py @@ -87,7 +87,6 @@ from sphinx.util.matching import Matcher from sphinx.writers.html import HTMLTranslator - logger = logging.getLogger(__name__) diff --git a/sphinx/ext/autosummary/generate.py b/sphinx/ext/autosummary/generate.py index 1769b837e1f..a098177a44b 100644 --- a/sphinx/ext/autosummary/generate.py +++ b/sphinx/ext/autosummary/generate.py @@ -49,7 +49,6 @@ from sphinx.util.osutil import ensuredir from sphinx.util.template import SphinxTemplateLoader - logger = logging.getLogger(__name__) diff --git a/sphinx/ext/doctest.py b/sphinx/ext/doctest.py index 2a82261960b..76da36bbefe 100644 --- a/sphinx/ext/doctest.py +++ b/sphinx/ext/doctest.py @@ -15,8 +15,8 @@ import time from io import StringIO from os import path -from typing import Any, Callable, Dict, Iterable, List, Sequence, Set, Tuple, Type -from typing import TYPE_CHECKING +from typing import (TYPE_CHECKING, Any, Callable, Dict, Iterable, List, Sequence, Set, Tuple, + Type) from docutils import nodes from docutils.nodes import Element, Node, TextElement diff --git a/sphinx/ext/napoleon/docstring.py b/sphinx/ext/napoleon/docstring.py index ca50635a903..dd1a50ea944 100644 --- a/sphinx/ext/napoleon/docstring.py +++ b/sphinx/ext/napoleon/docstring.py @@ -22,7 +22,6 @@ from sphinx.locale import _, __ from sphinx.util import logging - logger = logging.getLogger(__name__) _directive_regex = re.compile(r'\.\. \S+::') diff --git a/sphinx/extension.py b/sphinx/extension.py index 98efc48feed..6954842321e 100644 --- a/sphinx/extension.py +++ b/sphinx/extension.py @@ -8,8 +8,7 @@ :license: BSD, see LICENSE for details. """ -from typing import Any, Dict -from typing import TYPE_CHECKING +from typing import TYPE_CHECKING, Any, Dict from sphinx.config import Config from sphinx.errors import VersionRequirementError diff --git a/sphinx/io.py b/sphinx/io.py index 6255dbc661b..df5aff58da4 100644 --- a/sphinx/io.py +++ b/sphinx/io.py @@ -8,8 +8,7 @@ :license: BSD, see LICENSE for details. """ import codecs -from typing import Any, List, Type -from typing import TYPE_CHECKING +from typing import TYPE_CHECKING, Any, List, Type from docutils import nodes from docutils.core import Publisher diff --git a/sphinx/jinja2glue.py b/sphinx/jinja2glue.py index ab9a7d79924..3b0dfba90e3 100644 --- a/sphinx/jinja2glue.py +++ b/sphinx/jinja2glue.py @@ -10,8 +10,7 @@ from os import path from pprint import pformat -from typing import Any, Callable, Dict, Iterator, List, Tuple, Union -from typing import TYPE_CHECKING +from typing import TYPE_CHECKING, Any, Callable, Dict, Iterator, List, Tuple, Union from jinja2 import BaseLoader, FileSystemLoader, TemplateNotFound, contextfunction from jinja2.environment import Environment diff --git a/sphinx/parsers.py b/sphinx/parsers.py index fc400e5c7d3..47debcf492b 100644 --- a/sphinx/parsers.py +++ b/sphinx/parsers.py @@ -9,8 +9,7 @@ """ import warnings -from typing import Any, Dict, List, Type, Union -from typing import TYPE_CHECKING +from typing import TYPE_CHECKING, Any, Dict, List, Type, Union import docutils.parsers import docutils.parsers.rst diff --git a/sphinx/registry.py b/sphinx/registry.py index 541fef1b397..56b4595892c 100644 --- a/sphinx/registry.py +++ b/sphinx/registry.py @@ -11,8 +11,7 @@ import traceback from importlib import import_module from types import MethodType -from typing import Any, Callable, Dict, Iterator, List, Tuple, Type, Union -from typing import TYPE_CHECKING +from typing import TYPE_CHECKING, Any, Callable, Dict, Iterator, List, Tuple, Type, Union from docutils import nodes from docutils.io import Input diff --git a/sphinx/roles.py b/sphinx/roles.py index 426a62e903f..2fe27a5a858 100644 --- a/sphinx/roles.py +++ b/sphinx/roles.py @@ -9,8 +9,7 @@ """ import re -from typing import Any, Dict, List, Tuple, Type -from typing import TYPE_CHECKING +from typing import TYPE_CHECKING, Any, Dict, List, Tuple, Type from docutils import nodes, utils from docutils.nodes import Element, Node, TextElement, system_message diff --git a/sphinx/theming.py b/sphinx/theming.py index c05d87407df..0ac3613cc7e 100644 --- a/sphinx/theming.py +++ b/sphinx/theming.py @@ -13,8 +13,7 @@ import shutil import tempfile from os import path -from typing import Any, Dict, List -from typing import TYPE_CHECKING +from typing import TYPE_CHECKING, Any, Dict, List from zipfile import ZipFile import pkg_resources diff --git a/sphinx/transforms/__init__.py b/sphinx/transforms/__init__.py index 1dbdb94f7a7..ebc332da1dd 100644 --- a/sphinx/transforms/__init__.py +++ b/sphinx/transforms/__init__.py @@ -9,8 +9,7 @@ """ import re -from typing import Any, Dict, Generator, List, Tuple -from typing import TYPE_CHECKING +from typing import TYPE_CHECKING, Any, Dict, Generator, List, Tuple from docutils import nodes from docutils.nodes import Element, Node, Text diff --git a/sphinx/transforms/i18n.py b/sphinx/transforms/i18n.py index 8dc72f8da00..96b35ac6084 100644 --- a/sphinx/transforms/i18n.py +++ b/sphinx/transforms/i18n.py @@ -10,8 +10,7 @@ from os import path from textwrap import indent -from typing import Any, Dict, List, Tuple, Type, TypeVar -from typing import TYPE_CHECKING +from typing import TYPE_CHECKING, Any, Dict, List, Tuple, Type, TypeVar from docutils import nodes from docutils.io import StringInput diff --git a/sphinx/transforms/references.py b/sphinx/transforms/references.py index 372d06470f4..e5ff91ee6cb 100644 --- a/sphinx/transforms/references.py +++ b/sphinx/transforms/references.py @@ -8,8 +8,7 @@ :license: BSD, see LICENSE for details. """ -from typing import Any, Dict -from typing import TYPE_CHECKING +from typing import TYPE_CHECKING, Any, Dict from docutils.transforms.references import DanglingReferences diff --git a/sphinx/util/__init__.py b/sphinx/util/__init__.py index 392fcdf5c4c..1e753654180 100644 --- a/sphinx/util/__init__.py +++ b/sphinx/util/__init__.py @@ -26,7 +26,6 @@ Set, Tuple, Type) from urllib.parse import parse_qsl, quote_plus, urlencode, urlsplit, urlunsplit - from sphinx.deprecation import RemovedInSphinx50Warning from sphinx.errors import ExtensionError, FiletypeNotFoundError, SphinxParallelError from sphinx.locale import __ @@ -42,7 +41,6 @@ movefile, mtimes_of_files, os_path, relative_uri) from sphinx.util.typing import PathMatcher - if TYPE_CHECKING: from sphinx.application import Sphinx diff --git a/sphinx/util/compat.py b/sphinx/util/compat.py index 6893efaf9eb..26de3c8f2e1 100644 --- a/sphinx/util/compat.py +++ b/sphinx/util/compat.py @@ -9,8 +9,7 @@ """ import sys -from typing import Any, Dict -from typing import TYPE_CHECKING +from typing import TYPE_CHECKING, Any, Dict if TYPE_CHECKING: from sphinx.application import Sphinx diff --git a/sphinx/util/fileutil.py b/sphinx/util/fileutil.py index 2f878a57862..8801eb91346 100644 --- a/sphinx/util/fileutil.py +++ b/sphinx/util/fileutil.py @@ -10,8 +10,7 @@ import os import posixpath -from typing import Callable, Dict -from typing import TYPE_CHECKING +from typing import TYPE_CHECKING, Callable, Dict from docutils.utils import relative_path diff --git a/sphinx/util/i18n.py b/sphinx/util/i18n.py index e5d4f112e32..2930007cb93 100644 --- a/sphinx/util/i18n.py +++ b/sphinx/util/i18n.py @@ -12,8 +12,7 @@ import re from datetime import datetime, timezone from os import path -from typing import Callable, Generator, List, NamedTuple, Tuple, Union -from typing import TYPE_CHECKING +from typing import TYPE_CHECKING, Callable, Generator, List, NamedTuple, Tuple, Union import babel.dates from babel.messages.mofile import write_mo diff --git a/sphinx/util/pycompat.py b/sphinx/util/pycompat.py index 0c0ac12d69f..b6eb32f69c0 100644 --- a/sphinx/util/pycompat.py +++ b/sphinx/util/pycompat.py @@ -13,7 +13,6 @@ from sphinx.deprecation import RemovedInSphinx60Warning - # ------------------------------------------------------------------------------ # Python 2/3 compatibility diff --git a/sphinx/versioning.py b/sphinx/versioning.py index 4f925741c31..02f31801a28 100644 --- a/sphinx/versioning.py +++ b/sphinx/versioning.py @@ -12,8 +12,7 @@ from itertools import product, zip_longest from operator import itemgetter from os import path -from typing import Any, Dict, Iterator -from typing import TYPE_CHECKING +from typing import TYPE_CHECKING, Any, Dict, Iterator from uuid import uuid4 from docutils.nodes import Node From d7783b97ccabcc7b4d870d531f58f5c5bd060813 Mon Sep 17 00:00:00 2001 From: Takeshi KOMIYA Date: Thu, 12 Nov 2020 02:55:23 +0900 Subject: [PATCH 5/5] Fix flake8 violation --- sphinx/util/pycompat.py | 1 + 1 file changed, 1 insertion(+) diff --git a/sphinx/util/pycompat.py b/sphinx/util/pycompat.py index b6eb32f69c0..5ffebd715af 100644 --- a/sphinx/util/pycompat.py +++ b/sphinx/util/pycompat.py @@ -16,6 +16,7 @@ # ------------------------------------------------------------------------------ # Python 2/3 compatibility + # convert_with_2to3(): # support for running 2to3 over config files def convert_with_2to3(filepath: str) -> str: