FinRobot: An Open-Source AI Agent Platform for Financial Applications using LLMs 🚀 🚀 🚀
This report presents the forensic synthetic code analysis of AI4Finance-Foundation/FinRobot, a Jupyter Notebook project with 7,712 GitHub stars. SynthScan v2.0 examined 30,563 lines of code across 114 source files, recording 771 pattern matches distributed across 17 syntactic categories. The overall adjusted score of 39.4 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).
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.
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 771 distinct pattern matches across 17 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 |
|---|---|---|---|---|
| MEDIUM | deploy.gcloud.sh | 15 | # ── Configuration ──────────────────────────────────────────────────────────── | COMMENT |
| MEDIUM | deploy.gcloud.sh | 39 | # ── Step 1: Create GCS Bucket ─────────────────────────────────────────────── | COMMENT |
| MEDIUM | deploy.gcloud.sh | 48 | # ── Step 2: Cloud SQL PostgreSQL ───────────────────────────────────────────── | COMMENT |
| MEDIUM | deploy.gcloud.sh | 82 | # ── Step 3: Secret Manager — config.ini ────────────────────────────────────── | COMMENT |
| MEDIUM | deploy.gcloud.sh | 110 | # ── Step 4: Build & Push Docker Image ──────────────────────────────────────── | COMMENT |
| MEDIUM | deploy.gcloud.sh | 127 | # ── Step 5: Deploy Cloud Run ───────────────────────────────────────────────── | COMMENT |
| MEDIUM | deploy.gcloud.sh | 149 | # ── Done ───────────────────────────────────────────────────────────────────── | COMMENT |
| MEDIUM⚡ | deploy.sh | 78 | # ============================================================================ | COMMENT |
| MEDIUM⚡ | deploy.sh | 80 | # ============================================================================ | COMMENT |
| MEDIUM⚡ | deploy.sh | 203 | # ============================================================================ | COMMENT |
| MEDIUM⚡ | deploy.sh | 205 | # ============================================================================ | COMMENT |
| MEDIUM | deploy.sh | 24 | # ============================================================================ | COMMENT |
| MEDIUM | deploy.sh | 26 | # ============================================================================ | COMMENT |
| MEDIUM | deploy.sh | 50 | # ============================================================================ | COMMENT |
| MEDIUM | deploy.sh | 52 | # ============================================================================ | COMMENT |
| MEDIUM | deploy.sh | 114 | # ============================================================================ | COMMENT |
| MEDIUM | deploy.sh | 116 | # ============================================================================ | COMMENT |
| MEDIUM | deploy.sh | 167 | # ============================================================================ | COMMENT |
| MEDIUM | deploy.sh | 169 | # ============================================================================ | COMMENT |
| MEDIUM | deploy.sh | 366 | # ============================================================================ | COMMENT |
| MEDIUM | deploy.sh | 368 | # ============================================================================ | COMMENT |
| MEDIUM | deploy.sh | 474 | # ============================================================================ | COMMENT |
| MEDIUM | deploy.sh | 476 | # ============================================================================ | COMMENT |
| MEDIUM | finrobot_equity/web_app/database/crud.py | 13 | # ============================================================================= | COMMENT |
| MEDIUM | finrobot_equity/web_app/database/crud.py | 15 | # ============================================================================= | COMMENT |
| MEDIUM | finrobot_equity/web_app/database/crud.py | 27 | # ============================================================================= | COMMENT |
| MEDIUM | finrobot_equity/web_app/database/crud.py | 29 | # ============================================================================= | COMMENT |
| MEDIUM | finrobot_equity/web_app/database/crud.py | 86 | # ============================================================================= | COMMENT |
| MEDIUM | finrobot_equity/web_app/database/crud.py | 88 | # ============================================================================= | COMMENT |
| MEDIUM | finrobot_equity/web_app/database/crud.py | 140 | # ============================================================================= | COMMENT |
| MEDIUM | finrobot_equity/web_app/database/crud.py | 142 | # ============================================================================= | COMMENT |
| MEDIUM | finrobot_equity/web_app/database/crud.py | 189 | # ============================================================================= | COMMENT |
| MEDIUM | finrobot_equity/web_app/database/crud.py | 191 | # ============================================================================= | COMMENT |
| MEDIUM | finrobot_equity/web_app/database/crud.py | 267 | # ============================================================================= | COMMENT |
| MEDIUM | finrobot_equity/web_app/database/crud.py | 269 | # ============================================================================= | COMMENT |
| MEDIUM⚡ | finrobot_equity/core/src/modules/pdf_generator.py | 277 | # ============================================================================= | COMMENT |
| MEDIUM⚡ | finrobot_equity/core/src/modules/pdf_generator.py | 279 | # ============================================================================= | COMMENT |
| MEDIUM⚡ | finrobot_equity/core/src/modules/pdf_generator.py | 873 | # ============================================================================= | COMMENT |
| MEDIUM⚡ | finrobot_equity/core/src/modules/pdf_generator.py | 875 | # ============================================================================= | COMMENT |
| MEDIUM | finrobot_equity/core/src/modules/pdf_generator.py | 32 | # ============================================================================= | COMMENT |
| MEDIUM | finrobot_equity/core/src/modules/pdf_generator.py | 34 | # ============================================================================= | COMMENT |
| MEDIUM | finrobot_equity/core/src/modules/pdf_generator.py | 62 | # ============================================================================= | COMMENT |
| MEDIUM | finrobot_equity/core/src/modules/pdf_generator.py | 64 | # ============================================================================= | COMMENT |
| MEDIUM | finrobot_equity/core/src/modules/pdf_generator.py | 85 | # ============================================================================= | COMMENT |
| MEDIUM | finrobot_equity/core/src/modules/pdf_generator.py | 87 | # ============================================================================= | COMMENT |
| MEDIUM | finrobot_equity/core/src/modules/pdf_generator.py | 106 | # ============================================================================= | COMMENT |
| MEDIUM | finrobot_equity/core/src/modules/pdf_generator.py | 108 | # ============================================================================= | COMMENT |
| MEDIUM | finrobot_equity/core/src/modules/pdf_generator.py | 368 | # ============================================================================= | COMMENT |
| MEDIUM | finrobot_equity/core/src/modules/pdf_generator.py | 370 | # ============================================================================= | COMMENT |
| MEDIUM | finrobot_equity/core/src/modules/pdf_generator.py | 435 | # ============================================================================= | COMMENT |
| MEDIUM | finrobot_equity/core/src/modules/pdf_generator.py | 437 | # ============================================================================= | COMMENT |
| MEDIUM⚡ | …ot_equity/core/src/modules/enhanced_chart_generator.py | 139 | # ========================================================================= | COMMENT |
| MEDIUM⚡ | …ot_equity/core/src/modules/enhanced_chart_generator.py | 141 | # ========================================================================= | COMMENT |
| MEDIUM⚡ | …ot_equity/core/src/modules/enhanced_chart_generator.py | 194 | # ========================================================================= | COMMENT |
| MEDIUM⚡ | …ot_equity/core/src/modules/enhanced_chart_generator.py | 196 | # ========================================================================= | COMMENT |
| MEDIUM⚡ | …ot_equity/core/src/modules/enhanced_chart_generator.py | 246 | # ========================================================================= | COMMENT |
| MEDIUM⚡ | …ot_equity/core/src/modules/enhanced_chart_generator.py | 248 | # ========================================================================= | COMMENT |
| MEDIUM⚡ | …ot_equity/core/src/modules/enhanced_chart_generator.py | 285 | # ========================================================================= | COMMENT |
| MEDIUM⚡ | …ot_equity/core/src/modules/enhanced_chart_generator.py | 287 | # ========================================================================= | COMMENT |
| MEDIUM⚡ | …ot_equity/core/src/modules/enhanced_chart_generator.py | 324 | # ========================================================================= | COMMENT |
| 95 more matches not shown… | ||||
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| LOW | run_web_app.py | 55 | except Exception as e: | CODE |
| LOW⚡ | finrobot_equity/web_app/main.py | 391 | except Exception as e: | CODE |
| LOW⚡ | finrobot_equity/web_app/main.py | 405 | except Exception as e: | CODE |
| LOW⚡ | finrobot_equity/web_app/main.py | 455 | except Exception as e: | CODE |
| LOW⚡ | finrobot_equity/web_app/main.py | 515 | except Exception as e: | CODE |
| LOW | finrobot_equity/web_app/main.py | 95 | except Exception as e: | CODE |
| LOW | finrobot_equity/web_app/main.py | 106 | except Exception as e: | CODE |
| LOW | finrobot_equity/web_app/main.py | 543 | except Exception as e: | CODE |
| LOW | finrobot_equity/web_app/main.py | 602 | except Exception as e: | CODE |
| LOW | finrobot_equity/web_app/main.py | 743 | except Exception as e: | CODE |
| LOW | finrobot_equity/web_app/main.py | 778 | except Exception as e: | CODE |
| LOW | finrobot_equity/web_app/middleware/request_logger.py | 61 | except Exception: | CODE |
| LOW | finrobot_equity/web_app/middleware/request_logger.py | 71 | except Exception: | CODE |
| LOW | finrobot_equity/web_app/middleware/request_logger.py | 101 | except Exception as e: | CODE |
| LOW | finrobot_equity/core/tests/test_generate_report.py | 296 | except Exception as e: | CODE |
| LOW | finrobot_equity/core/tests/test_modules.py | 40 | except Exception as e: | CODE |
| LOW | finrobot_equity/core/tests/test_modules.py | 97 | except Exception as e: | CODE |
| LOW | finrobot_equity/core/tests/test_modules.py | 146 | except Exception as e: | CODE |
| LOW | finrobot_equity/core/tests/test_modules.py | 204 | except Exception as e: | CODE |
| LOW | finrobot_equity/core/tests/test_modules.py | 264 | except Exception as e: | CODE |
| LOW | finrobot_equity/core/tests/test_modules.py | 327 | except Exception as e: | CODE |
| LOW | finrobot_equity/core/tests/test_modules.py | 378 | except Exception as e: | CODE |
| LOW | finrobot_equity/core/tests/test_modules.py | 423 | except Exception as e: | CODE |
| MEDIUM | finrobot_equity/core/src/create_equity_report.py | 90 | print(f"An error occurred while loading credit metrics from CSV: {e}") | CODE |
| MEDIUM | finrobot_equity/core/src/create_equity_report.py | 461 | print("Error: Could not load analysis CSV file") | CODE |
| LOW | finrobot_equity/core/src/create_equity_report.py | 89 | except Exception as e: | CODE |
| LOW | finrobot_equity/core/src/create_equity_report.py | 154 | except Exception as e: | CODE |
| LOW | finrobot_equity/core/src/create_equity_report.py | 226 | except Exception as e: | CODE |
| LOW | finrobot_equity/core/src/create_equity_report.py | 390 | except Exception as e: | CODE |
| LOW | finrobot_equity/core/src/create_equity_report.py | 393 | except Exception as e: | CODE |
| LOW | finrobot_equity/core/src/create_equity_report.py | 414 | except Exception: | CODE |
| LOW | finrobot_equity/core/src/create_equity_report.py | 416 | except Exception as e: | CODE |
| LOW | finrobot_equity/core/src/create_equity_report.py | 501 | except Exception as e: | CODE |
| LOW | finrobot_equity/core/src/create_equity_report.py | 741 | except Exception as e: | CODE |
| LOW | finrobot_equity/core/src/create_equity_report.py | 746 | except Exception as e: | CODE |
| LOW | finrobot_equity/core/src/create_equity_report.py | 801 | except Exception as e: | CODE |
| LOW | finrobot_equity/core/src/create_equity_report.py | 817 | except Exception as e: | CODE |
| LOW | finrobot_equity/core/src/create_equity_report.py | 863 | except Exception as e: | CODE |
| LOW | finrobot_equity/core/src/create_equity_report.py | 874 | except Exception as e: | CODE |
| LOW | finrobot_equity/core/src/create_equity_report.py | 890 | except Exception as e: | CODE |
| MEDIUM⚡ | finrobot_equity/core/src/generate_financial_analysis.py | 396 | print(f"Error performing catalyst analysis: {e}") | CODE |
| MEDIUM⚡ | finrobot_equity/core/src/generate_financial_analysis.py | 404 | print("Error: OpenAI API key not loaded. Skipping text generation.") | CODE |
| MEDIUM⚡ | finrobot_equity/core/src/generate_financial_analysis.py | 469 | print(f"Error generating text for '{text_type}': {e}") | CODE |
| MEDIUM | finrobot_equity/core/src/generate_financial_analysis.py | 107 | print(f"Error loading configuration: {e}") | CODE |
| MEDIUM | finrobot_equity/core/src/generate_financial_analysis.py | 128 | print("Error: Could not fetch income statement data from FMP API. Exiting.") | CODE |
| MEDIUM | finrobot_equity/core/src/generate_financial_analysis.py | 148 | print("Error: Failed to process historical metrics from API data. Exiting.") | CODE |
| MEDIUM | finrobot_equity/core/src/generate_financial_analysis.py | 222 | print(f"Error fetching peer data: {e}") | CODE |
| MEDIUM | finrobot_equity/core/src/generate_financial_analysis.py | 271 | print(f"Error fetching company news: {e}") | CODE |
| MEDIUM | finrobot_equity/core/src/generate_financial_analysis.py | 295 | print(f"Error fetching retail sentiment insights: {e}") | CODE |
| MEDIUM | finrobot_equity/core/src/generate_financial_analysis.py | 341 | print(f"Error performing sensitivity analysis: {e}") | CODE |
| LOW⚡ | finrobot_equity/core/src/generate_financial_analysis.py | 395 | except Exception as e: | CODE |
| LOW⚡ | finrobot_equity/core/src/generate_financial_analysis.py | 468 | except Exception as e: | CODE |
| LOW | finrobot_equity/core/src/generate_financial_analysis.py | 106 | except Exception as e: | CODE |
| LOW | finrobot_equity/core/src/generate_financial_analysis.py | 221 | except Exception as e: | CODE |
| LOW | finrobot_equity/core/src/generate_financial_analysis.py | 270 | except Exception as e: | CODE |
| LOW | finrobot_equity/core/src/generate_financial_analysis.py | 294 | except Exception as e: | CODE |
| LOW | finrobot_equity/core/src/generate_financial_analysis.py | 340 | except Exception as e: | CODE |
| LOW | finrobot_equity/core/src/generate_pdf_report.py | 378 | except Exception as e: | CODE |
| LOW | finrobot_equity/core/src/generate_pdf_report.py | 398 | except Exception as e: | CODE |
| LOW | finrobot_equity/core/src/generate_pdf_report.py | 482 | except Exception as e: | CODE |
| 106 more matches not shown… | ||||
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| LOW | finrobot_equity/__init__.py | 23 | CODE | |
| LOW | finrobot_equity/__init__.py | 24 | CODE | |
| LOW | finrobot_equity/web_app/auth.py | 5 | CODE | |
| LOW | finrobot_equity/web_app/main.py | 4 | CODE | |
| LOW | finrobot_equity/web_app/main.py | 8 | CODE | |
| LOW | finrobot_equity/web_app/main.py | 9 | CODE | |
| LOW | finrobot_equity/web_app/main.py | 11 | CODE | |
| LOW | finrobot_equity/web_app/main.py | 12 | CODE | |
| LOW | finrobot_equity/web_app/main.py | 13 | CODE | |
| LOW | finrobot_equity/web_app/main.py | 53 | CODE | |
| LOW | finrobot_equity/web_app/middleware/request_logger.py | 5 | CODE | |
| LOW | finrobot_equity/web_app/middleware/__init__.py | 2 | CODE | |
| LOW | finrobot_equity/web_app/database/__init__.py | 2 | CODE | |
| LOW | finrobot_equity/web_app/database/__init__.py | 2 | CODE | |
| LOW | finrobot_equity/web_app/database/__init__.py | 2 | CODE | |
| LOW | finrobot_equity/web_app/database/__init__.py | 3 | CODE | |
| LOW | finrobot_equity/web_app/database/__init__.py | 3 | CODE | |
| LOW | finrobot_equity/web_app/database/__init__.py | 3 | CODE | |
| LOW | finrobot_equity/web_app/database/__init__.py | 3 | CODE | |
| LOW | finrobot_equity/web_app/database/__init__.py | 4 | CODE | |
| LOW | finrobot_equity/web_app/database/__init__.py | 4 | CODE | |
| LOW | finrobot_equity/web_app/database/__init__.py | 4 | CODE | |
| LOW | finrobot_equity/web_app/database/__init__.py | 4 | CODE | |
| LOW | finrobot_equity/web_app/database/__init__.py | 4 | CODE | |
| LOW | finrobot_equity/web_app/database/__init__.py | 4 | CODE | |
| LOW | finrobot_equity/web_app/database/__init__.py | 4 | CODE | |
| LOW | finrobot_equity/web_app/database/__init__.py | 4 | CODE | |
| LOW | finrobot_equity/web_app/database/__init__.py | 4 | CODE | |
| LOW | finrobot_equity/web_app/database/__init__.py | 4 | CODE | |
| LOW | finrobot_equity/web_app/database/__init__.py | 4 | CODE | |
| LOW | finrobot_equity/web_app/database/__init__.py | 4 | CODE | |
| LOW | finrobot_equity/core/tests/test_generate_report.py | 11 | CODE | |
| LOW | finrobot_equity/core/tests/test_modules.py | 57 | CODE | |
| LOW | finrobot_equity/core/tests/test_modules.py | 57 | CODE | |
| LOW | finrobot_equity/core/tests/test_modules.py | 159 | CODE | |
| LOW | finrobot_equity/core/src/create_equity_report.py | 14 | CODE | |
| LOW | finrobot_equity/core/src/create_equity_report.py | 16 | CODE | |
| LOW | finrobot_equity/core/src/create_equity_report.py | 16 | CODE | |
| LOW | finrobot_equity/core/src/create_equity_report.py | 38 | CODE | |
| LOW | finrobot_equity/core/src/create_equity_report.py | 39 | CODE | |
| LOW | finrobot_equity/core/src/generate_financial_analysis.py | 22 | CODE | |
| LOW | finrobot_equity/core/src/generate_pdf_report.py | 28 | CODE | |
| LOW | finrobot_equity/core/src/generate_pdf_report.py | 28 | CODE | |
| LOW | finrobot_equity/core/src/generate_pdf_report.py | 28 | CODE | |
| LOW | finrobot_equity/core/src/generate_pdf_report.py | 28 | CODE | |
| LOW | finrobot_equity/core/src/generate_pdf_report.py | 44 | CODE | |
| LOW | …bot_equity/core/src/modules/retail_sentiment_client.py | 6 | CODE | |
| LOW | finrobot_equity/core/src/modules/html_renderer.py | 4 | CODE | |
| LOW | finrobot_equity/core/src/modules/pdf_generator.py | 11 | CODE | |
| LOW | finrobot_equity/core/src/modules/pdf_generator.py | 11 | CODE | |
| LOW | finrobot_equity/core/src/modules/pdf_generator.py | 19 | CODE | |
| LOW | finrobot_equity/core/src/modules/pdf_generator.py | 21 | CODE | |
| LOW | finrobot_equity/core/src/modules/pdf_generator.py | 21 | CODE | |
| LOW | finrobot_equity/core/src/modules/pdf_generator.py | 21 | CODE | |
| LOW | finrobot_equity/core/src/modules/pdf_generator.py | 21 | CODE | |
| LOW | finrobot_equity/core/src/modules/pdf_generator.py | 25 | CODE | |
| LOW | finrobot_equity/core/src/modules/pdf_generator.py | 26 | CODE | |
| LOW | finrobot_equity/core/src/modules/pdf_generator.py | 27 | CODE | |
| LOW | finrobot_equity/core/src/modules/catalyst_analyzer.py | 8 | CODE | |
| LOW | finrobot_equity/core/src/modules/catalyst_analyzer.py | 9 | CODE | |
| 99 more matches not shown… | ||||
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| LOW | finrobot_equity/web_app/auth.py | 130 | def get_or_create_github_user( | CODE |
| LOW⚡ | finrobot_equity/web_app/main.py | 396 | def execute_analysis_pipeline(task_id: str, req: AnalysisRequest): | CODE |
| LOW | finrobot_equity/core/tests/test_generate_report.py | 59 | def create_mock_peer_ev_ebitda_df(): | CODE |
| LOW | finrobot_equity/core/tests/test_generate_report.py | 72 | def create_financial_summary_df(): | CODE |
| LOW | …obot_equity/core/tests/test_retail_sentiment_client.py | 28 | def test_get_snapshot_aggregates_available_sources(monkeypatch): | CODE |
| LOW | …obot_equity/core/tests/test_retail_sentiment_client.py | 88 | def test_get_snapshot_skips_failed_source(monkeypatch): | CODE |
| LOW | …obot_equity/core/tests/test_retail_sentiment_client.py | 120 | def test_prompt_formatter_renders_retail_sentiment_snapshot(): | CODE |
| LOW | …obot_equity/core/tests/test_retail_sentiment_client.py | 158 | def test_html_formatter_renders_retail_sentiment_block(): | CODE |
| LOW | …obot_equity/core/tests/test_retail_sentiment_client.py | 185 | def test_professional_report_renders_retail_sentiment_section(): | CODE |
| LOW | finrobot_equity/core/tests/test_modules.py | 47 | def test_enhanced_chart_generator(): | CODE |
| LOW | finrobot_equity/core/tests/test_modules.py | 103 | def test_sensitivity_analyzer(): | CODE |
| LOW | finrobot_equity/core/tests/test_modules.py | 384 | def test_advanced_chart_functions(): | CODE |
| LOW⚡ | finrobot_equity/core/src/create_equity_report.py | 41 | def load_credit_cashflow_metrics_from_csv(file_path: str) -> pd.DataFrame: | CODE |
| LOW⚡ | finrobot_equity/core/src/create_equity_report.py | 167 | def validate_and_fix_text_content(text_content: str, text_type: str, company_name: str, company_ticker: str) -> str: | CODE |
| LOW | finrobot_equity/core/src/create_equity_report.py | 193 | def regenerate_text_if_needed(text_content: str, text_type: str, company_name: str, company_ticker: str, | CODE |
| LOW | finrobot_equity/core/src/generate_pdf_report.py | 181 | def prepare_financial_summary_df(analysis_df: pd.DataFrame) -> pd.DataFrame: | CODE |
| LOW | finrobot_equity/core/src/generate_pdf_report.py | 213 | def prepare_credit_metrics_df(ratios_df: pd.DataFrame) -> pd.DataFrame: | CODE |
| LOW | …bot_equity/core/src/modules/retail_sentiment_client.py | 136 | def _compute_source_alignment(bullish_values: List[float]) -> str: | CODE |
| LOW | …bot_equity/core/src/modules/retail_sentiment_client.py | 174 | def format_retail_sentiment_for_prompt(snapshot: Dict[str, Any]) -> str: | CODE |
| LOW | …nrobot_equity/core/src/modules/sensitivity_analyzer.py | 61 | def analyze_revenue_sensitivity(self, growth_range: Tuple[float, float] = (-0.05, 0.05), | CODE |
| LOW | …nrobot_equity/core/src/modules/sensitivity_analyzer.py | 108 | def analyze_margin_sensitivity(self, margin_range: Tuple[float, float] = (-0.02, 0.02), | CODE |
| LOW | …nrobot_equity/core/src/modules/sensitivity_analyzer.py | 160 | def generate_sensitivity_table(self, revenue_range: Tuple[float, float] = (-0.05, 0.05), | CODE |
| LOW | …nrobot_equity/core/src/modules/sensitivity_analyzer.py | 215 | def calculate_confidence_interval(self, metric: str, confidence: float = 0.95) -> Tuple[float, float]: | CODE |
| LOW | …nrobot_equity/core/src/modules/sensitivity_analyzer.py | 280 | def generate_sensitivity_summary(self) -> str: | CODE |
| LOW | …nrobot_equity/core/src/modules/sensitivity_analyzer.py | 318 | def create_sensitivity_analyzer(forecast_df: pd.DataFrame) -> SensitivityAnalyzer: | CODE |
| LOW⚡ | finrobot_equity/core/src/modules/market_data_api.py | 28 | def fetch_fmp_enterprise_value(ticker: str, api_key: str, limit: int = 2000) -> pd.DataFrame | None: | CODE |
| LOW⚡ | finrobot_equity/core/src/modules/market_data_api.py | 54 | def get_fmp_ratios_and_key_metrics(ticker: str, api_key: str, period: str = "annual", limit: int = 5) -> tuple[pd.DataFr | CODE |
| LOW⚡ | finrobot_equity/core/src/modules/market_data_api.py | 127 | def get_fmp_cash_flow_statement(ticker: str, api_key: str, period: str = "annual", limit: int = 5) -> pd.DataFrame | Non | CODE |
| LOW⚡ | finrobot_equity/core/src/modules/market_data_api.py | 148 | def get_comprehensive_financial_data(ticker: str, api_key: str, period: str = "annual", limit: int = 5) -> dict: | CODE |
| LOW⚡ | finrobot_equity/core/src/modules/market_data_api.py | 425 | def get_comprehensive_company_metrics(ticker: str, api_key: str) -> dict: | CODE |
| LOW | finrobot_equity/core/src/modules/market_data_api.py | 167 | def combine_peer_financial_data(tickers: list[str], api_key: str, years_limit: int = 5) -> tuple[pd.DataFrame, pd.DataFr | CODE |
| LOW | finrobot_equity/core/src/modules/html_renderer.py | 479 | def format_dataframe_to_html_table(df, table_id="financial-table", header_class="bg-gray-200 font-semibold", row_class_c | CODE |
| LOW | finrobot_equity/core/src/modules/html_renderer.py | 629 | def format_valuation_breakdown_html(valuation_data: dict) -> str: | CODE |
| LOW | finrobot_equity/core/src/modules/html_renderer.py | 688 | def format_sensitivity_analysis_html(sensitivity_data): | CODE |
| LOW | finrobot_equity/core/src/modules/html_renderer.py | 715 | def format_catalyst_analysis_html(catalyst_data): | CODE |
| LOW | finrobot_equity/core/src/modules/html_renderer.py | 737 | def format_enhanced_news_html(news_data): | CODE |
| LOW | finrobot_equity/core/src/modules/html_renderer.py | 781 | def format_enhanced_charts_html(charts_data, report_data=None): | CODE |
| LOW | finrobot_equity/core/src/modules/html_renderer.py | 889 | def format_retail_sentiment_html(sentiment_data: dict) -> str: | STRING |
| LOW | finrobot_equity/core/src/modules/html_renderer.py | 1260 | def render_combined_html_report(data: dict) -> str: | STRING |
| LOW⚡ | finrobot_equity/core/src/modules/pdf_generator.py | 280 | def create_key_data_table_style() -> TableStyle: | CODE |
| LOW⚡ | finrobot_equity/core/src/modules/pdf_generator.py | 876 | def generate_equity_report_pdf( | CODE |
| LOW | finrobot_equity/core/src/modules/pdf_generator.py | 305 | def create_financial_table_style() -> TableStyle: | CODE |
| LOW | …ot_equity/core/src/modules/financial_data_processor.py | 20 | def extract_historical_metrics_from_api_data(financial_data: dict) -> pd.DataFrame | None: | CODE |
| LOW | …ot_equity/core/src/modules/financial_data_processor.py | 191 | def extract_historical_metrics_from_pdf_data(dataframes, table_config): | CODE |
| LOW | …ot_equity/core/src/modules/financial_data_processor.py | 298 | def calculate_growth_and_forecasts(df_historical: pd.DataFrame, forecast_config: dict) -> pd.DataFrame: | CODE |
| LOW | finrobot_equity/core/src/modules/catalyst_analyzer.py | 249 | def _add_default_calendar_events(self): | CODE |
| LOW | finrobot_equity/core/src/modules/catalyst_analyzer.py | 329 | def generate_catalyst_summary(self) -> str: | CODE |
| LOW⚡ | …ot_equity/core/src/modules/enhanced_chart_generator.py | 142 | def generate_revenue_yoy_chart(self, income_df: pd.DataFrame, ticker: str, | CODE |
| LOW⚡ | …ot_equity/core/src/modules/enhanced_chart_generator.py | 197 | def generate_ebitda_margin_chart(self, income_df: pd.DataFrame, ticker: str, | CODE |
| LOW⚡ | …ot_equity/core/src/modules/enhanced_chart_generator.py | 249 | def generate_gross_margin_chart(self, income_df: pd.DataFrame, ticker: str, | CODE |
| LOW⚡ | …ot_equity/core/src/modules/enhanced_chart_generator.py | 327 | def generate_ltm_ebitda_margin_chart(self, income_df: pd.DataFrame, ticker: str, | CODE |
| LOW⚡ | …ot_equity/core/src/modules/enhanced_chart_generator.py | 364 | def generate_relative_performance_chart(self, prices_df: pd.DataFrame, | CODE |
| LOW⚡ | …ot_equity/core/src/modules/enhanced_chart_generator.py | 418 | def generate_ev_ebitda_band_chart(self, key_metrics_df: pd.DataFrame, ticker: str, | CODE |
| LOW⚡ | …ot_equity/core/src/modules/enhanced_chart_generator.py | 464 | def generate_p_fcf_band_chart(self, key_metrics_df: pd.DataFrame, ticker: str, | CODE |
| LOW⚡ | …ot_equity/core/src/modules/enhanced_chart_generator.py | 510 | def generate_peer_comparison_chart(self, peer_data: Dict[str, Dict], ticker: str, | CODE |
| LOW⚡ | …ot_equity/core/src/modules/enhanced_chart_generator.py | 579 | def generate_football_field_chart(self, valuation_data: Dict[str, Dict], ticker: str, | CODE |
| LOW⚡ | …ot_equity/core/src/modules/enhanced_chart_generator.py | 770 | def create_enhanced_chart_generator(config: ChartConfig = None) -> EnhancedChartGenerator: | CODE |
| LOW | …_equity/core/src/modules/html_template_professional.py | 579 | def format_sensitivity_analysis_html_professional(sensitivity_data: dict) -> str: | CODE |
| LOW | …_equity/core/src/modules/html_template_professional.py | 608 | def format_catalyst_analysis_html_professional(catalyst_data: dict) -> str: | CODE |
| LOW | …_equity/core/src/modules/html_template_professional.py | 667 | def format_retail_sentiment_html_professional(sentiment_data: dict) -> str: | CODE |
| 73 more matches not shown… | ||||
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| MEDIUM | …ot_equity/core/output/TSLA_Equity_Research_Report.html | 255 | <p style="margin-bottom:0.4rem; font-size:0.875rem; color:#334155; line-height:1.7;">Financially, Tesla experienced robu | CODE |
| MEDIUM | …ot_equity/core/output/TSLA_Equity_Research_Report.html | 263 | <p style="margin-bottom:0.4rem; font-size:0.875rem; color:#334155; line-height:1.7;">Tesla delivered robust revenue grow | CODE |
| MEDIUM | …ot_equity/core/output/TSLA_Equity_Research_Report.html | 523 | <p style="margin-bottom:0.4rem; font-size:0.875rem; color:#334155; line-height:1.7;">Tesla's EBITDA margins, though decl | CODE |
| MEDIUM⚡ | …ot_equity/core/output/NVDA_Equity_Research_Report.html | 251 | <p style="margin-bottom:0.4rem; font-size:0.875rem; color:#334155; line-height:1.7;">Nvidia’s product portfolio is ancho | CODE |
| MEDIUM⚡ | …ot_equity/core/output/NVDA_Equity_Research_Report.html | 255 | <p style="margin-bottom:0.4rem; font-size:0.875rem; color:#334155; line-height:1.7;">The company’s profitability has sca | CODE |
| MEDIUM⚡ | …ot_equity/core/output/NVDA_Equity_Research_Report.html | 264 | <p style="margin-bottom:0.4rem; font-size:0.875rem; color:#334155; line-height:1.7;">The primary driver of this performa | CODE |
| MEDIUM⚡ | …ot_equity/core/output/NVDA_Equity_Research_Report.html | 266 | <p style="margin-bottom:0.4rem; font-size:0.875rem; color:#334155; line-height:1.7;">Compared to peers, Nvidia’s EBITDA | CODE |
| MEDIUM | …ot_equity/core/output/NVDA_Equity_Research_Report.html | 314 | <p style="margin-bottom:0.4rem; font-size:0.875rem; color:#334155; line-height:1.7;">Nvidia continues to command a premi | CODE |
| MEDIUM | …ot_equity/core/output/NVDA_Equity_Research_Report.html | 535 | <p style="margin-bottom:0.4rem; font-size:0.875rem; color:#334155; line-height:1.7;">In terms of profitability, Nvidia's | CODE |
| MEDIUM | …ot_equity/core/output/NVDA_Equity_Research_Report.html | 569 | <p style="margin-bottom:0.4rem; font-size:0.875rem; color:#334155; line-height:1.7;">Nvidia's revenue growth is projecte | CODE |
| MEDIUM | …ot_equity/core/output/NVDA_Equity_Research_Report.html | 578 | <p style="margin-bottom:0.4rem; font-size:0.875rem; color:#334155; line-height:1.7;">Nvidia's EBITDA margin is projected | CODE |
| MEDIUM⚡ | …ot_equity/core/output/MSFT_Equity_Research_Report.html | 253 | <p style="margin-bottom:0.4rem; font-size:0.875rem; color:#334155; line-height:1.7;">Financially, Microsoft has demonstr | CODE |
| MEDIUM⚡ | …ot_equity/core/output/MSFT_Equity_Research_Report.html | 253 | <p style="margin-bottom:0.4rem; font-size:0.875rem; color:#334155; line-height:1.7;">Financially, Microsoft has demonstr | CODE |
| MEDIUM⚡ | …ot_equity/core/output/MSFT_Equity_Research_Report.html | 262 | <p style="margin-bottom:0.4rem; font-size:0.875rem; color:#334155; line-height:1.7;">Microsoft continues to demonstrate | CODE |
| MEDIUM⚡ | …ot_equity/core/output/MSFT_Equity_Research_Report.html | 266 | <p style="margin-bottom:0.4rem; font-size:0.875rem; color:#334155; line-height:1.7;">Profitability has improved meaningf | CODE |
| MEDIUM⚡ | …ot_equity/core/output/MSFT_Equity_Research_Report.html | 270 | <p style="margin-bottom:0.4rem; font-size:0.875rem; color:#334155; line-height:1.7;">Outlook: Microsoft is well-position | CODE |
| MEDIUM | …ot_equity/core/output/MSFT_Equity_Research_Report.html | 314 | <div class="body-text"><p style="margin-bottom:0.4rem; font-size:0.875rem; color:#334155; line-height:1.7;"> | CODE |
| MEDIUM | …ot_equity/core/output/MSFT_Equity_Research_Report.html | 314 | <div class="body-text"><p style="margin-bottom:0.4rem; font-size:0.875rem; color:#334155; line-height:1.7;"> | CODE |
| MEDIUM | …ot_equity/core/output/MSFT_Equity_Research_Report.html | 530 | <div class="body-text"><p style="margin-bottom:0.4rem; font-size:0.875rem; color:#334155; line-height:1.7;"> | CODE |
| MEDIUM⚡ | …ot_equity/core/output/META_Equity_Research_Report.html | 251 | <p style="margin-bottom:0.4rem; font-size:0.875rem; color:#334155; line-height:1.7;">Meta’s primary revenue driver remai | CODE |
| MEDIUM⚡ | …ot_equity/core/output/META_Equity_Research_Report.html | 253 | <p style="margin-bottom:0.4rem; font-size:0.875rem; color:#334155; line-height:1.7;">Operationally, Meta has demonstrate | CODE |
| MEDIUM⚡ | …ot_equity/core/output/META_Equity_Research_Report.html | 260 | <div class="body-text"><p style="margin-bottom:0.4rem; font-size:0.875rem; color:#334155; line-height:1.7;"> | CODE |
| MEDIUM | …ot_equity/core/output/META_Equity_Research_Report.html | 319 | <p style="margin-bottom:0.4rem; font-size:0.875rem; color:#334155; line-height:1.7;">Given Meta’s robust growth outlook, | CODE |
| MEDIUM | …ot_equity/core/output/META_Equity_Research_Report.html | 513 | <p style="margin-bottom:0.4rem; font-size:0.875rem; color:#334155; line-height:1.7;">In terms of revenue, Meta's growth | CODE |
| MEDIUM | …ot_equity/core/output/META_Equity_Research_Report.html | 547 | <p style="margin-bottom:0.4rem; font-size:0.875rem; color:#334155; line-height:1.7;">Meta experienced a notable revenue | CODE |
| MEDIUM | …bot_equity/core/output/COP_Equity_Research_Report.html | 254 | <p style="margin-bottom:0.4rem; font-size:0.875rem; color:#334155; line-height:1.7;">ConocoPhillips delivered robust fin | CODE |
| MEDIUM | …bot_equity/core/output/COP_Equity_Research_Report.html | 306 | <div class="body-text"><p style="margin-bottom:0.4rem; font-size:0.875rem; color:#334155; line-height:1.7;"> | CODE |
| MEDIUM | …bot_equity/core/output/COP_Equity_Research_Report.html | 310 | <p style="margin-bottom:0.4rem; font-size:0.875rem; color:#334155; line-height:1.7;">Looking at growth, COP’s revenue is | CODE |
| MEDIUM⚡ | finrobot_equity/core/src/create_equity_report.py | 176 | # Detect CSV-like patterns (more robust detection) | COMMENT |
| MEDIUM⚡ | finrobot_equity/core/src/modules/market_data_api.py | 387 | """Fetches comprehensive company profile data from FMP API.""" | STRING |
| MEDIUM | experiments/portfolio_optimization.py | 129 | # As the Chief Investment Officer, your task is to evaluate the potential investment in Company ABC based on the pro | COMMENT |
| MEDIUM | experiments/portfolio_optimization.py | 164 | # Integrate Findings: Compile the insights from all three groups to get a holistic view of Company ABC's potential. | COMMENT |
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| LOW | finrobot_equity/web_app/middleware/request_logger.py | 27 | CODE | |
| LOW | finrobot_equity/core/src/create_equity_report.py | 234 | CODE | |
| LOW | finrobot_equity/core/src/create_equity_report.py | 309 | CODE | |
| LOW | finrobot_equity/core/src/generate_financial_analysis.py | 25 | CODE | |
| LOW | finrobot_equity/core/src/generate_pdf_report.py | 213 | CODE | |
| LOW | finrobot_equity/core/src/generate_pdf_report.py | 266 | CODE | |
| LOW | finrobot_equity/core/src/generate_pdf_report.py | 404 | CODE | |
| LOW | finrobot_equity/core/src/generate_pdf_report.py | 566 | CODE | |
| LOW | …nrobot_equity/core/src/modules/sensitivity_analyzer.py | 108 | CODE | |
| LOW | finrobot_equity/core/src/modules/market_data_api.py | 167 | CODE | |
| LOW | finrobot_equity/core/src/modules/market_data_api.py | 240 | CODE | |
| LOW | finrobot_equity/core/src/modules/market_data_api.py | 307 | CODE | |
| LOW | finrobot_equity/core/src/modules/market_data_api.py | 345 | CODE | |
| LOW | finrobot_equity/core/src/modules/market_data_api.py | 425 | CODE | |
| LOW | finrobot_equity/core/src/modules/market_data_api.py | 549 | CODE | |
| LOW | finrobot_equity/core/src/modules/html_renderer.py | 439 | CODE | |
| LOW | finrobot_equity/core/src/modules/html_renderer.py | 607 | CODE | |
| LOW | finrobot_equity/core/src/modules/html_renderer.py | 688 | CODE | |
| LOW | finrobot_equity/core/src/modules/html_renderer.py | 737 | CODE | |
| LOW | finrobot_equity/core/src/modules/html_renderer.py | 781 | CODE | |
| LOW | finrobot_equity/core/src/modules/pdf_generator.py | 371 | CODE | |
| LOW | finrobot_equity/core/src/modules/pdf_generator.py | 600 | CODE | |
| LOW | …ot_equity/core/src/modules/financial_data_processor.py | 191 | CODE | |
| LOW | …ot_equity/core/src/modules/financial_data_processor.py | 298 | CODE | |
| LOW | …_equity/core/src/modules/html_template_professional.py | 533 | CODE | |
| LOW | …_equity/core/src/modules/html_template_professional.py | 579 | CODE | |
| LOW | …_equity/core/src/modules/html_template_professional.py | 608 | CODE | |
| LOW | …_equity/core/src/modules/html_template_professional.py | 720 | CODE | |
| LOW | …_equity/core/src/modules/html_template_professional.py | 832 | CODE | |
| LOW | …_equity/core/src/modules/html_template_professional.py | 965 | CODE | |
| LOW | finrobot_equity/core/src/modules/valuation_engine.py | 47 | CODE | |
| LOW | …bot_equity/core/src/modules/professional_pdf_report.py | 326 | CODE | |
| LOW | …bot_equity/core/src/modules/professional_pdf_report.py | 775 | CODE | |
| LOW | …bot_equity/core/src/modules/professional_pdf_report.py | 958 | CODE | |
| LOW | …bot_equity/core/src/modules/professional_pdf_report.py | 1316 | CODE | |
| LOW | …bot_equity/core/src/modules/professional_pdf_report.py | 1358 | CODE | |
| LOW | …bot_equity/core/src/modules/professional_pdf_report.py | 1390 | CODE | |
| LOW | …bot_equity/core/src/modules/enhanced_text_generator.py | 393 | CODE | |
| LOW | …bot_equity/core/src/modules/enhanced_text_generator.py | 435 | CODE | |
| LOW | …bot_equity/core/src/modules/enhanced_text_generator.py | 490 | CODE | |
| LOW | finrobot_equity/core/src/modules/chart_generator.py | 364 | CODE | |
| LOW | finrobot_equity/core/src/modules/chart_generator.py | 735 | CODE | |
| LOW | finrobot_equity/core/src/modules/chart_generator.py | 908 | CODE | |
| LOW | finrobot/data_source/fmp_utils.py | 65 | CODE | |
| LOW | finrobot/data_source/sec_utils.py | 92 | CODE | |
| LOW | …robot/data_source/marker_sec_src/sec_filings_to_pdf.py | 55 | CODE | |
| LOW | finrobot/data_source/filings_src/sec_filings.py | 159 | CODE | |
| LOW | finrobot/data_source/filings_src/secData.py | 14 | CODE | |
| LOW | …ource/filings_src/prepline_sec_filings/sec_document.py | 64 | CODE | |
| LOW | …ource/filings_src/prepline_sec_filings/sec_document.py | 134 | CODE | |
| LOW | …source/filings_src/prepline_sec_filings/api/section.py | 132 | CODE | |
| LOW | …source/filings_src/prepline_sec_filings/api/section.py | 195 | CODE | |
| LOW | …source/filings_src/prepline_sec_filings/api/section.py | 308 | CODE | |
| LOW | …source/filings_src/prepline_sec_filings/api/section.py | 347 | CODE | |
| LOW | finrobot/functional/ragquery.py | 105 | CODE |
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| LOW | test_module.py | 27 | # Check if an order has been completed | COMMENT |
| LOW | test_module.py | 61 | # Check if an order is pending ... if yes, we cannot send a 2nd one | COMMENT |
| LOW | test_module.py | 65 | # Check if we are in the market | COMMENT |
| LOW⚡ | deploy.sh | 86 | # Check if it's Python 3.9 or higher | COMMENT |
| LOW⚡ | deploy.sh | 210 | # Check if already running | COMMENT |
| LOW | deploy.sh | 270 | # Check if the process is still running | COMMENT |
| LOW | deploy.sh | 403 | # Check if application is running | COMMENT |
| LOW | finrobot_equity/web_app/auth.py | 113 | # Check if user exists | COMMENT |
| LOW⚡ | finrobot_equity/core/src/create_equity_report.py | 60 | # Check if necessary columns exist | COMMENT |
| LOW⚡ | finrobot_equity/core/src/create_equity_report.py | 173 | # Check if content looks like CSV data (especially for competitor_analysis and major_takeaways) | COMMENT |
| LOW | finrobot_equity/core/src/create_equity_report.py | 256 | # Check if content looks like CSV data (for competitor_analysis and major_takeaways) | COMMENT |
| LOW | finrobot_equity/core/src/generate_financial_analysis.py | 126 | # Check if we got the required data | COMMENT |
| LOW | …equity/core/src/modules/equity_agents/agent_manager.py | 77 | # Check if a custom model is specified via environment variable | COMMENT |
| LOW | finrobot/agents/utils.py | 6 | # Check if the last message contains the path to the instruction text file | COMMENT |
| LOW | finrobot/functional/analyzer.py | 386 | # Print the result | STRING |
| LOW | finrobot/functional/rag.py | 46 | # Check if we need to update the context. | STRING |
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| MEDIUM | test_module.py | 4 | # Create a Stratey | COMMENT |
| MEDIUM⚡ | finrobot_equity/core/src/create_equity_report.py | 50 | # Define the mapping from CSV columns to the desired metric names | COMMENT |
| MEDIUM⚡ | finrobot_equity/core/src/generate_financial_analysis.py | 470 | # Create a fallback file if generation fails | COMMENT |
| MEDIUM | finrobot_equity/core/src/modules/common_utils.py | 35 | # Create a dummy config.ini for testing if it doesn't exist | COMMENT |
| MEDIUM | finrobot/functional/quantitative.py | 99 | # Create a data feed | COMMENT |
| MEDIUM | finrobot/functional/reportlab.py | 136 | # Create a PageTemplate with a single column | COMMENT |
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| LOW | README.md | 165 | # Step 1: Financial analysis | COMMENT |
| LOW | README.md | 173 | # Step 2: Generate report | COMMENT |
| LOW⚡ | finrobot_equity/README.md | 14 | │ │ ├── generate_financial_analysis.py # Step 1: Data fetching & analysis | CODE |
| LOW⚡ | finrobot_equity/README.md | 15 | │ │ ├── create_equity_report.py # Step 2: HTML report generation | CODE |
| LOW⚡ | finrobot_equity/README.md | 16 | │ │ ├── generate_pdf_report.py # Step 3: PDF report generation (optional) | CODE |
| LOW | finrobot_equity/README.md | 115 | # Step 1: Financial analysis | COMMENT |
| LOW | finrobot_equity/README.md | 123 | # Step 2: Generate report | COMMENT |
| LOW⚡ | finrobot_equity/web_app/main.py | 459 | # Step 2: Create Equity Report | COMMENT |
| LOW⚡ | finrobot_equity/web_app/main.py | 519 | # Step 3: Generate PDF Report | COMMENT |
| LOW | finrobot_equity/web_app/main.py | 418 | # Step 1: Generate Financial Analysis | COMMENT |
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| LOW | deploy.gcloud.sh | 1 | #!/usr/bin/env bash | COMMENT |
| LOW | deploy.sh | 1 | #!/bin/bash | COMMENT |
| LOW | finrobot/utils.py | 61 | # def create_inner_assistant( | COMMENT |
| LOW | finrobot/utils.py | 81 | # trigger=ConversableAgent | COMMENT |
| LOW | finrobot/data_source/finnlp_utils.py | 181 | # 'body', 'created_at', 'user', 'source', 'symbols', 'prices', | COMMENT |
| LOW | finrobot/data_source/finnlp_utils.py | 201 | # def sec_announcement_download( | COMMENT |
| LOW | finrobot/data_source/finnlp_utils.py | 221 | COMMENT | |
| LOW | finrobot/functional/reportlab.py | 301 | # df = df.applymap(lambda x: "{:.2f}".format(x) if isinstance(x, float) else x) | COMMENT |
| LOW | finrobot/functional/reportlab.py | 321 | # Revenue10Q = pd.read_csv( | COMMENT |
| LOW | finrobot/functional/reportlab.py | 341 | COMMENT | |
| LOW | finrobot/functional/reportlab.py | 361 | # currency = ra.info['currency'] | COMMENT |
| LOW | experiments/portfolio_optimization.py | 141 | COMMENT | |
| LOW | experiments/portfolio_optimization.py | 161 | # Expected Outputs: Profit Margin (percentage) and ROA (percentage) | COMMENT |
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| LOW | finrobot_equity/web_app/main.py | 26 | logger = logging.getLogger(__name__) | CODE |
| LOW | finrobot_equity/web_app/middleware/__init__.py | 4 | __all__ = ["RequestLoggerMiddleware"] | CODE |
| LOW | finrobot_equity/web_app/database/__init__.py | 19 | __all__ = [ | CODE |
| LOW | …nrobot_equity/core/src/modules/sensitivity_analyzer.py | 15 | logger = logging.getLogger(__name__) | CODE |
| LOW | finrobot_equity/core/src/modules/catalyst_analyzer.py | 17 | logger = logging.getLogger(__name__) | CODE |
| LOW | …ot_equity/core/src/modules/enhanced_chart_generator.py | 26 | logger = logging.getLogger(__name__) | CODE |
| LOW | finrobot_equity/core/src/modules/valuation_engine.py | 15 | logger = logging.getLogger(__name__) | CODE |
| LOW | …bot_equity/core/src/modules/enhanced_text_generator.py | 15 | logger = logging.getLogger(__name__) | CODE |
| LOW | finrobot_equity/core/src/modules/report_structure.py | 14 | logger = logging.getLogger(__name__) | CODE |
| LOW | finrobot_equity/core/src/modules/news_integrator.py | 15 | logger = logging.getLogger(__name__) | CODE |
| LOW | …obot_equity/core/src/modules/equity_agents/__init__.py | 12 | __all__ = [ | CODE |
| LOW | finrobot/data_source/__init__.py | 10 | __all__ = ["FinnHubUtils", "YFinanceUtils", "FMPUtils", "SECUtils"] | CODE |
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| LOW | deploy.gcloud.sh | 9 | # Usage: | COMMENT |
| LOW | deploy.sh | 12 | # Usage: | COMMENT |
| LOW | finrobot/data_source/reddit_utils.py | 106 | # Example usage | COMMENT |
| LOW | finrobot/functional/quantitative.py | 171 | # Example usage: | COMMENT |
| LOW | finrobot/functional/charting.py | 231 | # Example usage: | COMMENT |
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| LOW⚡ | finrobot_equity/web_app/main.py | 459 | # Step 2: Create Equity Report | COMMENT |
| LOW⚡ | finrobot_equity/web_app/main.py | 519 | # Step 3: Generate PDF Report | COMMENT |
| LOW | finrobot_equity/web_app/main.py | 418 | # Step 1: Generate Financial Analysis | COMMENT |
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| HIGH | finrobot/data_source/filings_src/sec_filings.py | 160 | Unsturcured API to get the text Args: text (str): Text from the filing document URL m_s | STRING |
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| LOW | finrobot/data_source/finance_data.py | 10 | CODE | |
| LOW | …robot/data_source/marker_sec_src/pdf_to_md_parallel.py | 69 | CODE | |
| LOW | finrobot/functional/analyzer.py | 407 | CODE |
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| MEDIUM | finrobot_equity/README.md | 38 | │ │ ├── agent_manager.py # Agent orchestration | CODE |
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| MEDIUM | finrobot_equity/core/tests/test_generate_report.py | 277 | 'disclaimer_text': 'This is a test report generated with mock data for demonstration purposes only. Not for inve | CODE |