1

I have a python script that runs and accepts user input to make decisions. Based on the input I would like to give the user control of the python repl. Here is an example:

def func():
    # hand over control to the user
    breakpoint()

while True:
    print('What would you like to do?\nq: quit\ni: interact')
    i = input()
    if i=='q':
        break
    elif i=='i':
        func()
    else:
        print(f'invalid command: {i}')

Calling this code snippet with for example ipython3, the user is prompted for input. When the user presses i, func() is called, at which point I would like the user to be able to type python commands such as print(i).

My current best solution is to then set a breakpoint, the user may then need to type r to get to the right frame and then must then type interact. This is nearly acceptable, but I would like my user to not need to know that I'm using a debugger to give them interactive control, rather I would like them to be given an ipython prompt directly.

I looked at this post from 10 years ago: Jump into a Python Interactive Session mid-program? rz.'s comment looks interesting, but it looks like too much has changed for me to use his answer as is, plus there may be newer ways of doing things.

shortcipher3
  • 1,292
  • 9
  • 22

0 Answers0