aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorEd Bartosh <ed.bartosh@linux.intel.com>2016-06-20 14:00:51 +0300
committerRichard Purdie <richard.purdie@linuxfoundation.org>2016-06-20 17:23:57 +0100
commitf6fc25d1df2b77cb1d6534b302812c3af97dfd28 (patch)
treeee93854c3b6fcf6c3e6763123875a0b5cb98dcc8
parenta158388a51147320bd599299081f1ecfe1152a6a (diff)
downloadopenembedded-core-contrib-f6fc25d1df2b77cb1d6534b302812c3af97dfd28.tar.gz
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>
-rw-r--r--bitbake/lib/bb/cooker.py86
1 files changed, 41 insertions, 45 deletions
diff --git a/bitbake/lib/bb/cooker.py b/bitbake/lib/bb/cooker.py
index ca53ff4eaa..3e4f8d8e5e 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 = []