docs: def is_date(v) -> (bool, date):
          """
          Boolean function for checking if v is a date
  
          Args:
              v:
          Returns: bool
  
          """
          if isinstance(v, date):
              return True, v
          try:
              reg = r'^([0-9]{4})(?:-(0[1-9]|1[0-2])(?:-(0[1-9]|[1-2][0-9]|3[0-1])(?:T' \
                    r'([0-5][0-9])(?::([0-5][0-9])(?::([0-5][0-9]))?)?)?)?)?$'
              match = re.match(reg, v)
              if match:
                  groups = match.groups()
                  patterns = ['%Y', '%m', '%d', '%H', '%M', '%S']
                  d = datetime.strptime('-'.join([x for x in groups if x]),
                                        '-'.join([patterns[i] for i in range(len(patterns)) if groups[i]]))
                  return True, d
          except:
              pass
          return False, v