code: def _parse_day(optval):
          ''' Parse a --day argument '''
          isreq = not optval.startswith('+')
          if not isreq:
              optval = optval[1:]
  
          try:
              retnval = []
              unit = None
              for val in optval.split(','):
                  if not val:
                      raise ValueError
                  if val[-1].isdigit():
                      newunit = 'dayofmonth' if isreq else 'day'
                      if unit is None:
                          unit = newunit
                      elif newunit != unit:
                          raise ValueError
                      retnval.append(int(val))
                  else:
                      newunit = 'dayofweek'
                      if unit is None:
                          unit = newunit
                      elif newunit != unit:
                          raise ValueError
  
                      weekday = Cron._parse_weekday(val)
                      if weekday is None:
                          raise ValueError
                      retnval.append(weekday)
              if len(retnval) == 0:
                  raise ValueError
          except ValueError:
              return None, None
          if len(retnval) == 1:
              retnval = retnval[0]
          return unit, retnvaf _parse_day(optval):
          ''' Parse a --day argument '''
          isreq = not optval.startswith('+')
          if not isreq:
              optval = optval[1:]
  
          try:
              retnval = []
              unit = None
              for val in optval.split(','):
                  if not val:
                      raise ValueError
                  if val[-1].isdigit():
                      newunit = 'dayofmonth' if isreq else 'day'
                      if unit is None:
                          unit = newunit
                      elif newunit != unit:
                          raise ValueError
                      retnval.append(int(val))
                  else:
                      newunit = 'dayofweek'
                      if unit is None:
                          unit = newunit
                      elif newunit != unit:
                          raise ValueError
  
                      weekday = Cron._parse_weekday(val)
                      if weekday is None:
                          raise ValueError
                      retnval.append(weekday)
              if len(retnval) == 0:
                  raise ValueError
          except ValueError:
              return None, None
          if len(retnval) == 1:
              retnval = retnval[0]
          return unit, retnval
docs: Parse a --day argument