* [PATCH] event: add bb.event.ParseError
@ 2023-04-10 9:19 mingli.yu
2023-04-10 9:43 ` [bitbake-devel] " Frédéric Martinsons
2023-04-11 16:50 ` Richard Purdie
0 siblings, 2 replies; 5+ messages in thread
From: mingli.yu @ 2023-04-10 9:19 UTC (permalink / raw)
To: bitbake-devel
From: Mingli Yu <mingli.yu@windriver.com>
Add bb.event.ParseError to let error-report can catch this kind of error.
Signed-off-by: Mingli Yu <mingli.yu@windriver.com>
---
lib/bb/cooker.py | 6 ++++--
lib/bb/event.py | 8 ++++++++
2 files changed, 12 insertions(+), 2 deletions(-)
diff --git a/lib/bb/cooker.py b/lib/bb/cooker.py
index 1797a1d4..206f8ffb 100644
--- a/lib/bb/cooker.py
+++ b/lib/bb/cooker.py
@@ -2223,7 +2223,7 @@ class CookerParser(object):
self.results = itertools.chain(self.results, self.parse_generator())
- def shutdown(self, clean=True):
+ def shutdown(self, clean=True, eventmsg=""):
if not self.toparse:
return
if self.haveshutdown:
@@ -2238,6 +2238,8 @@ class CookerParser(object):
bb.event.fire(event, self.cfgdata)
else:
+ if eventmsg:
+ bb.event.fire(bb.event.ParseError(eventmsg), self.cfgdata)
bb.error("Parsing halted due to errors, see error messages above")
# Cleanup the queue before call process.join(), otherwise there might be
@@ -2355,7 +2357,7 @@ class CookerParser(object):
except bb.parse.ParseError as exc:
self.error += 1
logger.error(str(exc))
- self.shutdown(clean=False)
+ self.shutdown(clean=False, eventmsg=str(exc))
return False
except bb.data_smart.ExpansionError as exc:
self.error += 1
diff --git a/lib/bb/event.py b/lib/bb/event.py
index 37cc630c..72393829 100644
--- a/lib/bb/event.py
+++ b/lib/bb/event.py
@@ -856,3 +856,11 @@ class FindSigInfoResult(Event):
def __init__(self, result):
Event.__init__(self)
self.result = result
+
+class ParseError(Event):
+ """
+ Event to indicate parse failed
+ """
+ def __init__(self, msg):
+ Event.__init__(self)
+ self._msg = msg
--
2.25.1
^ permalink raw reply related [flat|nested] 5+ messages in thread
* Re: [bitbake-devel] [PATCH] event: add bb.event.ParseError
2023-04-10 9:19 [PATCH] event: add bb.event.ParseError mingli.yu
@ 2023-04-10 9:43 ` Frédéric Martinsons
2023-04-11 16:50 ` Richard Purdie
1 sibling, 0 replies; 5+ messages in thread
From: Frédéric Martinsons @ 2023-04-10 9:43 UTC (permalink / raw)
To: Yu, Mingli; +Cc: bitbake-devel
[-- Attachment #1: Type: text/plain, Size: 2271 bytes --]
On Mon, 10 Apr 2023 at 11:19, Yu, Mingli <mingli.yu@eng.windriver.com>
wrote:
> From: Mingli Yu <mingli.yu@windriver.com>
>
> Add bb.event.ParseError to let error-report can catch this kind of error.
>
> Signed-off-by: Mingli Yu <mingli.yu@windriver.com>
> ---
> lib/bb/cooker.py | 6 ++++--
> lib/bb/event.py | 8 ++++++++
> 2 files changed, 12 insertions(+), 2 deletions(-)
>
> diff --git a/lib/bb/cooker.py b/lib/bb/cooker.py
> index 1797a1d4..206f8ffb 100644
> --- a/lib/bb/cooker.py
> +++ b/lib/bb/cooker.py
> @@ -2223,7 +2223,7 @@ class CookerParser(object):
>
> self.results = itertools.chain(self.results,
> self.parse_generator())
>
> - def shutdown(self, clean=True):
> + def shutdown(self, clean=True, eventmsg=""):
> if not self.toparse:
> return
> if self.haveshutdown:
> @@ -2238,6 +2238,8 @@ class CookerParser(object):
>
> bb.event.fire(event, self.cfgdata)
> else:
> + if eventmsg:
> + bb.event.fire(bb.event.ParseError(eventmsg), self.cfgdata)
> bb.error("Parsing halted due to errors, see error messages
> above")
>
> # Cleanup the queue before call process.join(), otherwise there
> might be
> @@ -2355,7 +2357,7 @@ class CookerParser(object):
> except bb.parse.ParseError as exc:
> self.error += 1
> logger.error(str(exc))
> - self.shutdown(clean=False)
> + self.shutdown(clean=False, eventmsg=str(exc))
> return False
> except bb.data_smart.ExpansionError as exc:
> self.error += 1
> diff --git a/lib/bb/event.py b/lib/bb/event.py
> index 37cc630c..72393829 100644
> --- a/lib/bb/event.py
> +++ b/lib/bb/event.py
> @@ -856,3 +856,11 @@ class FindSigInfoResult(Event):
> def __init__(self, result):
> Event.__init__(self)
> self.result = result
> +
> +class ParseError(Event):
> + """
> + Event to indicate parse failed
> + """
> + def __init__(self, msg):
> + Event.__init__(self)
> + self._msg = msg
> --
> 2.25.1
>
>
Can't we just use super ?
super().__init__() instead of Event.__init__(self)
I didn't find a reference but I think it is a more pythonic way of calling
parent class.
[-- Attachment #2: Type: text/html, Size: 3163 bytes --]
^ permalink raw reply [flat|nested] 5+ messages in thread
* Re: [bitbake-devel] [PATCH] event: add bb.event.ParseError
2023-04-10 9:19 [PATCH] event: add bb.event.ParseError mingli.yu
2023-04-10 9:43 ` [bitbake-devel] " Frédéric Martinsons
@ 2023-04-11 16:50 ` Richard Purdie
2023-04-12 2:42 ` Yu, Mingli
1 sibling, 1 reply; 5+ messages in thread
From: Richard Purdie @ 2023-04-11 16:50 UTC (permalink / raw)
To: Yu, Mingli, bitbake-devel
On Mon, 2023-04-10 at 17:19 +0800, Yu, Mingli wrote:
> From: Mingli Yu <mingli.yu@windriver.com>
>
> Add bb.event.ParseError to let error-report can catch this kind of error.
>
> Signed-off-by: Mingli Yu <mingli.yu@windriver.com>
> ---
> lib/bb/cooker.py | 6 ++++--
> lib/bb/event.py | 8 ++++++++
> 2 files changed, 12 insertions(+), 2 deletions(-)
>
> diff --git a/lib/bb/cooker.py b/lib/bb/cooker.py
> index 1797a1d4..206f8ffb 100644
> --- a/lib/bb/cooker.py
> +++ b/lib/bb/cooker.py
> @@ -2223,7 +2223,7 @@ class CookerParser(object):
>
> self.results = itertools.chain(self.results, self.parse_generator())
>
> - def shutdown(self, clean=True):
> + def shutdown(self, clean=True, eventmsg=""):
> if not self.toparse:
> return
> if self.haveshutdown:
> @@ -2238,6 +2238,8 @@ class CookerParser(object):
>
> bb.event.fire(event, self.cfgdata)
> else:
> + if eventmsg:
> + bb.event.fire(bb.event.ParseError(eventmsg), self.cfgdata)
> bb.error("Parsing halted due to errors, see error messages above")
Shouldn't this always fire the event even if there is no specific error
message?
Cheers,
Richard
^ permalink raw reply [flat|nested] 5+ messages in thread
* Re: [bitbake-devel] [PATCH] event: add bb.event.ParseError
2023-04-11 16:50 ` Richard Purdie
@ 2023-04-12 2:42 ` Yu, Mingli
2023-04-12 6:58 ` Richard Purdie
0 siblings, 1 reply; 5+ messages in thread
From: Yu, Mingli @ 2023-04-12 2:42 UTC (permalink / raw)
To: Richard Purdie, Yu, Mingli, bitbake-devel
Hi Richard,
On 4/12/23 00:50, Richard Purdie wrote:
> CAUTION: This email comes from a non Wind River email account!
> Do not click links or open attachments unless you recognize the sender and know the content is safe.
>
> On Mon, 2023-04-10 at 17:19 +0800, Yu, Mingli wrote:
>> From: Mingli Yu <mingli.yu@windriver.com>
>>
>> Add bb.event.ParseError to let error-report can catch this kind of error.
>>
>> Signed-off-by: Mingli Yu <mingli.yu@windriver.com>
>> ---
>> lib/bb/cooker.py | 6 ++++--
>> lib/bb/event.py | 8 ++++++++
>> 2 files changed, 12 insertions(+), 2 deletions(-)
>>
>> diff --git a/lib/bb/cooker.py b/lib/bb/cooker.py
>> index 1797a1d4..206f8ffb 100644
>> --- a/lib/bb/cooker.py
>> +++ b/lib/bb/cooker.py
>> @@ -2223,7 +2223,7 @@ class CookerParser(object):
>>
>> self.results = itertools.chain(self.results, self.parse_generator())
>>
>> - def shutdown(self, clean=True):
>> + def shutdown(self, clean=True, eventmsg=""):
>> if not self.toparse:
>> return
>> if self.haveshutdown:
>> @@ -2238,6 +2238,8 @@ class CookerParser(object):
>>
>> bb.event.fire(event, self.cfgdata)
>> else:
>> + if eventmsg:
>> + bb.event.fire(bb.event.ParseError(eventmsg), self.cfgdata)
>> bb.error("Parsing halted due to errors, see error messages above")
>
> Shouldn't this always fire the event even if there is no specific error
> message?
There are many kinds of exception here and each exception will call
shudown function, but we only catch bb.parse.ParseError exception and
pass eventmsg to shudown function when it is bb.parse.ParseError. So
checking eventmsg in shutdown function should be okay.
except bb.parse.ParseError as exc:
self.error += 1
logger.error(str(exc))
self.shutdown(clean=False, eventmsg=str(exc))
return False
Thanks,
>
> Cheers,
>
> Richard
>
^ permalink raw reply [flat|nested] 5+ messages in thread
* Re: [bitbake-devel] [PATCH] event: add bb.event.ParseError
2023-04-12 2:42 ` Yu, Mingli
@ 2023-04-12 6:58 ` Richard Purdie
0 siblings, 0 replies; 5+ messages in thread
From: Richard Purdie @ 2023-04-12 6:58 UTC (permalink / raw)
To: Yu, Mingli, Yu, Mingli, bitbake-devel
On Wed, 2023-04-12 at 10:42 +0800, Yu, Mingli wrote:
> Hi Richard,
>
> On 4/12/23 00:50, Richard Purdie wrote:
> > CAUTION: This email comes from a non Wind River email account!
> > Do not click links or open attachments unless you recognize the sender and know the content is safe.
> >
> > On Mon, 2023-04-10 at 17:19 +0800, Yu, Mingli wrote:
> > > From: Mingli Yu <mingli.yu@windriver.com>
> > >
> > > Add bb.event.ParseError to let error-report can catch this kind of error.
> > >
> > > Signed-off-by: Mingli Yu <mingli.yu@windriver.com>
> > > ---
> > > lib/bb/cooker.py | 6 ++++--
> > > lib/bb/event.py | 8 ++++++++
> > > 2 files changed, 12 insertions(+), 2 deletions(-)
> > >
> > > diff --git a/lib/bb/cooker.py b/lib/bb/cooker.py
> > > index 1797a1d4..206f8ffb 100644
> > > --- a/lib/bb/cooker.py
> > > +++ b/lib/bb/cooker.py
> > > @@ -2223,7 +2223,7 @@ class CookerParser(object):
> > >
> > > self.results = itertools.chain(self.results, self.parse_generator())
> > >
> > > - def shutdown(self, clean=True):
> > > + def shutdown(self, clean=True, eventmsg=""):
> > > if not self.toparse:
> > > return
> > > if self.haveshutdown:
> > > @@ -2238,6 +2238,8 @@ class CookerParser(object):
> > >
> > > bb.event.fire(event, self.cfgdata)
> > > else:
> > > + if eventmsg:
> > > + bb.event.fire(bb.event.ParseError(eventmsg), self.cfgdata)
> > > bb.error("Parsing halted due to errors, see error messages above")
> >
> > Shouldn't this always fire the event even if there is no specific error
> > message?
>
> There are many kinds of exception here and each exception will call
> shudown function, but we only catch bb.parse.ParseError exception and
> pass eventmsg to shudown function when it is bb.parse.ParseError. So
> checking eventmsg in shutdown function should be okay.
>
> except bb.parse.ParseError as exc:
> self.error += 1
> logger.error(str(exc))
> self.shutdown(clean=False, eventmsg=str(exc))
> return False
I don't mean to call it totally unconditionally, only in the same cases
as we show the bb.error()
Cheers,
Richard
^ permalink raw reply [flat|nested] 5+ messages in thread
end of thread, other threads:[~2023-04-12 6:58 UTC | newest]
Thread overview: 5+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2023-04-10 9:19 [PATCH] event: add bb.event.ParseError mingli.yu
2023-04-10 9:43 ` [bitbake-devel] " Frédéric Martinsons
2023-04-11 16:50 ` Richard Purdie
2023-04-12 2:42 ` Yu, Mingli
2023-04-12 6:58 ` Richard Purdie
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).