feat: user-suppliable venue style packs#249
Merged
Merged
Conversation
A venue is now a directory convention: {methodology_style_guide.md,
plot_style_guide.md} plus an optional venue.yaml (display_name,
aspect_ratio default, font preferences). --venue resolves built-in
packs first (data/guidelines/<venue>/, flat files for neurips), then
user packs from ~/.config/paperbanana/venues (overridable via
PAPERBANANA_VENUE_DIR or --venue-dir). Unknown venues fail fast with
the available packs from both sources instead of silently falling
back to neurips.
- new resolver module paperbanana/guidelines/venues.py: list_venues(),
resolve_venue() -> VenuePack, validate_venue(), venue.yaml parsing
(yaml.safe_load, all fields optional), select_aspect_ratio()
- guideline loaders accept venue_dir and resolve through the venue
pack registry; Settings.venue is now an open name with a venue_dir
companion setting (pipeline.venue_dir / PAPERBANANA_VENUE_DIR)
- venue.yaml aspect_ratio becomes the default ratio when the CLI did
not pass one (user > venue > planner); fonts are appended as a note
to the loaded style guides
- new CLI commands: 'paperbanana venues list' (built-in + user with
source column) and 'paperbanana venues init <name>' (scaffolds a
pack from the NeurIPS templates + commented venue.yaml)
- replaced hardcoded venue tuples in cli.py, workflow_runner.py and
the studio with resolver-backed validation; studio dropdown now
lists user packs
- README: Custom venue style packs section; tests for precedence
(built-in beats user), error listing, venue.yaml parsing, init
scaffolding, and aspect-ratio defaulting
Fixes #89
- test_default_is_xdg_config_dir compared a /-joined string, failing on Windows separators; compare Path.parts instead - icml/ieee/acl gain venue.yaml: two-column venues now default figures to 4:3 (column-friendly) with venue-typical font preferences, so the config layer carries real venue knowledge, not just the guides
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Fixes #89 — venues become a directory convention anyone can extend without touching the repo:
{methodology_style_guide.md, plot_style_guide.md}+ optionalvenue.yaml(display_name, defaultaspect_ratio,fontsnote). Built-ins live underdata/guidelines/<venue>/; user packs under~/.config/paperbanana/venues/(orPAPERBANANA_VENUE_DIR/--venue-dir).customstays reserved for the legacy flat-file path.paperbanana venues listandpaperbanana venues init <name>(scaffolds from the NeurIPS templates + commented venue.yaml). All six--venuecommands, batch/orchestrate, and the Studio dropdown resolve through the registry, so user packs work everywhere.guidelines synthesize --outputfor corpus-grounded pack creation — together this is the proper answer to the institution-specific style PRs we closed (docs(thesis): add UMS-style Rajah 3.1 Proses Kajian #203–feat: add three-phase research methodology flowchart (UMS style) #211).39 new tests; suite at 867 passing. One judgment call: a known pack missing one guide file warns and uses default text for that guide only (hard-failing would break diagram runs for plot-only packs).