"""Privacy-preserving statistics utilities. This module provides a simple differential-privacy-friendly aggregate function by adding Laplace noise to the sum. The actual privacy guarantees are simplified for MVP purposes and should be upgraded for production. """ from __future__ import annotations import random import math def laplace_noise(scale: float) -> float: # Inverse transform sampling for Laplace(0, scale) u = random.uniform(-0.5, 0.5) return scale * math.copysign(1.0, u) * math.log(1 - 2 * abs(u)) def privacy_aggregate(values, epsilon: float) -> float: if not values: return 0.0 true_sum = sum(values) # Simple Laplace mechanism; scale = 1/epsilon scale = 1.0 / max(epsilon, 1e-9) noise = laplace_noise(scale) return true_sum + noise