Download sparse matrices from SuiteSparse Matrix Collection
Project description
SuiteSparse Matrix Collection Downloader
Modern Python tool for downloading sparse matrices from the SuiteSparse Matrix Collection
A command-line tool and Python library that makes it easy to discover, download, and work with sparse matrices from the world's largest collection of sparse matrix data.
✨ Features
- 🔍 Smart Matrix Discovery - Search by size, sparsity, mathematical properties, and more
- 📦 Multiple Formats - Download MAT-files, Matrix Market, or Rutherford-Boeing formats
- ⚡ Concurrent Downloads - Up to 8 parallel downloads with progress tracking
- 🔄 Resume Support - Interrupted downloads continue automatically
- ✅ Integrity Verification - MD5 checksum validation ensures data accuracy
- 🧠 Smart Caching - Skip re-downloads of existing files
- 🎨 Rich CLI - Beautiful progress bars and colored output
- 🔧 Type Safety - Full type hints for better IDE support
🚀 Quick Start
Requires uv.
uv tool install ssdownload
uv tool update-shell # First time only, if ssdl is not on PATH
# Open a new terminal so PATH changes apply
ssdl info ct20stif
See the Installation Guide for details. To hack on the project, see the Development Guide.
Basic Usage
# Get matrix information
ssdl info ct20stif
# Download a matrix (auto-detects group)
ssdl download ct20stif
# Download in Matrix Market format
ssdl download ct20stif --format mm
# Search matrices with filters
ssdl list --spd --size 1000:10000 --field real
# Search square unsymmetric matrices
ssdl list --square --structure unsymmetric
# Bulk download (real) SPD matrices in size range
ssdl bulk --spd --field real --size 100:1000 --max-files 5
Python API Example
from ssdownload import SuiteSparseDownloader, Filter
# Simple download
downloader = SuiteSparseDownloader()
path = await downloader.download_by_name("ct20stif")
# Filtered bulk download
filter_obj = Filter(spd=True, n_rows=(1000, 10000))
paths = await downloader.bulk_download(filter_obj, max_files=5)
# Find rectangular matrices
rectangular = await downloader.find_matrices(Filter(square=False))
📚 Documentation
- Installation Guide - Detailed setup instructions
- CLI Reference - Complete command-line options
- Python API - Full API documentation
- Examples - Usage examples and tutorials
- Development - Contributing and development setup
- Troubleshooting - Common issues and solutions
🤝 Contributing
We welcome contributions! Please see our Development Guide for setup instructions and coding standards.
- Fork the repository
- Create your feature branch
- Add tests for new functionality
- Submit a pull request
📄 License
MIT License - see LICENSE file for details.
🙏 Acknowledgments
- SuiteSparse Matrix Collection by Tim Davis
- Built with httpx, Rich, and Typer
Project details
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
File details
Details for the file ssdownload-0.3.1.tar.gz.
File metadata
- Download URL: ssdownload-0.3.1.tar.gz
- Upload date:
- Size: 53.1 kB
- Tags: Source
- Uploaded using Trusted Publishing? Yes
- Uploaded via: uv/0.11.19 {"installer":{"name":"uv","version":"0.11.19","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}
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
e39be882b68538cf2cc779680533b30c681d281a5276c53ec7aec255d7a50169
|
|
| MD5 |
f6b65263524d44bdd3fd96bca595b746
|
|
| BLAKE2b-256 |
57e4396e67e31ab6cf6f9cd3bfb4aff9ca8fd937330262a40b64e400aa906929
|
File details
Details for the file ssdownload-0.3.1-py3-none-any.whl.
File metadata
- Download URL: ssdownload-0.3.1-py3-none-any.whl
- Upload date:
- Size: 28.9 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? Yes
- Uploaded via: uv/0.11.19 {"installer":{"name":"uv","version":"0.11.19","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}
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
ce890477b0f384e0e35cc9d68e6eb4045f4f5e4a8e45387b9b00da6a3d231925
|
|
| MD5 |
39700a77633388a210ee7efd049bf702
|
|
| BLAKE2b-256 |
a6c593af5cef0c0157159b935493249a222b0fed152254dc6952062a0704c621
|