Remove XML Solo Gen
ci / checks (push) Successful in 49m36s

This commit is contained in:
khodowany
2026-10-06 04:27:29 -05:00
parent bb3bba6bbb
commit e15dc31568
11 changed files with 120 additions and 485 deletions
-7
View File
@@ -6,7 +6,6 @@ import pathlib
import generator.musicxml
import generator.parts
import generator.production
import generator.solo.export
def main():
parser = argparse.ArgumentParser(description=__doc__)
@@ -15,19 +14,13 @@ def main():
parser.add_argument('--data-dir', type=pathlib.Path, default=pathlib.Path('data'))
parser.add_argument('--output', type=pathlib.Path, required=True)
parser.add_argument('--cache-dir', type=pathlib.Path)
parser.add_argument('--solo-xml', type=pathlib.Path, help='Also export a completed solo role as MusicXML.')
parser.add_argument('--settings', type=pathlib.Path)
args = parser.parse_args()
if args.solo_xml and not args.role.endswith('_solo'):
parser.error('--solo-xml requires a solo role')
source = generator.production.SourceAnalysis.read(generator.parts.prepare_document(generator.musicxml.load_musicxml(args.song)))
start = time.monotonic()
result = generator.production.generate_role(source, args.role, args.data_dir, json.loads(args.settings.read_text()) if args.settings else {}, args.cache_dir)
args.output.parent.mkdir(parents=True, exist_ok=True)
args.output.write_text(json.dumps(result, indent=2))
if args.solo_xml:
manifest = generator.solo.export.write_role(result, args.solo_xml)
args.solo_xml.with_suffix('.manifest.solo').write_text(json.dumps(manifest, indent=2) + '\n')
print(f'{args.role}: {time.monotonic() - start:.2f}s wall; cached={result["cache_hit"]}; role generation/cache lookup {result["seconds"]:.2f}s')
if __name__ == '__main__':