Repository navigation
Osteosarc 0.6.0
Keeps verified evidence when a mate or split-read partner query times out (#28).
python -m pip install --upgrade osteosarc==0.6.0from osteosarc import RecoveryPolicy
subset = data.extract_reads(source, regions, recovery=RecoveryPolicy(on_timeout="incomplete"))
subset.receipt["status"] # "incomplete" if a partner query timed out- What's kept. With
on_timeout="incomplete", a timed-out partner query no longer discards the verified seed/context records or the partners already matched. By default the request still fails, as before. - How it's labeled. The receipt has
status="incomplete"andfailed_queries(round, regions, timeout, leads), and each affected lead is unresolved as "partner query timed out". Nothing from the failed query is kept, and an unavailable partner is never counted as zero support. - Retries. The incomplete result is stored apart from complete ones, so calling again retries the query and resumes from the verified extractions. Existing complete results stay cached.
- What counts as a timeout. Samtools timeouts and timed-out remote HEAD requests count. Source changes and corruption still fail.
- Fixture recipes can opt in with a source's
acquisition: {"recovery": {"on_timeout": "incomplete"}}. Bundles then recordacquisition_status: "incomplete".
Validation:
- CI passes on Python 3.9–3.13, including Varcode 7/9 consumer checks.
- 253 tests pass against the built wheel in a clean virtualenv.
- Live check on a remote RNA-seq BAM: a real 1-second partner timeout kept all 3,829 verified seed records, and the retry completed with 5,244 records.