Terry J. Reedy <tjre...@udel.edu> added the comment:

Lib/lib2to3 is a directory with __init__.py containing
   ### empty
Unlike most python-coded modules, there is no Doc/library/lib2to3.rst and hence 
no generated lib2to3.html.  Instead, there is a 2to3.rst and 2to3.html.  In the 
module index, module xyz is usually linked to .../library/xyz.html#module-xyz.  
But lib2to3 is somewhere linked instead to .../library/2to3.html#module-lib2to3.

As implied by the changed title, this issue is not at all unique to lib2to3.  
Just as lib2to3 implements the command line app 2to3, with 2to3.rst, idlelib 
implements IDLE with idle.rst.  Turtle demo is domumented within turtle.rst.  
Most tkinter submodule have no doc other than a mention within tkinter.rst.  
These could perhaps have a # module-tkinter.xyz target added.  (I am not 
familiar with exactly how.)   But there are also the numerous test modules that 
have no doc, and the generated doc for these is less useful than the code 
itself.  

Possible solutions framed in terms of lib2to3:

1. Manual redirection: add lib2to3.rst and hence lib2to3.html with the correct 
url, possibly with additional text.  But this is not the only module documented 
within a file with another name, and would not work for things like test files 
that should not be documented.

2. Auto redirection: persuade whoever manages docs.python.org to add
a redirection for lib2to3.  Fragile.

3. Hardcode the exception in the help output generation.  The latter is 
generated by pydoc.help.  The module doc location under MODULE REFERENCE is 
generated by pydoc.Doc.getdocloc.  This function already has a couple of 
(probably obsolete) tuples of exceptions, so adding more seems OK.

The oddity is that .html is added if and only if the doc location does not 
start with 'http'.  lines 414-417.I think that this is backwards. It only works 
because docs.python.org adds missing .html, even to 
"https://docs.python.org/3.8/library/2to3#module-lib2to3";, which is why the 
bug? has not been noticed.  Note that by default, docloc starts with 
'https://', so by default, .html is omitted.

Skip, David, and Martin, you have all modified this part of the code.  Do any 
of you disagree that there is a bug?

----------
components:  -2to3 (2.x to 3.x conversion tool)
nosy: +martin.panter, r.david.murray, skip.montanaro, terry.reedy
stage:  -> needs patch
title: Dead link in help(lib2to3) -> Dead link in 
help(lib2to3/idlelib/turtledemo/tkinter.sub/test_*/?)
type: performance -> behavior
versions: +Python 3.7, Python 3.9

_______________________________________
Python tracker <rep...@bugs.python.org>
<https://bugs.python.org/issue40051>
_______________________________________
_______________________________________________
Python-bugs-list mailing list
Unsubscribe: 
https://mail.python.org/mailman/options/python-bugs-list/archive%40mail-archive.com

Reply via email to