Add support for including/excluding artists and songs #8

Merged
spenser merged 8 commits from include-exclude-filtering into main 2026-05-07 03:49:46 +00:00
Owner

Adds four new template-only options that allow the player to further control the songs selected:

  • include_songs: Songs that MUST be included. Causes a generation failure if the song is excluded by setlist/instrument options.
  • include_artists: Include songs from a particular artist. Songs added to include_songs count for this.
  • exclude_songs: Songs that should NOT be included.
  • exclude_artists: Artists that no songs should be included.

There's a bit of interesting logic around putting similar values in include and exclude. For example, excluding an artist but including a song, or vice versa. We do our to resolve how the user probably wants them to be.

This wound up making tracks.py large enough that it justified splitting it up into multiple files. It also makes testing a bit cleaner, although there's not nearly enough tests in this currently.

Also includes some miscellaneous cleanup and bug fixes found by failing tests.

Adds four new template-only options that allow the player to further control the songs selected: * `include_songs`: Songs that MUST be included. Causes a generation failure if the song is excluded by setlist/instrument options. * `include_artists`: Include <n> songs from a particular artist. Songs added to `include_songs` count for this. * `exclude_songs`: Songs that should NOT be included. * `exclude_artists`: Artists that no songs should be included. There's a bit of interesting logic around putting similar values in include and exclude. For example, excluding an artist but including a song, or vice versa. We do our to resolve how the user probably wants them to be. This wound up making `tracks.py` large enough that it justified splitting it up into multiple files. It also makes testing a bit cleaner, although there's not nearly enough tests in this currently. Also includes some miscellaneous cleanup and bug fixes found by failing tests.
spenser deleted branch include-exclude-filtering 2026-05-07 03:49:46 +00:00
Sign in to join this conversation.
No reviewers
No labels
No milestone
No project
No assignees
1 participant
Notifications
Due date
The due date is invalid or out of range. Please use the format "yyyy-mm-dd".

No due date set.

Dependencies

No dependencies set.

Reference
spenser/YARGArchipelago!8
No description provided.