Skip to content

Osteosarc 0.3.0

Choose a tag to compare

@iskandr iskandr released this 24 Sep 19:19
· 45 commits to main since this release
e73de74

Snapshots are indexed by download date, and the most recent is the default, so you no longer name one to use the dataset.

python -m pip install --upgrade osteosarc==0.3.0
osteosarc sync                 # Saves today's website metadata as a snapshot, e.g. 2026-09-24
osteosarc samples              # Every command uses the most recent snapshot
osteosarc snapshots            # Lists snapshots by download date
osteosarc variants --gene MAP2 --snapshot 2026-09   # Newest snapshot downloaded that month

The osteosarc.com metadata changes over time; on 2026-09-21 alone, five variants were renamed and two merged. A snapshot freezes what you analyzed (#35, #36).

  • Dataset.sync() / osteosarc sync need no name. The snapshot is named by its UTC download date and reopened for the rest of that day. refresh=True / --refresh saves another, such as 2026-09-24.2. Offline, a snapshot is built from source bytes already in the cache.
  • Dataset.open() and every CLI command use the most recently downloaded snapshot.
  • Dataset.snapshots() / osteosarc snapshots list snapshots with their download times and IDs.
  • Picking a snapshot:
    • Dataset.open(date="2026-09") or --snapshot 2026-09 picks the newest from a UTC download day, month or year.
    • Dataset.open(name) or --snapshot NAME pins one exactly, by name or ID prefix.
  • New data.name and data.downloaded. The explorer shows the snapshot and its download time.
  • Named snapshots keep working, but custom sources / --source-revision now require a name.
  • Deprecated: the CLI's leading snapshot argument (osteosarc samples baseline). It still works, with a warning on stderr.
  • The docs no longer use a baseline snapshot name, and they explain why snapshots exist.

Validation:

  • CI passes on Python 3.9–3.13, including Varcode 7/9 consumer checks.
  • 248 tests pass against the built wheel in a clean virtualenv.
  • All documentation examples pass against live osteosarc.com on a fresh, empty cache: 115 passed, 2 intentionally skipped.
  • The installed CLI was tested against real snapshots: the default, --snapshot by month, the deprecated positional form, and reads --variant.

Documentation · PyPI · Changelog

https://claude.ai/code/session_01CcNHdiWgNhPGLmd4kDvG9G