Skip to content
Projeler
Gruplar
Parçacıklar
Yardım
Yükleniyor...
Oturum aç / Kaydol
Gezinmeyi değiştir
D
django
Proje
Proje
Ayrıntılar
Etkinlik
Cycle Analytics
Depo (repository)
Depo (repository)
Dosyalar
Kayıtlar (commit)
Dallar (branch)
Etiketler
Katkıda bulunanlar
Grafik
Karşılaştır
Grafikler
Konular (issue)
0
Konular (issue)
0
Liste
Pano
Etiketler
Kilometre Taşları
Birleştirme (merge) Talepleri
0
Birleştirme (merge) Talepleri
0
CI / CD
CI / CD
İş akışları (pipeline)
İşler
Zamanlamalar
Grafikler
Paketler
Paketler
Wiki
Wiki
Parçacıklar
Parçacıklar
Üyeler
Üyeler
Collapse sidebar
Close sidebar
Etkinlik
Grafik
Grafikler
Yeni bir konu (issue) oluştur
İşler
Kayıtlar (commit)
Konu (issue) Panoları
Kenar çubuğunu aç
Batuhan Osman TASKAYA
django
Commits
f1628f6b
Kaydet (Commit)
f1628f6b
authored
Ara 13, 2015
tarafından
Jon Dufresne
Kaydeden (comit)
Tim Graham
Ara 22, 2015
Dosyalara gözat
Seçenekler
Dosyalara Gözat
İndir
Eposta Yamaları
Sade Fark
Fixed #25838 -- Added "python" as an interface to the shell command.
Deprecates the "--plain" option.
üst
b10f6683
Hide whitespace changes
Inline
Side-by-side
Showing
4 changed files
with
69 additions
and
53 deletions
+69
-53
shell.py
django/core/management/commands/shell.py
+50
-48
deprecation.txt
docs/internals/deprecation.txt
+2
-0
django-admin.txt
docs/ref/django-admin.txt
+11
-5
1.10.txt
docs/releases/1.10.txt
+6
-0
No files found.
django/core/management/commands/shell.py
Dosyayı görüntüle @
f1628f6b
import
os
import
warnings
from
django.core.management.base
import
BaseCommand
from
django.utils.deprecation
import
RemovedInDjango20Warning
class
Command
(
BaseCommand
):
help
=
"Runs a Python interactive interpreter. Tries to use IPython or bpython, if one of them is available."
requires_system_checks
=
False
shells
=
[
'ipython'
,
'bpython'
]
shells
=
[
'ipython'
,
'bpython'
,
'python'
]
def
add_arguments
(
self
,
parser
):
parser
.
add_argument
(
'--plain'
,
action
=
'store_true'
,
dest
=
'plain'
,
help
=
'Tells Django to use plain Python, not IPython or bpython.'
)
help
=
'Tells Django to use plain Python, not IPython or bpython. '
'Deprecated, use the `-i python` or `--interface python` option instead.'
)
parser
.
add_argument
(
'--no-startup'
,
action
=
'store_true'
,
dest
=
'no_startup'
,
help
=
'When using plain Python, ignore the PYTHONSTARTUP environment variable and ~/.pythonrc.py script.'
)
parser
.
add_argument
(
'-i'
,
'--interface'
,
choices
=
self
.
shells
,
dest
=
'interface'
,
help
=
'Specify an interactive interpreter interface. Available options: "ipython"
and "b
python"'
)
help
=
'Specify an interactive interpreter interface. Available options: "ipython"
, "bpython", and "
python"'
)
def
_ipython_pre_011
(
self
):
"""Start IPython pre-0.11"""
...
...
@@ -34,7 +37,7 @@ class Command(BaseCommand):
from
IPython
import
start_ipython
start_ipython
(
argv
=
[])
def
ipython
(
self
):
def
ipython
(
self
,
options
):
"""Start any version of IPython"""
for
ip
in
(
self
.
_ipython
,
self
.
_ipython_pre_100
,
self
.
_ipython_pre_011
):
try
:
...
...
@@ -46,56 +49,55 @@ class Command(BaseCommand):
# no IPython, raise ImportError
raise
ImportError
(
"No IPython"
)
def
bpython
(
self
):
def
bpython
(
self
,
options
):
import
bpython
bpython
.
embed
()
def
run_shell
(
self
,
shell
=
None
):
available_shells
=
[
shell
]
if
shell
else
self
.
shells
def
python
(
self
,
options
):
import
code
# Set up a dictionary to serve as the environment for the shell, so
# that tab completion works on objects that are imported at runtime.
imported_objects
=
{}
try
:
# Try activating rlcompleter, because it's handy.
import
readline
except
ImportError
:
pass
else
:
# We don't have to wrap the following import in a 'try', because
# we already know 'readline' was imported successfully.
import
rlcompleter
readline
.
set_completer
(
rlcompleter
.
Completer
(
imported_objects
)
.
complete
)
readline
.
parse_and_bind
(
"tab:complete"
)
for
shell
in
available_shells
:
try
:
return
getattr
(
self
,
shell
)()
except
ImportError
:
pass
raise
ImportError
# We want to honor both $PYTHONSTARTUP and .pythonrc.py, so follow system
# conventions and get $PYTHONSTARTUP first then .pythonrc.py.
if
not
options
[
'no_startup'
]:
for
pythonrc
in
(
os
.
environ
.
get
(
"PYTHONSTARTUP"
),
'~/.pythonrc.py'
):
if
not
pythonrc
:
continue
pythonrc
=
os
.
path
.
expanduser
(
pythonrc
)
if
not
os
.
path
.
isfile
(
pythonrc
):
continue
try
:
with
open
(
pythonrc
)
as
handle
:
exec
(
compile
(
handle
.
read
(),
pythonrc
,
'exec'
),
imported_objects
)
except
NameError
:
pass
code
.
interact
(
local
=
imported_objects
)
def
handle
(
self
,
**
options
):
try
:
if
options
[
'plain'
]:
# Don't bother loading IPython, because the user wants plain Python.
raise
ImportError
if
options
[
'plain'
]:
warnings
.
warn
(
"The --plain option is deprecated in favor of the -i python or --interface python option."
,
RemovedInDjango20Warning
)
options
[
'interface'
]
=
'python'
self
.
run_shell
(
shell
=
options
[
'interface'
])
except
ImportError
:
import
code
# Set up a dictionary to serve as the environment for the shell, so
# that tab completion works on objects that are imported at runtime.
# See ticket 5082.
imported_objects
=
{}
try
:
# Try activating rlcompleter, because it's handy.
import
readline
available_shells
=
[
options
[
'interface'
]]
if
options
[
'interface'
]
else
self
.
shells
for
shell
in
available_shells
:
try
:
return
getattr
(
self
,
shell
)(
options
)
except
ImportError
:
pass
else
:
# We don't have to wrap the following import in a 'try', because
# we already know 'readline' was imported successfully.
import
rlcompleter
readline
.
set_completer
(
rlcompleter
.
Completer
(
imported_objects
)
.
complete
)
readline
.
parse_and_bind
(
"tab:complete"
)
# We want to honor both $PYTHONSTARTUP and .pythonrc.py, so follow system
# conventions and get $PYTHONSTARTUP first then .pythonrc.py.
if
not
options
[
'no_startup'
]:
for
pythonrc
in
(
os
.
environ
.
get
(
"PYTHONSTARTUP"
),
'~/.pythonrc.py'
):
if
not
pythonrc
:
continue
pythonrc
=
os
.
path
.
expanduser
(
pythonrc
)
if
not
os
.
path
.
isfile
(
pythonrc
):
continue
try
:
with
open
(
pythonrc
)
as
handle
:
exec
(
compile
(
handle
.
read
(),
pythonrc
,
'exec'
),
imported_objects
)
except
NameError
:
pass
code
.
interact
(
local
=
imported_objects
)
raise
ImportError
(
"Couldn't load any of the specified interfaces."
)
docs/internals/deprecation.txt
Dosyayı görüntüle @
f1628f6b
...
...
@@ -126,6 +126,8 @@ details on these changes.
* ``django.utils.functional.allow_lazy()`` will be removed.
* The ``shell --plain`` option will be removed.
.. _deprecation-removed-in-1.10:
1.10
...
...
docs/ref/django-admin.txt
Dosyayı görüntüle @
f1628f6b
...
...
@@ -933,9 +933,15 @@ Starts the Python interactive interpreter.
Django will use IPython_ or bpython_ if either is installed. If you have a
rich shell installed but want to force use of the "plain" Python interpreter,
use the ``-
-plai
n`` option, like so::
use the ``-
i python`` or ``--interface pytho
n`` option, like so::
django-admin shell --plain
django-admin shell -i python
django-admin shell --interface python
.. deprecated:: 1.10
In older versions, use the ``--plain`` option. This is deprecated and will
be removed in Django 2.0.
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
...
...
@@ -957,12 +963,12 @@ bpython::
.. _bpython: http://bpython-interpreter.org/
When the "plain" Python interactive interpreter starts (be it because
``--
plain`` was specified or because no other interactive interface is
available) it reads the script pointed to by the :envvar:`PYTHONSTARTUP`
``--
interface python`` was specified or because no other interactive interface
is
available) it reads the script pointed to by the :envvar:`PYTHONSTARTUP`
environment variable and the ``~/.pythonrc.py`` script. If you don't wish this
behavior you can use the ``--no-startup`` option. e.g.::
django-admin shell --
plai
n --no-startup
django-admin shell --
interface pytho
n --no-startup
showmigrations [<app_label> [<app_label>]]
------------------------------------------
...
...
docs/releases/1.10.txt
Dosyayı görüntüle @
f1628f6b
...
...
@@ -212,6 +212,9 @@ Management Commands
* :djadmin:`makemigrations` now displays the path to the migration files that
it generates.
* The :djadmin:`shell` ``--interface`` option now accepts ``python`` to force
use of the "plain" Python interpreter.
Migrations
^^^^^^^^^^
...
...
@@ -432,6 +435,9 @@ Miscellaneous
:func:`~django.utils.functional.keep_lazy` function which can be used with a
more natural decorator syntax.
* The ``shell --plain`` option is deprecated in favor of ``-i python`` or
``--interface python``.
.. _removed-features-1.10:
Features removed in 1.10
...
...
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment