diff --git a/pip_audit/audit.py b/pip_audit/audit.py index 1801b914..bf41a1e3 100644 --- a/pip_audit/audit.py +++ b/pip_audit/audit.py @@ -47,8 +47,7 @@ def audit( if self._options.dry_run: # Drain the iterator in dry-run mode. - for spec in specs: - logger.info(f"Dry run: would have audited {spec.package}") + logger.info(f"Dry run: would have audited {len(list(specs))} packages") return {} else: yield from self._service.query_all(specs) diff --git a/pip_audit/cli.py b/pip_audit/cli.py index 65755943..c3000f74 100644 --- a/pip_audit/cli.py +++ b/pip_audit/cli.py @@ -7,6 +7,8 @@ import logging import os +from progress.spinner import Spinner # type: ignore + from pip_audit.audit import AuditOptions, Auditor from pip_audit.dependency_source import PipSource from pip_audit.format import ColumnsFormat, JsonFormat, VulnerabilityFormat @@ -111,4 +113,8 @@ def audit(): source = PipSource() auditor = Auditor(service, options=AuditOptions(dry_run=args.dry_run)) - print(formatter.format(auditor.audit(source))) + result = {} + for (spec, vulns) in Spinner("Auditing").iter(auditor.audit(source)): + result[spec] = vulns + + print(formatter.format(result)) diff --git a/setup.py b/setup.py index 98fc58a6..6a399498 100644 --- a/setup.py +++ b/setup.py @@ -32,6 +32,7 @@ "packaging>=21.0.0", # TODO: Remove this once 3.7 is our minimally supported version. "dataclasses>=0.6", + "progress>=1.6", ], extras_require={ "dev": [