Raw REPL mode is generally used as a command channel where all stdio
traffic is related directly to the raw commands and responses sent.
For this to work in aiorepl we need to ensure background tasks don't sent/
receive anything on stdio else the command channel will be corrupted.
The simplest way to achieve this is to make the raw commands blocking and
atomic rather than asyncio, assuming the user wont leave the device in raw
mode for too long at any one time.
Signed-off-by: Andrew Leech <andrew.leech@planetinnovation.com.au>
This provides an async REPL with the following features:
- Run interactive REPL in the background.
- Execute statements using await.
- Simple history.
Signed-off-by: Jim Mussared <jim.mussared@gmail.com>