Skip to content

New REPL does not include globals from executed module when used with -i #120678

Closed
@AlexWaygood

Description

@AlexWaygood

Bug report

Bug description:

If I have a module called foo.py with the following contents in the root of my CPython local clone:

class Foo: pass

Then running PYTHON_BASIC_REPL=1 ./python.exe -i foo.py, I get the following behaviour: foo.py is executed, and the Foo class is available in the globals of the REPL:

~/dev/cpython (main)⚡ % PYTHON_BASIC_REPL=1 ./python.exe -i foo.py 
>>> Foo
<class '__main__.Foo'>

But with the new REPL, the Foo class isn't available!

~/dev/cpython (main)⚡ % ./python.exe -i foo.py 
>>> Foo
Traceback (most recent call last):
  File "<python-input-0>", line 1, in <module>
    Foo
NameError: name 'Foo' is not defined
>>> 

CPython versions tested on:

CPython main branch

Operating systems tested on:

macOS

Linked PRs

Metadata

Metadata

Assignees

Labels

3.13bugs and security fixes3.14new features, bugs and security fixestopic-replRelated to the interactive shelltype-bugAn unexpected behavior, bug, or error

Projects

No projects

Milestone

No milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions