equal
deleted
inserted
replaced
160 Return a sequence of dates, telling which days in the given month (as a datetime) have logs available |
160 Return a sequence of dates, telling which days in the given month (as a datetime) have logs available |
161 """ |
161 """ |
162 |
162 |
163 abstract |
163 abstract |
164 |
164 |
165 def get_modified (self, dt=None, after=None) : |
165 def get_modified (self, dt=None, after=None, until=None) : |
166 """ |
166 """ |
167 Returns a sequence of LogLines that may have been *modified* from their old values since the given datetime. |
167 Returns a sequence of LogLines that may have been *modified* from their old values since the given datetime. |
168 |
168 |
169 If the datetime is not given, *all* lines are returned. |
169 If the datetime is not given, *all* lines are returned. |
170 |
170 |
171 If after is given, only lines after said date will be returned, regardless of modification. |
171 If after is given, only lines after said date will be returned, regardless of modification. |
|
172 If until is given, only lines up to said date will be returned, regardless of modification. |
172 |
173 |
173 The LogLines should be in time order. |
174 The LogLines should be in time order. |
174 """ |
175 """ |
175 |
176 |
176 abstract |
177 abstract |
413 return None |
414 return None |
414 |
415 |
415 else : |
416 else : |
416 raise |
417 raise |
417 |
418 |
418 def _iter_logfile_dates (self, after=None) : |
419 def _iter_logfile_dates (self, after=None, until=None) : |
419 """ |
420 """ |
420 Yields a series of naive datetime objects representing the logfiles that are available, in time order. |
421 Yields a series of naive datetime objects representing the logfiles that are available, in time order. |
421 |
422 |
422 If after is given, only dates after said date will be returned |
423 If after is given, only dates after said date will be returned |
|
424 If until is given, only dates up to said date will be returned |
423 """ |
425 """ |
424 |
426 |
425 # listdir |
427 # listdir |
426 filenames = os.listdir(self.path) |
428 filenames = os.listdir(self.path) |
427 |
429 |
437 except : |
439 except : |
438 # ignore |
440 # ignore |
439 continue |
441 continue |
440 |
442 |
441 else : |
443 else : |
|
444 # ignore before? |
|
445 if after and date < after : |
|
446 continue |
|
447 |
442 # ignore after? |
448 # ignore after? |
443 if after and date < after : |
449 if until and date > until : |
444 continue |
450 continue |
445 |
451 |
446 else : |
452 else : |
447 # yield |
453 # yield |
448 yield date |
454 yield date |
615 # test for it |
621 # test for it |
616 if self._get_logfile_date(log_date, load=False) : |
622 if self._get_logfile_date(log_date, load=False) : |
617 # valid |
623 # valid |
618 yield dt.date() |
624 yield dt.date() |
619 |
625 |
620 def get_modified (self, dt=None, after=None) : |
626 def get_modified (self, dt=None, after=None, until=None) : |
621 """ |
627 """ |
622 Returns the contents off all logfiles with mtimes past the given date |
628 Returns the contents off all logfiles with mtimes past the given date |
623 """ |
629 """ |
624 |
630 |
625 # iterate through all available logfiles in date order, as datetimes, from the given date on |
631 # iterate through all available logfiles in date order, as datetimes, from the given date on |
626 for log_date in self._iter_logfile_dates(after) : |
632 for log_date in self._iter_logfile_dates(after, until) : |
627 # compare against dt? |
633 # compare against dt? |
628 if dt : |
634 if dt : |
629 # stat |
635 # stat |
630 mtime = self._get_logfile_date(log_date, load=False, mtime=True) |
636 mtime = self._get_logfile_date(log_date, load=False, mtime=True) |
631 |
637 |