From: Aníbal Limón Date: Fri, 8 May 2015 20:41:30 +0000 (+0000) Subject: license: Split visit_string in LicenseVisitor X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=bb3469f9d32ff18cf308a308869c0ae3500b5a15;p=thirdparty%2Fopenembedded%2Fopenembedded-core-contrib.git license: Split visit_string in LicenseVisitor Create get_elements and visit_elements in LicenseVisitor based on visit_string this allow to do modifications on elements before parsing with AST. (From OE-Core rev: c16cf0a0331d128e4ba7341fe28510a9bfb7ee16) Signed-off-by: Aníbal Limón Signed-off-by: Richard Purdie --- diff --git a/meta/lib/oe/license.py b/meta/lib/oe/license.py index bc146a28c4e..254279db53c 100644 --- a/meta/lib/oe/license.py +++ b/meta/lib/oe/license.py @@ -44,8 +44,8 @@ license_operator = re.compile('([' + license_operator_chars + '])') license_pattern = re.compile('[a-zA-Z0-9.+_\-]+$') class LicenseVisitor(ast.NodeVisitor): - """Syntax tree visitor which can accept OpenEmbedded license strings""" - def visit_string(self, licensestr): + """Get elements based on OpenEmbedded license strings""" + def get_elements(self, licensestr): new_elements = [] elements = filter(lambda x: x.strip(), license_operator.split(licensestr)) for pos, element in enumerate(elements): @@ -57,7 +57,16 @@ class LicenseVisitor(ast.NodeVisitor): raise InvalidLicense(element) new_elements.append(element) - self.visit(ast.parse(' '.join(new_elements))) + return new_elements + + """Syntax tree visitor which can accept elements previously generated with + OpenEmbedded license string""" + def visit_elements(self, elements): + self.visit(ast.parse(' '.join(elements))) + + """Syntax tree visitor which can accept OpenEmbedded license strings""" + def visit_string(self, licensestr): + self.visit_elements(self.get_elements(licensestr)) class FlattenVisitor(LicenseVisitor): """Flatten a license tree (parsed from a string) by selecting one of each