[gnome-continuous-yocto/gnomeostree-3.28-rocko: 1004/8267] bitbake: cooker: replace EventLogWriteHandler with namedtuple



commit f6fc25d1df2b77cb1d6534b302812c3af97dfd28
Author: Ed Bartosh <ed bartosh linux intel com>
Date:   Mon Jun 20 14:00:51 2016 +0300

    bitbake: cooker: replace EventLogWriteHandler with namedtuple
    
    class EventLogWriteHandler is a simple wrapper class with only one
    class member. Replacing it with namedtuple makes code less nested and more
    readable.
    
    (Bitbake rev: 7c5b6812d32d173df36e7f9fc1d877329e79f994)
    
    Signed-off-by: Ed Bartosh <ed bartosh linux intel com>
    Signed-off-by: Richard Purdie <richard purdie linuxfoundation org>

 bitbake/lib/bb/cooker.py |   98 ++++++++++++++++++++++------------------------
 1 files changed, 47 insertions(+), 51 deletions(-)
---
diff --git a/bitbake/lib/bb/cooker.py b/bitbake/lib/bb/cooker.py
index ca53ff4..3e4f8d8 100644
--- a/bitbake/lib/bb/cooker.py
+++ b/bitbake/lib/bb/cooker.py
@@ -33,7 +33,7 @@ import threading
 from io import StringIO
 from contextlib import closing
 from functools import wraps
-from collections import defaultdict
+from collections import defaultdict, namedtuple
 import bb, bb.exceptions, bb.command
 from bb import utils, data, parse, event, cache, providers, taskdata, runqueue, build
 import queue
@@ -117,58 +117,52 @@ class CookerFeatures(object):
         return next(self._features)
 
 
-class EventLogWriteHandler:
-
+class EventWriter:
     def __init__(self, cooker, eventfile):
-        # set our handler's event processor
-        self.event = self.EventWriter(cooker, eventfile)
-
-    class EventWriter:
-        def __init__(self, cooker, eventfile):
-            self.file_inited = None
-            self.cooker = cooker
-            self.eventfile = eventfile
-            self.event_queue = []
-
-        def init_file(self):
-            # write current configuration data
-            with open(eventfile, "w") as f:
-                f.write("%s\n" % json.dumps({ "allvariables" : self.cooker.getAllKeysWithFlags(["doc", 
"func"])}))
-
-        def write_event(self, event):
-            with open(self.eventfile, "a") as f:
-                try:
-                    str_event = codecs.encode(pickle.dumps(event), 'base64').decode('utf-8')
-                    f.write("%s\n" % json.dumps({"class": event.__module__ + "." + event.__class__.__name__,
-                                                 "vars": str_event}))
-                except Exception as e:
-                    import traceback
-                    print(e, traceback.format_exc())
+        self.file_inited = None
+        self.cooker = cooker
+        self.eventfile = eventfile
+        self.event_queue = []
 
+    def init_file(self):
+        # write current configuration data
+        with open(eventfile, "w") as f:
+            f.write("%s\n" % json.dumps({ "allvariables" : self.cooker.getAllKeysWithFlags(["doc", 
"func"])}))
+
+    def write_event(self, event):
+        with open(self.eventfile, "a") as f:
+            try:
+                str_event = codecs.encode(pickle.dumps(event), 'base64').decode('utf-8')
+                f.write("%s\n" % json.dumps({"class": event.__module__ + "." + event.__class__.__name__,
+                                             "vars": str_event}))
+            except Exception as e:
+                import traceback
+                print(e, traceback.format_exc())
 
-        def send(self, event):
-            event_class = event.__module__ + "." + event.__class__.__name__
 
-            # init on bb.event.BuildStarted
-            if self.file_inited is None:
-                if  event_class == "bb.event.BuildStarted":
-                    self.init_file()
-                    self.file_inited = True
+    def send(self, event):
+        event_class = event.__module__ + "." + event.__class__.__name__
 
-                    # write pending events
-                    for e in self.event_queue:
-                        self.write_event(e)
+        # init on bb.event.BuildStarted
+        if self.file_inited is None:
+            if  event_class == "bb.event.BuildStarted":
+                self.init_file()
+                self.file_inited = True
 
-                    # also write the current event
-                    self.write_event(event)
+                # write pending events
+                for e in self.event_queue:
+                    self.write_event(e)
 
-                else:
-                    # queue all events until the file is inited
-                    self.event_queue.append(event)
+                # also write the current event
+                self.write_event(event)
 
             else:
-                # we have the file, just write the event
-                self.write_event(event)
+                # queue all events until the file is inited
+                self.event_queue.append(event)
+
+        else:
+            # we have the file, just write the event
+            self.write_event(event)
 
 #============================================================================#
 # BBCooker
@@ -210,7 +204,9 @@ class BBCooker:
         # we log all events to a file if so directed
         if self.configuration.writeeventlog:
             # register the log file writer as UI Handler
-            bb.event.register_UIHhandler(EventLogWriteHandler(self, self.configuration.writeeventlog))
+            writer = EventWriter(self, self.configuration.writeeventlog)
+            EventLogWriteHandler = namedtuple('EventLogWriteHandler', ['event'])
+            bb.event.register_UIHhandler(EventLogWriteHandler(writer))
 
         self.inotify_modified_files = []
 


[Date Prev][Date Next]   [Thread Prev][Thread Next]   [Thread Index] [Date Index] [Author Index]