[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