diff options
author | Takeshi KOMIYA <i.tkomiya@gmail.com> | 2019-03-30 19:18:16 +0900 |
---|---|---|
committer | GitHub <noreply@github.com> | 2019-03-30 19:18:16 +0900 |
commit | cbefc01b7384bcd1b99eb72d22b6317164e0b6dd (patch) | |
tree | 837b28e7e4133545a166eb3515df3649e260c7af | |
parent | 765a92b99bfb88dcc804fcbbc16c97d30777ff5e (diff) | |
parent | d279f58845b2a36926d94cd06c037edf1093fea4 (diff) | |
download | sphinx-git-cbefc01b7384bcd1b99eb72d22b6317164e0b6dd.tar.gz |
Merge pull request #6224 from tk0miya/deprecation
Show deprecation warnings
-rw-r--r-- | CHANGES | 4 | ||||
-rw-r--r-- | sphinx/application.py | 12 | ||||
-rw-r--r-- | sphinx/ext/viewcode.py | 1 | ||||
-rw-r--r-- | sphinx/util/osutil.py | 22 | ||||
-rw-r--r-- | tests/test_ext_inheritance_diagram.py | 14 |
5 files changed, 35 insertions, 18 deletions
@@ -17,6 +17,10 @@ Bugs fixed ---------- * LaTeX: some system labels are not translated +* deprecation warnings are not emitted + + - sphinx.application.CONFIG_FILENAME + - :confval:`viewcode_import` Testing -------- diff --git a/sphinx/application.py b/sphinx/application.py index 94b27b8e4..4303e9c46 100644 --- a/sphinx/application.py +++ b/sphinx/application.py @@ -24,9 +24,8 @@ from docutils.parsers.rst import Directive, roles import sphinx from sphinx import package_dir, locale from sphinx.config import Config -from sphinx.config import CONFIG_FILENAME # NOQA # for compatibility (RemovedInSphinx30) from sphinx.deprecation import ( - RemovedInSphinx30Warning, RemovedInSphinx40Warning + RemovedInSphinx30Warning, RemovedInSphinx40Warning, deprecated_alias ) from sphinx.environment import BuildEnvironment from sphinx.errors import ApplicationError, ConfigError, VersionRequirementError @@ -1247,3 +1246,12 @@ class TemplateBridge: specified context (a Python dictionary). """ raise NotImplementedError('must be implemented in subclasses') + + +from sphinx.config import CONFIG_FILENAME # NOQA + +deprecated_alias('sphinx.application', + { + 'CONFIG_FILENAME': CONFIG_FILENAME, + }, + RemovedInSphinx30Warning) diff --git a/sphinx/ext/viewcode.py b/sphinx/ext/viewcode.py index 2997dc216..ee6710495 100644 --- a/sphinx/ext/viewcode.py +++ b/sphinx/ext/viewcode.py @@ -251,6 +251,7 @@ def setup(app): app.add_config_value('viewcode_import', None, False) app.add_config_value('viewcode_enable_epub', False, False) app.add_config_value('viewcode_follow_imported_members', True, False) + app.connect('config-inited', migrate_viewcode_import) app.connect('doctree-read', doctree_read) app.connect('env-merge-info', env_merge_info) app.connect('html-collect-pages', collect_pages) diff --git a/sphinx/util/osutil.py b/sphinx/util/osutil.py index 6a070a27a..2b3fe51b0 100644 --- a/sphinx/util/osutil.py +++ b/sphinx/util/osutil.py @@ -21,6 +21,7 @@ from io import StringIO from os import path from sphinx.deprecation import RemovedInSphinx30Warning, RemovedInSphinx40Warning +from sphinx.testing.path import path as Path if False: # For type annotation @@ -190,15 +191,18 @@ fs_encoding = sys.getfilesystemencoding() or sys.getdefaultencoding() def abspath(pathdir): # type: (str) -> str - pathdir = path.abspath(pathdir) - if isinstance(pathdir, bytes): - try: - pathdir = pathdir.decode(fs_encoding) - except UnicodeDecodeError: - raise UnicodeDecodeError('multibyte filename not supported on ' - 'this filesystem encoding ' - '(%r)' % fs_encoding) - return pathdir + if isinstance(pathdir, Path): + return pathdir.abspath() + else: + pathdir = path.abspath(pathdir) + if isinstance(pathdir, bytes): + try: + pathdir = pathdir.decode(fs_encoding) + except UnicodeDecodeError: + raise UnicodeDecodeError('multibyte filename not supported on ' + 'this filesystem encoding ' + '(%r)' % fs_encoding) + return pathdir def getcwd(): diff --git a/tests/test_ext_inheritance_diagram.py b/tests/test_ext_inheritance_diagram.py index 03b5bb689..30ad625aa 100644 --- a/tests/test_ext_inheritance_diagram.py +++ b/tests/test_ext_inheritance_diagram.py @@ -90,7 +90,7 @@ def test_inheritance_diagram_latex_alias(app, status, warning): def test_import_classes(rootdir): - from sphinx.application import Sphinx, TemplateBridge + from sphinx.parsers import Parser, RSTParser from sphinx.util.i18n import CatalogInfo try: @@ -120,16 +120,16 @@ def test_import_classes(rootdir): assert classes == [] # all of classes in the module - classes = import_classes('sphinx.application', None) - assert set(classes) == {Sphinx, TemplateBridge} + classes = import_classes('sphinx.parsers', None) + assert set(classes) == {Parser, RSTParser} # specified class in the module - classes = import_classes('sphinx.application.Sphinx', None) - assert classes == [Sphinx] + classes = import_classes('sphinx.parsers.Parser', None) + assert classes == [Parser] # specified class in current module - classes = import_classes('Sphinx', 'sphinx.application') - assert classes == [Sphinx] + classes = import_classes('Parser', 'sphinx.parsers') + assert classes == [Parser] # relative module name to current module classes = import_classes('i18n.CatalogInfo', 'sphinx.util') |