#25736: Define management commands via function
-------------------------------------+-------------------------------------
     Reporter:  olethanh             |                    Owner:  nobody
         Type:  New feature          |                   Status:  new
    Component:  Core (Management     |                  Version:  master
  commands)                          |
     Severity:  Normal               |               Resolution:
     Keywords:                       |             Triage Stage:
                                     |  Unreviewed
    Has patch:  1                    |      Needs documentation:  0
  Needs tests:  0                    |  Patch needs improvement:  0
Easy pickings:  0                    |                    UI/UX:  0
-------------------------------------+-------------------------------------
Changes (by olethanh):

 * needs_docs:   => 0
 * has_patch:  0 => 1
 * needs_tests:   => 0
 * needs_better_patch:   => 0


Old description:

> Creating a new management command currently require a lot of boilerplate
> to remember, a small part of it is having to subclass a command. This is
> often overkill when you just have a function and don't need complex
> arguments parsing.
>
> So I'm proposing to allow using function for Command.
>
> I'm attaching an idea of an implementation but I'm not really set on it.
> This would allow to write:
>

> {{{
>     from django.core.management.base import LabelCommand
>
>     def print_label(label):
>         "Help message"
>         print label
>
>     Command = LabelCommand.from_func(print_label,
> can_import_settings=False)
> }}}

New description:

 Creating a new management command currently require a lot of boilerplate
 to remember, a small part of it is having to subclass a command. This is
 often overkill when you just have a function and don't need complex
 arguments parsing.

 So I'm proposing to allow using function for Command.

 I'm attaching an idea of an implementation but I'm not really set on it.
 This would allow to write:


 {{{
     from django.core.management.base import LabelCommand

     def print_label(label):
         "Help message"
         print label

     Command = LabelCommand.from_func(print_label,
 can_import_settings=False)
 }}}

 Proposed implementation:
 
https://github.com/django/django/compare/master...olethanh:ticket_27536?expand=1

--

--
Ticket URL: <https://code.djangoproject.com/ticket/25736#comment:1>
Django <https://code.djangoproject.com/>
The Web framework for perfectionists with deadlines.

-- 
You received this message because you are subscribed to the Google Groups 
"Django updates" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to django-updates+unsubscr...@googlegroups.com.
To post to this group, send email to django-updates@googlegroups.com.
To view this discussion on the web visit 
https://groups.google.com/d/msgid/django-updates/066.6ce6aab2440b6a2b9a4c814369048822%40djangoproject.com.
For more options, visit https://groups.google.com/d/optout.

Reply via email to