summaryrefslogtreecommitdiff
path: root/sphinx/util/pycompat.py
diff options
context:
space:
mode:
authorJon Dufresne <jon.dufresne@gmail.com>2018-11-21 19:15:27 -0800
committerJon Dufresne <jon.dufresne@gmail.com>2018-11-22 19:05:14 -0800
commitd99e2cae1981940437f073dc07f1420efa2c0bea (patch)
treee4c572d660e30b2351817ea2c52a4a8a7d134520 /sphinx/util/pycompat.py
parent318cfadfe0a3aa242ad250f6e3a2af8f8791cb5b (diff)
downloadsphinx-git-d99e2cae1981940437f073dc07f1420efa2c0bea.tar.gz
Deprecate evaluating Python 2 syntax in configuration files
Diffstat (limited to 'sphinx/util/pycompat.py')
-rw-r--r--sphinx/util/pycompat.py23
1 files changed, 16 insertions, 7 deletions
diff --git a/sphinx/util/pycompat.py b/sphinx/util/pycompat.py
index 7c2b0dad3..1107427b6 100644
--- a/sphinx/util/pycompat.py
+++ b/sphinx/util/pycompat.py
@@ -16,11 +16,17 @@ from textwrap import indent # type: ignore # NOQA
from six import text_type
+from sphinx.locale import __
+from sphinx.util import logging
+
if False:
# For type annotation
from typing import Any, Callable, Generator # NOQA
+logger = logging.getLogger(__name__)
+
+
NoneType = type(None)
# ------------------------------------------------------------------------------
@@ -79,11 +85,14 @@ def execfile_(filepath, _globals, open=open):
try:
code = compile(source, filepath_enc, 'exec')
except SyntaxError:
- if convert_with_2to3:
- # maybe the file uses 2.x syntax; try to refactor to
- # 3.x syntax using 2to3
- source = convert_with_2to3(filepath)
- code = compile(source, filepath_enc, 'exec')
- else:
- raise
+ # maybe the file uses 2.x syntax; try to refactor to
+ # 3.x syntax using 2to3
+ source = convert_with_2to3(filepath)
+ code = compile(source, filepath_enc, 'exec')
+ # TODO: When support for evaluating Python 2 syntax is removed,
+ # deprecate convert_with_2to3().
+ logger.warning(__('Support for evaluating Python 2 syntax is deprecated '
+ 'and will be removed in Sphinx 4.0. '
+ 'Convert %s to Python 3 syntax.'),
+ filepath)
exec(code, _globals)