| Commit message (Collapse) | Author | Age | Files | Lines |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
* support JSON.MERGE Command
* linters
* try with abc instead person
* change @skip_ifmodversion_lt to latest ReJSON 2.4.7
* change version
* fix test
* linters
* add async test
|
|
|
|
|
|
|
|
|
|
|
|
| |
SentinelManagedConnection.read_response() (#2756)
* Increase timeout for a test which would hang completely if failing.
Timeouts in virtualized CI backends can occasionally fail if too short.
* add "disconnect_on_error" argument to SentinelManagedConnection
* update Changes
* lint
|
|
|
|
|
|
|
|
|
| |
* Fix xadd allow non negative maxlen
* Update change log
---------
Co-authored-by: dvora-h <67596500+dvora-h@users.noreply.github.com>
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
* Add client no-touch
* Update redis/commands/core.py
Co-authored-by: dvora-h <67596500+dvora-h@users.noreply.github.com>
* Update test_commands.py
Improve test_client_no_touch
* Update test_commands.py
Add async version test case
* Chore remove whitespace
Oops
---------
Co-authored-by: dvora-h <67596500+dvora-h@users.noreply.github.com>
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
* Add regression tests and fixes for issue #1128
* Fix tests for resumable read_response to use "disconnect_on_error"
* undo prevision fix attempts in async client and cluster
* re-enable cluster test
* Suggestions from code review
* Add CHANGES
|
| |
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
* feat: adding support for cluster myshardid
* lint fix
* fix: comment fix and async test
* fix: adding version check
* fix lint:
* linters
---------
Co-authored-by: Anuragkillswitch <70265851+Anuragkillswitch@users.noreply.github.com>
Co-authored-by: dvora-h <67596500+dvora-h@users.noreply.github.com>
Co-authored-by: dvora-h <dvora.heller@redis.com>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
* add cluster "host_port_remap" feature for asyncio.RedisCluster
* Add a unittest for asyncio.RedisCluster
* Add host_port_remap to _sync_ RedisCluster
* add synchronous tests
* rename arg to `address_remap` and take and return an address tuple.
* Add class documentation
* Add CHANGES
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
When the disconnect() function is called twice in parallel it is possible that
one thread deletes the self._sock reference, while the other thread will
attempt to call .close() on it, leading to an AttributeError.
This situation can routinely be encountered by closing the connection in a
PubSubWorkerThread error handler in a blocking thread (ie. with
sleep_time==None), and then calling .close() on the PubSub object.
The main thread will then run into the disconnect() function, and the listener
thread is woken up by the closure and will race into the disconnect()
function, too.
This can be fixed easily by copying the object reference before doing the
None-check, similar to what we do in the redis.client.close() function.
|
|
|
|
|
| |
* Fix `ClusterCommandProtocol` not itself being marked as a protocol
* Update CHANGES
|
|
|
|
|
|
|
|
|
| |
* add withscores to zrevrank
* change 0 -> 2
* fix errors
* split test
|
|
|
|
|
|
|
|
|
| |
* return response in case of KeyError
* fix code linters error
* fix linters 2
* fix linters 3
|
|
|
|
|
|
|
| |
Make MasterNotFoundError exception more precise in the case of
ConnectionError and TimeoutError to help the user to identify
configuration errors
Co-authored-by: Marc Schöchlin <marc.schoechlin@flipapp.de>
|
|
|
|
|
|
|
| |
In the execute_command of the async Sentinel, the once flag was being
used incorrectly, with its meaning inverted. To fix we just needed to invert
the if and else bodies. This isn't being caught by the tests currently
because the tests of commands that use this flag do not check their
results/effects (for example the "test_ckquorum" test).
|
| |
|
| |
|
|
|
|
|
| |
Co-authored-by: James R T <jamestiotio@gmail.com>
Co-authored-by: dvora-h <dvora.heller@redis.com>
|
| |
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
| |
There's an issue in asyncio's timeout lib before 3.11.3 that causes
async calls to raise `CancelledError`.
This is a cpython issue that was fixed in this commit [1] and
cherry-picked to previous versions, meaning 3.11.3 will work correctly.
Check [2] for more info.
[1] https://github.com/python/cpython/commit/04adf2df395ded81922c71360a5d66b597471e49
[2] https://github.com/redis/redis-py/issues/2633
|
| |
|
|
|
|
|
|
|
| |
(#2582)
* Allow data to drain from PythonParser after connection close.
* Add Changes
|
|
|
|
|
| |
super().__init__ (#2588)
Co-authored-by: dvora-h <67596500+dvora-h@users.noreply.github.com>
|
|
|
|
|
|
|
|
|
|
|
|
| |
* add queue_class to REDIS_ALLOWED_KEYS
* fix lint
* fix lint
---------
Co-authored-by: zach.lee <zach.lee@sendbird.com>
Co-authored-by: dvora-h <67596500+dvora-h@users.noreply.github.com>
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
async_timeout does not support python 3.11
https://github.com/aio-libs/async-timeout/pull/295
And have two years old annoying bugs:
https://github.com/aio-libs/async-timeout/issues/229
https://github.com/redis/redis-py/issues/2551
Since asyncio.timeout has been shipped in python 3.11, we should start
using it.
Partially fixes 2551
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
* Fixed issue #2598 - make Document class subscriptable
* Last time added older file, fixed it
* retrigger checks
* update json().arrindex() default values (#2611)
* update json().arrindex() default values
* add unit test
* fix falsy checks
* more unit tests
* add asyncio tests
* fix lint line length
---------
Co-authored-by: Alex Schmitz <aschmitz@box.com>
* Speeding up the protocol parsing (#2596)
* speeding up the protocol parser
* linting
* changes to ease
* Fixed CredentialsProvider examples (#2587)
Co-authored-by: dvora-h <67596500+dvora-h@users.noreply.github.com>
* ConnectionPool SSL example (#2605)
* [types] update return type of smismember to list[int] (#2617)
* update return type of smismember
* use Literal instead of int
* retrigger checks
* Added test for document subscriptable in tests/test_search.py
* Fixed linter issue
* retrigger checks
---------
Co-authored-by: Alex Schmitz <alex.schmitz@gmail.com>
Co-authored-by: Alex Schmitz <aschmitz@box.com>
Co-authored-by: Chayim <chayim@users.noreply.github.com>
Co-authored-by: Bar Shaul <88437685+barshaul@users.noreply.github.com>
Co-authored-by: dvora-h <67596500+dvora-h@users.noreply.github.com>
Co-authored-by: CrimsonGlory <CrimsonGlory@users.noreply.github.com>
Co-authored-by: Raymond Yin <raymond@tryevergreen.com>
|
|
|
|
|
| |
* update return type of smismember
* use Literal instead of int
|
|
|
|
|
|
|
| |
* speeding up the protocol parser
* linting
* changes to ease
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
* update json().arrindex() default values
* add unit test
* fix falsy checks
* more unit tests
* add asyncio tests
* fix lint line length
---------
Co-authored-by: Alex Schmitz <aschmitz@box.com>
|
|
|
| |
Right now there is an annoying warning that these methods can't be awaited when using `redis.asyncio`, even tho it does work with no problems.
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
'_command_packer' (#2583)
* Fix #2581 UnixDomainSocketConnection' object has no attribute '_command_packer' .
Apparently there is no end-to-end tests for Unix sockets
so automation didn't catch it. I assume that setting up
domain sockets reliably in dockerized environment is not
very trivial.
Added test for pack_command specifically.
* Figuring out why CI fails.
Locally:
" congratulations :)"
* Fix the test.
hiredis doesn't treat memoryviews differently.
|
|
|
| |
Co-authored-by: dvora-h <67596500+dvora-h@users.noreply.github.com>
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
Connection.disconnect() (#2557)
* A failing unittest
* Do not clear the redis-reader's state when we disconnect so that it can finish reading the final message
* Test that reading a message of two chunks after a disconnect() works.
* Add Changes
* fix typos
|
|
|
| |
Co-authored-by: Anuragkillswitch <70265851+Anuragkillswitch@users.noreply.github.com>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
* Implemented pack command and pack bytes
* 1) refactored the command packer construction process
2) now hiredis.pack_bytes is the default choice. Though it's still possible to run redisrs-py (fix the flag in utils.py) or hiredis.pack_command (flag in connection.py)
* Switch to hiredis.pack_command
* Remove the rust extension module.
* 1) Introduce HIREDIS_PACK_AVAILABLE environment variable.
2) Extract serialization functionality out of Connection class.
* 1) Fix typo.
2) Add change log entry.
3) Revert the benchmark changes
* Ditch the hiredis version check for pack_command.
* Fix linter errors
* Revert version changes
* Fix linter issues
* Looks like the current redis-py version is 4.4.1
---------
Co-authored-by: Sergey Prokazov <sergey.prokazov@redis.com>
|
| |
|
|
|
|
|
| |
(#2568)
Co-authored-by: Viktor Ivanov <viktor@infogrid.io>
|
|
|
|
| |
Implement unlink() like delete() to make it work when
used in a cluster pipeline.
|
| |
|
|
|
|
| |
`Union` was missing in front of `[List[StreamIdT], Tuple[StreamIdT]]` and VSCode was producing an error because of it.
After adding `Union` the type annotation is correctly identified by VSCode.
|
|
|
|
|
|
|
| |
* Add support to BF.CARD
* Add Async test
* change to with pytest.raises
|
|
|
| |
Co-authored-by: zach.lee <zach.lee@sendbird.com>
|
|
|
| |
Co-authored-by: zach.lee <zach.lee@sendbird.com>
|
|
|
|
|
|
|
| |
* Fixed string escape and added tests
* Add Change
* Name change
|
| |
|
|
|
|
|
|
|
|
|
| |
* Revert "Update __init__ for issue 2215 (#2539)"
This reverts commit f14ed1fc822a88a21bbfc64e36bf8b09e5c9386c.
* Update __init__.py
ValueError must be AttributeError ofc.
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
* PythonParser is now resumable if _stream IO is interrupted
* Add test for parse resumability
* Clear PythonParser state when connection or parsing errors occur.
* disable test for cluster mode.
* Perform "closed" check in a single place.
* Update tests
* Simplify code.
* Remove reduntant test, EOF is detected inside _readline()
* Make syncronous PythonParser restartable on error, same as HiredisParser
Fix sync PythonParser
* Add CHANGES
* isort
* Move MockStream and MockSocket into their own files
|