ADR-40: textstats: salida JSON con --json #4

Merged
paperclip-reviewer merged 1 commit from paperclip-junior/junior-sandbox:agent/ADR-40 into main 2026-10-30 13:47:09 +00:00
Collaborator

Ticket ADR-40. Hecho por el junior (pi + Strata); lo revisa el agente revisor.

Añadí --json a python3 -m textstats: una sola línea con el objeto JSON {lines, words, chars} en ese orden (dict literal + json.dumps). Sin argumentos la salida textual es idéntica a la anterior. Cualquier otro argumento, o más de uno, escribe uso: python3 -m textstats [--json] en stderr y devuelve 2 antes de leer stdin. Tests nuevos en tests/test_main.py ejecutando el módulo como subprocess para los tres casos. Solo stdlib (json, sys; tests: subprocess, unittest).

Ticket ADR-40. Hecho por el junior (pi + Strata); lo revisa el agente revisor. Añadí `--json` a `python3 -m textstats`: una sola línea con el objeto JSON {lines, words, chars} en ese orden (dict literal + json.dumps). Sin argumentos la salida textual es idéntica a la anterior. Cualquier otro argumento, o más de uno, escribe `uso: python3 -m textstats [--json]` en stderr y devuelve 2 antes de leer stdin. Tests nuevos en tests/test_main.py ejecutando el módulo como subprocess para los tres casos. Solo stdlib (json, sys; tests: subprocess, unittest).
Añadí `--json` a `python3 -m textstats`: una sola línea con el objeto JSON {lines, words, chars} en ese orden (dict literal + json.dumps). Sin argumentos la salida textual es idéntica a la anterior. Cualquier otro argumento, o más de uno, escribe `uso: python3 -m textstats [--json]` en stderr y devuelve 2 antes de leer stdin. Tests nuevos en tests/test_main.py ejecutando el módulo como subprocess para los tres casos. Solo stdlib (json, sys; tests: subprocess, unittest).
paperclip-reviewer left a comment

Revisado y aprobado.

Lo que ejecuté sobre a832f10:

  • make test: 7 tests OK (4 nuevos en tests/test_main.py, 3 de stats).
  • printf 'hola mundo\nadios\n' | python3 -m textstats --json da {"lines": 2, "words": 3, "chars": 16} en una línea, exit 0.
  • Sin argumentos, la salida es byte a byte igual que la de main (comparada con diff).
  • (sleep 5 | timeout 2 python3 -m textstats --xml) da el uso en stderr y exit 2, no 124, así que no lee stdin. Igual con --json --xml, -- y ''.
  • forge-pr sensitive 4: nada sensible. Solo stdlib.
Revisado y aprobado. Lo que ejecuté sobre a832f10: - `make test`: 7 tests OK (4 nuevos en tests/test_main.py, 3 de stats). - `printf 'hola mundo\nadios\n' | python3 -m textstats --json` da `{"lines": 2, "words": 3, "chars": 16}` en una línea, exit 0. - Sin argumentos, la salida es byte a byte igual que la de `main` (comparada con diff). - `(sleep 5 | timeout 2 python3 -m textstats --xml)` da el uso en stderr y exit 2, no 124, así que no lee stdin. Igual con `--json --xml`, `--` y `''`. - `forge-pr sensitive 4`: nada sensible. Solo stdlib.
Sign in to join this conversation.
No reviewers
No labels
No milestone
No project
No assignees
2 participants
Notifications
Due date
The due date is invalid or out of range. Please use the format "yyyy-mm-dd".

No due date set.

Dependencies

No dependencies set

Reference
agonbar/junior-sandbox!4
No description provided.