feat(website): python seeder with pango lineages and test suite#1203
Merged
Conversation
|
The latest updates on your projects. Learn more about Vercel for GitHub.
|
11984af to
2699a08
Compare
2699a08 to
9bda964
Compare
…argparse, remove seed.mjs Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
…eder to collection-seeding Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
…) constructor in pango_lineages Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
…o enforce subclass definition Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
… and docs from build context Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
…in api.py Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
6f076b7 to
a8191b6
Compare
…end and seeder Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
…llections Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
| client.delete_collection.assert_not_called() | ||
|
|
||
|
|
||
| def test_no_deletion_when_owned_tag_is_none(): |
fengelniederhammer
approved these changes
May 29, 2026
Co-authored-by: Copilot Autofix powered by AI <175728472+Copilot@users.noreply.github.com>
Co-authored-by: Fabian Engelniederhammer <92720311+fengelniederhammer@users.noreply.github.com>
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.
Summary
seed.mjswith a unified Python seeder incollection-seeding/(renamed fromexample-data/)SourceABC; registering a new source is a one-liner insources/registry.pycovid-resistance-mutations— port of the original JS resistance mutation data (3CLpro, RdRp, Spike mAb)covid-pango-lineages— fetches ~4,976 pango lineage definitions from corneliusroemer/pango-sequences, one collection per lineage with nucleotide substitutions as variantscovid-pango-lineages-sample— same as above but limited to 10 lineages, for quick testing (excluded from default run)--source NAMEto run a single source; no flag runs all.--listprints available sourcesPOST /collectionsandPUT /collections/{id}— no diffing: every existing collection is always updated on each runowned_tag(e.g.#pango-lineage) which is appended to every collection description. On each run, any existing collection with that tag that is no longer in the source output is deleted viaDELETE /collections/{id}--api-key/$API_KEY; the system user API key is hardcoded as a dummy value in Docker Compose (both backend and seeder)python:3.13-slim)TypedDict(Collection,Variant,FilterObject,ExistingCollection)--repeat-interval-hoursCLI flag or$REPEAT_INTERVAL_HOURSenv var — if set, the seeder loops with a sleep between runs rather than exiting; Docker Compose runs it every 8 hours withrestart: alwaysTest plan
pixi run -e test test— all 32 tests passpixi run seed— seeds all sources against a local backendpixi run seedagain — all collections updated (upsert)pixi run seed-lineages— seeds all pango lineagespixi run seed-lineages-sample— seeds 10 lineages quickly