music21.musicxml.helpers¶
Functions¶
-
music21.musicxml.helpers.
dump
(obj)¶ wrapper around xml.etree.ElementTree as ET that prints a string in every case and indents tags and sorts attributes. (Prints, does not return)
>>> from music21.musicxml.helpers import dump >>> from xml.etree.ElementTree import Element >>> e = Element('accidental')
>>> dump(e) <accidental />
>>> e.text = '∆' >>> e.text == '∆' True >>> dump(e) <accidental>∆</accidental>
-
music21.musicxml.helpers.
dumpString
(obj, *, noCopy=False) → str¶ wrapper around xml.etree.ElementTree as ET that returns a string in every case and indents tags and sorts attributes.
>>> from music21.musicxml.m21ToXml import Element >>> from music21.musicxml.helpers import dumpString >>> e = Element('accidental')
>>> dumpString(e) '<accidental />'
>>> e.text = '∆' >>> e.text == '∆' True >>> dumpString(e) '<accidental>∆</accidental>'
-
music21.musicxml.helpers.
indent
(elem, level=0)¶ helper method, indent an element in place:
-
music21.musicxml.helpers.
insertBeforeElements
(root, insert, tagList=None)¶ Insert element insert into element root at the earliest position of any instance of a child tag given in tagList. Append the element if tagList is None.
>>> from xml.etree.ElementTree import fromstring as El >>> from music21.musicxml.helpers import insertBeforeElements, dump >>> root = El('<clef><sign>G</sign><line>4</line></clef>') >>> insert = El('<foo/>')
>>> insertBeforeElements(root, insert, tagList=['line']) >>> dump(root) <clef> <sign>G</sign> <foo /> <line>4</line> </clef>
Now insert another element at the end by not specifying a tag list:
>>> insert2 = El('<bar/>') >>> insertBeforeElements(root, insert2) >>> dump(root) <clef> <sign>G</sign> <foo /> <line>4</line> <bar /> </clef>
-
music21.musicxml.helpers.
measureNumberComesBefore
(mNum1: str, mNum2: str) → bool¶ Determine whether measureNumber1 strictly precedes measureNumber2 given that they could involve suffixes. Equal values return False.
>>> from music21.musicxml.helpers import measureNumberComesBefore >>> measureNumberComesBefore('23', '24') True >>> measureNumberComesBefore('23', '23') False >>> measureNumberComesBefore('23', '23a') True >>> measureNumberComesBefore('23a', '23b') True >>> measureNumberComesBefore('23b', '23a') False >>> measureNumberComesBefore('23b', '24a') True >>> measureNumberComesBefore('23b', '23b') False