code: def call(self, attr_name, value):
      if not self.lb <= value <= self.ub:
          raise ValueError(
              f"{attr_name} must be between [{self.lb}, {self.ub}] inclusive (got {value})"
          )
  
imports: from abc import ABC, abstractmethod
  from typing import TypeVar, Union
label_desc: Use image node_id 2 for calling the Between obj's underlying member method code with example usage: obj.call(attr_name, value) without return types