diff -r 48fca00689e3 -r 6673de9bc911 log_source.py --- a/log_source.py Wed Feb 11 02:07:07 2009 +0200 +++ b/log_source.py Wed Feb 11 02:16:11 2009 +0200 @@ -162,11 +162,13 @@ abstract - def get_modified (self, dt=None) : + def get_modified (self, dt=None, after=None) : """ Returns a sequence of LogLines that may have been *modified* from their old values since the given datetime. - If the datetime is not given, *all* lines are returned + If the datetime is not given, *all* lines are returned. + + If after is given, only lines after said date will be returned, regardless of modification. The LogLines should be in time order. """ @@ -413,9 +415,11 @@ else : raise - def _iter_logfile_dates (self) : + def _iter_logfile_dates (self, after=None) : """ - Yields a series of naive datetime objects representing the logfiles that are available, in time order + Yields a series of naive datetime objects representing the logfiles that are available, in time order. + + If after is given, only dates after said date will be returned """ # listdir @@ -427,12 +431,21 @@ # iter files for filename in filenames : try : - # parse date + yield - yield datetime.datetime.strptime(filename, self.filename_fmt).replace(tzinfo=self.tz) + # parse date + date = datetime.datetime.strptime(filename, self.filename_fmt).replace(tzinfo=self.tz) except : # ignore continue + + else : + # ignore after? + if after and date < after : + continue + + else : + # yield + yield date def _iter_date_reverse (self, dt=None) : """ @@ -604,13 +617,13 @@ # valid yield dt.date() - def get_modified (self, dt=None) : + def get_modified (self, dt=None, after=None) : """ Returns the contents off all logfiles with mtimes past the given date """ - - # iterate through all available logfiles in date order, as datetimes - for log_date in self._iter_logfile_dates() : + + # iterate through all available logfiles in date order, as datetimes, from the given date on + for log_date in self._iter_logfile_dates(after) : # compare against dt? if dt : # stat