Up to [cvs.NetBSD.org] / pkgsrc / databases / py-redis
Request diff between arbitrary revisions
Keyword substitution: kv
Default branch: MAIN
py-redis: updated to 5.0.8 5.0.8 Resolve some docs warnings Bdd missing type hints for retry.py Breaking Changes Timeseries insertion filters for close samples New Features Hash field expiration commands Support the MAXAGE option for CLIENT KILL Support NOVALUES parameter for HSCAN Document XREAD of last message (+) Support missing/empty values in search Timeseries insertion filters for close samples Maintenance Add extra tests for GEO search Test special characters escaping in search Bug Fixes Decode search results at field level
py-redis: updated to 5.0.7 5.0.7 Bug Fixes None UnixDomainSocket timeout Maintenance Updated redis version to represent latest available build
py-redis: updated to 5.0.6 5.0.6 Bug Fixes Handle lists in the response of INFO
py-redis: updated to 5.0.5 5.0.5 Bug Fixes Fix parsing of INFO response
py-redis: updated to 5.0.4 5.0.4 Bug Fixes Make it possible to customize SSL ciphers
py-redis: updated to 5.0.3 5.0.3 Bug Fixes Fix breaking change: message in LockError is now optional Maintenance Bump release-drafter/release-drafter from 5 to 6 Bump rojopolis/spellcheck-github-actions from 0.35.0 to 0.36.0 Remove redundant async-timeout dependency
py-redis: updated to 5.0.2 5.0.2 New Features Allow to control the minimum SSL version Add modules support to async RedisCluster Adding lock_name to LockError Add GEOSHAPE field type for index creation of RediSearch Bug Fixes Fix retry logic for pubsub and pipeline Ignore TypeError on disconnect (within multiprocess) Release already acquired connections on ClusterPipeline, when get_connection raises an exception Fix possible pipeline connections leak Return a copy of the response from cache Fix: HSET unexpectedly mutates the list passed to items Fix acl_genpass with bits Allow the parsing of the asking command to forward original options Fix parsing of FT.PROFILE result Use disable_decoding in async read_response with hiredis parser. Fix return types in json commands Fix Specifying Target Nodes broken hyperlink Maintenance Fix incorrect asserts in test and ensure connections are closed Revert stale issue version update Docs: Add timeout parameter for get_message example Bump codecov/codecov-action from 3 to 4 Bump actions/stale from 3 to 9 Fix grammer in BlockingConnectionPool class documentation Updating async-timeout to 4.0.3 Fix type hint of arbitrary argument lists Fix JSON.OBJLEN type hint Fix HDEL type hint Docs: organize cluster mode part of lua scripting Update reported version deprecation in asyncio.client Make the connection callback methods public again, add documentation Update repr of important classes with module name and recommended "< โฆ Typo in advanced features documentation Fix typos in documentation Add "sum" to DUPLICATE_POLICY documentation of TS.CREATE, TS.ADD and TS.ALTER Fixed typo in ocsp.py Creating CODEOWNERS for documentation
py-redis: updated to 5.0.1 5.0.1 ๐ New Features Provide aclose() / close() for classes requiring lifetime management Add support for ModuleCommands in cluster Add support for multiple values in RPUSHX Add Redis.from_pool() class method, for explicitly owning and closing a ConnectionPool ๐ Bug Fixes Fixing monitor parsing for messages containing specific substrings Cluster determine slot command name need to be upper Support timeout = 0 in search query Fix async sentinel: add push_request keyword argument to read_response Fix protocol checking for search commands Fix: SentinelManagedConnection.read_response() got an unexpected keyword argument 'push_request' Fix: automatically close connection pool for async Sentinel Save a reference to created async tasks, to avoid tasks potentially disappearing Avoid reference cycling by the garbage collector during response reading ๐งฐ Maintenance Type hint improvements Replace clear_connect_callbacks with _deregister_connect_callback Async fixes, remove del and other things Add pagination, sorting and grouping examples to search json example Remove process-id checks from asyncio. Asyncio and fork() does not mix. Fix resource usage and cleanup Mocks in the unit tests Remove mentions of tox Add 7.2 to supported Redis versions Fix resource warnings in unit tests Fix typo in redis-stream-example.ipynb Deprecate RedisGraph Fix redis 7.2.0 tests Fix test_scorer (search)
py-redis: updated to 5.0.0. 5.0.0 Triggers and Functions support Triggers and Functions allow you to execute server-side functions triggered when key values are modified or created in Redis, a stream entry arrival, or explicitly calling them. Simply put, you can replace Lua scripts with easy-to-develop JavaScript or TypeScript code. Move your business logic closer to the data to ensure a lower latency, and forget about updating dependent key values manually in your code. Try it for yourself with Quick start Full Redis 7.2 and RESP3 support Python 3.7 End-of-Life Python 3.7 has reached its end-of-life (EOL) as of June 2023. This means that starting from this date, Python 3.7 will no longer receive any updates, including security patches, bug fixes, or improvements. If you continue to use Python 3.7 post-EOL, you may expose your projects and systems to potential security vulnerabilities. We ended its support in this version and strongly recommend migrating to Python 3.10. ๐ Bug Fixes Fix timeout retrying on pipeline execution Fix socket garbage collection ๐งฐ Maintenance Updating client license to clear, MIT Add py.typed in accordance with PEP-561 Dependabot label change Fix type hints in SearchCommands Add sync modules (except search) tests to cluster CI Fix a duplicate word in CONTRIBUTING.md Fixing doc builds Change cluster docker to edge and enable debug command
py-redis: updated to 4.6.0 4.6.0 ๐งช Experimental Features Support JSON.MERGE command Support JSON.MSET command ๐ New Features Extract abstract async connection class Add support for WAITAOF Introduce OutOfMemoryError exception for Redis write command rejections due to OOM errors Add WITHSCORE argument to ZRANK ๐ Bug Fixes Fix dead weakref in sentinel connection causing ReferenceError Fix Key Error in parse_xinfo_stream Remove unnecessary __del__ handlers Added support for missing argument to SentinelManagedConnection.read_response() ๐งฐ Maintenance Fix type hint for retry_on_error in async cluster Clean up documents and fix some redirects Add unit tests for the connect method of all Redis connection classes Docstring formatting fix
py-redis: updated to 4.5.5 4.5.5 ๐ New Features Add support for CLIENT NO-TOUCH Add support for CLUSTER MYSHARDID Add "address_remap" feature to RedisCluster Add WITHSCORES argument to ZREVRANK command Improve error output for master discovery ๐ Bug Fixes Fix XADD: allow non negative maxlen Fix create single connection client from url Optionally disable disconnects in read_response Fix SLOWLOG GET return value Fix potential race condition during disconnection Return response in case of KeyError Fix incorrect usage of once flag in async Sentinel Fix memory leak caused by hiredis in asyncio case Really do not use asyncio's timeout lib before 3.11.2 ๐งฐ Maintenance Clean PytestUnraisableExceptionWarning from asycio client Add RedisCluster.remap_host_port, Update tests for CWE 404 Updated AWS Elasticache IAM connection example Update CONTRIBUTING guidelines Fix ClusterCommandProtocol type Fix TOPK list example. Improving vector similarity search example Update example of Redisearch creating index
py-redis: updated to 4.5.4 4.5.4 Upgrade urgency: SECURITY, contains fixes to security issues. (CVE-2023-28859) - Cancelling an async future does not, properly trigger, leading to a potential data leak in specific cases. (CVE-2023-28858) - Cancelling an async future does not, properly trigger, leading to a potential data leak in specific cases. ๐ Bug Fixes Fixing cancelled async futures Fix: do not use asyncio's timeout lib before 3.11.2 Fix UDS in v4.5.2: UnixDomainSocketConnection missing constructor argument ๐งฐ Maintenance Minor fixes for 2666 and enhanced async test Fix issue 2660: PytestUnraisableExceptionWarning from asycio client Removing accidentally checked in files
py-redis: updated to 4.5.3 4.5.3 Update urgency: HIGH: There is a critical bug that may affect a subset of users. Upgrade! CWE-404 AsyncIO Race Condition Fix
py-redis: updated to 4.5.2 4.5.2 ๐ New Features Introduce AbstractConnection so that UnixDomainSocketConnection can call super().init Added queue_class to REDIS_ALLOWED_KEYS Made search document subscriptable Sped up the protocol parsing ๐ Bug Fixes Fix behaviour of async PythonParser to match RedisParser Replace async_timeout by asyncio.timeout Update json().arrindex() default values ๐งฐ Maintenance Coverage for pypy-3.9 Developer Experience: Adding redis version compatibility details to the README Remove redundant assignment to RedisCluster.nodes_manager. Developer Experience: [types] update return type of smismember to list[int] Developer Experience: [docs] ConnectionPool SSL example Developer Experience: Fixed CredentialsProvider examples Developer Experience: Update README to make pip install copy-pastable on zsh Developer Experience: Fix for lpop and rpop return typing
py-redis: updated to 4.5.1 4.5.1 Bug Fixes Fix UnixDomainSocketConnection object has no attribute _command_packer 4.5.0 ๐งช Experimental Features Add TS.MGET example for OS Redis Cluster ๐ New Features Use hiredis::pack_command to serialized the commands. Add support for unlink in cluster pipeline ๐ Bug Fixes Fix issue with pack_commands returning an empty byte sequence Async HiredisParser should finish parsing after a Connection.disconnect() Check for none, prior to raising exception Tuple function cannot be passed more than one argument Synchronise concurrent command calls to single-client to single-client mode ๐งฐ Maintenance Add TS.MGET example for OS Redis Cluster Documentation changes: typo fix Simplify the sync SocketBuffer, add type hints Add missing Union type in method StreamCommands.xclaim() Change redismod docker to redis-stack-server
py-redis: updated to 4.4.2 4.4.2 ๐งช Experimental Features Add support for BF.CARD ๐ New Features Add support for BF.CARD Add support for custom connection pool class in NodesManager ๐ Bug Fixes Allow replica to master promotion in nodes_cache Security Fix: Updating graph parser for potential injection cases
py-redis: updated to 4.4.1 Changes 4.4.1 ๐ New Features Add dialect to FT.AGGREGATE Add support for resetchannels in ACL SETUSER Allow EVAL_RO and EVALSHA_RO to be routed to read replica Add timeout parameter for SentinelManagedConnection Add TIMEOUT to query class Add support for certain LATENCY commands ๐ Bug Fixes Add type checking to __eq__ in graph classes Accept str for ex parameter in set command Fix for Unhandled exception related to self.host with unix socket Make PythonParser resumable ๐งฐ Maintenance Fix incorrect _disconnect_raise docstring Remove DeprecationWarning by replace get_event_loop with get_running_loop Fix AttributeError when trying to split library version Including startup instructions via redis-stack docker Fix JSON.ARRINDEX test Add OpenTelemetry example with Uptrace backend Switch docs to furo theme Combine auto-concatenated strings Updating graph tests to support new execution plan Raising NotImplementedError for certain CLUSTER and LATENCY commands
py-redis: updated to 4.4.0 v4.4.0 New Features (since 4.4.0rc4) Async clusters: Support creating locks inside async functions Bug Fixes (since 4.4.0rc4) Async: added 'blocking' argument to call lock method Added a replacement for the default cluster node in the event of failure. Fixed geosearch: Wrong number of arguments for geosearch command Maintenance (since 4.4.0rc4) Updating dev dependencies Removing deprecated LGTM Added an explicit index name in RediSearch example Adding connection step to bloom filter examples
py-redis: updated to 4.3.5 Version 4.3.5 Changes This is a maintenance release of redis-py, prior to the release of 4.4.0. This release contains both bug fixes, and features, keeping pace with the release of redis-stack capabilities. ๐ New Features Add support for TIMESERIES 1.8 Graph - add counters for removed labels and properties Add support for TDIGEST.QUANTILE extensions Add TDIGEST.TRIMMED_MEAN Add support for async GRAPH module Support TDIGEST.MERGESTORE and make compression optional on TDIGEST.CREATE Adding reserve as an alias for create, so that we have BF.RESERVE and CF.RESERVE accuratenly supported ๐ Bug Fixes Fix async connection.is_connected to return a boolean value Fix: workaround asyncio bug on connection reset by peer Fix crash: key expire while search Async cluster: fix concurrent pipeline Fix async SEARCH pipeline Fix KeyError in async cluster - initialize before execute multi key commands ๐งฐ Maintenance Supply chain risk reduction: remove dependency on library named deprecated Search test - Ignore order of the items in the response Fix GRAPH.LIST & TDIGEST.QUANTILE tests Fix TimeSeries range aggregation (twa) tests Mark TOPK.COUNT as deprecated
py-redis: updated to 4.3.4 Version 4.3 ๐ฅ Breaking Changes Fix backward compatibility from 4.3.2 in Lock.acquire() Fix XAUTOCLAIM to return the full response, instead of only keys 2+ ๐ New Features Added dynamic_startup_nodes configuration to RedisCluster. ๐ Bug Fixes Fix retries in async mode Async cluster: fix simultaneous initialize Uppercased commands in CommandsParser.get_keys ๐งฐ Maintenance Late eval of the skip condition in async tests Reuse the old nodes' connections when a cluster topology refresh is being done Docs: add pipeline examples Correct retention_msecs value Cluster: use pipeline to execute split commands Docs: Add a note about client_setname and client_name difference
py-redis: updated to 4.3.3 Version 4.3.3 Changes ๐ Bug Fixes Fix Lock crash, and versioning 4.3.3 ๐งฐ Maintenance Async cluster: improve docs Version 4.3.2 Changes ๐ New Features SHUTDOWN - add support for the new NOW, FORCE and ABORT modifiers Adding pipeline support for async cluster Support CF.MEXISTS + Clean bf/commands.py Extending query_params for FT.PROFILE Implementing ClusterPipeline Lock ๐ Bug Fixes Set default response_callbacks to redis.asyncio.cluster.ClusterNode Add default None for maxlen at xtrim command ๐งฐ Maintenance Async cluster: add/update typing Changed list type to single element type Made sync lock consistent and added types to it Async cluster: optimisations Fix typos in README Fix modules links to https://redis.io/commands/
py-redis: updated to 4.3.1 Version 4.3.1 ๐ Bug Fixes Fix asyncio Search crash
py-redis: updated to 4.3.0 Version 4.3.0 ๐ฅ Breaking Changes Replace OSError exceptions from can_read with redis.ConnectionError Updated FUNCTION LOAD changes (from release 7.0 rc3 to support redis 7.0 final) ๐ New Features Get command keys for subcommands Add support for CLUSTER SHARDS Add support for COMMAND LIST Add Async RedisCluster ACL SETUSER - add selectors and key based permissions Support for redis 7 streams features Async Connection: Allow PubSub.run() without previous subscribe() Implemented LATENCY HISTOGRAM by always throwing NotImplementedError Add async supoort for SEARCH commands Retry(): Support negative retries value Add support for MODULE LOADEX INFO - add support for taking multiple section arguments CONFIG SET - add the ability to set multiple parameters in one call CONFIG GET - add the ability to pass multiple pattern parameters in one call Add support for COMMAND GETKEYSANDFLAGS Support CASESENSITIVE for TAG fields ๐ Bug Fixes Rename 'update_supported_erros' to 'update_supported_errors' in Retry module Fix execute_command() determining nodes error when no key command Fix incorrect return statement in auth ๐งฐ Maintenance Add unittest for PubSub.connect() Fix incorrect return annotation in asyncio.lock Minor cleanups in commands/cluster.py Update xtrim type annotation Async tests for redis commands, json, bloom, timeseries Fixed typing in getex command
py-redis: updated to 4.2.2 Version 4.2.2 Changes ๐ New Features Extended "CLUSTER NODES" parser to support special slot entries ๐ฅ NOTE: This change is potentially breaking depending on your use of specialized slot entries. Support for bytes was added Add support for BIT|BYTE option available in redis 7 ๐ Bug Fixes Fix imports in for async Always clear reference to closed reader/writer Fix disable decode for dump command in async ๐งฐ Maintenance Cluster commands linkdocs Clarify bit type in setbit/getbit documentation Clean up test supoort enterprise environments Vector similarity search example Fix search query with params tests Version 4.2.1 Changes ๐ New Features Add support for CLUSTER MYID Add dialect support for RediSearch queries ๐งฐ Maintenance Fix black Make typing_extensions conditional to Python < 3.8 Version 4.2.0 Changes ๐ New Features Support for Vector Fields for Vector Similarity Search ๐ Bug Fixes Fix cluster scan command cursors & scan_iter ๐งฐ Maintenance Remove verbose logging from cluster initializers Mark tests for redis-stack
py-redis: updated to 4.1.4 4.1.4: New Features Adding ExecutionPlan support for graph Vector similiary search support
py-redis: updated to 4.1.3 4.1.3 Bug Fixes Fix flushdb and flushall Maintenance Add redis5 and redis4 dockers Change json.clear test multi to be up to date with redisjson Fixing volume for unstable_cluster docker Update changes file with changes since 4.0.0-beta2
py-redis: updated to 4.1.2 Version 4.1.2 Changes ๐ New Features Invalid OCSP certificates should raise ConnectionError on failed validation Added retry mechanism on socket timeouts when connecting to the server ๐ Bug Fixes LMOVE, BLMOVE return incorrect responses Fixing AttributeError in UnixDomainSocketConnection Fixing TypeError in GraphCommands.explain ๐งฐ Maintenance For tests, increasing wait time for the cluster Increased pubsub's wait_for_messages timeout to prevent flaky tests README code snippets formatted to highlight properly Fix link in the main page Documentation fixes: JSON Example, SSL Connection Examples, RTD version Direct link to readthedocs
py-redis: updated to 4.1.1 Version 4.1.1 Changes ๐ New Features Add retries to connections in Sentinel Pools OCSP Stapling Support Define incr/decr as aliases of incrby/decrby FT.CREATE - support MAXTEXTFIELDS, TEMPORARY, NOHL, NOFREQS, SKIPINITIALSCAN ๐ Bug Fixes Timeseries docs fix get_connection: catch OSError too Set keys var otherwise variable not created Clusters should optionally require full slot coverage ๐งฐ Maintenance Triple quote docstrings in client.py PEP 257 syncing requirements Typo and typing in GraphCommands documentation Allowing poetry and redis-py to install together setup.py: Add project_urls for PyPI Support test with redis unstable docker Connection examples Documentation cleanup
py-redis: updated to 4.1.0 Version 4.1.0 ๐ New Features OCSP stapling support Support for SELECT Support for specifying error types with retry Support for RESET command since Redis 6.2.0 Support CLIENT TRACKING Support WRITE in CLIENT PAUSE JSON set_file and set_path support Allow ssl_ca_path with rediss:// urls Support for password-encrypted SSL private keys Support SYNC and PSYNC ๐ Bug Fixes Retry on error exception and timeout fixes Fixing read race condition during pubsub Fixing exception in listen Fixed MovedError, and stopped iterating through startup nodes when slots are fully covered Socket not closing after server disconnect Single sourcing the package version Ensure redis_connect_func is set on uds connection ๐งฐ Maintenance SRTALGO - Skip for redis versions greater than 7.0.0 Documentation updates Add CI action to install package from repository commit hash Fix link in lmove docstring Disabling JSON.DEBUG tests Version 4.0.2 ๐ Bug Fixes Restoring Sentinel commands to redis client Better removal of hiredis warning ๐งฐ Maintenance Adding links to redis documents in function calls Version 4.0.1 ๐ Bug Fixes Removing command on initial connections Removing hiredis warning when not installed Version 4.0.0 ๐ New Features FT.EXPLAINCLI intentionally raising NotImplementedError ๐ Bug Fixes Restoring ZRANGE desc for Redis < 6.2.0 Response parsing occasionally fails to parse floats Re-enabling read-the-docs ๐งฐ Maintenance Call HSET after FT.CREATE to avoid keyspace scan Unit tests fixes for compatibility Improve documentation about Locks Fixes to allow --redis-url to pass through all tests Fix unit tests running against Redis 4.0.0 Search alias test fix Adding RediSearch/RedisJSON tests Updating codecov rules Tests to validate custom JSON decoders Added breaking icon to release drafter
databases: Replace RMD160 checksums with BLAKE2s checksums All checksums have been double-checked against existing RMD160 and SHA512 hashes The following distfiles could not be fetched (some may be only fetched conditionally): ./databases/cstore/distinfo D6.data.ros.gz ./databases/cstore/distinfo cstore0.2.tar.gz ./databases/cstore/distinfo data4.tar.gz
databases: Remove SHA1 distfile hashes
py-redis: updated to 3.5.3 3.5.3: * Restore try/except clauses to __del__ methods. These will be removed in 4.0 when more explicit resource management if enforced. * Update the master_address when Sentinels promote a new master. * Update SentinelConnectionPool to not forcefully disconnect other in-use connections which can negatively affect threaded applications.
py-redis: updated to 3.5.2 3.5.2: * Tune the locking in ConnectionPool.get_connection so that the lock is not held while waiting for the socket to establish and validate the TCP connection.
py-redis: updated to 3.5.1 3.5.1: Fix for HSET argument validation to allow any non-None key.
py-redis: updated to 3.5.0 3.5.0: * Removed exception trapping from __del__ methods. redis-py objects that hold various resources implement __del__ cleanup methods to release those resources when the object goes out of scope. This provides a fallback for when these objects aren't explicitly closed by user code. Prior to this change any errors encountered in closing these resources would be hidden from the user. * Expanded support for connection strings specifying a username connecting to pre-v6 servers. * Optimized Lock's blocking_timeout and sleep. If the lock cannot be acquired and the sleep value would cause the loop to sleep beyond blocking_timeout, fail immediately. * Added support for passing Python memoryviews to Redis command args that expect strings or bytes. The memoryview instance is sent directly to the socket such that there are zero copies made of the underlying data during command packing. * HSET command now can accept multiple pairs. HMSET has been marked as deprecated now. * Don't manually DISCARD when encountering an ExecAbortError. * Reset the watched state of pipelines after calling exec. This saves a roundtrip to the server by not having to call UNWATCH within Pipeline.reset(). * Added the KEEPTTL option for the SET command. * Added the MEMORY STATS command. * Lock.extend() now has a new option, `replace_ttl`. When False (the default), Lock.extend() adds the `additional_time` to the lock's existing TTL. When replace_ttl=True, the lock's existing TTL is replaced with the value of `additional_time`. * Add testing and support for PyPy.
py-redis: updated to 3.4.1 3.4.1 * Move the username argument in the Redis and Connection classes to the end of the argument list. This helps those poor souls that specify all their connection options as non-keyword arguments. * Prior to ACL support, redis-py ignored the username component of Connection URLs. With ACL support, usernames are no longer ignored and are used to authenticate against an ACL rule. Some cloud vendors with managed Redis instances (like Heroku) provide connection URLs with a username component pre-ACL that is not intended to be used. Sending that username to Redis servers < 6.0.0 results in an error. Attempt to detect this condition and retry the AUTH command with only the password such that authentication continues to work for these users. * Removed the __eq__ hooks to Redis and ConnectionPool that were added in 3.4.0. This ended up being a bad idea as two separate connection pools be considered equal yet manage a completely separate set of connections.
py-redis: updated to 3.4.0 3.4.0 * Allow empty pipelines to be executed if there are WATCHed keys. This is a convenient way to test if any of the watched keys changed without actually running any other commands. * Removed support for end of life Python 3.4. * Added support for all ACL commands in Redis 6. * Pipeline instances now always evaluate to True. Prior to this change, pipeline instances relied on __len__ for boolean evaluation which meant that pipelines with no commands on the stack would be considered False. * Client instances and Connection pools now support a 'client_name' argument. If supplied, all connections created will call CLIENT SETNAME as soon as the connection is opened. * Added the 'ssl_check_hostname' argument to specify whether SSL connections should require the server hostname to match the hostname specified in the SSL cert. By default 'ssl_check_hostname' is False for backwards compatibility. * Slightly optimized command packing. * Added support for the TYPE argument to SCAN. * Better thread and fork safety in ConnectionPool and BlockingConnectionPool. Added better locking to synchronize critical sections rather than relying on CPython-specific implementation details relating to atomic operations. Adjusted how the pools identify and deal with a fork. Added a ChildDeadlockedError exception that is raised by child processes in the very unlikely chance that a deadlock is encountered.
py-redis: updated to 3.3.11 3.3.11 * Further fix for the SSLError -> TimeoutError mapping to work on obscure releases of Python 2.7. 3.3.10 * Fixed a potential error handling bug for the SSLError -> TimeoutError mapping introduced in 3.3.9. 3.3.9 * Mapped Python 2.7 SSLError to TimeoutError where appropriate. Timeouts should now consistently raise TimeoutErrors on Python 2.7 for both unsecured and secured connections.
py-redis: updated to 3.3.8 * 3.3.8 * Fixed MONITOR parsing to properly parse IPv6 client addresses, unix socket connections and commands issued from Lua. * 3.3.7 * Fixed a regression introduced in 3.3.0 where socket.error exceptions (or subclasses) could potentially be raised instead of redis.exceptions.ConnectionError. * 3.3.6 * Fixed a regression in 3.3.5 that caused PubSub.get_message() to raise a socket.timeout exception when passing a timeout value. * 3.3.5 * Fix an issue where socket.timeout errors could be handled by the wrong exception handler in Python 2.7. * 3.3.4 * More specifically identify nonblocking read errors for both SSL and non-SSL connections. 3.3.1, 3.3.2 and 3.3.3 on Python 2.7 could potentially mask a ConnectionError. * 3.3.3 * The SSL module in Python < 2.7.9 handles non-blocking sockets differently than 2.7.9+. This patch accommodates older versions * 3.3.2 * Further fixed a regression introduced in 3.3.0 involving SSL and non-blocking sockets. * 3.3.1 * Fixed a regression introduced in 3.3.0 involving SSL and non-blocking sockets. * 3.3.0 * Resolve a race condition with the PubSubWorkerThread. * Cleanup socket read error messages. * Cleanup the Connection's selector correctly. * Added a Monitor object to make working with MONITOR output easy. * Internal cleanup: Removed the legacy Token class which was necessary with older version of Python that are no longer supported. * Response callbacks are now case insensitive. This allows users that call Redis.execute_command() directly to pass lower-case command names and still get reasonable responses. * Added support for hiredis-py 1.0.0 encoding error support. This should make the PythonParser and the HiredisParser behave identically when encountering encoding errors. * All authentication errors now properly raise AuthenticationError. AuthenticationError is now a subclass of ConnectionError, which will cause the connection to be disconnected and cleaned up appropriately. * Add READONLY and READWRITE commands. * Remove selectors in favor of nonblocking sockets. Selectors had issues in some environments including eventlet and gevent. This should resolve those issues with no other side effects. * Fixed an issue with XCLAIM and previously claimed but not removed messages. * Allow for single connection client instances. These instances are not thread safe but offer other benefits including a subtle performance increase. * Added extensive health checks that keep the connections lively. Passing the "health_check_interval=N" option to the Redis client class or to a ConnectionPool ensures that a round trip PING/PONG is successful before any command if the underlying connection has been idle for more than N seconds. ConnectionErrors and TimeoutErrors are automatically retried once for health checks. * Changed the PubSubWorkerThread to use a threading.Event object rather than a boolean to control the thread's life cycle. * Fixed a bug in Pipeline error handling that would incorrectly retry ConnectionErrors.
py-redis: updated to 3.2.1 3.2.1 * Fix SentinelConnectionPool to work in multiprocess/forked environments.
py-redis: updated to 3.2.0 3.2.0 * Added support for select.poll to test whether data can be read on a socket. This should allow for significantly more connections to be used with pubsub. * Attempt to guarentee that the ConnectionPool hands out healthy connections. Healthy connections are those that have an established socket connection to the Redis server, are ready to accept a command and have no data available to read. * Use the socket.IPPROTO_TCP constant instead of socket.SOL_TCP. IPPROTO_TCP is available on more interpreters (Jython for instance). * Fixed a regression introduced in 3.0 that mishandles exceptions not derived from the base Exception class. KeyboardInterrupt and gevent.timeout notable. * Significant improvements to handing connections with forked processes. Parent and child processes no longer trample on each others' connections. * PythonParser no longer closes the associated connection's socket. The connection itself will close the socket.
py-redis: updated to 3.1.0 3.1.0: * Connection URLs must have one of the following schemes: redis://, rediss://, unix://. * Fixed an issue with retry_on_timeout logic that caused some TimeoutErrors to be retried. * Added support for SNI for SSL. * Fixed ConnectionPool repr for pools with no connections. * Fixed GEOHASH to return a None value when specifying a place that doesn't exist on the server. * Fixed XREADGROUP to return an empty dictionary for messages that have been deleted but still exist in the unacknowledged queue. * Added an owned method to Lock objects. owned returns a boolean indicating whether the current lock instance still owns the lock. * Allow lock.acquire() to accept an optional token argument. If provided, the token argument is used as the unique value used to claim the lock. * Added a reacquire method to Lock objects. reaquire attempts to renew the lock such that the timeout is extended to the same value that the lock was initially acquired with. * Stream names found within XREAD and XREADGROUP responses now properly respect the decode_responses flag. * XPENDING_RANGE now requires the user the specify the min, max and count arguments. Newer versions of Redis prevent ount from being infinite so it's left to the user to specify these values explicitly. * ZADD now returns None when xx=True and incr=True and an element is specified that doesn't exist in the sorted set. This matches what the server returns in this case. * Added client_kill_filter that accepts various filters to identify and kill clients. * Fixed a race condition that occurred when unsubscribing and resubscribing to the same channel or pattern in rapid succession. * Added a LockNotOwnedError that is raised when trying to extend or release a lock that is no longer owned. This is a subclass of LockError so previous code should continue to work as expected. * Fixed a bug in GEORADIUS that forced decoding of places without respecting the decode_responses option.
py-redis: updated to 3.0.1 * 3.0.1 * Fixed regression with UnixDomainSocketConnection caused by 3.0.0. * Fixed an issue with the new asynchronous flag on flushdb and flushall. * Updated Lock.locked() method to indicate whether *any* process has acquired the lock, not just the current one. This is in line with the behavior of threading.Lock. * 3.0.0 BACKWARDS INCOMPATIBLE CHANGES * When using a Lock as a context manager and the lock fails to be acquired a LockError is now raised. This prevents the code block inside the context manager from being executed if the lock could not be acquired. * Renamed LuaLock to Lock. * Removed the pipeline based Lock implementation in favor of the LuaLock implementation. * Only bytes, strings and numbers (ints, longs and floats) are acceptable for keys and values. Previously redis-py attempted to cast other types to str() and store the result. This caused must confusion and frustration when passing boolean values (cast to 'True' and 'False') or None values (cast to 'None'). It is now the user's responsibility to cast all key names and values to bytes, strings or numbers before passing the value to redis-py. * The StrictRedis class has been renamed to Redis. StrictRedis will continue to exist as an alias of Redis for the forseeable future. * The legacy Redis client class has been removed. It caused much confusion to users. * ZINCRBY arguments 'value' and 'amount' have swapped order to match the the Redis server. The new argument order is: keyname, amount, value. * MGET no longer raises an error if zero keys are passed in. Instead an empty list is returned. * MSET and MSETNX now require all keys/values to be specified in a single dictionary argument named mapping. This was changed to allow for future options to these commands in the future. * ZADD now requires all element names/scores be specified in a single dictionary argument named mapping. This was required to allow the NX, XX, CH and INCR options to be specified. * Removed support for EOL Python 2.6 and 3.3. OTHER CHANGES * Added missing DECRBY command. * CLUSTER INFO and CLUSTER NODES respones are now properly decoded to strings. * Added a 'locked()' method to Lock objects. This method returns True if the lock has been acquired and owned by the current process, otherwise False. * EXISTS now supports multiple keys. It's return value is now the number of keys in the list that exist. * Ensure all commands can accept key names as bytes. This fixes issues with BLPOP, BRPOP and SORT. * All errors resulting from bad user input are raised as DataError exceptions. DataError is a subclass of RedisError so this should be transparent to anyone previously catching these. * Added support for NX, XX, CH and INCR options to ZADD * Added support for the MIGRATE command * Added support for the MEMORY USAGE and MEMORY PURGE commands. * Added support for the 'asynchronous' argument to FLUSHDB and FLUSHALL commands. * Added support for the BITFIELD command. * Improved performance on pipeline requests with large chunks of data. * Fixed test suite to not fail if another client is connected to the server the tests are running against. * Added support for SWAPDB. * Added support for all STREAM commands. * SHUTDOWN now accepts the 'save' and 'nosave' arguments. * Added support for ZPOPMAX, ZPOPMIN, BZPOPMAX, BZPOPMIN. * Added support for the 'type' argument in CLIENT LIST. * Added support for CLIENT PAUSE. * Added support for CLIENT ID and CLIENT UNBLOCK. * GEODIST now returns a None value when referencing a place that does not exist. * Added a ping() method to pubsub objects. * Fixed a bug with keys in the INFO dict that contained ':' symbols. * ssl_cert_reqs now has a default value of 'required' by default. This should make connecting to a remote Redis server over SSL more secure. * Fixed the select system call retry compatibility with Python 2.x. * max_connections is now a valid querystring argument for creating connection pools from URLs. * Added the UNLINK command. * Added socket_type option to Connection for configurability. * Lock.do_acquire now atomically sets acquires the lock and sets the expire value via set(nx=True, px=timeout). * Added 'count' argument to SPOP. * Fixed an issue parsing client_list respones that contained an '='.
2.10.6 * Various performance improvements. Thanks cjsimpson * Fixed a bug with SRANDMEMBER where * Added HSTRLEN command. Thanks Alexander Putilin * Added the TOUCH command. Thanks Anis Jonischkeit * Remove unnecessary calls to the server when registering Lua scripts. Thanks Ben Greenberg * SET's EX and PX arguments now allow values of zero. Thanks huangqiyin * Added PUBSUB {CHANNELS, NUMPAT, NUMSUB} commands. Thanks Angus Pearson * PubSub connections that that encounter `InterruptedError`s now retry automatically. Thanks Carlton Gibson and Seth M. Larson * LPUSH and RPUSH commands run on PyPy now correctly returns the number of items of the list. Thanks Jeong YunWon * Added support to automatically retry socket EINTR errors. Thanks Thomas Steinacher * PubSubWorker threads started with `run_in_thread` are now daemonized so the thread shuts down when the running process goes away. Thanks Keith Ainsworth * Added support for GEO commands. Thanks Pau Freixes, Alex DeBrie and Abraham Toriz * Made client construction from URLs smarter. Thanks Tim Savage * Added support for CLUSTER * commands. Thanks Andy Huang * The RESTORE command now accepts an optional `replace` boolean. Thanks Yoshinari Takaoka * Attempt to connect to a new Sentinel if a TimeoutError occurs. Thanks Bo Lopker * Fixed a bug in the client's `__getitem__` where a KeyError would be raised if the value returned by the server is an empty string. Thanks Javier Candeira. * Socket timeouts when connecting to a server are now properly raised as TimeoutErrors.
PkgSrc: renamed py-redis-py to py-redis 2.10.5 * Allow URL encoded parameters in Redis URLs. Characters like a "/" can now be URL encoded and redis-py will correctly decode them. * Added support for the WAIT command. * Better shutdown support for the PubSub Worker Thread. It now properly cleans up the connection, unsubscribes from any channels and patterns previously subscribed to and consumes any waiting messages on the socket. * Added the ability to sleep for a brief period in the event of a WatchError occuring. * Fixed a bug with pipeline error reporting when dealing with characters in error messages that could not be encoded to the connection's character set. * Fixed a bug in Sentinel connections that would inadvertantly connect to the master when the connection pool resets. * Better timeout support in Pubsub get_message. * Fixed a bug with the HiredisParser that would cause the parser to get stuck in an endless loop if a specific number of bytes were delivered from the socket. This fix also increases performance of parsing large responses from the Redis server. * Added support for ZREVRANGEBYLEX. * ConnectionErrors are now raised if Redis refuses a connection due to the maxclients limit being exceeded. * max_connections can now be set when instantiating client instances.