1
0
mirror of https://git.yoctoproject.org/poky synced 2026-06-03 01:40:07 +00:00

bitbake: build/progress: use context managers for progress handlers

It seems context management support was half-implemented, but never
finished. For example, LogTee has __enter__ and __exit__ but they
haven't been exercised until now.

(Bitbake rev: bf522ad3e0c52cdb69b406226840d870ff4f2766)

Signed-off-by: Chris Laplante <chris.laplante@agilent.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
This commit is contained in:
Chris Laplante
2019-06-07 14:24:03 -04:00
committed by Richard Purdie
parent 575ea5532f
commit 7687469590
2 changed files with 42 additions and 5 deletions
+15 -1
View File
@@ -13,6 +13,7 @@ import time
import inspect
import bb.event
import bb.build
from bb.build import StdoutNoopContextManager
class ProgressHandler(object):
"""
@@ -27,7 +28,14 @@ class ProgressHandler(object):
if outfile:
self._outfile = outfile
else:
self._outfile = sys.stdout
self._outfile = StdoutNoopContextManager()
def __enter__(self):
self._outfile.__enter__()
return self
def __exit__(self, *excinfo):
self._outfile.__exit__(*excinfo)
def _fire_progress(self, taskprogress, rate=None):
"""Internal function to fire the progress event"""
@@ -147,6 +155,12 @@ class MultiStageProgressReporter(object):
self._stage_total = None
self._callers = []
def __enter__(self):
return self
def __exit__(self, *excinfo):
pass
def _fire_progress(self, taskprogress):
bb.event.fire(bb.build.TaskProgress(taskprogress), self._data)