You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
* docs: Add Remote loading guide and document URL/cloud/Drive/video loading
Consolidate the URL-loading documentation into a standalone Guides page
(docs/remote.md) covering http/https + cloud (s3/gs/az) + Google Drive
loading, streaming modes, caching/clear_remote_cache, authentication and
security, embedded pkg.slp streaming, remote video (pyav), and error
handling/troubleshooting. Replace the large examples.md section with a
concise pointer, add the page to the nav, and add short autoref'd mentions
across install, formats, and the Video model docs.
Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
* chore: Add reencode to codespell ignore-words-list
Align the pyproject.toml codespell config with the CI workflow (.github/workflows/codespell.yml), which already ignores `reencode`. `reencode` is the literal `sio reencode` CLI subcommand name documented in docs/examples.md, docs/formats/index.md, and docs/model/video.md, so codespell must not rewrite it to "re-encode". This makes local codespell match CI.
Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
---------
Co-authored-by: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
|`"blockcache"`| fsspec `blockcache`| Low | None | n/a | Same as `auto` (explicit) |
784
-
|`"cache"`| fsspec `simplecache`| Whole file on disk | Persistent | None | Repeated opens of an immutable file |
785
-
|`"filecache"`| fsspec `filecache`| Whole file on disk | Persistent | ETag / `Last-Modified` after `cache_expiry`| Repeated opens of a file that may change |
786
-
|`"download"`| Full read into memory | Whole file in RAM | None | n/a | Small files, ephemeral environments |
Copy file name to clipboardExpand all lines: docs/formats/index.md
+12Lines changed: 12 additions & 0 deletions
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -14,6 +14,11 @@ sleap-io provides a unified interface for reading and writing pose tracking data
14
14
15
15
::: sleap_io.io.main.save_video
16
16
17
+
Media videos can also be read from `http`/`https` URLs with
18
+
[`load_video`][sleap_io.load_video] (requires the `pyav` extra; cloud schemes
19
+
and Google Drive are not supported for video). See
20
+
[Remote video](../examples.md#loading-from-urls).
21
+
17
22
### Norpix .seq Format
18
23
19
24
The `.seq` format is used by StreamPix / Norpix for high-speed video recording, commonly used in behavioral neuroscience. sleap-io provides native read support for `.seq` files via the [`SeqVideo`][sleap_io.SeqVideo] backend.
The native SLEAP format stores complete pose tracking projects including videos, skeletons, and annotations. SLP is the primary format with full round-trip support for bounding boxes (format 1.7+), regions of interest (ROIs), and segmentation masks (format 1.5+).
45
50
51
+
`.slp` and `.pkg.slp` files can also be loaded directly from `http`/`https`, cloud (`s3://`, `gs://`, `az://`), and Google Drive URLs with lazy range-based streaming via [`load_slp`][sleap_io.load_slp] — see [Loading from URLs](../examples.md#loading-from-urls).
52
+
46
53
!!! tip "Detailed Format Specification"
47
54
For comprehensive documentation of the SLP file format including HDF5 layout, data structures, and version history, see the **[SLP File Format Reference](slp.md)**.
48
55
@@ -580,6 +587,8 @@ sleap-io automatically detects file formats based on:
580
587
2.**File content**: For ambiguous extensions like `.h5` (JABS vs DLC) or `.json` (Label Studio vs COCO)
581
588
3.**Explicit format**: Pass `format` parameter to override auto-detection
582
589
590
+
For URLs, ambiguous extensions (`.h5`, `.json`, `.csv`) are disambiguated with a magic-byte sniff via a Range request, controllable with [`load_file`][sleap_io.load_file]'s `sniff=` argument. See [Loading from URLs](../examples.md#loading-from-urls).
591
+
583
592
## Format Conversion Examples
584
593
585
594
### Convert Between Formats
@@ -658,6 +667,9 @@ Different formats have varying capabilities:
658
667
******Ultralytics segmentation polygons stored as ROIs
659
668
*******TrackMate auto-detects sibling `.tif`/`.tiff` video files
660
669
670
+
!!! note "Remote URL loading"
671
+
Loading from a URL is currently supported only for SLEAP `.slp`/`.pkg.slp` (labels) and `http`/`https` media video; all other labels formats raise `NotImplementedError` over a URL — download the file locally first. See [Loading from URLs](../examples.md#loading-from-urls).
672
+
661
673
## See Also
662
674
663
675
-[Data Model](../model/index.md): Understanding the core data structures
Copy file name to clipboardExpand all lines: docs/formats/slp.md
+3Lines changed: 3 additions & 0 deletions
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -760,6 +760,9 @@ The `/negative_frames` dataset is optional. Files without negative frames will n
760
760
761
761
For large SLP files with hundreds of thousands of frames, sleap-io provides a lazy loading mode that defers [`Labels`][sleap_io.Labels] object creation until needed.
762
762
763
+
!!! tip "Streaming from a URL"
764
+
`.slp`/`.pkg.slp` files can be opened straight from `http`/`https`, cloud, or Google Drive URLs via [`load_slp`][sleap_io.load_slp] with lazy range-based reads (embedded `pkg.slp` frames reopen the remote file on demand). See [Loading from URLs](../examples.md#loading-from-urls).
-**Video I/O** -- Read any video format via pluggable backends (FFMPEG, OpenCV, PyAV) with a NumPy-like interface ([model](model/video.md))
25
25
-**Lazy loading** -- Load large SLP files up to 90x faster by deferring object creation ([details](formats/slp.md#lazy-loading))
26
-
-**Remote URLs** -- Load `.slp` files directly from `https://`, `s3://`, `gs://`, and `az://`URLs with lazy range-based reads and optional persistent caching ([guide](examples.md#loading-from-urls))
26
+
-**Remote URLs** -- Load `.slp`/`.pkg.slp` and remote media video directly from `https://`, `s3://`, `gs://`, `az://`, and Google Drive URLs with lazy range-based reads and optional persistent caching ([guide](remote.md))
27
27
-**Dataset splits** -- Create train/val/test splits and export to formats like Ultralytics YOLO ([example](examples.md#make-trainingvalidationtest-splits))
0 commit comments