""" utils.py — Shared utilities for the Autonomy Calibration Environment. """ from __future__ import annotations _SCORE_MIN = 0.01 _SCORE_MAX = 0.99 def clamp(score: float) -> float: """ Clamp a score into the open interval (0.01, 0.99). OpenEnv validator requirement: scores must never be exactly 0.0 or 1.0. Handles NaN, inf, None, and all float edge cases safely. """ try: s = float(score) except (TypeError, ValueError): return _SCORE_MIN # Guard NaN (only NaN != NaN) if s != s: return _SCORE_MIN if s <= 0.0: return _SCORE_MIN if s >= 1.0: return _SCORE_MAX s = round(s, 4) # Final hard clamp after rounding if s <= 0.0: return _SCORE_MIN if s >= 1.0: return _SCORE_MAX return s