pdb.pm(), however, sometimes you just need the full capability of IPython, including object introspection.
Well, there is an amazing solution. In the place in the code where you would do
, if you do insteadimport pdb;pdb.set_trace()
, your code will pause at that place and you will get a fully functional IPython shell. When you exit from that shell you code will continue as usual.from IPython import embed; embed()