Redis Python client
This report presents the forensic synthetic code analysis of redis/redis-py, a Python project with 13,589 GitHub stars. SynthScan v2.0 examined 188,088 lines of code across 371 source files, recording 3994 pattern matches distributed across 20 syntactic categories. The overall adjusted score of 21.3 places this repository in the Moderate AI signal band.
The scanner applied 160+ deterministic lexical heuristics, multi-line block detectors, abstract syntax tree depth profilers, and a cross-file Jaccard similarity matrix to construct a statistically normalised synthetic code estimate. All matches are individually weighted by severity coefficient and contextual multiplier before summation, and the resulting headline score is temporally discounted to account for the repository's development history relative to the commercial emergence of large language model coding tooling (November 2022 onward).
This chart maps the temporal evolution of the adjusted synthetic code score across successive scan runs. An upward trajectory indicates ongoing incorporation of AI-generated code or expanding LLM-assisted scaffolding; a stable or declining trajectory may reflect active human refactoring, code removal, or the adoption of stricter authorship policies. The dashed secondary line (right axis) independently tracks total raw pattern hit count, which can diverge from the normalised score when codebase size changes significantly between scans.
Classifies detected patterns by their diagnostic confidence and structural impact. CRITICAL patterns (coefficient 10) represent definitive synthetic signatures — hallucinated imports, explicit LLM attribution metadata — virtually never produced by human authors. HIGH (5) indicates strong structural tells such as cross-file repetition or cross-linguistic idioms. MEDIUM (2) covers recognisable conversational padding and AI-specific vocabulary. LOW (1) captures subtle indicators like tautological comments and generic boilerplate that require density to carry independent signal.
This horizontal bar chart decomposes the repository's raw synthetic code score by top-level directory, allowing you to pinpoint precisely which modules or components carry the highest AI authorship density. Directories with disproportionately high scores relative to their size warrant targeted manual review: concentrated AI signatures often trace back to mass-generated configuration layers, auto-ported test suites, LLM-scaffolded boilerplate classes, or entire subsystems authored under heavy copilot assistance. Use this view to prioritise your human code-review effort.
The scanner identified 3994 distinct pattern matches across 20 syntactic categories. Each entry below represents a discrete location in the source code where the engine recorded a statistically significant AI authorship indicator. 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 diagnostic confidence level (CRITICAL / HIGH / MEDIUM / LOW). The Context column identifies whether the match occurred inside executable code, an inline comment, or a string literal — comment-context matches receive a ×1.5 weight because LLMs systematically over-annotate. The ⚡ bolt icon marks clustered matches: three or more patterns within a 10-line window, each receiving an additional ×1.5 density multiplier as dense clusters constitute far stronger evidence of synthetic authorship than isolated hits.
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| LOW | tasks.py | 165 | def multidb_integration_tests(c, uvloop=False, profile=False): | CODE |
| LOW | redis/ocsp.py | 243 | def components_from_direct_connection(self): | CODE |
| LOW | redis/keyspace_notifications.py | 223 | def _parse_length_prefixed_subkeys(s: str) -> list[str]: | CODE |
| LOW | redis/keyspace_notifications.py | 1095 | def subscribe_subkeyspaceitem( | CODE |
| LOW | redis/keyspace_notifications.py | 1106 | def subscribe_subkeyspaceevent( | CODE |
| LOW | redis/keyspace_notifications.py | 1410 | def subscribe_subkeyspaceitem( | CODE |
| LOW | redis/keyspace_notifications.py | 1432 | def subscribe_subkeyspaceevent( | CODE |
| LOW | redis/keyspace_notifications.py | 1911 | def _unsubscribe_from_all_nodes(self, channels: list[str], use_punsubscribe: bool): | CODE |
| LOW | redis/keyspace_notifications.py | 2082 | def _refresh_subscriptions_on_error(self): | CODE |
| LOW | redis/client.py | 109 | def add_debug_log_for_operation_failure(connection: "AbstractConnection"): | CODE |
| LOW | redis/client.py | 776 | def _send_command_parse_response(self, conn, command_name, *args, **options): | CODE |
| LOW | redis/client.py | 1075 | def _resubscribe_shard_channels(self) -> None: | CODE |
| LOW | redis/client.py | 1121 | def clean_health_check_responses(self) -> None: | CODE |
| LOW | redis/client.py | 1787 | def _disconnect_reset_raise_on_watching( | CODE |
| LOW | redis/client.py | 1826 | def immediate_execute_command(self, *args, **options): | CODE |
| LOW | redis/client.py | 2022 | 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 | 726 | def add_maint_start_notification(self, id: int): | CODE |
| LOW⚡ | redis/connection.py | 729 | def get_processed_start_notifications(self) -> set: | CODE |
| LOW⚡ | redis/connection.py | 732 | def add_skipped_end_notification(self, id: int): | CODE |
| LOW⚡ | redis/connection.py | 735 | def get_skipped_end_notifications(self) -> set: | CODE |
| LOW⚡ | redis/connection.py | 738 | def reset_received_notifications(self): | CODE |
| LOW⚡ | redis/connection.py | 975 | def _construct_command_packer(self, packer): | CODE |
| LOW⚡ | redis/connection.py | 983 | def register_connect_callback(self, callback): | CODE |
| LOW⚡ | redis/connection.py | 1659 | def register_connect_callback(self, callback): | CODE |
| LOW⚡ | redis/connection.py | 1662 | def deregister_connect_callback(self, callback): | CODE |
| LOW⚡ | redis/connection.py | 1668 | def set_maint_notifications_pool_handler_for_connection( | CODE |
| LOW⚡ | redis/connection.py | 1676 | def set_maint_notifications_cluster_handler_for_connection( | CODE |
| LOW⚡ | redis/connection.py | 1982 | def _enable_tracking_callback(self, conn: ConnectionInterface) -> None: | CODE |
| LOW⚡ | redis/connection.py | 1987 | def _process_pending_invalidations(self): | CODE |
| LOW⚡ | redis/connection.py | 1996 | def _on_invalidation_callback(self, data: List[Union[str, Optional[List[bytes]]]]): | CODE |
| LOW | redis/connection.py | 203 | def register_connect_callback(self, callback): | CODE |
| LOW | redis/connection.py | 207 | def deregister_connect_callback(self, callback): | CODE |
| LOW | redis/connection.py | 303 | def extract_connection_details(self) -> str: | CODE |
| LOW | redis/connection.py | 382 | def _get_push_notifications_parser(self) -> Union[_HiredisParser, _RESP3Parser]: | CODE |
| LOW | redis/connection.py | 456 | def _configure_maintenance_notifications( | CODE |
| LOW | redis/connection.py | 546 | def set_maint_notifications_pool_handler_for_connection( | CODE |
| LOW | redis/connection.py | 580 | def set_maint_notifications_cluster_handler_for_connection( | CODE |
| LOW | redis/connection.py | 612 | def activate_maint_notifications_handling_if_enabled(self, check_health=True): | CODE |
| LOW | redis/connection.py | 632 | def _enable_maintenance_notifications( | CODE |
| LOW | redis/connection.py | 751 | def update_current_socket_timeout(self, relaxed_timeout: Optional[float] = None): | CODE |
| LOW | redis/connection.py | 995 | def deregister_connect_callback(self, callback): | CODE |
| LOW | redis/connection.py | 1498 | def extract_connection_details(self) -> str: | CODE |
| LOW | redis/connection.py | 1900 | def _maint_notifications_connection_handler( | CODE |
| LOW | redis/connection.py | 1907 | def _maint_notifications_connection_handler( | CODE |
| LOW | redis/connection.py | 1920 | def _get_maint_notifications_connection_instance( | CODE |
| LOW | redis/connection.py | 1956 | def update_current_socket_timeout(self, relaxed_timeout: Optional[float] = None): | CODE |
| LOW | redis/connection.py | 2010 | def extract_connection_details(self) -> str: | CODE |
| LOW | redis/connection.py | 2473 | def maint_notifications_enabled(self): | CODE |
| LOW | redis/connection.py | 2493 | def update_maint_notifications_config( | CODE |
| LOW | redis/connection.py | 2552 | def _update_connection_kwargs_for_maint_notifications( | CODE |
| LOW | redis/connection.py | 2601 | def _update_maint_notifications_configs_for_connections( | CODE |
| LOW | redis/connection.py | 2661 | def _should_update_connection( | CODE |
| LOW | redis/connection.py | 2687 | def update_connection_settings( | CODE |
| LOW | redis/connection.py | 2722 | def update_connections_settings( | CODE |
| LOW | redis/connection.py | 2807 | def update_active_connections_for_reconnect( | CODE |
| 2792 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/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 |
| HIGH | tests/test_cluster_transaction.py | 0 | create a mock meter that tracks all instrument calls. | STRING |
| HIGH | tests/test_client.py | 0 | create a mock meter that tracks all instrument calls. | STRING |
| HIGH | tests/test_pipeline.py | 0 | create a mock meter that tracks all instrument calls. | STRING |
| 34 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 | 1735 | except Exception: | CODE |
| LOW | redis/keyspace_notifications.py | 1839 | except Exception: | CODE |
| LOW | redis/keyspace_notifications.py | 1889 | except Exception: | CODE |
| LOW | redis/keyspace_notifications.py | 1927 | except Exception: | CODE |
| LOW | redis/keyspace_notifications.py | 2093 | except Exception: | CODE |
| LOW | redis/keyspace_notifications.py | 2106 | except Exception: | CODE |
| LOW | redis/keyspace_notifications.py | 2157 | except Exception: | CODE |
| MEDIUM | redis/client.py | 755 | def __del__(self): | CODE |
| MEDIUM | redis/client.py | 1041 | def __del__(self) -> None: | CODE |
| MEDIUM | redis/client.py | 1728 | def __del__(self): | CODE |
| LOW | redis/client.py | 758 | except Exception: | CODE |
| LOW | redis/client.py | 853 | except Exception as e: | CODE |
| LOW | redis/client.py | 1047 | except Exception: | CODE |
| LOW | redis/client.py | 1210 | except Exception as e: | CODE |
| LOW | redis/client.py | 1731 | except Exception: | CODE |
| LOW | redis/client.py | 1871 | except Exception as e: | CODE |
| LOW | redis/client.py | 2107 | 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 | 965 | def __del__(self): | CODE |
| LOW⚡ | redis/connection.py | 968 | except Exception: | CODE |
| LOW | redis/connection.py | 657 | except Exception as e: | CODE |
| LOW | redis/connection.py | 3111 | except Exception: | CODE |
| LOW | redis/connection.py | 3510 | except Exception: | CODE |
| LOW | redis/connection.py | 3552 | except Exception: | CODE |
| LOW | redis/connection.py | 3584 | except Exception: | CODE |
| LOW | redis/connection.py | 3635 | except Exception: | CODE |
| LOW | redis/connection.py | 3742 | except Exception: | CODE |
| LOW | redis/connection.py | 3767 | except Exception: | CODE |
| MEDIUM | redis/cluster.py | 976 | def __del__(self): | CODE |
| MEDIUM | redis/cluster.py | 1959 | def close(self) -> None: | CODE |
| MEDIUM | redis/cluster.py | 2957 | def _get_node_pubsub(self, node): | CODE |
| LOW | redis/cluster.py | 979 | except Exception: | CODE |
| LOW | redis/cluster.py | 1594 | except Exception as e: | CODE |
| LOW | redis/cluster.py | 1869 | except Exception as e: | CODE |
| LOW | redis/cluster.py | 2240 | except Exception as exc: | CODE |
| LOW | redis/cluster.py | 2567 | except Exception as e: | CODE |
| LOW | redis/cluster.py | 2672 | except Exception as e: | CODE |
| LOW | redis/cluster.py | 2751 | except Exception as e: | CODE |
| LOW | redis/cluster.py | 3051 | except Exception: | CODE |
| LOW | redis/cluster.py | 3194 | except Exception: | CODE |
| LOW | redis/cluster.py | 3243 | except Exception: | CODE |
| LOW | redis/cluster.py | 3342 | except Exception: | CODE |
| LOW | redis/cluster.py | 3510 | except Exception: | CODE |
| LOW | redis/cluster.py | 4523 | except Exception as e: | CODE |
| LOW | redis/auth/token_manager.py | 295 | except Exception as e: | CODE |
| LOW | redis/auth/token_manager.py | 305 | except Exception as e: | CODE |
| LOW | redis/auth/token_manager.py | 338 | except Exception as e: | CODE |
| LOW | redis/auth/token_manager.py | 348 | except Exception as e: | CODE |
| MEDIUM | redis/auth/token_manager.py | 214 | def acquire_token(self, force_refresh=False) -> TokenResponse: | CODE |
| LOW | redis/multidb/client.py | 88 | except Exception: | CODE |
| LOW | redis/multidb/client.py | 426 | except Exception: | CODE |
| 184 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 | 1636 | # 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 | 3253 | # Create the connection first, then record metrics only on success | COMMENT |
| MEDIUM | redis/cluster.py | 2391 | # Create a redis node with a custom connection pool | COMMENT |
| MEDIUM | redis/cluster.py | 2522 | # Create a new Redis connection | COMMENT |
| MEDIUM | redis/commands/json/path.py | 2 | """This class represents a path in a JSON value.""" | STRING |
| MEDIUM | redis/_parsers/commands.py | 344 | # Create a CommandPolicies object with default policies on the new command. | COMMENT |
| MEDIUM | redis/_parsers/commands.py | 385 | # Create a CommandPolicies object with default policies on the new command. | COMMENT |
| MEDIUM | redis/_parsers/commands.py | 641 | # Create a CommandPolicies object with default policies on the new command. | COMMENT |
| MEDIUM | redis/_parsers/commands.py | 682 | # Create a CommandPolicies object with default policies on the new command. | COMMENT |
| MEDIUM⚡ | tests/test_search.py | 1178 | # Creating the index definition | COMMENT |
| MEDIUM⚡ | tests/test_search.py | 1188 | # Creating the index definition | COMMENT |
| MEDIUM | tests/test_search.py | 576 | # Creating the index definition and schema | COMMENT |
| MEDIUM | tests/test_search.py | 850 | # Creating a client with one index | COMMENT |
| MEDIUM | tests/test_search.py | 897 | # Creating the index definition with sortable and no_stem | COMMENT |
| MEDIUM | tests/test_search.py | 911 | # Creating the index definition and schema | COMMENT |
| MEDIUM | tests/test_search.py | 2207 | # Creating the index definition and schema | COMMENT |
| MEDIUM | tests/test_connection_pool.py | 1317 | # Create a connection that doesn't belong to this pool | COMMENT |
| MEDIUM | tests/test_cluster.py | 246 | # Create a subclass of RedisCluster that overrides __del__ | COMMENT |
| MEDIUM | tests/test_cluster.py | 743 | # Create a cluster with reading from replications | COMMENT |
| MEDIUM | tests/test_cluster.py | 4402 | # Create a cluster with reading from replications | COMMENT |
| MEDIUM | tests/test_cluster.py | 4573 | # Create a new event dispatcher and attach it to the cluster | COMMENT |
| MEDIUM | tests/test_cluster.py | 4786 | # Create a new event dispatcher and attach it to the cluster | COMMENT |
| MEDIUM⚡ | tests/test_cache.py | 1549 | # 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 | 987 | # Create a pool and Redis client with maintenance notifications | COMMENT |
| MEDIUM⚡ | …int_notifications/test_maint_notifications_handling.py | 995 | # Create a migrating notification (not handled by pool handler) | COMMENT |
| MEDIUM | …int_notifications/test_maint_notifications_handling.py | 611 | # Create a pool and Redis client with maintenance notifications | COMMENT |
| MEDIUM | …int_notifications/test_maint_notifications_handling.py | 670 | # Create a Redis client with disabled maintenance notifications configuration | COMMENT |
| MEDIUM | …int_notifications/test_maint_notifications_handling.py | 685 | # Create a new enabled configuration and set up pool handler | COMMENT |
| MEDIUM | …int_notifications/test_maint_notifications_handling.py | 700 | # Create a new connection and validate it has full handlers | COMMENT |
| MEDIUM | …int_notifications/test_maint_notifications_handling.py | 875 | # Create a pool and Redis client with maintenance notifications | COMMENT |
| MEDIUM | …int_notifications/test_maint_notifications_handling.py | 959 | # Create a pool and Redis client with maintenance notifications | COMMENT |
| MEDIUM | …int_notifications/test_maint_notifications_handling.py | 1039 | # Create a pool and Redis client with maintenance notifications | COMMENT |
| MEDIUM | …int_notifications/test_maint_notifications_handling.py | 1126 | # Create a pool and Redis client with disabled relaxed timeout config | COMMENT |
| MEDIUM | …int_notifications/test_maint_notifications_handling.py | 1237 | # Create a pool and Redis client with maintenance notifications | COMMENT |
| MEDIUM | …int_notifications/test_maint_notifications_handling.py | 1319 | # Create a pool and Redis client with maintenance notifications and pool handler | COMMENT |
| MEDIUM | …int_notifications/test_maint_notifications_handling.py | 1451 | # Create a pool and Redis client with maintenance notifications and pool handler | COMMENT |
| MEDIUM | …int_notifications/test_maint_notifications_handling.py | 1598 | # Create a pool and Redis client with maintenance notifications and pool handler | COMMENT |
| MEDIUM | …int_notifications/test_maint_notifications_handling.py | 1681 | # Create a pool and Redis client with maintenance notifications and pool handler | COMMENT |
| MEDIUM | …int_notifications/test_maint_notifications_handling.py | 1745 | # Create a pool and Redis client with maintenance notifications and pool handler | COMMENT |
| MEDIUM | tests/test_multidb/test_client.py | 465 | # 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 | 590 | # 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 | 989 | # Creating the index definition with sortable and no_stem | COMMENT |
| MEDIUM | tests/test_asyncio/test_search.py | 1005 | # Creating the index definition and schema | COMMENT |
| MEDIUM | tests/test_asyncio/test_search.py | 1652 | # Creating the index definition and schema | COMMENT |
| MEDIUM | tests/test_asyncio/test_commands.py | 6548 | # Create an empty stream by adding and deleting a message | COMMENT |
| MEDIUM⚡ | tests/test_asyncio/test_cluster.py | 3609 | # Create a mock connection marked for reconnect | COMMENT |
| MEDIUM⚡ | tests/test_asyncio/test_cluster.py | 3624 | # Create a mock connection NOT marked for reconnect | COMMENT |
| MEDIUM | tests/test_asyncio/test_cluster.py | 210 | # Create a subclass of RedisCluster that overrides __del__ | COMMENT |
| MEDIUM | tests/test_asyncio/test_cluster.py | 864 | # Create a cluster with reading from replications | COMMENT |
| MEDIUM | tests/test_asyncio/test_cluster.py | 3799 | # Define a custom callback | COMMENT |
| MEDIUM | tests/test_asyncio/test_cluster.py | 4050 | # Create a cluster with reading from replications | COMMENT |
| 9 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/keyspace_notifications.py | 59 | CODE | |
| LOW | redis/client.py | 29 | CODE | |
| LOW | redis/client.py | 91 | 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 | |
| LOW | redis/__init__.py | 50 | CODE | |
| LOW | redis/__init__.py | 56 | CODE | |
| LOW | redis/__init__.py | 57 | CODE | |
| 118 more matches not shown… | ||||
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| LOW | redis/ocsp.py | 22 | CODE | |
| LOW | redis/keyspace_notifications.py | 974 | CODE | |
| LOW | redis/keyspace_notifications.py | 1853 | CODE | |
| LOW | redis/keyspace_notifications.py | 2020 | CODE | |
| LOW | redis/keyspace_notifications.py | 2109 | CODE | |
| LOW | redis/client.py | 598 | CODE | |
| LOW | redis/client.py | 1514 | CODE | |
| LOW | redis/cache.py | 214 | CODE | |
| LOW | redis/connection.py | 2278 | CODE | |
| LOW | redis/connection.py | 1108 | CODE | |
| LOW | redis/connection.py | 1425 | CODE | |
| LOW | redis/connection.py | 1553 | CODE | |
| LOW | redis/connection.py | 1726 | CODE | |
| LOW | redis/connection.py | 2601 | CODE | |
| LOW | redis/connection.py | 2661 | CODE | |
| LOW | redis/connection.py | 2722 | CODE | |
| LOW | redis/connection.py | 3048 | CODE | |
| LOW | redis/connection.py | 3462 | CODE | |
| LOW | redis/connection.py | 3525 | CODE | |
| LOW | redis/utils.py | 358 | CODE | |
| LOW | redis/cluster.py | 1115 | CODE | |
| LOW | redis/cluster.py | 1488 | CODE | |
| LOW | redis/cluster.py | 1629 | CODE | |
| LOW | redis/cluster.py | 1998 | CODE | |
| LOW | redis/cluster.py | 2190 | CODE | |
| LOW | redis/cluster.py | 2436 | CODE | |
| LOW | redis/cluster.py | 2704 | CODE | |
| LOW | redis/cluster.py | 2999 | CODE | |
| LOW | redis/cluster.py | 3114 | CODE | |
| LOW | redis/cluster.py | 3142 | CODE | |
| LOW | redis/cluster.py | 3215 | CODE | |
| LOW | redis/cluster.py | 3757 | CODE | |
| LOW | redis/cluster.py | 4061 | CODE | |
| LOW | redis/cluster.py | 4748 | CODE | |
| LOW | redis/maint_notifications.py | 863 | CODE | |
| LOW | redis/maint_notifications.py | 1139 | CODE | |
| LOW | redis/observability/recorder.py | 542 | CODE | |
| LOW | redis/commands/core.py | 380 | CODE | |
| LOW | redis/commands/core.py | 2890 | CODE | |
| LOW | redis/commands/core.py | 4188 | CODE | |
| LOW | redis/commands/cluster.py | 1448 | CODE | |
| LOW | redis/commands/helpers.py | 73 | CODE | |
| LOW | redis/commands/search/result.py | 15 | CODE | |
| LOW | redis/commands/search/commands.py | 641 | CODE | |
| LOW | redis/commands/search/commands.py | 779 | CODE | |
| LOW | redis/commands/search/commands.py | 799 | CODE | |
| LOW | redis/commands/vectorset/utils.py | 74 | CODE | |
| LOW | redis/asyncio/keyspace_notifications.py | 447 | CODE | |
| LOW | redis/asyncio/keyspace_notifications.py | 714 | CODE | |
| LOW | redis/asyncio/keyspace_notifications.py | 880 | CODE | |
| LOW | redis/asyncio/client.py | 1537 | CODE | |
| LOW | redis/asyncio/client.py | 1752 | CODE | |
| LOW | redis/asyncio/client.py | 1925 | CODE | |
| LOW | redis/asyncio/connection.py | 1746 | CODE | |
| LOW | redis/asyncio/connection.py | 925 | CODE | |
| LOW | redis/asyncio/connection.py | 1219 | CODE | |
| LOW | redis/asyncio/connection.py | 1364 | CODE | |
| LOW | redis/asyncio/connection.py | 1462 | CODE | |
| LOW | redis/asyncio/connection.py | 1864 | CODE | |
| LOW | redis/asyncio/connection.py | 2005 | CODE | |
| 120 more matches not shown… | ||||
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| LOW | redis/client.py | 259 | CODE | |
| LOW | redis/connection.py | 325 | CODE | |
| LOW | redis/connection.py | 806 | CODE | |
| LOW | redis/connection.py | 2020 | CODE | |
| LOW | redis/connection.py | 2722 | CODE | |
| LOW | redis/cluster.py | 695 | CODE | |
| LOW | redis/cluster.py | 2109 | CODE | |
| LOW | redis/cluster.py | 3403 | 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 | 341 | CODE | |
| LOW | redis/commands/core.py | 361 | CODE | |
| LOW | redis/commands/core.py | 380 | CODE | |
| LOW | redis/commands/core.py | 3399 | CODE | |
| LOW | redis/commands/core.py | 3417 | CODE | |
| LOW | redis/commands/core.py | 3434 | CODE | |
| LOW | redis/commands/core.py | 4150 | CODE | |
| LOW | redis/commands/core.py | 4169 | CODE | |
| LOW | redis/commands/core.py | 4188 | CODE | |
| LOW | redis/commands/core.py | 5222 | CODE | |
| LOW | redis/commands/core.py | 5236 | CODE | |
| LOW | redis/commands/core.py | 5249 | CODE | |
| LOW | redis/commands/core.py | 6797 | CODE | |
| LOW | redis/commands/core.py | 6813 | CODE | |
| LOW | redis/commands/core.py | 6828 | CODE | |
| LOW | redis/commands/core.py | 9875 | CODE | |
| LOW | redis/commands/core.py | 9891 | CODE | |
| LOW | redis/commands/core.py | 9906 | CODE | |
| LOW | redis/commands/core.py | 11317 | CODE | |
| LOW | redis/commands/core.py | 11335 | CODE | |
| LOW | redis/commands/core.py | 11352 | CODE | |
| LOW | redis/commands/core.py | 11416 | CODE | |
| LOW | redis/commands/core.py | 11433 | CODE | |
| LOW | redis/commands/core.py | 11449 | CODE | |
| LOW | redis/commands/core.py | 11535 | CODE | |
| LOW | redis/commands/core.py | 11554 | CODE | |
| LOW | redis/commands/core.py | 11572 | CODE | |
| LOW | redis/commands/core.py | 11654 | CODE | |
| LOW | redis/commands/core.py | 11672 | CODE | |
| LOW | redis/commands/core.py | 11689 | CODE | |
| LOW | redis/commands/timeseries/commands.py | 235 | CODE | |
| LOW | redis/commands/timeseries/commands.py | 251 | CODE | |
| LOW | redis/commands/timeseries/commands.py | 266 | CODE | |
| LOW | redis/commands/timeseries/commands.py | 395 | CODE | |
| LOW | redis/commands/timeseries/commands.py | 410 | CODE | |
| LOW | redis/commands/timeseries/commands.py | 424 | CODE | |
| LOW | redis/commands/timeseries/commands.py | 517 | CODE | |
| LOW | redis/commands/timeseries/commands.py | 532 | CODE | |
| LOW | redis/commands/timeseries/commands.py | 546 | CODE | |
| LOW | redis/commands/timeseries/commands.py | 773 | CODE | |
| LOW | redis/commands/timeseries/commands.py | 791 | CODE | |
| LOW | redis/commands/timeseries/commands.py | 808 | CODE | |
| LOW | redis/commands/timeseries/commands.py | 886 | CODE | |
| LOW | redis/commands/timeseries/commands.py | 904 | CODE | |
| LOW | redis/commands/timeseries/commands.py | 921 | CODE | |
| LOW | redis/commands/timeseries/commands.py | 1121 | CODE | |
| LOW | redis/commands/timeseries/commands.py | 1139 | CODE | |
| LOW | redis/commands/timeseries/commands.py | 1156 | CODE | |
| LOW | redis/commands/timeseries/commands.py | 1249 | CODE | |
| 33 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/connection.py | 3121 | # instance. if these values are the same, _checkpid() simply returns. | COMMENT |
| LOW | redis/cluster.py | 1761 | # First, we will try to patch the slots/nodes cache with the | COMMENT |
| LOW | redis/cluster.py | 2801 | self.cluster = redis_cluster | COMMENT |
| LOW | redis/cluster.py | 3021 | # Only sunsubscribe mutates cluster-level shard state; bypassing the | COMMENT |
| LOW | redis/cluster.py | 3221 | old_pubsub.sunsubscribe(channel) | COMMENT |
| LOW | redis/cluster.py | 3261 | self.health_check_response_counter = 0 | COMMENT |
| LOW | redis/cluster.py | 3321 | # node_pubsub_mapping under this lock. Without it, super().reset() | COMMENT |
| LOW | redis/cluster.py | 3341 | pubsub.reset() | COMMENT |
| LOW | redis/cluster.py | 3761 | # if there is a result on this command, | COMMENT |
| LOW | redis/cluster.py | 4221 | # commands to it, but haven't read the responses), we need | COMMENT |
| LOW | redis/cluster.py | 4241 | # (MOVED, ASK, or connection errors or timeout errors) | COMMENT |
| LOW | redis/commands/core.py | 10661 | # Maybe the client is pointed to a different server than the client | COMMENT |
| LOW | redis/commands/search/commands.py | 321 | if len(_correction) != 3: | COMMENT |
| LOW | redis/asyncio/connection.py | 441 | """ | COMMENT |
| LOW | redis/asyncio/cluster.py | 1941 | removed_node.disconnect_free_connections() | COMMENT |
| LOW | redis/asyncio/cluster.py | 2021 | # Update the old primary to be a replica and add it to the end of | COMMENT |
| LOW | redis/asyncio/cluster.py | 3921 | # reconnect target exists, so ``old_pubsub.subscribed`` | COMMENT |
| LOW | redis/asyncio/cluster.py | 4001 | # reinitialize_shard_subscriptions; since asyncio.Lock is non- | COMMENT |
| LOW | redis/asyncio/cluster.py | 4021 | # Close all shard pubsub instances first | COMMENT |
| LOW | redis/asyncio/maint_notifications.py | 421 | # The same SMIGRATED notification is delivered by the server on every | COMMENT |
| LOW | redis/asyncio/maint_notifications.py | 481 | await self.remove_expired_notifications() | COMMENT |
| LOW | tests/test_bloom.py | 581 | # pipeline = client.bf().pipeline() | COMMENT |
| LOW | tests/test_multidb/test_client.py | 861 | client = MultiDBClient(mock_multi_db_config) | COMMENT |
| LOW | tests/test_asyncio/test_json.py | 441 | # p.get("foo") | COMMENT |
| 17 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 | 1987 | # Check if we've exceeded the total timeout | COMMENT |
| LOW | redis/connection.py | 1799 | # Check if command response exists in a cache and it's not in progress. | COMMENT |
| LOW | redis/cluster.py | 2645 | # Check if the slots are not fully covered | COMMENT |
| LOW | redis/sentinel.py | 266 | # Check if command is supposed to return the original | COMMENT |
| LOW | redis/sentinel.py | 300 | # Check if our sentinel doesn't see other nodes | COMMENT |
| LOW | redis/maint_notifications.py | 712 | # Check if the host is an IP address | COMMENT |
| LOW | redis/maint_notifications.py | 921 | # 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 | 2246 | # Check if the slots are not fully covered | COMMENT |
| LOW | redis/asyncio/cluster.py | 2860 | # Check if it has a command that failed with a relevant | COMMENT |
| LOW | redis/asyncio/sentinel.py | 231 | # Check if command is supposed to return the original | COMMENT |
| LOW | redis/asyncio/sentinel.py | 270 | # 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 | 285 | # Check if this is a policy string | COMMENT |
| LOW | redis/_parsers/commands.py | 334 | # Check if it's a core or module command | COMMENT |
| LOW | redis/_parsers/commands.py | 582 | # Check if this is a policy string | COMMENT |
| LOW | redis/_parsers/commands.py | 631 | # Check if it's a core or module command | 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 | 762 | # Set attributes to None | COMMENT |
| LOW | tests/test_vsets.py | 768 | # Set attributes to empty dict | COMMENT |
| LOW | tests/test_vsets.py | 780 | # Set attributes to unexisting element | COMMENT |
| LOW | tests/test_vsets.py | 786 | # Set attributes to unexisting vset | COMMENT |
| LOW | tests/test_cluster.py | 4976 | # Check if any has error.type (the one from _raise_first_error) | COMMENT |
| LOW | …int_notifications/test_maint_notifications_handling.py | 219 | # Check if this is a key that should trigger a push message | COMMENT |
| LOW | …int_notifications/test_maint_notifications_handling.py | 406 | # 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 | 762 | # Set attributes to None | COMMENT |
| LOW | tests/test_asyncio/test_vsets.py | 768 | # Set attributes to empty dict | COMMENT |
| LOW | tests/test_asyncio/test_vsets.py | 780 | # Set attributes to unexisting element | COMMENT |
| LOW | tests/test_asyncio/test_vsets.py | 786 | # Set attributes to unexisting vset | COMMENT |
| LOW | tests/test_asyncio/test_connection_pool.py | 271 | # 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 |
|---|---|---|---|---|
| MEDIUM⚡ | redis/keyspace_notifications.py | 1739 | # ============================================================================= | COMMENT |
| MEDIUM⚡ | redis/keyspace_notifications.py | 1741 | # ============================================================================= | COMMENT |
| MEDIUM | redis/keyspace_notifications.py | 103 | # ============================================================================= | COMMENT |
| MEDIUM | redis/keyspace_notifications.py | 105 | # ============================================================================= | COMMENT |
| MEDIUM | redis/keyspace_notifications.py | 543 | # ============================================================================= | COMMENT |
| MEDIUM | redis/keyspace_notifications.py | 545 | # ============================================================================= | COMMENT |
| MEDIUM | redis/keyspace_notifications.py | 1026 | # ============================================================================= | COMMENT |
| MEDIUM | redis/keyspace_notifications.py | 1028 | # ============================================================================= | COMMENT |
| MEDIUM | redis/keyspace_notifications.py | 1597 | # ============================================================================= | COMMENT |
| MEDIUM | redis/keyspace_notifications.py | 1599 | # ============================================================================= | 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 |
| 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 | 102 | logger = logging.getLogger(__name__) | CODE |
| LOW | redis/client.py | 555 | def set_retry(self, retry: Retry) -> None: | CODE |
| LOW | redis/client.py | 559 | def set_response_callback(self, command: str, callback: Callable) -> 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 | 3348 | def set_retry(self, retry: Retry) -> None: | CODE |
| LOW | redis/cluster.py | 99 | logger = logging.getLogger(__name__) | CODE |
| LOW | redis/cluster.py | 1150 | def set_retry(self, retry: Retry) -> None: | CODE |
| LOW | redis/lock.py | 11 | logger = logging.getLogger(__name__) | CODE |
| LOW | redis/maint_notifications.py | 30 | logger = logging.getLogger(__name__) | CODE |
| LOW | redis/auth/token_manager.py | 12 | logger = logging.getLogger(__name__) | CODE |
| LOW | redis/multidb/client.py | 33 | logger = logging.getLogger(__name__) | CODE |
| LOW | redis/multidb/client.py | 138 | 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/__init__.py | 7 | __all__ = [ | CODE |
| LOW⚡ | redis/asyncio/keyspace_notifications.py | 68 | logger = logging.getLogger(__name__) | CODE |
| LOW | redis/asyncio/client.py | 544 | def set_retry(self, retry: Retry) -> None: | CODE |
| LOW | redis/asyncio/__init__.py | 41 | __all__ = [ | CODE |
| LOW | redis/asyncio/connection.py | 784 | def set_parser(self, parser_class: Type[BaseParser]) -> None: | CODE |
| LOW | redis/asyncio/connection.py | 1839 | def set_retry(self, retry: "Retry") -> None: | CODE |
| LOW | redis/asyncio/connection.py | 2378 | def update_connection_kwargs(self, **kwargs: Any) -> None: | CODE |
| LOW | redis/asyncio/connection.py | 2521 | def _set_in_maintenance(self, in_maintenance: bool) -> None: | CODE |
| LOW | redis/asyncio/connection.py | 2908 | def set_retry(self, retry: "Retry") -> None: | CODE |
| LOW | redis/asyncio/connection.py | 3010 | def set_in_maintenance(self, in_maintenance: bool) -> None: | CODE |
| LOW | redis/asyncio/cluster.py | 142 | logger = logging.getLogger(__name__) | CODE |
| LOW | redis/asyncio/cluster.py | 791 | def set_default_node(self, node: "ClusterNode") -> None: | CODE |
| LOW | redis/asyncio/cluster.py | 894 | def set_retry(self, retry: Retry) -> None: | CODE |
| LOW | redis/asyncio/cluster.py | 897 | def set_response_callback(self, command: str, callback: ResponseCallbackT) -> None: | CODE |
| LOW | redis/asyncio/cluster.py | 1731 | def update_active_connections_for_reconnect(self) -> None: | CODE |
| LOW | redis/asyncio/cluster.py | 2379 | def set_response_callback(self, command: str, callback: ResponseCallbackT) -> None: | CODE |
| LOW | redis/asyncio/cluster.py | 3429 | 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 | 28 | logger = logging.getLogger(__name__) | CODE |
| LOW | redis/asyncio/multidb/client.py | 30 | logger = logging.getLogger(__name__) | CODE |
| LOW | redis/asyncio/multidb/client.py | 151 | 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 | 49 | 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 | 13 | __all__ = [ | CODE |
| LOW | redis/_parsers/base.py | 64 | logger = logging.getLogger(__name__) | CODE |
| LOW | tests/test_scenario/test_active_active.py | 20 | logger = logging.getLogger(__name__) | CODE |
| LOW | tests/test_asyncio/test_scenario/test_active_active.py | 21 | logger = logging.getLogger(__name__) | CODE |
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| LOW⚡ | …int_notifications/test_maint_notifications_handling.py | 1791 | # Step 2: Run command that will receive and handle MIGRATED notification | COMMENT |
| LOW⚡ | …int_notifications/test_maint_notifications_handling.py | 1800 | # Step 3: Validate that MIGRATED notification was processed but MOVING settings remain | COMMENT |
| LOW | …int_notifications/test_maint_notifications_handling.py | 1059 | # Step 4: Validate timeout was updated to relaxed value after MIGRATING | COMMENT |
| LOW | …int_notifications/test_maint_notifications_handling.py | 1080 | # Step 6: Validate socket timeout is still relaxed during commands 3-4 | COMMENT |
| LOW | …int_notifications/test_maint_notifications_handling.py | 1095 | # Step 8: Validate socket timeout is reversed back to original after MIGRATED | COMMENT |
| LOW | …int_notifications/test_maint_notifications_handling.py | 1257 | # Step 4: Validate timeout was updated to relaxed value after MIGRATING | COMMENT |
| LOW | …int_notifications/test_maint_notifications_handling.py | 1278 | # Step 6: Validate socket timeout is still relaxed during commands 3-4 | COMMENT |
| LOW | …int_notifications/test_maint_notifications_handling.py | 1293 | # Step 8: Validate socket timeout is reversed back to original after FAILED_OVER | COMMENT |
| LOW | …int_notifications/test_maint_notifications_handling.py | 1767 | # Step 1: Run command that will receive and handle MOVING notification | COMMENT |
| LOW | …int_notifications/test_maint_notifications_handling.py | 1817 | # 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 |
|---|---|---|---|---|
| HIGH | redis/keyspace_notifications.py | 670 | Create a keyevent pattern for subscribing to all event types. This is equivalent to KeyeventChannel("* | STRING |
| HIGH | redis/keyspace_notifications.py | 936 | Determine the type of a Redis keyspace notification channel. Args: channel: The channel name to check | STRING |
| HIGH | redis/keyspace_notifications.py | 1475 | 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 | 216 | Determines whether a given command or subcommand is considered "keyless". A keyless command does not o | STRING |
| HIGH | redis/_parsers/commands.py | 513 | Determines whether a given command or subcommand is considered "keyless". A keyless command does not o | STRING |
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| LOW | redis/cluster.py | 1419 | # so we can just return a random slot | COMMENT |
| LOW | redis/cluster.py | 1427 | # can be run on any node so we can just return a random slot | COMMENT |
| LOW | redis/maint_notifications.py | 874 | # just return | COMMENT |
| LOW | redis/asyncio/cluster.py | 952 | # so we can just return a random slot | COMMENT |
| LOW | redis/asyncio/cluster.py | 959 | # can be run on any node so we can just return a random slot | COMMENT |
| LOW | redis/asyncio/maint_notifications.py | 139 | # just return | COMMENT |
| LOW | redis/_parsers/hiredis.py | 205 | # blocking error, simply return False indicating that | COMMENT |
| LOW | redis/_parsers/resp3.py | 84 | # necessary, so just return the exception instance here. | COMMENT |
| LOW | redis/_parsers/resp3.py | 218 | # necessary, so just return the exception instance here. | COMMENT |
| LOW | redis/_parsers/socket.py | 81 | # 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 |
| LOW⚡ | tests/test_ssl.py | 399 | # Don't actually wrap the socket, just return the original socket | COMMENT |
| MEDIUM | tests/test_asyncio/test_cwe_404.py | 97 | # 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 | 76 | 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 | 1791 | # Step 2: Run command that will receive and handle MIGRATED notification | COMMENT |
| LOW⚡ | …int_notifications/test_maint_notifications_handling.py | 1800 | # Step 3: Validate that MIGRATED notification was processed but MOVING settings remain | COMMENT |
| LOW | …int_notifications/test_maint_notifications_handling.py | 1059 | # Step 4: Validate timeout was updated to relaxed value after MIGRATING | COMMENT |
| LOW | …int_notifications/test_maint_notifications_handling.py | 1080 | # Step 6: Validate socket timeout is still relaxed during commands 3-4 | COMMENT |
| LOW | …int_notifications/test_maint_notifications_handling.py | 1095 | # Step 8: Validate socket timeout is reversed back to original after MIGRATED | COMMENT |
| LOW | …int_notifications/test_maint_notifications_handling.py | 1257 | # Step 4: Validate timeout was updated to relaxed value after MIGRATING | COMMENT |
| LOW | …int_notifications/test_maint_notifications_handling.py | 1278 | # Step 6: Validate socket timeout is still relaxed during commands 3-4 | COMMENT |
| LOW | …int_notifications/test_maint_notifications_handling.py | 1293 | # Step 8: Validate socket timeout is reversed back to original after FAILED_OVER | COMMENT |
| LOW | …int_notifications/test_maint_notifications_handling.py | 1767 | # Step 1: Run command that will receive and handle MOVING notification | COMMENT |
| LOW | …int_notifications/test_maint_notifications_handling.py | 1817 | # 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 |
|---|---|---|---|---|
| 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 | 289 | 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 | 249 | # 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 | 1744 | # make sure to reset the connection state in the event that we were | COMMENT |
| LOW | redis/cluster.py | 4751 | # make sure to reset the connection state in the event that we were | COMMENT |
| LOW | redis/asyncio/client.py | 1756 | # make sure to reset the connection state in the event that we were | COMMENT |
| LOW | redis/asyncio/cluster.py | 3288 | # make sure to reset the connection state in the event that we | COMMENT |
| LOW | redis/_parsers/socket.py | 102 | length = length + 2 # make sure to read the \r\n terminator | CODE |
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| LOW | tests/test_search.py | 940 | client.hset("doc2", mapping={"f1": "very important", "f2": "lorem ipsum"}) | CODE |
| LOW | tests/test_asyncio/test_search.py | 1035 | "doc2", mapping={"f1": "very important", "f2": "lorem ipsum"} | CODE |
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| LOW | tests/test_commands.py | 8382 | def helper(): | CODE |
| LOW | tests/test_asyncio/test_commands.py | 6358 | async def helper(): | CODE |
| LOW | docs/examples/opentelemetry/main.py | 31 | def handle_request(client): | CODE |