Scan dependencies for known vulnerabilities and licenses.
Overall
score
61%
Build a command-line tool that generates vulnerability scan reports in multiple output formats for a Python dependency scanner.
Your tool should accept vulnerability scan data and output it in different formats suitable for various use cases:
The input will be a Python dictionary containing:
vulnerabilities: List of vulnerability objects, each with:
package_name: Name of the affected package (string)vulnerability_id: Unique identifier (string, e.g., "SAFETY-12345")severity: Severity level (string: "CRITICAL", "HIGH", "MEDIUM", "LOW")affected_version: Currently installed version (string)fixed_version: Version that fixes the vulnerability (string or None)description: Brief description of the vulnerability (string)Implement a simple CLI that:
Formatting a list with 3 vulnerabilities as JSON produces valid, parsable JSON with all vulnerability fields present @test
Formatting vulnerabilities as screen output displays CRITICAL severity items before LOW severity items @test
Formatting an empty vulnerability list as text output returns "No vulnerabilities found" @test
@generates
def format_json(vulnerabilities: list[dict]) -> str:
"""
Format vulnerability data as JSON string.
Args:
vulnerabilities: List of vulnerability dictionaries
Returns:
JSON-formatted string with proper indentation
"""
pass
def format_screen(vulnerabilities: list[dict]) -> str:
"""
Format vulnerability data for terminal display.
Args:
vulnerabilities: List of vulnerability dictionaries
Returns:
Human-readable formatted string suitable for terminal output
"""
pass
def format_text(vulnerabilities: list[dict]) -> str:
"""
Format vulnerability data as plain text.
Args:
vulnerabilities: List of vulnerability dictionaries
Returns:
Plain text formatted string
"""
pass
def main():
"""
CLI entry point that parses arguments and invokes appropriate formatter.
"""
passProvides vulnerability scanning and report formatting capabilities for Python dependencies.
@satisfied-by
Install with Tessl CLI
npx tessl i tessl/pypi-safetydocs
evals
scenario-1
scenario-2
scenario-3
scenario-4
scenario-5
scenario-6
scenario-7
scenario-8
scenario-9
scenario-10