familiar sde download [url] — streams + bz2-decompresses the Fuzzwork SQLite SDE into the local store (FAMILIAR_SDE_URL overridable); plus familiar sde status / path.
sde.py gains download_sde() (injectable transport for tests) and offline system_by_id/name + station_by_id.
universe.get_system / get_station now prefer the SDE when available (no network), falling back to ESI.
Tests use a tiny on-disk SDE fixture + a bz2'd download served via mock transport — no real multi-hundred-MB download in CI.
159 tests, coverage 90.8%. Built by a subagent off current dev.
Closes #51.
- `familiar sde download [url]` — streams + bz2-decompresses the Fuzzwork SQLite SDE into the local store (`FAMILIAR_SDE_URL` overridable); plus `familiar sde status` / `path`.
- `sde.py` gains `download_sde()` (injectable transport for tests) and offline `system_by_id/name` + `station_by_id`.
- `universe.get_system` / `get_station` now prefer the SDE when available (no network), falling back to ESI.
- Tests use a tiny on-disk SDE fixture + a bz2'd download served via mock transport — no real multi-hundred-MB download in CI.
159 tests, coverage **90.8%**. Built by a subagent off current `dev`.
Implements issue #51. Adds a Fuzzwork SDE downloader/importer and
expands the offline lookup layer beyond item types.
- sde.py: SDE_URL constant (FAMILIAR_SDE_URL override) and
async download_sde() that streams + bz2-decompresses the dump
incrementally to sde_path(), resetting the cached connection.
- sde.py: system_by_id/system_by_name/station_by_id offline lookups,
all degrading to None when the table/file is missing.
- universe.py: get_system/get_station prefer the SDE when available,
falling back to ESI otherwise (signatures unchanged).
- __main__.py: `familiar sde download|status|path` subcommands.
- tests: download_sde via injected MockTransport, new lookups + None
fallbacks, and SDE-vs-ESI fast-path/fallback for get_system/station.
- README: short offline-SDE setup note.
Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
Latte
merged commit 463ea84360 into dev2026-06-27 19:27:41 +00:00
Blocking a user prevents them from interacting with repositories, such as opening or commenting on pull requests or issues. Learn more about blocking a user.
Closes #51.
familiar sde download [url]— streams + bz2-decompresses the Fuzzwork SQLite SDE into the local store (FAMILIAR_SDE_URLoverridable); plusfamiliar sde status/path.sde.pygainsdownload_sde()(injectable transport for tests) and offlinesystem_by_id/name+station_by_id.universe.get_system/get_stationnow prefer the SDE when available (no network), falling back to ESI.159 tests, coverage 90.8%. Built by a subagent off current
dev.