code: def is_before(self, other):
          
          if type(self.val) is not datetime.datetime:
              raise TypeError('val must be datetime, but was type <%s>' % type(self.val).__name__)
          if type(other) is not datetime.datetime:
              raise TypeError('given arg must be datetime, but was type <%s>' % type(other).__name__)
          if self.val >= other:
              self._err('Expected <%s> to be before <%s>, but was not.' % (self.val.strftime('%Y-%m-%d %H:%M:%S'), other.strftime('%Y-%m-%d %H:%M:%S')))
          return self
docs: Asserts that val is a date and is before other date.