Issue 32087: deprecated-removed directive generates overlapping msgids in .pot files

Created on 2017-11-20 14:24 by cocoatomo, last changed 2022-04-11 14:58 by admin. This issue is now closed.

Pull Requests
URL Status Linked Edit
PR 4473 merged cocoatomo, 2017-11-20 14:46
PR 5828 merged miss-islington, 2018-02-23 11:48
PR 5829 merged miss-islington, 2018-02-23 11:50
Messages (4)
msg306546 - (view) Author: Tomohiko Kinebuchi (cocoatomo) * Date: 2017-11-20 14:24
When gettext builder is invoked, deprecated-removed directive which is defined in Doc/tools/extensions/pyspecific.py generates overlapping msgids in .pot files.

For example, the following .rst source (taken from Doc/library/dmb.rst L354)::

   .. deprecated-removed:: 3.6 3.8
      Creating database in ``'r'`` and ``'w'`` modes.  Modifying database in
      ``'r'`` mode.

results to following .pot file entries::

   #: ../../library/dbm.rst:357
   msgid "Deprecated since version 3.6, will be removed in version 3.8: Creating database in 'r' and 'w' modes.  Modifying database in 'r' mode."
   msgstr ""

   #: ../../library/dbm.rst:357
   msgid "Creating database in ``'r'`` and ``'w'`` modes.  Modifying database in ``'r'`` mode."
   msgstr ""

using the command::

   sphinx-build -E -b gettext -D gettext_compact=0  -w warnings.txt -d build/.doctrees . locale/pot


The root cause is deprecated-removed directive constructs inappropriate sub-doctree for translation.
First, above .rst source is compiled into following tree structure::

   <versionmodified type="deprecated-removed" version="('3.6', '3.8')">
     <paragraph>
       <inline classes="versionmodified">
         Deprecated since version 3.6, will be removed in version 3.8:
       <inline translatable="True">
         Creating database in...

and gettext builder picks up paragraph node and the second inline node as translation targets.

Expected result is that two inline nodes are picked up as translation targets and the paragraph node is not, and expected .pot file entries are such as following::

   #: ../../library/dbm.rst:357
   msgid "Deprecated since version 3.6, will be removed in version 3.8:"
   msgstr ""

   #: ../../library/dbm.rst:357
   msgid "Creating database in ``'r'`` and ``'w'`` modes.  Modifying database in ``'r'`` mode."
   msgstr ""
msg312632 - (view) Author: Inada Naoki (methane) * (Python committer) Date: 2018-02-23 11:47
New changeset 0febc053736112d7bb9081742b3ac0ece7b973e7 by INADA Naoki (cocoatomo) in branch 'master':
bpo-32087: Doc: Make "deprecated-removed"  directive translatable (GH-4473)
https://github.com/python/cpython/commit/0febc053736112d7bb9081742b3ac0ece7b973e7
msg312633 - (view) Author: miss-islington (miss-islington) Date: 2018-02-23 12:08
New changeset c673a62d5f3c650130bf40f2161a2eac64419bce by Miss Islington (bot) in branch '3.7':
bpo-32087: Doc: Make "deprecated-removed"  directive translatable (GH-4473)
https://github.com/python/cpython/commit/c673a62d5f3c650130bf40f2161a2eac64419bce
msg312634 - (view) Author: miss-islington (miss-islington) Date: 2018-02-23 12:14
New changeset dd52d5c868fb1eb33bcf22e777317de0391bfaf6 by Miss Islington (bot) in branch '3.6':
bpo-32087: Doc: Make "deprecated-removed"  directive translatable (GH-4473)
https://github.com/python/cpython/commit/dd52d5c868fb1eb33bcf22e777317de0391bfaf6
History
Date User Action Args
2022-04-11 14:58:54adminsetgithub: 76268
2018-02-23 12:14:06miss-islingtonsetmessages: + msg312634
2018-02-23 12:13:17methanesetstatus: open -> closed
stage: patch review -> resolved
resolution: fixed
versions: + Python 3.8
2018-02-23 12:08:47miss-islingtonsetnosy: + miss-islington
messages: + msg312633
2018-02-23 11:50:27miss-islingtonsetpull_requests: + pull_request5607
2018-02-23 11:48:28miss-islingtonsetpull_requests: + pull_request5606
2018-02-23 11:47:21methanesetnosy: + methane
messages: + msg312632
2017-11-20 14:46:23cocoatomosetkeywords: + patch
stage: patch review
pull_requests: + pull_request4408
2017-11-20 14:24:40cocoatomocreate