Error-contract hardening from the remaining v0.1.0 audit findings. No API changes.
Fixed
get_bytes(binary attachment downloads) no longer leaks a rawTimeoutError— timeouts are now retried and, once retries are exhausted, wrapped inAranetConnectionError, matching the JSON path and the documented "all errors derive fromAranetError" contract.- The polite-spacing floor (
_respect_min_interval) now runs before every attempt of a binary download, not just once before the retry loop, so retries can no longer hammer the API back-to-back. - A
200response whose body is valid JSON but not an object (e.g. a top-level array or string) now raisesAranetServerErrorinstead of surfacing later as anAttributeErroroutside the exception hierarchy. AranetRateLimitError.retry_afteris now populated from the final 429 response'sRetry-Afterheader (the value already honoured for backoff) instead of attempting tofloat()the response body, which effectively always yieldedNone.
Full Changelog: v0.2.0...v0.2.1