diff options
author | CoprDistGit <infra@openeuler.org> | 2023-04-10 10:26:50 +0000 |
---|---|---|
committer | CoprDistGit <infra@openeuler.org> | 2023-04-10 10:26:50 +0000 |
commit | 992cc2e9f6f37b7c8cffd6d3574c747fec4b1f03 (patch) | |
tree | 4affe4fc801d999495172439e3cc74cb749e5962 /python-aioredis.spec | |
parent | 7e9102057021e020a6ab3348b8e856607163b3ff (diff) |
automatic import of python-aioredis
Diffstat (limited to 'python-aioredis.spec')
-rw-r--r-- | python-aioredis.spec | 1896 |
1 files changed, 1896 insertions, 0 deletions
diff --git a/python-aioredis.spec b/python-aioredis.spec new file mode 100644 index 0000000..b397b2e --- /dev/null +++ b/python-aioredis.spec @@ -0,0 +1,1896 @@ +%global _empty_manifest_terminate_build 0 +Name: python-aioredis +Version: 2.0.1 +Release: 1 +Summary: asyncio (PEP 3156) Redis support +License: MIT +URL: https://github.com/aio-libs/aioredis-py +Source0: https://mirrors.nju.edu.cn/pypi/web/packages/2e/cf/9eb144a0b05809ffc5d29045c4b51039000ea275bc1268d0351c9e7dfc06/aioredis-2.0.1.tar.gz +BuildArch: noarch + +Requires: python3-async-timeout +Requires: python3-typing-extensions +Requires: python3-hiredis + +%description +# aioredis + +asyncio (3156) Redis client library. + +The library is intended to provide simple and clear interface to Redis +based on asyncio. + +## Features + +| Feature | Supported | +|:-----------------------------|:-------------------------| +| hiredis parser | :white_check_mark: | +| Pure-python parser | :white_check_mark: | +| Low-level & High-level APIs | :white_check_mark: | +| Pipelining support | :white_check_mark: | +| Multi/Exec support | :white_check_mark: | +| Connections Pool | :white_check_mark: | +| Pub/Sub support | :white_check_mark: | +| Sentinel support | :white_check_mark: | +| ACL support | :white_check_mark: | +| Streams support | :white_check_mark: | +| Redis Cluster support | :no_entry_sign: | +| Tested Python versions | 3.6, 3.7, 3.8, 3.9, 3.10 | +| Tested for Redis servers | 5.0, 6.0 | +| Support for dev Redis server | through low-level API | + + +## Installation + +The easiest way to install aioredis is by using the package on PyPi: + + pip install aioredis + +Recommended with hiredis for performance and stability reasons: + + pip install hiredis + +## Requirements + +- Python 3.6+ +- hiredis (Optional but recommended) +- async-timeout +- typing-extensions + +## Benchmarks + +Benchmarks can be found here: +<https://github.com/popravich/python-redis-benchmark> + +## Contribute + +- Issue Tracker: <https://github.com/aio-libs/aioredis/issues> +- Google Group: <https://groups.google.com/g/aio-libs> +- Gitter: <https://gitter.im/aio-libs/Lobby> +- Source Code: <https://github.com/aio-libs/aioredis> +- Contributor's guide: [devel](docs/devel.md) + +Feel free to file an issue or make pull request if you find any bugs or +have some suggestions for library improvement. + +## License + +The aioredis is offered under a [MIT License](LICENSE). + +# Changelog + +## 2.0.1 - (2021-12-20) + +### Features + +- Added Python 3.10 to CI & Updated the Docs + (see #1160) +- Enable mypy in CI (see #1101) +- Synchronized reading the responses from a connection + (see #1106) + +### Fixes + +- Remove __del__ from Redis (Fixes #1115) + (see #1227) +- fix socket.error raises (see #1129) +- Fix buffer is closed error when using PythonParser class + (see #1213) + +## 2.0.0 - (2021-03-18) + +### Features + +- Port redis-py's client implementation to aioredis. + (see #891) + +- Make hiredis an optional dependency. + (see #917) + + +## 1.3.1 (2019-12-02) + +### Bugfixes + +- Fix transaction data decoding + (see #657) +- Fix duplicate calls to `pool.wait_closed()` upon `create_pool()` exception. + (see #671) + +### Deprecations and Removals + +- Drop explicit loop requirement in API. + Deprecate `loop` argument. + Throw warning in Python 3.8+ if explicit `loop` is passed to methods. + (see #666) + +### Misc + +- (#643, #646, #648) + +## 1.3.0 (2019-09-24) + +### Features + +- Added `xdel` and `xtrim` method which missed in `commands/streams.py` & also added unit test code for them + (see #438) +- Add `count` argument to `spop` command + (see #485) +- Add support for `zpopmax` and `zpopmin` redis commands + (see #550) +- Add `towncrier`: change notes are now stored in `CHANGES.txt` + (see #576) +- Type hints for the library + (see #584) +- A few additions to the sorted set commands: +- the blocking pop commands: `BZPOPMAX` and `BZPOPMIN` +- the `CH` and `INCR` options of the `ZADD` command + (see #618) +- Added `no_ack` parameter to `xread_group` streams method in `commands/streams.py` + (see #625) + +### Bugfixes + +- Fix for sensitive logging + (see #459) +- Fix slow memory leak in `wait_closed` implementation + (see #498) +- Fix handling of instances were Redis returns null fields for a stream message (see + \#605) + +### Improved Documentation + +- Rewrite "Getting started" documentation. + (see #641) + +### Misc + +- #585, + #611, + #612, + #619, + #620, + #642) + +## 1.2.0 (2018-10-24) + + +### Features + +- Implemented new Stream command support + (see #299) +- Reduce `encode_command()` cost about 60% + (see #397) + +### Bugfixes + +- Fix pipeline commands buffering was causing multiple `sendto` syscalls + (see #464) + and #473) +- Python 3.7 compatibility fixes + (see #426) +- Fix typos in documentation + (see #400) +- Fix `INFO` command result parsing + (see #405) +- Fix bug in `ConnectionsPool._drop_closed` method + (see #461) + +### Miscellaneous + +- Update dependencies versions +- Multiple tests improvements +## 1.1.0 (2018-02-16) + + +### Features + +- Implement new commands: `wait`, `touch`, `swapdb`, `unlink` + (see #376) +- Add `async_op` argument to `flushall` and `flushdb` commands + (see #364, #370) + +### Bugfixes + +- **Important!** Fix Sentinel sentinel client with pool `minsize` + greater than 1 + (see #380) +- Fix `SentinelPool.discover_timeout` usage + (see #379) +- Fix `Receiver` hang on disconnect + (see #354, #366) +- Fix an issue with `subscribe`/`psubscribe` with empty pool + (see #351, #355) +- Fix an issue when `StreamReader`'s feed_data is called before set_parser + (see #347) + +### Miscellaneous + +- Update dependencies versions +- Multiple test fixes + +## 1.0.0 (2017-11-17) + + +### Features + +- **Important!** Drop Python 3.3, 3.4 support + (see #321, #323, #326) + +- **Important!** Connections pool has been refactored; now `create_redis` + function will yield `Redis` instance instead of `RedisPool` + (see #129) +- **Important!** Change sorted set commands reply format: + return list of tuples instead of plain list for commands + accepting `withscores` argument + (see #334) +- **Important!** Change `hscan` command reply format: + return list of tuples instead of mixed key-value list + (see #335) +- Implement Redis URI support as supported `address` argument value + (see #322) +- Dropped `create_reconnecting_redis`, `create_redis_pool` should be + used instead +- Implement custom `StreamReader` + (see #273) +- Implement Sentinel support + (see #181) +- Implement pure-python parser + (see #212) +- Add `migrate_keys` command + (see #187) +- Add `zrevrangebylex` command + (see #201) +- Add `command`, `command_count`, `command_getkeys` and + `command_info` commands + (see #229) +- Add `ping` support in pubsub connection + (see #264) +- Add `exist` parameter to `zadd` command + (see #288) +- Add `MaxClientsError` and implement `ReplyError` specialization + (see #325) +- Add `encoding` parameter to sorted set commands + (see #289) + +### Bugfixes + +- Fix `CancelledError` in `conn._reader_task` + (see #301) +- Fix pending commands cancellation with `CancelledError`, + use explicit exception instead of calling `cancel()` method + (see #316) +- Correct error message on Sentinel discovery of master/slave with password + (see #327) +- Fix `bytearray` support as command argument + (see #329) +- Fix critical bug in patched asyncio.Lock + (see #256) +- Fix Multi/Exec transaction canceled error + (see #225) +- Add missing arguments to `create_redis` and `create_redis_pool` +- Fix deprecation warning + (see #191) +- Make correct `__aiter__()` + (see #192) +- Backward compatibility fix for `with (yield from pool) as conn:` + (see #205) +- Fixed pubsub receiver stop() + (see #211) + +### Miscellaneous + +- Multiple test fixes +- Add PyPy3 to build matrix +- Update dependencies versions +- Add missing Python 3.6 classifier + +## 0.3.5 (2017-11-08) + + +### Bugfixes + +- Fix for indistinguishable futures cancellation with `asyncio.CancelledError` + (see #316, cherry-picked from master) + +## 0.3.4 (2017-10-25) + + +### Bugfixes + +- Fix time command result decoding when using connection-wide encoding setting + (see #266) + +## 0.3.3 (2017-06-30) + + +### Bugfixes + +- Critical bug fixed in patched asyncio.Lock + (see #256) + +## 0.3.2 (2017-06-21) + + +### Features + +- Added `zrevrangebylex` command + (see #201 cherry-picked from master) +- Add connection timeout + (see #221, cherry-picked from master) + +### Bugfixes + +- Fixed pool close warning + (see #239, #236, + cherry-picked from master +- Fixed asyncio Lock deadlock issue + (see #231, #241) + +## 0.3.1 (2017-05-09) + + +### Bugfixes + +- Fix pubsub Receiver missing iter() method + (see #203) + +## 0.3.0 (2017-01-11) + + +### Features + +- Pub/Sub connection commands accept `Channel` instances + (see #168) +- Implement new Pub/Sub MPSC (multi-producers, single-consumer) Queue -- + `aioredis.pubsub.Receiver` + (see #176) +- Add `aioredis.abc` module providing abstract base classes + defining interface for basic lib components (see #176) +- Implement Geo commands support + (see #177, #179) + +### Bugfixes + +- Minor tests fixes +### Miscellaneous + +- Update examples and docs to use `async`/`await` syntax + also keeping `yield from` examples for history + (see #173) +- Reflow Travis CI configuration; add Python 3.6 section + (see #170) +- Add AppVeyor integration to run tests on Windows + (see #180) +- Update multiple development requirements + +## 0.2.9 (2016-10-24) + + +### Features + +- Allow multiple keys in `EXISTS` command + (see #156, #157) + +### Bugfixes + +- Close RedisPool when connection to Redis failed + (see #136) +- Add simple `INFO` command argument validation + (see #140) +- Remove invalid uses of `next()` + +### Miscellaneous + +- Update devel.rst docs; update Pub/Sub Channel docs (cross-refs) +- Update MANIFEST.in to include docs, examples and tests in source bundle + +## 0.2.8 (2016-07-22) + + +### Features + +- Add `hmset_dict` command + (see #130) +- Add `RedisConnection.address` property +- RedisPool `minsize`/`maxsize` must not be `None` +- Implement `close()`/`wait_closed()`/`closed` interface for pool + (see #128) + +### Bugfixes + +- Add test for `hstrlen` +- Test fixes + +### Miscellaneous + +- Enable Redis 3.2.0 on Travis +- Add spell checking when building docs + (see #132) +- Documentation updated + +## 0.2.7 (2016-05-27) + + +- `create_pool()` minsize default value changed to 1 +- Fixed cancellation of wait_closed + (see #118) +- Fixed `time()` conversion to float + (see #126) +- Fixed `hmset()` method to return bool instead of `b'OK'` + (see [#12)) +- Fixed multi/exec + watch issue (changed watch variable was causing + `tr.execute()` to fail) + (see #121) +- Replace `asyncio.Future` uses with utility method + (get ready to Python 3.5.2 `loop.create_future()`) +- Tests switched from unittest to pytest (see [#12)) +- Documentation updates + +## 0.2.6 (2016-03-30) + + +- Fixed Multi/Exec transactions cancellation issue + (see #110, #114) +- Fixed Pub/Sub subscribe concurrency issue + (see #113, #115) +- Add SSL/TLS support + (see #116) +- `aioredis.ConnectionClosedError` raised in `execute_pubsub` as well + (see #108) +- `Redis.slaveof()` method signature changed: now to disable + replication one should call `redis.slaveof(None)` instead of `redis.slaveof()` +- More tests added + +## 0.2.5 (2016-03-02) + + +- Close all Pub/Sub channels on connection close + (see #88) +- Add `iter()` method to `aioredis.Channel` allowing to use it + with `async for` + (see #89) +- Inline code samples in docs made runnable and downloadable + (see #92) +- Python 3.5 examples converted to use `async`/`await` syntax + (see #93) +- Fix Multi/Exec to honor encoding parameter + (see #94, #97) +- Add debug message in `create_connection` + (see #90) +- Replace `asyncio.async` calls with wrapper that respects asyncio version + (see #101) +- Use NODELAY option for TCP sockets + (see #105) +- New `aioredis.ConnectionClosedError` exception added. Raised if + connection to Redis server is lost + (see #108, #109) +- Fix RedisPool to close and drop connection in subscribe mode on release +- Fix `aioredis.util.decode` to recursively decode list responses +- More examples added and docs updated +- Add google groups link to README +- Bump year in LICENSE and docs + +## 0.2.4 (2015-10-13) + + +- Python 3.5 `async` support: + + - New scan commands API (`iscan`, `izscan`, `ihscan`) + - Pool made awaitable (allowing `with await pool: ...` and `async + with pool.get() as conn:` constructs) +- Fixed dropping closed connections from free pool + (see #83) +- Docs updated + +## 0.2.3 (2015-08-14) + + +- Redis cluster support work in progress +- Fixed pool issue causing pool growth over max size & `acquire` call hangs + (see #71) +- `info` server command result parsing implemented +- Fixed behavior of util functions + (see #70) +- `hstrlen` command added +- Few fixes in examples +- Few fixes in documentation + +## 0.2.2 (2015-07-07) + + +- Decoding data with `encoding` parameter now takes into account + list (array) replies + (see #68) +- `encoding` parameter added to following commands: + + - generic commands: keys, randomkey + - hash commands: hgetall, hkeys, hmget, hvals + - list commands: blpop, brpop, brpoplpush, lindex, lpop, lrange, rpop, rpoplpush + - set commands: smembers, spop, srandmember + - string commands: getrange, getset, mget +- Backward incompatibility: + + `ltrim` command now returns bool value instead of 'OK' +- Tests updated + +## 0.2.1 (2015-07-06) + + +- Logging added (aioredis.log module) +- Fixed issue with `wait_message` in pub/sub + (see #66) + +## 0.2.0 (2015-06-04) + + +- Pub/Sub support added +- Fix in `zrevrangebyscore` command + (see #62) +- Fixes/tests/docs + +## 0.1.5 (2014-12-09) + + +- AutoConnector added +- wait_closed method added for clean connections shutdown +- `zscore` command fixed +- Test fixes + +## 0.1.4 (2014-09-22) + + +- Dropped following Redis methods -- `Redis.multi()`, + `Redis.exec()`, `Redis.discard()` +- `Redis.multi_exec` hack'ish property removed +- `Redis.multi_exec()` method added +- High-level commands implemented: + + - generic commands (tests) + - transactions commands (api stabilization). + +- Backward incompatibilities: + + - Following sorted set commands' API changed: + + `zcount`, `zrangebyscore`, `zremrangebyscore`, `zrevrangebyscore` + - set string command' API changed + + +## 0.1.3 (2014-08-08) + + +- RedisConnection.execute refactored to support commands pipelining + (see #33) +- Several fixes +- WIP on transactions and commands interface +- High-level commands implemented and tested: + + - hash commands + - hyperloglog commands + - set commands + - scripting commands + - string commands + - list commands + +## 0.1.2 (2014-07-31) + + +- `create_connection`, `create_pool`, `create_redis` functions updated: db and password + arguments made keyword-only + (see #26) +- Fixed transaction handling + (see #32) +- Response decoding + (see #16) + +## 0.1.1 (2014-07-07) + + +- Transactions support (in connection, high-level commands have some issues) +- Docs & tests updated. + + +## 0.1.0 (2014-06-24) + + +- Initial release +- RedisConnection implemented +- RedisPool implemented +- Docs for RedisConnection & RedisPool +- WIP on high-level API. + + + +%package -n python3-aioredis +Summary: asyncio (PEP 3156) Redis support +Provides: python-aioredis +BuildRequires: python3-devel +BuildRequires: python3-setuptools +BuildRequires: python3-pip +%description -n python3-aioredis +# aioredis + +asyncio (3156) Redis client library. + +The library is intended to provide simple and clear interface to Redis +based on asyncio. + +## Features + +| Feature | Supported | +|:-----------------------------|:-------------------------| +| hiredis parser | :white_check_mark: | +| Pure-python parser | :white_check_mark: | +| Low-level & High-level APIs | :white_check_mark: | +| Pipelining support | :white_check_mark: | +| Multi/Exec support | :white_check_mark: | +| Connections Pool | :white_check_mark: | +| Pub/Sub support | :white_check_mark: | +| Sentinel support | :white_check_mark: | +| ACL support | :white_check_mark: | +| Streams support | :white_check_mark: | +| Redis Cluster support | :no_entry_sign: | +| Tested Python versions | 3.6, 3.7, 3.8, 3.9, 3.10 | +| Tested for Redis servers | 5.0, 6.0 | +| Support for dev Redis server | through low-level API | + + +## Installation + +The easiest way to install aioredis is by using the package on PyPi: + + pip install aioredis + +Recommended with hiredis for performance and stability reasons: + + pip install hiredis + +## Requirements + +- Python 3.6+ +- hiredis (Optional but recommended) +- async-timeout +- typing-extensions + +## Benchmarks + +Benchmarks can be found here: +<https://github.com/popravich/python-redis-benchmark> + +## Contribute + +- Issue Tracker: <https://github.com/aio-libs/aioredis/issues> +- Google Group: <https://groups.google.com/g/aio-libs> +- Gitter: <https://gitter.im/aio-libs/Lobby> +- Source Code: <https://github.com/aio-libs/aioredis> +- Contributor's guide: [devel](docs/devel.md) + +Feel free to file an issue or make pull request if you find any bugs or +have some suggestions for library improvement. + +## License + +The aioredis is offered under a [MIT License](LICENSE). + +# Changelog + +## 2.0.1 - (2021-12-20) + +### Features + +- Added Python 3.10 to CI & Updated the Docs + (see #1160) +- Enable mypy in CI (see #1101) +- Synchronized reading the responses from a connection + (see #1106) + +### Fixes + +- Remove __del__ from Redis (Fixes #1115) + (see #1227) +- fix socket.error raises (see #1129) +- Fix buffer is closed error when using PythonParser class + (see #1213) + +## 2.0.0 - (2021-03-18) + +### Features + +- Port redis-py's client implementation to aioredis. + (see #891) + +- Make hiredis an optional dependency. + (see #917) + + +## 1.3.1 (2019-12-02) + +### Bugfixes + +- Fix transaction data decoding + (see #657) +- Fix duplicate calls to `pool.wait_closed()` upon `create_pool()` exception. + (see #671) + +### Deprecations and Removals + +- Drop explicit loop requirement in API. + Deprecate `loop` argument. + Throw warning in Python 3.8+ if explicit `loop` is passed to methods. + (see #666) + +### Misc + +- (#643, #646, #648) + +## 1.3.0 (2019-09-24) + +### Features + +- Added `xdel` and `xtrim` method which missed in `commands/streams.py` & also added unit test code for them + (see #438) +- Add `count` argument to `spop` command + (see #485) +- Add support for `zpopmax` and `zpopmin` redis commands + (see #550) +- Add `towncrier`: change notes are now stored in `CHANGES.txt` + (see #576) +- Type hints for the library + (see #584) +- A few additions to the sorted set commands: +- the blocking pop commands: `BZPOPMAX` and `BZPOPMIN` +- the `CH` and `INCR` options of the `ZADD` command + (see #618) +- Added `no_ack` parameter to `xread_group` streams method in `commands/streams.py` + (see #625) + +### Bugfixes + +- Fix for sensitive logging + (see #459) +- Fix slow memory leak in `wait_closed` implementation + (see #498) +- Fix handling of instances were Redis returns null fields for a stream message (see + \#605) + +### Improved Documentation + +- Rewrite "Getting started" documentation. + (see #641) + +### Misc + +- #585, + #611, + #612, + #619, + #620, + #642) + +## 1.2.0 (2018-10-24) + + +### Features + +- Implemented new Stream command support + (see #299) +- Reduce `encode_command()` cost about 60% + (see #397) + +### Bugfixes + +- Fix pipeline commands buffering was causing multiple `sendto` syscalls + (see #464) + and #473) +- Python 3.7 compatibility fixes + (see #426) +- Fix typos in documentation + (see #400) +- Fix `INFO` command result parsing + (see #405) +- Fix bug in `ConnectionsPool._drop_closed` method + (see #461) + +### Miscellaneous + +- Update dependencies versions +- Multiple tests improvements +## 1.1.0 (2018-02-16) + + +### Features + +- Implement new commands: `wait`, `touch`, `swapdb`, `unlink` + (see #376) +- Add `async_op` argument to `flushall` and `flushdb` commands + (see #364, #370) + +### Bugfixes + +- **Important!** Fix Sentinel sentinel client with pool `minsize` + greater than 1 + (see #380) +- Fix `SentinelPool.discover_timeout` usage + (see #379) +- Fix `Receiver` hang on disconnect + (see #354, #366) +- Fix an issue with `subscribe`/`psubscribe` with empty pool + (see #351, #355) +- Fix an issue when `StreamReader`'s feed_data is called before set_parser + (see #347) + +### Miscellaneous + +- Update dependencies versions +- Multiple test fixes + +## 1.0.0 (2017-11-17) + + +### Features + +- **Important!** Drop Python 3.3, 3.4 support + (see #321, #323, #326) + +- **Important!** Connections pool has been refactored; now `create_redis` + function will yield `Redis` instance instead of `RedisPool` + (see #129) +- **Important!** Change sorted set commands reply format: + return list of tuples instead of plain list for commands + accepting `withscores` argument + (see #334) +- **Important!** Change `hscan` command reply format: + return list of tuples instead of mixed key-value list + (see #335) +- Implement Redis URI support as supported `address` argument value + (see #322) +- Dropped `create_reconnecting_redis`, `create_redis_pool` should be + used instead +- Implement custom `StreamReader` + (see #273) +- Implement Sentinel support + (see #181) +- Implement pure-python parser + (see #212) +- Add `migrate_keys` command + (see #187) +- Add `zrevrangebylex` command + (see #201) +- Add `command`, `command_count`, `command_getkeys` and + `command_info` commands + (see #229) +- Add `ping` support in pubsub connection + (see #264) +- Add `exist` parameter to `zadd` command + (see #288) +- Add `MaxClientsError` and implement `ReplyError` specialization + (see #325) +- Add `encoding` parameter to sorted set commands + (see #289) + +### Bugfixes + +- Fix `CancelledError` in `conn._reader_task` + (see #301) +- Fix pending commands cancellation with `CancelledError`, + use explicit exception instead of calling `cancel()` method + (see #316) +- Correct error message on Sentinel discovery of master/slave with password + (see #327) +- Fix `bytearray` support as command argument + (see #329) +- Fix critical bug in patched asyncio.Lock + (see #256) +- Fix Multi/Exec transaction canceled error + (see #225) +- Add missing arguments to `create_redis` and `create_redis_pool` +- Fix deprecation warning + (see #191) +- Make correct `__aiter__()` + (see #192) +- Backward compatibility fix for `with (yield from pool) as conn:` + (see #205) +- Fixed pubsub receiver stop() + (see #211) + +### Miscellaneous + +- Multiple test fixes +- Add PyPy3 to build matrix +- Update dependencies versions +- Add missing Python 3.6 classifier + +## 0.3.5 (2017-11-08) + + +### Bugfixes + +- Fix for indistinguishable futures cancellation with `asyncio.CancelledError` + (see #316, cherry-picked from master) + +## 0.3.4 (2017-10-25) + + +### Bugfixes + +- Fix time command result decoding when using connection-wide encoding setting + (see #266) + +## 0.3.3 (2017-06-30) + + +### Bugfixes + +- Critical bug fixed in patched asyncio.Lock + (see #256) + +## 0.3.2 (2017-06-21) + + +### Features + +- Added `zrevrangebylex` command + (see #201 cherry-picked from master) +- Add connection timeout + (see #221, cherry-picked from master) + +### Bugfixes + +- Fixed pool close warning + (see #239, #236, + cherry-picked from master +- Fixed asyncio Lock deadlock issue + (see #231, #241) + +## 0.3.1 (2017-05-09) + + +### Bugfixes + +- Fix pubsub Receiver missing iter() method + (see #203) + +## 0.3.0 (2017-01-11) + + +### Features + +- Pub/Sub connection commands accept `Channel` instances + (see #168) +- Implement new Pub/Sub MPSC (multi-producers, single-consumer) Queue -- + `aioredis.pubsub.Receiver` + (see #176) +- Add `aioredis.abc` module providing abstract base classes + defining interface for basic lib components (see #176) +- Implement Geo commands support + (see #177, #179) + +### Bugfixes + +- Minor tests fixes +### Miscellaneous + +- Update examples and docs to use `async`/`await` syntax + also keeping `yield from` examples for history + (see #173) +- Reflow Travis CI configuration; add Python 3.6 section + (see #170) +- Add AppVeyor integration to run tests on Windows + (see #180) +- Update multiple development requirements + +## 0.2.9 (2016-10-24) + + +### Features + +- Allow multiple keys in `EXISTS` command + (see #156, #157) + +### Bugfixes + +- Close RedisPool when connection to Redis failed + (see #136) +- Add simple `INFO` command argument validation + (see #140) +- Remove invalid uses of `next()` + +### Miscellaneous + +- Update devel.rst docs; update Pub/Sub Channel docs (cross-refs) +- Update MANIFEST.in to include docs, examples and tests in source bundle + +## 0.2.8 (2016-07-22) + + +### Features + +- Add `hmset_dict` command + (see #130) +- Add `RedisConnection.address` property +- RedisPool `minsize`/`maxsize` must not be `None` +- Implement `close()`/`wait_closed()`/`closed` interface for pool + (see #128) + +### Bugfixes + +- Add test for `hstrlen` +- Test fixes + +### Miscellaneous + +- Enable Redis 3.2.0 on Travis +- Add spell checking when building docs + (see #132) +- Documentation updated + +## 0.2.7 (2016-05-27) + + +- `create_pool()` minsize default value changed to 1 +- Fixed cancellation of wait_closed + (see #118) +- Fixed `time()` conversion to float + (see #126) +- Fixed `hmset()` method to return bool instead of `b'OK'` + (see [#12)) +- Fixed multi/exec + watch issue (changed watch variable was causing + `tr.execute()` to fail) + (see #121) +- Replace `asyncio.Future` uses with utility method + (get ready to Python 3.5.2 `loop.create_future()`) +- Tests switched from unittest to pytest (see [#12)) +- Documentation updates + +## 0.2.6 (2016-03-30) + + +- Fixed Multi/Exec transactions cancellation issue + (see #110, #114) +- Fixed Pub/Sub subscribe concurrency issue + (see #113, #115) +- Add SSL/TLS support + (see #116) +- `aioredis.ConnectionClosedError` raised in `execute_pubsub` as well + (see #108) +- `Redis.slaveof()` method signature changed: now to disable + replication one should call `redis.slaveof(None)` instead of `redis.slaveof()` +- More tests added + +## 0.2.5 (2016-03-02) + + +- Close all Pub/Sub channels on connection close + (see #88) +- Add `iter()` method to `aioredis.Channel` allowing to use it + with `async for` + (see #89) +- Inline code samples in docs made runnable and downloadable + (see #92) +- Python 3.5 examples converted to use `async`/`await` syntax + (see #93) +- Fix Multi/Exec to honor encoding parameter + (see #94, #97) +- Add debug message in `create_connection` + (see #90) +- Replace `asyncio.async` calls with wrapper that respects asyncio version + (see #101) +- Use NODELAY option for TCP sockets + (see #105) +- New `aioredis.ConnectionClosedError` exception added. Raised if + connection to Redis server is lost + (see #108, #109) +- Fix RedisPool to close and drop connection in subscribe mode on release +- Fix `aioredis.util.decode` to recursively decode list responses +- More examples added and docs updated +- Add google groups link to README +- Bump year in LICENSE and docs + +## 0.2.4 (2015-10-13) + + +- Python 3.5 `async` support: + + - New scan commands API (`iscan`, `izscan`, `ihscan`) + - Pool made awaitable (allowing `with await pool: ...` and `async + with pool.get() as conn:` constructs) +- Fixed dropping closed connections from free pool + (see #83) +- Docs updated + +## 0.2.3 (2015-08-14) + + +- Redis cluster support work in progress +- Fixed pool issue causing pool growth over max size & `acquire` call hangs + (see #71) +- `info` server command result parsing implemented +- Fixed behavior of util functions + (see #70) +- `hstrlen` command added +- Few fixes in examples +- Few fixes in documentation + +## 0.2.2 (2015-07-07) + + +- Decoding data with `encoding` parameter now takes into account + list (array) replies + (see #68) +- `encoding` parameter added to following commands: + + - generic commands: keys, randomkey + - hash commands: hgetall, hkeys, hmget, hvals + - list commands: blpop, brpop, brpoplpush, lindex, lpop, lrange, rpop, rpoplpush + - set commands: smembers, spop, srandmember + - string commands: getrange, getset, mget +- Backward incompatibility: + + `ltrim` command now returns bool value instead of 'OK' +- Tests updated + +## 0.2.1 (2015-07-06) + + +- Logging added (aioredis.log module) +- Fixed issue with `wait_message` in pub/sub + (see #66) + +## 0.2.0 (2015-06-04) + + +- Pub/Sub support added +- Fix in `zrevrangebyscore` command + (see #62) +- Fixes/tests/docs + +## 0.1.5 (2014-12-09) + + +- AutoConnector added +- wait_closed method added for clean connections shutdown +- `zscore` command fixed +- Test fixes + +## 0.1.4 (2014-09-22) + + +- Dropped following Redis methods -- `Redis.multi()`, + `Redis.exec()`, `Redis.discard()` +- `Redis.multi_exec` hack'ish property removed +- `Redis.multi_exec()` method added +- High-level commands implemented: + + - generic commands (tests) + - transactions commands (api stabilization). + +- Backward incompatibilities: + + - Following sorted set commands' API changed: + + `zcount`, `zrangebyscore`, `zremrangebyscore`, `zrevrangebyscore` + - set string command' API changed + + +## 0.1.3 (2014-08-08) + + +- RedisConnection.execute refactored to support commands pipelining + (see #33) +- Several fixes +- WIP on transactions and commands interface +- High-level commands implemented and tested: + + - hash commands + - hyperloglog commands + - set commands + - scripting commands + - string commands + - list commands + +## 0.1.2 (2014-07-31) + + +- `create_connection`, `create_pool`, `create_redis` functions updated: db and password + arguments made keyword-only + (see #26) +- Fixed transaction handling + (see #32) +- Response decoding + (see #16) + +## 0.1.1 (2014-07-07) + + +- Transactions support (in connection, high-level commands have some issues) +- Docs & tests updated. + + +## 0.1.0 (2014-06-24) + + +- Initial release +- RedisConnection implemented +- RedisPool implemented +- Docs for RedisConnection & RedisPool +- WIP on high-level API. + + + +%package help +Summary: Development documents and examples for aioredis +Provides: python3-aioredis-doc +%description help +# aioredis + +asyncio (3156) Redis client library. + +The library is intended to provide simple and clear interface to Redis +based on asyncio. + +## Features + +| Feature | Supported | +|:-----------------------------|:-------------------------| +| hiredis parser | :white_check_mark: | +| Pure-python parser | :white_check_mark: | +| Low-level & High-level APIs | :white_check_mark: | +| Pipelining support | :white_check_mark: | +| Multi/Exec support | :white_check_mark: | +| Connections Pool | :white_check_mark: | +| Pub/Sub support | :white_check_mark: | +| Sentinel support | :white_check_mark: | +| ACL support | :white_check_mark: | +| Streams support | :white_check_mark: | +| Redis Cluster support | :no_entry_sign: | +| Tested Python versions | 3.6, 3.7, 3.8, 3.9, 3.10 | +| Tested for Redis servers | 5.0, 6.0 | +| Support for dev Redis server | through low-level API | + + +## Installation + +The easiest way to install aioredis is by using the package on PyPi: + + pip install aioredis + +Recommended with hiredis for performance and stability reasons: + + pip install hiredis + +## Requirements + +- Python 3.6+ +- hiredis (Optional but recommended) +- async-timeout +- typing-extensions + +## Benchmarks + +Benchmarks can be found here: +<https://github.com/popravich/python-redis-benchmark> + +## Contribute + +- Issue Tracker: <https://github.com/aio-libs/aioredis/issues> +- Google Group: <https://groups.google.com/g/aio-libs> +- Gitter: <https://gitter.im/aio-libs/Lobby> +- Source Code: <https://github.com/aio-libs/aioredis> +- Contributor's guide: [devel](docs/devel.md) + +Feel free to file an issue or make pull request if you find any bugs or +have some suggestions for library improvement. + +## License + +The aioredis is offered under a [MIT License](LICENSE). + +# Changelog + +## 2.0.1 - (2021-12-20) + +### Features + +- Added Python 3.10 to CI & Updated the Docs + (see #1160) +- Enable mypy in CI (see #1101) +- Synchronized reading the responses from a connection + (see #1106) + +### Fixes + +- Remove __del__ from Redis (Fixes #1115) + (see #1227) +- fix socket.error raises (see #1129) +- Fix buffer is closed error when using PythonParser class + (see #1213) + +## 2.0.0 - (2021-03-18) + +### Features + +- Port redis-py's client implementation to aioredis. + (see #891) + +- Make hiredis an optional dependency. + (see #917) + + +## 1.3.1 (2019-12-02) + +### Bugfixes + +- Fix transaction data decoding + (see #657) +- Fix duplicate calls to `pool.wait_closed()` upon `create_pool()` exception. + (see #671) + +### Deprecations and Removals + +- Drop explicit loop requirement in API. + Deprecate `loop` argument. + Throw warning in Python 3.8+ if explicit `loop` is passed to methods. + (see #666) + +### Misc + +- (#643, #646, #648) + +## 1.3.0 (2019-09-24) + +### Features + +- Added `xdel` and `xtrim` method which missed in `commands/streams.py` & also added unit test code for them + (see #438) +- Add `count` argument to `spop` command + (see #485) +- Add support for `zpopmax` and `zpopmin` redis commands + (see #550) +- Add `towncrier`: change notes are now stored in `CHANGES.txt` + (see #576) +- Type hints for the library + (see #584) +- A few additions to the sorted set commands: +- the blocking pop commands: `BZPOPMAX` and `BZPOPMIN` +- the `CH` and `INCR` options of the `ZADD` command + (see #618) +- Added `no_ack` parameter to `xread_group` streams method in `commands/streams.py` + (see #625) + +### Bugfixes + +- Fix for sensitive logging + (see #459) +- Fix slow memory leak in `wait_closed` implementation + (see #498) +- Fix handling of instances were Redis returns null fields for a stream message (see + \#605) + +### Improved Documentation + +- Rewrite "Getting started" documentation. + (see #641) + +### Misc + +- #585, + #611, + #612, + #619, + #620, + #642) + +## 1.2.0 (2018-10-24) + + +### Features + +- Implemented new Stream command support + (see #299) +- Reduce `encode_command()` cost about 60% + (see #397) + +### Bugfixes + +- Fix pipeline commands buffering was causing multiple `sendto` syscalls + (see #464) + and #473) +- Python 3.7 compatibility fixes + (see #426) +- Fix typos in documentation + (see #400) +- Fix `INFO` command result parsing + (see #405) +- Fix bug in `ConnectionsPool._drop_closed` method + (see #461) + +### Miscellaneous + +- Update dependencies versions +- Multiple tests improvements +## 1.1.0 (2018-02-16) + + +### Features + +- Implement new commands: `wait`, `touch`, `swapdb`, `unlink` + (see #376) +- Add `async_op` argument to `flushall` and `flushdb` commands + (see #364, #370) + +### Bugfixes + +- **Important!** Fix Sentinel sentinel client with pool `minsize` + greater than 1 + (see #380) +- Fix `SentinelPool.discover_timeout` usage + (see #379) +- Fix `Receiver` hang on disconnect + (see #354, #366) +- Fix an issue with `subscribe`/`psubscribe` with empty pool + (see #351, #355) +- Fix an issue when `StreamReader`'s feed_data is called before set_parser + (see #347) + +### Miscellaneous + +- Update dependencies versions +- Multiple test fixes + +## 1.0.0 (2017-11-17) + + +### Features + +- **Important!** Drop Python 3.3, 3.4 support + (see #321, #323, #326) + +- **Important!** Connections pool has been refactored; now `create_redis` + function will yield `Redis` instance instead of `RedisPool` + (see #129) +- **Important!** Change sorted set commands reply format: + return list of tuples instead of plain list for commands + accepting `withscores` argument + (see #334) +- **Important!** Change `hscan` command reply format: + return list of tuples instead of mixed key-value list + (see #335) +- Implement Redis URI support as supported `address` argument value + (see #322) +- Dropped `create_reconnecting_redis`, `create_redis_pool` should be + used instead +- Implement custom `StreamReader` + (see #273) +- Implement Sentinel support + (see #181) +- Implement pure-python parser + (see #212) +- Add `migrate_keys` command + (see #187) +- Add `zrevrangebylex` command + (see #201) +- Add `command`, `command_count`, `command_getkeys` and + `command_info` commands + (see #229) +- Add `ping` support in pubsub connection + (see #264) +- Add `exist` parameter to `zadd` command + (see #288) +- Add `MaxClientsError` and implement `ReplyError` specialization + (see #325) +- Add `encoding` parameter to sorted set commands + (see #289) + +### Bugfixes + +- Fix `CancelledError` in `conn._reader_task` + (see #301) +- Fix pending commands cancellation with `CancelledError`, + use explicit exception instead of calling `cancel()` method + (see #316) +- Correct error message on Sentinel discovery of master/slave with password + (see #327) +- Fix `bytearray` support as command argument + (see #329) +- Fix critical bug in patched asyncio.Lock + (see #256) +- Fix Multi/Exec transaction canceled error + (see #225) +- Add missing arguments to `create_redis` and `create_redis_pool` +- Fix deprecation warning + (see #191) +- Make correct `__aiter__()` + (see #192) +- Backward compatibility fix for `with (yield from pool) as conn:` + (see #205) +- Fixed pubsub receiver stop() + (see #211) + +### Miscellaneous + +- Multiple test fixes +- Add PyPy3 to build matrix +- Update dependencies versions +- Add missing Python 3.6 classifier + +## 0.3.5 (2017-11-08) + + +### Bugfixes + +- Fix for indistinguishable futures cancellation with `asyncio.CancelledError` + (see #316, cherry-picked from master) + +## 0.3.4 (2017-10-25) + + +### Bugfixes + +- Fix time command result decoding when using connection-wide encoding setting + (see #266) + +## 0.3.3 (2017-06-30) + + +### Bugfixes + +- Critical bug fixed in patched asyncio.Lock + (see #256) + +## 0.3.2 (2017-06-21) + + +### Features + +- Added `zrevrangebylex` command + (see #201 cherry-picked from master) +- Add connection timeout + (see #221, cherry-picked from master) + +### Bugfixes + +- Fixed pool close warning + (see #239, #236, + cherry-picked from master +- Fixed asyncio Lock deadlock issue + (see #231, #241) + +## 0.3.1 (2017-05-09) + + +### Bugfixes + +- Fix pubsub Receiver missing iter() method + (see #203) + +## 0.3.0 (2017-01-11) + + +### Features + +- Pub/Sub connection commands accept `Channel` instances + (see #168) +- Implement new Pub/Sub MPSC (multi-producers, single-consumer) Queue -- + `aioredis.pubsub.Receiver` + (see #176) +- Add `aioredis.abc` module providing abstract base classes + defining interface for basic lib components (see #176) +- Implement Geo commands support + (see #177, #179) + +### Bugfixes + +- Minor tests fixes +### Miscellaneous + +- Update examples and docs to use `async`/`await` syntax + also keeping `yield from` examples for history + (see #173) +- Reflow Travis CI configuration; add Python 3.6 section + (see #170) +- Add AppVeyor integration to run tests on Windows + (see #180) +- Update multiple development requirements + +## 0.2.9 (2016-10-24) + + +### Features + +- Allow multiple keys in `EXISTS` command + (see #156, #157) + +### Bugfixes + +- Close RedisPool when connection to Redis failed + (see #136) +- Add simple `INFO` command argument validation + (see #140) +- Remove invalid uses of `next()` + +### Miscellaneous + +- Update devel.rst docs; update Pub/Sub Channel docs (cross-refs) +- Update MANIFEST.in to include docs, examples and tests in source bundle + +## 0.2.8 (2016-07-22) + + +### Features + +- Add `hmset_dict` command + (see #130) +- Add `RedisConnection.address` property +- RedisPool `minsize`/`maxsize` must not be `None` +- Implement `close()`/`wait_closed()`/`closed` interface for pool + (see #128) + +### Bugfixes + +- Add test for `hstrlen` +- Test fixes + +### Miscellaneous + +- Enable Redis 3.2.0 on Travis +- Add spell checking when building docs + (see #132) +- Documentation updated + +## 0.2.7 (2016-05-27) + + +- `create_pool()` minsize default value changed to 1 +- Fixed cancellation of wait_closed + (see #118) +- Fixed `time()` conversion to float + (see #126) +- Fixed `hmset()` method to return bool instead of `b'OK'` + (see [#12)) +- Fixed multi/exec + watch issue (changed watch variable was causing + `tr.execute()` to fail) + (see #121) +- Replace `asyncio.Future` uses with utility method + (get ready to Python 3.5.2 `loop.create_future()`) +- Tests switched from unittest to pytest (see [#12)) +- Documentation updates + +## 0.2.6 (2016-03-30) + + +- Fixed Multi/Exec transactions cancellation issue + (see #110, #114) +- Fixed Pub/Sub subscribe concurrency issue + (see #113, #115) +- Add SSL/TLS support + (see #116) +- `aioredis.ConnectionClosedError` raised in `execute_pubsub` as well + (see #108) +- `Redis.slaveof()` method signature changed: now to disable + replication one should call `redis.slaveof(None)` instead of `redis.slaveof()` +- More tests added + +## 0.2.5 (2016-03-02) + + +- Close all Pub/Sub channels on connection close + (see #88) +- Add `iter()` method to `aioredis.Channel` allowing to use it + with `async for` + (see #89) +- Inline code samples in docs made runnable and downloadable + (see #92) +- Python 3.5 examples converted to use `async`/`await` syntax + (see #93) +- Fix Multi/Exec to honor encoding parameter + (see #94, #97) +- Add debug message in `create_connection` + (see #90) +- Replace `asyncio.async` calls with wrapper that respects asyncio version + (see #101) +- Use NODELAY option for TCP sockets + (see #105) +- New `aioredis.ConnectionClosedError` exception added. Raised if + connection to Redis server is lost + (see #108, #109) +- Fix RedisPool to close and drop connection in subscribe mode on release +- Fix `aioredis.util.decode` to recursively decode list responses +- More examples added and docs updated +- Add google groups link to README +- Bump year in LICENSE and docs + +## 0.2.4 (2015-10-13) + + +- Python 3.5 `async` support: + + - New scan commands API (`iscan`, `izscan`, `ihscan`) + - Pool made awaitable (allowing `with await pool: ...` and `async + with pool.get() as conn:` constructs) +- Fixed dropping closed connections from free pool + (see #83) +- Docs updated + +## 0.2.3 (2015-08-14) + + +- Redis cluster support work in progress +- Fixed pool issue causing pool growth over max size & `acquire` call hangs + (see #71) +- `info` server command result parsing implemented +- Fixed behavior of util functions + (see #70) +- `hstrlen` command added +- Few fixes in examples +- Few fixes in documentation + +## 0.2.2 (2015-07-07) + + +- Decoding data with `encoding` parameter now takes into account + list (array) replies + (see #68) +- `encoding` parameter added to following commands: + + - generic commands: keys, randomkey + - hash commands: hgetall, hkeys, hmget, hvals + - list commands: blpop, brpop, brpoplpush, lindex, lpop, lrange, rpop, rpoplpush + - set commands: smembers, spop, srandmember + - string commands: getrange, getset, mget +- Backward incompatibility: + + `ltrim` command now returns bool value instead of 'OK' +- Tests updated + +## 0.2.1 (2015-07-06) + + +- Logging added (aioredis.log module) +- Fixed issue with `wait_message` in pub/sub + (see #66) + +## 0.2.0 (2015-06-04) + + +- Pub/Sub support added +- Fix in `zrevrangebyscore` command + (see #62) +- Fixes/tests/docs + +## 0.1.5 (2014-12-09) + + +- AutoConnector added +- wait_closed method added for clean connections shutdown +- `zscore` command fixed +- Test fixes + +## 0.1.4 (2014-09-22) + + +- Dropped following Redis methods -- `Redis.multi()`, + `Redis.exec()`, `Redis.discard()` +- `Redis.multi_exec` hack'ish property removed +- `Redis.multi_exec()` method added +- High-level commands implemented: + + - generic commands (tests) + - transactions commands (api stabilization). + +- Backward incompatibilities: + + - Following sorted set commands' API changed: + + `zcount`, `zrangebyscore`, `zremrangebyscore`, `zrevrangebyscore` + - set string command' API changed + + +## 0.1.3 (2014-08-08) + + +- RedisConnection.execute refactored to support commands pipelining + (see #33) +- Several fixes +- WIP on transactions and commands interface +- High-level commands implemented and tested: + + - hash commands + - hyperloglog commands + - set commands + - scripting commands + - string commands + - list commands + +## 0.1.2 (2014-07-31) + + +- `create_connection`, `create_pool`, `create_redis` functions updated: db and password + arguments made keyword-only + (see #26) +- Fixed transaction handling + (see #32) +- Response decoding + (see #16) + +## 0.1.1 (2014-07-07) + + +- Transactions support (in connection, high-level commands have some issues) +- Docs & tests updated. + + +## 0.1.0 (2014-06-24) + + +- Initial release +- RedisConnection implemented +- RedisPool implemented +- Docs for RedisConnection & RedisPool +- WIP on high-level API. + + + +%prep +%autosetup -n aioredis-2.0.1 + +%build +%py3_build + +%install +%py3_install +install -d -m755 %{buildroot}/%{_pkgdocdir} +if [ -d doc ]; then cp -arf doc %{buildroot}/%{_pkgdocdir}; fi +if [ -d docs ]; then cp -arf docs %{buildroot}/%{_pkgdocdir}; fi +if [ -d example ]; then cp -arf example %{buildroot}/%{_pkgdocdir}; fi +if [ -d examples ]; then cp -arf examples %{buildroot}/%{_pkgdocdir}; fi +pushd %{buildroot} +if [ -d usr/lib ]; then + find usr/lib -type f -printf "/%h/%f\n" >> filelist.lst +fi +if [ -d usr/lib64 ]; then + find usr/lib64 -type f -printf "/%h/%f\n" >> filelist.lst +fi +if [ -d usr/bin ]; then + find usr/bin -type f -printf "/%h/%f\n" >> filelist.lst +fi +if [ -d usr/sbin ]; then + find usr/sbin -type f -printf "/%h/%f\n" >> filelist.lst +fi +touch doclist.lst +if [ -d usr/share/man ]; then + find usr/share/man -type f -printf "/%h/%f.gz\n" >> doclist.lst +fi +popd +mv %{buildroot}/filelist.lst . +mv %{buildroot}/doclist.lst . + +%files -n python3-aioredis -f filelist.lst +%dir %{python3_sitelib}/* + +%files help -f doclist.lst +%{_docdir}/* + +%changelog +* Mon Apr 10 2023 Python_Bot <Python_Bot@openeuler.org> - 2.0.1-1 +- Package Spec generated |