diff --git a/.github/workflows/lint.yml b/.github/workflows/lint.yml index fea1f17a2..913abcedd 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/Makefile b/Makefile index 9cff012d4..5ba113dc3 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/doc/conf.py b/doc/conf.py index 8b242dc7e..80ee2b01c 100644 --- a/doc/conf.py +++ b/doc/conf.py @@ -4,7 +4,6 @@ import re 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 2464302da..c7317578b 100644 --- a/doc/development/tutorials/examples/recipe.py +++ b/doc/development/tutorials/examples/recipe.py @@ -4,8 +4,7 @@ from docutils.parsers.rst import directives 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 2730c6610..f59829d88 100644 --- a/setup.cfg +++ b/setup.cfg @@ -39,6 +39,9 @@ extension = paths = . +[isort] +line_length = 95 + [mypy] python_version = 3.6 disallow_incomplete_defs = True diff --git a/setup.py b/setup.py index dcd79630d..03b6164c4 100644 --- a/setup.py +++ b/setup.py @@ -43,7 +43,7 @@ extras_require = { ], 'lint': [ 'flake8>=3.5.0', - 'flake8-import-order', + 'isort', 'mypy>=0.790', 'docutils-stubs', ], @@ -76,9 +76,10 @@ class Tee: 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 e432db245..7661b82d6 100644 --- a/sphinx/application.py +++ b/sphinx/application.py @@ -17,8 +17,7 @@ import sys from collections import deque from io import StringIO from os import path -from typing import Any, Callable, Dict, IO, List, Optional, Tuple, Type, Union -from typing import TYPE_CHECKING +from typing import IO, TYPE_CHECKING, Any, Callable, Dict, List, Optional, Tuple, Type, Union from docutils import nodes from docutils.nodes import Element, TextElement @@ -28,7 +27,7 @@ from docutils.transforms import Transform 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.domains import Domain, Index from sphinx.environment import BuildEnvironment @@ -42,9 +41,7 @@ from sphinx.project import Project 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 @@ -54,6 +51,8 @@ from sphinx.util.tags import Tags from sphinx.util.typing import RoleFunction, TitleGetter if TYPE_CHECKING: + from docutils.nodes import Node # NOQA + from sphinx.builders import Builder @@ -1068,7 +1067,7 @@ class Sphinx: .. 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 f7da7d762..f161dcf71 100644 --- a/sphinx/builders/__init__.py +++ b/sphinx/builders/__init__.py @@ -18,26 +18,24 @@ from docutils import nodes 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: diff --git a/sphinx/builders/_epub_base.py b/sphinx/builders/_epub_base.py index 6a2b312d9..c81a9ba91 100644 --- a/sphinx/builders/_epub_base.py +++ b/sphinx/builders/_epub_base.py @@ -22,11 +22,10 @@ from docutils.utils import smartquotes from sphinx import addnodes from sphinx.builders.html import BuildInfo, StandaloneHTMLBuilder 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/changes.py b/sphinx/builders/changes.py index 7cf9d098b..ea3a778fc 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.console import bold # type: ignore 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/epub3.py b/sphinx/builders/epub3.py index 1bef3c5bb..6320e7fc2 100644 --- a/sphinx/builders/epub3.py +++ b/sphinx/builders/epub3.py @@ -16,7 +16,7 @@ from typing import Any, Dict, List, NamedTuple, Set, Tuple 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.locale import __ from sphinx.util import logging, xmlname_checker from sphinx.util.fileutil import copy_asset_file diff --git a/sphinx/builders/gettext.py b/sphinx/builders/gettext.py index 04e7382ca..a5ba822db 100644 --- a/sphinx/builders/gettext.py +++ b/sphinx/builders/gettext.py @@ -9,9 +9,9 @@ """ 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, DefaultDict, Dict, Iterable, Generator, List, Set, Tuple, Union from uuid import uuid4 @@ -19,18 +19,17 @@ 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 0e132e4b4..bea13045f 100644 --- a/sphinx/builders/html/__init__.py +++ b/sphinx/builders/html/__init__.py @@ -14,7 +14,7 @@ import re import sys from datetime import datetime from os import path -from typing import Any, Dict, IO, Iterable, Iterator, List, Set, Tuple, Type +from typing import IO, Any, Dict, Iterable, Iterator, List, Set, Tuple, Type from urllib.parse import quote from docutils import nodes @@ -24,10 +24,10 @@ from docutils.io import DocTreeInput, StringOutput 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.domains import Domain, Index, IndexEntry from sphinx.environment.adapters.asset import ImageAdapter from sphinx.environment.adapters.indexentries import IndexEntries @@ -37,15 +37,15 @@ from sphinx.highlighting import PygmentsBridge 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 # HTML5 Writer is available or not @@ -1184,10 +1184,11 @@ def validate_html_favicon(app: Sphinx, config: Config) -> None: config.html_favicon = None # type: ignore -# for compatibility; RemovedInSphinx40Warning +# 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/latex/__init__.py b/sphinx/builders/latex/__init__.py index 6a876862d..f034e552b 100644 --- a/sphinx/builders/latex/__init__.py +++ b/sphinx/builders/latex/__init__.py @@ -17,18 +17,18 @@ from docutils.frontend import OptionParser 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 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.i18n import format_date 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 7146079ff..aab64c679 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 174483be6..5b8370d6c 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 docutils.transforms.references import Substitutions 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 cb99de9e1..40e54a8d7 100644 --- a/sphinx/builders/linkcheck.py +++ b/sphinx/builders/linkcheck.py @@ -25,14 +25,11 @@ from requests.exceptions import HTTPError 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 442abb915..c3b12f4b4 100644 --- a/sphinx/builders/manpage.py +++ b/sphinx/builders/manpage.py @@ -20,13 +20,11 @@ from sphinx.builders import Builder 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/singlehtml.py b/sphinx/builders/singlehtml.py index df90b4c73..d8ab978ed 100644 --- a/sphinx/builders/singlehtml.py +++ b/sphinx/builders/singlehtml.py @@ -19,8 +19,7 @@ from sphinx.builders.html import StandaloneHTMLBuilder 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 5e2e6e240..345934bd4 100644 --- a/sphinx/builders/texinfo.py +++ b/sphinx/builders/texinfo.py @@ -16,23 +16,20 @@ from docutils import nodes 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 89b041abd..463f4bc55 100644 --- a/sphinx/builders/text.py +++ b/sphinx/builders/text.py @@ -19,7 +19,7 @@ from sphinx.builders import Builder 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 d5fd6b40a..65d29b3ca 100644 --- a/sphinx/builders/xml.py +++ b/sphinx/builders/xml.py @@ -21,7 +21,7 @@ from sphinx.builders import Builder 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 logger = logging.getLogger(__name__) diff --git a/sphinx/cmd/build.py b/sphinx/cmd/build.py index c4cf11cc4..f75b13fc8 100644 --- a/sphinx/cmd/build.py +++ b/sphinx/cmd/build.py @@ -16,7 +16,7 @@ import os 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.application import Sphinx 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 1961d37d5..8e5392238 100644 --- a/sphinx/cmd/make_mode.py +++ b/sphinx/cmd/make_mode.py @@ -22,10 +22,9 @@ from typing import List 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 dc587600c..6f0dd5de4 100644 --- a/sphinx/cmd/quickstart.py +++ b/sphinx/cmd/quickstart.py @@ -34,7 +34,7 @@ from docutils.utils import column_width import sphinx.locale from sphinx import __display_version__, package_dir from sphinx.locale import __ -from sphinx.util.console import colorize, bold, red, nocolor, color_terminal # type: ignore +from sphinx.util.console import bold, color_terminal, colorize, nocolor, red # type: ignore from sphinx.util.osutil import ensuredir from sphinx.util.template import SphinxRenderer diff --git a/sphinx/config.py b/sphinx/config.py index a6d070e3f..584d4c3c4 100644 --- a/sphinx/config.py +++ b/sphinx/config.py @@ -12,11 +12,9 @@ import re import traceback import types from collections import OrderedDict -from os import path, getenv -from typing import ( - Any, Callable, Dict, Generator, Iterator, List, NamedTuple, Set, Tuple, Union -) -from typing import TYPE_CHECKING +from os import getenv, path +from typing import (TYPE_CHECKING, Any, Callable, Dict, Generator, Iterator, List, NamedTuple, + Set, Tuple, Union) from sphinx.errors import ConfigError, ExtensionError from sphinx.locale import _, __ diff --git a/sphinx/directives/__init__.py b/sphinx/directives/__init__.py index e2b0d3342..7a7735aee 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 TYPE_CHECKING, cast +from typing import TYPE_CHECKING, Any, Dict, List, Tuple, cast from docutils import nodes from docutils.nodes import Node diff --git a/sphinx/directives/code.py b/sphinx/directives/code.py index 4447b746a..275ca1b2d 100644 --- a/sphinx/directives/code.py +++ b/sphinx/directives/code.py @@ -19,8 +19,7 @@ from docutils.statemachine import StringList from sphinx import addnodes from sphinx.config import Config 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 TYPE_CHECKING: diff --git a/sphinx/directives/other.py b/sphinx/directives/other.py index ec7f84661..51ac66bd4 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 TYPE_CHECKING, cast +from typing import TYPE_CHECKING, Any, Dict, List, cast from docutils import nodes from docutils.nodes import Element, Node @@ -20,7 +19,7 @@ from docutils.parsers.rst.directives.misc import Include as BaseInclude from sphinx import addnodes 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 c4535e119..0a0acf67a 100644 --- a/sphinx/directives/patches.py +++ b/sphinx/directives/patches.py @@ -7,13 +7,12 @@ """ import warnings -from typing import Any, Dict, List, Tuple -from typing import TYPE_CHECKING, cast +from typing import TYPE_CHECKING, 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.deprecation import RemovedInSphinx60Warning diff --git a/sphinx/domains/__init__.py b/sphinx/domains/__init__.py index e333af8ed..d2b55a698 100644 --- a/sphinx/domains/__init__.py +++ b/sphinx/domains/__init__.py @@ -10,8 +10,8 @@ """ import copy -from typing import Any, Callable, Dict, Iterable, List, NamedTuple, Tuple, Type, Union -from typing import TYPE_CHECKING, cast +from typing import (TYPE_CHECKING, Any, Callable, Dict, Iterable, List, NamedTuple, Tuple, + Type, Union, cast) from docutils import nodes from docutils.nodes import Element, Node, system_message diff --git a/sphinx/domains/c.py b/sphinx/domains/c.py index 5896f4a80..dc69c257a 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.roles import SphinxRole, XRefRole 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 a5a6e51e5..257041444 100644 --- a/sphinx/domains/changeset.py +++ b/sphinx/domains/changeset.py @@ -8,8 +8,7 @@ :license: BSD, see LICENSE for details. """ -from typing import Any, Dict, List, NamedTuple -from typing import TYPE_CHECKING, cast +from typing import TYPE_CHECKING, Any, Dict, List, NamedTuple, cast from docutils import nodes from docutils.nodes import Node @@ -19,7 +18,6 @@ from sphinx.domains import Domain from sphinx.locale import _ from sphinx.util.docutils import SphinxDirective - if TYPE_CHECKING: from sphinx.application import Sphinx from sphinx.environment import BuildEnvironment diff --git a/sphinx/domains/citation.py b/sphinx/domains/citation.py index f097ecf97..1f7674289 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 TYPE_CHECKING, cast +from typing import TYPE_CHECKING, 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 72d425035..35df74027 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.roles import SphinxRole, XRefRole 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 25d681f5e..16963f2d1 100644 --- a/sphinx/domains/index.py +++ b/sphinx/domains/index.py @@ -18,8 +18,7 @@ from docutils.parsers.rst import directives 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 dc7d610c2..6a431540c 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.docfields import Field, GroupedField, TypedField 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 02c93433a..5b6062ecb 100644 --- a/sphinx/domains/math.py +++ b/sphinx/domains/math.py @@ -12,8 +12,7 @@ from typing import Any, Dict, Iterable, List, Tuple from typing import TYPE_CHECKING 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.domains import Domain diff --git a/sphinx/domains/python.py b/sphinx/domains/python.py index fb00b8dad..0fc5e9961 100644 --- a/sphinx/domains/python.py +++ b/sphinx/domains/python.py @@ -15,23 +15,23 @@ import sys import typing import warnings from inspect import Parameter -from typing import Any, Dict, Iterable, Iterator, List, NamedTuple, Tuple, Type -from typing import cast +from typing import Any, Dict, Iterable, Iterator, List, NamedTuple, Tuple, Type, 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 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 e25b31936..bc9ffda07 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.roles import XRefRole 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 aa4793b66..eac5977e5 100644 --- a/sphinx/domains/std.py +++ b/sphinx/domains/std.py @@ -12,8 +12,8 @@ import re import unicodedata import warnings from copy import copy -from typing import Any, Callable, Dict, Iterable, Iterator, List, Optional, Tuple, Type, Union -from typing import TYPE_CHECKING, cast +from typing import (TYPE_CHECKING, Any, Callable, Dict, Iterable, Iterator, List, Optional, + Tuple, Type, Union, cast) from docutils import nodes from docutils.nodes import Element, Node, system_message @@ -27,7 +27,7 @@ from sphinx.directives import ObjectDescription 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 diff --git a/sphinx/environment/__init__.py b/sphinx/environment/__init__.py index 628c9aaf6..dd5bec6cf 100644 --- a/sphinx/environment/__init__.py +++ b/sphinx/environment/__init__.py @@ -14,8 +14,8 @@ from collections import defaultdict from copy import copy from datetime import datetime from os import path -from typing import Any, Callable, Dict, Generator, Iterator, List, Set, Tuple, Union -from typing import TYPE_CHECKING +from typing import (TYPE_CHECKING, Any, Callable, Dict, Generator, Iterator, List, Set, Tuple, + Union) from docutils import nodes from docutils.nodes import Node @@ -24,13 +24,12 @@ from sphinx import addnodes from sphinx.config import Config 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 b13ac97c3..427024a00 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 1d3320af2..62fb1a95a 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 TYPE_CHECKING, cast +from typing import TYPE_CHECKING, 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 3da2a6e4b..7f913ebbc 100644 --- a/sphinx/environment/collectors/asset.py +++ b/sphinx/environment/collectors/asset.py @@ -26,7 +26,6 @@ from sphinx.util import logging 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/metadata.py b/sphinx/environment/collectors/metadata.py index bcff1f273..ef872759b 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 d17f7090e..995685d75 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, Type, TypeVar -from typing import cast +from typing import Any, Dict, List, Set, Tuple, Type, TypeVar, cast from docutils import nodes from docutils.nodes import Element, Node @@ -21,7 +20,7 @@ from sphinx.environment.adapters.toctree import TocTree 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 N = TypeVar('N') diff --git a/sphinx/ext/autodoc/__init__.py b/sphinx/ext/autodoc/__init__.py index cf92b0137..73d3c75ef 100644 --- a/sphinx/ext/autodoc/__init__.py +++ b/sphinx/ext/autodoc/__init__.py @@ -15,29 +15,26 @@ import re 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 TYPE_CHECKING, get_type_hints +from typing import (TYPE_CHECKING, 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 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 TYPE_CHECKING: from sphinx.ext.autodoc.directive import DocumenterBridge diff --git a/sphinx/ext/autodoc/type_comment.py b/sphinx/ext/autodoc/type_comment.py index 7f11e3d12..debbc1442 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.locale import __ 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 4f81a6eae..70cbc3ba1 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 4bb401791..73a460117 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.locale import __ 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 ee1785251..4983496d5 100644 --- a/sphinx/ext/autosummary/__init__.py +++ b/sphinx/ext/autosummary/__init__.py @@ -60,8 +60,7 @@ import sys import warnings from os import path from types import ModuleType -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, Node, system_message @@ -76,16 +75,15 @@ from sphinx.config import Config from sphinx.deprecation import 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 148b7282e..1769b837e 100644 --- a/sphinx/ext/autosummary/generate.py +++ b/sphinx/ext/autosummary/generate.py @@ -34,20 +34,17 @@ from jinja2 import TemplateNotFound 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 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 @@ -85,13 +82,13 @@ class AutosummaryEntry(NamedTuple): 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 536b3b9d2..b971b5f25 100644 --- a/sphinx/ext/coverage.py +++ b/sphinx/ext/coverage.py @@ -15,7 +15,7 @@ import pickle 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 2485b89f0..2a8226196 100644 --- a/sphinx/ext/doctest.py +++ b/sphinx/ext/doctest.py @@ -21,7 +21,7 @@ from typing import TYPE_CHECKING 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 diff --git a/sphinx/ext/duration.py b/sphinx/ext/duration.py index 669baf2f1..7073f7769 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 d97a7505e..62375f95b 100644 --- a/sphinx/ext/graphviz.py +++ b/sphinx/ext/graphviz.py @@ -13,7 +13,7 @@ import posixpath 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 dd13a9879..a82b35a5e 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.locale import __ 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 a8da39709..9e71c9aa9 100644 --- a/sphinx/ext/imgmath.py +++ b/sphinx/ext/imgmath.py @@ -15,7 +15,7 @@ import subprocess 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 71a123b15..9e38041df 100644 --- a/sphinx/ext/inheritance_diagram.py +++ b/sphinx/ext/inheritance_diagram.py @@ -39,8 +39,7 @@ import builtins 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 @@ import sphinx 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 a6c4ef694..52ba11782 100644 --- a/sphinx/ext/intersphinx.py +++ b/sphinx/ext/intersphinx.py @@ -29,7 +29,7 @@ import posixpath 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.builders.html import INVENTORY_FILENAME 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/mathjax.py b/sphinx/ext/mathjax.py index 59eb16047..94bfcab58 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 e62ef7152..e2ff5439d 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 44b6acabc..8c459a028 100644 --- a/sphinx/ext/todo.py +++ b/sphinx/ext/todo.py @@ -11,8 +11,7 @@ :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 Element, Node diff --git a/sphinx/ext/viewcode.py b/sphinx/ext/viewcode.py index dc24a1993..812b3d6a2 100644 --- a/sphinx/ext/viewcode.py +++ b/sphinx/ext/viewcode.py @@ -23,7 +23,6 @@ from sphinx.pycode import ModuleAnalyzer 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 4dc9ce543..a341212cf 100644 --- a/sphinx/highlighting.py +++ b/sphinx/highlighting.py @@ -17,18 +17,16 @@ from pygments.filters import ErrorToken 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 8f10bbfa2..6255dbc66 100644 --- a/sphinx/io.py +++ b/sphinx/io.py @@ -24,15 +24,12 @@ from docutils.writers import UnfilteredWriter from sphinx import addnodes from sphinx.environment import BuildEnvironment -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 diff --git a/sphinx/jinja2glue.py b/sphinx/jinja2glue.py index 5829c2250..ab9a7d799 100644 --- a/sphinx/jinja2glue.py +++ b/sphinx/jinja2glue.py @@ -13,7 +13,7 @@ from pprint import pformat from typing import Any, Callable, Dict, Iterator, List, Tuple, Union from typing import TYPE_CHECKING -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 94c17dc0d..fc400e5c7 100644 --- a/sphinx/parsers.py +++ b/sphinx/parsers.py @@ -24,6 +24,7 @@ from sphinx.util.rst import append_epilog, prepend_prolog if TYPE_CHECKING: from docutils.transforms import Transform # NOQA + from sphinx.application import Sphinx diff --git a/sphinx/project.py b/sphinx/project.py index 1909659b1..758089907 100644 --- a/sphinx/project.py +++ b/sphinx/project.py @@ -13,9 +13,7 @@ from glob import glob from typing import TYPE_CHECKING 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 8bc1ba6c1..9ece164b1 100644 --- a/sphinx/pycode/__init__.py +++ b/sphinx/pycode/__init__.py @@ -15,7 +15,7 @@ from importlib import import_module 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.errors import PycodeError diff --git a/sphinx/pycode/ast.py b/sphinx/pycode/ast.py index e5b84600b..bad0d39dc 100644 --- a/sphinx/pycode/ast.py +++ b/sphinx/pycode/ast.py @@ -9,8 +9,7 @@ """ import sys -from typing import Dict, List, Type, Optional -from typing import overload +from typing import Dict, List, Optional, Type, overload if sys.version_info > (3, 8): import ast diff --git a/sphinx/pycode/parser.py b/sphinx/pycode/parser.py index 2d454cc96..97d7e6de5 100644 --- a/sphinx/pycode/parser.py +++ b/sphinx/pycode/parser.py @@ -13,14 +13,13 @@ import re 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 c5b07e75f..248ae536e 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/search/__init__.py b/sphinx/search/__init__.py index 5850b86e2..6cb5dbac0 100644 --- a/sphinx/search/__init__.py +++ b/sphinx/search/__init__.py @@ -10,16 +10,14 @@ import html import pickle import re -import warnings from importlib import import_module from os import path -from typing import Any, Dict, IO, Iterable, List, Tuple, Set, Type +from typing import IO, Any, Dict, Iterable, List, Set, Tuple, Type 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.environment import BuildEnvironment from sphinx.search.jssplitter import splitter_code from sphinx.util import jsdump diff --git a/sphinx/search/da.py b/sphinx/search/da.py index b04679e10..57af4a7be 100644 --- a/sphinx/search/da.py +++ b/sphinx/search/da.py @@ -14,7 +14,6 @@ import snowballstemmer 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 ae1827bf9..6c84d463a 100644 --- a/sphinx/search/de.py +++ b/sphinx/search/de.py @@ -14,7 +14,6 @@ import snowballstemmer 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 1009961c8..1e8a21085 100644 --- a/sphinx/search/es.py +++ b/sphinx/search/es.py @@ -14,7 +14,6 @@ import snowballstemmer 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 67bee89fe..e98ef9805 100644 --- a/sphinx/search/fi.py +++ b/sphinx/search/fi.py @@ -14,7 +14,6 @@ import snowballstemmer 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 b15271888..7cc35e2c8 100644 --- a/sphinx/search/fr.py +++ b/sphinx/search/fr.py @@ -14,7 +14,6 @@ import snowballstemmer 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 085773383..01ade35b7 100644 --- a/sphinx/search/hu.py +++ b/sphinx/search/hu.py @@ -14,7 +14,6 @@ import snowballstemmer 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 e76cd99dd..fa81260fb 100644 --- a/sphinx/search/it.py +++ b/sphinx/search/it.py @@ -14,7 +14,6 @@ import snowballstemmer 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 c1e72b8f8..b248eb281 100644 --- a/sphinx/search/ja.py +++ b/sphinx/search/ja.py @@ -33,7 +33,7 @@ try: 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 0e2e2ef23..f30ee690a 100644 --- a/sphinx/search/nl.py +++ b/sphinx/search/nl.py @@ -14,7 +14,6 @@ import snowballstemmer 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 68c1ac207..324264bde 100644 --- a/sphinx/search/no.py +++ b/sphinx/search/no.py @@ -14,7 +14,6 @@ import snowballstemmer 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 2538511f7..7783f65c0 100644 --- a/sphinx/search/pt.py +++ b/sphinx/search/pt.py @@ -14,7 +14,6 @@ import snowballstemmer 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 cfae772c9..ddb008b64 100644 --- a/sphinx/search/ro.py +++ b/sphinx/search/ro.py @@ -14,7 +14,6 @@ import snowballstemmer 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 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 66ee96374..b0c606f2f 100644 --- a/sphinx/util/cfamily.py +++ b/sphinx/util/cfamily.py @@ -10,9 +10,7 @@ import re 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 d429be602..579a95134 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 cb11a799d..3fa76271f 100644 --- a/sphinx/util/docfields.py +++ b/sphinx/util/docfields.py @@ -9,8 +9,7 @@ :license: BSD, see LICENSE for details. """ -from typing import Any, Dict, List, Tuple, Type, Union -from typing import TYPE_CHECKING, cast +from typing import TYPE_CHECKING, Any, Dict, List, Tuple, Type, Union, cast from docutils import nodes from docutils.nodes import Node @@ -19,8 +18,8 @@ from sphinx import addnodes from sphinx.util.typing import TextlikeNode if TYPE_CHECKING: - 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 67a008643..206986bd0 100644 --- a/sphinx/util/docstrings.py +++ b/sphinx/util/docstrings.py @@ -17,7 +17,6 @@ from docutils.parsers.rst.states import Body 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 8ca38bac2..daf128763 100644 --- a/sphinx/util/docutils.py +++ b/sphinx/util/docutils.py @@ -15,8 +15,8 @@ from copy import copy 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, Type -from typing import TYPE_CHECKING, cast +from typing import (IO, TYPE_CHECKING, Any, Callable, Dict, Generator, List, Optional, Set, + Tuple, Type, cast) import docutils from docutils import nodes @@ -24,7 +24,7 @@ from docutils.io import FileOutput 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 diff --git a/sphinx/util/inspect.py b/sphinx/util/inspect.py index b8a149d05..d1e9c4435 100644 --- a/sphinx/util/inspect.py +++ b/sphinx/util/inspect.py @@ -18,12 +18,9 @@ import types 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 -from typing import cast +from typing import Any, Callable, Dict, cast from sphinx.deprecation import RemovedInSphinx50Warning from sphinx.pycode.ast import ast # for py36-37 @@ -33,11 +30,7 @@ from sphinx.util.typing import ForwardRef 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 eb26161c0..b36e54c48 100644 --- a/sphinx/util/inventory.py +++ b/sphinx/util/inventory.py @@ -10,13 +10,11 @@ import os import re import zlib -from typing import Callable, IO, Iterator -from typing import TYPE_CHECKING +from typing import IO, TYPE_CHECKING, 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 1f0e258cb..0cd3c8b8c 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/logging.py b/sphinx/util/logging.py index 5206363a5..30a79eb35 100644 --- a/sphinx/util/logging.py +++ b/sphinx/util/logging.py @@ -12,8 +12,7 @@ import logging import logging.handlers from collections import defaultdict from contextlib import contextmanager -from typing import Any, Dict, Generator, IO, List, Tuple, Type, Union -from typing import TYPE_CHECKING +from typing import IO, TYPE_CHECKING, Any, Dict, Generator, List, Tuple, Type, Union from docutils import nodes from docutils.nodes import Node diff --git a/sphinx/util/nodes.py b/sphinx/util/nodes.py index f757bc9c3..36d86e502 100644 --- a/sphinx/util/nodes.py +++ b/sphinx/util/nodes.py @@ -10,8 +10,7 @@ import re import unicodedata -from typing import Any, Callable, Iterable, List, Set, Tuple, Type -from typing import TYPE_CHECKING, cast +from typing import TYPE_CHECKING, Any, Callable, Iterable, List, Set, Tuple, Type, cast from docutils import nodes from docutils.nodes import Element, Node diff --git a/sphinx/util/png.py b/sphinx/util/png.py index 22c35d991..3dd22d7ff 100644 --- a/sphinx/util/png.py +++ b/sphinx/util/png.py @@ -12,7 +12,6 @@ import binascii 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 5aeb0f9cc..0c0ac12d6 100644 --- a/sphinx/util/pycompat.py +++ b/sphinx/util/pycompat.py @@ -24,8 +24,8 @@ def convert_with_2to3(filepath: str) -> str: RemovedInSphinx60Warning, stacklevel=2) 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 e93849b70..b67b68c4a 100644 --- a/sphinx/util/rst.py +++ b/sphinx/util/rst.py @@ -18,12 +18,10 @@ from docutils.parsers.rst import roles 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 2b7503379..ad13fcaad 100644 --- a/sphinx/util/smartypants.py +++ b/sphinx/util/smartypants.py @@ -34,11 +34,9 @@ from docutils.utils import smartquotes from sphinx.deprecation import RemovedInSphinx60Warning from sphinx.util.docutils import __version_info__ as docutils_version - warnings.warn('sphinx.util.smartypants is deprecated.', RemovedInSphinx60Warning) - 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 051370481..bbfe08566 100644 --- a/sphinx/util/texescape.py +++ b/sphinx/util/texescape.py @@ -11,7 +11,6 @@ import re from typing import Dict - tex_replacements = [ # map TeX special chars ('$', r'\$'), diff --git a/sphinx/util/typing.py b/sphinx/util/typing.py index ebd6518e0..55af67829 100644 --- a/sphinx/util/typing.py +++ b/sphinx/util/typing.py @@ -15,7 +15,6 @@ from typing import Any, Callable, Dict, Generator, List, Optional, Tuple, TypeVa 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 6ec976e75..3fe4cfc3a 100644 --- a/sphinx/writers/html.py +++ b/sphinx/writers/html.py @@ -12,16 +12,16 @@ import copy import os import posixpath import re -from typing import Iterable, Tuple -from typing import TYPE_CHECKING, cast +from typing import TYPE_CHECKING, 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.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 5eb35cbfe..564154dee 100644 --- a/sphinx/writers/html5.py +++ b/sphinx/writers/html5.py @@ -12,8 +12,7 @@ import os import posixpath import re import warnings -from typing import Iterable, Tuple -from typing import TYPE_CHECKING, cast +from typing import TYPE_CHECKING, Iterable, Tuple, cast from docutils import nodes from docutils.nodes import Element, Node, Text @@ -22,7 +21,7 @@ from docutils.writers.html5_polyglot import HTMLTranslator as BaseTranslator from sphinx import addnodes from sphinx.builders import Builder from sphinx.deprecation import RemovedInSphinx60Warning -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 ace37d539..6a96a9ac7 100644 --- a/sphinx/writers/latex.py +++ b/sphinx/writers/latex.py @@ -15,20 +15,18 @@ import re import warnings from collections import defaultdict from os import path -from typing import Any, Dict, Iterable, List, Tuple, Set -from typing import TYPE_CHECKING, cast +from typing import TYPE_CHECKING, Any, Dict, Iterable, List, Set, Tuple, cast from docutils import nodes, writers from docutils.nodes import Element, Node, Text -from sphinx import addnodes -from sphinx import highlighting +from sphinx import addnodes, highlighting from sphinx.deprecation import RemovedInSphinx50Warning 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 @@ -2043,4 +2041,6 @@ class LaTeXTranslator(SphinxTranslator): # 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 2af96b530..b08a94d93 100644 --- a/sphinx/writers/manpage.py +++ b/sphinx/writers/manpage.py @@ -8,25 +8,21 @@ :license: BSD, see LICENSE for details. """ -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.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 e6062b1a0..16b08bc2d 100644 --- a/sphinx/writers/texinfo.py +++ b/sphinx/writers/texinfo.py @@ -12,18 +12,18 @@ import re import textwrap import warnings from os import path -from typing import Any, Dict, Iterable, Iterator, List, Optional, Pattern, Set, Tuple, Union -from typing import TYPE_CHECKING, cast +from typing import (TYPE_CHECKING, 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 972393035..747132694 100644 --- a/sphinx/writers/text.py +++ b/sphinx/writers/text.py @@ -11,16 +11,16 @@ import math 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 TYPE_CHECKING, cast +from itertools import chain, groupby +from typing import (TYPE_CHECKING, 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 TYPE_CHECKING: diff --git a/tests/conftest.py b/tests/conftest.py index 6a08dba76..bacd13013 100644 --- a/tests/conftest.py +++ b/tests/conftest.py @@ -13,8 +13,8 @@ import docutils 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 15f45a679..671f3905a 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.manpage import ManualPageTranslator 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 813db805e..c43573a38 100755 --- a/tests/roots/test-apidoc-toc/mypackage/main.py +++ b/tests/roots/test-apidoc-toc/mypackage/main.py @@ -5,7 +5,6 @@ import os 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 5cc427ea4..1e9ed19dc 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 b6684ee85..e49f9a141 100644 --- a/tests/roots/test-ext-autodoc/target/__init__.py +++ b/tests/roots/test-ext-autodoc/target/__init__.py @@ -3,7 +3,6 @@ from io import StringIO 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 667149b26..691176b08 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 cf4c5ed37..e6ff38abc 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 78b68cd63..d37bcb7fa 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 7ad521fc2..0a6f49653 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 b8a661581..275ce8d5f 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 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 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 33dcae43a..3fa81dcae 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 4cfff02dc..77af668ab 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 1097e3c04..121f81459 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 77eee8b5c..ca3475459 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 8efc933b8..f79ec81f5 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 2d5ca8239..c438f6050 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 f7b6afbe0..812c9b586 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 e5ce87151..f6be09c5e 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 6ad4986e4..1dfb1de29 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 a1540d90a..a49ffc1ff 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 c3a890045..34cafa767 100644 --- a/tests/roots/test-root/conf.py +++ b/tests/roots/test-root/conf.py @@ -6,7 +6,6 @@ from docutils.parsers.rst import Directive 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 02ee259c0..7b504e807 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 9d12e2d79..25b8aba07 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 759090ce3..2fed310ac 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 074602ea9..08fda9644 100644 --- a/tests/test_build_gettext.py +++ b/tests/test_build_gettext.py @@ -12,7 +12,7 @@ import gettext 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 22b60dc74..f05abb0fd 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.testing.util import strip_escseq from sphinx.util import 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 f97dbe9d9..86466e4a9 100644 --- a/tests/test_build_latex.py +++ b/tests/test_build_latex.py @@ -13,7 +13,7 @@ import re 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 @@ -25,7 +25,6 @@ from sphinx.testing.util import strip_escseq 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 908319e6b..88cf2aee1 100644 --- a/tests/test_build_linkcheck.py +++ b/tests/test_build_linkcheck.py @@ -12,13 +12,14 @@ import http.server import json import re from unittest import mock + import pytest from utils import http_server @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 +40,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 +101,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 +111,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 +133,7 @@ def test_raises_for_invalid_status(app, status, warning): (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 +161,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' diff --git a/tests/test_build_texinfo.py b/tests/test_build_texinfo.py index 9833218d7..18cb42eb5 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.testing.util import strip_escseq 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 8c00f5550..0ada5bb70 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 552cbc90d..64face9fc 100644 --- a/tests/test_config.py +++ b/tests/test_config.py @@ -14,8 +14,8 @@ from unittest import mock 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 f1014f6b8..57a7c49e6 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 72308f4af..e9962f358 100644 --- a/tests/test_domain_cpp.py +++ b/tests/test_domain_cpp.py @@ -15,8 +15,8 @@ import pytest 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 diff --git a/tests/test_domain_js.py b/tests/test_domain_js.py index 9d0b59b91..58c54c766 100644 --- a/tests/test_domain_js.py +++ b/tests/test_domain_js.py @@ -14,10 +14,8 @@ import pytest 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 e9facc0e2..ce4b49bc5 100644 --- a/tests/test_domain_py.py +++ b/tests/test_domain_py.py @@ -15,15 +15,13 @@ import pytest 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 86fe7ef3f..93401e6c9 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 66253b89a..fd6c40df6 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 73d0c3edc..bf90d42d7 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 4059e5cb2..db79c358f 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 bc3d07660..041aefc9f 100644 --- a/tests/test_ext_autodoc.py +++ b/tests/test_ext_autodoc.py @@ -17,7 +17,7 @@ import pytest 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 fdbff1186..f71ffd679 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 4d6944252..d5f690bad 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 19936c5ae..3d1005ac0 100644 --- a/tests/test_ext_autodoc_configs.py +++ b/tests/test_ext_autodoc_configs.py @@ -12,11 +12,10 @@ import platform 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 798f593dc..193d6e87b 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 9d7ff487a..88cceefed 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 96b39ce0e..3832bc963 100644 --- a/tests/test_ext_autosummary.py +++ b/tests/test_ext_autosummary.py @@ -16,13 +16,11 @@ import pytest 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 ebf7e19d3..0ba53e791 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 51b3e63aa..debe7fa56 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 2ecb3f4e4..4eff0e35c 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 a88f64c71..ef621e2b6 100644 --- a/tests/test_ext_intersphinx.py +++ b/tests/test_ext_intersphinx.py @@ -19,12 +19,10 @@ from docutils import nodes 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 9f356ce9e..c271a7c9a 100644 --- a/tests/test_ext_napoleon.py +++ b/tests/test_ext_napoleon.py @@ -14,8 +14,8 @@ from collections import namedtuple 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 0ebc145b6..0d2f8727e 100644 --- a/tests/test_ext_napoleon_docstring.py +++ b/tests/test_ext_napoleon_docstring.py @@ -19,13 +19,9 @@ from unittest import TestCase, mock 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 de28031cb..456287e7c 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 c2b470a6b..19ca8bde9 100644 --- a/tests/test_highlighting.py +++ b/tests/test_highlighting.py @@ -12,7 +12,7 @@ from unittest import mock 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 5ccfc482f..4ffbf506d 100644 --- a/tests/test_intl.py +++ b/tests/test_intl.py @@ -13,16 +13,13 @@ import os 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 5fb835605..e7d855c36 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.builders.latex.theming import ThemeFactory 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 20f01f17d..ac3b34c9f 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 bdd7073d1..26f1d0d9e 100644 --- a/tests/test_quickstart.py +++ b/tests/test_quickstart.py @@ -15,10 +15,9 @@ import pytest 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 72eb39a0a..dc1963c7d 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 93671eab8..f1cb5a3e8 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 434d96d3a..c58931bb4 100644 --- a/tests/test_util.py +++ b/tests/test_util.py @@ -17,11 +17,9 @@ import pytest 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 a57e3f9b1..e6ae32306 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 a22cf277a..41be9b8d1 100644 --- a/tests/test_util_docutils.py +++ b/tests/test_util_docutils.py @@ -12,9 +12,8 @@ import os 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 2a256577f..dd2044dff 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 8103050f5..e87e94f1d 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 sys 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 test_signature_partialmethod(): 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 0a6bdc7b3..9d90f5a90 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 8fe9ee773..dd41022f3 100644 --- a/tests/test_util_nodes.py +++ b/tests/test_util_nodes.py @@ -11,15 +11,13 @@ from textwrap import dedent 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 dd78fe5ba..58cf46fe8 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 4059dc6bd..354db1567 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 7fe3bce6f..e5f5474cf 100644 --- a/tests/test_versioning.py +++ b/tests/test_versioning.py @@ -15,8 +15,7 @@ from docutils.parsers.rst.directives.html import MetaBody 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 6c0357911..8b30c843f 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 3d40d2f97..253f3657c 100644 --- a/tox.ini +++ b/tox.ini @@ -26,7 +26,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 @@ -39,6 +39,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 bb11decaf..f8df20bf7 100644 --- a/utils/doclinter.py +++ b/utils/doclinter.py @@ -13,7 +13,6 @@ import re 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::')