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 — limitations of new multiline code and closure support in pdb · Issue #126958 · python/cpython

limitations of new multiline code and closure support in pdb #126958

New issue
Copy link
New issue
Copy link
Open
Open
limitations of new multiline code and closure support in pdb#126958
Copy link
Assignees
gaogaotiantian
Labels
stdlibStandard Library Python modules in the Lib/ directoryStandard Library Python modules in the Lib/ directorytype-bugAn unexpected behavior, bug, or errorAn unexpected behavior, bug, or error

Description

@limwz01
limwz01
opened on Nov 18, 2024
Issue body actions

Bug report

Bug description:

The following code is the template to illustrate the problems:

#!/usr/bin/env python3.13
g0 = 0
def main():
    import pdb
    pdb.Pdb().set_trace()
if __name__ == "__main__":
    main()

The problems:

  • not re-using the same Cells for each local (this is really the biggest issue)
(Pdb) t = 1
(Pdb) f = lambda: t
(Pdb) t = 2
(Pdb) f()
1
  • not obtaining the last expression (a pdb test suggests otherwise, but it is actually wrong)
(Pdb) t=10; (lambda: t)()
<no output>

(it does return a value for global g; g=1; g. but I'm at a loss as to where that value comes from)

  • giving a weird result with shadowed variables (actually because it bails out):
(Pdb) g0 = 1
(Pdb) global g0; t=g0; t=(lambda: t)()
*** NameError: name 't' is not defined
  • not removing annotations (not allowed for nonlocal variables)
(Pdb) t:int = 1; (lambda: t)()
*** NameError: name 't' is not defined
  • using indentation to set up block scope
(Pdb) print((lambda:len("""
... """))())
7
  • not remembering globals (this is arguable):
(Pdb) global g; g=1
(Pdb) t=2
(Pdb) g=(lambda: t)()
(Pdb) global g; g
1

@gaogaotiantian

CPython versions tested on:

3.13

Operating systems tested on:

Linux

Reacted by Maciej Olko and Bill Tubbs

Activity

  1. limwz01
    added
    type-bugAn unexpected behavior, bug, or errorAn unexpected behavior, bug, or error
    on Nov 18, 2024
  2. limwz01 commented on Nov 18, 2024

    @limwz01
    limwz01
    on Nov 18, 2024
    Author
    More actions

    An approach similar to mine at https://github.com/limwz01/ipython_utils and published at https://pypi.org/project/ipython-utils/ might help here. My code is very complicated but that's also because I wanted to support dynamic reloading of the code after an exception.

  3. gaogaotiantian
    self-assigned this
    on Nov 18, 2024
  4. gaogaotiantian commented on Nov 18, 2024

    @gaogaotiantian
    gaogaotiantian
    on Nov 18, 2024
    Member
    More actions

    Thank you for the detailed report and the many test cases. Like I said in the other issue, we might not be able to fix all of them, but I'll see if there's something cheap and readable thing I can do to fix some of these!

  5. picnixz
    added
    stdlibStandard Library Python modules in the Lib/ directoryStandard Library Python modules in the Lib/ directory
    on Nov 21, 2024
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

  • @gaogaotiantian
    gaogaotiantian

Labels

stdlibStandard Library Python modules in the Lib/ directoryStandard Library Python modules in the Lib/ directorytype-bugAn unexpected behavior, bug, or errorAn unexpected behavior, bug, or error

Projects

No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions

    You are visitor 01402503 — 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.