log_source.py
changeset 94 6673de9bc911
parent 93 48fca00689e3
child 97 6165f1ba458d
--- 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