aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorAníbal Limón <anibal.limon@linux.intel.com>2015-05-08 20:41:30 +0000
committerRichard Purdie <richard.purdie@linuxfoundation.org>2015-05-09 22:26:01 +0100
commitc16cf0a0331d128e4ba7341fe28510a9bfb7ee16 (patch)
tree771fe8a2a76ce39fbab21fda3a7b371107133469
parent243fe3a4583a21ad6c0b2a26196ed18d41740f7a (diff)
downloadopenembedded-core-contrib-c16cf0a0331d128e4ba7341fe28510a9bfb7ee16.tar.gz
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. Signed-off-by: Aníbal Limón <anibal.limon@linux.intel.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
-rw-r--r--meta/lib/oe/license.py15
1 files changed, 12 insertions, 3 deletions
diff --git a/meta/lib/oe/license.py b/meta/lib/oe/license.py
index bc146a28c4..254279db53 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