Пример #1
0
def process(block):
    _print = Print()
    composition = Composition()
    edition = Edition()
    voices = []
    _temp = {'print': _print, 'composition': composition, 'edition': edition, 'voices': voices}

    for line in block:
        parse(_temp, line)

    composition.voices = voices
    edition.composition = composition
    _print.edition = edition

    return _print
Пример #2
0
def load(filename):

    file = open(filename, 'r')

    r_print_id = re.compile("Print Number: (.*)")
    r_composer = re.compile("Composer: (.*)")
    r_title = re.compile("Title: (.*)")
    r_genre = re.compile("Genre: (.*)")
    r_key = re.compile("Key: (.*)")
    r_composition_year = re.compile("Composition Year: (.*)")
    r_edition = re.compile("Edition: (.*)")
    r_editor = re.compile("Editor: (.*)")
    r_voice = re.compile("Voice (\d*): (.*)")
    r_partiture = re.compile("Partiture: (.*)")
    r_incipit = re.compile("Incipit: (.*)")

    r_new_entity = re.compile("\n")
    prints = []

    voices = []
    composition_class = Composition(None, None, None, None, None, None, None)
    edition_class = Edition(None, None, None)
    print_class = Print(None, None, None)

    for line in file:
        m = r_print_id.match(line)
        if m:
            print_id = load_print_id(m)
            print_class.print_id = print_id
            continue

        m = r_composer.match(line)
        if m:
            composition_authors = load_composer(m)
            composition_class.authors = composition_authors
            continue

        m = r_title.match(line)
        if m:
            title = load_title(m)
            composition_class.name = title
            continue

        m = r_genre.match(line)
        if m:
            genre = load_genre(m)
            composition_class.genre = genre
            continue

        m = r_key.match(line)
        if m:
            key = load_key(m)
            composition_class.key = key
            continue

        m = r_composition_year.match(line)
        if m:
            year = load_composition_year(m)
            composition_class.year = year
            continue

        m = r_partiture.match(line)
        if m:
            paritture = load_partiture(m)
            print_class.partiture = paritture
            continue

        m = r_incipit.match(line)
        if m:
            incipit = load_incipit(m)
            composition_class.incipit = incipit
            continue

        m = r_edition.match(line)
        if m:
            edition = load_edition(m)
            edition_class.name = edition
            continue

        m = r_editor.match(line)
        if m:
            authors = load_editor(m)
            edition_class.authors = authors
            continue

        m = r_voice.match(line)

        if m:
            voice = load_voice(m)
            voices.append(voice)
            composition_class.voices = voices
            continue

        m = r_new_entity.match(line)
        if m:
            edition_class.composition = composition_class
            print_class.edition = edition_class
            if not (print_class.print_id == None):
                prints.append(print_class)

                voices = []
                composition_class = Composition(None, None, None, None, None,
                                                None, None)
                edition_class = Edition(None, None, None)
                print_class = Print(None, None, None)

            continue

    return prints