Commit Graph

40 Commits

Author SHA1 Message Date
Adam Allred 4e78e389b1 Fixed #29774 -- Fixed django-admin shell hang on startup.
sys.stdin.read() blocks waiting for EOF in shell.py which will
likely never come if the user provides input on stdin via the
keyboard before the shell starts. Added check for a tty to
skip reading stdin if it's not present.

This still allows piping of code into the shell (which should
have no TTY and should have an EOF) but also doesn't cause it
to hang if multi-line input is provided.
2018-10-19 20:00:12 -04:00
Claude Paroz eac9ab7ebb Removed parser.add_arguments() arguments that match the defaults. 2018-07-02 17:54:57 -04:00
Tim Graham 6e4c6281db Reverted "Fixed #27818 -- Replaced try/except/pass with contextlib.suppress()."
This reverts commit 550cb3a365
because try/except performs better.
2017-09-07 08:16:21 -04:00
Peter Inglesby 0ba57c3957 Fixed #27670 -- Prevented shell crash on error in .pythonrc. 2017-07-06 07:50:22 -04:00
Mads Jensen 550cb3a365 Fixed #27818 -- Replaced try/except/pass with contextlib.suppress(). 2017-06-28 14:07:55 -04:00
Michiel Beijen 5e8625ba64 Renamed "Mac OS X" to "macOS" in docs. 2017-04-24 20:16:09 -04:00
Tim Graham 1c466994d9 Refs #23919 -- Removed misc Python 2/3 references. 2017-01-25 13:59:25 -05:00
Tim Graham f65b1aee71 Refs #25838 -- Removed the deprecated shell --plain option. 2017-01-17 20:52:02 -05:00
Peter Inglesby 0b2e5da6ed Fixed #27721 -- Added interface name to shell's IPython/bython import error. 2017-01-12 13:12:21 -05:00
Tim Graham 823af53bf6 Fixed #27707 -- Removed shell support for IPython < 1.0. 2017-01-09 12:02:43 -05:00
jpic bf6392bb75 Fixed #27600 -- Suppressed the REPL during shell's reading from stdin.
Thanks Adam Chainz for review and guidance.
2016-12-21 17:05:33 -05:00
Peter Inglesby e139ef5741 Fixed #27023 -- Prevented possibility of shell loading ~/.pythonrc.py twice. 2016-08-05 12:09:45 -04:00
Tim Graham df8d8d4292 Fixed E128 flake8 warnings in django/. 2016-04-08 09:51:06 -04:00
Saúl Ibarra Corretgé 6c33e73333 Fixed #26289 -- Enabled shell tab completion on systems using libedit. 2016-03-08 08:37:14 -05:00
Niels Van Och 7f7553dd30 Fixed #25680 -- Added django-admin shell --command option.
Add a -c option to the shell command to execute a command passed as a
string as Django.
2016-01-06 18:43:41 -05:00
Jon Dufresne f1628f6be1 Fixed #25838 -- Added "python" as an interface to the shell command.
Deprecates the "--plain" option.
2015-12-22 08:22:12 -05:00
Maxime Turcotte 9996158db4 Fixed #22835 -- Deprecated NoArgsCommand. 2014-06-19 08:54:59 -04:00
Claude Paroz f17b24e407 Converted remaining management commands to argparse 2014-06-14 13:43:44 +02:00
Russell Keith-Magee d818e0c9b2 Fixed #16905 -- Added extensible checks (nee validation) framework
This is the result of Christopher Medrela's 2013 Summer of Code project.

Thanks also to Preston Holmes, Tim Graham, Anssi Kääriäinen, Florian
Apolloner, and Alex Gaynor for review notes along the way.

Also: Fixes #8579, fixes #3055, fixes #19844.
2014-01-20 10:45:21 +08:00
Aymeric Augustin 0d2c8ff2be Populated the app registry earlier at startup.
Refs #1796, #21676.
2013-12-30 22:11:16 +01:00
Aymeric Augustin 5892a83b18 Stopped calling get_models() for a side effect. 2013-12-29 21:48:58 +01:00
Aymeric Augustin 1716b7ce5a Renamed AppCache to Apps.
Also renamed app_cache to apps and "app cache" to "app registry".

Deprecated AppCache.app_cache_ready() in favor of Apps.ready().
2013-12-24 12:25:17 +01:00
Aymeric Augustin 2fef9e5375 Moved apps back in the toplevel django namespace.
Reverted 4a56a93cc4.
2013-12-22 11:39:55 +01:00
Aymeric Augustin 4a56a93cc4 Moved the new app cache inside core. 2013-12-17 10:17:46 +01:00
Aymeric Augustin 8662654d6d Removed module-level functions for the app cache.
Since the original ones in django.db.models.loading were kept only for
backwards compatibility, there's no need to recreate them. However, many
internals of Django still relied on them.

They were also imported in django.db.models. They never appear in the
documentation, except a quick mention of get_models and get_app in the
1.2 release notes to document an edge case in GIS. I don't think that
makes them a public API.

This commit doesn't change the overall amount of global state but
clarifies that it's tied to the app_cache object instead of hiding it
behind half a dozen functions.
2013-12-17 10:17:44 +01:00
Aymeric Augustin 860c2c8bc5 Moved django.db.models.loading to django.apps.cache.
This commit doesn't contain any code changes; it's purely a refactoring.
2013-12-17 10:17:43 +01:00
MinRK 75cf5fc7f0 Added support for IPython.start_ipython in shell
IPython 1.0 introduces an actual stable public API function
for starting a normal (non-embedded) IPython session.

This is an official public API, which is promised to survive implementation changes.
2013-07-30 10:22:41 -07:00
Ramiro Morales 1f6b2e7a65 Fixed #6682 -- Made shell's REPL actually execute $PYTHONSTARTUP and `~/.pythonrc.py`.
Also:

* Added a ``--no-startup`` option to disable this behavior. Previous
  logic to try to execute the code in charge of this funcionality was
  flawed (it only tried to do so if the user asked for ipython/bpython
  and they weren't found)
* Expand ``~`` in PYTHONSTARTUP value.

Thanks hekevintran at gmail dot com  for the report and initial patch.

Refs #3381.
2013-01-24 22:01:47 -03:00
Ramiro Morales 3570ff734e Fixed #17078 -- Made shell use std IPython startup.
This allows for a behavior more in line with what is expected by Ipython
users, e.g. the user namespace is initialized from config files, startup
files.

Thanks Benjamin Ragan-Kelley from the IPython dev team for the patch.
2012-12-31 19:40:02 -03:00
Aymeric Augustin 723c9a8c6d [py3] Ported the 'shell' management command.
The user module and the execfile function were removed in Python 3.

Thanks Linovia for the report.
2012-08-29 23:44:12 +02:00
Mike Grouchy f2abfe1e48 Adds interpreter option to shell command as per ticket #18639
Specify python interpreter interface ipython or bpython with the -i,
--interface options
argument.
 ex// python manage.py shell -i bpython
 ex// python manage.py shell --interface bpython

Like all other options, defaults to default python interpreter when your
selected choice isn't available.

updated documentation where appropriate
2012-07-17 13:45:35 -04:00
Alex Gaynor 76d5daa60f Changed `manage.py shell`'s help text to reflect that it can invoke bpython. 2012-07-10 14:26:42 -07:00
Jacob Kaplan-Moss e8e4293a48 Fixed #17078: properly invoke IPython 0.12.
git-svn-id: http://code.djangoproject.com/svn/django/trunk@17379 bcc190cf-cafb-0310-a4f2-bffc1f526a37
2012-01-19 17:38:56 +00:00
Alex Gaynor 8e1226b4a0 Kill some more dead code.
git-svn-id: http://code.djangoproject.com/svn/django/trunk@16795 bcc190cf-cafb-0310-a4f2-bffc1f526a37
2011-09-10 22:46:44 +00:00
Jannis Leidel 05eb53603c Fixed #14187 -- Added support for bpython to shell management command. Thanks, Jeremy Dunck.
git-svn-id: http://code.djangoproject.com/svn/django/trunk@14896 bcc190cf-cafb-0310-a4f2-bffc1f526a37
2010-12-12 23:03:24 +00:00
Jannis Leidel 47a5153da4 Fixed #12735, #14892 and #11542 -- Fixed support for the latest IPython (development) version in the shell management command and added a hook to implement additional shell runners (by subclassing django.core.management.commands.shell.Command, extending the ``shells`` attribute and implement a method with the same name).
git-svn-id: http://code.djangoproject.com/svn/django/trunk@14895 bcc190cf-cafb-0310-a4f2-bffc1f526a37
2010-12-12 23:03:03 +00:00
Jacob Kaplan-Moss 27d027782c Fixed #3381 - manage.py shell now respects PYTHONSTARTUP/.pythonrc.py.
git-svn-id: http://code.djangoproject.com/svn/django/trunk@6231 bcc190cf-cafb-0310-a4f2-bffc1f526a37
2007-09-14 22:16:14 +00:00
Adrian Holovaty 71504127fd Fixed #5369 -- Refactored the django-admin.py help system, allowing each subcommand to register its own options. Thanks for the patch, Todd O'Bryan
git-svn-id: http://code.djangoproject.com/svn/django/trunk@6075 bcc190cf-cafb-0310-a4f2-bffc1f526a37
2007-09-09 21:57:59 +00:00
Russell Keith-Magee 83f5f700b0 Improved error handling for management.py commands, especially for no argument or non-applabel argument commands.
git-svn-id: http://code.djangoproject.com/svn/django/trunk@5903 bcc190cf-cafb-0310-a4f2-bffc1f526a37
2007-08-16 14:34:01 +00:00
Adrian Holovaty 01adbb55e6 Major refactoring of django.core.management -- it's now a package rather than a 1730-line single module. All django-admin/manage.py commands are now stored in separate modules. This is backwards-incompatible for people who used django.core.management functions directly
git-svn-id: http://code.djangoproject.com/svn/django/trunk@5898 bcc190cf-cafb-0310-a4f2-bffc1f526a37
2007-08-16 06:06:55 +00:00