v3.0.0 Modernization of Package
RedisDict v3.0.0
Major Changes
Project Structure
- Reorganised project structure
- Reorganized test suite into subdirectories (150+ tests)
- Added dedicated scripts directory for CI/CD and documentation
- Implemented modern project configuration with
pyproject.toml
Python Modernization
- Removed Python 2.x legacy code, including
iter
methods - Added Python 3.9+ dictionary union operator support (
dict | other_dict
) - Implemented all standard
dict
methods for full compatibility
Type System Improvements
- Added
py.typed
file for improved type checker compliance .PEP 561 - Added mypy configuration with
pyproject.toml
- Added nested type support through JSON encoding/decoding
- Exposed JSON encoders/decoders for custom type handling
Quality
- Enhanced docstring consistency for upcoming Sphinx documentation
- Added examples in Readme for nested types, and JSON encoders/decoders
- Updated the links in Readme for docs/tests
- Added pypi badge to Readme
Breaking Changes
- Removed Python 2.x legacy methods
- Minimum Redis version requirement: 6.2.0
- Changed iteration behavior of methods
items
,values
,keys
to align with Python 3.x standards
Coming in v3.1.0
- Comprehensive documentation improvements
- Sphinx integration
Redis Compatibility
- Now requires Redis 6.2.0+ to fix race conditions in
setdefault
andpop
methods - Implemented atomic operations for improved data consistency
Closed Issues
- #68: Modern conventions and best practices
- #60: Race condition under certain circumstances
setdefault
,pop
Contributors:
Special thanks to these contributors:
@shughes-uk - Bug identification and reporting
@jvllmr - Feature implementation
This release represents a major modernization effort, bringing RedisDict up to current Python Standards