diff --git a/sphinx/builders/gettext.py b/sphinx/builders/gettext.py index 8fffca948..f7a2c988f 100644 --- a/sphinx/builders/gettext.py +++ b/sphinx/builders/gettext.py @@ -22,7 +22,7 @@ from uuid import uuid4 from six import iteritems, StringIO from sphinx.builders import Builder -from sphinx.locale import pairindextypes +from sphinx.domains.python import pairindextypes from sphinx.util import split_index_msg, logging, status_iterator from sphinx.util.console import bold # type: ignore from sphinx.util.i18n import find_catalog diff --git a/sphinx/domains/python.py b/sphinx/domains/python.py index 6f3c27c89..95c10d4fd 100644 --- a/sphinx/domains/python.py +++ b/sphinx/domains/python.py @@ -16,7 +16,8 @@ from docutils import nodes from docutils.parsers.rst import Directive, directives from six import iteritems -from sphinx import addnodes +from sphinx import addnodes, locale +from sphinx.deprecation import DeprecatedDict, RemovedInSphinx30Warning from sphinx.directives import ObjectDescription from sphinx.domains import Domain, ObjType, Index from sphinx.locale import _ @@ -44,6 +45,24 @@ py_sig_re = re.compile( ''', re.VERBOSE) +pairindextypes = { + 'module': _('module'), + 'keyword': _('keyword'), + 'operator': _('operator'), + 'object': _('object'), + 'exception': _('exception'), + 'statement': _('statement'), + 'builtin': _('built-in function'), +} # Dict[unicode, unicode] + +locale.pairindextypes = DeprecatedDict( + pairindextypes, + 'sphinx.locale.pairindextypes is deprecated. ' + 'Please use sphinx.domains.python.pairindextypes instead.', + RemovedInSphinx30Warning +) + + def _pseudo_parse_arglist(signode, arglist): # type: (addnodes.desc_signature, unicode) -> None """"Parse" a list of arguments separated by commas. diff --git a/sphinx/locale/__init__.py b/sphinx/locale/__init__.py index 86bd1110b..bca13ef94 100644 --- a/sphinx/locale/__init__.py +++ b/sphinx/locale/__init__.py @@ -347,13 +347,5 @@ admonitionlabels = { # Moved to sphinx.directives.other (will be overrided later) versionlabels = {} -# XXX Python specific -pairindextypes = { - 'module': _('module'), - 'keyword': _('keyword'), - 'operator': _('operator'), - 'object': _('object'), - 'exception': _('exception'), - 'statement': _('statement'), - 'builtin': _('built-in function'), -} # Dict[unicode, _TranslationProxy] +# Moved to sphinx.domains.python (will be overrided later) +pairindextypes = {} diff --git a/sphinx/util/nodes.py b/sphinx/util/nodes.py index 9b1e81490..c17edce2f 100644 --- a/sphinx/util/nodes.py +++ b/sphinx/util/nodes.py @@ -17,7 +17,6 @@ from docutils import nodes from six import text_type from sphinx import addnodes -from sphinx.locale import pairindextypes from sphinx.util import logging if TYPE_CHECKING: @@ -240,6 +239,8 @@ indextypes = [ def process_index_entry(entry, targetid): # type: (unicode, unicode) -> List[Tuple[unicode, unicode, unicode, unicode, unicode]] + from sphinx.domains.python import pairindextypes + indexentries = [] # type: List[Tuple[unicode, unicode, unicode, unicode, unicode]] entry = entry.strip() oentry = entry