¿Cómo guardar una sesión interactiva de Python?

| | | | | | | | | | |

Uso con frecuencia el intérprete de Python para trabajar con bases de datos, archivos, etc. Básicamente, mucho formateo manual de datos semiestructurados. No guardo ni limpio correctamente las partes útiles con tanta frecuencia como gustaría. ¿Hay alguna manera de guardar mi entrada en el shell (conexiones de base de datos, asignaciones de variables, pequeños bucles for y bits de lógica), algo de historia de la sesión interactiva? Si uso algo como script obtengo demasiado ruido de salida estándar. Realmente no necesito encurtir todos los objetos, aunque si hay una solución que lo haga, estaría bien. Idealmente, me quedaría con un script que se ejecutara como el que creé de forma interactiva, y borre los bits que no necesitaba. ¿Existe un paquete que haga esto o un enfoque de bricolaje?