docs: def validate_wrap(self, value):
          ''' Validates the value's type as well as it being in the valid
              date range'''
          if not isinstance(value, datetime):
              self._fail_validation_type(value, datetime)
  
          if self.use_tz and value.tzinfo is None:
              self._fail_validation(value, '''datetime is not timezone aware and use_tz is on.  make sure timezone is set on the session''')
  
          # if using timezone support it isn't clear how min and max should work,
          # so the problem is being punted on for now.
          if self.use_tz:
              return
  
          # min/max
          if self.min is not None and value < self.min:
              self._fail_validation(value, 'DateTime too old')
          if self.max is not None and value > self.max:
              self._fail_validation(value, 'DateTime too new')