diff options
author | Alexander Sulfrian <alex@spline.inf.fu-berlin.de> | 2013-08-11 12:06:56 +0000 |
---|---|---|
committer | pad <pad@vm-pad-b.spline.inf.fu-berlin.de> | 2013-08-11 12:06:56 +0000 |
commit | 6eaa3d19b016d0fd5b9a3ba7feea9f3a95993dbb (patch) | |
tree | aed4441fec1048aabbe28336e7e8802df1eaf61d /test.py | |
parent | 00136ea418d29f31ead1da17a7e30d79bfee439b (diff) | |
download | padlite-teams-6eaa3d19b016d0fd5b9a3ba7feea9f3a95993dbb.tar.gz padlite-teams-6eaa3d19b016d0fd5b9a3ba7feea9f3a95993dbb.tar.bz2 padlite-teams-6eaa3d19b016d0fd5b9a3ba7feea9f3a95993dbb.zip |
test: use {i,b}python if available
Diffstat (limited to 'test.py')
-rwxr-xr-x | test.py | 38 |
1 files changed, 37 insertions, 1 deletions
@@ -4,5 +4,41 @@ import padlite import settings import code +def load_interpreters(): + """ Load a dict of available Python interpreters """ + interpreters = dict(python=lambda v: InteractiveConsole(v).interact()) + best = "python" + try: + import bpython.cli + interpreters["bpython"] = lambda v: bpython.cli.main(args=[], + locals_=v) + best = "bpython" + except ImportError: + pass + + try: + # whether ipython is actually better than bpython is + # up for debate, but this is the behavior that existed + # before --interpreter was added, so we call IPython + # better + import IPython + # pylint: disable=E1101 + if hasattr(IPython, "Shell"): + interpreters["ipython"] = lambda v: \ + IPython.Shell.IPShell(argv=[], user_ns=v).mainloop() + best = "ipython" + elif hasattr(IPython, "embed"): + interpreters["ipython"] = lambda v: IPython.embed(user_ns=v) + best = "ipython" + else: + print("Unknown IPython API version") + # pylint: enable=E1101 + except ImportError: + pass + + interpreters['best'] = interpreters[best] + return interpreters + p = padlite.PadLite(settings.APIKEY, settings.HOST) -code.interact(local=locals()) +interpreters = load_interpreters() +interpreters['best'](locals()) |