mirror of
https://github.com/sphinx-doc/sphinx.git
synced 2025-02-25 18:55:22 -06:00
Deprecate config value: source_parsers
This commit is contained in:
parent
f886f08cb2
commit
dc45877d3c
3
CHANGES
3
CHANGES
@ -10,6 +10,9 @@ Incompatible changes
|
||||
Deprecated
|
||||
----------
|
||||
|
||||
* :confval:`source_parsers` is deprecated. Please use ``add_source_parser()``
|
||||
instead.
|
||||
|
||||
Features added
|
||||
--------------
|
||||
|
||||
|
@ -123,6 +123,10 @@ General configuration
|
||||
|
||||
.. versionadded:: 1.3
|
||||
|
||||
.. deprecated:: 1.8
|
||||
Now Sphinx provides an API :meth:`Sphinx.add_source_parser` to register
|
||||
a source parser. Please use it instead.
|
||||
|
||||
.. confval:: master_doc
|
||||
|
||||
The document name of the "master" document, that is, the document that
|
||||
|
@ -92,6 +92,7 @@ builtin_extensions = (
|
||||
'sphinx.roles',
|
||||
'sphinx.transforms.post_transforms',
|
||||
'sphinx.transforms.post_transforms.images',
|
||||
'sphinx.util.compat',
|
||||
# collectors should be loaded by specific order
|
||||
'sphinx.environment.collectors.dependencies',
|
||||
'sphinx.environment.collectors.asset',
|
||||
@ -287,8 +288,6 @@ class Sphinx(object):
|
||||
|
||||
def _init_source_parsers(self):
|
||||
# type: () -> None
|
||||
for suffix, parser in iteritems(self.config.source_parsers):
|
||||
self.add_source_parser(suffix, parser)
|
||||
for suffix, parser in iteritems(self.registry.get_source_parsers()):
|
||||
if suffix not in self.config.source_suffix and suffix != '*':
|
||||
self.config.source_suffix.append(suffix)
|
||||
|
@ -22,4 +22,8 @@ class RemovedInSphinx20Warning(PendingDeprecationWarning):
|
||||
pass
|
||||
|
||||
|
||||
class RemovedInSphinx30Warning(PendingDeprecationWarning):
|
||||
pass
|
||||
|
||||
|
||||
RemovedInNextVersionWarning = RemovedInSphinx18Warning
|
||||
|
@ -13,7 +13,7 @@ from __future__ import print_function
|
||||
import traceback
|
||||
|
||||
from pkg_resources import iter_entry_points
|
||||
from six import iteritems, itervalues, string_types
|
||||
from six import iteritems, itervalues
|
||||
|
||||
from sphinx.errors import ExtensionError, SphinxError, VersionRequirementError
|
||||
from sphinx.extension import Extension
|
||||
@ -23,7 +23,6 @@ from sphinx.locale import __
|
||||
from sphinx.parsers import Parser as SphinxParser
|
||||
from sphinx.roles import XRefRole
|
||||
from sphinx.util import logging
|
||||
from sphinx.util import import_object
|
||||
from sphinx.util.console import bold # type: ignore
|
||||
from sphinx.util.docutils import directive_helper
|
||||
|
||||
@ -216,8 +215,6 @@ class SphinxComponentRegistry(object):
|
||||
if parser_class is None:
|
||||
raise SphinxError(__('Source parser for %s not registered') % filename)
|
||||
else:
|
||||
if isinstance(parser_class, string_types):
|
||||
parser_class = import_object(parser_class, 'source parser') # type: ignore
|
||||
return parser_class
|
||||
|
||||
def get_source_parsers(self):
|
||||
|
46
sphinx/util/compat.py
Normal file
46
sphinx/util/compat.py
Normal file
@ -0,0 +1,46 @@
|
||||
# -*- coding: utf-8 -*-
|
||||
"""
|
||||
sphinx.util.compat
|
||||
~~~~~~~~~~~~~~~~~~
|
||||
|
||||
modules for backward compatibility
|
||||
|
||||
:copyright: Copyright 2007-2018 by the Sphinx team, see AUTHORS.
|
||||
:license: BSD, see LICENSE for details.
|
||||
"""
|
||||
|
||||
import warnings
|
||||
|
||||
from six import string_types, iteritems
|
||||
|
||||
from sphinx.deprecation import RemovedInSphinx30Warning
|
||||
from sphinx.util import import_object
|
||||
|
||||
if False:
|
||||
# For type annotation
|
||||
from typing import Any, Dict # NOQA
|
||||
from sphinx.application import Sphinx # NOQA
|
||||
from sphinx.config import Config # NOQA
|
||||
|
||||
|
||||
def deprecate_source_parsers(app, config):
|
||||
# type: (Sphinx, Config) -> None
|
||||
if config.source_parsers:
|
||||
warnings.warn('The config variable "source_parsers" is deprecated. '
|
||||
'Please use app.add_source_parser() API instead.',
|
||||
RemovedInSphinx30Warning)
|
||||
for suffix, parser in iteritems(config.source_parsers):
|
||||
if isinstance(parser, string_types):
|
||||
parser = import_object(parser, 'source parser') # type: ignore
|
||||
app.add_source_parser(suffix, parser)
|
||||
|
||||
|
||||
def setup(app):
|
||||
# type: (Sphinx) -> Dict[unicode, Any]
|
||||
app.connect('config-inited', deprecate_source_parsers)
|
||||
|
||||
return {
|
||||
'version': 'builtin',
|
||||
'parallel_read_safe': True,
|
||||
'parallel_write_safe': True,
|
||||
}
|
Loading…
Reference in New Issue
Block a user