Skip to content

Add paperpush pick-venue: venue selection from a loose query - #6

Open
Faycall1l wants to merge 3 commits into
pachterlab:mainfrom
Faycall1l:feat/pick-venue
Open

Faycall1l wants to merge 3 commits into
pachterlab:mainfrom
Faycall1l:feat/pick-venue

Conversation

@Faycall1l

Copy link
Copy Markdown
Contributor

Summary

Implements the venue-selection half of #3 as paperpush pick-venue: rank the supported venues against a loose query (abbreviation, keyword, type, portal) so neither a human nor an agent has to know a slug up front. Hermetic, dependency-free, fully tested — no network, no API key, no user state.

Three commits, separately reviewable:

  1. paperpush/venue_select.py — the ranking library,
  2. paperpush pick-venue wiring in cli.py,
  3. tests/test_pick_venue.py — 25 tests.

Usage

paperpush pick-venue bio
# bioinformatics  Bioinformatics (journal) -- Computational molecular biology …
# biorxiv         bioRxiv (preprint) -- Free online archive …
# …

paperpush pick-venue -t preprint                # filter by kind
paperpush pick-venue --portal openreview        # filter by portal
paperpush pick-venue --json cell                # machine-readable for agents
  • Exact slug beats prefix beats name beats description; ties break by slug.
  • --type/--portal are repeatable filters; -n/--limit (default 5) or --all control display; --json emits [{slug, name, venue_type, portal, score}] for chaining into subfile/submit.
  • Empty input is a usage error (exit 2); input matching nothing fails (exit 1) so scripts never proceed on a guess. The hint line always names the top-ranked hit (paperpush subfile …), even under --limit 0.
  • Deprecated venues (e.g. aaai_2027) stay out of selection, matching list_venues.
  • Portal resolution goes through submission_base, so family venues report the portal their login actually runs on (AAAS siblings → science).

Verification

  • Full suite: 1407 passed / 74 skipped (25 new).
  • black . -l 99999 --check: clean.
  • All four generated-content checks green (no generated files touched).
  • On the manuscript-writing half of Feature request: Venue selection and Manuscript writing #3: unchanged — the README's "Use with AI" + autofill --engine api already covers drafting into a .sub; proposing that as a follow-up, not this PR.

Closes the venue-selection part of #3.

Pure, hermetic ranking over venues.json metadata (slug, name, full name,
description, type) plus the submission portal resolved from the module
layout via submission_base -- exact slug beats prefix beats description,
ties break by slug. Non-deprecated venues only, matching list_venues.
No network, no LLM, no user state.
pick-venue [QUERY...] prints a ranked shortlist (slug, name, type,
description) with --type/--portal filters, -n/--limit/--all display
control, and --json for agents chaining into subfile/submit. Empty input
is a usage error (exit 2); input matching nothing fails (exit 1) so
scripts never proceed on a guess. The hint line always names the
top-ranked hit for the next step.
Ranking and scoring run against hand-built Venue objects (independent of
venues.json drift); portal resolution, the shipped preprint/openreview
sets, and pick-venue end to end (human output, --json, --limit/--all,
usage and no-match exit codes) via cli.main.
@Faycall1l

Copy link
Copy Markdown
Contributor Author

Ready for review, @josephrich98 — following up on the plan posted in #3.

Three separately reviewable commits: the ranking library, the CLI wiring, and the tests. All checks are green (build + 3.10/3.11/3.12) and the branch is conflict-free against main. Deliberately scoped to the venue-selection half of #3; manuscript writing untouched.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant