and here's how you could run an applet with the new (not yet released) API entirely outside of the glasgow framework: ``` import logging import argparse import asyncio from glasgow.hardware.assembly import HardwareAssembly from glasgow.applet import GlasgowAppletArguments from glasgow.applet.interface.uart import UARTApplet logger = logging.getLogger() parser = argparse.ArgumentParser() access = GlasgowAppletArguments(applet_name="uart") UARTApplet.add_build_arguments(parser, access) UARTApplet.add_setup_arguments(parser, access) UARTApplet.add_interact_arguments(parser) args = parser.parse_args() async def main(): assembly = HardwareAssembly() applet = UARTApplet(assembly) with assembly.add_applet(applet, logger=applet.logger): applet.build(args) async with assembly: await applet.setup(args) await applet.interact(args) logging.basicConfig(level=logging.INFO) asyncio.run(main()) ```