query_contract.py
- Pfad:
/var/www/mcp-servers/mcp-db/domain/query_contract.py
- Namespace: -
- Zeilen: 43 | Größe: 1,009 Bytes
- Geändert: 2025-12-28 12:21:49 | Gescannt: 2025-12-31 10:22:15
Code Hygiene Score: 99
- Dependencies: 100 (25%)
- LOC: 100 (20%)
- Methods: 100 (20%)
- Secrets: 100 (15%)
- Classes: 100 (10%)
- Magic Numbers: 90 (10%)
Issues 1
| Zeile |
Typ |
Beschreibung |
| 21 |
magic_number |
Magic Number gefunden: 100 |
Dependencies 3
- extends Enum
- use dataclasses.dataclass
- use enum.Enum
Klassen 3
-
QueryStatus
class
Zeile 6
-
QueryRequest
class
Zeile 15
-
QueryResponse
class
Zeile 25
Code
"""Query Contracts - Request und Response Datenstrukturen."""
from dataclasses import dataclass
from enum import Enum
class QueryStatus(Enum):
"""Status einer Query-Ausführung."""
SUCCESS = "success"
ERROR = "error"
DENIED = "denied"
@dataclass(frozen=True)
class QueryRequest:
"""Immutable Query Request - SRP: Nur Query-Daten."""
query: str
params: tuple | None = None
database: str = "ki_protokoll"
max_rows: int = 100
@dataclass
class QueryResponse:
"""Structured Response - SRP: Nur Response-Daten."""
status: QueryStatus
data: list[dict] | None = None
row_count: int = 0
error: str | None = None
execution_ms: float = 0.0
def to_dict(self) -> dict:
"""Konvertiert Response zu Dictionary für MCP."""
return {
"status": self.status.value,
"data": self.data,
"row_count": self.row_count,
"error": self.error,
"execution_ms": self.execution_ms,
}