Skip to content

Commit 63a23fb

Browse files
authored
Merge branch 'master' into add-expiretime
2 parents 8ad2c39 + c4e4088 commit 63a23fb

File tree

136 files changed

+13127
-1643
lines changed

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

136 files changed

+13127
-1643
lines changed

.github/PULL_REQUEST_TEMPLATE.md

+1
Original file line numberDiff line numberDiff line change
@@ -7,6 +7,7 @@ _Please make sure to review and check all of these items:_
77
- [ ] Is the new or changed code fully tested?
88
- [ ] Is a documentation update included (if this change modifies existing APIs, or introduces new ones)?
99
- [ ] Is there an example added to the examples folder (if applicable)?
10+
- [ ] Was the change added to CHANGES file?
1011

1112
_NOTE: these things are not required to open a PR and can be done
1213
afterwards / while the PR is open._

.github/release-drafter-config.yml

+4-4
Original file line numberDiff line numberDiff line change
@@ -1,16 +1,16 @@
11
name-template: 'Version $NEXT_PATCH_VERSION'
22
tag-template: 'v$NEXT_PATCH_VERSION'
33
autolabeler:
4-
- label: 'chore'
4+
- label: 'maintenance'
55
files:
66
- '*.md'
77
- '.github/*'
88
- label: 'bug'
99
branch:
1010
- '/bug-.+'
11-
- label: 'chore'
11+
- label: 'maintenance'
1212
branch:
13-
- '/chore-.+'
13+
- '/maintenance-.+'
1414
- label: 'feature'
1515
branch:
1616
- '/feature-.+'
@@ -28,7 +28,7 @@ categories:
2828
- 'bugfix'
2929
- 'bug'
3030
- title: '🧰 Maintenance'
31-
label: 'chore'
31+
label: 'maintenance'
3232
change-template: '- $TITLE (#$NUMBER)'
3333
exclude-labels:
3434
- 'skip-changelog'

.github/workflows/codeql-analysis.yml

+68
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,68 @@
1+
# For most projects, this workflow file will not need changing; you simply need
2+
# to commit it to your repository.
3+
#
4+
# You may wish to alter this file to override the set of languages analyzed,
5+
# or to provide custom queries or build logic.
6+
#
7+
# ******** NOTE ********
8+
# We have attempted to detect the languages in your repository. Please check
9+
# the `language` matrix defined below to confirm you have the correct set of
10+
# supported CodeQL languages.
11+
#
12+
name: "CodeQL"
13+
14+
on:
15+
push:
16+
branches: [ master ]
17+
pull_request:
18+
# The branches below must be a subset of the branches above
19+
branches: [ master ]
20+
21+
jobs:
22+
analyze:
23+
name: Analyze
24+
runs-on: ubuntu-latest
25+
permissions:
26+
actions: read
27+
contents: read
28+
security-events: write
29+
30+
strategy:
31+
fail-fast: false
32+
matrix:
33+
language: [ 'python' ]
34+
# CodeQL supports [ 'cpp', 'csharp', 'go', 'java', 'javascript', 'python', 'ruby' ]
35+
# Learn more about CodeQL language support at https://git.io/codeql-language-support
36+
37+
steps:
38+
- name: Checkout repository
39+
uses: actions/checkout@v2
40+
41+
# Initializes the CodeQL tools for scanning.
42+
- name: Initialize CodeQL
43+
uses: github/codeql-action/init@v1
44+
with:
45+
languages: ${{ matrix.language }}
46+
# If you wish to specify custom queries, you can do so here or in a config file.
47+
# By default, queries listed here will override any specified in a config file.
48+
# Prefix the list here with "+" to use these queries and those in the config file.
49+
# queries: ./path/to/local/query, your-org/your-repo/queries@main
50+
51+
# Autobuild attempts to build any compiled languages (C/C++, C#, or Java).
52+
# If this step fails, then you should remove it and run the build manually (see below)
53+
- name: Autobuild
54+
uses: github/codeql-action/autobuild@v1
55+
56+
# ℹ️ Command-line programs to run using the OS shell.
57+
# 📚 https://git.io/JvXDl
58+
59+
# ✏️ If the Autobuild fails above, remove it and uncomment the following three lines
60+
# and modify them (or add more) to build your code if your project
61+
# uses a compiled language
62+
63+
#- run: |
64+
# make bootstrap
65+
# make release
66+
67+
- name: Perform CodeQL Analysis
68+
uses: github/codeql-action/analyze@v1

.github/workflows/integration.yaml

+5-2
Original file line numberDiff line numberDiff line change
@@ -8,9 +8,11 @@ on:
88
- '**/*.md'
99
branches:
1010
- master
11+
- '[0-9].[0-9]'
1112
pull_request:
1213
branches:
1314
- master
15+
- '[0-9].[0-9]'
1416

1517
jobs:
1618

@@ -30,8 +32,9 @@ jobs:
3032
3133
run-tests:
3234
runs-on: ubuntu-latest
35+
timeout-minutes: 30
3336
strategy:
34-
max-parallel: 6
37+
max-parallel: 15
3538
matrix:
3639
python-version: ['3.6', '3.7', '3.8', '3.9', '3.10', 'pypy-3.7']
3740
test-type: ['standalone', 'cluster']
@@ -47,8 +50,8 @@ jobs:
4750
python-version: ${{ matrix.python-version }}
4851
- name: run tests
4952
run: |
53+
pip install -U setuptools wheel
5054
pip install -r dev_requirements.txt
51-
bash docker/stunnel/create_certs.sh
5255
tox -e ${{matrix.test-type}}-${{matrix.connection-type}}
5356
- name: Upload codecov coverage
5457
uses: codecov/codecov-action@v2

.gitignore

+1-1
Original file line numberDiff line numberDiff line change
@@ -14,7 +14,7 @@ vagrant/.vagrant
1414
env
1515
venv
1616
coverage.xml
17-
.venv
17+
.venv*
1818
*.xml
1919
.coverage*
2020
docker/stunnel/keys

.mypy.ini

+24
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,24 @@
1+
[mypy]
2+
#, docs/examples, tests
3+
files = redis
4+
check_untyped_defs = True
5+
follow_imports_for_stubs asyncio.= True
6+
#disallow_any_decorated = True
7+
disallow_subclassing_any = True
8+
#disallow_untyped_calls = True
9+
disallow_untyped_decorators = True
10+
#disallow_untyped_defs = True
11+
implicit_reexport = False
12+
no_implicit_optional = True
13+
show_error_codes = True
14+
strict_equality = True
15+
warn_incomplete_stub = True
16+
warn_redundant_casts = True
17+
warn_unreachable = True
18+
warn_unused_ignores = True
19+
disallow_any_unimported = True
20+
#warn_return_any = True
21+
22+
[mypy-redis.asyncio.lock]
23+
# TODO: Remove once locks has been rewritten
24+
ignore_errors = True

CHANGES

+162-6
Original file line numberDiff line numberDiff line change
@@ -1,11 +1,167 @@
1-
# DEPRECATED
21

3-
This file is historic. Starting with redis-py 4.0.0b1, please see the GitHub releases page at
4-
https://github.com/redis/redis-py/releases.
2+
* Add `items` parameter to `hset` signature
3+
* Create codeql-analysis.yml (#1988). Thanks @chayim
4+
* Add limited support for Lua scripting with RedisCluster
5+
* Implement `.lock()` method on RedisCluster
56

6-
------------------------------------------------------------------------------------------------
7-
8-
* (in development)
7+
* 4.1.3 (Feb 8, 2022)
8+
* Fix flushdb and flushall (#1926)
9+
* Add redis5 and redis4 dockers (#1871)
10+
* Change json.clear test multi to be up to date with redisjson (#1922)
11+
* Fixing volume for unstable_cluster docker (#1914)
12+
* Update changes file with changes since 4.0.0-beta2 (#1915)
13+
* 4.1.2 (Jan 27, 2022)
14+
* Invalid OCSP certificates should raise ConnectionError on failed validation (#1907)
15+
* Added retry mechanism on socket timeouts when connecting to the server (#1895)
16+
* LMOVE, BLMOVE return incorrect responses (#1906)
17+
* Fixing AttributeError in UnixDomainSocketConnection (#1903)
18+
* Fixing TypeError in GraphCommands.explain (#1901)
19+
* For tests, increasing wait time for the cluster (#1908)
20+
* Increased pubsub's wait_for_messages timeout to prevent flaky tests (#1893)
21+
* README code snippets formatted to highlight properly (#1888)
22+
* Fix link in the main page (#1897)
23+
* Documentation fixes: JSON Example, SSL Connection Examples, RTD version (#1887)
24+
* Direct link to readthedocs (#1885)
25+
* 4.1.1 (Jan 17, 2022)
26+
* Add retries to connections in Sentinel Pools (#1879)
27+
* OCSP Stapling Support (#1873)
28+
* Define incr/decr as aliases of incrby/decrby (#1874)
29+
* FT.CREATE - support MAXTEXTFIELDS, TEMPORARY, NOHL, NOFREQS, SKIPINITIALSCAN (#1847)
30+
* Timeseries docs fix (#1877)
31+
* get_connection: catch OSError too (#1832)
32+
* Set keys var otherwise variable not created (#1853)
33+
* Clusters should optionally require full slot coverage (#1845)
34+
* Triple quote docstrings in client.py PEP 257 (#1876)
35+
* syncing requirements (#1870)
36+
* Typo and typing in GraphCommands documentation (#1855)
37+
* Allowing poetry and redis-py to install together (#1854)
38+
* setup.py: Add project_urls for PyPI (#1867)
39+
* Support test with redis unstable docker (#1850)
40+
* Connection examples (#1835)
41+
* Documentation cleanup (#1841)
42+
* 4.1.0 (Dec 26, 2021)
43+
* OCSP stapling support (#1820)
44+
* Support for SELECT (#1825)
45+
* Support for specifying error types with retry (#1817)
46+
* Support for RESET command since Redis 6.2.0 (#1824)
47+
* Support CLIENT TRACKING (#1612)
48+
* Support WRITE in CLIENT PAUSE (#1549)
49+
* JSON set_file and set_path support (#1818)
50+
* Allow ssl_ca_path with rediss:// urls (#1814)
51+
* Support for password-encrypted SSL private keys (#1782)
52+
* Support SYNC and PSYNC (#1741)
53+
* Retry on error exception and timeout fixes (#1821)
54+
* Fixing read race condition during pubsub (#1737)
55+
* Fixing exception in listen (#1823)
56+
* Fixed MovedError, and stopped iterating through startup nodes when slots are fully covered (#1819)
57+
* Socket not closing after server disconnect (#1797)
58+
* Single sourcing the package version (#1791)
59+
* Ensure redis_connect_func is set on uds connection (#1794)
60+
* SRTALGO - Skip for redis versions greater than 7.0.0 (#1831)
61+
* Documentation updates (#1822)
62+
* Add CI action to install package from repository commit hash (#1781) (#1790)
63+
* Fix link in lmove docstring (#1793)
64+
* Disabling JSON.DEBUG tests (#1787)
65+
* Migrated targeted nodes to kwargs in Cluster Mode (#1762)
66+
* Added support for MONITOR in clusters (#1756)
67+
* Adding ROLE Command (#1610)
68+
* Integrate RedisBloom support (#1683)
69+
* Adding RedisGraph support (#1556)
70+
* Allow overriding connection class via keyword arguments (#1752)
71+
* Aggregation LOAD * support for RediSearch (#1735)
72+
* Adding cluster, bloom, and graph docs (#1779)
73+
* Add packaging to setup_requires, and use >= to play nice to setup.py (fixes #1625) (#1780)
74+
* Fixing the license link in the readme (#1778)
75+
* Removing distutils from tests (#1773)
76+
* Fix cluster ACL tests (#1774)
77+
* Improved RedisCluster's reinitialize_steps and documentation (#1765)
78+
* Added black and isort (#1734)
79+
* Link Documents for all module commands (#1711)
80+
* Pyupgrade + flynt + f-strings (#1759)
81+
* Remove unused aggregation subclasses in RediSearch (#1754)
82+
* Adding RedisCluster client to support Redis Cluster Mode (#1660)
83+
* Support RediSearch FT.PROFILE command (#1727)
84+
* Adding support for non-decodable commands (#1731)
85+
* COMMAND GETKEYS support (#1738)
86+
* RedisJSON 2.0.4 behaviour support (#1747)
87+
* Removing deprecating distutils (PEP 632) (#1730)
88+
* Updating PR template (#1745)
89+
* Removing duplication of Script class (#1751)
90+
* Splitting documentation for read the docs (#1743)
91+
* Improve code coverage for aggregation tests (#1713)
92+
* Fixing COMMAND GETKEYS tests (#1750)
93+
* GitHub release improvements (#1684)
94+
* 4.0.2 (Nov 22, 2021)
95+
* Restoring Sentinel commands to redis client (#1723)
96+
* Better removal of hiredis warning (#1726)
97+
* Adding links to redis documents in function calls (#1719)
98+
* 4.0.1 (Nov 17, 2021)
99+
* Removing command on initial connections (#1722)
100+
* Removing hiredis warning when not installed (#1721)
101+
* 4.0.0 (Nov 15, 2021)
102+
* FT.EXPLAINCLI intentionally raising NotImplementedError
103+
* Restoring ZRANGE desc for Redis < 6.2.0 (#1697)
104+
* Response parsing occasionally fails to parse floats (#1692)
105+
* Re-enabling read-the-docs (#1707)
106+
* Call HSET after FT.CREATE to avoid keyspace scan (#1706)
107+
* Unit tests fixes for compatibility (#1703)
108+
* Improve documentation about Locks (#1701)
109+
* Fixes to allow --redis-url to pass through all tests (#1700)
110+
* Fix unit tests running against Redis 4.0.0 (#1699)
111+
* Search alias test fix (#1695)
112+
* Adding RediSearch/RedisJSON tests (#1691)
113+
* Updating codecov rules (#1689)
114+
* Tests to validate custom JSON decoders (#1681)
115+
* Added breaking icon to release drafter (#1702)
116+
* Removing dependency on six (#1676)
117+
* Re-enable pipeline support for JSON and TimeSeries (#1674)
118+
* Export Sentinel, and SSL like other classes (#1671)
119+
* Restore zrange functionality for older versions of Redis (#1670)
120+
* Fixed garbage collection deadlock (#1578)
121+
* Tests to validate built python packages (#1678)
122+
* Sleep for flaky search test (#1680)
123+
* Test function renames, to match standards (#1679)
124+
* Docstring improvements for Redis class (#1675)
125+
* Fix georadius tests (#1672)
126+
* Improvements to JSON coverage (#1666)
127+
* Add python_requires setuptools check for python > 3.6 (#1656)
128+
* SMISMEMBER support (#1667)
129+
* Exposing the module version in loaded_modules (#1648)
130+
* RedisTimeSeries support (#1652)
131+
* Support for json multipath ($) (#1663)
132+
* Added boolean parsing to PEXPIRE and PEXPIREAT (#1665)
133+
* Add python_requires setuptools check for python > 3.6 (#1656)
134+
* Adding vulture for static analysis (#1655)
135+
* Starting to clean the docs (#1657)
136+
* Update README.md (#1654)
137+
* Adding description format for package (#1651)
138+
* Publish to pypi as releases are generated with the release drafter (#1647)
139+
* Restore actions to prs (#1653)
140+
* Fixing the package to include commands (#1649)
141+
* Re-enabling codecov as part of CI process (#1646)
142+
* Adding support for redisearch (#1640) Thanks @chayim
143+
* redisjson support (#1636) Thanks @chayim
144+
* Sentinel: Add SentinelManagedSSLConnection (#1419) Thanks @AbdealiJK
145+
* Enable floating parameters in SET (ex and px) (#1635) Thanks @AvitalFineRedis
146+
* Add warning when hiredis not installed. Recommend installation. (#1621) Thanks @adiamzn
147+
* Raising NotImplementedError for SCRIPT DEBUG and DEBUG SEGFAULT (#1624) Thanks @chayim
148+
* CLIENT REDIR command support (#1623) Thanks @chayim
149+
* REPLICAOF command implementation (#1622) Thanks @chayim
150+
* Add support to NX XX and CH to GEOADD (#1605) Thanks @AvitalFineRedis
151+
* Add support to ZRANGE and ZRANGESTORE parameters (#1603) Thanks @AvitalFineRedis
152+
* Pre 6.2 redis should default to None for script flush (#1641) Thanks @chayim
153+
* Add FULL option to XINFO SUMMARY (#1638) Thanks @agusdmb
154+
* Geosearch test should use any=True (#1594) Thanks @Andrew-Chen-Wang
155+
* Removing packaging dependency (#1626) Thanks @chayim
156+
* Fix client_kill_filter docs for skimpy (#1596) Thanks @Andrew-Chen-Wang
157+
* Normalize minid and maxlen docs (#1593) Thanks @Andrew-Chen-Wang
158+
* Update docs for multiple usernames for ACL DELUSER (#1595) Thanks @Andrew-Chen-Wang
159+
* Fix grammar of get param in set command (#1588) Thanks @Andrew-Chen-Wang
160+
* Fix docs for client_kill_filter (#1584) Thanks @Andrew-Chen-Wang
161+
* Convert README & CONTRIBUTING from rst to md (#1633) Thanks @davidylee
162+
* Test BYLEX param in zrangestore (#1634) Thanks @AvitalFineRedis
163+
* Tox integrations with invoke and docker (#1632) Thanks @chayim
164+
* Adding the release drafter to help simplify release notes (#1618). Thanks @chayim
9165
* BACKWARDS INCOMPATIBLE: Removed support for end of life Python 2.7. #1318
10166
* BACKWARDS INCOMPATIBLE: All values within Redis URLs are unquoted via
11167
urllib.parse.unquote. Prior versions of redis-py supported this by

CONTRIBUTING.md

+3-3
Original file line numberDiff line numberDiff line change
@@ -112,12 +112,12 @@ You can see the logging output of a containers like this:
112112
`$ docker logs -f <service>`
113113

114114
The command make test runs all tests in all tested Python
115-
environments. To run the tests in a single environment, like Python 3.6,
115+
environments. To run the tests in a single environment, like Python 3.9,
116116
use a command like this:
117117

118-
`$ docker-compose run test tox -e py36 -- --redis-url=redis://master:6379/9`
118+
`$ docker-compose run test tox -e py39 -- --redis-url=redis://master:6379/9`
119119

120-
Here, the flag `-e py36` runs tests against the Python 3.6 tox
120+
Here, the flag `-e py39` runs tests against the Python 3.9 tox
121121
environment. And note from the example that whenever you run tests like
122122
this, instead of using make test, you need to pass
123123
`-- --redis-url=redis://master:6379/9`. This points the tests at the

0 commit comments

Comments
 (0)