Skip to main content

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

# 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)

📚 Documentation

🤝 Contributing

We welcome contributions! Please see our Development Guide for setup instructions and coding standards.

  1. Fork the repository
  2. Create your feature branch
  3. Add tests for new functionality
  4. Submit a pull request

📄 License

MIT License - see LICENSE file for details.

🙏 Acknowledgments

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

ssdownload-0.2.0.tar.gz (51.7 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

ssdownload-0.2.0-py3-none-any.whl (28.4 kB view details)

Uploaded Python 3

File details

Details for the file ssdownload-0.2.0.tar.gz.

File metadata

  • Download URL: ssdownload-0.2.0.tar.gz
  • Upload date:
  • Size: 51.7 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

Hashes for ssdownload-0.2.0.tar.gz
Algorithm Hash digest
SHA256 92f4075e10e1f47d65586fdb82e602a6b36f9c322b8b7e23d749d0145c766888
MD5 5f22cae4271f4cca64164ba6c732e00e
BLAKE2b-256 1a290930368f362c56439df619f73fb2f868e3bbaa1a6bf453beca0755463a0e

See more details on using hashes here.

File details

Details for the file ssdownload-0.2.0-py3-none-any.whl.

File metadata

  • Download URL: ssdownload-0.2.0-py3-none-any.whl
  • Upload date:
  • Size: 28.4 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

Hashes for ssdownload-0.2.0-py3-none-any.whl
Algorithm Hash digest
SHA256 d6788d88df86785ff9909588f43acaadbd30ac331e502ac910a70c1382071d9b
MD5 553907626b6b3452a6e168ea1391a7fc
BLAKE2b-256 ab9956adb1ffb6df6ecb12fe317dc73b261b6124c67c54ab9e12eaca68d01bb6

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page