Skip to main content

sleap-share

Python client for SLEAP Share - upload and share SLEAP datasets.

Installation

pip install sleap-share

Or use with uvx for one-off commands:

uvx sleap-share upload labels.slp

Quick Start

Command Line

# Upload a file (no account needed)
sleap-share upload labels.slp
# → https://slp.sh/aBcDeF

# Download a file
sleap-share download aBcDeF

# Get file info
sleap-share info aBcDeF

# Authenticate for more features
sleap-share login

# List your uploads
sleap-share list

# Delete a file
sleap-share delete aBcDeF

Python API

import sleap_share

# Upload (anonymous)
result = sleap_share.upload("labels.slp")
print(result.share_url)  # https://slp.sh/aBcDeF

# Download
sleap_share.download("aBcDeF", output="./data/")

# Get metadata
metadata = sleap_share.get_metadata("aBcDeF")
print(f"Labeled frames: {metadata.labeled_frames_count}")

# Lazy loading (stream data on-demand without full download)
import sleap_io
url = sleap_share.open("aBcDeF")
labels = sleap_io.load_slp(url)  # Only fetches accessed data!

Authenticated Operations

# Use stored credentials from `sleap-share login`
client = sleap_share.Client()

# Or provide token directly
client = sleap_share.Client(token="slpsh_live_...")

# List your files
files = client.list_files()

# Delete a file
client.delete("aBcDeF")

# Get user info
user = client.whoami()

CLI Commands

Command Description
login Authenticate via browser
logout Clear stored credentials
whoami Show current user
upload <file> Upload a .slp file
download <id> Download a file
list List your uploads
info <id> Show file metadata
preview <id> Download preview image
delete <id> Delete a file
version Show version

Global Options

  • --env staging - Target staging environment instead of production
  • --help - Show help for any command

Environment Variables

  • SLEAP_SHARE_ENV - Default environment (production or staging)

Token Storage

Credentials are stored securely using:

  1. System keyring (macOS Keychain, Windows Credential Manager, Linux Secret Service)
  2. Fallback: ~/.config/sleap-share/credentials with 0600 permissions

Development

cd client

# Install dependencies
uv sync --all-extras

# Run tests
uv run pytest

# Lint and format
uv run ruff check .
uv run ruff format .

# Type check
uv run mypy src/sleap_share

Releasing

New versions are published to PyPI via GitHub Releases.

Steps to Release

  1. Update version in pyproject.toml and src/sleap_share/__init__.py

  2. Update CHANGELOG.md with the new version and release notes

  3. Create a GitHub Release:

    • Go to Releases
    • Tag: client-v{version} (e.g., client-v0.2.0)
    • Title: Python Client v{version}
    • Description: Copy from CHANGELOG.md
    • Click Publish release
  4. The GitHub Action will automatically:

    • Run tests on Python 3.9-3.13
    • Run linting and type checks
    • Build the package
    • Publish to PyPI via OIDC trusted publishing

Version Scheme

Tags must start with client-v to trigger publishing (e.g., client-v0.1.0, client-v1.0.0).

This prefix distinguishes Python client releases from other releases in the monorepo.

License

MIT License - see LICENSE for details.

Metadata

Release files for sleap-share 0.1.3

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Source distribution (sdist)

Source distribution for sleap-share 0.1.3
File Size Uploaded
sleap_share-0.1.3.tar.gz 69.6 kB Details

Built distribution (wheel)

Table of built distributions (wheels) for sleap-share 0.1.3
File Interpreter ABI Platform
sleap_share-0.1.3-py3-none-any.whl Python 3 none any Details

Total release size: 91.2 kB

Release files / sleap_share-0.1.3.tar.gz

Download URL sleap_share-0.1.3.tar.gz
Size 69.6 kB
Tags Source
SHA-256 checksum
How to use checksums
93289c89468ab561a18b0fafeb1311c33c63e676d9f1ea7876392ad929ad2daa
BLAKE2b-256 checksum
How to use checksums
9cbeac20333d4c439fa18aba174602a82a6863edb4ca7b72c85ab306097d79de
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via uv/0.9.26 {"installer":{"name":"uv","version":"0.9.26","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"Ubuntu","version":"24.04","id":"noble","libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":true}

Release files / sleap_share-0.1.3-py3-none-any.whl

Download URL sleap_share-0.1.3-py3-none-any.whl
Size 21.7 kB
Tags Python 3
SHA-256 checksum
How to use checksums
9de95a79cb233046e3351455103313e794e8b87a03a534bb37272699513b5c4a
BLAKE2b-256 checksum
How to use checksums
d85ae0d182444190f564bcfb403661d054706745a848f336a195b9dbec61c53f
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via uv/0.9.26 {"installer":{"name":"uv","version":"0.9.26","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"Ubuntu","version":"24.04","id":"noble","libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":true}

Release history Release notifications | RSS feed

This release

0.1.3 This release

2 release files

0.1.2

2 release files

0.1.0

2 release files

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page