You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
{{ message }}
Repository navigation
IDLE: Update offline doc locations for linux #60012
There's a possibility to add additional help sources in IDLE via
Options -> Configure IDLE... -> General -> Additional Help Sources
Use case:
If someone wants to download certain version of Python documentation in HTML and specify local "index.html" to be opened by custom menu item which appears the in Help menu.
Problem:
It's not possible to assign custom hot-key (Options -> Configure IDLE... -> Keys) for such menu items or reassign <F1> to that new menu-item, which actually makes sense when talking in context of the use case specified above.
This use case was taken from real life (stackoverflow site):
Actually, IDLE does have code to look for an on-disk copy of the html-formatted Python documentation set but the paths are platform-specific and, in the Linux case, are out-of-date for some distributions at least. For Linux platforms it looks for index.html in either /var/www/html/python or /usr/share/doc/python-docs-x.y/Doc/. On current Debian systems, for example, the Python doc package is installed in /usr/share/doc/pythonx.y-doc/html. If you install the doc packages and then create a link, IDLE should find the docs off-line when you select Python Docs from the Help manual. For example, for Python 3.3 you could do:
That said, the default locations should be updated. And perhaps a more useful customization would be to add a user configuration option for where to look for the on-disk copy of the docs rather than adding another hot key. (Also, older versions of Python are in security fix mode only.)
Here's a patch to update the doc paths to include current ones for Debian/Ubuntu and Fedora. The patch will have to be tweaked a bit for 3.2/2.7 to change sys.base_prefix to sys.prefix.
changed the title [-]Possibility of setting custom key bindings for "Additional help sources" menu items[/-][+]IDLE: Update offline doc locations[/+]on Jun 8, 2020
Summer 2012 is about when I started doing non-trivial IDLE patches. Sorry I never really focused on this before.
On Windows, the chm file has been replaced by an html copy. #95841 patches the current code to use the registry to find the latter; it is possible that it already has a 'file:' prefix. I will merge this PR first. #95844 is about extracting this code into a module-level function.
I suspect that the 'new' linux/macOS locations might now be obsolete again. However, the bpo patch will be a start.
To make the code more robust, it could look in help sources for 'Offline Python Docs' and start the location list with anything it finds.
I suspect that the 'new' linux/macOS locations might now be obsolete again.
In recent versions of Ubuntu (22.04, 20.04, 18.04), the location is /usr/share/doc/pythonX.Y/html/
I think the best option is to have a configurable variable for search paths, which can be set by package maintainers to ensure consistency with their python docs package.
System configuration variables are exposed in the sys module. I have no idea how things get there. But IDLE can at least look through known possibilities. The Ubuntu path is one that Ned proposed adding a decade ago, so paths may be fairly stable on each system even if diverse across them. And I can add an escape mechanism for user to add something.
@StanFromIreland I know nothing about such Linux paths. An updated version of Ned's bpo patch would be great. If you use any non-trivial amount of his code, end the message section with an acknowledgement line.
Co-authored-by: Ned Deily <[nad@python.org]>
Then request him to review.
@terryjreedy The current linux paths are mostly fine (/var/www/html/python/ -> rpm, /usr/share/doc/ -> dnf/apt) we do however have to check a few more directories as it can now be under python3 and not python-docs-3.
I will wait with this till the function is moved in #129971
Move done in main and ASAP for 3.13. PR can be done now, but 3.14 backport cannot be done until move PR #138484 is merged for 3.14.1 soon after 3.14.0.
Activity
RostyslavDzinko commentedon Aug 29, 2012
There's a possibility to add additional help sources in IDLE via
Use case:
Problem:
This use case was taken from real life (stackoverflow site):
http://stackoverflow.com/questions/12174255/linking-offline-documentation-to-idle-linux
ned-deily commentedon Aug 29, 2012
Actually, IDLE does have code to look for an on-disk copy of the html-formatted Python documentation set but the paths are platform-specific and, in the Linux case, are out-of-date for some distributions at least. For Linux platforms it looks for
index.htmlin either/var/www/html/pythonor/usr/share/doc/python-docs-x.y/Doc/. On current Debian systems, for example, the Python doc package is installed in/usr/share/doc/pythonx.y-doc/html. If you install the doc packages and then create a link, IDLE should find the docs off-line when you selectPython Docsfrom theHelpmanual. For example, for Python 3.3 you could do:That said, the default locations should be updated. And perhaps a more useful customization would be to add a user configuration option for where to look for the on-disk copy of the docs rather than adding another hot key. (Also, older versions of Python are in security fix mode only.)
ned-deily commentedon Aug 30, 2012
Here's a patch to update the doc paths to include current ones for Debian/Ubuntu and Fedora. The patch will have to be tweaked a bit for 3.2/2.7 to change sys.base_prefix to sys.prefix.
[-]Possibility of setting custom key bindings for "Additional help sources" menu items[/-][+]IDLE: Update offline doc locations[/+][-]IDLE: Update offline doc locations[/-][+]IDLE: Update offline doc locations for linux[/+]terryjreedy commentedon Aug 11, 2022
Summer 2012 is about when I started doing non-trivial IDLE patches. Sorry I never really focused on this before.
On Windows, the chm file has been replaced by an html copy. #95841 patches the current code to use the registry to find the latter; it is possible that it already has a 'file:' prefix. I will merge this PR first. #95844 is about extracting this code into a module-level function.
I suspect that the 'new' linux/macOS locations might now be obsolete again. However, the bpo patch will be a start.
To make the code more robust, it could look in help sources for 'Offline Python Docs' and start the location list with anything it finds.
simon816 commentedon Aug 15, 2022
In recent versions of Ubuntu (22.04, 20.04, 18.04), the location is
/usr/share/doc/pythonX.Y/html/I think the best option is to have a configurable variable for search paths, which can be set by package maintainers to ensure consistency with their python docs package.
terryjreedy commentedon Aug 16, 2022
System configuration variables are exposed in the sys module. I have no idea how things get there. But IDLE can at least look through known possibilities. The Ubuntu path is one that Ned proposed adding a decade ago, so paths may be fairly stable on each system even if diverse across them. And I can add an escape mechanism for user to add something.
StanFromIreland commentedon Feb 6, 2025
Did you do this? The generated html could be updated a bit. At the top a link to the online docs and add inline links etc
terryjreedy commentedon Feb 9, 2025
@StanFromIreland I know nothing about such Linux paths. An updated version of Ned's bpo patch would be great. If you use any non-trivial amount of his code, end the message section with an acknowledgement line.
Co-authored-by: Ned Deily <[nad@python.org]>
Then request him to review.
StanFromIreland commentedon Feb 11, 2025
@terryjreedy The current linux paths are mostly fine (/var/www/html/python/ -> rpm, /usr/share/doc/ -> dnf/apt) we do however have to check a few more directories as it can now be under python3 and not python-docs-3.
I will wait with this till the function is moved in #129971
terryjreedy commentedon Sep 3, 2025
Move done in main and ASAP for 3.13. PR can be done now, but 3.14 backport cannot be done until move PR #138484 is merged for 3.14.1 soon after 3.14.0.