Spaces:
Sleeping
Sleeping
| """ | |
| Custom exceptions for UVM TB Generator with structured error codes. | |
| Industry-standard error taxonomy. | |
| """ | |
| from __future__ import annotations | |
| class UVMGenError(Exception): | |
| """Base exception for all UVM TB Generator errors.""" | |
| code: str = "UNKNOWN_ERROR" | |
| status_code: int = 500 | |
| details: str = "" | |
| def __init__(self, message: str = "", details: str = "", status_code: int | None = None): | |
| self.message = message or self.__doc__ or str(self.code) | |
| self.details = details | |
| if status_code is not None: | |
| self.status_code = status_code | |
| super().__init__(self.message) | |
| def to_dict(self) -> dict: | |
| return { | |
| "error": self.code, | |
| "message": self.message, | |
| "details": self.details, | |
| "status_code": self.status_code, | |
| } | |
| class SpecNotFoundError(UVMGenError): | |
| code = "SPEC_NOT_FOUND" | |
| status_code = 404 | |
| class SpecValidationError(UVMGenError): | |
| code = "SPEC_VALIDATION_FAILED" | |
| status_code = 422 | |
| class SpecParseError(UVMGenError): | |
| code = "SPEC_PARSE_ERROR" | |
| status_code = 422 | |
| class PipelineRunError(UVMGenError): | |
| code = "PIPELINE_RUN_FAILED" | |
| status_code = 500 | |
| class ModelNotTrainedError(UVMGenError): | |
| code = "MODEL_NOT_TRAINED" | |
| status_code = 400 | |
| class GenerationError(UVMGenError): | |
| code = "GENERATION_FAILED" | |
| status_code = 500 | |
| class SimulationError(UVMGenError): | |
| code = "SIMULATION_FAILED" | |
| status_code = 500 | |
| class SimulatorNotFoundError(UVMGenError): | |
| code = "SIMULATOR_NOT_FOUND" | |
| status_code = 400 | |
| class RegistryError(UVMGenError): | |
| code = "REGISTRY_ERROR" | |
| status_code = 500 | |
| class ConfigurationError(UVMGenError): | |
| code = "CONFIGURATION_ERROR" | |
| status_code = 400 | |
| class ProtocolNotSupportedError(UVMGenError): | |
| code = "PROTOCOL_NOT_SUPPORTED" | |
| status_code = 400 | |
| details = "Supported protocols: uart, spi, i2c, axi4lite, apb, wishbone" | |