Skip to content

IDLE: add current directory to open_module #62264

Open

Description

@terryjreedy
BPO 18064
Nosy @terryjreedy, @serwy, @roseman
Dependencies
  • bpo-18055: Stop using imp in IDLE
  • 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 2013-05-25.21:36:20.538>
    labels = ['expert-IDLE', 'type-bug', '3.10']
    title = 'IDLE: add current directory to open_module'
    updated_at = <Date 2020-06-06.22:20:53.253>
    user = 'https://github.com/terryjreedy'

    bugs.python.org fields:

    activity = <Date 2020-06-06.22:20:53.253>
    actor = 'terry.reedy'
    assignee = 'terry.reedy'
    closed = False
    closed_date = None
    closer = None
    components = ['IDLE']
    creation = <Date 2013-05-25.21:36:20.538>
    creator = 'terry.reedy'
    dependencies = ['18055']
    files = []
    hgrepos = []
    issue_num = 18064
    keywords = []
    message_count = 3.0
    messages = ['190012', '190057', '296372']
    nosy_count = 3.0
    nosy_names = ['terry.reedy', 'roger.serwy', 'markroseman']
    pr_nums = []
    priority = 'normal'
    resolution = None
    stage = 'test needed'
    status = 'open'
    superseder = None
    type = 'behavior'
    url = 'https://bugs.python.org/issue18064'
    versions = ['Python 3.10']

    Activity

    1. terryjreedy commented on May 25, 2013

      @terryjreedy
      MemberAuthor

      The point of File / Open Module is to look at the source for a module that has been, could be, or will be imported. The problem is that open_module is executed in the idle process while imports are executed in the user process, with the current directory prepended to sys.module.
      The problem was already noted in the source, line 675.
      # XXX Ought to insert current file's directory in front of path

      The augmentation of sys.path and subsequent restoration of the original could be done in a context manager that might be useful elsewhere. For 3.3,3.4, I think the change should be done after the patch in bpo-18055, to not invalidate that patch. It would need to located in a slightly different place in 2.7, which will not be changed by that issue.

    2. terryjreedy commented on May 26, 2013

      @terryjreedy
      MemberAuthor

      Code also suggests that this function should be elsewhere, such as in iobinding. This should be in the same place as regular open, wherever that is, since it is an alternative open.

      Document should be upgraded a bit: "Load module opens Python-coded modules on sys.path in an editor window. The default name is the currently selected text, if any."

      Tests should be added with this issue. This is the smallest dialog, and the structure of the revised code (bpo-18055) gives a skeleton for a testcase: test_python_module (window open), test_builtin_module (Exception), test_bad_path (different Exception), and maybe even test_bad loader. We should look at tkinter tests for simulating name entry and click.

    3. terryjreedy commented on Jun 19, 2017

      @terryjreedy
      MemberAuthor

      For IDLE development, I would love to have idlelib and idlelib.idle_test on the open line. Perhaps this should be user configurable: Favorite directories for opening files.

    4. self-assigned this
      on Jun 19, 2017
    5. transferred this issue fromon Apr 10, 2022
    Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

    Metadata

    Metadata

    Assignees

    Labels

    topic-IDLEtype-bugAn unexpected behavior, bug, or error

    Projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions