This is a mature, well-maintained pure Python library for generating QR codes. It provides a core QR code encoder that implements the full ISO 18004 standard, including error correction, masking, and version selection. The library supports multiple output formats via a pluggable image factory architecture: PIL (default), PyPNG, and several SVG variants (basic, fragment, path). It also includes a styled PIL image factory that allows custom module shapes (circles, rounded squares, bars) and color masks (gradients, image fills, solid colors) for visually customized QR codes. The codebase is well-structured with clear separation of concerns: QR code encoding logic in `util.py` and `base.py`, image output in `qrcode/image/`, styling in `qrcode/image/styles/`, and a CLI entry point via `console_scripts.py`. It has extensive test coverage, uses modern Python tooling (uv, ruff, GitHub Actions), and follows semantic versioning. The architecture is extensible: new image factories or module drawers can be added by subclassing base classes. The code is clean, well-commented, and demonstrates high craftsmanship in areas like bit manipulation, Reed-Solomon error correction, and efficient SVG path generation.
PILKit is a Python library providing image processing utilities for PIL/Pillow. It offers a collection of processor classes (e.g., ResizeToFit, SmartCrop, GaussianBlur) that can be chained via a Pipeline pattern to manipulate images. The library also includes utility functions for image format handling, saving, and transparency management. Architecture-wise, it's a modular library with clear separation of concerns: processors handle specific transformations, utilities manage format conversions, and the Pipeline enables composition. The codebase demonstrates solid engineering practices with version compatibility layers and thoughtful error handling for PIL's quirks.