mirror of
https://github.com/netbox-community/netbox.git
synced 2025-07-15 19:52:52 -06:00
Enable tab completion in nbshell
This commit is contained in:
parent
6e38f7e532
commit
d1b1a45725
@ -70,10 +70,23 @@ class Command(BaseCommand):
|
|||||||
return namespace
|
return namespace
|
||||||
|
|
||||||
def handle(self, **options):
|
def handle(self, **options):
|
||||||
|
namespace = self.get_namespace()
|
||||||
|
|
||||||
# If Python code has been passed, execute it and exit.
|
# If Python code has been passed, execute it and exit.
|
||||||
if options['command']:
|
if options['command']:
|
||||||
exec(options['command'], self.get_namespace())
|
exec(options['command'], namespace)
|
||||||
return
|
return
|
||||||
|
|
||||||
shell = code.interact(banner=BANNER_TEXT, local=self.get_namespace())
|
# Try to enable tab-complete
|
||||||
|
try:
|
||||||
|
import readline
|
||||||
|
import rlcompleter
|
||||||
|
except ModuleNotFoundError:
|
||||||
|
pass
|
||||||
|
else:
|
||||||
|
readline.set_completer(rlcompleter.Completer(namespace).complete)
|
||||||
|
readline.parse_and_bind('tab: complete')
|
||||||
|
|
||||||
|
# Run interactive shell
|
||||||
|
shell = code.interact(banner=BANNER_TEXT, local=namespace)
|
||||||
return shell
|
return shell
|
||||||
|
Loading…
Reference in New Issue
Block a user