Skip to content

v3.0.0 Modernization of Package

Compare
Choose a tag to compare
@Attumm Attumm released this 01 Nov 22:58
· 10 commits to main since this release
9863e59

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 and pop 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