🐚 Python-powered shell. Full-featured, cross-platform and AI-friendly.
This report summarizes scanner evidence for xonsh/xonsh, a Python project with 9,667 GitHub stars. SynthScan examined 163,314 lines of code across 430 source files, recording 3487 pattern matches distributed across 21 syntactic categories. The legacy adjusted pattern signal is 30.8 (High pattern signal); it is not an authorship estimate.
Use the findings to ask whether maintainers can explain intent, verify dependencies, simplify unnecessary scaffolding, and focus review effort. Risk Payload v1 adds ownership, supply-chain, over-engineering, and review-effort vectors when available. These are prompts for human verification, not probabilities, security findings, or measured maintenance costs.
Use each vector to guide manual verification of the underlying findings.
Can maintainers explain intent, assumptions, and trade-offs? 2624 finding(s).
Are imports declared and package/API names verified? 251 finding(s).
Are wrappers, guards, and repeated structures necessary? 2862 finding(s).
Which changes need focused human review? 3487 finding(s).
This chart tracks the legacy adjusted pattern score across scan runs. Changes can reflect source changes, scan coverage, or detector/scoring versions; they do not measure AI adoption or prove that a team refactored code. Compare runs only when their scoring versions are compatible. The dashed line tracks the raw pattern-hit count.
Groups findings by configured severity weight. Severity is not a confidence estimate, security rating, or proof that a package is missing. Verify imports against the project's manifests and inspect each finding in its local design context.
This horizontal bar chart shows where configured pattern scores accumulate across directories. Treat the bars as locations to inspect, not as evidence of authorship or code quality. Use the file-level findings to decide whether a directory needs a focused ownership, dependency, complexity, or review check.
The scanner identified 3487 distinct pattern matches across 21 syntactic categories. Each entry below represents a discrete location in the source code where the engine recorded a detector match to inspect in context. Expand any category row to inspect the individual file paths, line numbers, code snippets, and the lexical context (CODE, COMMENT, or STRING) in which each match was detected.
Reading the findings table: The Severity column indicates the configured finding weight (CRITICAL / HIGH / MEDIUM / LOW). The Context column identifies whether the match occurred inside executable code, an inline comment, or a string literal — legacy comment-context matches receive a ×1.5 score weight. The ⚡ bolt icon marks clustered matches: three or more patterns within a 10-line window, each receiving an additional ×1.5 density multiplier under the legacy scoring model.
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| LOW | 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 |
| 2174 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 |
|---|---|---|---|---|
| HIGH | tests/test_builtins.py | 573 | except Exception: | CODE |
| HIGH | tests/test_dirstack_unc.py | 233 | except OSError: | CODE |
| HIGH | tests/test_dirstack_unc.py | 244 | except OSError: | CODE |
| HIGH | tests/test_xontribs_smoke_llm.py | 64 | except AttributeError: | CODE |
| HIGH | tests/test_pyghooks.py | 313 | except OSError: | CODE |
| HIGH | tests/shell/test_ptk_shell_llm.py | 34 | except AttributeError: | CODE |
| HIGH | tests/shell/test_base_shell.py | 97 | except TypeError: | CODE |
| HIGH | tests/procs/test_specs.py | 450 | except Exception: | CODE |
| HIGH | xonsh/tools.py | 1892 | except AttributeError: | CODE |
| HIGH | xonsh/tools.py | 2279 | except re.error: | CODE |
| HIGH | xonsh/tools.py | 3087 | except (ValueError, TypeError): | CODE |
| HIGH | xonsh/tools.py | 3097 | except ValueError: | CODE |
| HIGH | xonsh/tools.py | 1876 | except ValueError: # islice failed | CODE |
| HIGH | xonsh/timings.py | 133 | except Exception: | CODE |
| HIGH | xonsh/platform.py | 386 | except ValueError: | CODE |
| HIGH | xonsh/aliases.py | 1461 | except SystemExit: | CODE |
| HIGH | xonsh/wizard.py | 584 | except (ValueError, SyntaxError): | CODE |
| HIGH | xonsh/built_ins.py | 275 | except (OSError, AttributeError): | CODE |
| HIGH | xonsh/pyghooks.py | 1813 | except Exception: | CODE |
| HIGH | xonsh/pyghooks.py | 1964 | except OSError: | CODE |
| HIGH | xonsh/pyghooks.py | 311 | except AttributeError: | CODE |
| HIGH | xonsh/pyghooks.py | 1854 | except Exception: | CODE |
| HIGH | xonsh/main.py | 1193 | except Exception: | CODE |
| HIGH | xonsh/main.py | 571 | except (AttributeError, OSError): | CODE |
| HIGH | xonsh/main.py | 613 | except OSError: | CODE |
| HIGH | xonsh/main.py | 622 | except (AttributeError, OSError): | CODE |
| HIGH | xonsh/main.py | 1391 | except ValueError: | CODE |
| HIGH | xonsh/main.py | 1364 | except OSError: | CODE |
| HIGH | xonsh/environ.py | 3399 | except KeyError: | CODE |
| HIGH | xonsh/environ.py | 3256 | except KeyError: | CODE |
| HIGH | xonsh/parsers/fstring_rules_llm.py | 37 | except SyntaxError: | CODE |
| HIGH | xonsh/parsers/ply/yacc.py | 197 | except NameError: | CODE |
| HIGH | xonsh/parsers/ply/yacc.py | 3306 | except ImportError: | CODE |
| HIGH | xonsh/parsers/ply/yacc.py | 2986 | except (TypeError, ValueError): | CODE |
| HIGH | xonsh/parsers/ply/yacc.py | 1574 | except SyntaxError: | CODE |
| HIGH | xonsh/parsers/ply/yacc.py | 3207 | except IndexError: | CODE |
| HIGH | xonsh/parsers/ply/lex.py | 921 | except ImportError: | CODE |
| HIGH | xonsh/parsers/ply/cpp.py | 934 | except LookupError: | CODE |
| HIGH | xonsh/parsers/ply/cpp.py | 836 | except IOError: | CODE |
| HIGH | xonsh/shells/readline_shell.py | 135 | except (OSError, termios.error): | CODE |
| HIGH | xonsh/shells/readline_shell.py | 156 | except ImportError: | CODE |
| HIGH | xonsh/shells/readline_shell.py | 197 | except Exception: | CODE |
| HIGH | xonsh/shells/readline_shell.py | 302 | except Exception: | CODE |
| HIGH | xonsh/shells/readline_shell.py | 249 | except OSError: | CODE |
| HIGH | xonsh/shells/readline_shell.py | 739 | except ImportError: | CODE |
| HIGH | xonsh/shells/base_shell.py | 197 | except OSError: | CODE |
| HIGH | xonsh/shells/ptk_shell/__init__.py | 34 | except Exception: | CODE |
| HIGH | xonsh/shells/ptk_shell/__init__.py | 233 | except OSError: | CODE |
| HIGH | xonsh/shells/ptk_shell/completer.py | 271 | except Exception: | CODE |
| HIGH | xonsh/completers/emoji.py | 73 | except ValueError: | CODE |
| HIGH | xonsh/completers/emoji.py | 109 | except ValueError: | CODE |
| HIGH | xonsh/completers/imports.py | 100 | except ValueError: | CODE |
| HIGH | xonsh/xoreutils/_which.py | 121 | except _winreg.error: | CODE |
| HIGH | xonsh/xoreutils/umask.py | 35 | except (OSError, ValueError, IndexError): | CODE |
| HIGH | xonsh/procs/specs.py | 284 | except Exception: | CODE |
| HIGH | xonsh/procs/specs.py | 302 | except Exception: | CODE |
| HIGH | xonsh/procs/jobs.py | 170 | except ProcessLookupError: | CODE |
| HIGH | xonsh/procs/jobs.py | 199 | except ProcessLookupError: | CODE |
| HIGH | xonsh/procs/jobs.py | 217 | except ProcessLookupError: | CODE |
| HIGH | xonsh/procs/pipes.py | 74 | except OSError: | CODE |
| 36 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 | 301 | CODE | |
| LOW | xonsh/tools.py | 329 | CODE | |
| LOW | xonsh/tools.py | 427 | CODE | |
| LOW | xonsh/tools.py | 722 | CODE | |
| LOW | xonsh/tools.py | 822 | CODE | |
| LOW | xonsh/tools.py | 2654 | CODE | |
| LOW | xonsh/tools.py | 2858 | CODE | |
| LOW | xonsh/tools.py | 2913 | 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 | |
| LOW | xonsh/dirstack.py | 391 | 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 | 159 | print("Error in process: {}.format(error.completed_command.pid)) | STRING |
| LOW | xonsh/tools.py | 1023 | except Exception: | CODE |
| LOW | xonsh/tools.py | 1290 | except Exception: | CODE |
| LOW | xonsh/tools.py | 2479 | except Exception: | CODE |
| LOW | xonsh/tools.py | 2583 | 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 | 2586 | except Exception as exc: | CODE |
| LOW | xonsh/environ.py | 2821 | except Exception as e: | CODE |
| LOW | xonsh/environ.py | 2961 | except Exception: | CODE |
| LOW | xonsh/parsers/tokenize.py | 914 | except Exception: | CODE |
| LOW | xonsh/parsers/tokenize.py | 1649 | except Exception as err: | CODE |
| MEDIUM | xonsh/parsers/base.py | 444 | def run(self): | CODE |
| 85 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 | 433 | 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/tools.py | 75 | CODE | |
| LOW | xonsh/tools.py | 76 | 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 | |
| 42 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 | lexer.reset() | COMMENT |
| LOW | xonsh/tools.py | 461 | # Re-wrapping such a block would produce ``![![…]]``, which is not | COMMENT |
| LOW | xonsh/tools.py | 521 | if _is_not_lparen_and_rparen(lparens, toks[-1]): | COMMENT |
| LOW | xonsh/tools.py | 541 | # subproc segment. Without breaking here the wrap | COMMENT |
| LOW | xonsh/tools.py | 641 | tok = toks[-1] | COMMENT |
| LOW | xonsh/tools.py | 661 | # ``CtxAwareTransformer.is_in_scope`` returns True when there are | COMMENT |
| LOW | xonsh/platform.py | 621 | # FreeBSD/DragonFly install bash-completion via ports/pkg under | COMMENT |
| LOW | xonsh/pyghooks.py | 2281 | (r"^(@|\.) ", Generic.Prompt), | 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/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 | hist = XSH.history # pylint: disable=no-member | COMMENT |
| LOW | xonsh/shells/base_shell.py | 441 | except subprocess.CalledProcessError: | COMMENT |
| LOW | xonsh/shells/ptk_shell/__init__.py | 441 | else: | COMMENT |
| LOW | xonsh/shells/ptk_shell/__init__.py | 461 | # its bytes virtually never arrive more than 50ms apart. Raise it | COMMENT |
| 21 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 | 757 | 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 | 154 | # 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 | 559 | # 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 | 3105 | 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 | 154 | 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 | 1889 | def my_function(): | CODE |
| LOW⚡ | tests/test_tools.py | 1898 | def my_function(): | CODE |
| LOW⚡ | tests/test_tools.py | 1925 | def my_function(): | CODE |
| LOW | tests/test_tools.py | 1861 | def my_function(): | CODE |
| LOW | tests/test_tools.py | 1911 | 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 | 825 | # 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 |