merge heads

This commit is contained in:
Nozomu Kaneko 2012-12-24 03:39:37 +09:00
commit ba50c00a0e
10 changed files with 96 additions and 13 deletions

View File

@ -220,6 +220,14 @@ class Locale(Transform):
if not msgstr or msgstr == msg: # as-of-yet untranslated
continue
# Avoid "Literal block expected; none found." warnings.
# If msgstr ends with '::' then it cause warning message at
# parser.parse() processing.
# literal-block-warning is only appear in avobe case.
if msgstr.strip().endswith('::'):
msgstr += '\n\n dummy literal'
# dummy literal node will discard by 'patch = patch[0]'
patch = new_document(source, settings)
parser.parse(msgstr, patch)
patch = patch[0]

View File

@ -17,6 +17,7 @@ from os import path
from docutils import nodes
from sphinx import addnodes
from sphinx.locale import _
# refcount annotation
@ -78,12 +79,12 @@ class Refcounts(dict):
continue
elif entry.result_type not in ("PyObject*", "PyVarObject*"):
continue
rc = 'Return value: '
if entry.result_refs is None:
rc += "Always NULL."
rc = _('Return value: Always NULL.')
elif entry.result_refs:
rc = _('Return value: New reference.')
else:
rc += (entry.result_refs and "New" or "Borrowed") + \
" reference."
rc = _('Return value: Borrowed reference.')
node.insert(0, refcount(rc, rc))

View File

@ -137,7 +137,7 @@
% Some custom font markup commands.
%
\newcommand{\strong}[1]{{\bf #1}}
\newcommand{\strong}[1]{{\textbf{#1}}}
\newcommand{\code}[1]{\texttt{#1}}
\newcommand{\bfcode}[1]{\code{\bfseries#1}}
\newcommand{\email}[1]{\textsf{#1}}
@ -333,7 +333,7 @@
\@ifundefined{ChTitleVar}{}{
\ChNameVar{\raggedleft\normalsize\py@HeaderFamily}
\ChNumVar{\raggedleft \bfseries\Large\py@HeaderFamily}
\ChTitleVar{\raggedleft \rm\Huge\py@HeaderFamily}
\ChTitleVar{\raggedleft \textrm{\Huge\py@HeaderFamily}}
% This creates chapter heads without the leading \vspace*{}:
\def\@makechapterhead#1{%
{\parindent \z@ \raggedright \normalfont

View File

@ -102,7 +102,7 @@ class BaseSearch(object):
res = self.context_re.search(text)
if res is None:
return ''
context_start = max(res.start() - length/2, 0)
context_start = max(res.start() - int(length/2), 0)
context_end = context_start + length
context = ''.join([context_start > 0 and '...' or '',
text[context_start:context_end],

View File

@ -5,4 +5,5 @@
footnote
external_links
refs_inconsistency
literalblock
seealso

View File

@ -0,0 +1,30 @@
# SOME DESCRIPTIVE TITLE.
# Copyright (C) 2012, foof
# This file is distributed under the same license as the foo package.
# FIRST AUTHOR <EMAIL@ADDRESS>, YEAR.
#
#, fuzzy
msgid ""
msgstr ""
"Project-Id-Version: sphinx 1.0\n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2012-11-22 08:28\n"
"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
"Language-Team: LANGUAGE <LL@li.org>\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
msgid "i18n with literal block"
msgstr "I18N WITH LITERAL BLOCK"
msgid "Correct literal block::"
msgstr "CORRECT LITERAL BLOCK::"
msgid "Missing literal block::"
msgstr "MISSING LITERAL BLOCK::"
msgid "That's all."
msgstr "THAT'S ALL."

View File

@ -0,0 +1,13 @@
:tocdepth: 2
i18n with literal block
=========================
Correct literal block::
this is
literal block
Missing literal block::
That's all.

View File

@ -35,6 +35,7 @@ ENV_WARNINGS = """\
%(root)s/autodoc_fodder.py:docstring of autodoc_fodder\\.MarkupError:2: \
WARNING: Explicit markup ends without a blank line; unexpected \
unindent\\.\\n?
%(root)s/i18n/literalblock.txt:13: WARNING: Literal block expected; none found.
%(root)s/images.txt:9: WARNING: image file not readable: foo.png
%(root)s/images.txt:23: WARNING: nonlocal image URI found: \
http://www.python.org/logo.png

View File

@ -186,6 +186,28 @@ def test_i18n_keep_external_links(app):
assert expect_line == matched_line
@with_app(buildername='text', warning=warnfile, cleanenv=True,
confoverrides={'language': 'xx', 'locale_dirs': ['.'],
'gettext_compact': False})
def test_i18n_literalblock_warning(app):
app.builddir.rmtree(True) #for warnings acceleration
app.builder.build(['i18n/literalblock'])
result = (app.outdir / 'i18n' / 'literalblock.txt').text(encoding='utf-8')
expect = (u"\nI18N WITH LITERAL BLOCK"
u"\n***********************\n"
u"\nCORRECT LITERAL BLOCK:\n"
u"\n this is"
u"\n literal block\n"
u"\nMISSING LITERAL BLOCK:\n"
u"\n<SYSTEM MESSAGE: ")
assert result.startswith(expect)
warnings = warnfile.getvalue().replace(os.sep, '/')
expected_warning_expr = u'.*/i18n/literalblock.txt:\\d+: ' \
u'WARNING: Literal block expected; none found.'
assert re.search(expected_warning_expr, warnings)
@with_app(buildername='text', cleanenv=True,
confoverrides={'language': 'xx', 'locale_dirs': ['.'],
'gettext_compact': False})

19
tox.ini
View File

@ -4,6 +4,8 @@ envlist=py25,py26,py27,py31,py32,py33,pypy,du09,du08,du07
[testenv]
deps=
nose
sqlalchemy
whoosh
setenv =
BUILD_TEST_PATH = {envdir}/tests
commands=
@ -12,31 +14,36 @@ commands=
[testenv:py25]
deps=
nose
simplejson==2.5.0
{[testenv]deps}
[testenv:py33]
deps=
nose
#svn+http://docutils.svn.sourceforge.net/svnroot/docutils/trunk/docutils
docutils>=0.10.0
{[testenv]deps}
[testenv:pypy]
deps=
nose
simplejson
{[testenv]deps}
[testenv:du07]
deps=
nose
docutils==0.7
{[testenv]deps}
[testenv:du08]
deps=
nose
docutils==0.8.1
{[testenv]deps}
[testenv:du09]
deps=
nose
docutils==0.9.1
{[testenv]deps}
[testenv:du10]
deps=
docutils==0.10.0
{[testenv]deps}