Releases: brainix/pottery
Releases Β· brainix/pottery
v1.2.1
Quality of Life: Log when Redlock is enqueued, waiting to acquire
What's Changed
- Upgrade requirements by @brainix in #407
- In README, recommend instantiating new Redlocks by @brainix in #408
- Improve Redlock unit test coverage by @brainix in #409
- Reorder code for consistency by @brainix in #410
- Upgrade requirements by @brainix in #411
- Remove type annotation stubs by @brainix in #412
- Upgrade requirements by @brainix in #413
- Implement Librato-style structured log metrics by @brainix in #414
Full Changelog: v1.2.0...v1.2.1
v1.2.0
- Quality of Life: Allow re-raising on
RedisError
s #404 - Bug Fix: Don't let
RedisList
s equal tuples
This is how Python behaves:
>>> [1, 2, 3] == (1, 2, 3)
False
As of this release, this is also how Pottery behaves:
>>> from pottery import RedisList
>>> RedisList((1, 2, 3)) == (1, 2, 3)
False
What's Changed
- Upgrade requirements by @brainix in #393
- Make all of our distributed algorithms consistent by @brainix in #394
- Tighten .exit() type annotations by @brainix in #395
- Make .exit() return a bool by @brainix in #396
- Don't let RedisLists equal tuples by @brainix in #397
- Clean up RedisList unit tests by @brainix in #398
- Make RedisList unit tests consistent by @brainix in #399
- Write doctest Makefile target by @brainix in #400
- Improve redis_cache() documentation by @brainix in #401
- Test _store_on_self() decorator by @brainix in #403
- Improve Redlock unit test coverage by @brainix in #405
- Raise exception if quorum is impossible by @brainix in #406
Full Changelog: v1.1.8...v1.2.0
v1.1.8
Optimization: Make Redlock.locked()
slightly more efficient
Bail out of Redlock.locked()
as soon as we've achieved quorum.
What's Changed
- Improve wording by @brainix in #380
- Upgrade requirements by @brainix in #381
- Improve grammar in log messages by @brainix in #382
- Document RedisList limitations by @brainix in #383
- Test BailOutExecutor by @brainix in #384
- Fix flapping test by @brainix in #385
- Upgrade Python to 3.9.5 by @brainix in #386
- Simplify code by using chunking by @brainix in #387
- Simplify code to reduce cognitive load by @brainix in #388
- Preserve Open-Closed Principle with name mangling by @brainix in #389
- Bail out of Redlock.locked() on quorum by @brainix in #390
- Simplify Redlock.locked() by @brainix in #391
- Make all of our distributed algorithms consistent by @brainix in #392
Full Changelog: v1.1.7...v1.1.8
v1.1.7
- Quality of Life: Fix
Redlock.acquire()
type annotation - Quality of Life: Specify that Pottery requires Python 3.6+
What's Changed
- Upgrade requirements by @brainix in #370
- Upgrade Python to 3.9.4 by @brainix in #373
- Fix Redlock.acquire() type annotation by @brainix in #374
- Upgrade requirements by @brainix in #375
- Document RedisList limitations by @brainix in #376
- Simplify code to reduce cognitive load by @brainix in #377
- Twiddle code by @brainix in #378
- Specify Python version specifier by @brainix in #379
Full Changelog: v1.1.6...v1.1.7
v1.1.6
- Quality of Life: Use UUIDs (instead of random alphanumeric characters) as Redlock values
- Quality of Life: Tighten up
.__exit__()
type annotations
What's Changed
- Upgrade requirements by @brainix in #359
- Update copyright headers w/ Apache License notice by @brainix in #360
- Upgrade requirements by @brainix in #361
- Fix link anchor targets in Table of Contents by @brainix in #362
- Fix link anchor targets in Table of Contents by @brainix in #363
- Upgrade requirements by @brainix in #364
- Upgrade requirements by @brainix in #365
- Tighten BailOutExecutor.exit() type annotation by @brainix in #366
- Upgrade requirements by @brainix in #367
- Tighten .exit() type annotations by @brainix in #368
- Use UUIDs (not random bytes) as Redlock values by @brainix in #369
Full Changelog: v1.1.5...v1.1.6
v1.1.5
- Bug Fix: Raise
TypeError
for invalidRedisList
slice types - Bug Fix: Raise
TypeError
for invalidRedisDeque.rotate()
steps - Bug Fix: Implement
RedisDeque.__bool__()
- Previously, all
RedisDeque
s were falsey, evenRedisDeque
s that contained elements
- Previously, all
What's Changed
- Order arguments consistently by @brainix in #336
- Use pipeline inside .__slice_to_indices()... by @brainix in #337
- Simplify code to reduce cognitive load by @brainix in #338
- Raise TypeError for invalid list slice types by @brainix in #339
- Document redis_cache() limitations by @brainix in #340
- Fix nested numbered list formatting in README by @brainix in #341
- Twiddle wording in README by @brainix in #342
- Use pipeline to find len(self) in RedisList.pop() by @brainix in #343
- Update comment to reflect reality by @brainix in #344
- Use pipeline to find self[index]... by @brainix in #345
- Write clearer pipeline blocks by @brainix in #346
- Soften wording in comments by @brainix in #347
- Simplify code to reduce cognitive load by @brainix in #348
- Update CODE_OF_CONDUCT.md by @brainix in #349
- Update issue templates by @brainix in #350
- Update bug report template by @brainix in #351
- Update Contributor Covenant to 2.0 by @brainix in #352
- Upgrade requirements by @brainix in #353
- Raise TypeError for invalid .rotate() steps by @brainix in #354
- Implement RedisDeque.bool() by @brainix in #355
- Remove heroku update from Makefile by @brainix in #356
- Improve wording in comments by @brainix in #357
- Bump version number by @brainix in #358
Full Changelog: v1.1.4...v1.1.5
v1.1.4
Bug Fix: RedisList
slicing
This was the previous buggy behavior:
>>> list_ = RedisList([1, 2, 3, 4, 5])
>>> list_[len(list_)-1:3-1:-1]
[]
This is the current correct behavior:
>>> list_ = RedisList([1, 2, 3, 4, 5])
>>> list_[len(list_)-1:3-1:-1]
[5, 4]
What's Changed
- Better configure Coverage.py by @brainix in #332
- Refactor RedisDeque.__extend() by @brainix in #333
- Simplify RedisList.__slice_to_indices() by @brainix in #334
- Fix extended slicing on RedisList by @brainix in #335
Full Changelog: v1.1.3...v1.1.4
v1.1.3
Bug Fix: RedisList
slicing
This was the previous buggy behavior:
>>> a = RedisList((1, 66.25, 1234.5))
>>> del a[:0]
>>> a
[]
This is the current correct behavior:
>>> a = RedisList((1, 66.25, 1234.5))
>>> del a[:0]
>>> a
[1, 66.25, 1234.5]
What's Changed
- Use test Redis db (redis://localhost:6379/{1-15}) by @brainix in #328
- Upgrade requirements by @brainix in #329
- Unit test RedisDeque to compute moving average by @brainix in #330
- Fix bug in RedisList slicing by @brainix in #331
Full Changelog: v1.1.2...v1.1.3
v1.1.2
v1.1.1
Bug Fix: JSON encoder monkey patch
This release fixes the exception description when trying to JSON encode a non-JSON-encodable object.
Reported in #323, fixed in #324.
What's Changed
- Reduce maximum McCabe complexity from 11 to 10 by @brainix in #309
- Delete .tearDown() methods from unit test classes by @brainix in #310
- Upgrade requirements by @brainix in #311
- Use a set, not a list, where order doesn't matter by @brainix in #312
- Add Table of Contents to README.md by @brainix in #313
- Use consistent build status badge from Sheilds.io by @brainix in #314
- Properly nest lists in Markdown by @brainix in #315
- Happy new year! by @brainix in #316
- Chain exceptions to ease debugging by @brainix in #317
- Use a tuple (instead of a list) for all by @brainix in #318
- Don't repeat myself; reuse common type annotations by @brainix in #319
- Upgrade requirements by @brainix in #320
- Upgrade Mypy to 0.800 by @brainix in #321
- Upgrade requirements by @brainix in #322
- Make _default.default bound method; fix #323 by @brainix in #324
- Bump version number by @brainix in #325
Full Changelog: v1.1.0...v1.1.1