Skip to content

Releases: Attumm/redis-dict

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

Added custom Types

17 Oct 11:11
6f25c5d
Compare
Choose a tag to compare

v.2.6.0

Added extended types, allowing for custom types to be added and even storing values encrypted. Additionally, various housekeeping updates have been made to improve overall code quality and maintainability.

  • Added support for extended types and custom type additions
  • Example encrypted value storage
  • Added testing for extended types and encryption
  • Refactored transform functionality for improved encoding/decoding
  • Updated README with new sections on extended types and examples

Updated Readme and Housekeeping

05 Oct 10:09
0b7b2e8
Compare
Choose a tag to compare

This release focuses on documentation updates and general maintenance of the project.
The primary goal is to ensure that the latest README changes are reflected on PyPI.

Forward and backwards compatibility

28 Feb 09:55
fef0da4
Compare
Choose a tag to compare

Many thanks to @Pydes-boop for discovering that redis-dict had almost complete compatibility with dictionaries. However, full compatibility was not in place due to the existing legacy Python2 thunder methods. Subsequently, @Pydes-boop also resolved the issue perfectly with the most appropriate changes, and demonstrated behaviour equivalence with tests. Thanks a bunch.

  • Updated to python3 eq and neq comparison operators @Pydes-boop
  • Changed typing for compatibility with Python 3.9 @Girgitt
  • Small update for readme
  • Bump cryptography from 42.0.2 to 42.0.4 for test requirements

Additionally, a small thank you to @Girgitt for drawing attention to the issue of backward compatibility.

updated readme, test-requirement bump

17 Feb 09:11
d20c7a6
Compare
Choose a tag to compare

updated readme, test-requirement bump