--- rrule.py.orig Wed Feb 29 18:32:29 2012 +++ rrule.py Wed Feb 29 18:46:39 2012 @@ -42,6 +42,7 @@ HOURLY, MINUTELY, SECONDLY) = range(7) +FREQNAMES = ['YEARLY','MONTHLY','WEEKLY','DAILY','HOURLY','MINUTELY','SECONDLY'] # Imported on demand. easter = None @@ -469,6 +470,32 @@ if self._bysecond_internal: return None return self._bysecond + + + def __str__(self): + parts = ['FREQ='+FREQNAMES[self.freq]] + if self.interval != 1: + parts.append('INTERVAL='+str(self.interval)) + if self.wkst: + parts.append('WKST='+str(self.wkst)) + if self.count: + parts.append('COUNT='+str(self.count)) + + for name, value in [ + ('BYSETPOS', self.bysetpos), + ('BYMONTH', self.bymonth), + ('BYMONTHDAY', self.bymonthday), + ('BYYEARDAY', self.byyearday), + ('BYWEEKNO', self.byweekno), + ('BYWEEKDAY', self.byweekday), + ('BYHOUR', self.byhour), + ('BYMINUTE', self.byminute), + ('BYSECOND', self.bysecond), + ]: + if value: + parts.append(name+'='+','.join(str(v) for v in value)) + + return ';'.join(parts) def _iter(self):