[oe-commits] [bitbake] 04/07: data_smart: Add original traceback to ExpansionError

git at git.openembedded.org git at git.openembedded.org
Fri Nov 16 14:03:09 UTC 2018


This is an automated email from the git hooks/post-receive script.

rpurdie pushed a commit to branch master-next
in repository bitbake.

commit c0fe524c1aeccb24ddd2e1f7bf235c00fdbf79a7
Author: Robert Yang <liezhi.yang at windriver.com>
AuthorDate: Wed Nov 14 17:46:38 2018 +0800

    data_smart: Add original traceback to ExpansionError
    
    This can make it print clearer errors, for exmaple:
    
    Add Runtime_error to 'def oe_import(d)"
    
     16 def oe_import(d):
     17     import sys
     18     Runtime_error
    [snip]
    
    * Before the patch:
      $ bitbake -p
      ERROR: Unable to parse /buildarea1/lyang1/poky/bitbake/lib/bb/data_smart.py
      Traceback (most recent call last):
        File "/buildarea1/lyang1/poky/bitbake/lib/bb/data_smart.py", line 430, in DataSmart.expandWithRefs(s='${@oe_import(d)}', varname='OE_IMPORTED[:=]'):
                       except Exception as exc:
          >                raise ExpansionError(varname, s, exc) from exc
    
      bb.data_smart.ExpansionError: Failure expanding variable OE_IMPORTED[:=], expression was ${@oe_import(d)} which triggered exception NameError: name 'Runtime_error' is not defined
    
      This error message has two problems:
      - "Unable to parse data_smart.py": This isn't the real cause.
      - It pionts to "raise ExpansionError(varname, s, exc) from exc" which isn't clear enough.
    
    * After the patch:
      $ bitbake -p
      ERROR: Unable to parse OE_IMPORTED[:=]
      Traceback (most recent call last):
        File "OE_IMPORTED[:=]", line 1, in <module>
        File "/buildarea1/lyang1/poky/meta/classes/base.bbclass", line 18, in oe_import(d=<bb.data_smart.DataSmart object at 0x7f9257e7a0b8>):
               import sys
          >    Runtime_error
    
      bb.data_smart.ExpansionError: Failure expanding variable OE_IMPORTED[:=], expression was ${@oe_import(d)} which triggered exception NameError: name 'Runtime_error' is not defined
    
    This one is more clearer than before.
    
    Signed-off-by: Robert Yang <liezhi.yang at windriver.com>
    Signed-off-by: Richard Purdie <richard.purdie at linuxfoundation.org>
---
 lib/bb/data_smart.py | 3 ++-
 1 file changed, 2 insertions(+), 1 deletion(-)

diff --git a/lib/bb/data_smart.py b/lib/bb/data_smart.py
index 6b94fc4..efa5a79 100644
--- a/lib/bb/data_smart.py
+++ b/lib/bb/data_smart.py
@@ -427,7 +427,8 @@ class DataSmart(MutableMapping):
             except bb.parse.SkipRecipe:
                 raise
             except Exception as exc:
-                raise ExpansionError(varname, s, exc) from exc
+                tb = sys.exc_info()[2]
+                raise ExpansionError(varname, s, exc).with_traceback(tb) from exc
 
         varparse.value = s
 

-- 
To stop receiving notification emails like this one, please contact
the administrator of this repository.


More information about the Openembedded-commits mailing list