view abcfirstline.py @ 370:ecc62b487e57 build-default-165

Some empty "" chords may be causing trouble with Jenkins. Jenkins builds are stalling when generating PDFs for some morris tunes. I suspect the problem may be an empty chord "" and abc2abc's attempt to transpose it. I've been meaning to remove the chords from the horn output, because abc2abc transposes them too, which renders them not terribly useful. So get on and do it. Also remove "" from the morris tunes where it occurs.
author Jim Hague <jim.hague@acm.org>
date Wed, 28 Aug 2013 14:57:11 +0100
parents 811151d3ae73
children 1b79867b4f35
line wrap: on
line source

#!/usr/bin/env python
#
# Write out a modified version of a .abc file with just the data
# to print the first line of the music only.
#

import sys

def process(inf):
    continued = False
    print "X:1"
    for line in inf:
        line = line.strip()
        # If it is empty or starts "%", ignore it.
        if len(line) == 0 or line[0] == "%":
            continue

        # Is it a header line? I.e. does it start LETTER COLON?
        # If so, output only ones we need.
        start = line[:2]
        if len(start) > 1 and start[1] == ":" and start[0].isalpha():
            if start[0] in ["M", "K", "L"]:
                print line
        # Output line. If it is a continuation, output at most one
        # continuation.
        else:
            print line
            if continued or line[-1] != "\\":
                break
            else:
                continued = True

if len(sys.argv) > 1:
    for arg in sys.argv[1:]:
        try:
            inf = open(arg, "r")
            process(inf)
        finally:
            inf.close()
else:
    process(sys.stdin)