Fix mbox-run progress display and document n_procs scope (#147) (#846)

* Fix mbox-run progress display and document n_procs scope (#147)

An mbox-only run showed a misleading, permanently-stuck `0it` progress
bar: the CLI's tqdm bar only tracks report files passed directly as
arguments (mbox paths are split out first), and per-message mbox
progress is only logged at INFO, which --silent / config-file runs
hide. The empty bar is no longer created when there are no direct file
arguments, and get_dmarc_reports_from_mbox() now wraps its message loop
in a tqdm bar that auto-disables on non-TTY output (tqdm's
disable=None), so interactive mbox imports show real per-message
progress while tests, cron jobs, and piped runs stay clean.

Also documents that n_procs parallel parsing applies only to report
files passed directly on the command line — messages from mbox files
and mailbox connections (IMAP, Microsoft Graph, Gmail API, Maildir)
are always processed sequentially — and fixes the pre-existing
"Number of process" typo in that entry.

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>

* Gate the CLI progress bar on stderr, where tqdm renders it

Addresses Copilot review feedback on #846: tqdm writes to stderr by
default, but the guard checked sys.stdout.isatty(), so a run with
stderr redirected to a log file would write bar escapes into the log,
and a run with stdout redirected (e.g. piping the JSON output) hid the
bar even though stderr could display it. This also matches the mbox
bar's disable=None auto-check, which keys off tqdm's own output stream.

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>

---------

Co-authored-by: Claude Fable 5 <noreply@anthropic.com>
This commit is contained in:
Sean Whalen
2026-07-25 13:11:54 -04:00
committed by GitHub
co-authored by Claude Fable 5
parent 03dc92519a
commit df086e7242
4 changed files with 14 additions and 4 deletions
+10 -2
View File
@@ -169,14 +169,22 @@ The full set of configuration options are:
any configured output destination fails while saving/publishing
reports (Default: `False`)
- `log_file` - str: Write log messages to a file at this path
- `n_procs` - int: Number of process to run in parallel when
parsing in CLI mode (Default: `1`)
- `n_procs` - int: Number of processes to run in parallel when
parsing report files passed directly as CLI arguments
(Default: `1`)
:::{note}
Setting this to a number larger than one can improve
performance when processing thousands of files
:::
:::{note}
`n_procs` only applies to report files passed directly on the
command line. Messages from mbox files and from mailbox
connections (IMAP, Microsoft Graph, Gmail API, Maildir) are
always processed sequentially.
:::
- `mailbox`
- `reports_folder` - str: The mailbox folder (or label for
Gmail) where the incoming reports can be found