Re: [OE-core] [bitbake][PATCH] lib/bb/build.py: Raise proper KeyError if function does not exist

2017-02-08 Thread Paul Eggleton
Hi Mike,

On Wednesday, 8 February 2017 7:17:53 AM NZDT Mike Looijmans wrote:
> If one adds the following line to an image recipe without defining
> the function:
> ROOTFS_POSTPROCESS_COMMAND += "rootfs_funky_stuff;"
> bitbake will terminate with a cryptic error message:
> AttributeError: 'NoneType' object has no attribute 'get'
> 
> To inform the user of what bitbake wasn't able to find, raise a KeyError
> exception denoting the function name before that happens. This changes the
> message to the much more useful:
> KeyError: 'rootfs_funky_stuff'
> 
> Signed-off-by: Mike Looijmans 
> ---
>  lib/bb/build.py | 2 ++
>  1 file changed, 2 insertions(+)
> 
> diff --git a/lib/bb/build.py b/lib/bb/build.py
> index c4c8aeb..5bc18c1 100644
> --- a/lib/bb/build.py
> +++ b/lib/bb/build.py
> @@ -194,6 +194,8 @@ def exec_func(func, d, dirs = None,
> pythonexception=False): oldcwd = None
> 
>  flags = d.getVarFlags(func)
> +if flags is None:
> +raise KeyError(func)
>  cleandirs = flags.get('cleandirs')
>  if cleandirs:
>  for cdir in d.expand(cleandirs).split():

This should got to the bitbake-devel list.

Whilst I agree this is an improvement, since we're trying to print a more 
reasonable error message, wouldn't we be better off explicitly saying 
"Function %s not defined" or similar?

Cheers,
Paul

-- 

Paul Eggleton
Intel Open Source Technology Centre
-- 
___
Openembedded-core mailing list
Openembedded-core@lists.openembedded.org
http://lists.openembedded.org/mailman/listinfo/openembedded-core


[OE-core] [bitbake][PATCH] lib/bb/build.py: Raise proper KeyError if function does not exist

2017-02-07 Thread Mike Looijmans
If one adds the following line to an image recipe without defining
the function:
ROOTFS_POSTPROCESS_COMMAND += "rootfs_funky_stuff;"
bitbake will terminate with a cryptic error message:
AttributeError: 'NoneType' object has no attribute 'get'

To inform the user of what bitbake wasn't able to find, raise a KeyError
exception denoting the function name before that happens. This changes the
message to the much more useful:
KeyError: 'rootfs_funky_stuff'

Signed-off-by: Mike Looijmans 
---
 lib/bb/build.py | 2 ++
 1 file changed, 2 insertions(+)

diff --git a/lib/bb/build.py b/lib/bb/build.py
index c4c8aeb..5bc18c1 100644
--- a/lib/bb/build.py
+++ b/lib/bb/build.py
@@ -194,6 +194,8 @@ def exec_func(func, d, dirs = None, pythonexception=False):
 oldcwd = None
 
 flags = d.getVarFlags(func)
+if flags is None:
+raise KeyError(func)
 cleandirs = flags.get('cleandirs')
 if cleandirs:
 for cdir in d.expand(cleandirs).split():
-- 
1.9.1

-- 
___
Openembedded-core mailing list
Openembedded-core@lists.openembedded.org
http://lists.openembedded.org/mailman/listinfo/openembedded-core