"""Small, side-effect-free API for the in-process IPython runner.""" from .app import App, generate_good_names from .events import ( error_from_execution_result, event_from_execution_result, event_from_history_output, ) from .models import CallError, CallEvent, CallEventKind, CallResponse, CallResult from .shell import ( Shell, isolate_output_history, run_cell_and_collect, setup_shell, ) __all__ = [ "App", "CallEvent", "CallEventKind", "CallError", "CallResponse", "CallResult", "error_from_execution_result", "event_from_execution_result", "Shell", "event_from_history_output", "generate_good_names", "isolate_output_history", "run_cell_and_collect", "setup_shell", ] def main() -> None: """Run the package's minimal command-line entry point.""" print("Hello from ipython_demo!")