Redis Python client
This report summarizes scanner evidence for redis/redis-py, a Python project with 13,646 GitHub stars. SynthScan examined 227,092 lines of code across 389 source files, recording 5479 pattern matches distributed across 22 syntactic categories. The legacy adjusted pattern signal is 26.2 (Elevated pattern signal); it is not an authorship estimate.
Use the findings to ask whether maintainers can explain intent, verify dependencies, simplify unnecessary scaffolding, and focus review effort. Risk Payload v1 adds ownership, supply-chain, over-engineering, and review-effort vectors when available. These are prompts for human verification, not probabilities, security findings, or measured maintenance costs.
Use each vector to guide manual verification of the underlying findings.
Can maintainers explain intent, assumptions, and trade-offs? 4623 finding(s).
Are imports declared and package/API names verified? 189 finding(s).
Are wrappers, guards, and repeated structures necessary? 4751 finding(s).
Which changes need focused human review? 5479 finding(s).
This chart tracks the legacy adjusted pattern score across scan runs. Changes can reflect source changes, scan coverage, or detector/scoring versions; they do not measure AI adoption or prove that a team refactored code. Compare runs only when their scoring versions are compatible. The dashed line tracks the raw pattern-hit count.
Groups findings by configured severity weight. Severity is not a confidence estimate, security rating, or proof that a package is missing. Verify imports against the project's manifests and inspect each finding in its local design context.
This horizontal bar chart shows where configured pattern scores accumulate across directories. Treat the bars as locations to inspect, not as evidence of authorship or code quality. Use the file-level findings to decide whether a directory needs a focused ownership, dependency, complexity, or review check.
The scanner identified 5479 distinct pattern matches across 22 syntactic categories. Each entry below represents a discrete location in the source code where the engine recorded a detector match to inspect in context. Expand any category row to inspect the individual file paths, line numbers, code snippets, and the lexical context (CODE, COMMENT, or STRING) in which each match was detected.
Reading the findings table: The Severity column indicates the configured finding weight (CRITICAL / HIGH / MEDIUM / LOW). The Context column identifies whether the match occurred inside executable code, an inline comment, or a string literal — legacy comment-context matches receive a ×1.5 score weight. The ⚡ bolt icon marks clustered matches: three or more patterns within a 10-line window, each receiving an additional ×1.5 density multiplier under the legacy scoring model.
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| LOW | tasks.py | 14 | def _ensure_junit_results_dir(): | CODE |
| LOW | tasks.py | 183 | def multidb_integration_tests(c, uvloop=False, profile=False): | CODE |
| LOW | redis/ocsp.py | 251 | def components_from_direct_connection(self): | CODE |
| LOW | redis/keyspace_notifications.py | 223 | def _parse_length_prefixed_subkeys(s: bytes | str) -> list[str]: | CODE |
| LOW | redis/keyspace_notifications.py | 1121 | def subscribe_subkeyspaceitem( | CODE |
| LOW | redis/keyspace_notifications.py | 1132 | def subscribe_subkeyspaceevent( | CODE |
| LOW | redis/keyspace_notifications.py | 1436 | def subscribe_subkeyspaceitem( | CODE |
| LOW | redis/keyspace_notifications.py | 1458 | def subscribe_subkeyspaceevent( | CODE |
| LOW | redis/keyspace_notifications.py | 1937 | def _unsubscribe_from_all_nodes(self, channels: list[str], use_punsubscribe: bool): | CODE |
| LOW | redis/keyspace_notifications.py | 2108 | def _refresh_subscriptions_on_error(self): | CODE |
| LOW | redis/client.py | 120 | def add_debug_log_for_operation_failure( | CODE |
| LOW | redis/client.py | 830 | def _send_command_parse_response(self, conn, command_name, *args, **options): | CODE |
| LOW | redis/client.py | 857 | def _himport_reconcile_discards(self, conn): | CODE |
| LOW | redis/client.py | 1224 | def _resubscribe_shard_channels(self) -> None: | CODE |
| LOW | redis/client.py | 1270 | def clean_health_check_responses(self) -> None: | CODE |
| LOW | redis/client.py | 1956 | def _disconnect_reset_raise_on_watching( | CODE |
| LOW | redis/client.py | 1995 | def immediate_execute_command(self, *args, **options): | CODE |
| LOW | redis/client.py | 2067 | def _himport_prepare_pipeline(self, conn, commands): | CODE |
| LOW | redis/client.py | 2218 | def _disconnect_raise_on_watching( | CODE |
| LOW | redis/background.py | 198 | def _ensure_health_check_loop(self, timeout: float = 5.0): | CODE |
| LOW | redis/background.py | 281 | def _call_later_recurring_coro( | CODE |
| LOW | redis/background.py | 469 | def _start_event_loop_in_thread( | CODE |
| LOW | redis/driver_info.py | 11 | def _validate_no_invalid_chars(value: str, field_name: str) -> None: | CODE |
| LOW | redis/_defaults.py | 12 | def get_default_socket_keepalive_options() -> dict[int, int]: | CODE |
| LOW⚡ | redis/connection.py | 964 | def add_maint_start_notification(self, id: int): | CODE |
| LOW⚡ | redis/connection.py | 967 | def get_processed_start_notifications(self) -> set: | CODE |
| LOW⚡ | redis/connection.py | 970 | def add_skipped_end_notification(self, id: int): | CODE |
| LOW⚡ | redis/connection.py | 973 | def get_skipped_end_notifications(self) -> set: | CODE |
| LOW⚡ | redis/connection.py | 976 | def reset_received_notifications(self): | CODE |
| LOW⚡ | redis/connection.py | 1229 | def _construct_command_packer(self, packer): | CODE |
| LOW⚡ | redis/connection.py | 1238 | def register_connect_callback(self, callback): | CODE |
| LOW⚡ | redis/connection.py | 2099 | def register_connect_callback(self, callback): | CODE |
| LOW⚡ | redis/connection.py | 2102 | def deregister_connect_callback(self, callback): | CODE |
| LOW⚡ | redis/connection.py | 2108 | def set_maint_notifications_pool_handler_for_connection( | CODE |
| LOW⚡ | redis/connection.py | 2116 | def set_maint_notifications_cluster_handler_for_connection( | CODE |
| LOW | redis/connection.py | 147 | def add_debug_log_for_connection_failure( | CODE |
| LOW | redis/connection.py | 262 | def register_connect_callback(self, callback): | CODE |
| LOW | redis/connection.py | 266 | def deregister_connect_callback(self, callback): | CODE |
| LOW | redis/connection.py | 362 | def extract_connection_details(self) -> str: | CODE |
| LOW | redis/connection.py | 441 | def _get_push_notifications_parser(self) -> Union[_HiredisParser, _RESP3Parser]: | CODE |
| LOW | redis/connection.py | 449 | def _complete_maintenance_on_disconnect(self) -> None: | CODE |
| LOW | redis/connection.py | 478 | def handle_pending_push_notifications(self) -> None: | CODE |
| LOW | redis/connection.py | 638 | def _configure_maintenance_notifications( | CODE |
| LOW | redis/connection.py | 728 | def set_maint_notifications_pool_handler_for_connection( | CODE |
| LOW | redis/connection.py | 762 | def set_maint_notifications_cluster_handler_for_connection( | CODE |
| LOW | redis/connection.py | 794 | def _should_enable_maint_notifications(self) -> bool: | CODE |
| LOW | redis/connection.py | 807 | def activate_maint_notifications_handling_if_enabled(self, check_health=True): | CODE |
| LOW | redis/connection.py | 817 | def _enable_maintenance_notifications( | CODE |
| LOW | redis/connection.py | 830 | def _maint_notifications_command_args( | CODE |
| LOW | redis/connection.py | 848 | def _send_maint_notifications_command( | CODE |
| LOW | redis/connection.py | 856 | def _add_maint_notifications_to_handshake(self, deferred_reads, check_health=True): | CODE |
| LOW | redis/connection.py | 874 | def _handle_maint_notifications_response( | CODE |
| LOW | redis/connection.py | 989 | def update_current_socket_timeout(self, relaxed_timeout: Optional[float] = None): | CODE |
| LOW | redis/connection.py | 1250 | def deregister_connect_callback(self, callback): | CODE |
| LOW | redis/connection.py | 1803 | def extract_connection_details(self) -> str: | CODE |
| LOW | redis/connection.py | 2525 | def _refuse_cache_owned_command(args) -> None: | CODE |
| LOW | redis/connection.py | 2583 | def _himport_reconciled_revision(self): | CODE |
| LOW | redis/connection.py | 2587 | def _himport_reconciled_revision(self, value): | CODE |
| LOW | redis/connection.py | 2634 | def _maint_notifications_connection_handler( | CODE |
| LOW | redis/connection.py | 2641 | def _maint_notifications_connection_handler( | CODE |
| 3931 more matches not shown… | ||||
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| HIGH | doctests/home_json.py | 50 | except redis.exceptions.ResponseError: | CODE |
| HIGH | doctests/home_json.py | 138 | except redis.exceptions.ResponseError: | CODE |
| HIGH | doctests/search_quickstart.py | 24 | except Exception: | CODE |
| HIGH | doctests/geo_index.py | 12 | except redis.exceptions.ResponseError: | CODE |
| HIGH | doctests/geo_index.py | 17 | except redis.exceptions.ResponseError: | CODE |
| HIGH | redis/_himport_exec.py | 151 | except ResponseError: | CODE |
| HIGH | redis/keyspace_notifications.py | 1761 | except Exception: | CODE |
| HIGH | redis/keyspace_notifications.py | 1865 | except Exception: | CODE |
| HIGH | redis/client.py | 812 | except Exception: | CODE |
| HIGH | redis/client.py | 1196 | except Exception: | CODE |
| HIGH | redis/client.py | 1900 | except Exception: | CODE |
| HIGH | redis/background.py | 456 | except Exception: | CODE |
| HIGH | redis/background.py | 493 | except Exception: | CODE |
| HIGH | redis/background.py | 276 | except Exception: | CODE |
| HIGH | redis/background.py | 252 | except Exception: | CODE |
| HIGH | redis/cache.py | 383 | except UnicodeDecodeError: | CODE |
| HIGH | redis/connection.py | 903 | except ResponseError: | CODE |
| HIGH | redis/connection.py | 930 | except (AttributeError, OSError): | CODE |
| HIGH | redis/connection.py | 950 | except (AttributeError, OSError, socket.gaierror): | CODE |
| HIGH | redis/connection.py | 1222 | except Exception: | CODE |
| HIGH | redis/connection.py | 1258 | except ValueError: | CODE |
| HIGH | redis/connection.py | 1533 | except OSError: | CODE |
| HIGH | redis/connection.py | 1830 | except (AttributeError, OSError): | CODE |
| HIGH | redis/connection.py | 4040 | except Exception: | CODE |
| HIGH | redis/connection.py | 4502 | except Exception: | CODE |
| HIGH | redis/connection.py | 1528 | except (OSError, TypeError): | CODE |
| HIGH | redis/connection.py | 3139 | except (AttributeError, ValueError): | CODE |
| HIGH | redis/connection.py | 4690 | except Full: | CODE |
| HIGH | redis/connection.py | 3018 | except OSError: | CODE |
| HIGH | redis/connection.py | 4460 | except Exception: | CODE |
| HIGH | redis/connection.py | 4527 | except Exception: | CODE |
| HIGH | redis/connection.py | 4587 | except Exception: | CODE |
| HIGH | redis/connection.py | 4696 | except Exception: | CODE |
| HIGH | redis/connection.py | 4721 | except Exception: | CODE |
| HIGH | redis/connection.py | 4659 | except ValueError: | CODE |
| HIGH | redis/connection.py | 1953 | except OSError: | CODE |
| HIGH | redis/connection.py | 4579 | except Full: | CODE |
| HIGH | redis/cluster.py | 1087 | except Exception: | CODE |
| HIGH | redis/cluster.py | 2308 | except AttributeError: | CODE |
| HIGH | redis/cluster.py | 3164 | except TypeError: | CODE |
| HIGH | redis/cluster.py | 3613 | except Exception: | CODE |
| HIGH | redis/cluster.py | 4608 | except Exception: | CODE |
| HIGH | redis/cluster.py | 1095 | except OSError: | CODE |
| HIGH | redis/cluster.py | 4397 | except Exception: | CODE |
| HIGH | redis/sentinel.py | 142 | except MasterNotFoundError: | CODE |
| HIGH | redis/maint_notifications.py | 725 | except ValueError: | CODE |
| HIGH | redis/maint_notifications.py | 742 | except ValueError: | CODE |
| HIGH | redis/multidb/client.py | 101 | except Exception: | CODE |
| HIGH | redis/multidb/client.py | 561 | except Exception: | CODE |
| HIGH | redis/multidb/client.py | 651 | except Exception: | CODE |
| HIGH | redis/multidb/client.py | 529 | except Exception: | CODE |
| HIGH | redis/observability/recorder.py | 111 | except Exception: | CODE |
| HIGH | redis/observability/recorder.py | 145 | except Exception: | CODE |
| HIGH | redis/observability/recorder.py | 190 | except Exception: | CODE |
| HIGH | redis/observability/recorder.py | 221 | except Exception: | CODE |
| HIGH | redis/observability/recorder.py | 255 | except Exception: | CODE |
| HIGH | redis/observability/recorder.py | 282 | except Exception: | CODE |
| HIGH | redis/observability/recorder.py | 314 | except Exception: | CODE |
| HIGH | redis/observability/recorder.py | 344 | except Exception: | CODE |
| HIGH | redis/observability/recorder.py | 377 | except Exception: | CODE |
| 160 more matches not shown… | ||||
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| HIGH | redis/client.py | 0 | return a connection pool configured from the given url. for example:: redis://[[username]:[password]]@localhost:6379/0 r | STRING |
| HIGH | redis/cluster.py | 0 | return a connection pool configured from the given url. for example:: redis://[[username]:[password]]@localhost:6379/0 r | STRING |
| HIGH | redis/asyncio/client.py | 0 | return a connection pool configured from the given url. for example:: redis://[[username]:[password]]@localhost:6379/0 r | STRING |
| HIGH | redis/connection.py | 0 | return a connection pool configured from the given url. for example:: redis://[[username]:[password]]@localhost:6379/0 r | STRING |
| HIGH | redis/asyncio/connection.py | 0 | return a connection pool configured from the given url. for example:: redis://[[username]:[password]]@localhost:6379/0 r | STRING |
| HIGH | redis/client.py | 0 | convenience method for executing the callable `func` as a transaction while watching all keys specified in `watches`. th | STRING |
| HIGH | redis/cluster.py | 0 | convenience method for executing the callable `func` as a transaction while watching all keys specified in `watches`. th | STRING |
| HIGH | redis/asyncio/client.py | 0 | convenience method for executing the callable `func` as a transaction while watching all keys specified in `watches`. th | STRING |
| HIGH | redis/asyncio/cluster.py | 0 | convenience method for executing the callable `func` as a transaction while watching all keys specified in `watches`. th | STRING |
| HIGH | redis/client.py | 0 | create a new lock instance named ``name`` using the redis client supplied by ``redis``. ``timeout`` indicates a maximum | STRING |
| HIGH | redis/cluster.py | 0 | create a new lock instance named ``name`` using the redis client supplied by ``redis``. ``timeout`` indicates a maximum | STRING |
| HIGH | redis/asyncio/client.py | 0 | create a new lock instance named ``name`` using the redis client supplied by ``redis``. ``timeout`` indicates a maximum | STRING |
| HIGH | redis/asyncio/cluster.py | 0 | create a new lock instance named ``name`` using the redis client supplied by ``redis``. ``timeout`` indicates a maximum | STRING |
| HIGH | redis/lock.py | 0 | create a new lock instance named ``name`` using the redis client supplied by ``redis``. ``timeout`` indicates a maximum | STRING |
| HIGH | redis/asyncio/lock.py | 0 | create a new lock instance named ``name`` using the redis client supplied by ``redis``. ``timeout`` indicates a maximum | STRING |
| HIGH | redis/client.py | 0 | return a publish/subscribe object. with this object, you can subscribe to channels and listen for messages that get publ | STRING |
| HIGH | redis/multidb/client.py | 0 | return a publish/subscribe object. with this object, you can subscribe to channels and listen for messages that get publ | STRING |
| HIGH | redis/asyncio/client.py | 0 | return a publish/subscribe object. with this object, you can subscribe to channels and listen for messages that get publ | STRING |
| HIGH | redis/asyncio/multidb/client.py | 0 | return a publish/subscribe object. with this object, you can subscribe to channels and listen for messages that get publ | STRING |
| HIGH | redis/client.py | 0 | unsubscribe from the supplied patterns. if empty, unsubscribe from all patterns. | STRING |
| HIGH | redis/multidb/client.py | 0 | unsubscribe from the supplied patterns. if empty, unsubscribe from all patterns. | STRING |
| HIGH | redis/asyncio/client.py | 0 | unsubscribe from the supplied patterns. if empty, unsubscribe from all patterns. | STRING |
| HIGH | redis/asyncio/multidb/client.py | 0 | unsubscribe from the supplied patterns. if empty, unsubscribe from all patterns. | STRING |
| HIGH | redis/client.py | 0 | unsubscribe from the supplied channels. if empty, unsubscribe from all channels | STRING |
| HIGH | redis/multidb/client.py | 0 | unsubscribe from the supplied channels. if empty, unsubscribe from all channels | STRING |
| HIGH | redis/asyncio/client.py | 0 | unsubscribe from the supplied channels. if empty, unsubscribe from all channels | STRING |
| HIGH | redis/asyncio/multidb/client.py | 0 | unsubscribe from the supplied channels. if empty, unsubscribe from all channels | STRING |
| HIGH | redis/client.py | 0 | unsubscribe from the supplied shard_channels. if empty, unsubscribe from all shard_channels | STRING |
| HIGH | redis/multidb/client.py | 0 | unsubscribe from the supplied shard_channels. if empty, unsubscribe from all shard_channels | STRING |
| HIGH | redis/asyncio/client.py | 0 | unsubscribe from the supplied shard_channels. if empty, unsubscribe from all shard_channels | STRING |
| HIGH | redis/client.py | 0 | get the next message if one is available, otherwise none. if timeout is specified, the system will wait for `timeout` se | STRING |
| HIGH | redis/multidb/client.py | 0 | get the next message if one is available, otherwise none. if timeout is specified, the system will wait for `timeout` se | STRING |
| HIGH | redis/asyncio/client.py | 0 | get the next message if one is available, otherwise none. if timeout is specified, the system will wait for `timeout` se | STRING |
| HIGH | redis/asyncio/multidb/client.py | 0 | get the next message if one is available, otherwise none. if timeout is specified, the system will wait for `timeout` se | STRING |
| HIGH | redis/client.py | 0 | start a transactional block of the pipeline after watch commands are issued. end the transactional block with `execute`. | STRING |
| HIGH | redis/cluster.py | 0 | start a transactional block of the pipeline after watch commands are issued. end the transactional block with `execute`. | STRING |
| HIGH | redis/asyncio/client.py | 0 | start a transactional block of the pipeline after watch commands are issued. end the transactional block with `execute`. | STRING |
| HIGH | redis/asyncio/cluster.py | 0 | start a transactional block of the pipeline after watch commands are issued. end the transactional block with `execute`. | STRING |
| HIGH | redis/client.py | 0 | stage a command to be executed when execute() is next called returns the current pipeline object back so commands can be | STRING |
| HIGH | redis/cluster.py | 0 | stage a command to be executed when execute() is next called returns the current pipeline object back so commands can be | STRING |
| HIGH | redis/multidb/client.py | 0 | stage a command to be executed when execute() is next called returns the current pipeline object back so commands can be | STRING |
| HIGH | redis/asyncio/client.py | 0 | stage a command to be executed when execute() is next called returns the current pipeline object back so commands can be | STRING |
| HIGH | redis/asyncio/multidb/client.py | 0 | stage a command to be executed when execute() is next called returns the current pipeline object back so commands can be | STRING |
| HIGH | redis/connection.py | 0 | update the connection kwargs for all future connections. | STRING |
| HIGH | redis/cluster.py | 0 | update the connection kwargs for all future connections. | STRING |
| HIGH | redis/asyncio/connection.py | 0 | update the connection kwargs for all future connections. | STRING |
| HIGH | redis/connection.py | 0 | dummy functions, needs to be passed as error callback to retry object. :param error: :return: | STRING |
| HIGH | redis/asyncio/connection.py | 0 | dummy functions, needs to be passed as error callback to retry object. :param error: :return: | STRING |
| HIGH | redis/asyncio/cluster.py | 0 | dummy functions, needs to be passed as error callback to retry object. :param error: :return: | STRING |
| HIGH | redis/cluster.py | 0 | the client's himport fieldset registry (empty if none was declared). read-only: the registry is mutated only through the | STRING |
| HIGH | redis/asyncio/cluster.py | 0 | the client's himport fieldset registry (empty if none was declared). read-only: the registry is mutated only through the | STRING |
| HIGH | redis/asyncio/client.py | 0 | the client's himport fieldset registry (empty if none was declared). read-only: the registry is mutated only through the | STRING |
| HIGH | redis/observability/metrics.py | 0 | record a geo failover. args: fail_from: database failed from fail_to: database failed to reason: reason for the failover | STRING |
| HIGH | redis/observability/recorder.py | 0 | record a geo failover. args: fail_from: database failed from fail_to: database failed to reason: reason for the failover | STRING |
| HIGH | redis/asyncio/observability/recorder.py | 0 | record a geo failover. args: fail_from: database failed from fail_to: database failed to reason: reason for the failover | STRING |
| HIGH | redis/observability/metrics.py | 0 | record the lag of a streaming message. args: lag_seconds: lag in seconds stream_name: stream name consumer_group: consum | STRING |
| HIGH | redis/observability/recorder.py | 0 | record the lag of a streaming message. args: lag_seconds: lag in seconds stream_name: stream name consumer_group: consum | STRING |
| HIGH | redis/asyncio/observability/recorder.py | 0 | record the lag of a streaming message. args: lag_seconds: lag in seconds stream_name: stream name consumer_group: consum | STRING |
| HIGH | tests/test_pubsub.py | 0 | create a mock meter that tracks all instrument calls. | STRING |
| HIGH | tests/test_cluster.py | 0 | create a mock meter that tracks all instrument calls. | STRING |
| 37 more matches not shown… | ||||
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| LOW | doctests/query_em.py | 48 | except Exception: | CODE |
| LOW | doctests/query_em.py | 56 | except Exception: | CODE |
| LOW | doctests/query_em.py | 92 | except Exception: | CODE |
| LOW | doctests/search_quickstart.py | 24 | except Exception: | CODE |
| LOW⚡ | redis/keyspace_notifications.py | 1761 | except Exception: | CODE |
| LOW | redis/keyspace_notifications.py | 1865 | except Exception: | CODE |
| LOW | redis/keyspace_notifications.py | 1915 | except Exception: | CODE |
| LOW | redis/keyspace_notifications.py | 1953 | except Exception: | CODE |
| LOW | redis/keyspace_notifications.py | 2119 | except Exception: | CODE |
| LOW | redis/keyspace_notifications.py | 2132 | except Exception: | CODE |
| LOW | redis/keyspace_notifications.py | 2183 | except Exception: | CODE |
| MEDIUM | redis/client.py | 809 | def __del__(self): | CODE |
| MEDIUM | redis/client.py | 1190 | def __del__(self) -> None: | CODE |
| MEDIUM | redis/client.py | 1897 | def __del__(self): | CODE |
| LOW | redis/client.py | 812 | except Exception: | CODE |
| LOW | redis/client.py | 941 | except Exception as e: | CODE |
| LOW | redis/client.py | 1196 | except Exception: | CODE |
| LOW | redis/client.py | 1361 | except Exception as e: | CODE |
| LOW | redis/client.py | 1900 | except Exception: | CODE |
| LOW | redis/client.py | 2040 | except Exception as e: | CODE |
| LOW | redis/client.py | 2303 | except Exception as e: | CODE |
| LOW | redis/background.py | 252 | except Exception: | CODE |
| LOW | redis/background.py | 276 | except Exception: | CODE |
| LOW | redis/background.py | 342 | except Exception: | CODE |
| LOW | redis/background.py | 408 | except Exception: | CODE |
| LOW | redis/background.py | 456 | except Exception: | CODE |
| LOW | redis/background.py | 493 | except Exception: | CODE |
| MEDIUM | redis/connection.py | 1219 | def __del__(self): | CODE |
| LOW⚡ | redis/connection.py | 1222 | except Exception: | CODE |
| LOW | redis/connection.py | 569 | except Exception as e: | CODE |
| LOW | redis/connection.py | 883 | except Exception as e: | CODE |
| LOW | redis/connection.py | 4040 | except Exception: | CODE |
| LOW | redis/connection.py | 4460 | except Exception: | CODE |
| LOW | redis/connection.py | 4502 | except Exception: | CODE |
| LOW | redis/connection.py | 4527 | except Exception: | CODE |
| LOW | redis/connection.py | 4587 | except Exception: | CODE |
| LOW | redis/connection.py | 4696 | except Exception: | CODE |
| LOW | redis/connection.py | 4721 | except Exception: | CODE |
| MEDIUM | redis/cluster.py | 1084 | def __del__(self): | CODE |
| MEDIUM | redis/cluster.py | 2303 | def close(self) -> None: | CODE |
| MEDIUM | redis/cluster.py | 3498 | def _get_node_pubsub(self, node): | CODE |
| MEDIUM | redis/cluster.py | 4605 | def __del__(self): | CODE |
| LOW | redis/cluster.py | 1087 | except Exception: | CODE |
| LOW | redis/cluster.py | 1847 | except Exception as e: | CODE |
| LOW | redis/cluster.py | 2227 | except Exception as e: | CODE |
| LOW | redis/cluster.py | 2636 | except Exception as exc: | CODE |
| LOW | redis/cluster.py | 3014 | except Exception as e: | CODE |
| LOW | redis/cluster.py | 3146 | except Exception as e: | CODE |
| LOW | redis/cluster.py | 3225 | except Exception as e: | CODE |
| LOW | redis/cluster.py | 3613 | except Exception: | CODE |
| LOW | redis/cluster.py | 3954 | except Exception as exc: | CODE |
| LOW | redis/cluster.py | 4397 | except Exception: | CODE |
| LOW | redis/cluster.py | 4608 | except Exception: | CODE |
| LOW | redis/cluster.py | 5697 | except Exception as e: | CODE |
| LOW | redis/sentinel.py | 331 | except Exception as e: | CODE |
| LOW | redis/maint_notifications.py | 812 | except Exception: | CODE |
| LOW | redis/auth/token_manager.py | 317 | except Exception as e: | CODE |
| LOW | redis/auth/token_manager.py | 327 | except Exception as e: | CODE |
| LOW | redis/auth/token_manager.py | 360 | except Exception as e: | CODE |
| LOW | redis/auth/token_manager.py | 370 | except Exception as e: | CODE |
| 198 more matches not shown… | ||||
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| MEDIUM | doctests/dt_vec_set.py | 263 | # Create a list of 300 arbitrary values. | COMMENT |
| MEDIUM | redis/keyspace_notifications.py | 1662 | # Create the PubSub instance with ignore_subscribe_messages=False | COMMENT |
| MEDIUM | redis/background.py | 228 | # Create a new event loop for health checks | COMMENT |
| MEDIUM | redis/connection.py | 4195 | # Create the connection first, then record metrics only on success | COMMENT |
| MEDIUM | redis/cluster.py | 2787 | # Create a redis node with a custom connection pool | COMMENT |
| MEDIUM | redis/cluster.py | 2964 | # Create a new Redis connection | COMMENT |
| MEDIUM | redis/commands/json/path.py | 2 | """This class represents a path in a JSON value.""" | STRING |
| MEDIUM⚡ | tests/test_search.py | 1242 | # Creating the index definition | COMMENT |
| MEDIUM⚡ | tests/test_search.py | 1252 | # Creating the index definition | COMMENT |
| MEDIUM | tests/test_search.py | 575 | # Creating the index definition and schema | COMMENT |
| MEDIUM | tests/test_search.py | 854 | # Creating a client with one index | COMMENT |
| MEDIUM | tests/test_search.py | 961 | # Creating the index definition with sortable and no_stem | COMMENT |
| MEDIUM | tests/test_search.py | 975 | # Creating the index definition and schema | COMMENT |
| MEDIUM | tests/test_search.py | 2431 | # Creating the index definition and schema | COMMENT |
| MEDIUM | tests/test_connection_pool.py | 1441 | # Create a connection that doesn't belong to this pool | COMMENT |
| MEDIUM | tests/test_cluster.py | 264 | # Create a subclass of RedisCluster that overrides __del__ | COMMENT |
| MEDIUM | tests/test_cluster.py | 811 | # Create a cluster with reading from replications | COMMENT |
| MEDIUM | tests/test_cluster.py | 5586 | # Create a cluster with reading from replications | COMMENT |
| MEDIUM | tests/test_cluster.py | 5757 | # Create a new event dispatcher and attach it to the cluster | COMMENT |
| MEDIUM | tests/test_cluster.py | 5970 | # Create a new event dispatcher and attach it to the cluster | COMMENT |
| MEDIUM⚡ | tests/test_cache.py | 3198 | # Create a cache with max_size=2 | COMMENT |
| MEDIUM | tests/test_keyspace_notifications.py | 380 | # Create a mock redis connection with pubsub | COMMENT |
| MEDIUM | tests/test_keyspace_notifications.py | 626 | # Create a new pubsub for the re-creation | COMMENT |
| MEDIUM | tests/test_max_connections_error.py | 78 | # Create a more complete mock cluster | COMMENT |
| MEDIUM⚡ | …int_notifications/test_maint_notifications_handling.py | 1042 | # Create a pool and Redis client with maintenance notifications | COMMENT |
| MEDIUM⚡ | …int_notifications/test_maint_notifications_handling.py | 1050 | # Create a migrating notification (not handled by pool handler) | COMMENT |
| MEDIUM | …int_notifications/test_maint_notifications_handling.py | 666 | # Create a pool and Redis client with maintenance notifications | COMMENT |
| MEDIUM | …int_notifications/test_maint_notifications_handling.py | 725 | # Create a Redis client with disabled maintenance notifications configuration | COMMENT |
| MEDIUM | …int_notifications/test_maint_notifications_handling.py | 740 | # Create a new enabled configuration and set up pool handler | COMMENT |
| MEDIUM | …int_notifications/test_maint_notifications_handling.py | 755 | # Create a new connection and validate it has full handlers | COMMENT |
| MEDIUM | …int_notifications/test_maint_notifications_handling.py | 930 | # Create a pool and Redis client with maintenance notifications | COMMENT |
| MEDIUM | …int_notifications/test_maint_notifications_handling.py | 1014 | # Create a pool and Redis client with maintenance notifications | COMMENT |
| MEDIUM | …int_notifications/test_maint_notifications_handling.py | 1094 | # Create a pool and Redis client with maintenance notifications | COMMENT |
| MEDIUM | …int_notifications/test_maint_notifications_handling.py | 1181 | # Create a pool and Redis client with disabled relaxed timeout config | COMMENT |
| MEDIUM | …int_notifications/test_maint_notifications_handling.py | 1292 | # Create a pool and Redis client with maintenance notifications | COMMENT |
| MEDIUM | …int_notifications/test_maint_notifications_handling.py | 1374 | # Create a pool and Redis client with maintenance notifications and pool handler | COMMENT |
| MEDIUM | …int_notifications/test_maint_notifications_handling.py | 1506 | # Create a pool and Redis client with maintenance notifications and pool handler | COMMENT |
| MEDIUM | …int_notifications/test_maint_notifications_handling.py | 1653 | # Create a pool and Redis client with maintenance notifications and pool handler | COMMENT |
| MEDIUM | …int_notifications/test_maint_notifications_handling.py | 1736 | # Create a pool and Redis client with maintenance notifications and pool handler | COMMENT |
| MEDIUM | …int_notifications/test_maint_notifications_handling.py | 1800 | # Create a pool and Redis client with maintenance notifications and pool handler | COMMENT |
| MEDIUM | tests/test_multidb/test_client.py | 653 | # Create a DatabaseConfig for the new database with highest weight | COMMENT |
| MEDIUM | tests/test_observability/test_recorder.py | 285 | # Create a mock connection pool | COMMENT |
| MEDIUM | tests/test_observability/test_recorder.py | 1601 | # Create a mock cache size callback | COMMENT |
| MEDIUM | …st_observability/test_metrics_connection_attributes.py | 126 | # Create a ConnectionPool with MockConnectionWithoutHostPort as connection_class | COMMENT |
| MEDIUM | tests/test_asyncio/test_search.py | 587 | # Creating the index definition and schema | COMMENT |
| MEDIUM | tests/test_asyncio/test_search.py | 888 | # Creating a client with one index | COMMENT |
| MEDIUM | tests/test_asyncio/test_search.py | 1047 | # Creating the index definition with sortable and no_stem | COMMENT |
| MEDIUM | tests/test_asyncio/test_search.py | 1063 | # Creating the index definition and schema | COMMENT |
| MEDIUM | tests/test_asyncio/test_search.py | 1780 | # Creating the index definition and schema | COMMENT |
| MEDIUM | tests/test_asyncio/test_commands.py | 6784 | # Create an empty stream by adding and deleting a message | COMMENT |
| MEDIUM⚡ | tests/test_asyncio/test_cluster.py | 4620 | # Create a mock connection marked for reconnect | COMMENT |
| MEDIUM⚡ | tests/test_asyncio/test_cluster.py | 4635 | # Create a mock connection NOT marked for reconnect | COMMENT |
| MEDIUM | tests/test_asyncio/test_cluster.py | 225 | # Create a subclass of RedisCluster that overrides __del__ | COMMENT |
| MEDIUM | tests/test_asyncio/test_cluster.py | 1025 | # Create a cluster with reading from replications | COMMENT |
| MEDIUM | tests/test_asyncio/test_cluster.py | 4810 | # Define a custom callback | COMMENT |
| MEDIUM | tests/test_asyncio/test_cluster.py | 5268 | # Create a cluster with reading from replications | COMMENT |
| MEDIUM | tests/test_asyncio/test_cluster.py | 5578 | # Create a new event dispatcher and attach it to the cluster | COMMENT |
| MEDIUM | tests/test_asyncio/test_cluster.py | 5778 | # Create a new event dispatcher and attach it to the cluster | COMMENT |
| MEDIUM | tests/test_asyncio/test_client.py | 42 | # Create a real Retry object that just executes the function directly | COMMENT |
| MEDIUM | tests/test_asyncio/test_client.py | 238 | # Create a real Retry object that just executes the function directly | COMMENT |
| 5 more matches not shown… | ||||
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| LOW | doctests/query_range.py | 4 | CODE | |
| LOW | doctests/query_geo.py | 4 | CODE | |
| LOW | doctests/query_ft.py | 4 | CODE | |
| LOW | doctests/query_ft.py | 7 | CODE | |
| LOW | doctests/query_ft.py | 7 | CODE | |
| LOW | doctests/query_ft.py | 9 | CODE | |
| LOW | redis/event.py | 16 | CODE | |
| LOW | redis/event.py | 16 | CODE | |
| LOW | redis/event.py | 16 | CODE | |
| LOW | redis/keyspace_notifications.py | 59 | CODE | |
| LOW | redis/client.py | 32 | CODE | |
| LOW | redis/client.py | 102 | CODE | |
| LOW | redis/__init__.py | 1 | CODE | |
| LOW | redis/__init__.py | 2 | CODE | |
| LOW | redis/__init__.py | 3 | CODE | |
| LOW | redis/__init__.py | 3 | CODE | |
| LOW | redis/__init__.py | 4 | CODE | |
| LOW | redis/__init__.py | 5 | CODE | |
| LOW | redis/__init__.py | 6 | CODE | |
| LOW | redis/__init__.py | 6 | CODE | |
| LOW | redis/__init__.py | 6 | CODE | |
| LOW | redis/__init__.py | 6 | CODE | |
| LOW | redis/__init__.py | 6 | CODE | |
| LOW | redis/__init__.py | 13 | CODE | |
| LOW | redis/__init__.py | 13 | CODE | |
| LOW | redis/__init__.py | 14 | CODE | |
| LOW | redis/__init__.py | 14 | CODE | |
| LOW | redis/__init__.py | 14 | CODE | |
| LOW | redis/__init__.py | 14 | CODE | |
| LOW | redis/__init__.py | 14 | CODE | |
| LOW | redis/__init__.py | 14 | CODE | |
| LOW | redis/__init__.py | 14 | CODE | |
| LOW | redis/__init__.py | 14 | CODE | |
| LOW | redis/__init__.py | 14 | CODE | |
| LOW | redis/__init__.py | 14 | CODE | |
| LOW | redis/__init__.py | 14 | CODE | |
| LOW | redis/__init__.py | 14 | CODE | |
| LOW | redis/__init__.py | 14 | CODE | |
| LOW | redis/__init__.py | 14 | CODE | |
| LOW | redis/__init__.py | 30 | CODE | |
| LOW | redis/__init__.py | 30 | CODE | |
| LOW | redis/__init__.py | 30 | CODE | |
| LOW | redis/__init__.py | 30 | CODE | |
| LOW | redis/__init__.py | 30 | CODE | |
| LOW | redis/__init__.py | 30 | CODE | |
| LOW | redis/__init__.py | 30 | CODE | |
| LOW | redis/__init__.py | 30 | CODE | |
| LOW | redis/__init__.py | 30 | CODE | |
| LOW | redis/__init__.py | 30 | CODE | |
| LOW | redis/__init__.py | 30 | CODE | |
| LOW | redis/__init__.py | 30 | CODE | |
| LOW | redis/__init__.py | 30 | CODE | |
| LOW | redis/__init__.py | 30 | CODE | |
| LOW | redis/__init__.py | 30 | CODE | |
| LOW | redis/__init__.py | 30 | CODE | |
| LOW | redis/__init__.py | 30 | CODE | |
| LOW | redis/__init__.py | 30 | CODE | |
| LOW | redis/__init__.py | 50 | CODE | |
| LOW | redis/__init__.py | 50 | CODE | |
| LOW | redis/__init__.py | 50 | CODE | |
| 123 more matches not shown… | ||||
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| LOW | redis/ocsp.py | 22 | CODE | |
| LOW | redis/keyspace_notifications.py | 1000 | CODE | |
| LOW | redis/keyspace_notifications.py | 1879 | CODE | |
| LOW | redis/keyspace_notifications.py | 2046 | CODE | |
| LOW | redis/keyspace_notifications.py | 2135 | CODE | |
| LOW | redis/client.py | 652 | CODE | |
| LOW | redis/client.py | 1674 | CODE | |
| LOW | redis/cache.py | 249 | CODE | |
| LOW | redis/cache.py | 298 | CODE | |
| LOW | redis/cache.py | 371 | CODE | |
| LOW | redis/connection.py | 3089 | CODE | |
| LOW | redis/connection.py | 1372 | CODE | |
| LOW | redis/connection.py | 1730 | CODE | |
| LOW | redis/connection.py | 1903 | CODE | |
| LOW | redis/connection.py | 2719 | CODE | |
| LOW | redis/connection.py | 3414 | CODE | |
| LOW | redis/connection.py | 3479 | CODE | |
| LOW | redis/connection.py | 3568 | CODE | |
| LOW | redis/connection.py | 3653 | CODE | |
| LOW | redis/connection.py | 3676 | CODE | |
| LOW | redis/connection.py | 3977 | CODE | |
| LOW | redis/connection.py | 4152 | CODE | |
| LOW | redis/connection.py | 4208 | CODE | |
| LOW | redis/connection.py | 4412 | CODE | |
| LOW | redis/connection.py | 4475 | CODE | |
| LOW | redis/connection.py | 4536 | CODE | |
| LOW | redis/connection.py | 4634 | CODE | |
| LOW | redis/utils.py | 362 | CODE | |
| LOW | redis/cluster.py | 1264 | CODE | |
| LOW | redis/cluster.py | 1759 | CODE | |
| LOW | redis/cluster.py | 1926 | CODE | |
| LOW | redis/cluster.py | 2342 | CODE | |
| LOW | redis/cluster.py | 2466 | CODE | |
| LOW | redis/cluster.py | 2586 | CODE | |
| LOW | redis/cluster.py | 2856 | CODE | |
| LOW | redis/cluster.py | 3178 | CODE | |
| LOW | redis/cluster.py | 3423 | CODE | |
| LOW | redis/cluster.py | 3627 | CODE | |
| LOW | redis/cluster.py | 3977 | CODE | |
| LOW | redis/cluster.py | 4071 | CODE | |
| LOW | redis/cluster.py | 4121 | CODE | |
| LOW | redis/cluster.py | 4150 | CODE | |
| LOW | redis/cluster.py | 4264 | CODE | |
| LOW | redis/cluster.py | 4367 | CODE | |
| LOW | redis/cluster.py | 4879 | CODE | |
| LOW | redis/cluster.py | 5187 | CODE | |
| LOW | redis/cluster.py | 5945 | CODE | |
| LOW | redis/maint_notifications.py | 897 | CODE | |
| LOW | redis/maint_notifications.py | 1249 | CODE | |
| LOW | redis/observability/recorder.py | 542 | CODE | |
| LOW | redis/commands/core.py | 385 | CODE | |
| LOW | redis/commands/core.py | 2959 | CODE | |
| LOW | redis/commands/core.py | 4406 | CODE | |
| LOW | redis/commands/cluster.py | 1506 | CODE | |
| LOW | redis/commands/cluster.py | 1594 | CODE | |
| LOW | redis/commands/helpers.py | 73 | CODE | |
| LOW | redis/commands/search/result.py | 15 | CODE | |
| LOW | redis/commands/search/commands.py | 517 | CODE | |
| LOW | redis/commands/search/commands.py | 713 | CODE | |
| LOW | redis/commands/search/commands.py | 851 | CODE | |
| 143 more matches not shown… | ||||
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| LOW | doctests/dt_stream.py | 41 | res4 = r.xrange("race:france", "1691765278160-0", "+", 2) | COMMENT |
| LOW | doctests/dt_stream.py | 61 | # [('1692629576966-0', | COMMENT |
| LOW | doctests/dt_stream.py | 101 | print(e) # >>> WRONGID | COMMENT |
| LOW | doctests/dt_stream.py | 121 | # {'rider': 'Prickett', 'speed': '29.7', 'position': '2', 'location_id': '1'} | COMMENT |
| LOW | doctests/dt_stream.py | 141 | # STEP_START xrange_step_1 | COMMENT |
| LOW | doctests/dt_stream.py | 161 | # >>> [ | COMMENT |
| LOW | doctests/dt_stream.py | 181 | # >>> [ | COMMENT |
| LOW | doctests/dt_stream.py | 261 | ) | COMMENT |
| LOW | doctests/dt_stream.py | 281 | res25 | COMMENT |
| LOW | doctests/dt_stream.py | 321 | # STEP_START xautoclaim_cursor | COMMENT |
| LOW | doctests/dt_stream.py | 341 | print( | COMMENT |
| LOW | doctests/query_geo.py | 61 | # REMOVE_START | COMMENT |
| LOW | doctests/query_ft.py | 41 | assert res.total == 2 | COMMENT |
| LOW | doctests/query_ft.py | 61 | # STEP_END | COMMENT |
| LOW | doctests/query_ft.py | 81 | # REMOVE_START | COMMENT |
| LOW | doctests/cmds_list.py | 121 | r.delete("mylist") | COMMENT |
| LOW | doctests/query_em.py | 101 | print(res.total) | COMMENT |
| LOW | doctests/dt_bitmap.py | 141 | # >>> 01011000 | COMMENT |
| LOW | doctests/search_quickstart.py | 221 | # STEP_START query_single_term | COMMENT |
| LOW | doctests/search_quickstart.py | 241 | # STEP_START query_single_term_limit_fields | COMMENT |
| LOW | doctests/search_quickstart.py | 261 | # ... | COMMENT |
| LOW | doctests/search_quickstart.py | 281 | # ... | COMMENT |
| LOW | doctests/search_quickstart.py | 301 | # 'json': '{ | COMMENT |
| LOW | doctests/search_quickstart.py | 321 | # >>> Result{1 total, docs: [ | COMMENT |
| LOW | doctests/search_quickstart.py | 341 | # >>> Result{1 total, docs: [ | COMMENT |
| LOW | doctests/search_quickstart.py | 361 | # >>> Result{1 total, docs: [ | COMMENT |
| LOW | doctests/search_quickstart.py | 381 | # >>> { | COMMENT |
| LOW | doctests/search_quickstart.py | 421 | # ['condition', 'new', 'count', '5']] | COMMENT |
| LOW | doctests/query_combined.py | 121 | # REMOVE_START | COMMENT |
| LOW | doctests/search_vss.py | 61 | res = pipeline.execute() | COMMENT |
| LOW | doctests/search_vss.py | 101 | # >>> [True, True, True, True, True, True, True, True, True, True, True] | COMMENT |
| LOW | doctests/search_vss.py | 161 | # >>> 11 documents indexed with 0 failures | COMMENT |
| LOW | doctests/search_vss.py | 181 | assert all( | COMMENT |
| LOW | doctests/search_vss.py | 201 | # 'brand': 'Peaknetic', | COMMENT |
| LOW | doctests/search_vss.py | 221 | # 'id': 'bikes:009', | COMMENT |
| LOW | util/wait-for-it.sh | 1 | #!/usr/bin/env bash | COMMENT |
| LOW | redis/himport.py | 201 | # Serializes mutations (prepare/discard/discard_all) so the revision bump and | COMMENT |
| LOW | redis/cache.py | 521 | COMMENT | |
| LOW | redis/connection.py | 1441 | # The tail of the handshake (optional CLIENT MAINT_NOTIFICATIONS, then | COMMENT |
| LOW | redis/connection.py | 2201 | # Cache nothing either: the reply belongs to a migrating | COMMENT |
| LOW | redis/connection.py | 2241 | # cache lock: it invokes application code and touches no cache state. Folding it | COMMENT |
| LOW | redis/connection.py | 2281 | if entry is not None and entry.status != CacheEntryStatus.IN_PROGRESS: | COMMENT |
| LOW | redis/connection.py | 2721 | # The server destroys a connection's tracking state on disconnect, so every entry | COMMENT |
| LOW | redis/connection.py | 4041 | pass | COMMENT |
| LOW | redis/connection.py | 4061 | # | COMMENT |
| LOW | redis/connection.py | 4461 | pass | COMMENT |
| LOW | redis/cluster.py | 1041 | } | COMMENT |
| LOW | redis/cluster.py | 1961 | redis_node = self.get_redis_connection(target_node) | COMMENT |
| LOW | redis/cluster.py | 2101 | # secrets or user data. | COMMENT |
| LOW | redis/cluster.py | 2501 | # through the one object the cluster client was configured with. | COMMENT |
| LOW | redis/cluster.py | 2621 | # Override the old primary with the new one | COMMENT |
| LOW | redis/cluster.py | 2881 | Name of the node that just failed and should be tried only after | COMMENT |
| LOW | redis/cluster.py | 3241 | # siblings hold undelivered messages. | COMMENT |
| LOW | redis/cluster.py | 3301 | self.node_pubsub_mapping = {} | COMMENT |
| LOW | redis/cluster.py | 3321 | # connection used by aclose / send_command / regular subscribe) so | COMMENT |
| LOW | redis/cluster.py | 3661 | except (ConnectionError, TimeoutError, OSError) as e: | COMMENT |
| LOW | redis/cluster.py | 3781 | ``PubSub`` itself has, and closing it would mean duplicating | COMMENT |
| LOW | redis/cluster.py | 3801 | # So wake up periodically and re-check the mapping rather than park | COMMENT |
| LOW | redis/cluster.py | 3821 | # unbounded wait leaves ``timeout`` at None for the read below. | COMMENT |
| LOW | redis/cluster.py | 4001 | # Use .get(): migration-driven cleanup in the sunsubscribe branch | COMMENT |
| 76 more matches not shown… | ||||
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| MEDIUM | redis/himport.py | 30 | # --------------------------------------------------------------------------- | COMMENT |
| MEDIUM | redis/himport.py | 32 | # --------------------------------------------------------------------------- | COMMENT |
| MEDIUM⚡ | redis/keyspace_notifications.py | 1765 | # ============================================================================= | COMMENT |
| MEDIUM⚡ | redis/keyspace_notifications.py | 1767 | # ============================================================================= | COMMENT |
| MEDIUM | redis/keyspace_notifications.py | 103 | # ============================================================================= | COMMENT |
| MEDIUM | redis/keyspace_notifications.py | 105 | # ============================================================================= | COMMENT |
| MEDIUM | redis/keyspace_notifications.py | 569 | # ============================================================================= | COMMENT |
| MEDIUM | redis/keyspace_notifications.py | 571 | # ============================================================================= | COMMENT |
| MEDIUM | redis/keyspace_notifications.py | 1052 | # ============================================================================= | COMMENT |
| MEDIUM | redis/keyspace_notifications.py | 1054 | # ============================================================================= | COMMENT |
| MEDIUM | redis/keyspace_notifications.py | 1623 | # ============================================================================= | COMMENT |
| MEDIUM | redis/keyspace_notifications.py | 1625 | # ============================================================================= | COMMENT |
| MEDIUM | redis/commands/metadata.py | 1283 | # ============================================================================= | COMMENT |
| MEDIUM | redis/commands/metadata.py | 1285 | # ============================================================================= | COMMENT |
| MEDIUM | redis/commands/policies.py | 42 | # ===================================================================================== | COMMENT |
| MEDIUM | redis/commands/policies.py | 59 | # ===================================================================================== | COMMENT |
| MEDIUM⚡ | redis/asyncio/keyspace_notifications.py | 75 | # ============================================================================= | COMMENT |
| MEDIUM⚡ | redis/asyncio/keyspace_notifications.py | 77 | # ============================================================================= | COMMENT |
| MEDIUM⚡ | redis/asyncio/keyspace_notifications.py | 604 | # ============================================================================= | COMMENT |
| MEDIUM⚡ | redis/asyncio/keyspace_notifications.py | 606 | # ============================================================================= | COMMENT |
| MEDIUM | redis/asyncio/keyspace_notifications.py | 219 | # ============================================================================= | COMMENT |
| MEDIUM | redis/asyncio/keyspace_notifications.py | 221 | # ============================================================================= | COMMENT |
| MEDIUM | redis/asyncio/keyspace_notifications.py | 481 | # ============================================================================= | COMMENT |
| MEDIUM | redis/asyncio/keyspace_notifications.py | 483 | # ============================================================================= | COMMENT |
| MEDIUM | redis/_parsers/commands.py | 418 | # ============================================================================= | COMMENT |
| MEDIUM | redis/_parsers/commands.py | 420 | # ============================================================================= | COMMENT |
| MEDIUM⚡ | tests/test_sentinel.py | 548 | # --------------------------------------------------------------------------- | COMMENT |
| MEDIUM⚡ | tests/test_sentinel.py | 550 | # --------------------------------------------------------------------------- | COMMENT |
| MEDIUM⚡ | tests/test_asyncio/test_sentinel.py | 483 | # --------------------------------------------------------------------------- | COMMENT |
| MEDIUM⚡ | tests/test_asyncio/test_sentinel.py | 485 | # --------------------------------------------------------------------------- | COMMENT |
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| LOW | redis/client.py | 282 | CODE | |
| LOW | redis/connection.py | 384 | CODE | |
| LOW | redis/connection.py | 1054 | CODE | |
| LOW | redis/connection.py | 2816 | CODE | |
| LOW | redis/connection.py | 3568 | CODE | |
| LOW | redis/cluster.py | 721 | CODE | |
| LOW | redis/cluster.py | 2466 | CODE | |
| LOW | redis/cluster.py | 4481 | CODE | |
| LOW | redis/observability/metrics.py | 479 | CODE | |
| LOW | redis/observability/config.py | 105 | CODE | |
| LOW | redis/http/http_client.py | 64 | CODE | |
| LOW | redis/commands/core.py | 346 | CODE | |
| LOW | redis/commands/core.py | 366 | CODE | |
| LOW | redis/commands/core.py | 385 | CODE | |
| LOW | redis/commands/core.py | 3475 | CODE | |
| LOW | redis/commands/core.py | 3493 | CODE | |
| LOW | redis/commands/core.py | 3510 | CODE | |
| LOW | redis/commands/core.py | 4368 | CODE | |
| LOW | redis/commands/core.py | 4387 | CODE | |
| LOW | redis/commands/core.py | 4406 | CODE | |
| LOW | redis/commands/core.py | 5441 | CODE | |
| LOW | redis/commands/core.py | 5455 | CODE | |
| LOW | redis/commands/core.py | 5468 | CODE | |
| LOW | redis/commands/core.py | 7016 | CODE | |
| LOW | redis/commands/core.py | 7032 | CODE | |
| LOW | redis/commands/core.py | 7047 | CODE | |
| LOW | redis/commands/core.py | 10099 | CODE | |
| LOW | redis/commands/core.py | 10115 | CODE | |
| LOW | redis/commands/core.py | 10130 | CODE | |
| LOW | redis/commands/core.py | 11687 | CODE | |
| LOW | redis/commands/core.py | 11705 | CODE | |
| LOW | redis/commands/core.py | 11722 | CODE | |
| LOW | redis/commands/core.py | 11786 | CODE | |
| LOW | redis/commands/core.py | 11803 | CODE | |
| LOW | redis/commands/core.py | 11819 | CODE | |
| LOW | redis/commands/core.py | 11905 | CODE | |
| LOW | redis/commands/core.py | 11924 | CODE | |
| LOW | redis/commands/core.py | 11942 | CODE | |
| LOW | redis/commands/core.py | 12024 | CODE | |
| LOW | redis/commands/core.py | 12042 | CODE | |
| LOW | redis/commands/core.py | 12059 | CODE | |
| LOW | redis/commands/timeseries/commands.py | 236 | CODE | |
| LOW | redis/commands/timeseries/commands.py | 252 | CODE | |
| LOW | redis/commands/timeseries/commands.py | 267 | CODE | |
| LOW | redis/commands/timeseries/commands.py | 396 | CODE | |
| LOW | redis/commands/timeseries/commands.py | 411 | CODE | |
| LOW | redis/commands/timeseries/commands.py | 425 | CODE | |
| LOW | redis/commands/timeseries/commands.py | 518 | CODE | |
| LOW | redis/commands/timeseries/commands.py | 533 | CODE | |
| LOW | redis/commands/timeseries/commands.py | 547 | CODE | |
| LOW | redis/commands/timeseries/commands.py | 774 | CODE | |
| LOW | redis/commands/timeseries/commands.py | 792 | CODE | |
| LOW | redis/commands/timeseries/commands.py | 809 | CODE | |
| LOW | redis/commands/timeseries/commands.py | 887 | CODE | |
| LOW | redis/commands/timeseries/commands.py | 905 | CODE | |
| LOW | redis/commands/timeseries/commands.py | 922 | CODE | |
| LOW | redis/commands/timeseries/commands.py | 1122 | CODE | |
| LOW | redis/commands/timeseries/commands.py | 1140 | CODE | |
| LOW | redis/commands/timeseries/commands.py | 1157 | CODE | |
| LOW | redis/commands/timeseries/commands.py | 1258 | CODE | |
| 33 more matches not shown… | ||||
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| LOW | redis/crc.py | 9 | __all__ = ["key_slot", "REDIS_CLUSTER_HASH_SLOTS"] | CODE |
| LOW | redis/credentials.py | 5 | logger = logging.getLogger(__name__) | CODE |
| LOW | redis/keyspace_notifications.py | 80 | logger = logging.getLogger(__name__) | CODE |
| LOW | redis/client.py | 113 | logger = logging.getLogger(__name__) | CODE |
| LOW | redis/client.py | 609 | def set_retry(self, retry: Retry) -> None: | CODE |
| LOW | redis/client.py | 613 | def set_response_callback(self, command: str, callback: Callable) -> None: | CODE |
| LOW | redis/cache.py | 663 | def set_metadata_resolver(self, metadata_resolver: MetadataResolver) -> None: | CODE |
| LOW | redis/__init__.py | 72 | __all__ = [ | CODE |
| LOW | redis/retry.py | 55 | def update_supported_errors(self, specified_errors: Iterable[Type[E]]) -> None: | CODE |
| LOW | redis/retry.py | 69 | def update_retries(self, value: int) -> None: | CODE |
| LOW | redis/connection.py | 144 | logger = logging.getLogger(__name__) | CODE |
| LOW | redis/connection.py | 4298 | def set_retry(self, retry: Retry) -> None: | CODE |
| LOW | redis/cluster.py | 122 | logger = logging.getLogger(__name__) | CODE |
| LOW | redis/cluster.py | 1299 | def set_retry(self, retry: Retry) -> None: | CODE |
| LOW | redis/lock.py | 11 | logger = logging.getLogger(__name__) | CODE |
| LOW | redis/maint_notifications.py | 37 | logger = logging.getLogger(__name__) | CODE |
| LOW | redis/auth/token_manager.py | 12 | logger = logging.getLogger(__name__) | CODE |
| LOW | redis/multidb/client.py | 39 | logger = logging.getLogger(__name__) | CODE |
| LOW | redis/multidb/client.py | 156 | def set_active_database(self, database: SyncDatabase) -> None: | CODE |
| LOW | redis/multidb/failover.py | 23 | def set_databases(self, databases: Databases) -> None: | CODE |
| LOW | redis/multidb/failover.py | 68 | def set_databases(self, databases: Databases) -> None: | CODE |
| LOW | redis/multidb/failure_detector.py | 26 | def set_command_executor(self, command_executor) -> None: | CODE |
| LOW | redis/multidb/failure_detector.py | 78 | def set_command_executor(self, command_executor) -> None: | CODE |
| LOW | redis/observability/metrics.py | 33 | logger = logging.getLogger(__name__) | CODE |
| LOW | redis/observability/__init__.py | 20 | __all__ = [ | CODE |
| LOW | redis/observability/providers.py | 28 | logger = logging.getLogger(__name__) | CODE |
| LOW | redis/http/http_client.py | 14 | __all__ = ["HttpClient", "HttpResponse", "HttpError", "DEFAULT_TIMEOUT"] | CODE |
| LOW | redis/commands/metadata.py | 42 | __all__ = [ | CODE |
| LOW | redis/commands/__init__.py | 7 | __all__ = [ | CODE |
| LOW | redis/commands/policies.py | 25 | __all__ = [ | CODE |
| LOW⚡ | redis/asyncio/keyspace_notifications.py | 68 | logger = logging.getLogger(__name__) | CODE |
| LOW | redis/asyncio/client.py | 128 | logger = logging.getLogger(__name__) | CODE |
| LOW | redis/asyncio/client.py | 591 | def set_retry(self, retry: Retry) -> None: | CODE |
| LOW | redis/asyncio/__init__.py | 41 | __all__ = [ | CODE |
| LOW | redis/asyncio/connection.py | 141 | logger = logging.getLogger(__name__) | CODE |
| LOW | redis/asyncio/connection.py | 961 | def set_parser(self, parser_class: Type[BaseParser]) -> None: | CODE |
| LOW | redis/asyncio/connection.py | 2147 | def set_retry(self, retry: "Retry") -> None: | CODE |
| LOW | redis/asyncio/connection.py | 2719 | def update_connection_kwargs(self, **kwargs: Any) -> None: | CODE |
| LOW | redis/asyncio/connection.py | 2891 | def _set_in_maintenance(self, in_maintenance: bool) -> None: | CODE |
| LOW | redis/asyncio/connection.py | 3318 | def set_retry(self, retry: "Retry") -> None: | CODE |
| LOW | redis/asyncio/connection.py | 3422 | def set_in_maintenance(self, in_maintenance: bool) -> None: | CODE |
| LOW⚡ | redis/asyncio/cluster.py | 1120 | def set_retry(self, retry: Retry) -> None: | CODE |
| LOW⚡ | redis/asyncio/cluster.py | 1123 | def set_response_callback(self, command: str, callback: ResponseCallbackT) -> None: | CODE |
| LOW | redis/asyncio/cluster.py | 163 | logger = logging.getLogger(__name__) | CODE |
| LOW | redis/asyncio/cluster.py | 917 | def set_default_node(self, node: "ClusterNode") -> None: | CODE |
| LOW | redis/asyncio/cluster.py | 2045 | def update_active_connections_for_reconnect(self) -> None: | CODE |
| LOW | redis/asyncio/cluster.py | 2821 | def set_response_callback(self, command: str, callback: ResponseCallbackT) -> None: | CODE |
| LOW | redis/asyncio/cluster.py | 3895 | def set_retry(self, retry: "Retry") -> None: | CODE |
| LOW | redis/asyncio/lock.py | 14 | logger = logging.getLogger(__name__) | CODE |
| LOW | redis/asyncio/maint_notifications.py | 34 | logger = logging.getLogger(__name__) | CODE |
| LOW | redis/asyncio/multidb/client.py | 32 | logger = logging.getLogger(__name__) | CODE |
| LOW | redis/asyncio/multidb/client.py | 155 | async def set_active_database(self, database: AsyncDatabase) -> None: | CODE |
| LOW | redis/asyncio/multidb/failover.py | 23 | def set_databases(self, databases: Databases) -> None: | CODE |
| LOW | redis/asyncio/multidb/failover.py | 68 | def set_databases(self, databases: Databases) -> None: | CODE |
| LOW | redis/asyncio/multidb/healthcheck.py | 86 | logger = logging.getLogger(__name__) | CODE |
| LOW | redis/asyncio/multidb/failure_detector.py | 18 | def set_command_executor(self, command_executor) -> None: | CODE |
| LOW | redis/asyncio/multidb/failure_detector.py | 37 | def set_command_executor(self, command_executor) -> None: | CODE |
| LOW | redis/_parsers/__init__.py | 14 | __all__ = [ | CODE |
| LOW | redis/_parsers/commands.py | 36 | __all__ = [ | CODE |
| LOW | redis/_parsers/base.py | 111 | logger = logging.getLogger(__name__) | CODE |
| 2 more matches not shown… | ||||
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| LOW | util/wait-for-it.sh | 172 | # Check if busybox timeout uses -t flag | COMMENT |
| LOW | redis/keyspace_notifications.py | 2013 | # Check if we've exceeded the total timeout | COMMENT |
| LOW | redis/cluster.py | 3119 | # Check if the slots are not fully covered | COMMENT |
| LOW | redis/sentinel.py | 285 | # Check if command is supposed to return the original | COMMENT |
| LOW | redis/sentinel.py | 346 | # Check if our sentinel doesn't see other nodes | COMMENT |
| LOW | redis/maint_notifications.py | 719 | # Check if the host is an IP address | COMMENT |
| LOW | redis/maint_notifications.py | 962 | # Set state to MOVING | COMMENT |
| LOW | redis/observability/metrics.py | 512 | # Check if this command should be tracked | COMMENT |
| LOW | redis/observability/recorder.py | 476 | # Check if channel names should be hidden | COMMENT |
| LOW | redis/observability/recorder.py | 520 | # Check if stream names should be hidden | COMMENT |
| LOW | redis/observability/recorder.py | 571 | # Check if stream names should be hidden | COMMENT |
| LOW | redis/observability/providers.py | 88 | # Check if it's a real provider (not NoOp) | COMMENT |
| LOW | redis/asyncio/cluster.py | 2661 | # Check if the slots are not fully covered | COMMENT |
| LOW | redis/asyncio/cluster.py | 3287 | # Check if it has a command that failed with a relevant | COMMENT |
| LOW | redis/asyncio/sentinel.py | 242 | # Check if command is supposed to return the original | COMMENT |
| LOW | redis/asyncio/sentinel.py | 306 | # Check if our sentinel doesn't see other nodes | COMMENT |
| LOW | redis/asyncio/observability/recorder.py | 437 | # Check if channel names should be hidden | COMMENT |
| LOW | redis/asyncio/observability/recorder.py | 474 | # Check if stream names should be hidden | COMMENT |
| LOW | redis/asyncio/observability/recorder.py | 514 | # Check if stream names should be hidden | COMMENT |
| LOW | redis/_parsers/commands.py | 545 | # Check if this is a policy string | COMMENT |
| LOW⚡ | tests/test_connect.py | 125 | # Check if the base class defaults were taken over. | COMMENT |
| LOW⚡ | tests/test_connect.py | 128 | # Verify if the timeout and the path is set correctly. | COMMENT |
| LOW | tests/test_vsets.py | 783 | # Set attributes to None | COMMENT |
| LOW | tests/test_vsets.py | 789 | # Set attributes to empty dict | COMMENT |
| LOW | tests/test_vsets.py | 801 | # Set attributes to unexisting element | COMMENT |
| LOW | tests/test_vsets.py | 807 | # Set attributes to unexisting vset | COMMENT |
| LOW | tests/test_cluster.py | 6160 | # Check if any has error.type (the one from _raise_first_error) | COMMENT |
| LOW | …int_notifications/test_maint_notifications_handling.py | 225 | # Check if this is a key that should trigger a push message | COMMENT |
| LOW | …int_notifications/test_maint_notifications_handling.py | 412 | # Check if any of the sockets in rlist have data available | COMMENT |
| LOW | tests/test_parsers/test_errors.py | 139 | # Check if any of the sockets in rlist have data available | COMMENT |
| LOW | tests/test_multidb/conftest.py | 36 | # Check if the test is marked to skip connection mocking | COMMENT |
| LOW | tests/test_asyncio/test_vsets.py | 785 | # Set attributes to None | COMMENT |
| LOW | tests/test_asyncio/test_vsets.py | 791 | # Set attributes to empty dict | COMMENT |
| LOW | tests/test_asyncio/test_vsets.py | 803 | # Set attributes to unexisting element | COMMENT |
| LOW | tests/test_asyncio/test_vsets.py | 809 | # Set attributes to unexisting vset | COMMENT |
| LOW | tests/test_asyncio/test_connection_pool.py | 273 | # Check if the pool's lock is held during connection | COMMENT |
| LOW | tests/test_asyncio/test_multidb/conftest.py | 35 | # Check if the test is marked to skip connection mocking | COMMENT |
| LOW | benchmarks/otel_benchmark.py | 1235 | # Output results | COMMENT |
| LOW | benchmarks/otel_benchmark.py | 1264 | # Output results | COMMENT |
| LOW | .github/actions/run-tests/action.yml | 99 | # Check if REDIS_VERSION is in the custom map | COMMENT |
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| HIGH | redis/keyspace_notifications.py | 696 | Create a keyevent pattern for subscribing to all event types. This is equivalent to KeyeventChannel("* | STRING |
| HIGH | redis/keyspace_notifications.py | 962 | Determine the type of a Redis keyspace notification channel. Args: channel: The channel name to check | STRING |
| HIGH | redis/keyspace_notifications.py | 1501 | Start a background thread that polls for notifications and triggers handlers. This method spawns a thr | STRING |
| HIGH | redis/background.py | 118 | Runs a coroutine synchronously and returns its result. Uses the shared health check event loop to ensur | STRING |
| HIGH | redis/commands/helpers.py | 188 | Checks that at most one of the values in the iterable is truthy. Args: iterable: An iterable of values | STRING |
| HIGH | redis/commands/json/commands.py | 29 | Convert a string or FPHAType instance to a validated FPHAType. Args: value: An ``FPHAType`` member | STRING |
| HIGH | redis/_parsers/commands.py | 446 | Determines whether a given command or subcommand is considered "keyless". A keyless command does not operate o | STRING |
| HIGH | redis/_parsers/commands.py | 571 | Traverse a parsed ``COMMAND`` reply, resolving the policies of every command, and build one record per command | STRING |
| HIGH | redis/_parsers/commands.py | 677 | Retrieve and process the command policies for all commands and subcommands. This function traverses through co | STRING |
| HIGH | redis/_parsers/commands.py | 789 | Retrieve and process the metadata records cache for all commands and subcommands. This function traverses thro | STRING |
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| LOW⚡ | …int_notifications/test_maint_notifications_handling.py | 1846 | # Step 2: Run command that will receive and handle MIGRATED notification | COMMENT |
| LOW⚡ | …int_notifications/test_maint_notifications_handling.py | 1855 | # Step 3: Validate that MIGRATED notification was processed but MOVING settings remain | COMMENT |
| LOW | …int_notifications/test_maint_notifications_handling.py | 1114 | # Step 4: Validate timeout was updated to relaxed value after MIGRATING | COMMENT |
| LOW | …int_notifications/test_maint_notifications_handling.py | 1135 | # Step 6: Validate socket timeout is still relaxed during commands 3-4 | COMMENT |
| LOW | …int_notifications/test_maint_notifications_handling.py | 1150 | # Step 8: Validate socket timeout is reversed back to original after MIGRATED | COMMENT |
| LOW | …int_notifications/test_maint_notifications_handling.py | 1312 | # Step 4: Validate timeout was updated to relaxed value after MIGRATING | COMMENT |
| LOW | …int_notifications/test_maint_notifications_handling.py | 1333 | # Step 6: Validate socket timeout is still relaxed during commands 3-4 | COMMENT |
| LOW | …int_notifications/test_maint_notifications_handling.py | 1348 | # Step 8: Validate socket timeout is reversed back to original after FAILED_OVER | COMMENT |
| LOW | …int_notifications/test_maint_notifications_handling.py | 1822 | # Step 1: Run command that will receive and handle MOVING notification | COMMENT |
| LOW | …int_notifications/test_maint_notifications_handling.py | 1872 | # Step 4: Create new connections after MIGRATED to verify they still use MOVING settings | COMMENT |
| LOW⚡ | tests/test_observability/test_recorder.py | 1495 | # Step 1: IDLE +1 (creation) | COMMENT |
| LOW⚡ | tests/test_observability/test_recorder.py | 1499 | # Step 2: IDLE -1, USED +1 (acquire) | COMMENT |
| LOW⚡ | tests/test_observability/test_recorder.py | 1505 | # Step 3: USED -1, IDLE +1 (release) | COMMENT |
| LOW⚡ | tests/test_observability/test_recorder.py | 1511 | # Step 4: IDLE -1 (disconnect) | COMMENT |
| LOW⚡ | tests/test_asyncio/test_observability/test_recorder.py | 1113 | # Step 1: IDLE +1 (creation) | COMMENT |
| LOW⚡ | tests/test_asyncio/test_observability/test_recorder.py | 1117 | # Step 2: IDLE -1, USED +1 (acquire) | COMMENT |
| LOW⚡ | tests/test_asyncio/test_observability/test_recorder.py | 1123 | # Step 3: USED -1, IDLE +1 (release) | COMMENT |
| LOW⚡ | tests/test_asyncio/test_observability/test_recorder.py | 1129 | # Step 4: IDLE -1 (disconnect) | COMMENT |
| LOW | .agents/sync_async_type_hints_overload_guide.md | 19 | ### Step 1: Check Official Redis Documentation | COMMENT |
| LOW | .agents/sync_async_type_hints_overload_guide.md | 26 | ### Step 2: Check Local Response Callbacks | COMMENT |
| LOW | .agents/sync_async_type_hints_overload_guide.md | 51 | ### Step 3: Check Test Assertions | COMMENT |
| LOW⚡ | .agents/sync_async_type_hints_overload_guide.md | 75 | ### Step 1: Add `@overload` Signatures | COMMENT |
| LOW⚡ | .agents/sync_async_type_hints_overload_guide.md | 82 | ### Step 2: Mirror the Input Signature | COMMENT |
| LOW⚡ | .agents/sync_async_type_hints_overload_guide.md | 88 | ### Step 3: Keep Original Implementation | COMMENT |
| LOW⚡ | .agents/sync_async_type_hints_overload_guide.md | 96 | ### Step 4: Run Type Checker | COMMENT |
| LOW | .agents/sync_async_type_hints_overload_guide.md | 114 | ## Step 1: Research the Command | COMMENT |
| LOW | .agents/sync_async_type_hints_overload_guide.md | 121 | ## Step 2: Define the Function Signature | COMMENT |
| LOW | .agents/sync_async_type_hints_overload_guide.md | 140 | ## Step 3: Implement the Overload Pattern | COMMENT |
| LOW | .agents/sync_async_type_hints_overload_guide.md | 177 | ## Step 4: Register Response Callback (if needed) | COMMENT |
| LOW | .agents/sync_async_type_hints_overload_guide.md | 191 | ## Step 5: Add Tests | COMMENT |
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| LOW | redis/cluster.py | 1690 | # so we can just return a random slot | COMMENT |
| LOW | redis/cluster.py | 1698 | # can be run on any node so we can just return a random slot | COMMENT |
| LOW | redis/maint_notifications.py | 908 | # just return | COMMENT |
| LOW | redis/asyncio/cluster.py | 1242 | # so we can just return a random slot | COMMENT |
| LOW | redis/asyncio/cluster.py | 1249 | # can be run on any node so we can just return a random slot | COMMENT |
| LOW | redis/asyncio/maint_notifications.py | 137 | # just return | COMMENT |
| LOW | redis/_parsers/hiredis.py | 219 | # blocking error, simply return False indicating that | COMMENT |
| LOW | redis/_parsers/resp3.py | 86 | # necessary, so just return the exception instance here. | COMMENT |
| LOW | redis/_parsers/resp3.py | 228 | # necessary, so just return the exception instance here. | COMMENT |
| LOW | redis/_parsers/socket.py | 115 | # blocking error, simply return False indicating that | COMMENT |
| LOW | redis/_parsers/helpers.py | 341 | # if for some reason the value can't be coerced, just use | COMMENT |
| LOW | redis/_parsers/resp2.py | 49 | # necessary, so just return the exception instance here. | COMMENT |
| LOW | redis/_parsers/resp2.py | 113 | # necessary, so just return the exception instance here. | COMMENT |
| MEDIUM | tests/test_search.py | 939 | # so pin only that here and let the harness supply the protocol x | COMMENT |
| LOW⚡ | tests/test_ssl.py | 408 | # Don't actually wrap the socket, just return the original socket | COMMENT |
| MEDIUM | tests/test_asyncio/test_search.py | 979 | # so pin only that here and let the harness supply the protocol x | COMMENT |
| MEDIUM | tests/test_asyncio/test_cwe_404.py | 108 | # ignore errors on close pertaining to no event loop. Don't want | COMMENT |
| MEDIUM | benchmarks/otel_benchmark.py | 883 | # Create comprehensive generator with baseline redis module | COMMENT |
| MEDIUM | benchmarks/otel_benchmark.py | 939 | # Create async comprehensive generator with baseline redis module | COMMENT |
| MEDIUM | benchmarks/base.py | 16 | # eventually make this more robust and take optional args from | COMMENT |
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| LOW | redis/multidb/config.py | 74 | grace_period (float): Grace period after which we need to check if the circuit could be closed again. | STRING |
| LOW | redis/asyncio/multidb/config.py | 77 | grace_period (float): Grace period after which we need to check if the circuit could be closed again. | STRING |
| LOW⚡ | …int_notifications/test_maint_notifications_handling.py | 1846 | # Step 2: Run command that will receive and handle MIGRATED notification | COMMENT |
| LOW⚡ | …int_notifications/test_maint_notifications_handling.py | 1855 | # Step 3: Validate that MIGRATED notification was processed but MOVING settings remain | COMMENT |
| LOW | …int_notifications/test_maint_notifications_handling.py | 1114 | # Step 4: Validate timeout was updated to relaxed value after MIGRATING | COMMENT |
| LOW | …int_notifications/test_maint_notifications_handling.py | 1135 | # Step 6: Validate socket timeout is still relaxed during commands 3-4 | COMMENT |
| LOW | …int_notifications/test_maint_notifications_handling.py | 1150 | # Step 8: Validate socket timeout is reversed back to original after MIGRATED | COMMENT |
| LOW | …int_notifications/test_maint_notifications_handling.py | 1312 | # Step 4: Validate timeout was updated to relaxed value after MIGRATING | COMMENT |
| LOW | …int_notifications/test_maint_notifications_handling.py | 1333 | # Step 6: Validate socket timeout is still relaxed during commands 3-4 | COMMENT |
| LOW | …int_notifications/test_maint_notifications_handling.py | 1348 | # Step 8: Validate socket timeout is reversed back to original after FAILED_OVER | COMMENT |
| LOW | …int_notifications/test_maint_notifications_handling.py | 1822 | # Step 1: Run command that will receive and handle MOVING notification | COMMENT |
| LOW | …int_notifications/test_maint_notifications_handling.py | 1872 | # Step 4: Create new connections after MIGRATED to verify they still use MOVING settings | COMMENT |
| LOW⚡ | tests/test_observability/test_recorder.py | 1495 | # Step 1: IDLE +1 (creation) | COMMENT |
| LOW⚡ | tests/test_observability/test_recorder.py | 1499 | # Step 2: IDLE -1, USED +1 (acquire) | COMMENT |
| LOW⚡ | tests/test_observability/test_recorder.py | 1505 | # Step 3: USED -1, IDLE +1 (release) | COMMENT |
| LOW⚡ | tests/test_observability/test_recorder.py | 1511 | # Step 4: IDLE -1 (disconnect) | COMMENT |
| LOW⚡ | tests/test_asyncio/test_observability/test_recorder.py | 1113 | # Step 1: IDLE +1 (creation) | COMMENT |
| LOW⚡ | tests/test_asyncio/test_observability/test_recorder.py | 1117 | # Step 2: IDLE -1, USED +1 (acquire) | COMMENT |
| LOW⚡ | tests/test_asyncio/test_observability/test_recorder.py | 1123 | # Step 3: USED -1, IDLE +1 (release) | COMMENT |
| LOW⚡ | tests/test_asyncio/test_observability/test_recorder.py | 1129 | # Step 4: IDLE -1 (disconnect) | COMMENT |
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| MEDIUM | redis/client.py | 990 | # HIMPORT orchestration. The registry lives on the shared HImportRegistry; the | COMMENT |
| MEDIUM | redis/cluster.py | 1585 | # HIMPORT orchestration. PREPARE/DISCARD/DISCARDALL mutate the one shared | COMMENT |
| MEDIUM | redis/cluster.py | 3253 | # Reconciliation is otherwise purely event-driven, and a node that has left the | COMMENT |
| MEDIUM | redis/commands/core.py | 10844 | # DISCARD / DISCARDALL wire mappings; the client-side orchestration around them | COMMENT |
| MEDIUM | redis/asyncio/client.py | 1044 | # HIMPORT orchestration (async mirror of redis.client.Redis). See | COMMENT |
| MEDIUM | redis/asyncio/cluster.py | 1078 | # HIMPORT orchestration (async mirror of redis.cluster.RedisCluster). The one | COMMENT |
| MEDIUM | redis/asyncio/cluster.py | 3960 | # Reconciliation is otherwise purely event-driven, and a node that has left the | COMMENT |
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| CRITICAL | redis/multidb/event.py | 74 | for node in event.old_database.client.nodes_manager.nodes_cache.values(): | CODE |
| CRITICAL | tests/test_asyncio/test_scenario/conftest.py | 409 | await client.command_executor.active_database.client.connection_pool.disconnect() | CODE |
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| HIGH | doctests/dt_json.py | 72 | print(res12) # >>> ['["Deimos", { "crashes": 0 }, null]'] | CODE |
| HIGH | …int_notifications/test_maint_notifications_handling.py | 255 | # Format: >4\r\n$6\r\nMOVING\r\n:1\r\n:1\r\n+null\r\n (4 elements: MOVING, id, ttl, null) | COMMENT |
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| LOW | redis/client.py | 1913 | # make sure to reset the connection state in the event that we were | COMMENT |
| LOW | redis/cluster.py | 5948 | # make sure to reset the connection state in the event that we were | COMMENT |
| LOW | redis/asyncio/client.py | 1903 | # make sure to reset the connection state in the event that we were | COMMENT |
| LOW | redis/asyncio/cluster.py | 3753 | # make sure to reset the connection state in the event that we | COMMENT |
| LOW | redis/_parsers/socket.py | 152 | length = length + 2 # make sure to read the \r\n terminator | CODE |
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| LOW | tests/test_search.py | 1004 | client.hset("doc2", mapping={"f1": "very important", "f2": "lorem ipsum"}) | CODE |
| LOW | tests/test_asyncio/test_search.py | 1093 | "doc2", mapping={"f1": "very important", "f2": "lorem ipsum"} | CODE |
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| LOW | tests/test_commands.py | 8705 | def helper(): | CODE |
| LOW | tests/test_asyncio/test_commands.py | 6594 | async def helper(): | CODE |
| LOW | docs/examples/opentelemetry/main.py | 31 | def handle_request(client): | CODE |