merge with stable

This commit is contained in:
Georg Brandl 2014-01-10 09:18:41 +01:00
commit c1450ff160
11 changed files with 120 additions and 7 deletions

20
CHANGES
View File

@ -1,6 +1,20 @@
Release 1.3 (in development)
============================
Bugs fixed
----------
* #1335: Fix autosummary template overloading with exclamation prefix like
``{% extends "!autosummary/class.rst" %}`` cause infinite recursive function
call. This caused by PR#181.
* #1337: Fix autodoc with ``autoclass_content="both"`` uses useless
``object.__init__`` docstring when class does not have ``__init__``.
This caused by a change for #1138.
* #1340: Can't search alphabetical words on the HTML quick search generated
with language='ja'.
Release 1.2 (released Dec 10, 2013)
===================================
@ -22,8 +36,10 @@ Bugs fixed
* Restore ``versionmodified`` CSS class for versionadded/changed and deprecated
directives.
* Fix: `html_theme_path=['.']` is a trigger of rebuild all documents always
(This change keeps the current "theme changes cause a rebuild" feature).
* PR#181: Fix `html_theme_path=['.']` is a trigger of rebuild all documents
always (This change keeps the current "theme changes cause a rebuild"
feature).
* #1296: Fix invalid charset in HTML help generated HTML files for default
locale.

View File

@ -1084,7 +1084,7 @@ class ClassDocumenter(ModuleLevelDocumenter):
initdocstring = self.get_attr(
self.get_attr(self.object, '__init__', None), '__doc__')
# for new-style classes, no __init__ means default __init__
if initdocstring == object.__init__.__doc__:
if initdocstring.strip() == object.__init__.__doc__.strip():
initdocstring = None
if initdocstring:
if content == 'init':

View File

@ -95,9 +95,11 @@ class BuiltinTemplateLoader(TemplateBridge, BaseLoader):
# then the theme parent paths
loaderchain = pathchain + theme.themepath
elif dirs:
pathchain = loaderchain = list(dirs)
pathchain = list(dirs)
loaderchain = list(dirs)
else:
pathchain = loaderchain = []
pathchain = []
loaderchain = []
# prepend explicit template paths
self.templatepathlen = len(builder.config.templates_path)

View File

@ -236,7 +236,7 @@ class TinySegmenter(object):
score += self.ts_(self.TQ4__, p3 + c2 + c3 + c4)
p = u'O'
if score > 0:
result.append(word)
result.append(word.strip())
word = u''
p = u'B'
p1 = p2
@ -244,7 +244,7 @@ class TinySegmenter(object):
p3 = p
word += seg[i]
result.append(word)
result.append(word.strip())
return result

View File

@ -0,0 +1,8 @@
{% extends "!autosummary/class.rst" %}
{% block methods %}
.. note:: autosummary/class.rst method block overloading
{{ super() }}
{% endblock %}

View File

@ -0,0 +1,6 @@
{% extends "!layout.html" %}
{% block extrahead %}
<!-- layout overloading -->
{{ super() }}
{% endblock %}

View File

@ -0,0 +1,13 @@
Autosummary templating test
===========================
.. autosummary::
:toctree: generated
sphinx.application.Sphinx
.. currentmodule:: sphinx.application
.. autoclass:: TemplateBridge
.. automethod:: render

View File

@ -0,0 +1,11 @@
# -*- coding: utf-8 -*-
project = 'Sphinx templating <Tests>'
source_suffix = '.txt'
keep_warnings = True
templates_path = ['_templates']
release = version = '2013.120'
extensions = ['sphinx.ext.autosummary']
autosummary_generate = ['autosummary_templating']

View File

@ -0,0 +1,7 @@
Welcome to Sphinx Tests's documentation!
========================================
.. toctree::
autosummary_templating

View File

@ -334,6 +334,20 @@ def test_get_doc():
directive.env.config.autoclass_content = 'both'
assert getdocl('class', E) == ['Class docstring', '', 'Init docstring']
# class does not have __init__ method
class F(object):
"""Class docstring"""
# docstring in the __init__ method of base class will be discard
for f in (False, True):
directive.env.config.autodoc_docstring_signature = f
directive.env.config.autoclass_content = 'class'
assert getdocl('class', F) == ['Class docstring']
directive.env.config.autoclass_content = 'init'
assert getdocl('class', F) == ['Class docstring']
directive.env.config.autoclass_content = 'both'
assert getdocl('class', F) == ['Class docstring']
@with_setup(setup_test)
def test_docstring_processing():

36
tests/test_templating.py Normal file
View File

@ -0,0 +1,36 @@
# -*- coding: utf-8 -*-
"""
test_templating
~~~~~~~~~~~~~~~~
Test templating.
:copyright: Copyright 2007-2013 by the Sphinx team, see AUTHORS.
:license: BSD, see LICENSE for details.
"""
from util import test_roots, with_app
def teardown_module():
(test_roots / 'test-templating' / '_build').rmtree(True),
@with_app(buildername='html', srcdir=(test_roots / 'test-templating'))
def test_layout_overloading(app):
app.builder.build_all()
result = (app.outdir / 'contents.html').text(encoding='utf-8')
assert '<!-- layout overloading -->' in result
@with_app(buildername='html', srcdir=(test_roots / 'test-templating'))
def test_autosummary_class_template_overloading(app):
app.builder.build_all()
result = (app.outdir / 'generated' / 'sphinx.application.Sphinx.html').text(
encoding='utf-8')
assert 'autosummary/class.rst method block overloading' in result