Repository Analysis

simonlin1212/TradingAgents-astock

A股多Agent投研框架 — 适配A股数据源(龙虎榜/游资/解禁等),7位分析师基于A股规则的辩论决策,基于TradingAgents深度改造,适配大A。A-share multi-agent investment research framework — 7 AI analysts, bull/bear debate, risk assessment。

48.1 Strong AI signal View on GitHub

Analysis Overview

This report presents the forensic synthetic code analysis of simonlin1212/TradingAgents-astock, a Python project with 2,781 GitHub stars. SynthScan v2.0 examined 24,055 lines of code across 136 source files, recording 731 pattern matches distributed across 16 syntactic categories. The overall adjusted score of 48.1 places this repository in the Strong AI signal band.

The scanner applied 160+ deterministic lexical heuristics, multi-line block detectors, abstract syntax tree depth profilers, and a cross-file Jaccard similarity matrix to construct a statistically normalised synthetic code estimate. All matches are individually weighted by severity coefficient and contextual multiplier before summation, and the resulting headline score is temporally discounted to account for the repository's development history relative to the commercial emergence of large language model coding tooling (November 2022 onward).

48.1
Adjusted Score
48.1
Raw Score
100%
Time Factor
2026-08-09
Last Push
2.8K
Stars
Python
Language
24.1K
Lines of Code
136
Files
731
Pattern Hits
2026-08-09
Scan Date
0.02
HC Hit Rate

What These Metrics Mean

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

Score History

Longitudinal tracking requires multiple scan runs. Once this repository is re-scanned after new commits land, this chart will visualise how the synthetic code signal evolves over time — enabling you to detect whether AI authorship is growing, stabilising, or being actively corrected by human engineers.

No multi-scan history yet — run the scanner again to build trend data.

Severity Breakdown

Classifies detected patterns by their diagnostic confidence and structural impact. CRITICAL patterns (coefficient 10) represent definitive synthetic signatures — hallucinated imports, explicit LLM attribution metadata — virtually never produced by human authors. HIGH (5) indicates strong structural tells such as cross-file repetition or cross-linguistic idioms. MEDIUM (2) covers recognisable conversational padding and AI-specific vocabulary. LOW (1) captures subtle indicators like tautological comments and generic boilerplate that require density to carry independent signal.

CRITICAL 0HIGH 3MEDIUM 142LOW 586

Directory Score Breakdown

This horizontal bar chart decomposes the repository's raw synthetic code score by top-level directory, allowing you to pinpoint precisely which modules or components carry the highest AI authorship density. Directories with disproportionately high scores relative to their size warrant targeted manual review: concentrated AI signatures often trace back to mass-generated configuration layers, auto-ported test suites, LLM-scaffolded boilerplate classes, or entire subsystems authored under heavy copilot assistance. Use this view to prioritise your human code-review effort.

Pattern Findings

The scanner identified 731 distinct pattern matches across 16 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.

Decorative Section Separators131 hits · 514 pts
SeverityFileLineSnippetContext
MEDIUMREADME.md171# ── 方案 A:MiniMax(推荐,国内直连,性价比高)──────────COMMENT
MEDIUMREADME.md175# ── 方案 B:DeepSeek ─────────────────────────────────COMMENT
MEDIUMREADME.md179# ── 方案 C:智谱 GLM ─────────────────────────────────COMMENT
MEDIUMREADME.md183# ── 方案 D:通义千问 Qwen ────────────────────────────COMMENT
MEDIUMREADME.md187# ── 方案 E:OpenAI ───────────────────────────────────COMMENT
MEDIUMREADME.md190# ── 方案 F:Anthropic ────────────────────────────────COMMENT
MEDIUMREADME.md193# ── 方案 G:Kimi(Anthropic 兼容 API)────────────────COMMENT
MEDIUMREADME.md213# ── MiniMax 示例(推荐)─────────────────────────────COMMENT
MEDIUMREADME.md221# ── DeepSeek 示例 ───────────────────────────────────COMMENT
MEDIUMREADME.md229# ── Anthropic + Kimi 示例 ───────────────────────────COMMENT
MEDIUMREADME_en.md161# ── Option B: DeepSeek ─────────────────────────────────────────────────────COMMENT
MEDIUMREADME_en.md165# ── Option C: Zhipu GLM ────────────────────────────────────────────────────COMMENT
MEDIUMREADME_en.md169# ── Option D: Tongyi Qianwen Qwen ──────────────────────────────────────────COMMENT
MEDIUMREADME_en.md173# ── Option E: OpenAI ───────────────────────────────────────────────────────COMMENT
MEDIUMREADME_en.md176# ── Option F: Anthropic ────────────────────────────────────────────────────COMMENT
MEDIUMREADME_en.md179# ── Option G: Kimi (Anthropic-compatible API) ───────────────────────────────COMMENT
MEDIUMREADME_en.md200# ── MiniMax Example (Recommended) ──────────────────────────────────────────COMMENT
MEDIUMREADME_en.md208# ── DeepSeek Example ───────────────────────────────────────────────────────COMMENT
MEDIUMREADME_en.md216# ── Anthropic + Kimi Example ───────────────────────────────────────────────COMMENT
MEDIUMweb/app.py30# ── Page config ──────────────────────────────────────────────────────────────COMMENT
MEDIUMweb/app.py39# ── Custom CSS ───────────────────────────────────────────────────────────────COMMENT
MEDIUMweb/app.py157# ── Build config ─────────────────────────────────────────────────────────────COMMENT
MEDIUMweb/app.py199# ── Sidebar ──────────────────────────────────────────────────────────────────COMMENT
MEDIUMweb/app.py205# ── Handle "Start Analysis" trigger ──────────────────────────────────────────COMMENT
MEDIUMweb/app.py233# ── Main area state machine ─────────────────────────────────────────────────COMMENT
MEDIUMweb/components/sidebar.py201 # ── 个人 Claude 订阅额度(可选,仅个人自用)────────────────────────COMMENT
MEDIUMtests/test_structured_agents.py26# ---------------------------------------------------------------------------COMMENT
MEDIUMtests/test_structured_agents.py28# ---------------------------------------------------------------------------COMMENT
MEDIUMtests/test_structured_agents.py75# ---------------------------------------------------------------------------COMMENT
MEDIUMtests/test_structured_agents.py77# ---------------------------------------------------------------------------COMMENT
MEDIUMtests/test_structured_agents.py170# ---------------------------------------------------------------------------COMMENT
MEDIUMtests/test_structured_agents.py172# ---------------------------------------------------------------------------COMMENT
MEDIUMtests/test_signal_processing.py17# ---------------------------------------------------------------------------COMMENT
MEDIUMtests/test_signal_processing.py19# ---------------------------------------------------------------------------COMMENT
MEDIUMtests/test_signal_processing.py145# ---------------------------------------------------------------------------COMMENT
MEDIUMtests/test_signal_processing.py147# ---------------------------------------------------------------------------COMMENT
MEDIUMtests/test_role_llms.py32# ---------------------------------------------------------------------------COMMENT
MEDIUMtests/test_role_llms.py34# ---------------------------------------------------------------------------COMMENT
MEDIUMtests/test_role_llms.py63# ---------------------------------------------------------------------------COMMENT
MEDIUMtests/test_role_llms.py65# ---------------------------------------------------------------------------COMMENT
MEDIUMtests/test_role_llms.py101# ---------------------------------------------------------------------------COMMENT
MEDIUMtests/test_role_llms.py103# ---------------------------------------------------------------------------COMMENT
MEDIUMtests/test_role_llms.py234# ---------------------------------------------------------------------------COMMENT
MEDIUMtests/test_role_llms.py236# ---------------------------------------------------------------------------COMMENT
MEDIUMtests/test_output_token_limit.py31# ---------------------------------------------------------------------------COMMENT
MEDIUMtests/test_output_token_limit.py33# ---------------------------------------------------------------------------COMMENT
MEDIUMtests/test_output_token_limit.py120# ---------------------------------------------------------------------------COMMENT
MEDIUMtests/test_output_token_limit.py122# ---------------------------------------------------------------------------COMMENT
MEDIUMtests/test_performance.py33# ---------------------------------------------------------------------------COMMENT
MEDIUMtests/test_performance.py35# ---------------------------------------------------------------------------COMMENT
MEDIUMtests/test_performance.py69# ---------------------------------------------------------------------------COMMENT
MEDIUMtests/test_performance.py71# ---------------------------------------------------------------------------COMMENT
MEDIUMtests/test_performance.py113# ---------------------------------------------------------------------------COMMENT
MEDIUMtests/test_performance.py115# ---------------------------------------------------------------------------COMMENT
MEDIUMtests/test_performance.py144# ---------------------------------------------------------------------------COMMENT
MEDIUMtests/test_performance.py146# ---------------------------------------------------------------------------COMMENT
MEDIUMtests/test_performance.py183# ---------------------------------------------------------------------------COMMENT
MEDIUMtests/test_performance.py185# ---------------------------------------------------------------------------COMMENT
MEDIUMtests/test_market_guard.py16# ---------------------------------------------------------------------------COMMENT
MEDIUMtests/test_market_guard.py18# ---------------------------------------------------------------------------COMMENT
71 more matches not shown…
Hyper-Verbose Identifiers321 hits · 339 pts
SeverityFileLineSnippetContext
LOWweb/stock_display.py126def _extract_stock_name_from_text(code: str, text: str) -> str | None:CODE
LOWweb/stock_display.py141def _extract_stock_name_from_state(code: str, final_state: dict) -> str | None:CODE
LOWweb/stock_display.py255def normalize_report_state_mentions(final_state: dict[str, Any], ticker: str) -> dict[str, Any]:CODE
LOWweb/components/sidebar.py54def _clear_analysis_artifacts(ticker: str, trade_date: str) -> None:CODE
LOWweb/components/sidebar.py59def _render_analysis_controls(raw_ticker: str, trade_date_value: date) -> None:CODE
LOWtests/test_structured_agents.py33 def test_minimal_required_fields(self):CODE
LOWtests/test_structured_agents.py42 def test_optional_fields_omitted_when_absent(self):CODE
LOWtests/test_structured_agents.py110 def test_schema_has_no_level_fields(self):CODE
LOWtests/test_structured_agents.py116 def test_prompt_forbids_levels(self):CODE
LOWtests/test_structured_agents.py123 def test_render_never_emits_levels(self):CODE
LOWtests/test_structured_agents.py132 def test_structured_path_produces_rendered_markdown(self):CODE
LOWtests/test_structured_agents.py148 def test_prompt_includes_investment_plan(self):CODE
LOWtests/test_structured_agents.py157 def test_falls_back_to_freetext_when_structured_unavailable(self):CODE
LOWtests/test_structured_agents.py207 def test_structured_path_produces_rendered_markdown(self):CODE
LOWtests/test_structured_agents.py232 def test_falls_back_to_freetext_when_structured_unavailable(self):CODE
LOWtests/test_progress_pause.py8def test_pause_blocks_until_resume() -> None:CODE
LOWtests/test_progress_pause.py31def test_completion_unblocks_paused_waiter() -> None:CODE
LOWtests/test_progress_pause.py55def test_stop_request_clears_progress_and_unblocks_waiter() -> None:CODE
LOWtests/test_progress_pause.py88def test_mark_stopped_returns_tracker_to_idle() -> None:CODE
LOWtests/test_news_data_tools.py7def test_get_news_rejects_non_code_ticker_without_vendor_call(monkeypatch):CODE
LOWtests/test_news_data_tools.py31def test_get_news_routes_valid_six_digit_code(monkeypatch):CODE
LOWtests/test_news_data_tools.py54def test_get_insider_transactions_rejects_non_code_ticker(monkeypatch):CODE
LOWtests/test_pdf_export.py19def test_generate_pdf_with_chinese_markdown_when_cjk_font_available():CODE
LOWtests/test_pdf_export.py37def test_pdf_text_helpers_compact_alignment_whitespace():CODE
LOWtests/test_pdf_export.py42def test_pdf_multicell_defaults_to_left_alignment():CODE
LOWtests/test_pdf_export.py58def test_wqy_discovery_reuses_same_font_for_bold(monkeypatch, tmp_path):CODE
LOWtests/test_capabilities.py28def test_unknown_model_uses_permissive_defaults():CODE
LOWtests/test_capabilities.py43def test_minimax_payload_enables_reasoning_split():CODE
LOWtests/test_capabilities.py54def test_minimax_payload_does_not_enable_reasoning_split_for_custom_model():CODE
LOWtests/test_capabilities.py65def test_minimax_structured_output_keeps_schema_and_tool_choice():CODE
LOWtests/test_capabilities.py106def test_explicit_tool_choice_is_dropped_for_unsupported_model():CODE
LOWtests/test_capabilities.py127def test_optional_tool_call_returning_none_still_falls_back_to_free_text():CODE
LOWtests/test_stock_display.py6def test_generate_markdown_uses_display_label(monkeypatch):CODE
LOWtests/test_stock_display.py18def test_stock_display_label_resolves_code_to_name(monkeypatch):CODE
LOWtests/test_stock_display.py26def test_stock_display_label_removes_invisible_name_chars(monkeypatch):CODE
LOWtests/test_stock_display.py32def test_stock_display_label_resolves_name_input(monkeypatch):CODE
LOWtests/test_stock_display.py39def test_stock_display_label_falls_back_to_state_name(monkeypatch):CODE
LOWtests/test_stock_display.py48def test_stock_display_label_falls_back_to_original_input_name(monkeypatch):CODE
LOWtests/test_stock_display.py57def test_stock_display_label_falls_back_to_report_code_name(monkeypatch):CODE
LOWtests/test_stock_display.py68def test_stock_display_label_falls_back_to_nested_report_code_name(monkeypatch):CODE
LOWtests/test_stock_display.py80def test_stock_display_label_falls_back_to_code(monkeypatch):CODE
LOWtests/test_stock_display.py86def test_normalize_stock_mentions_adds_name_without_duplicates(monkeypatch):CODE
LOWtests/test_stock_display.py104def test_normalize_report_state_mentions_updates_generated_fields(monkeypatch):CODE
LOWtests/test_sentiment_data_tools.py31def test_analyst_binds_quantitative_tools():CODE
LOWtests/test_sentiment_data_tools.py36def test_graph_tool_node_matches_analyst_tools():CODE
LOWtests/test_sentiment_data_tools.py51def test_prompt_names_every_bound_tool():CODE
LOWtests/test_sentiment_data_tools.py58def test_prompt_requires_divergence_check():CODE
LOWtests/test_sentiment_data_tools.py64def test_prompt_forbids_fabricating_missing_data():CODE
LOWtests/test_signal_processing.py27 def test_explicit_label_overweight(self):CODE
LOWtests/test_signal_processing.py30 def test_explicit_label_with_markdown_bold_value(self):CODE
LOWtests/test_signal_processing.py34 def test_explicit_label_with_markdown_bold_label(self):CODE
LOWtests/test_signal_processing.py37 def test_rendered_pm_markdown_shape(self):CODE
LOWtests/test_signal_processing.py46 def test_explicit_label_wins_over_prose_with_markdown(self):CODE
LOWtests/test_signal_processing.py54 def test_no_rating_returns_default(self):CODE
LOWtests/test_signal_processing.py57 def test_no_rating_custom_default(self):CODE
LOWtests/test_signal_processing.py60 def test_all_five_tiers_recognised(self):CODE
LOWtests/test_signal_processing.py108 def test_cn_label_with_english_word_all_tiers(self):CODE
LOWtests/test_signal_processing.py112 def test_cn_label_still_prefers_chinese_term(self):CODE
LOWtests/test_signal_processing.py121 def test_cn_strong_beats_plain(self):CODE
LOWtests/test_signal_processing.py126 def test_cn_label_wins_over_prose_term(self):CODE
261 more matches not shown…
Unused Imports125 hits · 121 pts
SeverityFileLineSnippetContext
LOWtest.py2CODE
LOWtest.py2CODE
LOWtest.py2CODE
LOWtest.py2CODE
LOWtest.py2CODE
LOWweb/runner.py3CODE
LOWweb/stock_display.py3CODE
LOWweb/launch.py3CODE
LOWweb/app.py3CODE
LOWweb/progress.py3CODE
LOWweb/pdf_export.py3CODE
LOWweb/history.py3CODE
LOWweb/components/sidebar.py3CODE
LOWweb/components/report_viewer.py3CODE
LOWweb/components/progress_panel.py3CODE
LOWtests/test_progress_pause.py1CODE
LOWtests/test_checkpoint_resume.py3CODE
LOWtests/test_checkpoint_resume.py6CODE
LOWtests/test_checkpoint_resume.py10CODE
LOWtests/test_agent_sdk_provider.py12CODE
LOWtests/test_web_history.py3CODE
LOWcli/models.py2CODE
LOWcli/models.py2CODE
LOWcli/models.py2CODE
LOWcli/models.py3CODE
LOWcli/utils.py2CODE
LOWcli/utils.py2CODE
LOWcli/main.py1CODE
LOWcli/main.py15CODE
LOWcli/main.py22CODE
LOWcli/main.py29CODE
LOWcli/main.py30CODE
LOWcli/stats_handler.py2CODE
LOWtradingagents/performance.py19CODE
LOWtradingagents/performance.py22CODE
LOWtradingagents/graph/checkpointer.py6CODE
LOWtradingagents/graph/__init__.py3CODE
LOWtradingagents/graph/__init__.py4CODE
LOWtradingagents/graph/__init__.py5CODE
LOWtradingagents/graph/__init__.py6CODE
LOWtradingagents/graph/__init__.py7CODE
LOWtradingagents/graph/__init__.py8CODE
LOWtradingagents/graph/trading_graph.py18CODE
LOWtradingagents/graph/trading_graph.py22CODE
LOWtradingagents/graph/trading_graph.py22CODE
LOWtradingagents/graph/trading_graph.py22CODE
LOWtradingagents/graph/setup.py7CODE
LOWtradingagents/graph/propagation.py4CODE
LOWtradingagents/graph/signal_processing.py13CODE
LOWtradingagents/agents/__init__.py1CODE
LOWtradingagents/agents/__init__.py2CODE
LOWtradingagents/agents/__init__.py2CODE
LOWtradingagents/agents/__init__.py2CODE
LOWtradingagents/agents/__init__.py4CODE
LOWtradingagents/agents/__init__.py5CODE
LOWtradingagents/agents/__init__.py6CODE
LOWtradingagents/agents/__init__.py7CODE
LOWtradingagents/agents/__init__.py8CODE
LOWtradingagents/agents/__init__.py9CODE
LOWtradingagents/agents/__init__.py10CODE
65 more matches not shown…
Excessive Try-Catch Wrapping73 hits · 56 pts
SeverityFileLineSnippetContext
LOWtest_data_quality.py77 except Exception as e:CODE
LOWweb/runner.py190 except Exception as exc:CODE
LOWweb/runner.py194 except Exception:CODE
MEDIUMweb/runner.py187def _target() -> None:CODE
LOWweb/stock_display.py67 except Exception:CODE
LOWweb/stock_display.py84 except Exception:CODE
LOWweb/app.py246 except Exception as exc:CODE
LOWweb/pdf_export.py371 except Exception as exc:CODE
LOWweb/history.py141 except Exception:CODE
LOWweb/components/report_viewer.py112 except Exception as exc: # noqa: BLE001 — never let PDF crash the pageSTRING
LOWtests/test_agent_sdk_provider.py298 except Exception:CODE
LOWcli/utils.py155 except Exception as e:CODE
LOWcli/main.py1252 except Exception as e:CODE
LOWcli/announcements.py23 except Exception:CODE
LOWtradingagents/graph/trading_graph.py529 except Exception as e:CODE
LOWtradingagents/agents/quality_gate.py155 except Exception as e:STRING
LOWtradingagents/agents/utils/structured.py66 except Exception as exc:CODE
LOWtradingagents/dataflows/alpha_vantage_indicator.py220 except Exception as e:CODE
MEDIUMtradingagents/dataflows/alpha_vantage_indicator.py221 print(f"Error getting Alpha Vantage indicator data for {indicator}: {e}")CODE
LOWtradingagents/dataflows/y_finance.py166 except Exception as e:CODE
MEDIUMtradingagents/dataflows/y_finance.py167 print(f"Error getting bulk stockstats data: {e}")CODE
LOWtradingagents/dataflows/y_finance.py239 except Exception as e:CODE
LOWtradingagents/dataflows/y_finance.py301 except Exception as e:CODE
LOWtradingagents/dataflows/y_finance.py333 except Exception as e:CODE
LOWtradingagents/dataflows/y_finance.py365 except Exception as e:CODE
LOWtradingagents/dataflows/y_finance.py397 except Exception as e:CODE
LOWtradingagents/dataflows/y_finance.py421 except Exception as e:CODE
LOWtradingagents/dataflows/a_stock.py478 except Exception:CODE
LOWtradingagents/dataflows/a_stock.py727 except Exception as e:CODE
LOWtradingagents/dataflows/a_stock.py1942 except Exception as e:CODE
LOWtradingagents/dataflows/a_stock.py2182 except Exception as e:CODE
LOWtradingagents/dataflows/a_stock.py2308 except Exception:CODE
LOWtradingagents/dataflows/a_stock.py2389 except Exception as e:CODE
LOWtradingagents/dataflows/a_stock.py145 except Exception as e:CODE
LOWtradingagents/dataflows/a_stock.py288 except Exception as e: # mootdx 版本变动导致取不到就只用精选表,不影响主流程CODE
LOWtradingagents/dataflows/a_stock.py327 except Exception:CODE
LOWtradingagents/dataflows/a_stock.py369 except Exception as e: # 版本差异导致取不到就跳过保护,别影响主流程CODE
LOWtradingagents/dataflows/a_stock.py380 except Exception as e:CODE
LOWtradingagents/dataflows/a_stock.py424 except Exception as e:CODE
LOWtradingagents/dataflows/a_stock.py443 except Exception as e:CODE
LOWtradingagents/dataflows/a_stock.py792 except Exception as e:CODE
LOWtradingagents/dataflows/a_stock.py799 except Exception:CODE
LOWtradingagents/dataflows/a_stock.py854 except Exception as e:CODE
LOWtradingagents/dataflows/a_stock.py862 except Exception:CODE
LOWtradingagents/dataflows/a_stock.py974 except Exception as e:CODE
LOWtradingagents/dataflows/a_stock.py1015 except Exception as e:CODE
LOWtradingagents/dataflows/a_stock.py1040 except Exception as e:CODE
LOWtradingagents/dataflows/a_stock.py1068 except Exception as e:CODE
LOWtradingagents/dataflows/a_stock.py1138 except Exception as e:CODE
LOWtradingagents/dataflows/a_stock.py1140 except Exception as e:CODE
LOWtradingagents/dataflows/a_stock.py1153 except Exception as e:CODE
LOWtradingagents/dataflows/a_stock.py1237 except Exception as e:CODE
LOWtradingagents/dataflows/a_stock.py1268 except Exception as e:CODE
LOWtradingagents/dataflows/a_stock.py1299 except Exception as e:CODE
LOWtradingagents/dataflows/a_stock.py1412 except Exception as e:CODE
LOWtradingagents/dataflows/a_stock.py1419 except Exception as e:CODE
LOWtradingagents/dataflows/a_stock.py1502 except Exception as e:CODE
LOWtradingagents/dataflows/a_stock.py1529 except Exception as e:CODE
LOWtradingagents/dataflows/a_stock.py1605 except Exception as e:CODE
LOWtradingagents/dataflows/a_stock.py1696 except Exception as e:CODE
13 more matches not shown…
Self-Referential Comments6 hits · 20 pts
SeverityFileLineSnippetContext
MEDIUMmain.py9# Create a custom configCOMMENT
MEDIUMtests/test_checkpoint_resume.py91 # Create a checkpoint by crashingCOMMENT
MEDIUMcli/main.py494 # Create a boxed questionnaire for each stepCOMMENT
MEDIUMcli/main.py43# Create a deque to store recent messages with a maximum lengthCOMMENT
MEDIUMtradingagents/dataflows/y_finance.py207 # Create a dictionary mapping date strings to indicator valuesCOMMENT
MEDIUMtradingagents/dataflows/alpha_vantage_common.py48 # Create a copy of params to avoid modifying the originalCOMMENT
Verbosity Indicators8 hits · 18 pts
SeverityFileLineSnippetContext
LOWcli/main.py502 # Step 1: Ticker symbolCOMMENT
LOWcli/main.py512 # Step 2: Analysis dateCOMMENT
LOWcli/main.py533 # Step 3: Output languageCOMMENT
LOWcli/main.py542 # Step 4: Select analystsCOMMENT
LOWcli/main.py553 # Step 5: Research depthCOMMENT
LOWcli/main.py561 # Step 6: LLM ProviderCOMMENT
LOWcli/main.py569 # Step 7: Thinking agentsCOMMENT
LOWcli/main.py578 # Step 8: Provider-specific thinking configurationCOMMENT
Structural Annotation Overuse8 hits · 18 pts
SeverityFileLineSnippetContext
LOWcli/main.py502 # Step 1: Ticker symbolCOMMENT
LOWcli/main.py512 # Step 2: Analysis dateCOMMENT
LOWcli/main.py533 # Step 3: Output languageCOMMENT
LOWcli/main.py542 # Step 4: Select analystsCOMMENT
LOWcli/main.py553 # Step 5: Research depthCOMMENT
LOWcli/main.py561 # Step 6: LLM ProviderCOMMENT
LOWcli/main.py569 # Step 7: Thinking agentsCOMMENT
LOWcli/main.py578 # Step 8: Provider-specific thinking configurationCOMMENT
Modern Structural Boilerplate14 hits · 14 pts
SeverityFileLineSnippetContext
LOWweb/progress.py163 def update_stats(self, llm: int, tool: int, tok_in: int, tok_out: int) -> None:CODE
LOWweb/history.py17logger = logging.getLogger(__name__)CODE
LOWtradingagents/graph/__init__.py10__all__ = [CODE
LOWtradingagents/graph/trading_graph.py12logger = logging.getLogger(__name__)CODE
LOWtradingagents/agents/__init__.py26__all__ = [CODE
LOWtradingagents/agents/utils/structured.py26logger = logging.getLogger(__name__)CODE
LOWtradingagents/dataflows/stockstats_utils.py13logger = logging.getLogger(__name__)CODE
LOWtradingagents/dataflows/a_stock.py37logger = logging.getLogger(__name__)CODE
LOWtradingagents/dataflows/utils.py9logger = logging.getLogger(__name__)CODE
LOWtradingagents/llm_clients/claude_agent_sdk_client.py41logger = logging.getLogger(__name__)CODE
LOWtradingagents/llm_clients/base_client.py6logger = logging.getLogger(__name__)CODE
LOWtradingagents/llm_clients/__init__.py4__all__ = ["BaseLLMClient", "create_llm_client"]CODE
LOWtradingagents/llm_clients/openai_client.py12logger = logging.getLogger(__name__)CODE
LOWtradingagents/llm_clients/anthropic_client.py10logger = logging.getLogger(__name__)CODE
Deep Nesting20 hits · 14 pts
SeverityFileLineSnippetContext
LOWweb/stock_display.py91CODE
LOWcli/main.py977CODE
LOWtradingagents/graph/trading_graph.py392CODE
LOWtradingagents/graph/trading_graph.py669CODE
LOWtradingagents/dataflows/alpha_vantage_indicator.py3CODE
LOWtradingagents/dataflows/a_stock.py123CODE
LOWtradingagents/dataflows/a_stock.py384CODE
LOWtradingagents/dataflows/a_stock.py981CODE
LOWtradingagents/dataflows/a_stock.py1465CODE
LOWtradingagents/dataflows/a_stock.py1612CODE
LOWtradingagents/dataflows/a_stock.py1802CODE
LOWtradingagents/dataflows/a_stock.py1824CODE
LOWtradingagents/dataflows/a_stock.py1844CODE
LOWtradingagents/dataflows/a_stock.py1965CODE
LOWtradingagents/dataflows/a_stock.py2033CODE
LOWtradingagents/dataflows/a_stock.py2190CODE
LOWtradingagents/dataflows/a_stock.py2399CODE
LOWtradingagents/dataflows/yfinance_news.py51CODE
LOWtradingagents/dataflows/yfinance_news.py107CODE
LOWtradingagents/llm_clients/openai_client.py172CODE
Fake / Example Data8 hits · 11 pts
SeverityFileLineSnippetContext
LOWtests/conftest.py31 monkeypatch.setenv(env_var, os.environ.get(env_var, "placeholder"))CODE
LOWtests/test_capabilities.py46 api_key="placeholder",CODE
LOWtests/test_capabilities.py57 api_key="placeholder",CODE
LOWtests/test_capabilities.py71 api_key="placeholder",CODE
LOWtests/test_deepseek_reasoning.py56 os.environ.setdefault("DEEPSEEK_API_KEY", "placeholder")CODE
LOWtests/test_deepseek_reasoning.py59 api_key="placeholder",CODE
LOWtests/test_deepseek_reasoning.py126 api_key="placeholder",CODE
LOWtests/test_deepseek_reasoning.py143 api_key="placeholder",CODE
Cross-Language Confusion2 hits · 10 pts
SeverityFileLineSnippetContext
HIGHweb/pdf_export.py150 ' pip uninstall -y fpdf fpdf2 && pip install "fpdf2>=2.8.0"\n'CODE
HIGHweb/pdf_export.py161 ' pip uninstall -y fpdf && pip install "fpdf2>=2.8.0"\n'CODE
Over-Commented Block8 hits · 8 pts
SeverityFileLineSnippetContext
LOWpyproject.toml61# combination satisfies both — the conflict is structural, not a bad pin.COMMENT
LOWREADME.md221# ── DeepSeek 示例 ───────────────────────────────────COMMENT
LOWREADME_en.md201config = {COMMENT
LOWtradingagents/default_config.py21 # provider-specific URL here would leak (e.g. OpenAI's /v1 was previouslyCOMMENT
LOWtradingagents/default_config.py41 # "bear": {"provider": "qwen", "model": "qwen-plus"},COMMENT
LOWtradingagents/default_config.py61 "agent_sdk_model": "opus",COMMENT
LOWtradingagents/agents/utils/rating.py61# 结果是静默落到默认值 Hold —— 决策评级被悄悄改写,报告里完全看不出来。COMMENT
LOWtradingagents/llm_clients/claude_agent_sdk_client.py481 async def _query(self, prompt: str, options, prefer_result: bool = False):COMMENT
Modern AI Meta-Vocabulary2 hits · 5 pts
SeverityFileLineSnippetContext
MEDIUMCHANGELOG.md1193- [@Bcardo](https://github.com/Bcardo) — memory-log redesign (#579), empty-memory hallucination report (#572), encoding CODE
MEDIUMtradingagents/llm_clients/claude_agent_sdk_client.py47# to run a multi-turn agentic loop internally (call tool → read result → …).COMMENT
Docstring Block Structure1 hit · 5 pts
SeverityFileLineSnippetContext
HIGHtradingagents/llm_clients/factory.py22Create an LLM client for the specified provider. Provider modules are imported lazily so that simply importing thisSTRING
Redundant / Tautological Comments3 hits · 4 pts
SeverityFileLineSnippetContext
LOWtradingagents/dataflows/alpha_vantage_indicator.py194 # Check if date is in our rangeCOMMENT
LOWtradingagents/dataflows/y_finance.py24 # Check if data is emptyCOMMENT
LOWtradingagents/dataflows/alpha_vantage_common.py71 # Check if response is JSON (error responses are typically JSON)COMMENT
AI Structural Patterns1 hit · 1 pts
SeverityFileLineSnippetContext
LOWtradingagents/dataflows/stockstats_utils.py93CODE