From 7c9b19bb8d3e4a83cb5e11d9155d014d0a6e583f Mon Sep 17 00:00:00 2001 From: Reinhold Kainhofer Date: Sun, 19 Aug 2007 23:58:27 +0200 Subject: [PATCH] Don't crash when a score does not have an explicit key or clef set (e.g. Rosegarden produces such files). --- python/musicxml.py | 7 +++++-- scripts/musicxml2ly.py | 4 ++-- 2 files changed, 7 insertions(+), 4 deletions(-) diff --git a/python/musicxml.py b/python/musicxml.py index 304b2c6..e7fe77d 100644 --- a/python/musicxml.py +++ b/python/musicxml.py @@ -39,10 +39,13 @@ class Xml_node: p = p.get_parent () def get_typed_children (self, klass): - return [c for c in self._children if isinstance(c, klass)] + if not klass: + return [] + else: + return [c for c in self._children if isinstance(c, klass)] def get_named_children (self, nm): - return self.get_typed_children (class_dict[nm]) + return self.get_typed_children (class_dict.get (nm)) def get_named_child (self, nm): return self.get_maybe_exist_named_child (nm) diff --git a/scripts/musicxml2ly.py b/scripts/musicxml2ly.py index a82f3dd..4bb3081 100644 --- a/scripts/musicxml2ly.py +++ b/scripts/musicxml2ly.py @@ -131,10 +131,10 @@ def musicxml_attributes_to_lily (attrs): 'key': musicxml_key_to_lily } for (k, func) in attr_dispatch.items (): - childs = attrs.get_named_children (k) + children = attrs.get_named_children (k) ## ugh: you get clefs spread over staves for piano - if childs: + if children: elts.append (func (attrs)) return elts -- 1.5.2.3