GV

GeezerVison

The World Wide Web, restored to 800 pixels of glory.

Home|About|Gaming cabinet|Archives|How it works|Starter sites

On this site

  • Sign in
  • ActionsCI/CD and automation
  • CodespacesCloud development environments
  • All Features
  • Documentation
  • Training
  • Certifications
  • Build with Copilot
  • Customize Copilot
  • Integrations
  • Trending repos
  • GitHub Sponsors
  • Developer articles
  • Enterprises

This view

  • Original page
  • New address

GeezerVison is showing github.com — Idle does not check user config for extention configuration · Issue #89520 · python/cpython

Idle does not check user config for extention configuration #89520

New issue
Copy link
New issue
Copy link
Closed
Closed
Idle does not check user config for extention configuration#89520
Copy link
Assignees
terryjreedy
Labels
topic-IDLEtype-featureA feature request or enhancementA feature request or enhancement

Description

CoolCat467
mannequin
opened on Oct 3, 2021
Issue body actions
BPO 45357
Nosy @terryjreedy, @taleinat, @CoolCat467
PRs
  • gh-89520: IDLE - Make extentions use user's keys, not all defaults #28713
  • Note: these values reflect the state of the issue at the time it was migrated and might not reflect the current state.

    Show more details

    GitHub fields:

    assignee = 'https://github.com/terryjreedy'
    closed_at = None
    created_at = <Date 2021-10-03.21:42:22.903>
    labels = ['expert-IDLE', 'type-feature', '3.11']
    title = 'Idle does not check user config for extention configuration'
    updated_at = <Date 2021-11-10.23:59:10.553>
    user = 'https://github.com/CoolCat467'

    bugs.python.org fields:

    activity = <Date 2021-11-10.23:59:10.553>
    actor = 'CoolCat467'
    assignee = 'terry.reedy'
    closed = False
    closed_date = None
    closer = None
    components = ['IDLE']
    creation = <Date 2021-10-03.21:42:22.903>
    creator = 'CoolCat467'
    dependencies = []
    files = []
    hgrepos = []
    issue_num = 45357
    keywords = ['patch']
    message_count = 5.0
    messages = ['403112', '403457', '403483', '403487', '406140']
    nosy_count = 3.0
    nosy_names = ['terry.reedy', 'taleinat', 'CoolCat467']
    pr_nums = ['28713']
    priority = 'normal'
    resolution = None
    stage = 'test needed'
    status = 'open'
    superseder = None
    type = 'enhancement'
    url = 'https://bugs.python.org/issue45357'
    versions = ['Python 3.11']

    Linked PRs

    • [3.14] gh-89520: Load extension settings and keybindings from user config (GH-28713) #152992
    • [3.13] gh-89520: Load extension settings and keybindings from user config (GH-28713) (GH-152992) #152993

    Activity

    Next
    1. CoolCat467 commented on Oct 3, 2021

      @CoolCat467
      CoolCat467mannequin
      on Oct 3, 2021
      MannequinAuthor
      More actions

      I was trying to write an extension for Idle, and was noticing extension keys defined in ~/.idlerc weren't being used, so I looked into it and found that in idlelib.config.idleConf, GetExtensionKeys, __GetRawExtensionKeys, and GetKeyBinding would never check for user keys, always assuming default keys have everything. This is not always true. In a system with multiple users, you would not want to modify the default config file for a custom extension, as that is used for everyone.

    2. CoolCat467
      added
      type-bugAn unexpected behavior, bug, or errorAn unexpected behavior, bug, or error
      on Oct 3, 2021
    3. CoolCat467
      assigned
      terryjreedy
      on Oct 3, 2021
    4. CoolCat467
      added
      topic-IDLE
      type-bugAn unexpected behavior, bug, or errorAn unexpected behavior, bug, or error
      on Oct 3, 2021
    5. CoolCat467
      assigned
      terryjreedy
      on Oct 3, 2021
    6. CoolCat467
      added
      topic-IDLE
      3.9 (EOL)end of lifeend of life
      on Oct 3, 2021
    7. terryjreedy commented on Oct 8, 2021

      @terryjreedy
      terryjreedy
      on Oct 8, 2021
      Member
      More actions

      I am puzzled by your report. As explained in the top of idlelib/confix-extensions.def, the options for four features are still defined there for compatibility reasons and user changes to those option *are* stored in ~/.idlerc/config-extensions.cfg and read on startup. At least on Windows with 3.9 and 3.11. I also tested changing options for test extension zzdummy and that works also. For instance, click enable, exit dialog, exit IDLE, reload, edit something, select Format, and the z options are listed. The default config is not changed. What tests did you run?

    8. CoolCat467 commented on Oct 8, 2021

      @CoolCat467
      CoolCat467mannequin
      on Oct 8, 2021
      MannequinAuthor
      More actions

      Yes, changing settings on ZzDummy works correctly, but this is because an entry for it exists in the default config file. The problem is when if you attempt to add a new extension through the user config file. When IDLE is looking for extensions to load, it only checks the default config file, not the user config file. So if I add a new extension entry to my ~/.idlerc/config-extensions.cfg file, "[lintcheck]\nenable = True", and have a module installed on my system called "lintcheck", with a class named "lintcheck". Because IDLE is only looking in the default config file for extensions to load, it never finds lintcheck and therefore it is never loaded. On the contrary, if it were in the system default config file, IDLE would find it and "lintcheck" would be loaded.

    9. terryjreedy commented on Oct 8, 2021

      @terryjreedy
      terryjreedy
      on Oct 8, 2021
      Member
      More actions

      The current configuration design is that user .idlerc config-x.cfg files contain changes from the idlelib config-x.def files. A proposal to change this is an enhancement request rather than a bugfix request. It will make the logic more complex, increase maintenance burden, and likely make changes to the configuration system harder.

      If Python is installed for one user, any changes to config-extensions.def only apply to that one user, just as with additions to site-packages. If Python is installed for all users, why shouldn't extensions be available to all, just as with additions to site-packages? Assuming that extensions are by default not enabled, users will have to explicitly enable them, just as they have to explicitly import added packages.

      On a system with non-admin users, such as in a classroom, I can imagine that the admin user(s) might not want non-admin users to be able to modify IDLE behavior. I am reluctant to open this can of worms and would not do so by myself.

    10. terryjreedy
      added
      3.11only security fixesonly security fixes
      and removed
      3.9 (EOL)end of lifeend of life
      type-bugAn unexpected behavior, bug, or errorAn unexpected behavior, bug, or error
      on Oct 8, 2021
    11. 18 remaining items

    12. gpshead
      added 4 commits that reference this issue on Apr 12, 2026

      pythongh-89520: IDLE - Wrap long lines in zzdummy test files

      54c16dd

      pythongh-89520: IDLE - Preserve public API parameter names in config.py

      64834a9

      pythongh-89520: IDLE - Preserve public API parameter names in config.py

      5fb7df7

      gh-89520: Load extension settings and keybindings from user config (G…

      208195d
    13. gpshead commented on Apr 12, 2026

      @gpshead
      gpshead
      on Apr 12, 2026
      Member
      More actions

      cleaned up and merged, thanks!

      Reacted by CoolCat467
    14. gpshead
      closed this as completedon Apr 12, 2026
    15. github-project-automation
      moved this from In Progress to Done in IDLE Issueson Apr 12, 2026
    16. ljfp
      added a commit that references this issue on Apr 25, 2026

      pythongh-89520: Load extension settings and keybindings from user con…

      113bc97
    17. terryjreedy
      added
      needs backport to 3.13only security fixesonly security fixes
      needs backport to 3.14bugs and security fixesbugs and security fixes
      and removed
      needs backport to 3.13only security fixesonly security fixes
      needs backport to 3.14bugs and security fixesbugs and security fixes
      on Jul 3, 2026
    18. terryjreedy
      added 2 commits that reference this issue on Jul 4, 2026

      [3.14] gh-89520: Load extension settings and keybindings from user co…

      8a8c8ee

      [3.13] gh-89520: Load extension settings and keybindings from user co…

      5fb5666
    19. zware
      added a commit that references this issue on Aug 11, 2026

      Revert test changes from "pythongh-89520: Load extension settings and…

      586fd6c
    Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

    Metadata

    Metadata

    Assignees

    • @terryjreedy
      terryjreedy

    Labels

    topic-IDLEtype-featureA feature request or enhancementA feature request or enhancement

    Projects

    • IDLE Issues
      Status
      Done
      Show more project fields

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions

    You are visitor 01402520 — GeezerVison does not store the pages you look up.
    Best viewed with Netscape Navigator 4.7 or Internet Explorer 6 at 800×600. No cookies required.