Improve Catalog
ci / checks (push) Successful in 46m42s

This commit is contained in:
khodowany
2026-09-27 11:03:43 -05:00
parent a416a80dd9
commit 142d843fac
418 changed files with 440 additions and 324488 deletions
+4 -9
View File
@@ -15,7 +15,6 @@ import generator.engraving.types
import generator.parts
import generator.pico_artwork
import generator.playback
import generator.practice.generate
import generator.rhythm
import generator.score
import generator.summary
@@ -63,10 +62,9 @@ def generate_assets(args: argparse.Namespace) -> None:
for source in sorted(data_dir.rglob('*.xml')):
if source.is_relative_to(data_dir / 'rhythms'):
continue
if source.parent not in (data_dir / 'practice', data_dir / 'songs'):
raise ValueError(f'{source}: MusicXML sources belong directly under data/practice or data/songs')
if source.parent != data_dir / 'songs':
raise ValueError(f'{source}: MusicXML sources belong directly under data/songs')
generator.parts.source_paths(data_dir / 'songs')
generator.parts.source_paths(data_dir / 'practice', practice=True)
report('loading rhythm snippets')
rhythms = generator.rhythm.load_library(data_dir / 'rhythms')
output_dir.parent.mkdir(parents=True, exist_ok=True)
@@ -74,13 +72,11 @@ def generate_assets(args: argparse.Namespace) -> None:
staged = pathlib.Path(temporary) / 'assets'
staged.mkdir(parents=True, exist_ok=True)
copy_runtime_fonts(static_assets_dir, staged)
report('generating performance and practice parts')
report('generating performance parts')
performance_count = generator.arrange.generate.generate_performance_scores(data_dir / 'songs', staged / 'songs', rhythms=rhythms)
practice_count = generator.practice.generate.generate_practice_scores(data_dir / 'practice', staged / 'practice', rhythms=rhythms)
generator.score.validate_generated_tree(staged)
if args.check:
generator.summary.validate_expected_performance_summary(data_dir / 'expected' / 'performance_summary.json', staged / 'songs')
generator.summary.validate_practice_parts(staged / 'practice')
report('compiling playback')
generator.playback.compile_tree(staged)
report('engraving pages')
@@ -101,8 +97,7 @@ def generate_assets(args: argparse.Namespace) -> None:
backup.rename(output_dir)
raise
report('publishing complete')
print(f'Generated Product Vamp assets: {performance_count} performance scores, '
f'{practice_count} practice parts, {generator.score.count_json_files(output_dir)} total JSON files.')
print(f'Generated Product Vamp assets: {performance_count} performance scores.')
if args.check:
print('Generator check passed.')