diff options
-rw-r--r-- | layman/overlays/overlay.py | 46 |
1 files changed, 26 insertions, 20 deletions
diff --git a/layman/overlays/overlay.py b/layman/overlays/overlay.py index dd2437c..d57fe22 100644 --- a/layman/overlays/overlay.py +++ b/layman/overlays/overlay.py @@ -122,11 +122,14 @@ class Overlay(object): elif 'name' in xml.attrib: self.name = ensure_unicode(xml.attrib['name']) else: - raise Exception('Overlay is missing a "name" entry!') + raise Exception('Overlay from_xml(), "' + self.name + \ + 'is missing a "name" entry!') _sources = xml.findall('source') - if _sources != None: + # new xml format + if _sources != []: _sources = [e for e in _sources if 'type' in e.attrib] + #old xml format elif ('src' in xml.attrib) and ('type' in xml.attrib): s = ET.Element('source', type=xml.attrib['type']) s.text = xml.attrib['src'] @@ -138,13 +141,14 @@ class Overlay(object): try: _class = OVERLAY_TYPES[_type] except KeyError: - raise Exception('Unknown overlay type "%s"!' % _type) + raise Exception('Overlay from_xml(), "' + self.name + \ + 'Unknown overlay type "%s"!' % _type) _location = ensure_unicode(strip_text(source_elem)) return _class(parent=self, config=self.config, _location=_location, ignore=ignore, quiet=quiet) if not len(_sources): - raise Exception('Overlay "' + self.name + \ + raise Exception('Overlay from_xml(), "' + self.name + \ '" is missing a "source" entry!') self.sources = [create_overlay_source(e) for e in _sources] @@ -176,8 +180,8 @@ class Overlay(object): self.owner_email = '' self.owner_name = None if not ignore: - raise Exception('Overlay "' + self.name + '" is missing a ' - '"owner.email" entry!') + raise Exception('Overlay from_xml(), "' + self.name + \ + '" is missing an "owner.email" entry!') elif ignore == 1: self.output.warn('Overlay "' + self.name + '" is missing a ' '"owner.email" entry!', 4) @@ -190,8 +194,8 @@ class Overlay(object): else: self.description = '' if not ignore: - raise Exception('Overlay "' + self.name + '" is missing a ' - '"description" entry!') + raise Exception('Overlay from_xml(), "' + self.name + \ + '" is missing a description" entry!') elif ignore == 1: self.output.warn('Overlay "' + self.name + '" is missing a ' '"description" entry!', 4) @@ -233,17 +237,18 @@ class Overlay(object): def from_dict(self, overlay, ignore, quiet): """Process an xml overlay definition """ - self.output.debug("Overlay.from_dict; overlay" + str(overlay)) + self.output.debug("Overlay from_dict(); overlay" + str(overlay)) _name = overlay['name'] if _name != None: self.name = ensure_unicode(_name) else: - raise Exception('Overlay is missing a "name" entry!') + raise Exception('Overlay from_dict(), "' + self.name + + 'is missing a "name" entry!') _sources = overlay['sources'] if _sources == None: - raise Exception('Overlay "' + self.name + + raise Exception('Overlay from_dict(), "' + self.name + '" is missing a "source" entry!') def create_dict_overlay_source(source_): @@ -251,7 +256,8 @@ class Overlay(object): try: _class = OVERLAY_TYPES[_type] except KeyError: - raise Exception('Unknown overlay type "%s"!' % _type) + raise Exception('Overlay from_dict(), "' + self.name + + 'Unknown overlay type "%s"!' % _type) _location = ensure_unicode(_src) return _class(parent=self, config=self.config, _location=_location, ignore=ignore, quiet=quiet) @@ -270,11 +276,11 @@ class Overlay(object): else: self.owner_email = None if not ignore: - raise Exception('Overlay "' + self.name + '" is missing a ' - '"owner.email" entry!') + raise Exception('Overlay from_dict(), "' + self.name + + '" is missing an "owner.email" entry!') elif ignore == 1: - self.output.warn('Overlay "' + self.name + '" is missing a ' - '"owner.email" entry!', 4) + self.output.warn('Overlay from_dict(), "' + self.name + + '" is missing an "owner.email" entry!', 4) _desc = overlay['description'] if _desc != None: @@ -284,11 +290,11 @@ class Overlay(object): else: self.description = '' if not ignore: - raise Exception('Overlay "' + self.name + '" is missing a ' - '"description" entry!') + raise Exception('Overlay from_dict(), "' + self.name + + '" is missing a "description" entry!') elif ignore == 1: - self.output.warn('Overlay "' + self.name + '" is missing a ' - '"description" entry!', 4) + self.output.warn('Overlay from_dict(), "' + self.name + + '" is missing a "description" entry!', 4) if overlay['status']: self.status = ensure_unicode(overlay['status']) |