iiisight¶
A tolerant, async (and sync) Python client for consuming IIIF.
iiisight fetches a IIIF manifest or collection, normalizes Presentation v2 → v3 so
you work against one model, walks canvases / ranges / annotations, and pulls
tile-aware image regions — behind a single typed interface. It is the read/consume
counterpart to the JavaScript ecosystem’s @iiif/parser,
built for the substrate under viewers, search, harvesting, and conformance tooling.
import iiisight
async with iiisight.AsyncClient() as client:
manifest = await client.fetch_manifest("https://example.org/manifest.json")
print(str(manifest.label))
service = await client.load_info(manifest.canvases[0])
for tile in service.tile_grid(scale_factor=4):
print(tile.url)
Why iiisight¶
Tolerant — accepts real-world, spec-imperfect documents and repairs them, recording each fix as a diagnostic instead of raising. Validated against live manifests from Wellcome, the Bodleian, and the IIIF Cookbook.
One model for v2 and v3 — v2 documents are upgraded under the hood.
Async-first, sync-supported —
AsyncClientandClientmirrorhttpx.Tile-aware — computes correct Image API region/size/tile requests from
info.json, handling the v2/v3full-vs-maxdifferences for you.More than Presentation — Content Search, Content State, Auth Flow 2.0 (metadata + non-interactive), and a consumer lint, all read-shaped.