Skip to content

Run modules with pdb #76387

Description

@mariocj89
mannequin
BPO 32206
Nosy @jaraco, @ncoghlan, @ericvw, @mariocj89
PRs
  • bpo-32206: Pdb can now run modules #4752
  • bpo-32206: Update pdb usage to include new module option #5111
  • bpo-32691: Use mod_spec.parent when running modules with pdb #5474
  • bpo-32691: Use mod_spec.parent when running modules with pdb #5474
  • 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 = None
    closed_at = <Date 2018-01-28.05:07:16.667>
    created_at = <Date 2017-12-03.13:36:40.972>
    labels = ['3.7', 'type-feature', 'library']
    title = 'Run modules with pdb'
    updated_at = <Date 2018-02-02.05:16:57.186>
    user = 'https://github.com/mariocj89'

    bugs.python.org fields:

    activity = <Date 2018-02-02.05:16:57.186>
    actor = 'mariocj89'
    assignee = 'none'
    closed = True
    closed_date = <Date 2018-01-28.05:07:16.667>
    closer = 'ncoghlan'
    components = ['Library (Lib)']
    creation = <Date 2017-12-03.13:36:40.972>
    creator = 'mariocj89'
    dependencies = []
    files = []
    hgrepos = []
    issue_num = 32206
    keywords = ['patch']
    message_count = 10.0
    messages = ['307513', '309493', '309540', '309541', '309548', '310780', '310882', '310883', '310916', '310918']
    nosy_count = 4.0
    nosy_names = ['jaraco', 'ncoghlan', 'ericvw', 'mariocj89']
    pr_nums = ['4752', '5111', '5474', '5474']
    priority = 'normal'
    resolution = 'fixed'
    stage = 'resolved'
    status = 'closed'
    superseder = None
    type = 'enhancement'
    url = 'https://bugs.python.org/issue32206'
    versions = ['Python 3.7']

    Activity

    1. mariocj89 commented on Dec 3, 2017

      mariocj89mannequin
      MannequinAuthor

      Since PEP-338 we can run python modules as a script via python -m module_name but there is no way to run pdb on those (AFAIK).

      The proposal is to add a new argument "-m" to the pdb module to allow users to run python -m pdb -m my_module_name

      This is especially useful when working on cli tools that use entrypoints in setup.py, as there is no other way to run them.

      I have a WIP here: mariocj89@f47d1b7

      Haven't sent the PR as I am still polishing some issues. If it sounds like a good idea I'll clean it up and open the PR.

    2. added
      stdlibStandard Library Python modules in the Lib/ directory
      on Dec 3, 2017
    3. ncoghlan commented on Jan 5, 2018

      @ncoghlan
      Contributor

      Linking back to the overall RFE for improved executable module support for standard library modules that run other scripts: https://bugs.python.org/issue9325

    4. ncoghlan commented on Jan 6, 2018

      @ncoghlan
      Contributor

      New changeset 9f1e5f1 by Nick Coghlan (Mario Corchero) in branch 'master':
      bpo-32206: Pdb can now run modules (GH-4752)
      9f1e5f1

    5. ncoghlan commented on Jan 6, 2018

      @ncoghlan
      Contributor

      Thanks for the patch!

    6. ncoghlan commented on Jan 6, 2018

      @ncoghlan
      Contributor

      Re-opening for the CLI help updates.

    7. jaraco commented on Jan 26, 2018

      @jaraco
      Member

      Thanks for creating this functionality. I'm so excited to use it that I've published a backport [https://pypi.org/project/backports.pdb], which seems to work for at least the basic use cases on Python 2.7+.

    8. jaraco commented on Jan 27, 2018

      @jaraco
      Member

      Adopting the backport, I believe I've found a defect. I filed the defect with the backport as backports.pdb 1.

      Essentially, the issue is that __package__ gets set to the module name instead of the package name, causing issues with from .mod imports.

      Feel free to take the relevant parts of the fix in the backport to adjust the implementation here, and definitely let me know if you think the adjustment I've made is somehow incorrect.

      Full disclosure, I have not tested the canonical implementation in Python 3.7, only the backport in Python 3.6 and 2.7.

      Please let me know if you would like me to file a separate issue.

    9. mariocj89 commented on Jan 27, 2018

      mariocj89mannequin
      MannequinAuthor

      Hi Jason, thanks a lot!

      I’ll have a look to the bug you reported on Monday. Out for holidays atm ^^

    10. ncoghlan commented on Jan 28, 2018

      @ncoghlan
      Contributor

      New changeset fcf8b4c by Nick Coghlan (Mario Corchero) in branch 'master':
      bpo-32206: Update pdb usage to include new module option (GH-5111)
      fcf8b4c

    11. ncoghlan commented on Jan 28, 2018

      @ncoghlan
      Contributor

      I checked the original PR, and I'm pretty sure the reference implementation is going to have the same bug.

      To keep the NEWS entries clear (since the buggy implementation already shipped in the alpha releases), I've created a new issue here: https://bugs.python.org/issue32691

    12. 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

    No one assigned

      Labels

      3.7 (EOL)end of lifestdlibStandard Library Python modules in the Lib/ directorytype-featureA feature request or enhancement

      Projects

      No projects

        Milestone

        No milestone

        Relationships

        None yet

        Development

        No branches or pull requests

        Issue actions