Files

13 lines
300 B
Python

"""Clamp a value to [lo, hi]. Handles None by raising, preserves type."""
from __future__ import annotations
def clamp(value, lo, hi):
if lo > hi:
raise ValueError("lo > hi: %r > %r" % (lo, hi))
if value < lo:
return lo
if value > hi:
return hi
return value