From 19247e44a388a58ea03cc91decb8b18e022efd52 Mon Sep 17 00:00:00 2001 From: Christopher Larson Date: Mon, 9 Jan 2012 15:48:33 -0600 Subject: oe.license: avoid the need to catch SyntaxError (From OE-Core rev: cace9ddc0edd654877d968643960fa4343472b58) Signed-off-by: Christopher Larson Signed-off-by: Richard Purdie --- meta/lib/oe/license.py | 23 +++++++++++++++++++---- 1 file changed, 19 insertions(+), 4 deletions(-) (limited to 'meta/lib') diff --git a/meta/lib/oe/license.py b/meta/lib/oe/license.py index 3543cfe1f6..5914506a42 100644 --- a/meta/lib/oe/license.py +++ b/meta/lib/oe/license.py @@ -5,13 +5,25 @@ import ast import re from fnmatch import fnmatchcase as fnmatch -class InvalidLicense(StandardError): +class LicenseError(StandardError): + pass + +class LicenseSyntaxError(LicenseError): + def __init__(self, licensestr, exc): + self.licensestr = licensestr + self.exc = exc + LicenseError.__init__(self) + + def __str__(self): + return "error in '%s': %s" % (self.licensestr, self.exc) + +class InvalidLicense(LicenseError): def __init__(self, license): self.license = license - StandardError.__init__(self) + LicenseError.__init__(self) def __str__(self): - return "invalid license '%s'" % self.license + return "invalid characters in license '%s'" % self.license license_operator = re.compile('([&|() ])') license_pattern = re.compile('[a-zA-Z0-9.+_\-]+$') @@ -59,7 +71,10 @@ class FlattenVisitor(LicenseVisitor): def flattened_licenses(licensestr, choose_licenses): """Given a license string and choose_licenses function, return a flat list of licenses""" flatten = FlattenVisitor(choose_licenses) - flatten.visit_string(licensestr) + try: + flatten.visit_string(licensestr) + except SyntaxError as exc: + raise LicenseSyntaxError(licensestr, exc) return flatten.licenses def is_included(licensestr, whitelist=None, blacklist=None): -- cgit v1.2.3-54-g00ecf