Repository Analysis

dbcli/mycli

A Terminal Client for MySQL with AutoCompletion and Syntax Highlighting.

34.1 Strong AI signal View on GitHub

Analysis Overview

This report presents the forensic synthetic code analysis of dbcli/mycli, a Python project with 11,942 GitHub stars. SynthScan v2.0 examined 40,611 lines of code across 141 source files, recording 1435 pattern matches distributed across 13 syntactic categories. The overall adjusted score of 34.1 places this repository in the Strong 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).

34.1
Adjusted Score
34.1
Raw Score
100%
Time Factor
2026-07-14
Last Push
11.9K
Stars
Python
Language
40.6K
Lines of Code
141
Files
1.4K
Pattern Hits
2026-07-14
Scan Date
0.11
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 0HIGH 15MEDIUM 15LOW 1405

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 1435 distinct pattern matches across 13 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 Identifiers1188 hits · 1058 pts
SeverityFileLineSnippetContext
LOWmycli/cli_runner.py96def expand_dsn_alias_env_vars(CODE
LOWmycli/config.py141def read_and_decrypt_mylogin_cnf(f: BinaryIO) -> BytesIO | None:CODE
LOWmycli/completion_refresher.py129 def _invalidate_after_visibility_deadline(self) -> None:CODE
LOWmycli/client.py204 def _invalidate_prompt_session(self) -> None:CODE
LOWmycli/clitoolbar.py11def create_toolbar_tokens_func(CODE
LOWmycli/schema_prefetcher.py170 def _invalidate_after_visibility_deadline(self) -> None:CODE
LOWmycli/client_commands.py34 def register_special_commands(self) -> None:CODE
LOWmycli/sqlcompleter.py1211 def _register_schema_completions(CODE
LOWmycli/sqlcompleter.py1250 def quote_collection_if_needed(CODE
LOWmycli/client_query.py59 def _on_completions_refreshed(self, new_completer: SQLCompleter) -> None:CODE
LOWmycli/ssh_tunnel.py39def _check_local_socket_path_limit(path: str) -> None:CODE
LOWmycli/app_state.py65def destructive_keywords_from_config(config: ConfigObj) -> list[str]:CODE
LOWmycli/packages/cli_utils.py22def is_valid_connection_scheme(text: str) -> tuple[bool, str | None]:CODE
LOWmycli/packages/interactive_utils.py28def confirm_destructive_query(keywords: list[str], queries: str) -> bool | None:CODE
LOWmycli/packages/batch_utils.py9def statements_from_filehandle(file_h: IO) -> Generator[tuple[str, int], None, None]:CODE
LOWmycli/packages/key_binding_utils.py114def handle_unprettify_binding(STRING
LOWmycli/packages/completion_engine.py73def _keyword_and_special_suggestions() -> list[Suggestion]:CODE
LOWmycli/packages/completion_engine.py78def _parse_suggestion_statement(text_before_cursor: str) -> sqlparse.sql.Statement:CODE
LOWmycli/packages/completion_engine.py126def _is_single_or_double_quoted(ctx: SuggestContext) -> bool:CODE
LOWmycli/packages/completion_engine.py383def _word_starts_with_digit_or_dot(ctx: SuggestContext) -> bool:CODE
LOWmycli/packages/completion_engine.py391def _word_inside_single_or_double_quotes(ctx: SuggestContext) -> bool:CODE
LOWmycli/packages/completion_engine.py411def _token_is_relation_keyword(ctx: SuggestContext) -> bool:CODE
LOWmycli/packages/completion_engine.py419def _token_is_binary_or_comma(ctx: SuggestContext) -> bool:CODE
LOWmycli/packages/completion_engine.py822def suggest_based_on_last_token(CODE
LOWmycli/packages/sql_utils.py173def extract_table_identifiers(token_stream: Generator[Any, None, None]) -> Generator[tuple[str | None, str, str], None, STRING
LOWmycli/packages/sql_utils.py221def extract_columns_from_select(sql: str) -> list[str]:CODE
LOWmycli/packages/sql_utils.py271def extract_tables_from_complete_statements(sql: str) -> list[tuple[str | None, str, str | None]]:CODE
LOWmycli/packages/sql_utils.py362def query_is_single_table_update(query: str) -> bool:CODE
LOWmycli/packages/sql_utils.py488def classify_sandbox_statement(text: str) -> tuple[str | None, str | None]:CODE
LOWmycli/packages/special/iocommands.py87def set_show_warnings_enabled(val: bool) -> None:CODE
LOWmycli/packages/special/iocommands.py192def set_forced_horizontal_output(val: bool) -> None:CODE
LOWmycli/packages/special/iocommands.py390def subst_favorite_query_args(query: str, args: list[str]) -> list[str | None]:CODE
LOWmycli/packages/special/iocommands.py702def flush_pipe_once_if_written(post_redirect_command: str) -> None:CODE
LOWmycli/packages/ptoolkit/history.py27 def load_history_with_timestamp(self) -> list[tuple[str, str]]:CODE
LOWmycli/main_modes/repl.py99def complete_while_typing_filter() -> bool:CODE
LOWmycli/main_modes/repl.py169def set_external_terminal_tab_title(mycli: 'MyCli') -> None:CODE
LOWmycli/main_modes/repl.py187def set_external_terminal_window_title(mycli: 'MyCli') -> None:CODE
LOWmycli/main_modes/repl.py205def set_external_multiplex_window_title(mycli: 'MyCli') -> None:CODE
LOWmycli/main_modes/repl.py231def set_external_multiplex_pane_title(mycli: 'MyCli') -> None:CODE
LOWmycli/main_modes/batch.py92def dispatch_batch_statements(CODE
LOWmycli/main_modes/batch.py132def main_batch_with_progress_bar(mycli: 'MyCli', cli_args: 'CliArgs') -> int:CODE
LOWmycli/main_modes/batch.py188def main_batch_without_progress_bar(mycli: 'MyCli', cli_args: 'CliArgs') -> int:CODE
LOWtest/utils.py245def call_click_entrypoint_direct(cli_args: main.CliArgs) -> None:CODE
LOWtest/features/steps/crud_database.py40def step_db_connect_quoted_tmp(context):CODE
LOWtest/features/steps/crud_database.py99def step_see_db_dropped_no_default(context):CODE
LOWtest/features/steps/named_queries.py33def step_see_named_query_saved(context):CODE
LOWtest/features/steps/named_queries.py39def step_see_named_query_executed(context):CODE
LOWtest/features/steps/named_queries.py45def step_see_named_query_deleted(context):CODE
LOWtest/features/steps/named_queries.py51def step_save_named_query_with_parameters(context):CODE
LOWtest/features/steps/named_queries.py57def step_use_named_query_with_parameters(context):CODE
LOWtest/features/steps/named_queries.py63def step_see_named_query_with_parameters_executed(context):CODE
LOWtest/features/steps/named_queries.py69def step_use_named_query_with_too_few_parameters(context):CODE
LOWtest/features/steps/named_queries.py75def step_see_named_query_with_parameters_fail_with_missing_parameters(context):CODE
LOWtest/features/steps/named_queries.py81def step_use_named_query_with_too_many_parameters(context):CODE
LOWtest/features/steps/named_queries.py87def step_see_named_query_with_parameters_fail_with_extra_parameters(context):CODE
LOWtest/features/steps/connection.py14def step_run_cli_without_args(context, excluded_args, exact_args=""):CODE
LOWtest/features/steps/iocommands.py107def step_see_csv_result_in_redirected_ouput(context, result):STRING
LOWtest/features/steps/iocommands.py115def step_see_text_result_in_redirected_ouput(context, result):STRING
LOWtest/features/steps/basic_commands.py68def step_check_application_name(context):STRING
LOWtest/features/steps/basic_commands.py123def step_confirm_destructive_command(context): # noqaSTRING
1128 more matches not shown…
Unused Imports100 hits · 82 pts
SeverityFileLineSnippetContext
LOWmycli/cli_runner.py1CODE
LOWmycli/cli_runner.py27CODE
LOWmycli/client.py1CODE
LOWmycli/schema_prefetcher.py10CODE
LOWmycli/schema_prefetcher.py21CODE
LOWmycli/schema_prefetcher.py22CODE
LOWmycli/client_commands.py1CODE
LOWmycli/client_connection.py1CODE
LOWmycli/sqlcompleter.py1CODE
LOWmycli/vault.py1CODE
LOWmycli/client_query.py1CODE
LOWmycli/ssh_tunnel.py1CODE
LOWmycli/app_state.py1CODE
LOWmycli/main.py1CODE
LOWmycli/output.py1CODE
LOWmycli/sqlexecute.py1CODE
LOWmycli/packages/cli_utils.py1CODE
LOWmycli/packages/key_binding_utils.py1CODE
LOWmycli/packages/key_binding_utils.py12CODE
LOWmycli/packages/sql_utils.py1CODE
LOWmycli/packages/tabular_output/sql_format.py3CODE
LOWmycli/packages/special/delimitercommand.py1CODE
LOWmycli/packages/special/__init__.py3CODE
LOWmycli/packages/special/__init__.py3CODE
LOWmycli/packages/special/__init__.py3CODE
LOWmycli/packages/special/__init__.py8CODE
LOWmycli/packages/special/__init__.py8CODE
LOWmycli/packages/special/__init__.py8CODE
LOWmycli/packages/special/__init__.py8CODE
LOWmycli/packages/special/__init__.py8CODE
LOWmycli/packages/special/__init__.py8CODE
LOWmycli/packages/special/__init__.py8CODE
LOWmycli/packages/special/__init__.py8CODE
LOWmycli/packages/special/__init__.py8CODE
LOWmycli/packages/special/__init__.py8CODE
LOWmycli/packages/special/__init__.py8CODE
LOWmycli/packages/special/__init__.py8CODE
LOWmycli/packages/special/__init__.py8CODE
LOWmycli/packages/special/__init__.py8CODE
LOWmycli/packages/special/__init__.py8CODE
LOWmycli/packages/special/__init__.py8CODE
LOWmycli/packages/special/__init__.py8CODE
LOWmycli/packages/special/__init__.py8CODE
LOWmycli/packages/special/__init__.py8CODE
LOWmycli/packages/special/__init__.py8CODE
LOWmycli/packages/special/__init__.py8CODE
LOWmycli/packages/special/__init__.py8CODE
LOWmycli/packages/special/__init__.py8CODE
LOWmycli/packages/special/__init__.py8CODE
LOWmycli/packages/special/__init__.py8CODE
LOWmycli/packages/special/__init__.py8CODE
LOWmycli/packages/special/__init__.py8CODE
LOWmycli/packages/special/__init__.py8CODE
LOWmycli/packages/special/__init__.py8CODE
LOWmycli/packages/special/__init__.py8CODE
LOWmycli/packages/special/__init__.py8CODE
LOWmycli/packages/special/__init__.py8CODE
LOWmycli/packages/special/__init__.py8CODE
LOWmycli/packages/special/__init__.py8CODE
LOWmycli/packages/special/__init__.py8CODE
40 more matches not shown…
Cross-Language Confusion10 hits · 70 pts
SeverityFileLineSnippetContext
HIGHtest/features/steps/crud_table.py109 context.cli.sendline("select null;")CODE
HIGHtest/pytests/test_sqlexecute.py356 run(executor, """create table ts_null(a timestamp null)""")CODE
HIGHtest/pytests/test_sqlexecute.py357 run(executor, """insert into ts_null values(null)""")CODE
HIGHtest/pytests/test_sqlexecute.py364 run(executor, """create table dt_null(a datetime null)""")CODE
HIGHtest/pytests/test_sqlexecute.py365 run(executor, """insert into dt_null values(null)""")CODE
HIGHtest/pytests/test_sqlexecute.py372 run(executor, """create table date_null(a date null)""")CODE
HIGHtest/pytests/test_sqlexecute.py373 run(executor, """insert into date_null values(null)""")CODE
HIGHtest/pytests/test_sqlexecute.py380 run(executor, """create table time_null(a time null)""")CODE
HIGHtest/pytests/test_sqlexecute.py381 run(executor, """insert into time_null values(null)""")CODE
HIGHtest/pytests/test_completion_engine.py1130 suggestion = suggest_type("SELECT MAX(col1 || FROM tbl", "SELECT MAX(col1 || ")CODE
Excessive Try-Catch Wrapping55 hits · 62 pts
SeverityFileLineSnippetContext
MEDIUMmycli/client.py197 print("Error: Unable to read login path file.")CODE
LOWmycli/client.py211 except Exception:CODE
LOWmycli/client.py216 except Exception:CODE
LOWmycli/client.py221 except Exception:CODE
MEDIUMmycli/client.py208def close(self) -> None:CODE
LOWmycli/schema_prefetcher.py130 except Exception as e: # pragma: no cover - defensiveCODE
LOWmycli/schema_prefetcher.py138 except Exception as e:CODE
LOWmycli/schema_prefetcher.py150 except Exception as e:CODE
LOWmycli/schema_prefetcher.py155 except Exception: # pragma: no cover - defensiveCODE
LOWmycli/schema_prefetcher.py259 except Exception: # pragma: no cover - defensiveCODE
LOWmycli/client_connection.py113 except Exception:CODE
LOWmycli/client_connection.py265 except Exception as e:CODE
LOWmycli/client_connection.py374 except Exception as e: # Connecting to a database could fail.CODE
LOWmycli/sqlcompleter.py1114 except Exception:CODE
LOWmycli/main.py377 except Exception as e:CODE
LOWmycli/sqlexecute.py346 except Exception as e:CODE
LOWmycli/sqlexecute.py457 except Exception as e:CODE
LOWmycli/sqlexecute.py572 except Exception as e:CODE
LOWmycli/packages/key_binding_utils.py100 except Exception:STRING
LOWmycli/packages/key_binding_utils.py122 except Exception:STRING
LOWmycli/packages/sql_utils.py449 except Exception:CODE
LOWmycli/packages/sql_utils.py467 except Exception:CODE
LOWmycli/packages/special/llm.py76 except Exception as e:CODE
LOWmycli/packages/special/llm.py283 except Exception as e:STRING
LOWmycli/packages/special/llm.py358 except Exception:STRING
LOWmycli/packages/special/iocommands.py666 except Exception as e:CODE
LOWmycli/main_modes/repl.py528 except Exception as e:CODE
LOWmycli/main_modes/repl.py750 except Exception as e2:CODE
LOWmycli/main_modes/repl.py775 except Exception as e:CODE
LOWmycli/main_modes/repl.py789 except Exception as e:CODE
LOWmycli/main_modes/execute.py53 except Exception as e:CODE
LOWmycli/main_modes/list_dsn.py17 except Exception as e:CODE
LOWtest/utils.py259except Exception:CODE
LOWtest/utils.py270 except Exception:CODE
LOWtest/features/environment.py83 except Exception:CODE
MEDIUMtest/pytests/test_special_iocommands.py255 print(f"An error occurred while attempting to delete the file: {e}")CODE
MEDIUMtest/pytests/test_special_iocommands.py319 print(f"An error occurred while attempting to delete the file: {e}")CODE
LOWtest/pytests/test_special_iocommands.py254 except Exception as e:CODE
LOWtest/pytests/test_special_iocommands.py318 except Exception as e:CODE
LOWtest/pytests/test_completer_use_switch.py93 except Exception:CODE
LOWtest/pytests/test_special_main.py55 except Exception:CODE
MEDIUMtest/pytests/test_main.py1885 print(f"An error occurred while attempting to delete the file: {e}")CODE
MEDIUMtest/pytests/test_main.py1904 print(f"An error occurred while attempting to delete the file: {e}")CODE
LOWtest/pytests/test_main.py361 except Exception as e:CODE
LOWtest/pytests/test_main.py366 except Exception as e:CODE
MEDIUMtest/pytests/test_main.py579 print(f"An error occurred while attempting to delete the file: {e}")STRING
MEDIUMtest/pytests/test_main.py670 print(f"An error occurred while attempting to delete the file: {e}")STRING
LOWtest/pytests/test_main.py1884 except Exception as e:CODE
LOWtest/pytests/test_main.py1903 except Exception as e:CODE
MEDIUMtest/pytests/test_main.py2064 print(f'An error occurred while attempting to delete the file: {e}')STRING
MEDIUMtest/pytests/test_main.py887 print(f"An error occurred while attempting to delete the file: {e}")STRING
LOWtest/pytests/test_main.py578 except Exception as e:STRING
LOWtest/pytests/test_main.py669 except Exception as e:STRING
LOWtest/pytests/test_main.py2063 except Exception as e:STRING
LOWtest/pytests/test_main.py886 except Exception as e:STRING
Deep Nesting40 hits · 40 pts
SeverityFileLineSnippetContext
LOWmycli/cli_runner.py123CODE
LOWmycli/completion_refresher.py66CODE
LOWmycli/clistyle.py140CODE
LOWmycli/clistyle.py170CODE
LOWmycli/client_connection.py48CODE
LOWmycli/client_connection.py268CODE
LOWmycli/sqlcompleter.py1403CODE
LOWmycli/sqlcompleter.py1849CODE
LOWmycli/client_query.py74CODE
LOWmycli/ssh_tunnel.py199CODE
LOWmycli/output.py107CODE
LOWmycli/output.py190CODE
LOWmycli/sqlexecute.py122CODE
LOWmycli/sqlexecute.py350CODE
LOWmycli/sqlexecute.py602CODE
LOWmycli/packages/batch_utils.py9CODE
LOWmycli/packages/completion_engine.py632CODE
LOWmycli/packages/completion_engine.py688CODE
LOWmycli/packages/sql_utils.py128CODE
LOWmycli/packages/sql_utils.py173CODE
LOWmycli/packages/sql_utils.py221CODE
LOWmycli/packages/filepaths.py12CODE
LOWmycli/packages/filepaths.py113CODE
LOWmycli/packages/tabular_output/sql_format.py30CODE
LOWmycli/packages/special/delimitercommand.py38CODE
LOWmycli/packages/special/llm.py47CODE
LOWmycli/packages/special/llm.py220CODE
LOWmycli/packages/special/iocommands.py337CODE
LOWmycli/packages/special/iocommands.py451CODE
LOWmycli/packages/special/iocommands.py739CODE
LOWmycli/packages/ptoolkit/history.py27CODE
LOWmycli/main_modes/checkup.py71CODE
LOWmycli/main_modes/repl.py412CODE
LOWmycli/main_modes/repl.py595CODE
LOWmycli/main_modes/repl.py843CODE
LOWmycli/main_modes/repl.py859CODE
LOWmycli/main_modes/batch.py28CODE
LOWmycli/main_modes/batch.py92CODE
LOWmycli/main_modes/batch.py132CODE
LOWmycli/main_modes/execute.py16CODE
Cross-File Repetition5 hits · 25 pts
SeverityFileLineSnippetContext
HIGHtest/features/steps/crud_database.py0steps for behavioral style tests are defined in this module. each step is defined by the string decorating it. this striSTRING
HIGHtest/features/steps/named_queries.py0steps for behavioral style tests are defined in this module. each step is defined by the string decorating it. this striSTRING
HIGHtest/features/steps/crud_table.py0steps for behavioral style tests are defined in this module. each step is defined by the string decorating it. this striSTRING
HIGHtest/features/steps/basic_commands.py0steps for behavioral style tests are defined in this module. each step is defined by the string decorating it. this striSTRING
HIGHtest/features/steps/specials.py0steps for behavioral style tests are defined in this module. each step is defined by the string decorating it. this striSTRING
Modern Structural Boilerplate21 hits · 24 pts
SeverityFileLineSnippetContext
LOWmycli/config.py14logger = logging.getLogger(__name__)CODE
LOWmycli/clistyle.py12logger = logging.getLogger(__name__)CODE
LOWmycli/sqlcompleter.py1157 def set_dbname(self, dbname: str | None) -> None:CODE
LOWmycli/packages/hybrid_redirection.py9logger = logging.getLogger(__name__)CODE
LOWmycli/packages/special/dbcommands.py20logger = logging.getLogger(__name__)CODE
LOWmycli/packages/special/iocommands.py59def set_timing_enabled(val: bool) -> None:CODE
LOWmycli/packages/special/iocommands.py64def set_pager_enabled(val: bool) -> None:CODE
LOWmycli/packages/special/iocommands.py73def set_show_favorite_query(val: bool) -> None:CODE
LOWmycli/packages/special/iocommands.py82def set_destructive_keywords(val: list[str]) -> None:CODE
LOWmycli/packages/special/iocommands.py87def set_show_warnings_enabled(val: bool) -> None:CODE
LOWmycli/packages/special/iocommands.py183def set_expanded_output(val: bool) -> None:CODE
LOWmycli/packages/special/iocommands.py192def set_forced_horizontal_output(val: bool) -> None:CODE
LOWmycli/packages/special/utils.py12logger = logging.getLogger(__name__)CODE
LOWmycli/packages/special/main.py22logger = logging.getLogger(__name__)CODE
LOWmycli/main_modes/repl.py162def set_all_external_titles(mycli: 'MyCli') -> None:CODE
LOWmycli/main_modes/repl.py169def set_external_terminal_tab_title(mycli: 'MyCli') -> None:CODE
LOWmycli/main_modes/repl.py187def set_external_terminal_window_title(mycli: 'MyCli') -> None:CODE
LOWmycli/main_modes/repl.py205def set_external_multiplex_window_title(mycli: 'MyCli') -> None:CODE
LOWmycli/main_modes/repl.py231def set_external_multiplex_pane_title(mycli: 'MyCli') -> None:CODE
LOWtest/pytests/test_sqlexecute.py629 def set_ciphers(self, cipher_string: str) -> None:CODE
LOWtest/pytests/test_sqlexecute.py827 def set_character_set(self, *args, **kwargs) -> None:CODE
Self-Referential Comments2 hits · 6 pts
SeverityFileLineSnippetContext
MEDIUMmycli/config.py182 # Create a bytes buffer to hold the plaintext.COMMENT
MEDIUMmycli/completion_refresher.py74 # Create a new sqlexecute method to populate the completions.COMMENT
Dead Code3 hits · 6 pts
SeverityFileLineSnippetContext
MEDIUMtest/pytests/test_sqlcompleter.py428CODE
MEDIUMtest/pytests/test_main_modes_batch.py279CODE
MEDIUMtest/pytests/test_main_modes_batch.py300CODE
AI Structural Patterns4 hits · 4 pts
SeverityFileLineSnippetContext
LOWmycli/client.py66CODE
LOWmycli/client_connection.py48CODE
LOWmycli/sqlexecute.py189CODE
LOWtest/pytests/test_sqlexecute.py19CODE
Redundant / Tautological Comments2 hits · 3 pts
SeverityFileLineSnippetContext
LOWmycli/client_connection.py366 # Check if SQLExecute detected sandbox mode during connectionCOMMENT
LOWtest/pytests/test_completion_refresher.py136 # Set refreshers to 0: we're not testing refresh logic hereCOMMENT
Over-Commented Block2 hits · 2 pts
SeverityFileLineSnippetContext
LOWmycli/packages/completion_engine.py21# missing because not binaryCOMMENT
LOWtest/features/environment.py141# TODO: uncomment to debug a failureCOMMENT
Fake / Example Data3 hits · 2 pts
SeverityFileLineSnippetContext
LOWtest/pytests/test_main.py837 testdata = "Lorem ipsum dolor sit amet consectetur adipiscing elit sed do".split(" ")CODE
LOWtest/pytests/test_main.py837 testdata = "Lorem ipsum dolor sit amet consectetur adipiscing elit sed do".split(" ")CODE
LOWtest/pytests/test_special_utils.py288 user='user@example.com',CODE