#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.