16 lines
509 B
Python
16 lines
509 B
Python
"""Structured DocForge failures."""
|
|
|
|
from __future__ import annotations
|
|
|
|
|
|
class DocForgeError(Exception):
|
|
"""A user-actionable project, source, validation, or cache failure."""
|
|
|
|
def __init__(self, code: str, message: str, **details: object) -> None:
|
|
super().__init__(message)
|
|
self.code = code
|
|
self.message = message
|
|
self.details = details
|
|
|
|
def as_dict(self) -> dict[str, object]:
|
|
return {"code": self.code, "message": self.message, "details": self.details}
|