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

# 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

🤝 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.3.0.tar.gz (52.8 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.3.0-py3-none-any.whl (28.8 kB view details)

Uploaded Python 3

File details

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

File metadata

  • Download URL: ssdownload-0.3.0.tar.gz
  • Upload date:
  • Size: 52.8 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.3.0.tar.gz
Algorithm Hash digest
SHA256 daec4c60c63c2cad8985d848cf63843ae3f5e932d4c3ca7f7df32f00532eda27
MD5 8d743338b35e7dae74a6c031d50034ba
BLAKE2b-256 88bd4a922295a015f140529468914a382f9da0bbeb6bb6153ae16cc2d6881037

See more details on using hashes here.

File details

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

File metadata

  • Download URL: ssdownload-0.3.0-py3-none-any.whl
  • Upload date:
  • Size: 28.8 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.3.0-py3-none-any.whl
Algorithm Hash digest
SHA256 f39a4badd3cdac39e9705ff8aa72b13b27a842e19a8a4282fa1bcb1935c6c4f0
MD5 f2b06464b2ec730c59e8396bb1bdcb45
BLAKE2b-256 3ac1aa59a9d50d1fb1e6cb5703f526dec3a90e1230066d432d80995d66eb1997

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