mirror of
https://github.com/sphinx-doc/sphinx.git
synced 2025-02-25 18:55:22 -06:00
Deprecate Config.check_unicode()
This commit is contained in:
parent
00e9e560b1
commit
a24601aa24
1
CHANGES
1
CHANGES
@ -36,6 +36,7 @@ Deprecated
|
|||||||
* ``Config.__init__()`` has changed; the *dirname*, *filename* and *tags*
|
* ``Config.__init__()`` has changed; the *dirname*, *filename* and *tags*
|
||||||
argument has been deprecated
|
argument has been deprecated
|
||||||
* ``Config.check_types()`` is deprecated
|
* ``Config.check_types()`` is deprecated
|
||||||
|
* ``Config.check_unicode()`` is deprecated
|
||||||
|
|
||||||
For more details, see `deprecation APIs list
|
For more details, see `deprecation APIs list
|
||||||
<http://www.sphinx-doc.org/en/master/extdev/index.html#deprecated-apis>`_
|
<http://www.sphinx-doc.org/en/master/extdev/index.html#deprecated-apis>`_
|
||||||
|
@ -113,6 +113,11 @@ The following is a list of deprecated interface.
|
|||||||
- (will be) Removed
|
- (will be) Removed
|
||||||
- Alternatives
|
- Alternatives
|
||||||
|
|
||||||
|
* - ``Config.check_unicode()``
|
||||||
|
- 1.8
|
||||||
|
- 3.0
|
||||||
|
- ``sphinx.config.check_unicode()``
|
||||||
|
|
||||||
* - ``Config.check_types()``
|
* - ``Config.check_types()``
|
||||||
- 1.8
|
- 1.8
|
||||||
- 3.0
|
- 3.0
|
||||||
|
@ -26,7 +26,7 @@ from six.moves import cStringIO
|
|||||||
|
|
||||||
import sphinx
|
import sphinx
|
||||||
from sphinx import package_dir, locale
|
from sphinx import package_dir, locale
|
||||||
from sphinx.config import Config
|
from sphinx.config import Config, check_unicode
|
||||||
from sphinx.deprecation import RemovedInSphinx20Warning, RemovedInSphinx30Warning
|
from sphinx.deprecation import RemovedInSphinx20Warning, RemovedInSphinx30Warning
|
||||||
from sphinx.environment import BuildEnvironment
|
from sphinx.environment import BuildEnvironment
|
||||||
from sphinx.errors import ApplicationError, ConfigError, VersionRequirementError
|
from sphinx.errors import ApplicationError, ConfigError, VersionRequirementError
|
||||||
@ -190,8 +190,7 @@ class Sphinx(object):
|
|||||||
else:
|
else:
|
||||||
self.config = Config.read(path.join(self.confdir, CONFIG_FILENAME),
|
self.config = Config.read(path.join(self.confdir, CONFIG_FILENAME),
|
||||||
confoverrides or {}, self.tags)
|
confoverrides or {}, self.tags)
|
||||||
self.config.check_unicode()
|
check_unicode(self.config)
|
||||||
# defer checking types until i18n has been initialized
|
|
||||||
|
|
||||||
# initialize some limited config variables before initialize i18n and loading
|
# initialize some limited config variables before initialize i18n and loading
|
||||||
# extensions
|
# extensions
|
||||||
|
@ -34,7 +34,6 @@ if False:
|
|||||||
|
|
||||||
logger = logging.getLogger(__name__)
|
logger = logging.getLogger(__name__)
|
||||||
|
|
||||||
nonascii_re = re.compile(br'[\x80-\xff]')
|
|
||||||
copyright_year_re = re.compile(r'^((\d{4}-)?)(\d{4})(?=[ ,])')
|
copyright_year_re = re.compile(r'^((\d{4}-)?)(\d{4})(?=[ ,])')
|
||||||
|
|
||||||
if PY3:
|
if PY3:
|
||||||
@ -196,13 +195,9 @@ class Config(object):
|
|||||||
|
|
||||||
def check_unicode(self):
|
def check_unicode(self):
|
||||||
# type: () -> None
|
# type: () -> None
|
||||||
# check all string values for non-ASCII characters in bytestrings,
|
warnings.warn('Config.check_unicode() is deprecated. Use check_unicode() instead.',
|
||||||
# since that can result in UnicodeErrors all over the place
|
RemovedInSphinx30Warning)
|
||||||
for name, value in iteritems(self._raw_config):
|
check_unicode(self)
|
||||||
if isinstance(value, binary_type) and nonascii_re.search(value):
|
|
||||||
logger.warning(__('the config value %r is set to a string with non-ASCII '
|
|
||||||
'characters; this can lead to Unicode errors occurring. '
|
|
||||||
'Please use Unicode strings, e.g. %r.'), name, u'Content')
|
|
||||||
|
|
||||||
def convert_overrides(self, name, value):
|
def convert_overrides(self, name, value):
|
||||||
# type: (unicode, Any) -> Any
|
# type: (unicode, Any) -> Any
|
||||||
@ -434,6 +429,20 @@ def check_confval_types(app, config):
|
|||||||
default=type(default)))
|
default=type(default)))
|
||||||
|
|
||||||
|
|
||||||
|
def check_unicode(config):
|
||||||
|
# type: (Config) -> None
|
||||||
|
"""check all string values for non-ASCII characters in bytestrings,
|
||||||
|
since that can result in UnicodeErrors all over the place
|
||||||
|
"""
|
||||||
|
nonascii_re = re.compile(br'[\x80-\xff]')
|
||||||
|
|
||||||
|
for name, value in iteritems(config._raw_config):
|
||||||
|
if isinstance(value, binary_type) and nonascii_re.search(value):
|
||||||
|
logger.warning(__('the config value %r is set to a string with non-ASCII '
|
||||||
|
'characters; this can lead to Unicode errors occurring. '
|
||||||
|
'Please use Unicode strings, e.g. %r.'), name, u'Content')
|
||||||
|
|
||||||
|
|
||||||
def setup(app):
|
def setup(app):
|
||||||
# type: (Sphinx) -> Dict[unicode, Any]
|
# type: (Sphinx) -> Dict[unicode, Any]
|
||||||
app.connect('config-inited', convert_source_suffix)
|
app.connect('config-inited', convert_source_suffix)
|
||||||
|
Loading…
Reference in New Issue
Block a user