Fruit-Jam-OS/builtin_apps/virtrepl/code.py
2025-06-18 16:26:13 -04:00

46 lines
1.2 KiB
Python

import os
from supervisor import reload
try:
from codeop import compile_command
except:
pass
print("REPL in (Circuit-)Python (type exit to close)")
__cmd = ""
while True:
if 'compile_command' in dir():
# 9.0.0 alpha 7 or later supports multiple line statements
__line = input(",,, " if __cmd else "=>> " )
if __cmd:
__cmd += ("\n" + (" " if __line != "" else "") + __line)
else:
if __line.lower() == 'exit':
break
__cmd = __line
try:
if compile_command(__cmd):
exec(compile_command(__cmd))
__cmd = ""
except Exception as __err:
print("*ERROR* Exception:",str(__err))
__cmd = ""
else:
# Pre 9.0.0 alpha 7 code or Micropython (single line statments only)
__line = input("=>> ")
if __line.lower() == 'exit':
break
__result = None
try:
exec('__result='+__line)
except:
try:
exec(__line)
except Exception as err:
print("*ERROR* Exception:",str(err))
if __result != None and __line.find('=') == -1:
print(__result)
reload()