Pottery

Latest version: v3.0.1

Safety actively analyzes 723177 Python packages for vulnerabilities to keep your Python projects secure.

Scan your dependencies

Page 2 of 9

2.3.5

Not secure
Bug Fix: Don't allow a `RedisDeque` to equal a `RedisList`...

...even if they're both on the same Redis instance and have the same key.

Before this release:

python
>>> from pottery import RedisDeque, RedisList
>>> RedisDeque(key='videos:dicts') == RedisList(key='videos:dicts')
True


As of this release:

python
>>> from pottery import RedisDeque, RedisList
>>> RedisDeque(key='videos:dicts') == RedisList(key='videos:dicts')
False


What's Changed
* Make minor code cleanups by brainix in https://github.com/brainix/pottery/pull/575
* Don't allow a RedisDeque to equal a RedisList... by brainix in https://github.com/brainix/pottery/pull/576


**Full Changelog**: https://github.com/brainix/pottery/compare/v2.3.4...v2.3.5

2.3.4

Not secure
Bug Fix: Don't allow `RedisDeque`s to equal Python lists...

...even when they contain the same elements. Observe:

python
>>> import collections
>>> collections.deque([1, 2, 3]) == [1, 2, 3]
False


What's Changed
* Don't allow RedisDeques to equal Python lists... by brainix in https://github.com/brainix/pottery/pull/574


**Full Changelog**: https://github.com/brainix/pottery/compare/v2.3.3...v2.3.4

2.3.3

Not secure
Bug Fix: Don't allow `RedisDeque`s to equal `RedisList`s...

...even when they contain the same elements. Observe:

python
>>> import collections
>>> collections.deque([1, 2, 3]) == [1, 2, 3]
False


What's Changed
* Dramatically simplify RedisList.__eq__() by brainix in https://github.com/brainix/pottery/pull/573


**Full Changelog**: https://github.com/brainix/pottery/compare/v2.3.2...v2.3.3

2.3.2

Not secure
Bug Fix: Properly compare `RedisList`s on different Redis databases

Prior to this release, `list1 == list2` would fail if both were `RedisList`s but on different Redis databases. This is because we'd try to use the same [Redis pipeline](https://redis.io/topics/pipelining) for both lists. Fixed in #572.

What's Changed
* Reuse the ._same_redis() helper method by brainix in https://github.com/brainix/pottery/pull/561
* Reorder methods in Primitive ABC to help subclass by brainix in https://github.com/brainix/pottery/pull/562
* Use redis-py's .hscan_iter() and .sscan_iter() by brainix in https://github.com/brainix/pottery/pull/563
* Preserve Open-Closed Principle with name mangling by brainix in https://github.com/brainix/pottery/pull/564
* Simplify code using chunking and aliasing by brainix in https://github.com/brainix/pottery/pull/565
* Name variables more consistently by brainix in https://github.com/brainix/pottery/pull/566
* Use whitespace to make code more clear by brainix in https://github.com/brainix/pottery/pull/567
* Preserve Open-Closed Principle with name mangling by brainix in https://github.com/brainix/pottery/pull/568
* Refactor code in RedisCounter methods for clarity by brainix in https://github.com/brainix/pottery/pull/569
* Simplify RedisDict._populate() by brainix in https://github.com/brainix/pottery/pull/570
* Factor our RedisDict._encode_dict() by brainix in https://github.com/brainix/pottery/pull/571
* Properly compare RedisLists on different Redis dbs by brainix in https://github.com/brainix/pottery/pull/572


**Full Changelog**: https://github.com/brainix/pottery/compare/v2.3.1...v2.3.2

2.3.1

Not secure
Bug Fix: More robustly test if two Redis clients talk to the same database

Previously, we were comparing the two clients' `connection_kwargs`, but `connection_kwargs` contains more than just `host`, `port`, and `db`:

python
>>> from redis import Redis
>>> redis = Redis()
>>> redis.connection_pool.connection_kwargs
{'db': 0, 'username': None, 'password': None, 'socket_timeout': None, 'encoding': 'utf-8', 'encoding_errors': 'strict', 'decode_responses': False, 'retry_on_error': [], 'retry': None, 'health_check_interval': 0, 'client_name': None, 'redis_connect_func': None, 'host': 'localhost', 'port': 6379, 'socket_connect_timeout': None, 'socket_keepalive': None, 'socket_keepalive_options': None}


This PR allows Pottery to recognize that two Redis clients are connected to the same database even if their socket timeout our retry policies are different.

Bug Fix: Make `RedisSet.contains_many()` work for non-JSONifyable objects

2.3.0

Not secure
New Feature: `RedisSimpleQueue`

`RedisSimpleQueue` is a Redis-backed multi-producer, multi-consumer FIFO queue compatible with Python’s [`queue.SimpleQueue`](https://docs.python.org/3/library/queue.html#simplequeue-objects). In general, use a Python `queue.Queue` if you’re using it in one or more threads, use `multiprocessing.Queue` if you’re using it between processes, and use `RedisSimpleQueue` if you’re sharing it across machines or if you need for your queue to persist across application crashes or restarts.

What's Changed
* Design RedisSimpleQueue class by brainix in https://github.com/brainix/pottery/pull/553


**Full Changelog**: https://github.com/brainix/pottery/compare/v2.2.2...v2.3.0

Page 2 of 9

© 2025 Safety CLI Cybersecurity Inc. All Rights Reserved.