Decorator for creating ranged property with fixed bounds.

def ranged_property(min=None, max=None):
    """Decorator for creating ranged property with fixed bounds."""
    min_value = -_INF if min is None else min
    max_value = _INF if max is None else max
    return lambda fget: RangedProperty(
        fget, fmin=lambda obj: min_value, fmax=lambda obj: max_value)