Commit b4002a21 authored by Tim Graham's avatar Tim Graham
Browse files

Refs #22835 -- Removed NoArgsCommand per deprecation timeline.

parent 6eed9ae7
Loading
Loading
Loading
Loading
+0 −34
Original line number Diff line number Diff line
@@ -7,14 +7,12 @@ from __future__ import unicode_literals

import os
import sys
import warnings
from argparse import ArgumentParser

import django
from django.core import checks
from django.core.management.color import color_style, no_style
from django.db import connections
from django.utils.deprecation import RemovedInDjango110Warning
from django.utils.encoding import force_str


@@ -500,35 +498,3 @@ class LabelCommand(BaseCommand):
        string as given on the command line.
        """
        raise NotImplementedError('subclasses of LabelCommand must provide a handle_label() method')


class NoArgsCommand(BaseCommand):
    """
    A command which takes no arguments on the command line.

    Rather than implementing ``handle()``, subclasses must implement
    ``handle_noargs()``; ``handle()`` itself is overridden to ensure
    no arguments are passed to the command.

    Attempting to pass arguments will raise ``CommandError``.
    """
    args = ''

    def __init__(self):
        warnings.warn(
            "NoArgsCommand class is deprecated and will be removed in Django 1.10. "
            "Use BaseCommand instead, which takes no arguments by default.",
            RemovedInDjango110Warning
        )
        super(NoArgsCommand, self).__init__()

    def handle(self, *args, **options):
        if args:
            raise CommandError("Command doesn't accept any arguments")
        return self.handle_noargs(**options)

    def handle_noargs(self, **options):
        """
        Perform this command's actions.
        """
        raise NotImplementedError('subclasses of NoArgsCommand must provide a handle_noargs() method')
+0 −16
Original line number Diff line number Diff line
@@ -352,22 +352,6 @@ Rather than implementing :meth:`~BaseCommand.handle`, subclasses must implement
    Perform the command's actions for ``label``, which will be the string as
    given on the command line.

.. class:: NoArgsCommand

.. deprecated:: 1.8

    Use :class:`BaseCommand` instead, which takes no arguments by default.

A command which takes no arguments on the command line.

Rather than implementing :meth:`~BaseCommand.handle`, subclasses must implement
:meth:`~NoArgsCommand.handle_noargs`; :meth:`~BaseCommand.handle` itself is
overridden to ensure no arguments are passed to the command.

.. method:: NoArgsCommand.handle_noargs(**options)

    Perform this command's actions

.. _ref-command-exceptions:

Command exceptions
+1 −1
Original line number Diff line number Diff line
@@ -130,7 +130,7 @@ details on these changes.
* Support for :py:mod:`optparse` will be dropped for custom management commands
  (replaced by :py:mod:`argparse`).

* The class :class:`~django.core.management.NoArgsCommand` will be removed. Use
* The class ``django.core.management.NoArgsCommand`` will be removed. Use
  :class:`~django.core.management.BaseCommand` instead, which takes no arguments
  by default.

+3 −3
Original line number Diff line number Diff line
@@ -1384,9 +1384,9 @@ arguments through ``argparse.add_argument()``. See
``django.core.management.NoArgsCommand``
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

The class :class:`~django.core.management.NoArgsCommand` is now deprecated and
will be removed in Django 1.10. Use :class:`~django.core.management.BaseCommand`
instead, which takes no arguments by default.
The class ``NoArgsCommand`` is now deprecated and will be removed in Django
1.10. Use :class:`~django.core.management.BaseCommand` instead, which takes no
arguments by default.

Listing all migrations in a project
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~