diff options
author | Aníbal Limón <anibal.limon@linux.intel.com> | 2015-05-08 20:41:30 +0000 |
---|---|---|
committer | Richard Purdie <richard.purdie@linuxfoundation.org> | 2015-05-09 22:26:01 +0100 |
commit | c16cf0a0331d128e4ba7341fe28510a9bfb7ee16 (patch) | |
tree | 771fe8a2a76ce39fbab21fda3a7b371107133469 /meta | |
parent | 243fe3a4583a21ad6c0b2a26196ed18d41740f7a (diff) | |
download | openembedded-core-c16cf0a0331d128e4ba7341fe28510a9bfb7ee16.tar.gz openembedded-core-c16cf0a0331d128e4ba7341fe28510a9bfb7ee16.tar.bz2 openembedded-core-c16cf0a0331d128e4ba7341fe28510a9bfb7ee16.zip |
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>
Diffstat (limited to 'meta')
-rw-r--r-- | meta/lib/oe/license.py | 15 |
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 |