Exoshell uses PyO3 and Maturin to build a python binary wheel.
Using exoshell from python:
from exoshell import Console, Action
import colored
console = Console("exoshell", ("exoshell", "demo"))
console.start()
running = True
while running:
match console.update(1):
case Action.Writeline(line):
console.print(
colored.stylize(f">> {line}", colored.Fore.YELLOW, colored.Style.BOLD)
)
console.print("\n")
console.print(f"echo: {line!r}")
console.print("\n")
case Action.Write(c):
console.print(f"{c}")
case Action.Quit():
running = False
case None:
...
console.stop()