🐚 Python-powered shell. Full-featured, cross-platform and AI-friendly.
This report presents the forensic synthetic code analysis of xonsh/xonsh, a Python project with 9,552 GitHub stars. SynthScan v2.0 examined 161,273 lines of code across 420 source files, recording 3303 pattern matches distributed across 20 syntactic categories. The overall adjusted score of 27.8 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 3303 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 | tests/test_aliases_llm.py | 38 | def test_no_args_returns_usage_error(fake_winutils_sudo): | CODE |
| LOW | tests/test_aliases_llm.py | 55 | def test_resolved_binary_path_is_normalized(fake_winutils_sudo, monkeypatch): | CODE |
| LOW | tests/test_aliases_llm.py | 69 | def test_cmd_builtin_dispatched_via_cmd_exe(fake_winutils_sudo, monkeypatch): | CODE |
| LOW | tests/test_aliases_llm.py | 80 | def test_cmd_builtin_match_is_case_insensitive(fake_winutils_sudo, monkeypatch): | CODE |
| LOW | tests/test_aliases_llm.py | 89 | def test_resolved_binary_takes_precedence_over_cmd_builtin( | CODE |
| LOW⚡ | tests/test_aliases_llm.py | 100 | def test_windows_cmd_aliases_is_frozen(): | CODE |
| LOW⚡ | tests/test_aliases_llm.py | 118 | def test_lxml_decorator_registered_when_lxml_available(xession): | CODE |
| LOW⚡ | tests/test_aliases_llm.py | 124 | def test_lxml_decorator_parses_and_supports_xpath(xession): | CODE |
| LOW | tests/test_aliases_llm.py | 141 | def test_lxml_decorator_unavailable(xession, monkeypatch): | CODE |
| LOW⚡ | tests/test_builtins.py | 91 | def test_glob_excludes_dotfiles_by_default(self): | CODE |
| LOW⚡ | tests/test_builtins.py | 95 | def test_glob_includes_dotfiles_when_enabled(self): | CODE |
| LOW⚡ | tests/test_builtins.py | 99 | def test_reglob_excludes_dotfiles_by_default(self): | CODE |
| LOW⚡ | tests/test_builtins.py | 103 | def test_reglob_includes_dotfiles_when_enabled(self): | CODE |
| LOW⚡ | tests/test_builtins.py | 349 | def test_convert_macro_arg_str(kind): | CODE |
| LOW⚡ | tests/test_builtins.py | 356 | def test_convert_macro_arg_ast(kind): | CODE |
| LOW⚡ | tests/test_builtins.py | 363 | def test_convert_macro_arg_code(kind): | CODE |
| LOW⚡ | tests/test_builtins.py | 370 | def test_convert_macro_arg_eval(kind): | CODE |
| LOW⚡ | tests/test_builtins.py | 482 | def test_call_macro_raw_kwarg(arg): | CODE |
| LOW⚡ | tests/test_builtins.py | 491 | def test_call_macro_raw_kwargs(arg): | CODE |
| LOW⚡ | tests/test_builtins.py | 499 | def test_call_macro_ast_eval_expr(): | CODE |
| LOW⚡ | tests/test_builtins.py | 507 | def test_call_macro_ast_single_expr(): | CODE |
| LOW⚡ | tests/test_builtins.py | 515 | def test_call_macro_ast_exec_expr(): | CODE |
| LOW⚡ | tests/test_builtins.py | 523 | def test_call_macro_ast_eval_statement(): | CODE |
| LOW⚡ | tests/test_builtins.py | 563 | def test_xonshpathliteral_contextmanager(tmp_path): | CODE |
| LOW⚡ | tests/test_builtins.py | 577 | def test_resetting_signal_handle_off_main_thread_is_noop(): | CODE |
| LOW | tests/test_builtins.py | 38 | def test_dynamic_access_proxy_setattr(): | CODE |
| LOW | tests/test_builtins.py | 208 | def test_repath_containing_asterisk(path, pattern): | CODE |
| LOW | tests/test_builtins.py | 219 | def test_repath_containing_plus_sign(path, pattern): | CODE |
| LOW | tests/test_builtins.py | 239 | def test_single_group_returns_strings(self, xession): | CODE |
| LOW | tests/test_builtins.py | 247 | def test_no_groups_returns_paths(self, xession): | CODE |
| LOW | tests/test_builtins.py | 311 | def test_list_of_strs_or_callables(exp, inp): | CODE |
| LOW | tests/test_builtins.py | 324 | def test_list_of_list_of_strs_outer_product(xession, inp, exp): | CODE |
| LOW | tests/test_builtins.py | 382 | def test_convert_macro_arg_exec(kind): | CODE |
| LOW | tests/test_builtins.py | 403 | def test_convert_macro_arg_type(kind): | CODE |
| LOW | tests/test_builtins.py | 538 | def test_call_macro_ast_single_statement(): | CODE |
| LOW | tests/test_builtins.py | 546 | def test_call_macro_ast_exec_statement(): | CODE |
| LOW | tests/test_man.py | 104 | def test_bsd_man_page_completions(xession, check_completer, cmd, exp): | CODE |
| LOW⚡ | tests/test_webconfig_routes_llm.py | 82 | def test_colors_page_renders_html(make_route): | CODE |
| LOW⚡ | tests/test_webconfig_routes_llm.py | 90 | def test_colors_page_post_updates_env_var(xession, make_route): | CODE |
| LOW⚡ | tests/test_webconfig_routes_llm.py | 96 | def test_colors_page_post_no_selection_is_noop(xession, make_route): | CODE |
| LOW⚡ | tests/test_webconfig_routes_llm.py | 104 | def test_colors_page_get_selected_returns_tag(make_route): | CODE |
| LOW⚡ | tests/test_webconfig_routes_llm.py | 113 | def test_prompts_page_renders_html(make_route): | CODE |
| LOW⚡ | tests/test_webconfig_routes_llm.py | 120 | def test_prompts_page_post_updates_prompt(xession, make_route): | CODE |
| LOW⚡ | tests/test_webconfig_routes_llm.py | 126 | def test_prompts_page_post_strips_carriage_returns(xession, make_route): | CODE |
| LOW⚡ | tests/test_webconfig_routes_llm.py | 132 | def test_prompts_page_post_no_data_is_noop(xession, make_route): | CODE |
| LOW⚡ | tests/test_webconfig_routes_llm.py | 142 | def test_xontribs_page_renders_html(make_route): | CODE |
| LOW⚡ | tests/test_webconfig_routes_llm.py | 148 | def test_xontribs_page_mod_name(): | CODE |
| LOW⚡ | tests/test_webconfig_routes_llm.py | 152 | def test_xontribs_page_post_no_data_is_noop(make_route): | CODE |
| LOW⚡ | tests/test_webconfig_routes_llm.py | 161 | def test_env_variables_page_renders_table(make_route): | CODE |
| LOW⚡ | tests/test_webconfig_routes_llm.py | 170 | def test_aliases_page_renders_table_with_no_aliases(xession, make_route): | CODE |
| LOW⚡ | tests/test_webconfig_routes_llm.py | 177 | def test_aliases_page_renders_table_with_aliases(xession, make_route): | CODE |
| LOW⚡ | tests/test_webconfig_routes_llm.py | 232 | def test_get_nav_links_yields_each_registered_page(make_route): | CODE |
| LOW⚡ | tests/test_webconfig_routes_llm.py | 239 | def test_get_nav_links_marks_active_page(make_route): | CODE |
| LOW⚡ | tests/test_webconfig_routes_llm.py | 249 | def test_get_sel_url_appends_query_string(make_route): | CODE |
| LOW⚡ | tests/test_webconfig_routes_llm.py | 259 | def test_get_display_handles_valid_html(): | CODE |
| LOW⚡ | tests/test_webconfig_routes_llm.py | 266 | def test_get_display_falls_back_to_pre_for_invalid_html(): | CODE |
| LOW | tests/test_webconfig_routes_llm.py | 59 | def test_routes_registry_includes_known_paths(): | CODE |
| LOW | tests/test_webconfig_routes_llm.py | 68 | def test_route_registry_subclassing_registers_new_paths(): | CODE |
| LOW | tests/test_webconfig_routes_llm.py | 192 | def test_aliases_page_skips_callable_aliases(xession, make_route): | CODE |
| LOW | tests/test_webconfig_routes_llm.py | 210 | def test_route_err_appends_to_err_msgs(make_route): | CODE |
| 2091 more matches not shown… | ||||
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| MEDIUM⚡ | tests/test_aliases_llm.py | 107 | # --------------------------------------------------------------------------- | COMMENT |
| MEDIUM⚡ | tests/test_aliases_llm.py | 109 | # --------------------------------------------------------------------------- | COMMENT |
| MEDIUM⚡ | tests/test_pyghooks_llm.py | 229 | # --------------------------------------------------------------------------- | COMMENT |
| MEDIUM⚡ | tests/test_pyghooks_llm.py | 239 | # --------------------------------------------------------------------------- | COMMENT |
| MEDIUM⚡ | tests/test_subproc_raise_error.py | 28 | # --------------------------------------------------------------------------- | COMMENT |
| MEDIUM⚡ | tests/test_subproc_raise_error.py | 30 | # --------------------------------------------------------------------------- | COMMENT |
| MEDIUM⚡ | tests/test_subproc_raise_error.py | 286 | # --------------------------------------------------------------------------- | COMMENT |
| MEDIUM⚡ | tests/test_subproc_raise_error.py | 289 | # --------------------------------------------------------------------------- | COMMENT |
| MEDIUM⚡ | tests/test_subproc_raise_error.py | 382 | # --------------------------------------------------------------------------- | COMMENT |
| MEDIUM⚡ | tests/test_subproc_raise_error.py | 385 | # --------------------------------------------------------------------------- | COMMENT |
| MEDIUM⚡ | tests/test_subproc_raise_error.py | 623 | # --------------------------------------------------------------------------- | COMMENT |
| MEDIUM⚡ | tests/test_subproc_raise_error.py | 630 | # --------------------------------------------------------------------------- | COMMENT |
| MEDIUM | tests/test_subproc_raise_error.py | 123 | # --------------------------------------------------------------------------- | COMMENT |
| MEDIUM | tests/test_subproc_raise_error.py | 125 | # --------------------------------------------------------------------------- | COMMENT |
| MEDIUM⚡ | tests/test_debug_llm.py | 18 | # --------------------------------------------------------------------------- | COMMENT |
| MEDIUM⚡ | tests/test_debug_llm.py | 20 | # --------------------------------------------------------------------------- | COMMENT |
| MEDIUM⚡ | tests/test_debug_llm.py | 48 | # --------------------------------------------------------------------------- | COMMENT |
| MEDIUM⚡ | tests/test_debug_llm.py | 50 | # --------------------------------------------------------------------------- | COMMENT |
| MEDIUM⚡ | tests/test_debug_llm.py | 111 | # --------------------------------------------------------------------------- | COMMENT |
| MEDIUM⚡ | tests/test_debug_llm.py | 113 | # --------------------------------------------------------------------------- | COMMENT |
| MEDIUM⚡ | tests/test_debug_llm.py | 135 | # --------------------------------------------------------------------------- | COMMENT |
| MEDIUM⚡ | tests/test_debug_llm.py | 137 | # --------------------------------------------------------------------------- | COMMENT |
| MEDIUM⚡ | tests/test_debug_llm.py | 240 | # --------------------------------------------------------------------------- | COMMENT |
| MEDIUM⚡ | tests/test_debug_llm.py | 242 | # --------------------------------------------------------------------------- | COMMENT |
| MEDIUM⚡ | tests/test_debug_llm.py | 418 | # --------------------------------------------------------------------------- | COMMENT |
| MEDIUM⚡ | tests/test_debug_llm.py | 420 | # --------------------------------------------------------------------------- | COMMENT |
| MEDIUM⚡ | tests/test_debug_llm.py | 437 | # --------------------------------------------------------------------------- | COMMENT |
| MEDIUM⚡ | tests/test_debug_llm.py | 439 | # --------------------------------------------------------------------------- | COMMENT |
| MEDIUM⚡ | tests/test_debug_llm.py | 470 | # --------------------------------------------------------------------------- | COMMENT |
| MEDIUM⚡ | tests/test_debug_llm.py | 472 | # --------------------------------------------------------------------------- | COMMENT |
| MEDIUM⚡ | tests/test_debug_llm.py | 623 | # --------------------------------------------------------------------------- | COMMENT |
| MEDIUM⚡ | tests/test_debug_llm.py | 625 | # --------------------------------------------------------------------------- | COMMENT |
| MEDIUM⚡ | tests/test_debug_llm.py | 643 | # --------------------------------------------------------------------------- | COMMENT |
| MEDIUM⚡ | tests/test_debug_llm.py | 651 | # --------------------------------------------------------------------------- | COMMENT |
| MEDIUM | tests/test_debug_llm.py | 331 | # --------------------------------------------------------------------------- | COMMENT |
| MEDIUM | tests/test_debug_llm.py | 333 | # --------------------------------------------------------------------------- | COMMENT |
| MEDIUM | tests/test_debug_llm.py | 541 | # --------------------------------------------------------------------------- | COMMENT |
| MEDIUM | tests/test_debug_llm.py | 543 | # --------------------------------------------------------------------------- | COMMENT |
| MEDIUM⚡ | tests/test_main_terminal_llm.py | 403 | # --------------------------------------------------------------------------- | COMMENT |
| MEDIUM⚡ | tests/test_main_terminal_llm.py | 405 | # --------------------------------------------------------------------------- | COMMENT |
| MEDIUM⚡ | tests/test_main_terminal_llm.py | 489 | # --------------------------------------------------------------------------- | COMMENT |
| MEDIUM⚡ | tests/test_main_terminal_llm.py | 491 | # --------------------------------------------------------------------------- | COMMENT |
| MEDIUM | tests/test_main_terminal_llm.py | 694 | # ── _setup_ctrl_break: Windows Ctrl+Break / SIGBREAK (issue #4852) ───────── | COMMENT |
| MEDIUM⚡ | tests/test_foreign_shells_llm.py | 179 | # --------------------------------------------------------------------------- | COMMENT |
| MEDIUM⚡ | tests/test_foreign_shells_llm.py | 186 | # --------------------------------------------------------------------------- | COMMENT |
| MEDIUM | tests/test_foreign_shells_llm.py | 256 | # --------------------------------------------------------------------------- | COMMENT |
| MEDIUM | tests/test_foreign_shells_llm.py | 266 | # --------------------------------------------------------------------------- | COMMENT |
| MEDIUM⚡ | tests/test_environ_llm.py | 96 | # ── singleton & exposure ─────────────────────────────────────────────── | COMMENT |
| MEDIUM⚡ | tests/test_environ_llm.py | 124 | # ── direct assignment ───────────────────────────────────────────────── | COMMENT |
| MEDIUM⚡ | tests/test_environ_llm.py | 151 | # ── swap (thread-local) ─────────────────────────────────────────────── | COMMENT |
| MEDIUM⚡ | tests/test_environ_llm.py | 190 | # ── overlay parameter (used by callable aliases) ────────────────────── | COMMENT |
| MEDIUM⚡ | tests/test_environ_llm.py | 219 | # ── detype ──────────────────────────────────────────────────────────── | COMMENT |
| MEDIUM⚡ | tests/test_environ_llm.py | 249 | # ── iteration & membership ──────────────────────────────────────────── | COMMENT |
| MEDIUM⚡ | tests/test_environ_llm.py | 265 | # ── events ──────────────────────────────────────────────────────────── | COMMENT |
| MEDIUM | tests/test_environ_llm.py | 85 | # ═══ DELETE_VAR sentinel ═══════════════════════════════════════════════ | COMMENT |
| MEDIUM | tests/test_environ_llm.py | 294 | # ── integration: SubprocSpec.prep_env_subproc ───────────────────────── | COMMENT |
| MEDIUM⚡ | tests/lint/test_linter_cli_llm.py | 119 | # --------------------------------------------------------------------- | COMMENT |
| MEDIUM⚡ | tests/lint/test_linter_cli_llm.py | 121 | # --------------------------------------------------------------------- | COMMENT |
| MEDIUM⚡ | tests/lint/test_linter_cli_llm.py | 149 | # --------------------------------------------------------------------- | COMMENT |
| MEDIUM⚡ | tests/lint/test_linter_cli_llm.py | 151 | # --------------------------------------------------------------------- | COMMENT |
| 298 more matches not shown… | ||||
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| HIGH | xonsh-in-docker.py | 17 | RUN pip install --upgrade pip && pip install {packages} | CODE |
| HIGH | xonsh-in-docker.py | 27 | RUN pip install --upgrade pip && pip install {packages} | CODE |
| HIGH⚡ | tests/test_subproc_raise_error.py | 51 | tree = xonsh_execer.parse("echo 1 && echo 2\n", ctx=None) | CODE |
| HIGH⚡ | tests/test_subproc_raise_error.py | 60 | tree = xonsh_execer.parse("echo 1 || echo 2\n", ctx=None) | CODE |
| HIGH⚡ | tests/test_subproc_raise_error.py | 106 | tree = xonsh_execer.parse("echo 1 || echo 2; ls nono\n", ctx=None) | CODE |
| HIGH⚡ | tests/test_subproc_raise_error.py | 149 | xonsh_execer.exec("echo a && echo b\n") | CODE |
| HIGH⚡ | tests/test_subproc_raise_error.py | 155 | xonsh_execer.exec("ls /__nope__ && echo never\n") | CODE |
| HIGH⚡ | tests/test_subproc_raise_error.py | 161 | xonsh_execer.exec("echo ok && ls /__nope__\n") | CODE |
| HIGH⚡ | tests/test_subproc_raise_error.py | 167 | xonsh_execer.exec("echo ok || ls /__nope__\n") | CODE |
| HIGH⚡ | tests/test_subproc_raise_error.py | 172 | xonsh_execer.exec("ls /__nope__ || echo fb\n") | CODE |
| HIGH⚡ | tests/test_subproc_raise_error.py | 178 | xonsh_execer.exec("ls /__nope1__ || ls /__nope2__\n") | CODE |
| HIGH⚡ | tests/test_subproc_raise_error.py | 184 | xonsh_execer.exec("echo a || echo b; ls /__nope__\n") | CODE |
| HIGH⚡ | tests/test_subproc_raise_error.py | 204 | xonsh_execer.exec("p = $(ls /__nope__ 2>/dev/null)\n") | CODE |
| HIGH⚡ | tests/test_subproc_raise_error.py | 240 | xonsh_execer.exec("ls /__nope__ && echo never\n") | CODE |
| HIGH⚡ | tests/test_subproc_raise_error.py | 253 | xonsh_execer.exec("ls /__nope__ || echo fb\n") | CODE |
| HIGH⚡ | tests/test_subproc_raise_error.py | 283 | xonsh_execer.exec("@error_raise ls /__nope__ || echo fb\n") | CODE |
| HIGH⚡ | tests/test_subproc_raise_error.py | 307 | xonsh_execer.exec("echo a && echo b && ls /__nope__\n") | CODE |
| HIGH⚡ | tests/test_subproc_raise_error.py | 316 | xonsh_execer.exec("ls /__nope__ && echo never1 && echo never2\n") | CODE |
| HIGH⚡ | tests/test_subproc_raise_error.py | 325 | xonsh_execer.exec("ls /__nope__ && echo n || echo fb\n") | CODE |
| HIGH⚡ | tests/test_subproc_raise_error.py | 325 | xonsh_execer.exec("ls /__nope__ && echo n || echo fb\n") | CODE |
| HIGH⚡ | tests/test_subproc_raise_error.py | 333 | xonsh_execer.exec("echo a && ls /__nope__ || echo fb\n") | CODE |
| HIGH⚡ | tests/test_subproc_raise_error.py | 333 | xonsh_execer.exec("echo a && ls /__nope__ || echo fb\n") | CODE |
| HIGH⚡ | tests/test_subproc_raise_error.py | 392 | xonsh_execer.exec("ls /__n1__ || ls /__n2__ || ls /__n3__\n") | CODE |
| HIGH⚡ | tests/test_subproc_raise_error.py | 398 | xonsh_execer.exec("ls /__n1__ || ls /__n2__ || echo ok\n") | CODE |
| HIGH⚡ | tests/test_subproc_raise_error.py | 404 | xonsh_execer.exec("ls /__n1__ || echo ok || ls /__n3__\n") | CODE |
| HIGH⚡ | tests/test_subproc_raise_error.py | 410 | xonsh_execer.exec("echo ok || ls /__n2__ || ls /__n3__\n") | CODE |
| HIGH⚡ | tests/test_subproc_raise_error.py | 419 | xonsh_execer.exec("ls /__nope__ || echo ok && echo yes\n") | CODE |
| HIGH⚡ | tests/test_subproc_raise_error.py | 419 | xonsh_execer.exec("ls /__nope__ || echo ok && echo yes\n") | CODE |
| HIGH⚡ | tests/test_subproc_raise_error.py | 428 | xonsh_execer.exec("ls /__nope__ || echo ok && ls /__n2__\n") | CODE |
| HIGH⚡ | tests/test_subproc_raise_error.py | 428 | xonsh_execer.exec("ls /__nope__ || echo ok && ls /__n2__\n") | CODE |
| HIGH⚡ | tests/test_subproc_raise_error.py | 438 | xonsh_execer.exec("ls /__n1__ && echo n || ls /__n2__\n") | CODE |
| HIGH⚡ | tests/test_subproc_raise_error.py | 438 | xonsh_execer.exec("ls /__n1__ && echo n || ls /__n2__\n") | CODE |
| HIGH⚡ | tests/test_subproc_raise_error.py | 447 | xonsh_execer.exec("echo ok | grep x && echo n\n") | CODE |
| HIGH⚡ | tests/test_subproc_raise_error.py | 455 | xonsh_execer.exec("echo ok | grep x || echo fb\n") | CODE |
| HIGH⚡ | tests/test_subproc_raise_error.py | 463 | xonsh_execer.exec("echo ok | grep ok && echo yes\n") | CODE |
| HIGH⚡ | tests/test_subproc_raise_error.py | 483 | xonsh_execer.exec("@error_raise ls /__nope__ || echo fb\n") | CODE |
| HIGH⚡ | tests/test_subproc_raise_error.py | 518 | xonsh_execer.exec("ls /__nope__ || echo fb\n") | CODE |
| HIGH⚡ | tests/test_subproc_raise_error.py | 527 | xonsh_execer.exec("ls /__n1__ && echo n\n") | CODE |
| HIGH⚡ | tests/test_subproc_raise_error.py | 528 | xonsh_execer.exec("ls /__n1__ || ls /__n2__\n") | CODE |
| HIGH⚡ | tests/test_subproc_raise_error.py | 564 | xonsh_execer.exec("echo a && echo b && echo c && echo d\n") | CODE |
| HIGH⚡ | tests/test_subproc_raise_error.py | 571 | xonsh_execer.exec("ls /__n1__ || ls /__n2__ || ls /__n3__ || ls /__n4__\n") | CODE |
| HIGH⚡ | tests/test_subproc_raise_error.py | 577 | xonsh_execer.exec("ls /__n1__ || ls /__n2__ || ls /__n3__ || echo ok\n") | CODE |
| HIGH⚡ | tests/test_subproc_raise_error.py | 611 | xonsh_execer.exec("@error_ignore ls /__n1__ || ls /__n2__\n") | CODE |
| HIGH⚡ | tests/test_subproc_raise_error.py | 687 | base_shell.default("echo ok && ls /__nope_specific__\n") | CODE |
| HIGH⚡ | tests/test_subproc_raise_error.py | 697 | base_shell.default("ls /__nope_specific__ || echo fb\n") | CODE |
| HIGH⚡ | tests/test_subproc_raise_error.py | 48 | """``echo 1 && echo 2`` wraps the BoolOp and tags both operands | STRING |
| HIGH⚡ | tests/test_subproc_raise_error.py | 103 | """``echo 1 || echo 2; ls nono`` wraps both statements: the BoolOp | STRING |
| HIGH⚡ | tests/test_subproc_raise_error.py | 166 | """``echo ok || ls /__nope__`` — first succeeds, second never runs.""" | STRING |
| HIGH⚡ | tests/test_subproc_raise_error.py | 303 | """``cmd1 && cmd2 && cmd3`` where the last fails — raises on the | STRING |
| HIGH⚡ | tests/test_subproc_raise_error.py | 312 | """``cmd1 && cmd2 && cmd3`` where the first fails — short-circuits | STRING |
| HIGH⚡ | tests/test_subproc_raise_error.py | 321 | """``ls nono && echo n || echo fb`` — Python precedence is | STRING |
| HIGH⚡ | tests/test_subproc_raise_error.py | 321 | """``ls nono && echo n || echo fb`` — Python precedence is | STRING |
| HIGH⚡ | tests/test_subproc_raise_error.py | 330 | """``echo a && ls nono || echo fb`` — ``ls`` (the second op of the | STRING |
| HIGH⚡ | tests/test_subproc_raise_error.py | 330 | """``echo a && ls nono || echo fb`` — ``ls`` (the second op of the | STRING |
| HIGH⚡ | tests/test_subproc_raise_error.py | 390 | """``fail || fail || fail`` — all fail, chain result is falsy → raise.""" | STRING |
| HIGH⚡ | tests/test_subproc_raise_error.py | 397 | """``fail || fail || echo ok`` — last succeeds, chain result is truthy.""" | STRING |
| HIGH⚡ | tests/test_subproc_raise_error.py | 403 | """``fail || echo ok || fail`` — middle succeeds, ``or`` short-circuits.""" | STRING |
| HIGH⚡ | tests/test_subproc_raise_error.py | 409 | """``echo ok || fail || fail`` — first succeeds, rest never evaluated.""" | STRING |
| HIGH⚡ | tests/test_subproc_raise_error.py | 415 | """``fail || echo ok && echo yes`` — Python precedence: | STRING |
| HIGH⚡ | tests/test_subproc_raise_error.py | 415 | """``fail || echo ok && echo yes`` — Python precedence: | STRING |
| 86 more matches not shown… | ||||
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| LOW | setup.py | 199 | CODE | |
| LOW | tests/test_pyghooks.py | 256 | CODE | |
| LOW | tests/test_commands_cache.py | 297 | CODE | |
| LOW | tests/completers/test_path_completers.py | 149 | CODE | |
| LOW | xonsh/codecache.py | 147 | CODE | |
| LOW | xonsh/cli_utils.py | 495 | CODE | |
| LOW | xonsh/color_tools.py | 406 | CODE | |
| LOW | xonsh/ansi_colors.py | 79 | CODE | |
| LOW | xonsh/ansi_colors.py | 169 | CODE | |
| LOW | xonsh/ansi_colors.py | 290 | CODE | |
| LOW | xonsh/foreign_shells.py | 804 | CODE | |
| LOW | xonsh/execer.py | 246 | CODE | |
| LOW | xonsh/execer.py | 253 | CODE | |
| LOW | xonsh/events.py | 108 | CODE | |
| LOW | xonsh/events.py | 204 | CODE | |
| LOW | xonsh/commands_cache.py | 484 | CODE | |
| LOW | xonsh/tools.py | 292 | CODE | |
| LOW | xonsh/tools.py | 320 | CODE | |
| LOW | xonsh/tools.py | 418 | CODE | |
| LOW | xonsh/tools.py | 713 | CODE | |
| LOW | xonsh/tools.py | 813 | CODE | |
| LOW | xonsh/tools.py | 2581 | CODE | |
| LOW | xonsh/tools.py | 2746 | CODE | |
| LOW | xonsh/tools.py | 2953 | CODE | |
| LOW | xonsh/tools.py | 3008 | CODE | |
| LOW | xonsh/shell.py | 318 | CODE | |
| LOW | xonsh/completer.py | 173 | CODE | |
| LOW | xonsh/completer.py | 256 | CODE | |
| LOW | xonsh/completer.py | 401 | CODE | |
| LOW | xonsh/completer.py | 481 | CODE | |
| LOW | xonsh/xontribs.py | 130 | CODE | |
| LOW | xonsh/xontribs.py | 343 | CODE | |
| LOW | xonsh/xontribs.py | 495 | CODE | |
| LOW | xonsh/xontribs.py | 143 | CODE | |
| LOW | xonsh/style_tools.py | 85 | CODE | |
| LOW | xonsh/platform.py | 440 | CODE | |
| LOW | xonsh/platform.py | 559 | CODE | |
| LOW | xonsh/platform.py | 644 | CODE | |
| LOW | xonsh/platform.py | 725 | CODE | |
| LOW | xonsh/aliases.py | 992 | CODE | |
| LOW | xonsh/aliases.py | 1193 | CODE | |
| LOW | xonsh/aliases.py | 1542 | CODE | |
| LOW | xonsh/aliases.py | 1673 | CODE | |
| LOW | xonsh/parser.py | 10 | CODE | |
| LOW | xonsh/wizard.py | 649 | CODE | |
| LOW | xonsh/wizard.py | 671 | CODE | |
| LOW | xonsh/wizard.py | 739 | CODE | |
| LOW | xonsh/built_ins.py | 305 | CODE | |
| LOW | xonsh/built_ins.py | 676 | CODE | |
| LOW | xonsh/pyghooks.py | 170 | CODE | |
| LOW | xonsh/pyghooks.py | 350 | CODE | |
| LOW | xonsh/pyghooks.py | 1482 | CODE | |
| LOW | xonsh/pyghooks.py | 1602 | CODE | |
| LOW | xonsh/pyghooks.py | 1820 | CODE | |
| LOW | xonsh/pyghooks.py | 1535 | CODE | |
| LOW | xonsh/main.py | 1089 | CODE | |
| LOW | xonsh/main.py | 1177 | CODE | |
| LOW | xonsh/main.py | 1272 | CODE | |
| LOW | xonsh/dirstack.py | 211 | CODE | |
| LOW | xonsh/dirstack.py | 291 | CODE | |
| 160 more matches not shown… | ||||
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| LOW | setup.py | 69 | except Exception: | CODE |
| LOW | setup.py | 86 | except Exception: | CODE |
| LOW⚡ | tests/test_builtins.py | 573 | except Exception: | CODE |
| LOW | tests/test_dirstack.py | 96 | except Exception: | CODE |
| LOW | tests/test_dirstack.py | 119 | except Exception: | CODE |
| LOW | tests/test_environ.py | 219 | except Exception: | CODE |
| LOW | tests/test_main.py | 510 | except Exception as e: | CODE |
| LOW⚡ | tests/procs/test_specs.py | 272 | except Exception as e: | CODE |
| LOW⚡ | tests/procs/test_specs.py | 282 | except Exception as e: | CODE |
| LOW⚡ | tests/procs/test_specs.py | 291 | except Exception as e: | CODE |
| LOW⚡ | tests/procs/test_specs.py | 301 | except Exception as e: | CODE |
| LOW | tests/procs/test_specs.py | 450 | except Exception: | CODE |
| LOW | xonsh/codecache.py | 140 | except Exception: | CODE |
| LOW | xonsh/codecache.py | 164 | except Exception: | CODE |
| LOW | xonsh/codecache.py | 218 | except Exception: | CODE |
| LOW | xonsh/ansi_colors.py | 48 | except Exception: | CODE |
| LOW | xonsh/ansi_colors.py | 165 | except Exception: | CODE |
| LOW | xonsh/events.py | 117 | except Exception: | CODE |
| LOW | xonsh/events.py | 221 | except Exception: | CODE |
| LOW | xonsh/events.py | 291 | except Exception: | CODE |
| MEDIUM | xonsh/events.py | 288 | def _call(self, handler): | CODE |
| LOW | xonsh/commands_cache.py | 234 | except Exception: | CODE |
| LOW | xonsh/commands_cache.py | 288 | except Exception: | CODE |
| LOW | xonsh/commands_cache.py | 506 | except Exception: | CODE |
| LOW | xonsh/commands_cache.py | 520 | except Exception: | CODE |
| MEDIUM | xonsh/tools.py | 150 | print("Error in process: {}.format(error.completed_command.pid)) | STRING |
| LOW | xonsh/tools.py | 1053 | except Exception: | CODE |
| LOW | xonsh/tools.py | 1320 | except Exception: | CODE |
| LOW | xonsh/tools.py | 2502 | except Exception: | CODE |
| LOW | xonsh/tools.py | 2675 | except Exception: | CODE |
| LOW | xonsh/timings.py | 133 | except Exception: | CODE |
| LOW | xonsh/completer.py | 298 | except Exception as e: | CODE |
| LOW | xonsh/xontribs.py | 334 | except Exception: | CODE |
| LOW | xonsh/xontribs.py | 377 | except Exception as ex: | CODE |
| LOW | xonsh/style_tools.py | 78 | except Exception: | CODE |
| LOW | xonsh/platform.py | 34 | except Exception: | CODE |
| MEDIUM | xonsh/platform.py | 29 | def distro(): | CODE |
| LOW | xonsh/aliases.py | 230 | except Exception: | CODE |
| LOW | xonsh/aliases.py | 458 | except Exception as e: | CODE |
| LOW | xonsh/aliases.py | 527 | except Exception as e: | CODE |
| LOW | xonsh/aliases.py | 1592 | except Exception: | CODE |
| LOW | xonsh/pygments_cache.py | 57 | except Exception: | CODE |
| LOW | xonsh/pygments_cache.py | 137 | except Exception: | CODE |
| LOW | xonsh/wizard.py | 749 | except Exception: | CODE |
| LOW | xonsh/xonfig.py | 478 | except Exception: | CODE |
| LOW⚡ | xonsh/pyghooks.py | 1854 | except Exception: | CODE |
| LOW | xonsh/pyghooks.py | 343 | except Exception: | CODE |
| LOW | xonsh/pyghooks.py | 456 | except Exception: | CODE |
| LOW | xonsh/pyghooks.py | 1776 | except Exception: | CODE |
| LOW | xonsh/pyghooks.py | 1813 | except Exception: | CODE |
| LOW | xonsh/main.py | 1193 | except Exception: | CODE |
| LOW | xonsh/main.py | 1268 | except Exception as err: | CODE |
| MEDIUM | xonsh/environ.py | 314 | def lc_converter(val): | CODE |
| LOW | xonsh/environ.py | 600 | except Exception as e: | CODE |
| LOW | xonsh/environ.py | 2577 | except Exception as exc: | CODE |
| LOW | xonsh/environ.py | 2812 | except Exception as e: | CODE |
| LOW | xonsh/environ.py | 2952 | except Exception: | CODE |
| LOW | xonsh/parsers/tokenize.py | 908 | except Exception: | CODE |
| LOW | xonsh/parsers/tokenize.py | 1643 | except Exception as err: | CODE |
| MEDIUM | xonsh/parsers/base.py | 444 | def run(self): | CODE |
| 84 more matches not shown… | ||||
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| LOW | tests/test_dirstack.py | 5 | CODE | |
| LOW | tests/test_foreign_shells.py | 6 | CODE | |
| LOW | tests/built_ins/test_wizard.py | 5 | CODE | |
| LOW | tests/lint/test_linter_cli_llm.py | 8 | CODE | |
| LOW | tests/parsers/test_parser.py | 225 | CODE | |
| LOW | tests/parsers/test_parser.py | 225 | CODE | |
| LOW | tests/parsers/test_lexer.py | 419 | CODE | |
| LOW | tests/shell/test_ptk_history.py | 4 | CODE | |
| LOW | tests/format/test_formatter_llm.py | 3 | CODE | |
| LOW | tests/format/test_formatter_cli_llm.py | 8 | CODE | |
| LOW | tests/check/test_checker_cli_llm.py | 8 | CODE | |
| LOW | xonsh/cli_utils.py | 15 | CODE | |
| LOW | xonsh/lazyjson.py | 11 | CODE | |
| LOW | xonsh/xontribs.py | 19 | CODE | |
| LOW | xonsh/xontribs.py | 19 | CODE | |
| LOW | xonsh/pygments_cache.py | 22 | CODE | |
| LOW | xonsh/built_ins.py | 7 | CODE | |
| LOW | xonsh/lazyasd.py | 11 | CODE | |
| LOW | xonsh/lazyimps.py | 11 | CODE | |
| LOW | xonsh/parsers/rd_parser.py | 1 | CODE | |
| LOW | xonsh/parsers/ast.py | 8 | CODE | |
| LOW | xonsh/parsers/ast.py | 8 | CODE | |
| LOW | xonsh/parsers/ast.py | 8 | CODE | |
| LOW | xonsh/parsers/ast.py | 8 | CODE | |
| LOW | xonsh/parsers/ast.py | 8 | CODE | |
| LOW | xonsh/parsers/ast.py | 8 | CODE | |
| LOW | xonsh/parsers/ast.py | 8 | CODE | |
| LOW | xonsh/parsers/ast.py | 8 | CODE | |
| LOW | xonsh/parsers/ast.py | 8 | CODE | |
| LOW | xonsh/parsers/ast.py | 8 | CODE | |
| LOW | xonsh/parsers/ast.py | 8 | CODE | |
| LOW | xonsh/parsers/ast.py | 8 | CODE | |
| LOW | xonsh/parsers/ast.py | 8 | CODE | |
| LOW | xonsh/parsers/ast.py | 8 | CODE | |
| LOW | xonsh/parsers/ast.py | 8 | CODE | |
| LOW | xonsh/parsers/ast.py | 8 | CODE | |
| LOW | xonsh/parsers/ast.py | 8 | CODE | |
| LOW | xonsh/parsers/ast.py | 8 | CODE | |
| LOW | xonsh/parsers/ast.py | 8 | CODE | |
| LOW | xonsh/parsers/ast.py | 8 | CODE | |
| LOW | xonsh/parsers/ast.py | 8 | CODE | |
| LOW | xonsh/parsers/ast.py | 8 | CODE | |
| LOW | xonsh/parsers/ast.py | 8 | CODE | |
| LOW | xonsh/parsers/ast.py | 8 | CODE | |
| LOW | xonsh/parsers/ast.py | 8 | CODE | |
| LOW | xonsh/parsers/ast.py | 8 | CODE | |
| LOW | xonsh/parsers/ast.py | 8 | CODE | |
| LOW | xonsh/parsers/ast.py | 8 | CODE | |
| LOW | xonsh/parsers/ast.py | 8 | CODE | |
| LOW | xonsh/parsers/ast.py | 8 | CODE | |
| LOW | xonsh/parsers/ast.py | 8 | CODE | |
| LOW | xonsh/parsers/ast.py | 8 | CODE | |
| LOW | xonsh/parsers/ast.py | 8 | CODE | |
| LOW | xonsh/parsers/ast.py | 8 | CODE | |
| LOW | xonsh/parsers/ast.py | 8 | CODE | |
| LOW | xonsh/parsers/ast.py | 8 | CODE | |
| LOW | xonsh/parsers/ast.py | 8 | CODE | |
| LOW | xonsh/parsers/ast.py | 8 | CODE | |
| LOW | xonsh/parsers/ast.py | 8 | CODE | |
| LOW | xonsh/parsers/ast.py | 8 | CODE | |
| 40 more matches not shown… | ||||
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| LOW | conftest.py | 21 | f"Use `cd {_root!r} && python -m pytest` to ensure that xonsh is tested from the source tree rather than site-pa | COMMENT |
| LOW | tests/conftest.py | 1 | # when xonsh is not installed in the current env | COMMENT |
| LOW | tests/test_pyghooks_llm.py | 221 | surfaced as Error. Regression guard for the plugin-mode fix.""" | COMMENT |
| LOW | tests/test_tools_llm.py | 221 | # ``" \\"`` whenever ``XONSH_INTERACTIVE`` is true, which the preprocessor | COMMENT |
| LOW | tests/test_execer.py | 101 | # Regression for #4915. Two layers of bug here: | COMMENT |
| LOW | tests/test_execer.py | 221 | COMMENT | |
| LOW | tests/test_execer_llm.py | 121 | COMMENT | |
| LOW | tests/test_execer_llm.py | 201 | # recovery. Two distinct bugs combined to cause the failure: | COMMENT |
| LOW | tests/completers/test_xompletions.py | 61 | assert matcher.get_module("pip").xonsh_complete | COMMENT |
| LOW | tests/completers/test_bash_completer.py | 41 | xession.env, | COMMENT |
| LOW | xonsh/execer.py | 81 | # same AST because whitespace doesn't matter to the minus binary op. | COMMENT |
| LOW | xonsh/execer.py | 301 | # SyntaxError instead of crashing in get_logical_line. | COMMENT |
| LOW | xonsh/tools.py | 441 | # end-of-input balances that skipped paren and must be popped from | COMMENT |
| LOW | xonsh/tools.py | 521 | # on the way in — the ``)`` is part of the expression, | COMMENT |
| LOW | xonsh/tools.py | 641 | # A statement that starts with a string literal — f-string or | COMMENT |
| LOW | xonsh/platform.py | 621 | # FreeBSD/DragonFly install bash-completion via ports/pkg under | COMMENT |
| LOW | xonsh/pyghooks.py | 2261 | # the surrounding line break. Otherwise a leftover ``\n`` | COMMENT |
| LOW | xonsh/main.py | 501 | current_fg = os.tcgetpgrp(tty_fd) | COMMENT |
| LOW | xonsh/main.py | 521 | # pid_namespaces(7): | COMMENT |
| LOW | xonsh/main.py | 741 | _setup_ctrl_break() | COMMENT |
| LOW | xonsh/environ.py | 2481 | # the surrounding scope. See `_DeleteVarSentinel` for details. | COMMENT |
| LOW | xonsh/environ.py | 3401 | # Empty entries are preserved: programs like ``man``/``info`` | COMMENT |
| LOW | xonsh/parsers/ast.py | 461 | COMMENT | |
| LOW | xonsh/parsers/ply/yacc.py | 1 | # ----------------------------------------------------------------------------- | COMMENT |
| LOW | xonsh/parsers/ply/yacc.py | 21 | # specific prior written permission. | COMMENT |
| LOW | xonsh/parsers/ply/yacc.py | 41 | # | COMMENT |
| LOW | xonsh/parsers/ply/yacc.py | 201 | #----------------------------------------------------------------------------- | COMMENT |
| LOW | xonsh/parsers/ply/yacc.py | 341 | # This is the debugging enabled version of parse(). All changes made to the | COMMENT |
| LOW | xonsh/parsers/ply/yacc.py | 581 | debug.error('Error : %s', | COMMENT |
| LOW | xonsh/parsers/ply/yacc.py | 881 | # !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! | COMMENT |
| LOW | xonsh/parsers/ply/yacc.py | 1281 | # | COMMENT |
| LOW | xonsh/parsers/ply/yacc.py | 1301 | # prec - Production precedence level | COMMENT |
| LOW | xonsh/parsers/ply/yacc.py | 1401 | # Bind the production function name to a callable | COMMENT |
| LOW | xonsh/parsers/ply/yacc.py | 1521 | # set_precedence() | COMMENT |
| LOW | xonsh/parsers/ply/yacc.py | 1541 | # | COMMENT |
| LOW | xonsh/parsers/ply/yacc.py | 1781 | # unused_precedence() | COMMENT |
| LOW | xonsh/parsers/ply/yacc.py | 1821 | # We have to consider the next x in beta, | COMMENT |
| LOW | xonsh/parsers/ply/yacc.py | 1921 | # ----------------------------------------------------------------------------- | COMMENT |
| LOW | xonsh/parsers/ply/yacc.py | 2041 | COMMENT | |
| LOW | xonsh/parsers/ply/yacc.py | 2221 | for x in asyms: | COMMENT |
| LOW | xonsh/parsers/ply/yacc.py | 2241 | # Lookahead Sets", ACM Transactions on Programming Languages and Systems, | COMMENT |
| LOW | xonsh/parsers/ply/yacc.py | 2341 | if a in empty: | COMMENT |
| LOW | xonsh/parsers/ply/yacc.py | 2361 | # Computes the INCLUDE() relation (p,A) INCLUDES (p',B). | COMMENT |
| LOW | xonsh/parsers/ply/yacc.py | 2441 | COMMENT | |
| LOW | xonsh/parsers/ply/yacc.py | 2461 | # compute_follow_sets() | COMMENT |
| LOW | xonsh/parsers/ply/yacc.py | 2481 | COMMENT | |
| LOW | xonsh/parsers/ply/lex.py | 1 | # ----------------------------------------------------------------------------- | COMMENT |
| LOW | xonsh/parsers/ply/lex.py | 21 | # specific prior written permission. | COMMENT |
| LOW | xonsh/parsers/ply/lex.py | 101 | COMMENT | |
| LOW | xonsh/parsers/ply/lex.py | 421 | t = self.token() | COMMENT |
| LOW | xonsh/parsers/ply/cpp.py | 1 | # ----------------------------------------------------------------------------- | COMMENT |
| LOW | xonsh/parsers/ply/cpp.py | 21 | # specific prior written permission. | COMMENT |
| LOW | xonsh/parsers/ply/cpp.py | 121 | # ----------------------------------------------------------------------------- | COMMENT |
| LOW | xonsh/parsers/ply/cpp.py | 221 | # | COMMENT |
| LOW | xonsh/parsers/ply/cpp.py | 841 | # ---------------------------------------------------------------------- | COMMENT |
| LOW | xonsh/shells/base_shell.py | 401 | # Reset so the ``is None`` guard below can distinguish | COMMENT |
| LOW | xonsh/shells/ptk_shell/__init__.py | 441 | if cursor_shape: | COMMENT |
| LOW | xonsh/shells/ptk_shell/__init__.py | 481 | if termios is not None: | COMMENT |
| LOW | xonsh/shells/ptk_shell/__init__.py | 761 | # This line can also be replaced by os.system("stty sane"), as per | COMMENT |
| LOW | xonsh/xoreutils/_which.py | 1 | #!/usr/bin/env python | COMMENT |
| 19 more matches not shown… | ||||
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| MEDIUM | tests/test_events_llm.py | 240 | # Create a new object with same key to discard | COMMENT |
| MEDIUM⚡ | tests/procs/test_executables.py | 183 | # Create a subdirectory named "man" (like coreutils gnubin/man) | COMMENT |
| MEDIUM⚡ | tests/procs/test_executables.py | 185 | # Create a real executable so the dir is not empty | COMMENT |
| MEDIUM | xonsh/foreign_shells.py | 538 | """This class is responsible for calling foreign shell functions as if | STRING |
| MEDIUM | xonsh/foreign_shells.py | 631 | """This class is responsible for calling foreign shell functions as if | STRING |
| MEDIUM | xonsh/parsers/ply/yacc.py | 2740 | # This file is automatically generated. Do not edit. | COMMENT |
| MEDIUM⚡ | xonsh/parsers/ply/yacc.py | 204 | # The following classes are used for the LR parser itself. These are not | STRING |
| MEDIUM⚡ | xonsh/parsers/ply/yacc.py | 209 | # This class is used to hold non-terminal grammar symbols during parsing. | STRING |
| MEDIUM⚡ | xonsh/parsers/ply/yacc.py | 1282 | # The following functions, classes, and variables are used to represent and | STRING |
| MEDIUM⚡ | xonsh/parsers/ply/yacc.py | 1469 | # The following class represents the contents of the specified grammar along | STRING |
| MEDIUM⚡ | xonsh/parsers/ply/yacc.py | 2038 | # The following classes and functions are used to generate LR parsing tables on | STRING |
| MEDIUM⚡ | xonsh/parsers/ply/yacc.py | 2099 | # This class implements the LR table generation algorithm. There are no | STRING |
| MEDIUM⚡ | xonsh/parsers/ply/yacc.py | 2875 | # The following functions and classes are used to implement the PLY | STRING |
| MEDIUM⚡ | xonsh/parsers/ply/yacc.py | 2936 | # This class represents information extracted for building a parser including | STRING |
| MEDIUM | xonsh/parsers/ply/yacc.py | 225 | # This class is a wrapper around the objects actually passed to each | STRING |
| MEDIUM | xonsh/parsers/ply/yacc.py | 663 | # Create the error symbol for the first time and make it the new lookahead symbol | STRING |
| MEDIUM | xonsh/parsers/ply/yacc.py | 969 | # Create the error symbol for the first time and make it the new lookahead symbol | STRING |
| MEDIUM | xonsh/parsers/ply/yacc.py | 1256 | # Create the error symbol for the first time and make it the new lookahead symbol | STRING |
| MEDIUM | xonsh/parsers/ply/yacc.py | 1329 | # Create a list of unique production symbols used in the production | STRING |
| MEDIUM | xonsh/parsers/ply/yacc.py | 1339 | # Create a string representation | STRING |
| MEDIUM | xonsh/parsers/ply/yacc.py | 1410 | # This class represents a specific stage of parsing a production rule. For | STRING |
| MEDIUM | xonsh/parsers/ply/yacc.py | 1619 | # Create a production and add it to the list of productions | STRING |
| MEDIUM | xonsh/parsers/ply/yacc.py | 3330 | # Create a grammar object | STRING |
| MEDIUM⚡ | xonsh/parsers/ply/lex.py | 556 | # This class represents information needed to build a lexer as extracted from a | COMMENT |
| MEDIUM | xonsh/parsers/ply/lex.py | 326 | # Create a token for return | COMMENT |
| MEDIUM⚡ | xonsh/parsers/ply/cpp.py | 36 | # This module implements an ANSI-C style lexical preprocessor for PLY. | COMMENT |
| MEDIUM⚡ | xonsh/parsers/ply/cpp.py | 857 | # Define a new macro | COMMENT |
| MEDIUM | xonsh/completers/bash_completion.py | 1 | """This module provides the implementation for the retrieving completion results | STRING |
| MEDIUM | docs/conf.py | 2 | # This file is execfile()d with the current directory set to its containing dir. | COMMENT |
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| CRITICAL | xonsh/history/sqlite.py | 449 | XSH.shell.shell.prompter.history.append_string(cmd) | CODE |
| CRITICAL | xonsh/history/json.py | 701 | XSH.shell.shell.prompter.history.append_string(line) | CODE |
| CRITICAL | docs/_static/landing2/js/jquery-3.js | 2 | !function(e,t){"use strict";"object"==typeof module&&"object"==typeof module.exports?module.exports=e.document?t(e,!0):f | CODE |
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| HIGH | xonsh/lazyasd.py | 0 | deprecated: use `xonsh.lib.lazyasd` instead of `xonsh.lazyasd`. | STRING |
| HIGH | xonsh/lib/subprocess.py | 0 | deprecated: use `xonsh.lib.lazyasd` instead of `xonsh.lazyasd`. | STRING |
| HIGH | xonsh/lib/os.py | 0 | deprecated: use `xonsh.lib.lazyasd` instead of `xonsh.lazyasd`. | STRING |
| HIGH | xonsh/parsers/v38.py | 0 | parameters ---------- yacc_optimize : bool, optional set to false when unstable and true when parser is stable. yacc_tab | STRING |
| HIGH | xonsh/parsers/v36.py | 0 | parameters ---------- yacc_optimize : bool, optional set to false when unstable and true when parser is stable. yacc_tab | STRING |
| HIGH | xonsh/parsers/base.py | 0 | parameters ---------- yacc_optimize : bool, optional set to false when unstable and true when parser is stable. yacc_tab | STRING |
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| LOW | xonsh/timings.py | 209 | # Check if there is a huge difference between the best and worst timings. | COMMENT |
| LOW | xonsh/timings.py | 331 | # Print result table | COMMENT |
| LOW | xonsh/platform.py | 459 | # Check if Bash is from the "Windows Subsystem for Linux" (WSL) | COMMENT |
| LOW | xonsh/environ.py | 835 | # Check if old config file exists and issue warning | COMMENT |
| LOW | xonsh/parsers/ply/yacc.py | 2209 | # Loop over the items in C and each grammar symbols | STRING |
| LOW | xonsh/completers/python.py | 150 | # Check if we're completing __xonsh__.imp.<module> | COMMENT |
| LOW | xonsh/completers/bash_completion.py | 50 | # Check if Bash is from the "Windows Subsystem for Linux" (WSL) | COMMENT |
| LOW | xonsh/procs/proxies.py | 558 | # Check if we have already been interrupted. This should prevent | COMMENT |
| LOW | xonsh/procs/posix.py | 349 | # Check if we have already been interrupted. This should prevent | COMMENT |
| LOW | xonsh/procs/pipelines.py | 431 | # Check if SIGINT was caught but not raised as KeyboardInterrupt. | COMMENT |
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| LOW | tests/test_main_terminal_llm.py | 60 | CODE | |
| LOW | tests/xintegration/conftest.py | 35 | CODE | |
| LOW | xonsh/foreign_shells.py | 175 | CODE | |
| LOW | xonsh/aliases.py | 992 | CODE | |
| LOW | xonsh/aliases.py | 1264 | CODE | |
| LOW | xonsh/aliases.py | 173 | CODE | |
| LOW | xonsh/built_ins.py | 644 | CODE | |
| LOW | xonsh/environ.py | 3072 | CODE | |
| LOW | xonsh/parsers/ply/yacc.py | 147 | CODE | |
| LOW | xonsh/parsers/ply/yacc.py | 3218 | CODE | |
| LOW | xonsh/parsers/ply/lex.py | 864 | CODE | |
| LOW | xonsh/completers/bash_completion.py | 342 | CODE | |
| LOW | xonsh/xoreutils/uname.py | 17 | CODE | |
| LOW | xonsh/procs/specs.py | 429 | CODE | |
| LOW | xonsh/prompt/vc.py | 151 | CODE | |
| LOW | xonsh/history/main.py | 234 | CODE |
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| LOW⚡ | tests/test_main_terminal_llm.py | 607 | # Step 1: Python no-op handler for each signal. | COMMENT |
| LOW⚡ | tests/test_main_terminal_llm.py | 614 | # Step 2: SIG_IGN replacement. | COMMENT |
| LOW | xonsh/main.py | 746 | # Step 1: unconditional Python no-op-with-livelock-guard handler | COMMENT |
| LOW | xonsh/main.py | 760 | # Step 2: only attempt the handshake when stderr is a real TTY. | COMMENT |
| LOW | xonsh/main.py | 772 | # Step 3: register the shutdown restorer only if the handshake | COMMENT |
| LOW | xonsh/parsers/ply/yacc.py | 2547 | # Step 1: Construct C = { I0, I1, ... IN}, collection of LR(0) items | STRING |
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| LOW⚡ | tests/test_main_terminal_llm.py | 607 | # Step 1: Python no-op handler for each signal. | COMMENT |
| LOW⚡ | tests/test_main_terminal_llm.py | 614 | # Step 2: SIG_IGN replacement. | COMMENT |
| LOW | xonsh/main.py | 746 | # Step 1: unconditional Python no-op-with-livelock-guard handler | COMMENT |
| LOW | xonsh/main.py | 760 | # Step 2: only attempt the handshake when stderr is a real TTY. | COMMENT |
| LOW | xonsh/main.py | 772 | # Step 3: register the shutdown restorer only if the handshake | COMMENT |
| LOW | xonsh/parsers/ply/yacc.py | 2547 | # Step 1: Construct C = { I0, I1, ... IN}, collection of LR(0) items | STRING |
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| LOW⚡ | tests/test_debug_llm.py | 218 | def helper(): | CODE |
| LOW⚡ | tests/test_debug_llm.py | 320 | def helper(): | CODE |
| LOW⚡ | tests/test_debug_llm.py | 599 | def helper(): | CODE |
| LOW⚡ | tests/test_debug_llm.py | 614 | def helper(): | CODE |
| LOW | tests/test_debug_llm.py | 402 | def helper(): | CODE |
| LOW⚡ | tests/test_tools.py | 1925 | def my_function(): | CODE |
| LOW⚡ | tests/test_tools.py | 1934 | def my_function(): | CODE |
| LOW⚡ | tests/test_tools.py | 1961 | def my_function(): | CODE |
| LOW | tests/test_tools.py | 1897 | def my_function(): | CODE |
| LOW | tests/test_tools.py | 1947 | def my_function(): | CODE |
| LOW | xonsh/built_ins.py | 95 | def helper(x, name=""): | CODE |
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| LOW | xonsh/timings.py | 31 | # just use time.perf_counter() for everything... | COMMENT |
| LOW | xonsh/parsers/ply/yacc.py | 408 | # is already set, we just use that. Otherwise, we'll pull | STRING |
| LOW | xonsh/parsers/ply/yacc.py | 752 | # is already set, we just use that. Otherwise, we'll pull | STRING |
| LOW | xonsh/parsers/ply/yacc.py | 1058 | # is already set, we just use that. Otherwise, we'll pull | STRING |
| LOW | xonsh/pytest/plugin.py | 362 | # just return the bare completions without appended-space for easier assertions | COMMENT |
| LOW | xonsh/shells/readline_shell.py | 823 | # If available, we should just call the stty utility. This call should | COMMENT |
| MEDIUM | xonsh/procs/executables.py | 259 | continue # Definitely not in this dir — skip without stat | CODE |
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| LOW | xonsh/parsers/ply/__init__.py | 5 | __all__ = ['lex','yacc'] | CODE |
| LOW | xonsh/linter/__init__.py | 20 | __all__ = ["lint_source", "Finding"] | CODE |
| LOW | xonsh/checker/__init__.py | 24 | __all__ = ["check_source"] | CODE |
| LOW | xonsh/xoreutils/_which.py | 97 | __all__ = ["which", "whichall", "whichgen", "WhichError"] | STRING |
| LOW | xonsh/formatter/__init__.py | 20 | __all__ = ["DEFAULT_INDENT", "FormatError", "format_source"] | CODE |
| LOW⚡ | xonsh/formatter/core.py | 451 | def _update_state(self, tok) -> None: | CODE |
| LOW | xonsh/lib/pretty.py | 91 | __all__ = [ | CODE |
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| HIGH | xonsh/shell.py | 102 | on_command_not_found(cmd: list[str]) -> list[str] | tuple[str, ...] | dict | None Fires if a command is not found (onl | STRING |
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| MEDIUM⚡ | tests/test_main_terminal_llm.py | 490 | # _setup_controlling_terminal — orchestration / signal policy tests | COMMENT |
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| LOW | xonsh/parsers/ply/yacc.py | 3141 | # Sort all of the actions by line number; make sure to stringify | STRING |
| LOW | xonsh/lib/lazyasd.py | 161 | self._d = type(loaders)() # make sure to return the same type | CODE |