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.1.tar.gz (53.1 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.1-py3-none-any.whl (28.9 kB view details)

Uploaded Python 3

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

Hashes for ssdownload-0.3.1.tar.gz
Algorithm Hash digest
SHA256 e39be882b68538cf2cc779680533b30c681d281a5276c53ec7aec255d7a50169
MD5 f6b65263524d44bdd3fd96bca595b746
BLAKE2b-256 57e4396e67e31ab6cf6f9cd3bfb4aff9ca8fd937330262a40b64e400aa906929

See more details on using hashes here.

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

Hashes for ssdownload-0.3.1-py3-none-any.whl
Algorithm Hash digest
SHA256 ce890477b0f384e0e35cc9d68e6eb4045f4f5e4a8e45387b9b00da6a3d231925
MD5 39700a77633388a210ee7efd049bf702
BLAKE2b-256 a6c593af5cef0c0157159b935493249a222b0fed152254dc6952062a0704c621

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