Skip to content

Releases: Attumm/redis-dict

Valkey Compatibility Check

08 Mar 10:16
a258a4a
Compare
Choose a tag to compare

Valkey Compatibility:

  • Added a CI pipeline with Valkey instead of Redis to test and verify compatibility with Valkey.
  • Added badge to readme to show valkey compatibility.
  • Added start scripts for Valkey for testing and development.

Updated Readme

07 Mar 20:02
c30feb7
Compare
Choose a tag to compare

Updated the readme:

  • Fixed deadlinks
  • Added internal links
  • Added security text

Added README Badge and Updated README

01 Mar 09:05
9fc6930
Compare
Choose a tag to compare

This release is special in the sense that the title encapsulates the updates included.
But for brevity here are the release notes:

This release adds a README badge and includes several updates to the README file. Changes include:

  • Added README badge
  • Updated various sections of the README"

v3.2.1 Maintenance

15 Feb 10:24
5c96756
Compare
Choose a tag to compare

This release includes dependency updates and configuration fixes. The following changes have been made:

Python Build Version: Pinned to Python 3.11 to resolve an ImportError with the cryptography package in Python 3.13.

Cryptography Update: Development dependencies have been updated to use cryptography 44.0.1.

Code Coverage Accuracy: Stopped CodeCov from checking if tests are tested by tests. This change provides more accurate representation of the project's test coverage.

#85 #86 #88

v3.2.0 Redis Dict: Python Dictionary

23 Nov 21:54
01b148c
Compare
Choose a tag to compare

This release focused on adding Python dictionary behavior to Redis Dict. Two missing features have been addressed:

  1. Raise-on-Delete Flag: Redis Dict will now have a new boolean flag, raise_key_error_delete. When set to True, Redis Dict will raise a KeyError when attempting to delete a key that has already been deleted. While this behavior might not be always ideal in distributed computing scenarios it is how python dictionary behaves. Thanks to @Pydes-boop for raising the issue and providing the solution.
  2. Python Redis Dict: This new Python Redis Dict aims to be a direct drop-in replacement for a standard Python dictionary. It will support insertion order and future updates will include typed keys and nested support for complete compatibility. @enzoBrum for analysing the issue and bringing up the issue

#51
#46

Added security check during build and CI

06 Nov 08:28
261bc74
Compare
Choose a tag to compare

Added security check through the library bandit during CI, And build process.

v3.1.1

05 Nov 19:23
aa822c3
Compare
Choose a tag to compare

Fixed links in the readme, And added initial action flow of deploying with actions.

Special thanks @Mark90 for finding and reporting the the issue.

v3.1.0 Sphinx documentation

05 Nov 12:23
5a5117a
Compare
Choose a tag to compare

In this release, Added Sphinx documentation and deployment with some small improvements for docstrings.

Documentation can be accessed online: https://attumm.github.io/redis-dict/

A GitHub Actions workflow has been added to automate the build and deployment of Sphinx documentation directly to GitHub Pages.

v3.0.0 Modernization of Package

01 Nov 22:58
9863e59
Compare
Choose a tag to compare

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

2.7.0 Expanded Type Compatibility

30 Oct 10:49
ca07bc8
Compare
Choose a tag to compare

2.7.0 Expanded Type Compatibility

RedisDict will now offer wider support for a wider range of Python data types, from basic types to nested structures. Basic types are handled natively, while complex data types, such as: lists and dictionaries. Are managed through JSON serialization. This choice avoids using pickle, a module with known security vulnerabilities in distributed computing.

Although RedisDict supports nested structures, using RedisDict as a shallow dictionary is recommended for optimal performance. This approach minimizes transformations and aligns with Redis’s key-value solution while preserving RedisDict’s Pythonic interface.

Supported Types:
str, int, float, bool, NoneType, list, dict, tuple, set, datetime, date, time, timedelta, Decimal, complex, bytes, UUID, OrderedDict, defaultdict, frozenset