Dieser Commit ist enthalten in:
Claude Project Manager
2025-08-01 23:50:28 +02:00
Commit 04585e95b6
290 geänderte Dateien mit 64086 neuen und 0 gelöschten Zeilen

Datei anzeigen

@ -0,0 +1,36 @@
"""
Rate Limit Policy Entity - Definiert Geschwindigkeitsregeln für verschiedene Aktionen
"""
from dataclasses import dataclass
from typing import Optional
@dataclass
class RateLimitPolicy:
"""Definiert Geschwindigkeitsregeln für verschiedene Aktionen"""
min_delay: float
max_delay: float
adaptive: bool = True
backoff_multiplier: float = 1.5
max_retries: int = 3
def __post_init__(self):
"""Validierung der Policy-Parameter"""
if self.min_delay < 0:
raise ValueError("min_delay muss >= 0 sein")
if self.max_delay < self.min_delay:
raise ValueError("max_delay muss >= min_delay sein")
if self.backoff_multiplier < 1.0:
raise ValueError("backoff_multiplier muss >= 1.0 sein")
if self.max_retries < 0:
raise ValueError("max_retries muss >= 0 sein")
def calculate_backoff_delay(self, attempt: int) -> float:
"""Berechnet Verzögerung basierend auf Versuchsnummer"""
if not self.adaptive:
return self.min_delay
delay = self.min_delay * (self.backoff_multiplier ** attempt)
return min(delay, self.max_delay)