Initial upload of ai-code-audit-cli project
Some checks failed
CI / test (3.10) (push) Has been cancelled
CI / test (3.11) (push) Has been cancelled
CI / test (3.12) (push) Has been cancelled
CI / test (3.9) (push) Has been cancelled
CI / build (push) Has been cancelled
CI / release (push) Has been cancelled

This commit is contained in:
2026-02-03 10:29:58 +00:00
parent 992b3a48cc
commit 65c3cccab8

84
src/cli/options.py Normal file
View File

@@ -0,0 +1,84 @@
"""Shared CLI options and enums for AI Code Audit CLI."""
from enum import Enum
from typing import Optional
class OutputFormat(Enum):
"""Output format options."""
TERMINAL = "terminal"
JSON = "json"
MARKDOWN = "markdown"
class SeverityLevel(Enum):
"""Severity levels for issues."""
LOW = "low"
MEDIUM = "medium"
HIGH = "high"
CRITICAL = "critical"
class LanguageType(Enum):
"""Supported programming languages."""
PYTHON = "python"
JAVASCRIPT = "javascript"
TYPESCRIPT = "typescript"
class ScanOptions:
"""Options for scanning operations."""
def __init__(
self,
output_format: OutputFormat = OutputFormat.TERMINAL,
language_filter: Optional[LanguageType] = None,
severity_filter: Optional[SeverityLevel] = None,
verbose: bool = False,
no_color: bool = False,
quiet: bool = False,
output_file: Optional[str] = None,
):
self.output_format = output_format
self.language_filter = language_filter
self.severity_filter = severity_filter
self.verbose = verbose
self.no_color = no_color
self.quiet = quiet
self.output_file = output_file
def resolve_output_format(value: Optional[str]) -> OutputFormat:
"""Resolve output format from string value."""
if value is None:
return OutputFormat.TERMINAL
value_lower = value.lower()
for fmt in OutputFormat:
if fmt.value == value_lower:
return fmt
return OutputFormat.TERMINAL
def resolve_severity(value: Optional[str]) -> Optional[SeverityLevel]:
"""Resolve severity level from string value."""
if value is None:
return None
value_lower = value.lower()
for sev in SeverityLevel:
if sev.value == value_lower:
return sev
return None
def resolve_language(value: Optional[str]) -> Optional[LanguageType]:
"""Resolve language type from string value."""
if value is None:
return None
value_lower = value.lower()
for lang in LanguageType:
if lang.value == value_lower:
return lang
return None