Loading django/core/management/commands/shell.py +15 −5 Original line number Diff line number Diff line Loading @@ -2,13 +2,19 @@ import os from django.core.management.base import NoArgsCommand from optparse import make_option class Command(NoArgsCommand): shells = ['ipython', 'bpython'] option_list = NoArgsCommand.option_list + ( make_option('--plain', action='store_true', dest='plain', help='Tells Django to use plain Python, not IPython or bpython.'), make_option('-i', '--interface', action='store', type='choice', choices=shells, dest='interface', help='Specify an interactive interpreter interface. Available options: "ipython" and "bpython"'), ) help = "Runs a Python interactive interpreter. Tries to use IPython or bpython, if one of them is available." shells = ['ipython', 'bpython'] requires_model_validation = False def ipython(self): Loading @@ -31,8 +37,10 @@ class Command(NoArgsCommand): import bpython bpython.embed() def run_shell(self): for shell in self.shells: def run_shell(self, shell=None): available_shells = [shell] if shell else self.shells for shell in available_shells: try: return getattr(self, shell)() except ImportError: Loading @@ -46,12 +54,14 @@ class Command(NoArgsCommand): get_models() use_plain = options.get('plain', False) interface = options.get('interface', None) try: if use_plain: # Don't bother loading IPython, because the user wants plain Python. raise ImportError self.run_shell() self.run_shell(shell=interface) except ImportError: import code # Set up a dictionary to serve as the environment for the shell, so Loading docs/ref/django-admin.txt +18 −0 Original line number Diff line number Diff line Loading @@ -743,6 +743,24 @@ use the ``--plain`` option, like so:: django-admin.py shell --plain .. versionchanged:: 1.5 If you would like to specify either IPython or bpython as your interpreter if you have both installed you can specify an alternative interpreter interface with the ``-i`` or ``--interface`` options like so:: IPython:: django-admin.py shell -i ipython django-admin.py shell --interface ipython bpython:: django-admin.py shell -i bpython django-admin.py shell --interface bpython .. _IPython: http://ipython.scipy.org/ .. _bpython: http://bpython-interpreter.org/ Loading Loading
django/core/management/commands/shell.py +15 −5 Original line number Diff line number Diff line Loading @@ -2,13 +2,19 @@ import os from django.core.management.base import NoArgsCommand from optparse import make_option class Command(NoArgsCommand): shells = ['ipython', 'bpython'] option_list = NoArgsCommand.option_list + ( make_option('--plain', action='store_true', dest='plain', help='Tells Django to use plain Python, not IPython or bpython.'), make_option('-i', '--interface', action='store', type='choice', choices=shells, dest='interface', help='Specify an interactive interpreter interface. Available options: "ipython" and "bpython"'), ) help = "Runs a Python interactive interpreter. Tries to use IPython or bpython, if one of them is available." shells = ['ipython', 'bpython'] requires_model_validation = False def ipython(self): Loading @@ -31,8 +37,10 @@ class Command(NoArgsCommand): import bpython bpython.embed() def run_shell(self): for shell in self.shells: def run_shell(self, shell=None): available_shells = [shell] if shell else self.shells for shell in available_shells: try: return getattr(self, shell)() except ImportError: Loading @@ -46,12 +54,14 @@ class Command(NoArgsCommand): get_models() use_plain = options.get('plain', False) interface = options.get('interface', None) try: if use_plain: # Don't bother loading IPython, because the user wants plain Python. raise ImportError self.run_shell() self.run_shell(shell=interface) except ImportError: import code # Set up a dictionary to serve as the environment for the shell, so Loading
docs/ref/django-admin.txt +18 −0 Original line number Diff line number Diff line Loading @@ -743,6 +743,24 @@ use the ``--plain`` option, like so:: django-admin.py shell --plain .. versionchanged:: 1.5 If you would like to specify either IPython or bpython as your interpreter if you have both installed you can specify an alternative interpreter interface with the ``-i`` or ``--interface`` options like so:: IPython:: django-admin.py shell -i ipython django-admin.py shell --interface ipython bpython:: django-admin.py shell -i bpython django-admin.py shell --interface bpython .. _IPython: http://ipython.scipy.org/ .. _bpython: http://bpython-interpreter.org/ Loading