This release includes asyncio implementations of Redlock
and NextID
And a few other changes:
- Support Python 3.11, 3.12, and 3.13
- Warn when doing O(n) operations
- Switch from Python's built-in
unittest
topytest
- Remove dependencies from
setup.py
What's Changed
- Flat is better than nested by @brainix in #628
- Upgrade requirements by @brainix in #629
- Preserve Open-Closed Principle with name mangling by @brainix in #630
- Upgrade requirements by @brainix in #631
- Unit test branch in Redlock._acquire_masters() by @brainix in #632
- Unit test additional branch in _log_synchronize() by @brainix in #633
- Upgrade requirements by @brainix in #634
- Upgrade requirements by @brainix in #635
- Warn when doing O(n) operations on HyperLogLogs by @brainix in #636
- Warn when doing O(n) operations on BloomFilters by @brainix in #637
- Warn when doing O(n) operations on RedisDicts by @brainix in #638
- Warn when doing O(n) operations on RedisLists by @brainix in #639
- Unit test branch in CachedOrderedDict.setitem by @brainix in #640
- Unit test add'l branch in RedisSet._populate() by @brainix in #641
- Warn when doing O(n) operations on RedisSets by @brainix in #642
- Design, implement, and test AIORedlock by @brainix in #643
- Fix validity time calc in AIORedlock.locked() by @brainix in #644
- Don't repeat myself by @brainix in #645
- Upgrade requirements by @brainix in #647
- Make NextId and Redlock Scripts classes parallel by @brainix in #649
- Design, implement, and test AIONextID by @brainix in #650
- Write additional AIORedlock unit tests by @brainix in #651
- Implement AIORedlock blocking and timeout by @brainix in #652
- Write additional AIORedlock unit tests by @brainix in #654
- Write additional AIONextID unit tests by @brainix in #655
- Upgrade requirements by @brainix in #656
- Write additional AIORedlock unit tests by @brainix in #657
- Implement and test .repr()s for AIO classes by @brainix in #658
- Upgrade requirements by @brainix in #659
- Document AIORedlock usage by @brainix in #646
- Add asyncio Trove classifier by @brainix in #660
- Write docstring for AIORedlock.init() by @brainix in #661
- Clean up asyncio unit tests and doctests by @brainix in #662
- Write docstring for AIORedlock.acquire() by @brainix in #663
- Test AIORedlock contention against 5 Redis masters by @brainix in #664
- Test Redlock contention against 5 Redis masters by @brainix in #665
- Make doctests run faster, and run them on CI by @brainix in #666
- Use uvloop instead of built-in asyncio event loop by @brainix in #667
- Use qualname instead of name in repr() by @brainix in #668
- Run asyncio in debug mode by @brainix in #669
- Switch from Python's built-in unittest to pytest by @brainix in #670
- Improve Redlock contention tests by @brainix in #672
- Test contention across 1-10 concurrent Redlocks by @brainix in #673
- Remove unnecessary for loop in unit test cleanup by @brainix in #674
- Use qualname instead of name in logs by @brainix in #675
- Don't make tests async unless they need to be by @brainix in #676
- Test AIONextID contention against 5 Redis masters by @brainix in #677
- Preserve Open-Closed Principle with name mangling by @brainix in #678
- Upgrade requirements by @brainix in #679
- Test NextID contention against 5 Redis masters by @brainix in #680
- Clean up requirements by @brainix in #681
- Write docstring for AIORedlock.locked() by @brainix in #682
- Write docstring for AIORedlock.extend() by @brainix in #683
- Write docstring for AIORedlock.release() by @brainix in #684
- Write docstring for AIORedlock.aenter() by @brainix in #685
- Make acquired a keyword-only arg by @brainix in #686
- Upgrade requirements by @brainix in #687
- Bump up redis to 4.2.2 by @KMilhan in #688
- Upgrade requirements by @brainix in #704
- Support Python 3.11 by @brainix in #705
- Upgrade setuptools on local development by @brainix in #706
- Delete incorrect comment by @brainix in #707
- Update for loop to use walrus operator by @brainix in #708
- Clean up BloomFilter.contains_many() by @brainix in #709
- fix GitHub workflow badge URL by @shoito in #711
- Upgrade requirements by @brainix in #712
- Support Python 3.12 by @brainix in #713
- Upgrade requirements by @brainix in #714
- Upgrade requirements by @brainix in #715
- Upgrade requirements by @brainix in #717
- Upgrade requirements by @brainix in #718
- Upgrade requirements by @brainix in #720
- Upgrade requirements by @brainix in #721
- Upgrade Python to 3.12.1 by @brainix in #722
- Remove args/kwargs from @_store_on_self(func) by @brainix in #726
- Upgrade requirements by @brainix in #727
- Happy new year! by @brainix in #728
- Upgrade requirements by @brainix in #729
- Upgrade requirements by @brainix in #730
- Upgrade requirements by @brainix in #731
- Upgrade requirements by @brainix in #732
- Upgrade requirements by @brainix in #736
- Upgrade Python to 3.12.2 by @brainix in #737
- Upgrade requirements by @brainix in #738
- Upgrade requirements by @brainix in #739
- Upgrade requirements by @brainix in #740
- Upgrade requirements by @brainix in #744
- Upgrade requirements by @brainix in #746
- Upgrade requirements by @brainix in #747
- Upgrade Python to 3.12.4 by @brainix in #748
- Upgrade requirements by @brainix in #749
- Upgrade requirements by @brainix in #752
- Remove no longer supported README badge by @brainix in #753
- Support Python 3.13 by @brainix in #754
- Upgrade requirements by @brainix in #756
- Upgrade Python to 3.13.1 by @brainix in #757
- Upgrade requirements by @brainix in #758
- Upgrade requirements by @brainix in #759
- Upgrade requirements by @brainix in #761
- Upgrade Python to 3.13.2 by @brainix in #762
- Happy new year! by @brainix in #763
- Make BloomFilterABC.len() consistent by @brainix in #764
- Simplify logic in BloomFilter.contains_many() by @brainix in #765
- Simplify logic in BloomFilter.contains_many() by @brainix in #766
- Simplify logic in BloomFilter.contains_many() by @brainix in #767
- Improve BloomFilter.contains_many() docstring by @brainix in #768
- Upgrade requirements by @brainix in #769
- Fix setup.py by @brainix in #770
- Remove typing dependency from setup.py by @brainix in #771
- Make code more consistent by @brainix in #772
- Upgrade requirements by @brainix in #773
New Contributors
Full Changelog: v3.0.0...v3.0.1