[Python-modules-commits] [sphinx] 01/01: Import sphinx_1.4.9.orig.tar.gz

Dmitry Shachnev mitya57 at moszumanska.debian.org
Tue Nov 29 10:44:23 UTC 2016


This is an automated email from the git hooks/post-receive script.

mitya57 pushed a commit to branch upstream
in repository sphinx.

commit 183a2a71071b8ed33cb0afc7f6153c7804ebebb6
Author: Dmitry Shachnev <mitya57 at gmail.com>
Date:   Tue Nov 29 13:35:38 2016 +0300

    Import sphinx_1.4.9.orig.tar.gz
---
 CHANGES                                            |  19 +++
 EXAMPLES                                           |   2 +
 PKG-INFO                                           |   2 +-
 Sphinx.egg-info/PKG-INFO                           |   2 +-
 Sphinx.egg-info/SOURCES.txt                        |  11 ++
 doc/Makefile                                       |   4 +
 doc/_themes/sphinx13/static/sphinx13.css           |   4 +
 doc/faq.rst                                        |   2 +-
 doc/templating.rst                                 |   1 +
 sphinx/__init__.py                                 |   6 +-
 sphinx/addnodes.py                                 |   2 +
 sphinx/apidoc.py                                   |   1 +
 sphinx/application.py                              |   2 +-
 sphinx/builders/__init__.py                        |   1 +
 sphinx/builders/gettext.py                         |   1 +
 sphinx/builders/html.py                            |   1 +
 sphinx/builders/linkcheck.py                       |   1 +
 sphinx/cmdline.py                                  |   2 +-
 sphinx/directives/__init__.py                      |   1 +
 sphinx/directives/other.py                         |   5 +-
 sphinx/ext/autodoc.py                              |  14 +-
 sphinx/ext/imgmath.py                              |   5 +-
 sphinx/ext/inheritance_diagram.py                  | 105 ++++++++-------
 sphinx/ext/pngmath.py                              |   5 +-
 sphinx/locale/.DS_Store                            | Bin 0 -> 8196 bytes
 sphinx/locale/__init__.py                          |   1 +
 sphinx/locale/fr/LC_MESSAGES/sphinx.po             |   2 +-
 sphinx/locale/it/LC_MESSAGES/sphinx.po             |   2 +-
 sphinx/pycode/Grammar-py2-sphinx1.2.pickle         | Bin 18705 -> 18705 bytes
 ...hinx1.2.pickle => Grammar-py2-sphinx1.3.pickle} | Bin 18705 -> 18705 bytes
 sphinx/pycode/Grammar-py2-sphinx1.4.pickle         | Bin 18705 -> 18675 bytes
 ...hinx1.4.pickle => Grammar-py2-sphinx1.5.pickle} | Bin
 sphinx/pycode/Grammar-py3-sphinx1.4.pickle         | Bin 0 -> 19963 bytes
 sphinx/pycode/__init__.py                          |   2 +
 sphinx/quickstart.py                               |   2 +
 sphinx/search/__init__.py                          |   4 +-
 sphinx/search/jssplitter.py                        | 110 ++++++++++++++++
 sphinx/themes/basic/static/searchtools.js_t        |  10 +-
 sphinx/transforms.py                               |   2 +-
 sphinx/util/__init__.py                            |   1 +
 sphinx/util/console.py                             |   1 +
 sphinx/util/i18n.py                                |   1 +
 sphinx/util/nodes.py                               |   4 +
 sphinx/util/pycompat.py                            |   1 +
 sphinx/util/smartypants.py                         |   2 +-
 sphinx/writers/latex.py                            |  58 ++++-----
 .../example/__init__.py                            |   1 +
 .../test-ext-inheritance_diagram/example/sphinx.py |   5 +
 tests/roots/test-intl/figure.po                    |   7 +
 tests/roots/test-intl/figure.txt                   |  17 +++
 tests/roots/test-latex-title/conf.py               |   8 ++
 tests/roots/test-latex-title/index.rst             |  12 ++
 tests/test_autodoc.py                              |   7 +-
 tests/test_build_latex.py                          |  20 +++
 tests/test_ext_inheritance_diagram.py              |  49 ++++++-
 tests/test_intl.py                                 |  12 ++
 tests/typing_test_data.py                          |   9 +-
 utils/jssplitter_generator.py                      | 142 +++++++++++++++++++++
 utils/regression_test.js                           | 124 ++++++++++++++++++
 utils/reindent.py                                  |   1 +
 60 files changed, 708 insertions(+), 108 deletions(-)

diff --git a/CHANGES b/CHANGES
index a8552e8..d654971 100644
--- a/CHANGES
+++ b/CHANGES
@@ -1,3 +1,22 @@
+Release 1.4.9 (released Nov 23, 2016)
+=====================================
+
+Bugs fixed
+----------
+
+* #2936: Fix doc/Makefile that can't build man because doc/man exists
+* #3058: Using the same 'caption' attribute in multiple 'toctree' directives
+  results in warning / error
+* #3068: Allow the '=' character in the -D option of sphinx-build.py
+* #3074: ``add_source_parser()`` crashes in debug mode
+* #3135: ``sphinx.ext.autodoc`` crashes with plain Callable
+* #3150: Fix query word splitter in JavaScript. It behaves as same as Python's regular expression.
+* #3093: gettext build broken on substituted images.
+* #3093: gettext build broken on image node under ``note`` directive.
+* imgmath: crashes on showing error messages if image generation failed
+* #3117: LaTeX writer crashes if admonition is placed before first section title
+* #3164: Change search order of ``sphinx.ext.inheritance_diagram``
+
 Release 1.4.8 (released Oct 1, 2016)
 ====================================
 
diff --git a/EXAMPLES b/EXAMPLES
index e5d27f7..d677043 100644
--- a/EXAMPLES
+++ b/EXAMPLES
@@ -94,6 +94,7 @@ Documentation using a customized version of the classic theme
 * NumPy: http://docs.scipy.org/doc/numpy/reference/
 * OpenCV: http://docs.opencv.org/
 * Peach^3: http://peach3.nl/doc/latest/userdoc/
+* Pygame: http://www.pygame.org/docs/
 * Sage: http://www.sagemath.org/doc/
 * SciPy: http://docs.scipy.org/doc/scipy/reference/
 * simuPOP: http://simupop.sourceforge.net/manual_release/build/userGuide.html
@@ -134,6 +135,7 @@ Documentation using another builtin theme
 * jsFiddle: http://doc.jsfiddle.net/ (nature)
 * libLAS: http://www.liblas.org/ (nature)
 * Linguistica: http://linguistica-uchicago.github.io/lxa5/ (sphinx_rtd_theme)
+* MoinMoin: https://moin-20.readthedocs.io/en/latest/ (sphinx_rtd_theme)
 * MPipe: http://vmlaker.github.io/mpipe/ (sphinx13)
 * pip: https://pip.pypa.io/en/latest/ (sphinx_rtd_theme)
 * Pyramid web framework:
diff --git a/PKG-INFO b/PKG-INFO
index 73f9672..8f1faf1 100644
--- a/PKG-INFO
+++ b/PKG-INFO
@@ -1,6 +1,6 @@
 Metadata-Version: 1.1
 Name: Sphinx
-Version: 1.4.8
+Version: 1.4.9
 Summary: Python documentation generator
 Home-page: http://sphinx-doc.org/
 Author: Georg Brandl
diff --git a/Sphinx.egg-info/PKG-INFO b/Sphinx.egg-info/PKG-INFO
index 73f9672..8f1faf1 100644
--- a/Sphinx.egg-info/PKG-INFO
+++ b/Sphinx.egg-info/PKG-INFO
@@ -1,6 +1,6 @@
 Metadata-Version: 1.1
 Name: Sphinx
-Version: 1.4.8
+Version: 1.4.9
 Summary: Python documentation generator
 Home-page: http://sphinx-doc.org/
 Author: Georg Brandl
diff --git a/Sphinx.egg-info/SOURCES.txt b/Sphinx.egg-info/SOURCES.txt
index f4887a8..9089587 100644
--- a/Sphinx.egg-info/SOURCES.txt
+++ b/Sphinx.egg-info/SOURCES.txt
@@ -202,6 +202,7 @@ sphinx/ext/autosummary/templates/autosummary/module.rst
 sphinx/ext/napoleon/__init__.py
 sphinx/ext/napoleon/docstring.py
 sphinx/ext/napoleon/iterators.py
+sphinx/locale/.DS_Store
 sphinx/locale/__init__.py
 sphinx/locale/sphinx.pot
 sphinx/locale/.tx/config
@@ -332,9 +333,12 @@ sphinx/locale/zh_TW/LC_MESSAGES/sphinx.js
 sphinx/locale/zh_TW/LC_MESSAGES/sphinx.mo
 sphinx/locale/zh_TW/LC_MESSAGES/sphinx.po
 sphinx/pycode/Grammar-py2-sphinx1.2.pickle
+sphinx/pycode/Grammar-py2-sphinx1.3.pickle
 sphinx/pycode/Grammar-py2-sphinx1.4.pickle
+sphinx/pycode/Grammar-py2-sphinx1.5.pickle
 sphinx/pycode/Grammar-py2.pickle
 sphinx/pycode/Grammar-py2.txt
+sphinx/pycode/Grammar-py3-sphinx1.4.pickle
 sphinx/pycode/Grammar-py3.pickle
 sphinx/pycode/Grammar-py3.txt
 sphinx/pycode/__init__.py
@@ -357,6 +361,7 @@ sphinx/search/fr.py
 sphinx/search/hu.py
 sphinx/search/it.py
 sphinx/search/ja.py
+sphinx/search/jssplitter.py
 sphinx/search/nl.py
 sphinx/search/no.py
 sphinx/search/pt.py
@@ -734,6 +739,8 @@ tests/roots/test-ext-ifconfig/index.rst
 tests/roots/test-ext-inheritance_diagram/conf.py
 tests/roots/test-ext-inheritance_diagram/index.rst
 tests/roots/test-ext-inheritance_diagram/test.py
+tests/roots/test-ext-inheritance_diagram/example/__init__.py
+tests/roots/test-ext-inheritance_diagram/example/sphinx.py
 tests/roots/test-ext-math/conf.py
 tests/roots/test-ext-math/index.rst
 tests/roots/test-ext-math/math.rst
@@ -832,6 +839,8 @@ tests/roots/test-latex-babel/bar.rst
 tests/roots/test-latex-babel/conf.py
 tests/roots/test-latex-babel/foo.rst
 tests/roots/test-latex-babel/index.rst
+tests/roots/test-latex-title/conf.py
+tests/roots/test-latex-title/index.rst
 tests/roots/test-numbered-circular/conf.py
 tests/roots/test-numbered-circular/contents.rst
 tests/roots/test-numbered-circular/sub.rst
@@ -904,6 +913,8 @@ tests/roots/test-warnings/svgimg.svg
 tests/roots/test-warnings/undecodable.rst
 tests/roots/test-warnings/wrongenc.inc
 utils/check_sources.py
+utils/jssplitter_generator.py
 utils/pylintrc
+utils/regression_test.js
 utils/reindent.py
 utils/release-checklist
\ No newline at end of file
diff --git a/doc/Makefile b/doc/Makefile
index 5590964..dcd6718 100644
--- a/doc/Makefile
+++ b/doc/Makefile
@@ -1,3 +1,4 @@
+.PHONY: man
 # Makefile for Sphinx documentation
 #
 
@@ -12,6 +13,9 @@ BUILDDIR     = _build
 help:
 	@$(SPHINXBUILD) -M help "$(SOURCEDIR)" "$(BUILDDIR)" $(SPHINXOPTS) $(O)
 
+man:
+	@$(SPHINXBUILD) -M man "$(SOURCEDIR)" "$(BUILDDIR)" $(SPHINXOPTS) $(O)
+
 # Catch-all target: route all unknown targets to Sphinx using the new
 # "make mode" option.  $(O) is meant as a shortcut for $(SPHINXOPTS).
 %:
diff --git a/doc/_themes/sphinx13/static/sphinx13.css b/doc/_themes/sphinx13/static/sphinx13.css
index 8b3ebdf..1739ac3 100644
--- a/doc/_themes/sphinx13/static/sphinx13.css
+++ b/doc/_themes/sphinx13/static/sphinx13.css
@@ -384,6 +384,10 @@ div.warning ul, div.warning ol {
     padding: 0;
 }
 
+div.admonition div.highlight {
+    background: none;
+}
+
 .viewcode-back {
     font-family: 'Open Sans', 'Lucida Grande', 'Lucida Sans Unicode', 'Geneva',
                  'Verdana', sans-serif;
diff --git a/doc/faq.rst b/doc/faq.rst
index 04bd057..ac78b05 100644
--- a/doc/faq.rst
+++ b/doc/faq.rst
@@ -248,7 +248,7 @@ The following notes may be helpful if you want to create Texinfo files:
 
      info:Texinfo#makeinfo_options
 
-  which produces:
+  which produces::
 
      info:Texinfo#makeinfo_options
 
diff --git a/doc/templating.rst b/doc/templating.rst
index 5286e03..b9f9410 100644
--- a/doc/templating.rst
+++ b/doc/templating.rst
@@ -377,6 +377,7 @@ are in HTML form), these variables are also available:
 
    The name of the copied source file for the current document.  This is only
    nonempty if the :confval:`html_copy_source` value is ``True``.
+   This has empty value on creating automatically-generated files.
 
 .. data:: toc
 
diff --git a/sphinx/__init__.py b/sphinx/__init__.py
index 228565f..b05ec91 100644
--- a/sphinx/__init__.py
+++ b/sphinx/__init__.py
@@ -15,13 +15,13 @@
 import sys
 from os import path
 
-__version__  = '1.4.8'
-__released__ = '1.4.8'  # used when Sphinx builds its own docs
+__version__  = '1.4.9'
+__released__ = '1.4.9'  # used when Sphinx builds its own docs
 
 # version info for better programmatic use
 # possible values for 3rd element: 'alpha', 'beta', 'rc', 'final'
 # 'final' has 0 as the last element
-version_info = (1, 4, 8, 'final', 0)
+version_info = (1, 4, 9, 'final', 0)
 
 package_dir = path.abspath(path.dirname(__file__))
 
diff --git a/sphinx/addnodes.py b/sphinx/addnodes.py
index 284bc1c..ac07b37 100644
--- a/sphinx/addnodes.py
+++ b/sphinx/addnodes.py
@@ -39,6 +39,8 @@ class desc_signature(nodes.Part, nodes.Inline, nodes.TextElement):
 
 class desc_addname(nodes.Part, nodes.Inline, nodes.TextElement):
     """Node for additional name parts (module name, class name)."""
+
+
 # compatibility alias
 desc_classname = desc_addname
 
diff --git a/sphinx/apidoc.py b/sphinx/apidoc.py
index 58724fd..90d0e3c 100644
--- a/sphinx/apidoc.py
+++ b/sphinx/apidoc.py
@@ -384,6 +384,7 @@ Note: By default this script will not overwrite already created files.""")
     elif not opts.notoc:
         create_modules_toc_file(modules, opts)
 
+
 # So program can be started with "python -m sphinx.apidoc ..."
 if __name__ == "__main__":
     main()
diff --git a/sphinx/application.py b/sphinx/application.py
index e741e3c..9d99227 100644
--- a/sphinx/application.py
+++ b/sphinx/application.py
@@ -800,7 +800,7 @@ class Sphinx(object):
         languages[cls.lang] = cls
 
     def add_source_parser(self, suffix, parser):
-        self.debug('[app] adding search source_parser: %r, %r', (suffix, parser))
+        self.debug('[app] adding search source_parser: %r, %r', suffix, parser)
         if suffix in self._additional_source_parsers:
             self.warn('while setting up extension %s: source_parser for %r is '
                       'already registered, it will be overridden' %
diff --git a/sphinx/builders/__init__.py b/sphinx/builders/__init__.py
index 8863050..d0b6c2c 100644
--- a/sphinx/builders/__init__.py
+++ b/sphinx/builders/__init__.py
@@ -452,6 +452,7 @@ class Builder(object):
             optname = '%s_%s' % (default, option)
             return getattr(self.config, optname)
 
+
 BUILTIN_BUILDERS = {
     'dummy':      ('dummy', 'DummyBuilder'),
     'html':       ('html', 'StandaloneHTMLBuilder'),
diff --git a/sphinx/builders/gettext.py b/sphinx/builders/gettext.py
index a7fea86..9edbdf1 100644
--- a/sphinx/builders/gettext.py
+++ b/sphinx/builders/gettext.py
@@ -150,6 +150,7 @@ class LocalTimeZone(tzinfo):
     def dst(self, dt):
         return timedelta(0)
 
+
 ltz = LocalTimeZone()
 
 
diff --git a/sphinx/builders/html.py b/sphinx/builders/html.py
index d1f5792..f5d8cf5 100644
--- a/sphinx/builders/html.py
+++ b/sphinx/builders/html.py
@@ -1181,6 +1181,7 @@ class PickleHTMLBuilder(SerializingHTMLBuilder):
     globalcontext_filename = 'globalcontext.pickle'
     searchindex_filename = 'searchindex.pickle'
 
+
 # compatibility alias
 WebHTMLBuilder = PickleHTMLBuilder
 
diff --git a/sphinx/builders/linkcheck.py b/sphinx/builders/linkcheck.py
index 5ceb8d7..bb7967e 100644
--- a/sphinx/builders/linkcheck.py
+++ b/sphinx/builders/linkcheck.py
@@ -48,6 +48,7 @@ class RedirectHandler(HTTPRedirectHandler):
         req.redirect_code = code
         return new_req
 
+
 # create an opener that will simulate a browser user-agent
 opener = build_opener(RedirectHandler)
 opener.addheaders = [('User-agent', 'Mozilla/5.0 (X11; Linux x86_64; rv:25.0) '
diff --git a/sphinx/cmdline.py b/sphinx/cmdline.py
index baa797f..c4832f1 100644
--- a/sphinx/cmdline.py
+++ b/sphinx/cmdline.py
@@ -204,7 +204,7 @@ def main(argv):
     confoverrides = {}
     for val in opts.define:
         try:
-            key, val = val.split('=')
+            key, val = val.split('=', 1)
         except ValueError:
             print('Error: -D option argument must be in the form name=value.',
                   file=sys.stderr)
diff --git a/sphinx/directives/__init__.py b/sphinx/directives/__init__.py
index d99a9bc..52965c0 100644
--- a/sphinx/directives/__init__.py
+++ b/sphinx/directives/__init__.py
@@ -160,6 +160,7 @@ class ObjectDescription(Directive):
         self.after_content()
         return [self.indexnode, node]
 
+
 # backwards compatible old name
 DescDirective = ObjectDescription
 
diff --git a/sphinx/directives/other.py b/sphinx/directives/other.py
index bab2f9f..52d3e94 100644
--- a/sphinx/directives/other.py
+++ b/sphinx/directives/other.py
@@ -52,9 +52,6 @@ class TocTree(Directive):
         env = self.state.document.settings.env
         suffixes = env.config.source_suffix
         glob = 'glob' in self.options
-        caption = self.options.get('caption')
-        if caption:
-            self.options.setdefault('name', nodes.fully_normalize_name(caption))
 
         ret = []
         # (title, ref) pairs, where ref may be a document, or an external link,
@@ -113,7 +110,7 @@ class TocTree(Directive):
         # includefiles only entries that are documents
         subnode['includefiles'] = includefiles
         subnode['maxdepth'] = self.options.get('maxdepth', -1)
-        subnode['caption'] = caption
+        subnode['caption'] = self.options.get('caption')
         subnode['glob'] = glob
         subnode['hidden'] = 'hidden' in self.options
         subnode['includehidden'] = 'includehidden' in self.options
diff --git a/sphinx/ext/autodoc.py b/sphinx/ext/autodoc.py
index 967bead..405d24c 100644
--- a/sphinx/ext/autodoc.py
+++ b/sphinx/ext/autodoc.py
@@ -131,6 +131,7 @@ def members_set_option(arg):
         return ALL
     return set(x.strip() for x in arg.split(','))
 
+
 SUPPRESS = object()
 
 
@@ -263,6 +264,8 @@ def format_annotation(annotation):
     """
     if typing and isinstance(annotation, typing.TypeVar):
         return annotation.__name__
+    if annotation == Ellipsis:
+        return '...'
     if not isinstance(annotation, type):
         return repr(annotation)
 
@@ -281,7 +284,12 @@ def format_annotation(annotation):
             # arguments are in __parameters__.
             params = None
             if hasattr(annotation, '__args__'):
-                params = annotation.__args__
+                if annotation.__args__ is None or len(annotation.__args__) <= 2:
+                    params = annotation.__args__
+                else:  # typing.Callable
+                    args = ', '.join(format_annotation(a) for a in annotation.__args__[:-1])
+                    result = format_annotation(annotation.__args__[-1])
+                    return '%s[[%s], %s]' % (qualified_name, args, result)
             elif hasattr(annotation, '__parameters__'):
                 params = annotation.__parameters__
             if params is not None:
@@ -299,7 +307,9 @@ def format_annotation(annotation):
                 hasattr(annotation, '__args__') and \
                 hasattr(annotation, '__result__'):
             args = annotation.__args__
-            if args is Ellipsis:
+            if args is None:
+                return qualified_name
+            elif args is Ellipsis:
                 args_str = '...'
             else:
                 formatted_args = (format_annotation(a) for a in args)
diff --git a/sphinx/ext/imgmath.py b/sphinx/ext/imgmath.py
index f8e402b..9b75800 100644
--- a/sphinx/ext/imgmath.py
+++ b/sphinx/ext/imgmath.py
@@ -245,10 +245,11 @@ def html_visit_displaymath(self, node):
     try:
         fname, depth = render_math(self, latex)
     except MathExtError as exc:
-        sm = nodes.system_message(str(exc), type='WARNING', level=2,
+        msg = text_type(exc)
+        sm = nodes.system_message(msg, type='WARNING', level=2,
                                   backrefs=[], source=node['latex'])
         sm.walkabout(self)
-        self.builder.warn('inline latex %r: ' % node['latex'] + str(exc))
+        self.builder.warn('inline latex %r: ' % node['latex'] + msg)
         raise nodes.SkipNode
     self.body.append(self.starttag(node, 'div', CLASS='math'))
     self.body.append('<p>')
diff --git a/sphinx/ext/inheritance_diagram.py b/sphinx/ext/inheritance_diagram.py
index a06c4b1..eec56dc 100644
--- a/sphinx/ext/inheritance_diagram.py
+++ b/sphinx/ext/inheritance_diagram.py
@@ -58,9 +58,61 @@ from sphinx.util import force_decode
 from sphinx.util.compat import Directive
 
 
-class_sig_re = re.compile(r'''^([\w.]*\.)?    # module names
-                          (\w+)  \s* $        # class/final module name
-                          ''', re.VERBOSE)
+module_sig_re = re.compile(r'''^(?:([\w.]*)\.)?  # module names
+                           (\w+)  \s* $          # class/final module name
+                           ''', re.VERBOSE)
+
+
+def try_import(objname):
+    """Import a object or module using *name* and *currentmodule*.
+    *name* should be a relative name from *currentmodule* or
+    a fully-qualified name.
+
+    Returns imported object or module.  If failed, returns None value.
+    """
+    try:
+        __import__(objname)
+        return sys.modules.get(objname)
+    except ImportError:
+        modname, attrname = module_sig_re.match(objname).groups()
+        if modname is None:
+            return None
+        try:
+            __import__(modname)
+            return getattr(sys.modules.get(modname), attrname, None)
+        except ImportError:
+            return None
+
+
+def import_classes(name, currmodule):
+    """Import a class using its fully-qualified *name*."""
+    target = None
+
+    # import class or module using currmodule
+    if currmodule:
+        target = try_import(currmodule + '.' + name)
+
+    # import class or module without currmodule
+    if target is None:
+        target = try_import(name)
+
+    if target is None:
+        raise InheritanceException(
+            'Could not import class or module %r specified for '
+            'inheritance diagram' % name)
+
+    if inspect.isclass(target):
+        # If imported object is a class, just return it
+        return [target]
+    elif inspect.ismodule(target):
+        # If imported object is a module, return classes defined on it
+        classes = []
+        for cls in target.__dict__.values():
+            if inspect.isclass(cls) and cls.__module__ == target.__name__:
+                classes.append(cls)
+        return classes
+    raise InheritanceException('%r specified for inheritance diagram is '
+                               'not a class or module' % name)
 
 
 class InheritanceException(Exception):
@@ -88,56 +140,11 @@ class InheritanceGraph(object):
             raise InheritanceException('No classes found for '
                                        'inheritance diagram')
 
-    def _import_class_or_module(self, name, currmodule):
-        """Import a class using its fully-qualified *name*."""
-        try:
-            path, base = class_sig_re.match(name).groups()
-        except (AttributeError, ValueError):
-            raise InheritanceException('Invalid class or module %r specified '
-                                       'for inheritance diagram' % name)
-
-        fullname = (path or '') + base
-        path = (path and path.rstrip('.') or '')
-
-        # two possibilities: either it is a module, then import it
-        try:
-            __import__(fullname)
-            todoc = sys.modules[fullname]
-        except ImportError:
-            # else it is a class, then import the module
-            if not path:
-                if currmodule:
-                    # try the current module
-                    path = currmodule
-                else:
-                    raise InheritanceException(
-                        'Could not import class %r specified for '
-                        'inheritance diagram' % base)
-            try:
-                __import__(path)
-                todoc = getattr(sys.modules[path], base)
-            except (ImportError, AttributeError):
-                raise InheritanceException(
-                    'Could not import class or module %r specified for '
-                    'inheritance diagram' % (path + '.' + base))
-
-        # If a class, just return it
-        if inspect.isclass(todoc):
-            return [todoc]
-        elif inspect.ismodule(todoc):
-            classes = []
-            for cls in todoc.__dict__.values():
-                if inspect.isclass(cls) and cls.__module__ == todoc.__name__:
-                    classes.append(cls)
-            return classes
-        raise InheritanceException('%r specified for inheritance diagram is '
-                                   'not a class or module' % name)
-
     def _import_classes(self, class_names, currmodule):
         """Import a list of classes."""
         classes = []
         for name in class_names:
-            classes.extend(self._import_class_or_module(name, currmodule))
+            classes.extend(import_classes(name, currmodule))
         return classes
 
     def _class_info(self, classes, show_builtins, private_bases, parts):
diff --git a/sphinx/ext/pngmath.py b/sphinx/ext/pngmath.py
index d766055..655eb56 100644
--- a/sphinx/ext/pngmath.py
+++ b/sphinx/ext/pngmath.py
@@ -218,10 +218,11 @@ def html_visit_displaymath(self, node):
     try:
         fname, depth = render_math(self, latex)
     except MathExtError as exc:
-        sm = nodes.system_message(str(exc), type='WARNING', level=2,
+        msg = text_type(exc)
+        sm = nodes.system_message(msg, type='WARNING', level=2,
                                   backrefs=[], source=node['latex'])
         sm.walkabout(self)
-        self.builder.warn('inline latex %r: ' % node['latex'] + str(exc))
+        self.builder.warn('inline latex %r: ' % node['latex'] + msg)
         raise nodes.SkipNode
     self.body.append(self.starttag(node, 'div', CLASS='math'))
     self.body.append('<p>')
diff --git a/sphinx/locale/.DS_Store b/sphinx/locale/.DS_Store
new file mode 100644
index 0000000..10424fe
Binary files /dev/null and b/sphinx/locale/.DS_Store differ
diff --git a/sphinx/locale/__init__.py b/sphinx/locale/__init__.py
index d2d08c6..d6ce732 100644
--- a/sphinx/locale/__init__.py
+++ b/sphinx/locale/__init__.py
@@ -152,6 +152,7 @@ def lazy_gettext(string):
     #     return string
     return _TranslationProxy(mygettext, string)
 
+
 l_ = lazy_gettext
 
 
diff --git a/sphinx/locale/fr/LC_MESSAGES/sphinx.po b/sphinx/locale/fr/LC_MESSAGES/sphinx.po
index c476663..2778dff 100644
--- a/sphinx/locale/fr/LC_MESSAGES/sphinx.po
+++ b/sphinx/locale/fr/LC_MESSAGES/sphinx.po
@@ -112,7 +112,7 @@ msgstr "Auteur du module : "
 
 #: sphinx/directives/other.py:153
 msgid "Code author: "
-msgstr "Auteur du code :"
+msgstr "Auteur du code : "
 
 #: sphinx/directives/other.py:155
 msgid "Author: "
diff --git a/sphinx/locale/it/LC_MESSAGES/sphinx.po b/sphinx/locale/it/LC_MESSAGES/sphinx.po
index b37c441..51b0f6e 100644
--- a/sphinx/locale/it/LC_MESSAGES/sphinx.po
+++ b/sphinx/locale/it/LC_MESSAGES/sphinx.po
@@ -819,7 +819,7 @@ msgstr "Ricerca completata, trovata/e %s pagina/e corrispondenti."
 
 #: sphinx/themes/basic/static/searchtools.js_t:338
 msgid ", in "
-msgstr ", in"
+msgstr ", in "
 
 #: sphinx/themes/classic/static/sidebar.js_t:83
 msgid "Expand sidebar"
diff --git a/sphinx/pycode/Grammar-py2-sphinx1.2.pickle b/sphinx/pycode/Grammar-py2-sphinx1.2.pickle
index f4369e2..1c23de3 100644
Binary files a/sphinx/pycode/Grammar-py2-sphinx1.2.pickle and b/sphinx/pycode/Grammar-py2-sphinx1.2.pickle differ
diff --git a/sphinx/pycode/Grammar-py2-sphinx1.2.pickle b/sphinx/pycode/Grammar-py2-sphinx1.3.pickle
similarity index 94%
copy from sphinx/pycode/Grammar-py2-sphinx1.2.pickle
copy to sphinx/pycode/Grammar-py2-sphinx1.3.pickle
index f4369e2..d5c189f 100644
Binary files a/sphinx/pycode/Grammar-py2-sphinx1.2.pickle and b/sphinx/pycode/Grammar-py2-sphinx1.3.pickle differ
diff --git a/sphinx/pycode/Grammar-py2-sphinx1.4.pickle b/sphinx/pycode/Grammar-py2-sphinx1.4.pickle
index c0b8265..9950f86 100644
Binary files a/sphinx/pycode/Grammar-py2-sphinx1.4.pickle and b/sphinx/pycode/Grammar-py2-sphinx1.4.pickle differ
diff --git a/sphinx/pycode/Grammar-py2-sphinx1.4.pickle b/sphinx/pycode/Grammar-py2-sphinx1.5.pickle
similarity index 100%
copy from sphinx/pycode/Grammar-py2-sphinx1.4.pickle
copy to sphinx/pycode/Grammar-py2-sphinx1.5.pickle
diff --git a/sphinx/pycode/Grammar-py3-sphinx1.4.pickle b/sphinx/pycode/Grammar-py3-sphinx1.4.pickle
new file mode 100644
index 0000000..d31f09a
Binary files /dev/null and b/sphinx/pycode/Grammar-py3-sphinx1.4.pickle differ
diff --git a/sphinx/pycode/__init__.py b/sphinx/pycode/__init__.py
index 3da887d..7746e11 100644
--- a/sphinx/pycode/__init__.py
+++ b/sphinx/pycode/__init__.py
@@ -35,6 +35,8 @@ pydriver = driver.Driver(pygrammar, convert=nodes.convert)
 # an object with attributes corresponding to token and symbol names
 class sym:
     pass
+
+
 for k, v in iteritems(pygrammar.symbol2number):
     setattr(sym, k, v)
 for k, v in iteritems(token.tok_name):
diff --git a/sphinx/quickstart.py b/sphinx/quickstart.py
index 751f87b..108e593 100644
--- a/sphinx/quickstart.py
+++ b/sphinx/quickstart.py
@@ -1516,6 +1516,7 @@ def usage(argv, msg=None):
         print(msg, file=sys.stderr)
         print(file=sys.stderr)
 
+
 USAGE = """\
 Sphinx v%s
 Usage: %%prog [options] [projectdir]
@@ -1681,5 +1682,6 @@ def main(argv=sys.argv):
 
     generate(d)
 
+
 if __name__ == '__main__':
     sys.exit(main(sys.argv))
diff --git a/sphinx/search/__init__.py b/sphinx/search/__init__.py
index 1fedc53..7f8803f 100644
--- a/sphinx/search/__init__.py
+++ b/sphinx/search/__init__.py
@@ -17,7 +17,7 @@ from os import path
 
 from sphinx.util import jsdump, rpartition
 from sphinx.util.pycompat import htmlescape
-
+from sphinx.search.jssplitter import splitter_code
 
 class SearchLanguage(object):
     """
@@ -241,6 +241,7 @@ class IndexBuilder(object):
                 self.js_scorer_code = fp.read().decode('utf-8')
         else:
             self.js_scorer_code = u''
+        self.js_splitter_code = splitter_code
 
     def load(self, stream, format):
         """Reconstruct from frozen data."""
@@ -381,6 +382,7 @@ class IndexBuilder(object):
             search_language_stemming_code = self.lang.js_stemmer_code,
             search_language_stop_words = jsdump.dumps(sorted(self.lang.stopwords)),
             search_scorer_tool = self.js_scorer_code,
+            search_word_splitter_code = self.js_splitter_code,
         )
 
     def get_js_stemmer_rawcode(self):
diff --git a/sphinx/search/jssplitter.py b/sphinx/search/jssplitter.py
new file mode 100644
index 0000000..9dc0ca6
--- /dev/null
+++ b/sphinx/search/jssplitter.py
@@ -0,0 +1,110 @@
+# -*- coding: utf-8 -*-
+"""
+    sphinx.search.jssplitter
+    ~~~~~~~~~~~~~~~~~~~~~~~~
+
+    Provides Python compatible word splitter to JavaScript
+
+    DO NOT EDIT. This is generated by utils/jssplitter_generator.py
+
+    :copyright: Copyright 2007-2016 by the Sphinx team, see AUTHORS.
+    :license: BSD, see LICENSE for details.
+"""
+
+splitter_code = """
+
+var splitChars = (function() {
+    var result = {};
+    var singles = [96, 180, 187, 191, 215, 247, 749, 885, 903, 907, 909, 930, 1014, 1648,
+         1748, 1809, 2416, 2473, 2481, 2526, 2601, 2609, 2612, 2615, 2653, 2702,
+         2706, 2729, 2737, 2740, 2857, 2865, 2868, 2910, 2928, 2948, 2961, 2971,
+         2973, 3085, 3089, 3113, 3124, 3213, 3217, 3241, 3252, 3295, 3341, 3345,
+         3369, 3506, 3516, 3633, 3715, 3721, 3736, 3744, 3748, 3750, 3756, 3761,
+         3781, 3912, 4239, 4347, 4681, 4695, 4697, 4745, 4785, 4799, 4801, 4823,
+         4881, 5760, 5901, 5997, 6313, 7405, 8024, 8026, 8028, 8030, 8117, 8125,
+         8133, 8181, 8468, 8485, 8487, 8489, 8494, 8527, 11311, 11359, 11687, 11695,
+         11703, 11711, 11719, 11727, 11735, 12448, 12539, 43010, 43014, 43019, 43587,
+         43696, 43713, 64286, 64297, 64311, 64317, 64319, 64322, 64325, 65141];
+    var i, j, start, end;
+    for (i = 0; i < singles.length; i++) {
+        result[singles[i]] = true;
+    }
+    var ranges = [[0, 47], [58, 64], [91, 94], [123, 169], [171, 177], [182, 184], [706, 709],
+         [722, 735], [741, 747], [751, 879], [888, 889], [894, 901], [1154, 1161],
+         [1318, 1328], [1367, 1368], [1370, 1376], [1416, 1487], [1515, 1519], [1523, 1568],
+         [1611, 1631], [1642, 1645], [1750, 1764], [1767, 1773], [1789, 1790], [1792, 1807],
+         [1840, 1868], [1958, 1968], [1970, 1983], [2027, 2035], [2038, 2041], [2043, 2047],
+         [2070, 2073], [2075, 2083], [2085, 2087], [2089, 2307], [2362, 2364], [2366, 2383],
+         [2385, 2391], [2402, 2405], [2419, 2424], [2432, 2436], [2445, 2446], [2449, 2450],
+         [2483, 2485], [2490, 2492], [2494, 2509], [2511, 2523], [2530, 2533], [2546, 2547],
+         [2554, 2564], [2571, 2574], [2577, 2578], [2618, 2648], [2655, 2661], [2672, 2673],
+         [2677, 2692], [2746, 2748], [2750, 2767], [2769, 2783], [2786, 2789], [2800, 2820],
+         [2829, 2830], [2833, 2834], [2874, 2876], [2878, 2907], [2914, 2917], [2930, 2946],
+         [2955, 2957], [2966, 2968], [2976, 2978], [2981, 2983], [2987, 2989], [3002, 3023],
+         [3025, 3045], [3059, 3076], [3130, 3132], [3134, 3159], [3162, 3167], [3170, 3173],
+         [3184, 3191], [3199, 3204], [3258, 3260], [3262, 3293], [3298, 3301], [3312, 3332],
+         [3386, 3388], [3390, 3423], [3426, 3429], [3446, 3449], [3456, 3460], [3479, 3481],
+         [3518, 3519], [3527, 3584], [3636, 3647], [3655, 3663], [3674, 3712], [3717, 3718],
+         [3723, 3724], [3726, 3731], [3752, 3753], [3764, 3772], [3774, 3775], [3783, 3791],
+         [3802, 3803], [3806, 3839], [3841, 3871], [3892, 3903], [3949, 3975], [3980, 4095],
+         [4139, 4158], [4170, 4175], [4182, 4185], [4190, 4192], [4194, 4196], [4199, 4205],
+         [4209, 4212], [4226, 4237], [4250, 4255], [4294, 4303], [4349, 4351], [4686, 4687],
+         [4702, 4703], [4750, 4751], [4790, 4791], [4806, 4807], [4886, 4887], [4955, 4968],
+         [4989, 4991], [5008, 5023], [5109, 5120], [5741, 5742], [5787, 5791], [5867, 5869],
+         [5873, 5887], [5906, 5919], [5938, 5951], [5970, 5983], [6001, 6015], [6068, 6102],
+         [6104, 6107], [6109, 6111], [6122, 6127], [6138, 6159], [6170, 6175], [6264, 6271],
+         [6315, 6319], [6390, 6399], [6429, 6469], [6510, 6511], [6517, 6527], [6572, 6592],
+         [6600, 6607], [6619, 6655], [6679, 6687], [6741, 6783], [6794, 6799], [6810, 6822],
+         [6824, 6916], [6964, 6980], [6988, 6991], [7002, 7042], [7073, 7085], [7098, 7167],
+         [7204, 7231], [7242, 7244], [7294, 7400], [7410, 7423], [7616, 7679], [7958, 7959],
+         [7966, 7967], [8006, 8007], [8014, 8015], [8062, 8063], [8127, 8129], [8141, 8143],
+         [8148, 8149], [8156, 8159], [8173, 8177], [8189, 8303], [8306, 8307], [8314, 8318],
+         [8330, 8335], [8341, 8449], [8451, 8454], [8456, 8457], [8470, 8472], [8478, 8483],
+         [8506, 8507], [8512, 8516], [8522, 8525], [8586, 9311], [9372, 9449], [9472, 10101],
+         [10132, 11263], [11493, 11498], [11503, 11516], [11518, 11519], [11558, 11567],
+         [11622, 11630], [11632, 11647], [11671, 11679], [11743, 11822], [11824, 12292],
+         [12296, 12320], [12330, 12336], [12342, 12343], [12349, 12352], [12439, 12444],
+         [12544, 12548], [12590, 12592], [12687, 12689], [12694, 12703], [12728, 12783],
+         [12800, 12831], [12842, 12880], [12896, 12927], [12938, 12976], [12992, 13311],
+         [19894, 19967], [40908, 40959], [42125, 42191], [42238, 42239], [42509, 42511],
+         [42540, 42559], [42592, 42593], [42607, 42622], [42648, 42655], [42736, 42774],
+         [42784, 42785], [42889, 42890], [42893, 43002], [43043, 43055], [43062, 43071],
+         [43124, 43137], [43188, 43215], [43226, 43249], [43256, 43258], [43260, 43263],
+         [43302, 43311], [43335, 43359], [43389, 43395], [43443, 43470], [43482, 43519],
+         [43561, 43583], [43596, 43599], [43610, 43615], [43639, 43641], [43643, 43647],
+         [43698, 43700], [43703, 43704], [43710, 43711], [43715, 43738], [43742, 43967],
+         [44003, 44015], [44026, 44031], [55204, 55215], [55239, 55242], [55292, 55295],
+         [57344, 63743], [64046, 64047], [64110, 64111], [64218, 64255], [64263, 64274],
+         [64280, 64284], [64434, 64466], [64830, 64847], [64912, 64913], [64968, 65007],
+         [65020, 65135], [65277, 65295], [65306, 65312], [65339, 65344], [65371, 65381],
+         [65471, 65473], [65480, 65481], [65488, 65489], [65496, 65497]];
+    for (i = 0; i < ranges.length; i++) {
+        start = ranges[i][0];
+        end = ranges[i][1];
+        for (j = start; j <= end; j++) {
+            result[j] = true;
+        }
+    }
+    return result;
+})();
+
+function splitQuery(query) {
+    var result = [];
+    var start = -1;
+    for (var i = 0; i < query.length; i++) {
+        if (splitChars[query.charCodeAt(i)]) {
+            if (start !== -1) {
+                result.push(query.slice(start, i));
+                start = -1;
+            }
+        } else if (start === -1) {
+            start = i;
+        }
+    }
+    if (start !== -1) {
+        result.push(query.slice(start));
+    }
+    return result;
+}
+
+"""
diff --git a/sphinx/themes/basic/static/searchtools.js_t b/sphinx/themes/basic/static/searchtools.js_t
index 45ff1e4..6d1dbc1 100644
--- a/sphinx/themes/basic/static/searchtools.js_t
+++ b/sphinx/themes/basic/static/searchtools.js_t
@@ -47,6 +47,14 @@ var Scorer = {
 };
 {% endif %}
 
+{% if search_word_splitter_code %}
+{{ search_word_splitter_code }}
+{% else %}
+function splitQuery(query) {
+    return query.split(/\s+/);
+}
+{% endif %}
+
 /**
  * Search Module
  */
@@ -145,7 +153,7 @@ var Search = {
     var searchterms = [];
     var excluded = [];
     var hlterms = [];
-    var tmp = query.split(/\W+/);
+    var tmp = splitQuery(query);
     var objectterms = [];
     for (i = 0; i < tmp.length; i++) {
       if (tmp[i] !== "") {
diff --git a/sphinx/transforms.py b/sphinx/transforms.py
index cb4a577..3281541 100644
--- a/sphinx/transforms.py
+++ b/sphinx/transforms.py
@@ -166,7 +166,7 @@ class ApplySourceWorkaround(Transform):
 
     def apply(self):
         for n in self.document.traverse():
-            if isinstance(n, nodes.TextElement):
+            if isinstance(n, (nodes.TextElement, nodes.image)):
                 apply_source_workaround(n)
 
 
diff --git a/sphinx/util/__init__.py b/sphinx/util/__init__.py
index 0c823fb..9c5365a 100644
--- a/sphinx/util/__init__.py
+++ b/sphinx/util/__init__.py
@@ -212,6 +212,7 @@ def copy_extra_entry(source, targetdir, exclude_matchers=()):
         for file in files:
             copy_extra_file(os.path.join(root, file), reltargetdir)
 
+
 _DEBUG_HEADER = '''\
 # Sphinx version: %s
 # Python version: %s (%s)
diff --git a/sphinx/util/console.py b/sphinx/util/console.py
index 7974ebb..593634b 100644
--- a/sphinx/util/console.py
+++ b/sphinx/util/console.py
@@ -90,6 +90,7 @@ def create_color_func(name):
         return colorize(name, text)
     globals()[name] = inner
 
+
 _attrs = {
     'reset':     '39;49;00m',
     'bold':      '01m',
diff --git a/sphinx/util/i18n.py b/sphinx/util/i18n.py
index d0cb1f4..5b39682 100644
--- a/sphinx/util/i18n.py
+++ b/sphinx/util/i18n.py
@@ -125,6 +125,7 @@ def find_catalog_source_files(locale_dirs, locale, domains=None, gettext_compact
 
     return catalogs
 
+
 # date_format mappings: ustrftime() to bable.dates.format_datetime()
 date_format_mappings = {
     '%a': 'EEE',     # Weekday as locale’s abbreviated name.
diff --git a/sphinx/util/nodes.py b/sphinx/util/nodes.py
index 98f84f2..b3f7efa 100644
--- a/sphinx/util/nodes.py
+++ b/sphinx/util/nodes.py
@@ -46,6 +46,8 @@ def apply_source_workaround(node):
         node.source = definition_list_item.source
         node.line = definition_list_item.line - 1
         node.rawsource = node.astext()  # set 'classifier1' (or 'classifier2')
+    if isinstance(node, nodes.image) and node.source is None:
+        node.source, node.line = node.parent.source, node.parent.line
     if isinstance(node, nodes.term):
         # strip classifier from rawsource of term
         for classifier in reversed(node.parent.traverse(nodes.classifier)):
@@ -69,6 +71,7 @@ def apply_source_workaround(node):
             nodes.title,
             nodes.rubric,
             nodes.line,
+            nodes.image,
     ))):
         node.source = find_source_node(node)
         node.line = 0  # need fix docutils to get `node.line`
@@ -302,4 +305,5 @@ def _new_copy(self):
         newnode.line = self.line
     return newnode
 
+
 nodes.Element.copy = _new_copy
diff --git a/sphinx/util/pycompat.py b/sphinx/util/pycompat.py
index 44f51ea..4503c34 100644
--- a/sphinx/util/pycompat.py
+++ b/sphinx/util/pycompat.py
@@ -147,6 +147,7 @@ class _DeprecationWrapper(object):
             return self._deprecated[attr]
         return getattr(self._mod, attr)
 
+
 sys.modules[__name__] = _DeprecationWrapper(sys.modules[__name__], dict(
     zip_longest = zip_longest,
     product = product,
diff --git a/sphinx/util/smartypants.py b/sphinx/util/smartypants.py
index 2f4acbc..dee2f50 100644
--- a/sphinx/util/smartypants.py
+++ b/sphinx/util/smartypants.py
@@ -81,8 +81,8 @@ def sphinx_smarty_pants(t):
     t = t.replace('"', '"')
     return t
 
-# Constants for quote education.
 
+# Constants for quote education.
 punct_class = r"""[!"#\$\%'()*+,-.\/:;<=>?\@\[\\\]\^_`{|}~]"""
 end_of_word_class = r"""[\s.,;:!?)]"""
 close_class = r"""[^\ \t\r\n\[\{\(\-]"""
diff --git a/sphinx/writers/latex.py b/sphinx/writers/latex.py
index 08afb1b..1f83cd4 100644
--- a/sphinx/writers/latex.py
+++ b/sphinx/writers/latex.py
@@ -765,36 +765,36 @@ class LaTeXTranslator(nodes.NodeVisitor):
         if isinstance(parent, addnodes.seealso):
             # the environment already handles this
             raise nodes.SkipNode
... 609 lines suppressed ...

-- 
Alioth's /usr/local/bin/git-commit-notice on /srv/git.debian.org/git/python-modules/packages/sphinx.git



More information about the Python-modules-commits mailing list