#35107: How to write a management command that reads from stdin should be
documented
-------------------------------------------+------------------------
Reporter: Andrew Northall | Owner: nobody
Type: Uncategorized | Status: new
Component: Documentation | Version: 5.0
Severity: Normal | Keywords:
Triage Stage: Unreviewed | Has patch: 0
Needs documentation: 0 | Needs tests: 0
Patch needs improvement: 0 | Easy pickings: 1
UI/UX: 0 |
-------------------------------------------+------------------------
This seems like a fairly common use case, which is supported by Django,
but as far as I can tell no mention of it is made in the documentation. It
seems like it should be documented.
For an example of how to do it, `loaddata` and `shell` read from stdin in
Django core:
https://github.com/django/django/blob/main/django/core/management/commands/loaddata.py
https://github.com/django/django/blob/main/django/core/management/commands/shell.py
I hear you say, 'but reading from stdin is a Python feature, not a Django
feature, why should we document it?'. In my mind, the documentation as it
exists now could lead to confusion: it makes specific mention that you
should use `BaseCommand.stdout` and `BaseCommand.stderr` within a
management command to write to stdout or stderr. It is not a big jump to
then assume that you should also be using `BaseCommand.stdin` (which does
not exist) to handle incoming data. The API, in this narrow sense, is
inconsistent, and this is why the documentation would be helpful.
--
Ticket URL: <https://code.djangoproject.com/ticket/35107>
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 [email protected].
To view this discussion on the web visit
https://groups.google.com/d/msgid/django-updates/0107018cfd532ead-98eccbc0-ba0a-4bef-a935-666141ffa061-000000%40eu-central-1.amazonses.com.