From: Julien Rioux Date: Fri, 22 Jun 2012 09:42:00 +0000 (-0400) Subject: musicxml2ly: Normalize whitespace in the source. X-Git-Tag: release/2.15.41-1~28 X-Git-Url: https://git.donarmstrong.com/?a=commitdiff_plain;h=722ca6d1bd66fb85e525f2fa25702df7a09dea92;p=lilypond.git musicxml2ly: Normalize whitespace in the source. --- diff --git a/python/musicxml.py b/python/musicxml.py index 50945e8d8d..d03d116de7 100644 --- a/python/musicxml.py +++ b/python/musicxml.py @@ -51,10 +51,10 @@ class Xml_node: self._name = 'xml_node' self._parent = None self._attribute_dict = {} - + def get_parent (self): return self._parent - + def is_first (self): return self._parent.get_typed_children (self.__class__)[0] == self @@ -79,7 +79,7 @@ class Xml_node: while p: ly.progress (' In: <%s %s>\n' % (p._name, ' '.join (['%s=%s' % item for item in p._attribute_dict.items ()]))) p = p.get_parent () - + def dump (self, indent = ''): ly.debug_output ('%s<%s%s>' % (indent, self._name, ''.join ([' %s=%s' % item for item in self._attribute_dict.items ()]))) non_text_children = [c for c in self._children if not isinstance (c, Hash_text)] @@ -91,7 +91,7 @@ class Xml_node: ly.debug_output (indent) ly.debug_output ('\n' % self._name) - + def get_typed_children (self, klass): if not klass: return [] @@ -151,7 +151,7 @@ class Work (Xml_node): return wt.get_text () else: return '' - + def get_work_title (self): return self.get_work_information ('work-title') def get_work_number (self): @@ -203,7 +203,7 @@ class Identification (Xml_node): return v v = self.get_creator ('poet') return v - + def get_encoding_information (self, type): enc = self.get_named_children ('encoding') if enc: @@ -212,7 +212,7 @@ class Identification (Xml_node): return children[0].get_text () else: return None - + def get_encoding_software (self): return self.get_encoding_information ('software') def get_encoding_date (self): @@ -221,7 +221,7 @@ class Identification (Xml_node): return self.get_encoding_information ('encoder') def get_encoding_description (self): return self.get_encoding_information ('encoding-description') - + def get_encoding_software_list (self): enc = self.get_named_children ('encoding') software = [] @@ -237,7 +237,7 @@ class Identification (Xml_node): misc_fields = m.get_named_children ('miscellaneous-field') for mf in misc_fields: if hasattr (mf, 'name') and mf.name == 'description': - return mf.get_text () + return mf.get_text () return None class Duration (Music_xml_node): @@ -310,17 +310,17 @@ class Attributes (Measure_element): return cn[0] == self._original_tag else: return cn[0] == self - + def set_attributes_from_previous (self, dict): self._dict.update (dict) - + def read_self (self): for c in self.get_all_children (): self._dict[c.get_name()] = c def get_named_attribute (self, name): return self._dict.get (name) - + def single_time_sig_to_fraction (self, sig): if len (sig) < 2: return 0 @@ -343,7 +343,7 @@ class Attributes (Measure_element): # Simple (maybe compound) time signature of the form (beat, ..., type) return self.single_time_sig_to_fraction (sig) return 0 - + def get_time_signature (self): "Return time sig as a (beat, beat-type) tuple. For compound signatures," "return either (beat, beat,..., beat-type) or ((beat,..., type), " @@ -480,7 +480,7 @@ class Note (Measure_element): return 3 else: return None - + def get_duration_info (self): log = self.get_duration_log () if log != None: @@ -499,7 +499,7 @@ class Part_list (Music_xml_node): def __init__ (self): Music_xml_node.__init__ (self) self._id_instrument_name_dict = {} - + def generate_id_instrument_dict (self): ## not empty to make sure this happens only once. @@ -527,7 +527,7 @@ class Part_group (Music_xml_node): pass class Score_part (Music_xml_node): pass - + class Measure (Music_xml_node): def __init__ (self): Music_xml_node.__init__ (self) @@ -612,13 +612,13 @@ class Part (Music_xml_node): n = n._parent return n.get_named_child ('part-list') - + def interpret (self): """Set durations and starting points.""" """The starting point of the very first note is 0!""" - + part_list = self.get_part_list () - + now = Rational (0) factor = Rational (1) attributes_dict = {} @@ -675,15 +675,15 @@ class Part (Music_xml_node): n.read_self () attributes_dict = n._dict.copy () attributes_object = n - + factor = Rational (1, int (attributes_dict.get ('divisions').get_text ())) - + if (n.get_maybe_exist_typed_child (Duration)): mxl_dur = n.get_maybe_exist_typed_child (Duration) dur = mxl_dur.get_length () * factor - + if n.get_name() == 'backup': dur = - dur # reset all graces before the backup to after-graces: @@ -714,7 +714,7 @@ class Part (Music_xml_node): n._prev_measure_position = last_measure_position # After-graces are placed at the same position as the previous note if isinstance(n, Note) and n.is_after_grace (): - # TODO: We should do the same for grace notes at the end of + # TODO: We should do the same for grace notes at the end of # a measure with no following note!!! n._when = last_moment n._measure_position = last_measure_position @@ -834,8 +834,8 @@ class Part (Music_xml_node): else: id = "None" - # We don't need backup/forward any more, since we have already - # assigned the correct onset times. + # We don't need backup/forward any more, since we have already + # assigned the correct onset times. # TODO: Let Grouping through. Also: link, print, bokmark sound if not (isinstance (n, Note) or isinstance (n, Attributes) or isinstance (n, Direction) or isinstance (n, Partial) or @@ -874,13 +874,13 @@ class Part (Music_xml_node): continue if isinstance (n, Harmony) or isinstance (n, FiguredBass): - # store the harmony or figured bass element until we encounter + # store the harmony or figured bass element until we encounter # the next note and assign it only to that one voice. assign_to_next_note.append (n) continue if hasattr (n, 'print-object') and getattr (n, 'print-object') == "no": - #Skip this note. + #Skip this note. pass else: for i in assign_to_next_note: @@ -987,7 +987,7 @@ class Tuplet (Music_xml_spanner): def get_tuplet_note_count (self, tuplet_note): if tuplet_note: tuplet_nr = tuplet_note.get_maybe_exist_named_child ('tuplet-number') - if tuplet_nr: + if tuplet_nr: return int (tuplet_nr.get_text ()) return None def get_normal_nr (self): @@ -1016,7 +1016,7 @@ class Beam (Music_xml_spanner): class Wavy_line (Music_xml_spanner): pass - + class Pedal (Music_xml_spanner): pass @@ -1249,7 +1249,7 @@ def get_class (name): klass = new.classobj (class_name, (Music_xml_node,) , {}) class_dict[name] = klass return klass - + def lxml_demarshal_node (node): name = node.tag @@ -1258,13 +1258,13 @@ def lxml_demarshal_node (node): return None klass = get_class (name) py_node = klass() - + py_node._original = node py_node._name = name py_node._data = node.text py_node._children = [lxml_demarshal_node (cn) for cn in node.getchildren()] py_node._children = filter (lambda x: x, py_node._children) - + for c in py_node._children: c._parent = py_node @@ -1288,7 +1288,7 @@ def minidom_demarshal_node (node): for (nm, value) in node.attributes.items (): py_node.__dict__[nm] = value py_node._attribute_dict[nm] = value - + py_node._data = None if node.nodeType == node.TEXT_NODE and node.data: py_node._data = node.data @@ -1299,7 +1299,7 @@ def minidom_demarshal_node (node): if __name__ == '__main__': import lxml.etree - + tree = lxml.etree.parse ('beethoven.xml') mxl_tree = lxml_demarshal_node (tree.getroot ()) ks = class_dict.keys () diff --git a/scripts/musicxml2ly.py b/scripts/musicxml2ly.py index 69125dc9db..5d44c39cfb 100644 --- a/scripts/musicxml2ly.py +++ b/scripts/musicxml2ly.py @@ -265,7 +265,7 @@ def staff_attributes_to_string_tunings (mxl_attr): if staff_lines: lines = string.atoi (staff_lines.get_text ()) - tunings = [musicexp.Pitch()]*lines + tunings = [musicexp.Pitch()] * lines staff_tunings = details.get_named_children ('staff-tuning') for i in staff_tunings: p = musicexp.Pitch() @@ -617,15 +617,15 @@ def group_repeats (music_list): r.repeat_count = repeat_times # don't erase the first element for "implicit" repeats (i.e. no # starting repeat bars at the very beginning) - start = repeat_start+1 + start = repeat_start + 1 if repeat_start == music_start: start = music_start r.set_music (music_list[start:repeat_end]) for (start, end) in endings: s = musicexp.SequentialMusic () - s.elements = music_list[start+1:end] + s.elements = music_list[start + 1:end] r.add_ending (s) - del music_list[repeat_start:final_marker+1] + del music_list[repeat_start:final_marker + 1] music_list.insert (repeat_start, r) repeat_replaced = True pos += 1 @@ -637,11 +637,11 @@ def group_repeats (music_list): # elements of the note: def musicxml_tuplet_to_lily (tuplet_elt, time_modification): tsm = musicexp.TimeScaledMusic () - fraction = (1,1) + fraction = (1, 1) if time_modification: fraction = time_modification.get_fraction () tsm.numerator = fraction[0] - tsm.denominator = fraction[1] + tsm.denominator = fraction[1] normal_type = tuplet_elt.get_normal_type () @@ -776,19 +776,19 @@ def musicxml_key_to_lily (attributes): (fifths, mode) = key_sig change.mode = mode - start_pitch = musicexp.Pitch () + start_pitch = musicexp.Pitch () start_pitch.octave = 0 try: - (n,a) = { - 'major' : (0,0), - 'minor' : (5,0), - 'ionian' : (0,0), - 'dorian' : (1,0), - 'phrygian' : (2,0), - 'lydian' : (3,0), - 'mixolydian': (4,0), - 'aeolian' : (5,0), - 'locrian' : (6,0), + (n, a) = { + 'major' : (0, 0), + 'minor' : (5, 0), + 'ionian' : (0, 0), + 'dorian' : (1, 0), + 'phrygian' : (2, 0), + 'lydian' : (3, 0), + 'mixolydian': (4, 0), + 'aeolian' : (5, 0), + 'locrian' : (6, 0), }[mode] start_pitch.step = n start_pitch.alteration = a @@ -828,9 +828,9 @@ def musicxml_transpose_to_lily (attributes): chromatic_shift = string.atoi (transpose.get_named_child ('chromatic').get_text ()) chromatic_shift_normalized = chromatic_shift % 12; (shift.step, shift.alteration) = [ - (0,0), (0,1), (1,0), (2,-1), (2,0), - (3,0), (3,1), (4,0), (5,-1), (5,0), - (6,-1), (6,0)][chromatic_shift_normalized]; + (0, 0), (0, 1), (1, 0), (2, -1), (2, 0), + (3, 0), (3, 1), (4, 0), (5, -1), (5, 0), + (6, -1), (6, 0)][chromatic_shift_normalized]; shift.octave += (chromatic_shift - chromatic_shift_normalized) / 12 @@ -867,7 +867,7 @@ def musicxml_staff_details_to_lily (attributes): def musicxml_attributes_to_lily (attrs): elts = [] - attr_dispatch = { + attr_dispatch = { 'clef': musicxml_clef_to_lily, 'time': musicxml_time_to_lily, 'key': musicxml_key_to_lily, @@ -1226,7 +1226,7 @@ def musicxml_dynamics_to_lily_event (dynentry): dynamicsname = dynentry.get_name () if dynamicsname == "other-dynamics": dynamicsname = dynentry.get_text () - if not dynamicsname or dynamicsname=="#text": + if not dynamicsname or dynamicsname == "#text": return if not dynamicsname in dynamics_available: @@ -1253,7 +1253,7 @@ def hexcolorval_to_nr (hex_val): def hex_to_color (hex_val): res = re.match (r'#([0-9a-f][0-9a-f]|)([0-9a-f][0-9a-f])([0-9a-f][0-9a-f])([0-9a-f][0-9a-f])$', hex_val, re.IGNORECASE) if res: - return map (lambda x: hexcolorval_to_nr (x), res.group (2,3,4)) + return map (lambda x: hexcolorval_to_nr (x), res.group (2, 3, 4)) else: return None @@ -1753,7 +1753,7 @@ def musicxml_figured_bass_to_lily (n): dur = n.get_maybe_exist_named_child ('duration') if dur: # apply the duration to res - length = Rational(int(dur.get_text()), n._divisions)*Rational(1,4) + length = Rational(int(dur.get_text()), n._divisions) * Rational(1, 4) res.set_real_duration (length) duration = rational_to_lily_duration (length) if duration: @@ -1772,7 +1772,7 @@ instrument_drumtype_dict = { } def musicxml_note_to_lily_main_event (n): - pitch = None + pitch = None duration = None event = None @@ -1908,7 +1908,7 @@ class LilyPondVoiceBuilder: def current_duration (self): return self.end_moment - self.begin_moment - def add_music (self, music, duration, relevant = True): + def add_music (self, music, duration, relevant=True): assert isinstance (music, musicexp.Music) if self.pending_multibar > Rational (0): self._insert_multibar () @@ -1925,13 +1925,13 @@ class LilyPondVoiceBuilder: self.pending_dynamics = [] # Insert some music command that does not affect the position in the measure - def add_command (self, command, relevant = True): + def add_command (self, command, relevant=True): assert isinstance (command, musicexp.Music) if self.pending_multibar > Rational (0): self._insert_multibar () self.has_relevant_elements = self.has_relevant_elements or relevant self.elements.append (command) - def add_barline (self, barline, relevant = False): + def add_barline (self, barline, relevant=False): # Insert only if we don't have a barline already # TODO: Implement proper merging of default barline and custom bar line has_relevant = self.has_relevant_elements @@ -1963,8 +1963,8 @@ class LilyPondVoiceBuilder: diff = moment - current_end if diff < Rational (0): - ly.warning (_ ('Negative skip %s (from position %s to %s)') % - (diff, current_end, moment)) + ly.warning (_ ('Negative skip %s (from position %s to %s)') + % (diff, current_end, moment)) diff = Rational (0) if diff > Rational (0) and not (self.ignore_skips and moment == 0): @@ -2000,7 +2000,7 @@ class LilyPondVoiceBuilder: value = None # if the position matches, find the last ChordEvent, do not cross a bar line! - at = len( self.elements ) - 1 + at = len(self.elements) - 1 while (at >= 0 and not isinstance (self.elements[at], musicexp.ChordEvent) and not isinstance (self.elements[at], musicexp.BarLine)): @@ -2717,7 +2717,7 @@ def print_voice_definitions (printer, part_list, voices): def uniq_list (l): - return dict ([(elt,1) for elt in l]).keys () + return dict ([(elt, 1) for elt in l]).keys () # format the information about the staff in the form # [staffid,