Coverage for lode / exceptions.py: 100%
16 statements
« prev ^ index » next coverage.py v7.13.0, created at 2026-10-05 16:02 +0000
« prev ^ index » next coverage.py v7.13.0, created at 2026-10-05 16:02 +0000
1from datetime import datetime, timezone
2import uuid
4class LODEError(Exception):
5 """Base exception. All LODE errors inherit this exception"""
7 def __init__(self, message: str, context: dict = None):
8 super().__init__(message)
9 self.context = context or {}
10 self.timestamp = datetime.now(timezone.utc).isoformat()
11 self.request_id = str(uuid.uuid4())
13class ArtefactLoadError(LODEError):
14 """Artefatto raggiunto ma non parsabile in nessun formato RDF."""
15 pass
17class ArtefactNotFoundError(LODEError):
18 """Artefatto risponde 404 o errore di rete."""
19 pass
21class ArtefactUnavailableError(LODEError):
22 """Host remoto raggiunto ma in errore server (5xx): l'artefatto puo' esistere,
23 e' il servizio a essere temporaneamente non disponibile."""
24 pass
26class ArtefactValidationError(LODEError):
27 """Artefatto rifiutato dai security check (size, estensione, scheme/SSRF, non testo)."""
28 pass