Spaces:
Build error
Build error
| """ | |
| Pythonic data models for ARF Demo | |
| """ | |
| from dataclasses import dataclass, asdict | |
| from enum import Enum | |
| from typing import Dict, List, Optional, Any | |
| import datetime | |
| class IncidentSeverity(Enum): | |
| """Enum for incident severity levels""" | |
| LOW = "LOW" | |
| MEDIUM = "MEDIUM" | |
| HIGH = "HIGH" | |
| CRITICAL = "CRITICAL" | |
| class DemoMode(Enum): | |
| """Enum for demo modes""" | |
| QUICK = "quick" | |
| COMPREHENSIVE = "comprehensive" | |
| INVESTOR = "investor" | |
| class OSSAnalysis: | |
| """Structured OSS analysis results""" | |
| status: str | |
| recommendations: List[str] | |
| estimated_time: str | |
| engineers_needed: str | |
| manual_effort: str | |
| confidence_score: float = 0.95 | |
| def to_dict(self) -> Dict: | |
| return asdict(self) | |
| class EnterpriseResults: | |
| """Structured enterprise execution results""" | |
| actions_completed: List[str] | |
| metrics_improvement: Dict[str, str] | |
| business_impact: Dict[str, Any] | |
| approval_required: bool = True | |
| execution_time: str = "" | |
| def to_dict(self) -> Dict: | |
| return asdict(self) | |
| class IncidentScenario: | |
| """Pythonic incident scenario model""" | |
| name: str | |
| severity: IncidentSeverity | |
| metrics: Dict[str, str] | |
| impact: Dict[str, str] | |
| oss_analysis: Optional[OSSAnalysis] = None | |
| enterprise_results: Optional[EnterpriseResults] = None | |
| def to_dict(self) -> Dict: | |
| """Convert to dictionary for JSON serialization""" | |
| data = { | |
| "name": self.name, | |
| "severity": self.severity.value, | |
| "metrics": self.metrics, | |
| "impact": self.impact | |
| } | |
| if self.oss_analysis: | |
| data["oss_analysis"] = self.oss_analysis.to_dict() | |
| if self.enterprise_results: | |
| data["enterprise_results"] = self.enterprise_results.to_dict() | |
| return data | |
| class DemoStep: | |
| """Demo step for presenter guidance""" | |
| title: str | |
| scenario: Optional[str] | |
| action: str | |
| message: str | |
| icon: str = "🎯" |