Repository Analysis

redis/redis-py

Redis Python client

21.3 Moderate AI signal View on GitHub

Analysis Overview

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).

21.3
Adjusted Score
21.3
Raw Score
100%
Time Factor
2026-07-14
Last Push
13.6K
Stars
Python
Language
188.1K
Lines of Code
371
Files
4.0K
Pattern Hits
2026-07-14
Scan Date
0.29
HC Hit Rate

What These Metrics Mean

Adjusted Score
Primary synthetic code indicator. Raw score normalised per 1,000 lines of code and multiplied by the temporal discount factor. This is the definitive comparative metric — use it to rank repositories by AI authorship density.
Raw Score
The unmodified sum of all severity-weighted, context-multiplied pattern match scores before temporal discounting. Reflects the absolute signal strength independent of when the repository was last active.
Time Factor
The temporal discount multiplier (0–100%) applied to the raw score. Repositories last updated before ChatGPT's launch (Nov 2022) receive a 5% factor. Full signal is only assigned to repositories active in the post-adoption era (Jan 2024+).
Pattern Hits
Total count of individual pattern matches across all files and categories. A high hit count with a low score may indicate a very large codebase with isolated AI snippets; a low count with a high score indicates dense, concentrated AI signatures.
HC Hit Rate
High+Critical pattern hits per file, averaged across the repository. This orthogonal signal catches repositories where a few files are densely packed with high-severity AI tells — a strong indicator even when the normalised score appears moderate due to codebase size.
Lines of Code / Files
Total lines and files analysed. The scanner examines 94 file extensions. These denominators are used to normalise the score, enabling fair comparison between repositories of vastly different sizes.

Score History

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.

Severity Breakdown

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.

CRITICAL 2HIGH 104MEDIUM 112LOW 3776

Directory Score Breakdown

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.

Pattern Findings

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.

Hyper-Verbose Identifiers2852 hits · 2293 pts
SeverityFileLineSnippetContext
LOWtasks.py165def multidb_integration_tests(c, uvloop=False, profile=False):CODE
LOWredis/ocsp.py243 def components_from_direct_connection(self):CODE
LOWredis/keyspace_notifications.py223def _parse_length_prefixed_subkeys(s: str) -> list[str]:CODE
LOWredis/keyspace_notifications.py1095 def subscribe_subkeyspaceitem(CODE
LOWredis/keyspace_notifications.py1106 def subscribe_subkeyspaceevent(CODE
LOWredis/keyspace_notifications.py1410 def subscribe_subkeyspaceitem(CODE
LOWredis/keyspace_notifications.py1432 def subscribe_subkeyspaceevent(CODE
LOWredis/keyspace_notifications.py1911 def _unsubscribe_from_all_nodes(self, channels: list[str], use_punsubscribe: bool):CODE
LOWredis/keyspace_notifications.py2082 def _refresh_subscriptions_on_error(self):CODE
LOWredis/client.py109def add_debug_log_for_operation_failure(connection: "AbstractConnection"):CODE
LOWredis/client.py776 def _send_command_parse_response(self, conn, command_name, *args, **options):CODE
LOWredis/client.py1075 def _resubscribe_shard_channels(self) -> None:CODE
LOWredis/client.py1121 def clean_health_check_responses(self) -> None:CODE
LOWredis/client.py1787 def _disconnect_reset_raise_on_watching(CODE
LOWredis/client.py1826 def immediate_execute_command(self, *args, **options):CODE
LOWredis/client.py2022 def _disconnect_raise_on_watching(CODE
LOWredis/background.py198 def _ensure_health_check_loop(self, timeout: float = 5.0):CODE
LOWredis/background.py281 def _call_later_recurring_coro(CODE
LOWredis/background.py469def _start_event_loop_in_thread(CODE
LOWredis/driver_info.py11def _validate_no_invalid_chars(value: str, field_name: str) -> None:CODE
LOWredis/_defaults.py12def get_default_socket_keepalive_options() -> dict[int, int]:CODE
LOWredis/connection.py726 def add_maint_start_notification(self, id: int):CODE
LOWredis/connection.py729 def get_processed_start_notifications(self) -> set:CODE
LOWredis/connection.py732 def add_skipped_end_notification(self, id: int):CODE
LOWredis/connection.py735 def get_skipped_end_notifications(self) -> set:CODE
LOWredis/connection.py738 def reset_received_notifications(self):CODE
LOWredis/connection.py975 def _construct_command_packer(self, packer):CODE
LOWredis/connection.py983 def register_connect_callback(self, callback):CODE
LOWredis/connection.py1659 def register_connect_callback(self, callback):CODE
LOWredis/connection.py1662 def deregister_connect_callback(self, callback):CODE
LOWredis/connection.py1668 def set_maint_notifications_pool_handler_for_connection(CODE
LOWredis/connection.py1676 def set_maint_notifications_cluster_handler_for_connection(CODE
LOWredis/connection.py1982 def _enable_tracking_callback(self, conn: ConnectionInterface) -> None:CODE
LOWredis/connection.py1987 def _process_pending_invalidations(self):CODE
LOWredis/connection.py1996 def _on_invalidation_callback(self, data: List[Union[str, Optional[List[bytes]]]]):CODE
LOWredis/connection.py203 def register_connect_callback(self, callback):CODE
LOWredis/connection.py207 def deregister_connect_callback(self, callback):CODE
LOWredis/connection.py303 def extract_connection_details(self) -> str:CODE
LOWredis/connection.py382 def _get_push_notifications_parser(self) -> Union[_HiredisParser, _RESP3Parser]:CODE
LOWredis/connection.py456 def _configure_maintenance_notifications(CODE
LOWredis/connection.py546 def set_maint_notifications_pool_handler_for_connection(CODE
LOWredis/connection.py580 def set_maint_notifications_cluster_handler_for_connection(CODE
LOWredis/connection.py612 def activate_maint_notifications_handling_if_enabled(self, check_health=True):CODE
LOWredis/connection.py632 def _enable_maintenance_notifications(CODE
LOWredis/connection.py751 def update_current_socket_timeout(self, relaxed_timeout: Optional[float] = None):CODE
LOWredis/connection.py995 def deregister_connect_callback(self, callback):CODE
LOWredis/connection.py1498 def extract_connection_details(self) -> str:CODE
LOWredis/connection.py1900 def _maint_notifications_connection_handler(CODE
LOWredis/connection.py1907 def _maint_notifications_connection_handler(CODE
LOWredis/connection.py1920 def _get_maint_notifications_connection_instance(CODE
LOWredis/connection.py1956 def update_current_socket_timeout(self, relaxed_timeout: Optional[float] = None):CODE
LOWredis/connection.py2010 def extract_connection_details(self) -> str:CODE
LOWredis/connection.py2473 def maint_notifications_enabled(self):CODE
LOWredis/connection.py2493 def update_maint_notifications_config(CODE
LOWredis/connection.py2552 def _update_connection_kwargs_for_maint_notifications(CODE
LOWredis/connection.py2601 def _update_maint_notifications_configs_for_connections(CODE
LOWredis/connection.py2661 def _should_update_connection(CODE
LOWredis/connection.py2687 def update_connection_settings(CODE
LOWredis/connection.py2722 def update_connections_settings(CODE
LOWredis/connection.py2807 def update_active_connections_for_reconnect(CODE
2792 more matches not shown…
Cross-File Repetition94 hits · 470 pts
SeverityFileLineSnippetContext
HIGHredis/client.py0return a connection pool configured from the given url. for example:: redis://[[username]:[password]]@localhost:6379/0 rSTRING
HIGHredis/cluster.py0return a connection pool configured from the given url. for example:: redis://[[username]:[password]]@localhost:6379/0 rSTRING
HIGHredis/asyncio/client.py0return a connection pool configured from the given url. for example:: redis://[[username]:[password]]@localhost:6379/0 rSTRING
HIGHredis/connection.py0return a connection pool configured from the given url. for example:: redis://[[username]:[password]]@localhost:6379/0 rSTRING
HIGHredis/asyncio/connection.py0return a connection pool configured from the given url. for example:: redis://[[username]:[password]]@localhost:6379/0 rSTRING
HIGHredis/client.py0convenience method for executing the callable `func` as a transaction while watching all keys specified in `watches`. thSTRING
HIGHredis/cluster.py0convenience method for executing the callable `func` as a transaction while watching all keys specified in `watches`. thSTRING
HIGHredis/asyncio/client.py0convenience method for executing the callable `func` as a transaction while watching all keys specified in `watches`. thSTRING
HIGHredis/asyncio/cluster.py0convenience method for executing the callable `func` as a transaction while watching all keys specified in `watches`. thSTRING
HIGHredis/client.py0create a new lock instance named ``name`` using the redis client supplied by ``redis``. ``timeout`` indicates a maximum STRING
HIGHredis/cluster.py0create a new lock instance named ``name`` using the redis client supplied by ``redis``. ``timeout`` indicates a maximum STRING
HIGHredis/asyncio/client.py0create a new lock instance named ``name`` using the redis client supplied by ``redis``. ``timeout`` indicates a maximum STRING
HIGHredis/asyncio/cluster.py0create a new lock instance named ``name`` using the redis client supplied by ``redis``. ``timeout`` indicates a maximum STRING
HIGHredis/lock.py0create a new lock instance named ``name`` using the redis client supplied by ``redis``. ``timeout`` indicates a maximum STRING
HIGHredis/asyncio/lock.py0create a new lock instance named ``name`` using the redis client supplied by ``redis``. ``timeout`` indicates a maximum STRING
HIGHredis/client.py0return a publish/subscribe object. with this object, you can subscribe to channels and listen for messages that get publSTRING
HIGHredis/multidb/client.py0return a publish/subscribe object. with this object, you can subscribe to channels and listen for messages that get publSTRING
HIGHredis/asyncio/client.py0return a publish/subscribe object. with this object, you can subscribe to channels and listen for messages that get publSTRING
HIGHredis/asyncio/multidb/client.py0return a publish/subscribe object. with this object, you can subscribe to channels and listen for messages that get publSTRING
HIGHredis/client.py0unsubscribe from the supplied patterns. if empty, unsubscribe from all patterns.STRING
HIGHredis/multidb/client.py0unsubscribe from the supplied patterns. if empty, unsubscribe from all patterns.STRING
HIGHredis/asyncio/client.py0unsubscribe from the supplied patterns. if empty, unsubscribe from all patterns.STRING
HIGHredis/asyncio/multidb/client.py0unsubscribe from the supplied patterns. if empty, unsubscribe from all patterns.STRING
HIGHredis/client.py0unsubscribe from the supplied channels. if empty, unsubscribe from all channelsSTRING
HIGHredis/multidb/client.py0unsubscribe from the supplied channels. if empty, unsubscribe from all channelsSTRING
HIGHredis/asyncio/client.py0unsubscribe from the supplied channels. if empty, unsubscribe from all channelsSTRING
HIGHredis/asyncio/multidb/client.py0unsubscribe from the supplied channels. if empty, unsubscribe from all channelsSTRING
HIGHredis/client.py0unsubscribe from the supplied shard_channels. if empty, unsubscribe from all shard_channelsSTRING
HIGHredis/multidb/client.py0unsubscribe from the supplied shard_channels. if empty, unsubscribe from all shard_channelsSTRING
HIGHredis/asyncio/client.py0unsubscribe from the supplied shard_channels. if empty, unsubscribe from all shard_channelsSTRING
HIGHredis/client.py0get the next message if one is available, otherwise none. if timeout is specified, the system will wait for `timeout` seSTRING
HIGHredis/multidb/client.py0get the next message if one is available, otherwise none. if timeout is specified, the system will wait for `timeout` seSTRING
HIGHredis/asyncio/client.py0get the next message if one is available, otherwise none. if timeout is specified, the system will wait for `timeout` seSTRING
HIGHredis/asyncio/multidb/client.py0get the next message if one is available, otherwise none. if timeout is specified, the system will wait for `timeout` seSTRING
HIGHredis/client.py0start a transactional block of the pipeline after watch commands are issued. end the transactional block with `execute`.STRING
HIGHredis/cluster.py0start a transactional block of the pipeline after watch commands are issued. end the transactional block with `execute`.STRING
HIGHredis/asyncio/client.py0start a transactional block of the pipeline after watch commands are issued. end the transactional block with `execute`.STRING
HIGHredis/asyncio/cluster.py0start a transactional block of the pipeline after watch commands are issued. end the transactional block with `execute`.STRING
HIGHredis/client.py0stage a command to be executed when execute() is next called returns the current pipeline object back so commands can beSTRING
HIGHredis/cluster.py0stage a command to be executed when execute() is next called returns the current pipeline object back so commands can beSTRING
HIGHredis/multidb/client.py0stage a command to be executed when execute() is next called returns the current pipeline object back so commands can beSTRING
HIGHredis/asyncio/client.py0stage a command to be executed when execute() is next called returns the current pipeline object back so commands can beSTRING
HIGHredis/asyncio/multidb/client.py0stage a command to be executed when execute() is next called returns the current pipeline object back so commands can beSTRING
HIGHredis/connection.py0update the connection kwargs for all future connections.STRING
HIGHredis/cluster.py0update the connection kwargs for all future connections.STRING
HIGHredis/asyncio/connection.py0update the connection kwargs for all future connections.STRING
HIGHredis/connection.py0dummy functions, needs to be passed as error callback to retry object. :param error: :return:STRING
HIGHredis/asyncio/connection.py0dummy functions, needs to be passed as error callback to retry object. :param error: :return:STRING
HIGHredis/asyncio/cluster.py0dummy functions, needs to be passed as error callback to retry object. :param error: :return:STRING
HIGHredis/observability/metrics.py0record a geo failover. args: fail_from: database failed from fail_to: database failed to reason: reason for the failoverSTRING
HIGHredis/observability/recorder.py0record a geo failover. args: fail_from: database failed from fail_to: database failed to reason: reason for the failoverSTRING
HIGHredis/asyncio/observability/recorder.py0record a geo failover. args: fail_from: database failed from fail_to: database failed to reason: reason for the failoverSTRING
HIGHredis/observability/metrics.py0record the lag of a streaming message. args: lag_seconds: lag in seconds stream_name: stream name consumer_group: consumSTRING
HIGHredis/observability/recorder.py0record the lag of a streaming message. args: lag_seconds: lag in seconds stream_name: stream name consumer_group: consumSTRING
HIGHredis/asyncio/observability/recorder.py0record the lag of a streaming message. args: lag_seconds: lag in seconds stream_name: stream name consumer_group: consumSTRING
HIGHtests/test_pubsub.py0create a mock meter that tracks all instrument calls.STRING
HIGHtests/test_cluster.py0create a mock meter that tracks all instrument calls.STRING
HIGHtests/test_cluster_transaction.py0create a mock meter that tracks all instrument calls.STRING
HIGHtests/test_client.py0create a mock meter that tracks all instrument calls.STRING
HIGHtests/test_pipeline.py0create a mock meter that tracks all instrument calls.STRING
34 more matches not shown…
Excessive Try-Catch Wrapping244 hits · 238 pts
SeverityFileLineSnippetContext
LOWdoctests/query_em.py48except Exception:CODE
LOWdoctests/query_em.py56except Exception:CODE
LOWdoctests/query_em.py92except Exception:CODE
LOWdoctests/search_quickstart.py24except Exception:CODE
LOWredis/keyspace_notifications.py1735 except Exception:CODE
LOWredis/keyspace_notifications.py1839 except Exception:CODE
LOWredis/keyspace_notifications.py1889 except Exception:CODE
LOWredis/keyspace_notifications.py1927 except Exception:CODE
LOWredis/keyspace_notifications.py2093 except Exception:CODE
LOWredis/keyspace_notifications.py2106 except Exception:CODE
LOWredis/keyspace_notifications.py2157 except Exception:CODE
MEDIUMredis/client.py755def __del__(self):CODE
MEDIUMredis/client.py1041def __del__(self) -> None:CODE
MEDIUMredis/client.py1728def __del__(self):CODE
LOWredis/client.py758 except Exception:CODE
LOWredis/client.py853 except Exception as e:CODE
LOWredis/client.py1047 except Exception:CODE
LOWredis/client.py1210 except Exception as e:CODE
LOWredis/client.py1731 except Exception:CODE
LOWredis/client.py1871 except Exception as e:CODE
LOWredis/client.py2107 except Exception as e:CODE
LOWredis/background.py252 except Exception:CODE
LOWredis/background.py276 except Exception:CODE
LOWredis/background.py342 except Exception:CODE
LOWredis/background.py408 except Exception:CODE
LOWredis/background.py456 except Exception:CODE
LOWredis/background.py493 except Exception:CODE
MEDIUMredis/connection.py965def __del__(self):CODE
LOWredis/connection.py968 except Exception:CODE
LOWredis/connection.py657 except Exception as e:CODE
LOWredis/connection.py3111 except Exception:CODE
LOWredis/connection.py3510 except Exception:CODE
LOWredis/connection.py3552 except Exception:CODE
LOWredis/connection.py3584 except Exception:CODE
LOWredis/connection.py3635 except Exception:CODE
LOWredis/connection.py3742 except Exception:CODE
LOWredis/connection.py3767 except Exception:CODE
MEDIUMredis/cluster.py976def __del__(self):CODE
MEDIUMredis/cluster.py1959def close(self) -> None:CODE
MEDIUMredis/cluster.py2957def _get_node_pubsub(self, node):CODE
LOWredis/cluster.py979 except Exception:CODE
LOWredis/cluster.py1594 except Exception as e:CODE
LOWredis/cluster.py1869 except Exception as e:CODE
LOWredis/cluster.py2240 except Exception as exc:CODE
LOWredis/cluster.py2567 except Exception as e:CODE
LOWredis/cluster.py2672 except Exception as e:CODE
LOWredis/cluster.py2751 except Exception as e:CODE
LOWredis/cluster.py3051 except Exception:CODE
LOWredis/cluster.py3194 except Exception:CODE
LOWredis/cluster.py3243 except Exception:CODE
LOWredis/cluster.py3342 except Exception:CODE
LOWredis/cluster.py3510 except Exception:CODE
LOWredis/cluster.py4523 except Exception as e:CODE
LOWredis/auth/token_manager.py295 except Exception as e:CODE
LOWredis/auth/token_manager.py305 except Exception as e:CODE
LOWredis/auth/token_manager.py338 except Exception as e:CODE
LOWredis/auth/token_manager.py348 except Exception as e:CODE
MEDIUMredis/auth/token_manager.py214def acquire_token(self, force_refresh=False) -> TokenResponse:CODE
LOWredis/multidb/client.py88 except Exception:CODE
LOWredis/multidb/client.py426 except Exception:CODE
184 more matches not shown…
Self-Referential Comments69 hits · 216 pts
SeverityFileLineSnippetContext
MEDIUMdoctests/dt_vec_set.py263# Create a list of 300 arbitrary values.COMMENT
MEDIUMredis/keyspace_notifications.py1636 # Create the PubSub instance with ignore_subscribe_messages=FalseCOMMENT
MEDIUMredis/background.py228 # Create a new event loop for health checksCOMMENT
MEDIUMredis/connection.py3253 # Create the connection first, then record metrics only on successCOMMENT
MEDIUMredis/cluster.py2391 # Create a redis node with a custom connection poolCOMMENT
MEDIUMredis/cluster.py2522 # Create a new Redis connectionCOMMENT
MEDIUMredis/commands/json/path.py2 """This class represents a path in a JSON value."""STRING
MEDIUMredis/_parsers/commands.py344 # Create a CommandPolicies object with default policies on the new command.COMMENT
MEDIUMredis/_parsers/commands.py385 # Create a CommandPolicies object with default policies on the new command.COMMENT
MEDIUMredis/_parsers/commands.py641 # Create a CommandPolicies object with default policies on the new command.COMMENT
MEDIUMredis/_parsers/commands.py682 # Create a CommandPolicies object with default policies on the new command.COMMENT
MEDIUMtests/test_search.py1178 # Creating the index definitionCOMMENT
MEDIUMtests/test_search.py1188 # Creating the index definitionCOMMENT
MEDIUMtests/test_search.py576 # Creating the index definition and schemaCOMMENT
MEDIUMtests/test_search.py850 # Creating a client with one indexCOMMENT
MEDIUMtests/test_search.py897 # Creating the index definition with sortable and no_stemCOMMENT
MEDIUMtests/test_search.py911 # Creating the index definition and schemaCOMMENT
MEDIUMtests/test_search.py2207 # Creating the index definition and schemaCOMMENT
MEDIUMtests/test_connection_pool.py1317 # Create a connection that doesn't belong to this poolCOMMENT
MEDIUMtests/test_cluster.py246 # Create a subclass of RedisCluster that overrides __del__COMMENT
MEDIUMtests/test_cluster.py743 # Create a cluster with reading from replicationsCOMMENT
MEDIUMtests/test_cluster.py4402 # Create a cluster with reading from replicationsCOMMENT
MEDIUMtests/test_cluster.py4573 # Create a new event dispatcher and attach it to the clusterCOMMENT
MEDIUMtests/test_cluster.py4786 # Create a new event dispatcher and attach it to the clusterCOMMENT
MEDIUMtests/test_cache.py1549 # Create a cache with max_size=2COMMENT
MEDIUMtests/test_keyspace_notifications.py380 # Create a mock redis connection with pubsubCOMMENT
MEDIUMtests/test_keyspace_notifications.py626 # Create a new pubsub for the re-creationCOMMENT
MEDIUMtests/test_max_connections_error.py78 # Create a more complete mock clusterCOMMENT
MEDIUM…int_notifications/test_maint_notifications_handling.py987 # Create a pool and Redis client with maintenance notificationsCOMMENT
MEDIUM…int_notifications/test_maint_notifications_handling.py995 # Create a migrating notification (not handled by pool handler)COMMENT
MEDIUM…int_notifications/test_maint_notifications_handling.py611 # Create a pool and Redis client with maintenance notificationsCOMMENT
MEDIUM…int_notifications/test_maint_notifications_handling.py670 # Create a Redis client with disabled maintenance notifications configurationCOMMENT
MEDIUM…int_notifications/test_maint_notifications_handling.py685 # Create a new enabled configuration and set up pool handlerCOMMENT
MEDIUM…int_notifications/test_maint_notifications_handling.py700 # Create a new connection and validate it has full handlersCOMMENT
MEDIUM…int_notifications/test_maint_notifications_handling.py875 # Create a pool and Redis client with maintenance notificationsCOMMENT
MEDIUM…int_notifications/test_maint_notifications_handling.py959 # Create a pool and Redis client with maintenance notificationsCOMMENT
MEDIUM…int_notifications/test_maint_notifications_handling.py1039 # Create a pool and Redis client with maintenance notificationsCOMMENT
MEDIUM…int_notifications/test_maint_notifications_handling.py1126 # Create a pool and Redis client with disabled relaxed timeout configCOMMENT
MEDIUM…int_notifications/test_maint_notifications_handling.py1237 # Create a pool and Redis client with maintenance notificationsCOMMENT
MEDIUM…int_notifications/test_maint_notifications_handling.py1319 # Create a pool and Redis client with maintenance notifications and pool handlerCOMMENT
MEDIUM…int_notifications/test_maint_notifications_handling.py1451 # Create a pool and Redis client with maintenance notifications and pool handlerCOMMENT
MEDIUM…int_notifications/test_maint_notifications_handling.py1598 # Create a pool and Redis client with maintenance notifications and pool handlerCOMMENT
MEDIUM…int_notifications/test_maint_notifications_handling.py1681 # Create a pool and Redis client with maintenance notifications and pool handlerCOMMENT
MEDIUM…int_notifications/test_maint_notifications_handling.py1745 # Create a pool and Redis client with maintenance notifications and pool handlerCOMMENT
MEDIUMtests/test_multidb/test_client.py465 # Create a DatabaseConfig for the new database with highest weightCOMMENT
MEDIUMtests/test_observability/test_recorder.py285 # Create a mock connection poolCOMMENT
MEDIUMtests/test_observability/test_recorder.py1601 # Create a mock cache size callbackCOMMENT
MEDIUM…st_observability/test_metrics_connection_attributes.py126 # Create a ConnectionPool with MockConnectionWithoutHostPort as connection_classCOMMENT
MEDIUMtests/test_asyncio/test_search.py590 # Creating the index definition and schemaCOMMENT
MEDIUMtests/test_asyncio/test_search.py888 # Creating a client with one indexCOMMENT
MEDIUMtests/test_asyncio/test_search.py989 # Creating the index definition with sortable and no_stemCOMMENT
MEDIUMtests/test_asyncio/test_search.py1005 # Creating the index definition and schemaCOMMENT
MEDIUMtests/test_asyncio/test_search.py1652 # Creating the index definition and schemaCOMMENT
MEDIUMtests/test_asyncio/test_commands.py6548 # Create an empty stream by adding and deleting a messageCOMMENT
MEDIUMtests/test_asyncio/test_cluster.py3609 # Create a mock connection marked for reconnectCOMMENT
MEDIUMtests/test_asyncio/test_cluster.py3624 # Create a mock connection NOT marked for reconnectCOMMENT
MEDIUMtests/test_asyncio/test_cluster.py210 # Create a subclass of RedisCluster that overrides __del__COMMENT
MEDIUMtests/test_asyncio/test_cluster.py864 # Create a cluster with reading from replicationsCOMMENT
MEDIUMtests/test_asyncio/test_cluster.py3799 # Define a custom callbackCOMMENT
MEDIUMtests/test_asyncio/test_cluster.py4050 # Create a cluster with reading from replicationsCOMMENT
9 more matches not shown…
Unused Imports178 hits · 146 pts
SeverityFileLineSnippetContext
LOWdoctests/query_range.py4CODE
LOWdoctests/query_geo.py4CODE
LOWdoctests/query_ft.py4CODE
LOWdoctests/query_ft.py7CODE
LOWdoctests/query_ft.py7CODE
LOWdoctests/query_ft.py9CODE
LOWredis/keyspace_notifications.py59CODE
LOWredis/client.py29CODE
LOWredis/client.py91CODE
LOWredis/__init__.py1CODE
LOWredis/__init__.py2CODE
LOWredis/__init__.py3CODE
LOWredis/__init__.py3CODE
LOWredis/__init__.py4CODE
LOWredis/__init__.py5CODE
LOWredis/__init__.py6CODE
LOWredis/__init__.py6CODE
LOWredis/__init__.py6CODE
LOWredis/__init__.py6CODE
LOWredis/__init__.py6CODE
LOWredis/__init__.py13CODE
LOWredis/__init__.py13CODE
LOWredis/__init__.py14CODE
LOWredis/__init__.py14CODE
LOWredis/__init__.py14CODE
LOWredis/__init__.py14CODE
LOWredis/__init__.py14CODE
LOWredis/__init__.py14CODE
LOWredis/__init__.py14CODE
LOWredis/__init__.py14CODE
LOWredis/__init__.py14CODE
LOWredis/__init__.py14CODE
LOWredis/__init__.py14CODE
LOWredis/__init__.py14CODE
LOWredis/__init__.py14CODE
LOWredis/__init__.py14CODE
LOWredis/__init__.py30CODE
LOWredis/__init__.py30CODE
LOWredis/__init__.py30CODE
LOWredis/__init__.py30CODE
LOWredis/__init__.py30CODE
LOWredis/__init__.py30CODE
LOWredis/__init__.py30CODE
LOWredis/__init__.py30CODE
LOWredis/__init__.py30CODE
LOWredis/__init__.py30CODE
LOWredis/__init__.py30CODE
LOWredis/__init__.py30CODE
LOWredis/__init__.py30CODE
LOWredis/__init__.py30CODE
LOWredis/__init__.py30CODE
LOWredis/__init__.py30CODE
LOWredis/__init__.py30CODE
LOWredis/__init__.py30CODE
LOWredis/__init__.py50CODE
LOWredis/__init__.py50CODE
LOWredis/__init__.py50CODE
LOWredis/__init__.py50CODE
LOWredis/__init__.py56CODE
LOWredis/__init__.py57CODE
118 more matches not shown…
Deep Nesting180 hits · 127 pts
SeverityFileLineSnippetContext
LOWredis/ocsp.py22CODE
LOWredis/keyspace_notifications.py974CODE
LOWredis/keyspace_notifications.py1853CODE
LOWredis/keyspace_notifications.py2020CODE
LOWredis/keyspace_notifications.py2109CODE
LOWredis/client.py598CODE
LOWredis/client.py1514CODE
LOWredis/cache.py214CODE
LOWredis/connection.py2278CODE
LOWredis/connection.py1108CODE
LOWredis/connection.py1425CODE
LOWredis/connection.py1553CODE
LOWredis/connection.py1726CODE
LOWredis/connection.py2601CODE
LOWredis/connection.py2661CODE
LOWredis/connection.py2722CODE
LOWredis/connection.py3048CODE
LOWredis/connection.py3462CODE
LOWredis/connection.py3525CODE
LOWredis/utils.py358CODE
LOWredis/cluster.py1115CODE
LOWredis/cluster.py1488CODE
LOWredis/cluster.py1629CODE
LOWredis/cluster.py1998CODE
LOWredis/cluster.py2190CODE
LOWredis/cluster.py2436CODE
LOWredis/cluster.py2704CODE
LOWredis/cluster.py2999CODE
LOWredis/cluster.py3114CODE
LOWredis/cluster.py3142CODE
LOWredis/cluster.py3215CODE
LOWredis/cluster.py3757CODE
LOWredis/cluster.py4061CODE
LOWredis/cluster.py4748CODE
LOWredis/maint_notifications.py863CODE
LOWredis/maint_notifications.py1139CODE
LOWredis/observability/recorder.py542CODE
LOWredis/commands/core.py380CODE
LOWredis/commands/core.py2890CODE
LOWredis/commands/core.py4188CODE
LOWredis/commands/cluster.py1448CODE
LOWredis/commands/helpers.py73CODE
LOWredis/commands/search/result.py15CODE
LOWredis/commands/search/commands.py641CODE
LOWredis/commands/search/commands.py779CODE
LOWredis/commands/search/commands.py799CODE
LOWredis/commands/vectorset/utils.py74CODE
LOWredis/asyncio/keyspace_notifications.py447CODE
LOWredis/asyncio/keyspace_notifications.py714CODE
LOWredis/asyncio/keyspace_notifications.py880CODE
LOWredis/asyncio/client.py1537CODE
LOWredis/asyncio/client.py1752CODE
LOWredis/asyncio/client.py1925CODE
LOWredis/asyncio/connection.py1746CODE
LOWredis/asyncio/connection.py925CODE
LOWredis/asyncio/connection.py1219CODE
LOWredis/asyncio/connection.py1364CODE
LOWredis/asyncio/connection.py1462CODE
LOWredis/asyncio/connection.py1864CODE
LOWredis/asyncio/connection.py2005CODE
120 more matches not shown…
AI Structural Patterns93 hits · 71 pts
SeverityFileLineSnippetContext
LOWredis/client.py259CODE
LOWredis/connection.py325CODE
LOWredis/connection.py806CODE
LOWredis/connection.py2020CODE
LOWredis/connection.py2722CODE
LOWredis/cluster.py695CODE
LOWredis/cluster.py2109CODE
LOWredis/cluster.py3403CODE
LOWredis/observability/metrics.py479CODE
LOWredis/observability/config.py105CODE
LOWredis/http/http_client.py64CODE
LOWredis/commands/core.py341CODE
LOWredis/commands/core.py361CODE
LOWredis/commands/core.py380CODE
LOWredis/commands/core.py3399CODE
LOWredis/commands/core.py3417CODE
LOWredis/commands/core.py3434CODE
LOWredis/commands/core.py4150CODE
LOWredis/commands/core.py4169CODE
LOWredis/commands/core.py4188CODE
LOWredis/commands/core.py5222CODE
LOWredis/commands/core.py5236CODE
LOWredis/commands/core.py5249CODE
LOWredis/commands/core.py6797CODE
LOWredis/commands/core.py6813CODE
LOWredis/commands/core.py6828CODE
LOWredis/commands/core.py9875CODE
LOWredis/commands/core.py9891CODE
LOWredis/commands/core.py9906CODE
LOWredis/commands/core.py11317CODE
LOWredis/commands/core.py11335CODE
LOWredis/commands/core.py11352CODE
LOWredis/commands/core.py11416CODE
LOWredis/commands/core.py11433CODE
LOWredis/commands/core.py11449CODE
LOWredis/commands/core.py11535CODE
LOWredis/commands/core.py11554CODE
LOWredis/commands/core.py11572CODE
LOWredis/commands/core.py11654CODE
LOWredis/commands/core.py11672CODE
LOWredis/commands/core.py11689CODE
LOWredis/commands/timeseries/commands.py235CODE
LOWredis/commands/timeseries/commands.py251CODE
LOWredis/commands/timeseries/commands.py266CODE
LOWredis/commands/timeseries/commands.py395CODE
LOWredis/commands/timeseries/commands.py410CODE
LOWredis/commands/timeseries/commands.py424CODE
LOWredis/commands/timeseries/commands.py517CODE
LOWredis/commands/timeseries/commands.py532CODE
LOWredis/commands/timeseries/commands.py546CODE
LOWredis/commands/timeseries/commands.py773CODE
LOWredis/commands/timeseries/commands.py791CODE
LOWredis/commands/timeseries/commands.py808CODE
LOWredis/commands/timeseries/commands.py886CODE
LOWredis/commands/timeseries/commands.py904CODE
LOWredis/commands/timeseries/commands.py921CODE
LOWredis/commands/timeseries/commands.py1121CODE
LOWredis/commands/timeseries/commands.py1139CODE
LOWredis/commands/timeseries/commands.py1156CODE
LOWredis/commands/timeseries/commands.py1249CODE
33 more matches not shown…
Over-Commented Block77 hits · 68 pts
SeverityFileLineSnippetContext
LOWdoctests/dt_stream.py41res4 = r.xrange("race:france", "1691765278160-0", "+", 2)COMMENT
LOWdoctests/dt_stream.py61# [('1692629576966-0',COMMENT
LOWdoctests/dt_stream.py101 print(e) # >>> WRONGIDCOMMENT
LOWdoctests/dt_stream.py121# {'rider': 'Prickett', 'speed': '29.7', 'position': '2', 'location_id': '1'}COMMENT
LOWdoctests/dt_stream.py141# STEP_START xrange_step_1COMMENT
LOWdoctests/dt_stream.py161# >>> [COMMENT
LOWdoctests/dt_stream.py181# >>> [COMMENT
LOWdoctests/dt_stream.py261)COMMENT
LOWdoctests/dt_stream.py281 res25COMMENT
LOWdoctests/dt_stream.py321# STEP_START xautoclaim_cursorCOMMENT
LOWdoctests/dt_stream.py341print(COMMENT
LOWdoctests/query_geo.py61# REMOVE_STARTCOMMENT
LOWdoctests/query_ft.py41assert res.total == 2COMMENT
LOWdoctests/query_ft.py61# STEP_ENDCOMMENT
LOWdoctests/query_ft.py81# REMOVE_STARTCOMMENT
LOWdoctests/cmds_list.py121r.delete("mylist")COMMENT
LOWdoctests/query_em.py101print(res.total)COMMENT
LOWdoctests/dt_bitmap.py141# >>> 01011000COMMENT
LOWdoctests/search_quickstart.py221# STEP_START query_single_termCOMMENT
LOWdoctests/search_quickstart.py241# STEP_START query_single_term_limit_fieldsCOMMENT
LOWdoctests/search_quickstart.py261# ...COMMENT
LOWdoctests/search_quickstart.py281# ...COMMENT
LOWdoctests/search_quickstart.py301# 'json': '{COMMENT
LOWdoctests/search_quickstart.py321# >>> Result{1 total, docs: [COMMENT
LOWdoctests/search_quickstart.py341# >>> Result{1 total, docs: [COMMENT
LOWdoctests/search_quickstart.py361# >>> Result{1 total, docs: [COMMENT
LOWdoctests/search_quickstart.py381# >>> {COMMENT
LOWdoctests/search_quickstart.py421# ['condition', 'new', 'count', '5']]COMMENT
LOWdoctests/query_combined.py121# REMOVE_STARTCOMMENT
LOWdoctests/search_vss.py61res = pipeline.execute()COMMENT
LOWdoctests/search_vss.py101# >>> [True, True, True, True, True, True, True, True, True, True, True]COMMENT
LOWdoctests/search_vss.py161# >>> 11 documents indexed with 0 failuresCOMMENT
LOWdoctests/search_vss.py181assert all(COMMENT
LOWdoctests/search_vss.py201# 'brand': 'Peaknetic',COMMENT
LOWdoctests/search_vss.py221# 'id': 'bikes:009',COMMENT
LOWutil/wait-for-it.sh1#!/usr/bin/env bashCOMMENT
LOWredis/connection.py3121 # instance. if these values are the same, _checkpid() simply returns.COMMENT
LOWredis/cluster.py1761 # First, we will try to patch the slots/nodes cache with theCOMMENT
LOWredis/cluster.py2801 self.cluster = redis_clusterCOMMENT
LOWredis/cluster.py3021 # Only sunsubscribe mutates cluster-level shard state; bypassing theCOMMENT
LOWredis/cluster.py3221 old_pubsub.sunsubscribe(channel)COMMENT
LOWredis/cluster.py3261 self.health_check_response_counter = 0COMMENT
LOWredis/cluster.py3321 # node_pubsub_mapping under this lock. Without it, super().reset()COMMENT
LOWredis/cluster.py3341 pubsub.reset()COMMENT
LOWredis/cluster.py3761 # if there is a result on this command,COMMENT
LOWredis/cluster.py4221 # commands to it, but haven't read the responses), we needCOMMENT
LOWredis/cluster.py4241 # (MOVED, ASK, or connection errors or timeout errors)COMMENT
LOWredis/commands/core.py10661 # Maybe the client is pointed to a different server than the clientCOMMENT
LOWredis/commands/search/commands.py321 if len(_correction) != 3:COMMENT
LOWredis/asyncio/connection.py441 """COMMENT
LOWredis/asyncio/cluster.py1941 removed_node.disconnect_free_connections()COMMENT
LOWredis/asyncio/cluster.py2021 # Update the old primary to be a replica and add it to the end ofCOMMENT
LOWredis/asyncio/cluster.py3921 # reconnect target exists, so ``old_pubsub.subscribed``COMMENT
LOWredis/asyncio/cluster.py4001 # reinitialize_shard_subscriptions; since asyncio.Lock is non-COMMENT
LOWredis/asyncio/cluster.py4021 # Close all shard pubsub instances firstCOMMENT
LOWredis/asyncio/maint_notifications.py421 # The same SMIGRATED notification is delivered by the server on everyCOMMENT
LOWredis/asyncio/maint_notifications.py481 await self.remove_expired_notifications()COMMENT
LOWtests/test_bloom.py581# pipeline = client.bf().pipeline()COMMENT
LOWtests/test_multidb/test_client.py861 client = MultiDBClient(mock_multi_db_config)COMMENT
LOWtests/test_asyncio/test_json.py441# p.get("foo")COMMENT
17 more matches not shown…
Redundant / Tautological Comments44 hits · 65 pts
SeverityFileLineSnippetContext
LOWutil/wait-for-it.sh172 # Check if busybox timeout uses -t flagCOMMENT
LOWredis/keyspace_notifications.py1987 # Check if we've exceeded the total timeoutCOMMENT
LOWredis/connection.py1799 # Check if command response exists in a cache and it's not in progress.COMMENT
LOWredis/cluster.py2645 # Check if the slots are not fully coveredCOMMENT
LOWredis/sentinel.py266 # Check if command is supposed to return the originalCOMMENT
LOWredis/sentinel.py300 # Check if our sentinel doesn't see other nodesCOMMENT
LOWredis/maint_notifications.py712 # Check if the host is an IP addressCOMMENT
LOWredis/maint_notifications.py921 # Set state to MOVINGCOMMENT
LOWredis/observability/metrics.py512 # Check if this command should be trackedCOMMENT
LOWredis/observability/recorder.py476 # Check if channel names should be hiddenCOMMENT
LOWredis/observability/recorder.py520 # Check if stream names should be hiddenCOMMENT
LOWredis/observability/recorder.py571 # Check if stream names should be hiddenCOMMENT
LOWredis/observability/providers.py88 # Check if it's a real provider (not NoOp)COMMENT
LOWredis/asyncio/cluster.py2246 # Check if the slots are not fully coveredCOMMENT
LOWredis/asyncio/cluster.py2860 # Check if it has a command that failed with a relevantCOMMENT
LOWredis/asyncio/sentinel.py231 # Check if command is supposed to return the originalCOMMENT
LOWredis/asyncio/sentinel.py270 # Check if our sentinel doesn't see other nodesCOMMENT
LOWredis/asyncio/observability/recorder.py437 # Check if channel names should be hiddenCOMMENT
LOWredis/asyncio/observability/recorder.py474 # Check if stream names should be hiddenCOMMENT
LOWredis/asyncio/observability/recorder.py514 # Check if stream names should be hiddenCOMMENT
LOWredis/_parsers/commands.py285 # Check if this is a policy stringCOMMENT
LOWredis/_parsers/commands.py334 # Check if it's a core or module commandCOMMENT
LOWredis/_parsers/commands.py582 # Check if this is a policy stringCOMMENT
LOWredis/_parsers/commands.py631 # Check if it's a core or module commandCOMMENT
LOWtests/test_connect.py125 # Check if the base class defaults were taken over.COMMENT
LOWtests/test_connect.py128 # Verify if the timeout and the path is set correctly.COMMENT
LOWtests/test_vsets.py762 # Set attributes to NoneCOMMENT
LOWtests/test_vsets.py768 # Set attributes to empty dictCOMMENT
LOWtests/test_vsets.py780 # Set attributes to unexisting elementCOMMENT
LOWtests/test_vsets.py786 # Set attributes to unexisting vsetCOMMENT
LOWtests/test_cluster.py4976 # Check if any has error.type (the one from _raise_first_error)COMMENT
LOW…int_notifications/test_maint_notifications_handling.py219 # Check if this is a key that should trigger a push messageCOMMENT
LOW…int_notifications/test_maint_notifications_handling.py406 # Check if any of the sockets in rlist have data availableCOMMENT
LOWtests/test_parsers/test_errors.py139 # Check if any of the sockets in rlist have data availableCOMMENT
LOWtests/test_multidb/conftest.py36 # Check if the test is marked to skip connection mockingCOMMENT
LOWtests/test_asyncio/test_vsets.py762 # Set attributes to NoneCOMMENT
LOWtests/test_asyncio/test_vsets.py768 # Set attributes to empty dictCOMMENT
LOWtests/test_asyncio/test_vsets.py780 # Set attributes to unexisting elementCOMMENT
LOWtests/test_asyncio/test_vsets.py786 # Set attributes to unexisting vsetCOMMENT
LOWtests/test_asyncio/test_connection_pool.py271 # Check if the pool's lock is held during connectionCOMMENT
LOWtests/test_asyncio/test_multidb/conftest.py35 # Check if the test is marked to skip connection mockingCOMMENT
LOWbenchmarks/otel_benchmark.py1235 # Output resultsCOMMENT
LOWbenchmarks/otel_benchmark.py1264 # Output resultsCOMMENT
LOW.github/actions/run-tests/action.yml99 # Check if REDIS_VERSION is in the custom mapCOMMENT
Decorative Section Separators18 hits · 63 pts
SeverityFileLineSnippetContext
MEDIUMredis/keyspace_notifications.py1739# =============================================================================COMMENT
MEDIUMredis/keyspace_notifications.py1741# =============================================================================COMMENT
MEDIUMredis/keyspace_notifications.py103# =============================================================================COMMENT
MEDIUMredis/keyspace_notifications.py105# =============================================================================COMMENT
MEDIUMredis/keyspace_notifications.py543# =============================================================================COMMENT
MEDIUMredis/keyspace_notifications.py545# =============================================================================COMMENT
MEDIUMredis/keyspace_notifications.py1026# =============================================================================COMMENT
MEDIUMredis/keyspace_notifications.py1028# =============================================================================COMMENT
MEDIUMredis/keyspace_notifications.py1597# =============================================================================COMMENT
MEDIUMredis/keyspace_notifications.py1599# =============================================================================COMMENT
MEDIUMredis/asyncio/keyspace_notifications.py75# =============================================================================COMMENT
MEDIUMredis/asyncio/keyspace_notifications.py77# =============================================================================COMMENT
MEDIUMredis/asyncio/keyspace_notifications.py604# =============================================================================COMMENT
MEDIUMredis/asyncio/keyspace_notifications.py606# =============================================================================COMMENT
MEDIUMredis/asyncio/keyspace_notifications.py219# =============================================================================COMMENT
MEDIUMredis/asyncio/keyspace_notifications.py221# =============================================================================COMMENT
MEDIUMredis/asyncio/keyspace_notifications.py481# =============================================================================COMMENT
MEDIUMredis/asyncio/keyspace_notifications.py483# =============================================================================COMMENT
Modern Structural Boilerplate55 hits · 52 pts
SeverityFileLineSnippetContext
LOWredis/crc.py9__all__ = ["key_slot", "REDIS_CLUSTER_HASH_SLOTS"]CODE
LOWredis/credentials.py5logger = logging.getLogger(__name__)CODE
LOWredis/keyspace_notifications.py80logger = logging.getLogger(__name__)CODE
LOWredis/client.py102logger = logging.getLogger(__name__)CODE
LOWredis/client.py555 def set_retry(self, retry: Retry) -> None:CODE
LOWredis/client.py559 def set_response_callback(self, command: str, callback: Callable) -> None:CODE
LOWredis/__init__.py72__all__ = [CODE
LOWredis/retry.py55 def update_supported_errors(self, specified_errors: Iterable[Type[E]]) -> None:CODE
LOWredis/retry.py69 def update_retries(self, value: int) -> None:CODE
LOWredis/connection.py3348 def set_retry(self, retry: Retry) -> None:CODE
LOWredis/cluster.py99logger = logging.getLogger(__name__)CODE
LOWredis/cluster.py1150 def set_retry(self, retry: Retry) -> None:CODE
LOWredis/lock.py11logger = logging.getLogger(__name__)CODE
LOWredis/maint_notifications.py30logger = logging.getLogger(__name__)CODE
LOWredis/auth/token_manager.py12logger = logging.getLogger(__name__)CODE
LOWredis/multidb/client.py33logger = logging.getLogger(__name__)CODE
LOWredis/multidb/client.py138 def set_active_database(self, database: SyncDatabase) -> None:CODE
LOWredis/multidb/failover.py23 def set_databases(self, databases: Databases) -> None:CODE
LOWredis/multidb/failover.py68 def set_databases(self, databases: Databases) -> None:CODE
LOWredis/multidb/failure_detector.py26 def set_command_executor(self, command_executor) -> None:CODE
LOWredis/multidb/failure_detector.py78 def set_command_executor(self, command_executor) -> None:CODE
LOWredis/observability/metrics.py33logger = logging.getLogger(__name__)CODE
LOWredis/observability/__init__.py20__all__ = [CODE
LOWredis/observability/providers.py28logger = logging.getLogger(__name__)CODE
LOWredis/http/http_client.py14__all__ = ["HttpClient", "HttpResponse", "HttpError", "DEFAULT_TIMEOUT"]CODE
LOWredis/commands/__init__.py7__all__ = [CODE
LOWredis/asyncio/keyspace_notifications.py68logger = logging.getLogger(__name__)CODE
LOWredis/asyncio/client.py544 def set_retry(self, retry: Retry) -> None:CODE
LOWredis/asyncio/__init__.py41__all__ = [CODE
LOWredis/asyncio/connection.py784 def set_parser(self, parser_class: Type[BaseParser]) -> None:CODE
LOWredis/asyncio/connection.py1839 def set_retry(self, retry: "Retry") -> None:CODE
LOWredis/asyncio/connection.py2378 def update_connection_kwargs(self, **kwargs: Any) -> None:CODE
LOWredis/asyncio/connection.py2521 def _set_in_maintenance(self, in_maintenance: bool) -> None:CODE
LOWredis/asyncio/connection.py2908 def set_retry(self, retry: "Retry") -> None:CODE
LOWredis/asyncio/connection.py3010 def set_in_maintenance(self, in_maintenance: bool) -> None:CODE
LOWredis/asyncio/cluster.py142logger = logging.getLogger(__name__)CODE
LOWredis/asyncio/cluster.py791 def set_default_node(self, node: "ClusterNode") -> None:CODE
LOWredis/asyncio/cluster.py894 def set_retry(self, retry: Retry) -> None:CODE
LOWredis/asyncio/cluster.py897 def set_response_callback(self, command: str, callback: ResponseCallbackT) -> None:CODE
LOWredis/asyncio/cluster.py1731 def update_active_connections_for_reconnect(self) -> None:CODE
LOWredis/asyncio/cluster.py2379 def set_response_callback(self, command: str, callback: ResponseCallbackT) -> None:CODE
LOWredis/asyncio/cluster.py3429 def set_retry(self, retry: "Retry") -> None:CODE
LOWredis/asyncio/lock.py14logger = logging.getLogger(__name__)CODE
LOWredis/asyncio/maint_notifications.py28logger = logging.getLogger(__name__)CODE
LOWredis/asyncio/multidb/client.py30logger = logging.getLogger(__name__)CODE
LOWredis/asyncio/multidb/client.py151 async def set_active_database(self, database: AsyncDatabase) -> None:CODE
LOWredis/asyncio/multidb/failover.py23 def set_databases(self, databases: Databases) -> None:CODE
LOWredis/asyncio/multidb/failover.py68 def set_databases(self, databases: Databases) -> None:CODE
LOWredis/asyncio/multidb/healthcheck.py49logger = logging.getLogger(__name__)CODE
LOWredis/asyncio/multidb/failure_detector.py18 def set_command_executor(self, command_executor) -> None:CODE
LOWredis/asyncio/multidb/failure_detector.py37 def set_command_executor(self, command_executor) -> None:CODE
LOWredis/_parsers/__init__.py13__all__ = [CODE
LOWredis/_parsers/base.py64logger = logging.getLogger(__name__)CODE
LOWtests/test_scenario/test_active_active.py20logger = logging.getLogger(__name__)CODE
LOWtests/test_asyncio/test_scenario/test_active_active.py21logger = logging.getLogger(__name__)CODE
Structural Annotation Overuse30 hits · 48 pts
SeverityFileLineSnippetContext
LOW…int_notifications/test_maint_notifications_handling.py1791 # Step 2: Run command that will receive and handle MIGRATED notificationCOMMENT
LOW…int_notifications/test_maint_notifications_handling.py1800 # Step 3: Validate that MIGRATED notification was processed but MOVING settings remainCOMMENT
LOW…int_notifications/test_maint_notifications_handling.py1059 # Step 4: Validate timeout was updated to relaxed value after MIGRATINGCOMMENT
LOW…int_notifications/test_maint_notifications_handling.py1080 # Step 6: Validate socket timeout is still relaxed during commands 3-4COMMENT
LOW…int_notifications/test_maint_notifications_handling.py1095 # Step 8: Validate socket timeout is reversed back to original after MIGRATEDCOMMENT
LOW…int_notifications/test_maint_notifications_handling.py1257 # Step 4: Validate timeout was updated to relaxed value after MIGRATINGCOMMENT
LOW…int_notifications/test_maint_notifications_handling.py1278 # Step 6: Validate socket timeout is still relaxed during commands 3-4COMMENT
LOW…int_notifications/test_maint_notifications_handling.py1293 # Step 8: Validate socket timeout is reversed back to original after FAILED_OVERCOMMENT
LOW…int_notifications/test_maint_notifications_handling.py1767 # Step 1: Run command that will receive and handle MOVING notificationCOMMENT
LOW…int_notifications/test_maint_notifications_handling.py1817 # Step 4: Create new connections after MIGRATED to verify they still use MOVING settingsCOMMENT
LOWtests/test_observability/test_recorder.py1495 # Step 1: IDLE +1 (creation)COMMENT
LOWtests/test_observability/test_recorder.py1499 # Step 2: IDLE -1, USED +1 (acquire)COMMENT
LOWtests/test_observability/test_recorder.py1505 # Step 3: USED -1, IDLE +1 (release)COMMENT
LOWtests/test_observability/test_recorder.py1511 # Step 4: IDLE -1 (disconnect)COMMENT
LOWtests/test_asyncio/test_observability/test_recorder.py1113 # Step 1: IDLE +1 (creation)COMMENT
LOWtests/test_asyncio/test_observability/test_recorder.py1117 # Step 2: IDLE -1, USED +1 (acquire)COMMENT
LOWtests/test_asyncio/test_observability/test_recorder.py1123 # Step 3: USED -1, IDLE +1 (release)COMMENT
LOWtests/test_asyncio/test_observability/test_recorder.py1129 # Step 4: IDLE -1 (disconnect)COMMENT
LOW.agents/sync_async_type_hints_overload_guide.md19### Step 1: Check Official Redis DocumentationCOMMENT
LOW.agents/sync_async_type_hints_overload_guide.md26### Step 2: Check Local Response CallbacksCOMMENT
LOW.agents/sync_async_type_hints_overload_guide.md51### Step 3: Check Test AssertionsCOMMENT
LOW.agents/sync_async_type_hints_overload_guide.md75### Step 1: Add `@overload` SignaturesCOMMENT
LOW.agents/sync_async_type_hints_overload_guide.md82### Step 2: Mirror the Input SignatureCOMMENT
LOW.agents/sync_async_type_hints_overload_guide.md88### Step 3: Keep Original ImplementationCOMMENT
LOW.agents/sync_async_type_hints_overload_guide.md96### Step 4: Run Type CheckerCOMMENT
LOW.agents/sync_async_type_hints_overload_guide.md114## Step 1: Research the CommandCOMMENT
LOW.agents/sync_async_type_hints_overload_guide.md121## Step 2: Define the Function SignatureCOMMENT
LOW.agents/sync_async_type_hints_overload_guide.md140## Step 3: Implement the Overload PatternCOMMENT
LOW.agents/sync_async_type_hints_overload_guide.md177## Step 4: Register Response Callback (if needed)COMMENT
LOW.agents/sync_async_type_hints_overload_guide.md191## Step 5: Add TestsCOMMENT
Docstring Block Structure8 hits · 40 pts
SeverityFileLineSnippetContext
HIGHredis/keyspace_notifications.py670 Create a keyevent pattern for subscribing to all event types. This is equivalent to KeyeventChannel("*STRING
HIGHredis/keyspace_notifications.py936 Determine the type of a Redis keyspace notification channel. Args: channel: The channel name to check STRING
HIGHredis/keyspace_notifications.py1475 Start a background thread that polls for notifications and triggers handlers. This method spawns a thrSTRING
HIGHredis/background.py118 Runs a coroutine synchronously and returns its result. Uses the shared health check event loop to ensurSTRING
HIGHredis/commands/helpers.py188 Checks that at most one of the values in the iterable is truthy. Args: iterable: An iterable of valuesSTRING
HIGHredis/commands/json/commands.py29Convert a string or FPHAType instance to a validated FPHAType. Args: value: An ``FPHAType`` member STRING
HIGHredis/_parsers/commands.py216 Determines whether a given command or subcommand is considered "keyless". A keyless command does not oSTRING
HIGHredis/_parsers/commands.py513 Determines whether a given command or subcommand is considered "keyless". A keyless command does not oSTRING
AI Slop Vocabulary18 hits · 34 pts
SeverityFileLineSnippetContext
LOWredis/cluster.py1419 # so we can just return a random slotCOMMENT
LOWredis/cluster.py1427 # can be run on any node so we can just return a random slotCOMMENT
LOWredis/maint_notifications.py874 # just returnCOMMENT
LOWredis/asyncio/cluster.py952 # so we can just return a random slotCOMMENT
LOWredis/asyncio/cluster.py959 # can be run on any node so we can just return a random slotCOMMENT
LOWredis/asyncio/maint_notifications.py139 # just returnCOMMENT
LOWredis/_parsers/hiredis.py205 # blocking error, simply return False indicating thatCOMMENT
LOWredis/_parsers/resp3.py84 # necessary, so just return the exception instance here.COMMENT
LOWredis/_parsers/resp3.py218 # necessary, so just return the exception instance here.COMMENT
LOWredis/_parsers/socket.py81 # blocking error, simply return False indicating thatCOMMENT
LOWredis/_parsers/helpers.py341 # if for some reason the value can't be coerced, just useCOMMENT
LOWredis/_parsers/resp2.py49 # necessary, so just return the exception instance here.COMMENT
LOWredis/_parsers/resp2.py113 # necessary, so just return the exception instance here.COMMENT
LOWtests/test_ssl.py399 # Don't actually wrap the socket, just return the original socketCOMMENT
MEDIUMtests/test_asyncio/test_cwe_404.py97 # ignore errors on close pertaining to no event loop. Don't wantCOMMENT
MEDIUMbenchmarks/otel_benchmark.py883 # Create comprehensive generator with baseline redis moduleCOMMENT
MEDIUMbenchmarks/otel_benchmark.py939 # Create async comprehensive generator with baseline redis moduleCOMMENT
MEDIUMbenchmarks/base.py16 # eventually make this more robust and take optional args fromCOMMENT
Verbosity Indicators20 hits · 30 pts
SeverityFileLineSnippetContext
LOWredis/multidb/config.py74 grace_period (float): Grace period after which we need to check if the circuit could be closed again.STRING
LOWredis/asyncio/multidb/config.py76 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.py1791 # Step 2: Run command that will receive and handle MIGRATED notificationCOMMENT
LOW…int_notifications/test_maint_notifications_handling.py1800 # Step 3: Validate that MIGRATED notification was processed but MOVING settings remainCOMMENT
LOW…int_notifications/test_maint_notifications_handling.py1059 # Step 4: Validate timeout was updated to relaxed value after MIGRATINGCOMMENT
LOW…int_notifications/test_maint_notifications_handling.py1080 # Step 6: Validate socket timeout is still relaxed during commands 3-4COMMENT
LOW…int_notifications/test_maint_notifications_handling.py1095 # Step 8: Validate socket timeout is reversed back to original after MIGRATEDCOMMENT
LOW…int_notifications/test_maint_notifications_handling.py1257 # Step 4: Validate timeout was updated to relaxed value after MIGRATINGCOMMENT
LOW…int_notifications/test_maint_notifications_handling.py1278 # Step 6: Validate socket timeout is still relaxed during commands 3-4COMMENT
LOW…int_notifications/test_maint_notifications_handling.py1293 # Step 8: Validate socket timeout is reversed back to original after FAILED_OVERCOMMENT
LOW…int_notifications/test_maint_notifications_handling.py1767 # Step 1: Run command that will receive and handle MOVING notificationCOMMENT
LOW…int_notifications/test_maint_notifications_handling.py1817 # Step 4: Create new connections after MIGRATED to verify they still use MOVING settingsCOMMENT
LOWtests/test_observability/test_recorder.py1495 # Step 1: IDLE +1 (creation)COMMENT
LOWtests/test_observability/test_recorder.py1499 # Step 2: IDLE -1, USED +1 (acquire)COMMENT
LOWtests/test_observability/test_recorder.py1505 # Step 3: USED -1, IDLE +1 (release)COMMENT
LOWtests/test_observability/test_recorder.py1511 # Step 4: IDLE -1 (disconnect)COMMENT
LOWtests/test_asyncio/test_observability/test_recorder.py1113 # Step 1: IDLE +1 (creation)COMMENT
LOWtests/test_asyncio/test_observability/test_recorder.py1117 # Step 2: IDLE -1, USED +1 (acquire)COMMENT
LOWtests/test_asyncio/test_observability/test_recorder.py1123 # Step 3: USED -1, IDLE +1 (release)COMMENT
LOWtests/test_asyncio/test_observability/test_recorder.py1129 # Step 4: IDLE -1 (disconnect)COMMENT
Hallucination Indicators2 hits · 20 pts
SeverityFileLineSnippetContext
CRITICALredis/multidb/event.py74 for node in event.old_database.client.nodes_manager.nodes_cache.values():CODE
CRITICALtests/test_asyncio/test_scenario/conftest.py289 await client.command_executor.active_database.client.connection_pool.disconnect()CODE
Cross-Language Confusion2 hits · 12 pts
SeverityFileLineSnippetContext
HIGHdoctests/dt_json.py72print(res12) # >>> ['["Deimos", { "crashes": 0 }, null]']CODE
HIGH…int_notifications/test_maint_notifications_handling.py249 # 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
Slop Phrases5 hits · 7 pts
SeverityFileLineSnippetContext
LOWredis/client.py1744 # make sure to reset the connection state in the event that we wereCOMMENT
LOWredis/cluster.py4751 # make sure to reset the connection state in the event that we wereCOMMENT
LOWredis/asyncio/client.py1756 # make sure to reset the connection state in the event that we wereCOMMENT
LOWredis/asyncio/cluster.py3288 # make sure to reset the connection state in the event that weCOMMENT
LOWredis/_parsers/socket.py102 length = length + 2 # make sure to read the \r\n terminatorCODE
Fake / Example Data2 hits · 2 pts
SeverityFileLineSnippetContext
LOWtests/test_search.py940 client.hset("doc2", mapping={"f1": "very important", "f2": "lorem ipsum"})CODE
LOWtests/test_asyncio/test_search.py1035 "doc2", mapping={"f1": "very important", "f2": "lorem ipsum"}CODE
Overly Generic Function Names3 hits · 2 pts
SeverityFileLineSnippetContext
LOWtests/test_commands.py8382 def helper():CODE
LOWtests/test_asyncio/test_commands.py6358 async def helper():CODE
LOWdocs/examples/opentelemetry/main.py31def handle_request(client):CODE