Skip to main content

Dazzlesum

PyPI Release Date PyPI Downloads CI Python 3.9+ License: GPL v3 Platform

Dazzlesum is a handy checksum tool designed for data integrity verification across different machines and operating systems. It generates folder-specific checksum files (.shasum) that enable verification of file collections, with special attention to DOS shell compatibility and cross-platform consistency.

Features

  • Multiple Hash Algorithms: SHA256 (default), SHA512, SHA1, MD5 with consistent cross-platform behavior
  • Cross-Platform Support: Seamlessly handle checksums between Windows, macOS, Linux, and BSD
  • DOS Compatibility: ASCII-only output that works perfectly in Windows Command Prompt
  • In-Process Hashing Engine: Python hashlib (OpenSSL-backed) as the primary engine -- no per-file subprocess overhead; native system tools (certutil, shasum, fsum) remain as fallback for algorithms hashlib lacks
  • Flexible Generation Modes: Individual .shasum files per directory, monolithic files, or both simultaneously
  • Advanced Verification: Problems-only output shows only failed, missing, or extra files by default
  • Management Operations: Backup, remove, restore, and list .shasum files with comprehensive metadata
  • Enhanced Logging: 11-level verbosity system (-6 to +4) with granular output control and smart filtering
  • Advanced Exit Codes: 7 different exit codes based on aggregate verification results for precise automation
  • Squelch System: Filter specific message types (SUCCESS, NO_SHASUM) for customized output
  • Context-Aware Operations: Auto-detects whether to create or verify based on directory contents
  • Shadow Directory Support: Keep source directories clean by storing checksum files in parallel shadow structure

Use Cases

🔧 Data Integrity Verification

Maintain consistent checksum verification across different operating systems. Generate checksums on your Windows machine and verify them on your Linux environment without losing any data integrity checks.

⚙️ System Administration

Simplify management of complex directory structures and checksum file collections. Document and reproduce checksum configurations for backup or disaster recovery scenarios.

📁 Content Organization

Create organizational structures using checksum verification, then export and share these verification systems with others. Perfect for media libraries (similar to SFVs), project references, or any scenario where data integrity needs to be maintained across multiple locations.

🌐 Network Path Management

Automatically handle different representations of network paths across systems while maintaining all checksum metadata and verification capabilities.

Installation

Prerequisites

  • Python 3.9 or higher
  • Operating System: Windows, macOS, Linux, BSD
  • Dependencies: None (pure Python standard library)
  • Optional: unctools package for enhanced Windows UNC path support

Install from PyPI

pip install dazzlesum

Manual Installation

git clone https://github.com/DazzleTools/dazzlesum.git
cd dazzlesum
pip install -e .

On Windows:

pip install -e ".[windows]"

Other potential dependencies down the line:

pip install -e ".[dev,test,docs]"

Standalone (no install)

dazzlesum.py is a single self-contained file with no dependencies beyond the Python standard library. Copy it anywhere and run it directly:

python dazzlesum.py --help

Quick Start

Generate checksums (using new subcommand syntax)

# Generate checksums for current directory
dazzlesum create

# Generate checksums recursively
dazzlesum create -r

# Create monolithic checksum file
dazzlesum create -r --mode monolithic

# Generate with verbose output (11 levels available: -6 to +4)
dazzlesum create -r -vv

# Silent mode for automation
dazzlesum verify -r -qqqqqq

# Problems-only with custom squelch filters
dazzlesum verify -r --squelch=SUCCESS,NO_SHASUM

# Keep source directories clean with shadow directory
dazzlesum create -r --shadow-dir ./checksums

# Generate monolithic checksum in shadow directory
dazzlesum create -r --mode monolithic --shadow-dir ./checksums

Verify checksums

# Verify existing checksums
dazzlesum verify -r

# Verify with detailed output
dazzlesum verify -r -v

# Show all verification results
dazzlesum verify -r --show-all-verifications

# Verify checksums stored in shadow directory
dazzlesum verify -r --shadow-dir ./checksums

Update checksums

# Update existing checksums for changed files
dazzlesum update -r

# Update only specific file types
dazzlesum update -r --include "*.txt,*.doc"

Manage checksum files

# Backup all .shasum files
dazzlesum manage -r backup --backup-dir ./checksum-backup

# List all .shasum files with details
dazzlesum manage -r list

# Remove all .shasum files (with confirmation)
dazzlesum manage -r remove

# Restore from backup
dazzlesum manage -r restore --backup-dir ./checksum-backup

Get help

# General help
dazzlesum --help

# Help for specific commands
dazzlesum create --help
dazzlesum verify --help

# Detailed help topics
dazzlesum mode        # Help for --mode parameter
dazzlesum examples    # Comprehensive usage examples
dazzlesum shadow      # Shadow directory help

Documentation

Platform Support

Windows

  • Command Prompt: Full ASCII compatibility
  • PowerShell: Native support
  • Hashing: In-process Python hashlib; certutil/fsum detected as fallback
  • Paths: UNC-aware handling through the dazzle-filekit dependency (backed by unctools)

macOS/Linux

  • Terminal: Full compatibility
  • Hashing: In-process Python hashlib; shasum/sha256sum detected as fallback
  • Paths: Native Unix path handling
  • Performance: Optimized for large file trees

Cross-Platform Features

  • Path Normalization: Automatic path separator handling
  • Line Ending Support: Configurable line ending strategies
  • Symlink Safety: Intelligent symlink and junction detection
  • Encoding: UTF-8 with fallback handling

Requirements

  • Python: 3.9 or higher
  • Operating System: Windows, macOS, Linux, BSD
  • Dependencies: None (pure Python standard library)
  • Optional: unctools package for enhanced Windows UNC path support

Future Possible Features

  • Incremental Updates: Smart update detection
  • Compression: Archive support for checksum collections
  • Remote Storage: Cloud backup integration? (maybe)

Contributing

Contributions are welcome! Issues, suggestions, and bug reports are all appreciated. Please open an issue if you find something that can be improved. Or:

  1. Fork this repository and clone a fork.
  2. Make changes on a new branch (e.g., feature/new_thing).
  3. Submit a pull request describing your changes.

Please see CONTRIBUTING.md for detailed guidelines.

Like the project?

"Buy Me A Coffee"

License

This project is licensed under the GPL-3.0 License - see the LICENSE file for details.

Changelog

See CHANGELOG.md for version history and release notes.

Support


Made with ️☕. Designed for reliable, consistent data integrity verification across all platforms.

Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

dazzlesum-1.5.0.tar.gz (104.7 kB view details)

Uploaded Source

Built Distribution

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

dazzlesum-1.5.0-py3-none-any.whl (83.3 kB view details)

Uploaded Python 3

File details

Details for the file dazzlesum-1.5.0.tar.gz.

File metadata

  • Download URL: dazzlesum-1.5.0.tar.gz
  • Upload date:
  • Size: 104.7 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/7.0.0 CPython/3.13.14

File hashes

Hashes for dazzlesum-1.5.0.tar.gz
Algorithm Hash digest
SHA256 dec5b144cb35b950f04740ad95d6298813e2f9840b910bf480ffda7a0bb4eaaa
MD5 8368d6cacd988346d72b3897033b2d83
BLAKE2b-256 894d4127a23c83491fd7a0d529534d26c8502088c68b93ad26bcde3402d5d834

See more details on using hashes here.

Provenance

The following attestation bundles were made for dazzlesum-1.5.0.tar.gz:

Publisher: publish.yml on DazzleTools/dazzlesum

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file dazzlesum-1.5.0-py3-none-any.whl.

File metadata

  • Download URL: dazzlesum-1.5.0-py3-none-any.whl
  • Upload date:
  • Size: 83.3 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/7.0.0 CPython/3.13.14

File hashes

Hashes for dazzlesum-1.5.0-py3-none-any.whl
Algorithm Hash digest
SHA256 f31eeddbcd269a82b65bcdfb18dce32b55cc033f37579a214a98fd2aca43ebf5
MD5 82147899cc81cbece2e5cd54d37a0887
BLAKE2b-256 6249abbd09f0ce76d1cd8560b5d5aae1bae2b4aac00985ef83bbb81669be3666

See more details on using hashes here.

Provenance

The following attestation bundles were made for dazzlesum-1.5.0-py3-none-any.whl:

Publisher: publish.yml on DazzleTools/dazzlesum

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

Release history Release notifications | RSS feed

1.5.1

2 files

This release

1.5.0 This release

2 files

1.4.4

2 files

1.4.2

2 files

1.4.0

2 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