code: def Length(min=None, max=None, min_message="Must have a length of at least {min}", max_message="Must have a length of at most {max}"):
      
      validator = Range(min, max, min_message, max_message)
      @wraps(Length)
      def built(value):
          if not hasattr(value, '__len__'):
              raise Error("Does not have a length")
          validator(len(value))
          return value
      return built
docs: Creates a validator that checks if the given value's length is in the
      specified range, inclusive. (Returns the original value.)
  
      See :func:`.Range`.