blob: 0e39d017eb2b328748762b181b5d8f433b7ed20f (
plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
|
#!/usr/bin/env python
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.PAD['apikey'], settings.PAD['host'])
interpreters = load_interpreters()
interpreters['best'](locals())
|