Skip to content

Commit

Permalink
pip_audit/cli: add a custom AuditSpinner
Browse files Browse the repository at this point in the history
  • Loading branch information
woodruffw committed Sep 17, 2021
1 parent 5931e99 commit c1dab0d
Showing 1 changed file with 19 additions and 2 deletions.
21 changes: 19 additions & 2 deletions pip_audit/cli.py
Expand Up @@ -6,8 +6,9 @@
import enum
import logging
import os
from typing import Any, Dict

from progress.spinner import Spinner # type: ignore
from progress.spinner import Spinner as BaseSpinner # type: ignore

from pip_audit.audit import AuditOptions, Auditor
from pip_audit.dependency_source import PipSource
Expand All @@ -19,6 +20,22 @@
logging.basicConfig(level=os.environ.get("PIP_AUDIT_LOGLEVEL", "INFO").upper())


class AuditSpinner(BaseSpinner):
def __init__(self, message: str = "", **kwargs: Dict[str, Any]):
super().__init__(message=message, **kwargs)
self._base_message = self.message

def update(self):
item = getattr(self, "iter_value", None)
if item is not None:
(spec, _) = item
self.message = f"{self._base_message} {spec.package} ({spec.version})"

i = self.index % len(self.phases)
line = f"{self.phases[i]} {self.message}"
self.writeln(line)


@enum.unique
class OutputFormatChoice(str, enum.Enum):
"""
Expand Down Expand Up @@ -114,7 +131,7 @@ def audit():
auditor = Auditor(service, options=AuditOptions(dry_run=args.dry_run))

result = {}
for (spec, vulns) in Spinner("Auditing").iter(auditor.audit(source)):
for (spec, vulns) in AuditSpinner("Auditing").iter(auditor.audit(source)):
result[spec] = vulns

print(formatter.format(result))

0 comments on commit c1dab0d

Please sign in to comment.