Read and analyze SEC EDGAR filings in Python. 10-K, 8-K, XBRL financials, Form 3/4/5, 13F, ADV — clean API, well-typed, MIT-licensed.
This report presents the forensic synthetic code analysis of dgunning/edgartools, a Python project with 2,567 GitHub stars. SynthScan v2.0 examined 1,029,454 lines of code across 1980 source files, recording 11847 pattern matches distributed across 23 syntactic categories. The overall adjusted score of 16.4 places this repository in the Moderate AI signal band.
The scanner applied 160+ deterministic lexical heuristics, multi-line block detectors, abstract syntax tree depth profilers, and a cross-file Jaccard similarity matrix to construct a statistically normalised synthetic code estimate. All matches are individually weighted by severity coefficient and contextual multiplier before summation, and the resulting headline score is temporally discounted to account for the repository's development history relative to the commercial emergence of large language model coding tooling (November 2022 onward).
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 11847 distinct pattern matches across 23 syntactic categories. Each entry below represents a discrete location in the source code where the engine recorded a statistically significant AI authorship indicator. Expand any category row to inspect the individual file paths, line numbers, code snippets, and the lexical context (CODE, COMMENT, or STRING) in which each match was detected.
Reading the findings table: The Severity column indicates the diagnostic confidence level (CRITICAL / HIGH / MEDIUM / LOW). The Context column identifies whether the match occurred inside executable code, an inline comment, or a string literal — comment-context matches receive a ×1.5 weight because LLMs systematically over-annotate. The ⚡ bolt icon marks clustered matches: three or more patterns within a 10-line window, each receiving an additional ×1.5 density multiplier as dense clusters constitute far stronger evidence of synthetic authorship than isolated hits.
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| LOW⚡ | tools/visual_inspector.py | 539 | def compare_statements_visually(accession1, accession2, statement_type="cashflow", | CODE |
| LOW | tools/investigation_toolkit.py | 225 | def _analyze_cashflow_statement(self, statements) -> Dict[str, Any]: | CODE |
| LOW | tools/investigation_toolkit.py | 287 | def _analyze_income_statement(self, statements) -> Dict[str, Any]: | CODE |
| LOW | tools/investigation_toolkit.py | 497 | def _generate_markdown_report(self) -> str: | CODE |
| LOW | tools/quick_investigate.py | 33 | def investigate_empty_periods(issue_number: int, **kwargs): | CODE |
| LOW | tools/quick_investigate.py | 169 | def investigate_custom_pattern(issue_number: int, **kwargs): | CODE |
| LOW | tools/create_reproduction.py | 67 | def create_reproduction_script( | CODE |
| LOW | tools/templates/xbrl_parsing_reproduction.py | 25 | def reproduce_xbrl_parsing_issue(): | CODE |
| LOW | tools/templates/xbrl_parsing_reproduction.py | 207 | def compare_with_working_filing(): | CODE |
| LOW | tools/templates/empty_periods_reproduction.py | 24 | def reproduce_empty_periods_issue(): | CODE |
| LOW | tools/templates/empty_periods_reproduction.py | 134 | def compare_with_working_filing(): | CODE |
| LOW | tools/templates/entity_facts_reproduction.py | 26 | def reproduce_entity_facts_issue(): | CODE |
| LOW | tools/templates/entity_facts_reproduction.py | 222 | def test_specific_financial_concepts(): | CODE |
| LOW | tests/test_datasearch.py | 19 | def company_ticker_preprocess(): | CODE |
| LOW | tests/test_datasearch.py | 64 | def test_partial_ticker_match(company_index): | CODE |
| LOW | tests/test_xbrl_facts.py | 40 | def test_get_facts_by_concept(intc_xbrl: XBRL): | CODE |
| LOW | tests/test_xbrl_facts.py | 58 | def test_get_facts_by_statement_type(intc_xbrl: XBRL): | CODE |
| LOW | tests/test_xbrl_facts.py | 76 | def test_numeric_sign_for_cashflow_values(): | CODE |
| LOW | tests/test_xbrl_facts.py | 127 | def test_query_by_label_with_standardization(): | CODE |
| LOW⚡ | tests/test_xbrl_facts.py | 178 | def test_integration_standardization_and_facts_query(intc_xbrl): | CODE |
| LOW | tests/test_xbrl_facts.py | 268 | def test_facts_to_dataframe_has_correct_columns(aapl_xbrl): | CODE |
| LOW | tests/test_xbrl_facts.py | 287 | def test_query_by_dimension_none(aapl_xbrl): | CODE |
| LOW | tests/test_xbrl_facts.py | 315 | def test_flexible_dimension_matching(aapl_xbrl): | CODE |
| LOW | tests/test_xbrl_facts.py | 412 | def test_dimension_format_normalization(): | CODE |
| LOW⚡ | tests/test_unit_handling.py | 55 | def test_ratio_unit_normalization(self): | CODE |
| LOW⚡ | tests/test_unit_handling.py | 64 | def test_per_share_unit_normalization(self): | CODE |
| LOW⚡ | tests/test_unit_handling.py | 71 | def test_business_unit_normalization(self): | CODE |
| LOW⚡ | tests/test_unit_handling.py | 80 | def test_time_unit_normalization(self): | CODE |
| LOW⚡ | tests/test_unit_handling.py | 87 | def test_area_unit_normalization(self): | CODE |
| LOW⚡ | tests/test_unit_handling.py | 93 | def test_unknown_units_passthrough(self): | CODE |
| LOW⚡ | tests/test_unit_handling.py | 229 | def test_get_normalized_value_with_scale(self): | CODE |
| LOW⚡ | tests/test_unit_handling.py | 239 | def test_get_normalized_value_no_scale(self): | CODE |
| LOW⚡ | tests/test_unit_handling.py | 249 | def test_get_normalized_value_compatible_currency(self): | CODE |
| LOW⚡ | tests/test_unit_handling.py | 454 | def test_scale_factor_handling(self): | CODE |
| LOW | tests/test_unit_handling.py | 26 | def test_currency_normalization(self): | CODE |
| LOW | tests/test_unit_handling.py | 44 | def test_share_unit_normalization(self): | CODE |
| LOW | tests/test_unit_handling.py | 148 | def test_unit_result_creation(self): | CODE |
| LOW | tests/test_unit_handling.py | 166 | def test_unit_result_with_error(self): | CODE |
| LOW | tests/test_unit_handling.py | 207 | def test_get_normalized_value_success(self): | CODE |
| LOW | tests/test_unit_handling.py | 218 | def test_get_normalized_value_with_variation(self): | CODE |
| LOW | tests/test_unit_handling.py | 261 | def test_get_normalized_value_incompatible(self): | CODE |
| LOW | tests/test_unit_handling.py | 272 | def test_get_normalized_value_no_numeric_value(self): | CODE |
| LOW | tests/test_unit_handling.py | 283 | def test_get_normalized_value_no_target_unit(self): | CODE |
| LOW | tests/test_unit_handling.py | 324 | def test_format_unit_error_success(self): | CODE |
| LOW | tests/test_unit_handling.py | 341 | def test_get_revenue_detailed(self): | CODE |
| LOW | tests/test_unit_handling.py | 363 | def test_get_net_income_detailed(self): | CODE |
| LOW | tests/test_unit_handling.py | 378 | def test_check_unit_compatibility(self): | CODE |
| LOW | tests/test_unit_handling.py | 399 | def test_check_unit_compatibility_missing_concept(self): | CODE |
| LOW | tests/test_unit_handling.py | 412 | def test_enhanced_methods_vs_original(self): | CODE |
| LOW | tests/test_unit_handling.py | 436 | def test_fallback_calculation_with_unit_handling(self): | CODE |
| LOW | tests/test_unit_handling.py | 476 | def test_currency_unit_variations(self): | CODE |
| LOW | tests/test_unit_handling.py | 493 | def test_per_share_unit_variations(self): | CODE |
| LOW⚡ | tests/test_cc_runner.py | 18 | def test_returns_two_entries_per_test(self, runner): | CODE |
| LOW⚡ | tests/test_cc_runner.py | 22 | def test_returns_correct_structure(self, runner): | CODE |
| LOW⚡ | tests/test_cc_runner.py | 29 | def test_conditions_are_with_and_without(self, runner): | CODE |
| LOW⚡ | tests/test_cc_runner.py | 42 | def test_skips_invalid_test_ids(self, runner): | CODE |
| LOW⚡ | tests/test_cc_runner.py | 50 | def test_with_skills_contains_skill_context(self, runner): | CODE |
| LOW⚡ | tests/test_cc_runner.py | 54 | def test_without_skills_contains_minimal_context(self, runner): | CODE |
| LOW⚡ | tests/test_cc_runner.py | 63 | def test_contains_isolation_instruction(self, runner): | CODE |
| LOW⚡ | tests/test_cc_runner.py | 67 | def test_invalid_test_id_raises(self, runner): | CODE |
| 5334 more matches not shown… | ||||
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| MEDIUM | mkdocs.yml | 52 | # ========================================== | COMMENT |
| MEDIUM | mkdocs.yml | 54 | # ========================================== | COMMENT |
| MEDIUM⚡ | mkdocs.yml | 65 | # ========================================== | COMMENT |
| MEDIUM⚡ | mkdocs.yml | 67 | # ========================================== | COMMENT |
| MEDIUM⚡ | mkdocs.yml | 77 | # ========================================== | COMMENT |
| MEDIUM⚡ | mkdocs.yml | 79 | # ========================================== | COMMENT |
| MEDIUM⚡ | mkdocs.yml | 89 | # ========================================== | COMMENT |
| MEDIUM⚡ | mkdocs.yml | 91 | # ========================================== | COMMENT |
| MEDIUM | mkdocs.yml | 117 | # ========================================== | COMMENT |
| MEDIUM | mkdocs.yml | 119 | # ========================================== | COMMENT |
| MEDIUM⚡ | mkdocs.yml | 138 | # ========================================== | COMMENT |
| MEDIUM⚡ | mkdocs.yml | 140 | # ========================================== | COMMENT |
| MEDIUM⚡ | mkdocs.yml | 149 | # ========================================== | COMMENT |
| MEDIUM⚡ | mkdocs.yml | 151 | # ========================================== | COMMENT |
| MEDIUM⚡ | mkdocs.yml | 154 | # ========================================== | COMMENT |
| MEDIUM⚡ | mkdocs.yml | 156 | # ========================================== | COMMENT |
| MEDIUM⚡ | mkdocs.yml | 157 | # ========================================== | COMMENT |
| MEDIUM⚡ | mkdocs.yml | 159 | # ========================================== | COMMENT |
| MEDIUM | tests/test_proxy_season.py | 21 | # ── Unit tests (no network) ────────────────────────────────────────── | COMMENT |
| MEDIUM | tests/test_proxy_season.py | 89 | # ── Network tests ──────────────────────────────────────────────────── | COMMENT |
| MEDIUM⚡ | tests/test_entityfacts_stability.py | 17 | # ============================================================================= | COMMENT |
| MEDIUM⚡ | tests/test_entityfacts_stability.py | 19 | # ============================================================================= | COMMENT |
| MEDIUM⚡ | tests/test_entityfacts_stability.py | 160 | # ============================================================================= | COMMENT |
| MEDIUM⚡ | tests/test_entityfacts_stability.py | 162 | # ============================================================================= | COMMENT |
| MEDIUM⚡ | tests/test_entityfacts_stability.py | 243 | # ============================================================================= | COMMENT |
| MEDIUM⚡ | tests/test_entityfacts_stability.py | 245 | # ============================================================================= | COMMENT |
| MEDIUM⚡ | tests/test_entityfacts_stability.py | 552 | # ============================================================================= | COMMENT |
| MEDIUM⚡ | tests/test_entityfacts_stability.py | 554 | # ============================================================================= | COMMENT |
| MEDIUM | tests/test_entityfacts_stability.py | 342 | # ============================================================================= | COMMENT |
| MEDIUM | tests/test_entityfacts_stability.py | 344 | # ============================================================================= | COMMENT |
| MEDIUM | tests/test_entityfacts_stability.py | 432 | # ============================================================================= | COMMENT |
| MEDIUM | tests/test_entityfacts_stability.py | 434 | # ============================================================================= | COMMENT |
| MEDIUM | tests/test_registration_s4.py | 18 | # --------------------------------------------------------------------------- | COMMENT |
| MEDIUM | tests/test_registration_s4.py | 20 | # --------------------------------------------------------------------------- | COMMENT |
| MEDIUM⚡ | tests/test_registration_s4.py | 34 | # --------------------------------------------------------------------------- | COMMENT |
| MEDIUM⚡ | tests/test_registration_s4.py | 36 | # --------------------------------------------------------------------------- | COMMENT |
| MEDIUM⚡ | tests/test_registration_s4.py | 78 | # --------------------------------------------------------------------------- | COMMENT |
| MEDIUM⚡ | tests/test_registration_s4.py | 80 | # --------------------------------------------------------------------------- | COMMENT |
| MEDIUM⚡ | tests/test_registration_s4.py | 130 | # --------------------------------------------------------------------------- | COMMENT |
| MEDIUM⚡ | tests/test_registration_s4.py | 132 | # --------------------------------------------------------------------------- | COMMENT |
| MEDIUM | tests/test_registration_s4.py | 195 | # --------------------------------------------------------------------------- | COMMENT |
| MEDIUM | tests/test_registration_s4.py | 197 | # --------------------------------------------------------------------------- | COMMENT |
| MEDIUM | tests/test_funds_data_unit.py | 29 | # --------------------------------------------------------------------------- | COMMENT |
| MEDIUM | tests/test_funds_data_unit.py | 31 | # --------------------------------------------------------------------------- | COMMENT |
| MEDIUM | tests/test_funds_data_unit.py | 59 | # --------------------------------------------------------------------------- | COMMENT |
| MEDIUM | tests/test_funds_data_unit.py | 61 | # --------------------------------------------------------------------------- | COMMENT |
| MEDIUM | tests/test_funds_data_unit.py | 459 | # --------------------------------------------------------------------------- | COMMENT |
| MEDIUM | tests/test_funds_data_unit.py | 461 | # --------------------------------------------------------------------------- | COMMENT |
| MEDIUM⚡ | tests/test_funds_data_unit.py | 166 | # --------------------------------------------------------------------------- | STRING |
| MEDIUM⚡ | tests/test_funds_data_unit.py | 168 | # --------------------------------------------------------------------------- | STRING |
| MEDIUM⚡ | tests/test_funds_data_unit.py | 202 | # --------------------------------------------------------------------------- | STRING |
| MEDIUM⚡ | tests/test_funds_data_unit.py | 204 | # --------------------------------------------------------------------------- | STRING |
| MEDIUM⚡ | tests/test_funds_data_unit.py | 248 | # --------------------------------------------------------------------------- | STRING |
| MEDIUM⚡ | tests/test_funds_data_unit.py | 250 | # --------------------------------------------------------------------------- | STRING |
| MEDIUM⚡ | tests/test_funds_data_unit.py | 262 | # --------------------------------------------------------------------------- | STRING |
| MEDIUM⚡ | tests/test_funds_data_unit.py | 264 | # --------------------------------------------------------------------------- | STRING |
| MEDIUM⚡ | tests/test_funds_data_unit.py | 518 | # --------------------------------------------------------------------------- | STRING |
| MEDIUM⚡ | tests/test_funds_data_unit.py | 520 | # --------------------------------------------------------------------------- | STRING |
| MEDIUM | tests/test_funds_data_unit.py | 129 | # --------------------------------------------------------------------------- | STRING |
| MEDIUM | tests/test_funds_data_unit.py | 131 | # --------------------------------------------------------------------------- | STRING |
| 1276 more matches not shown… | ||||
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| LOW | tools/visual_inspector.py | 25 | CODE | |
| LOW | tests/test_xbrl_facts.py | 2 | CODE | |
| LOW | tests/test_xbrl_facts.py | 5 | CODE | |
| LOW | tests/test_xbrl_facts.py | 199 | CODE | |
| LOW | tests/test_unit_handling.py | 9 | CODE | |
| LOW | tests/test_unit_handling.py | 19 | CODE | |
| LOW | tests/test_xbrl_statement_error_handling.py | 2 | CODE | |
| LOW | tests/test_xbrl_statement_error_handling.py | 5 | CODE | |
| LOW | tests/test_ai_features.py | 10 | CODE | |
| LOW | tests/test_ai_features.py | 14 | CODE | |
| LOW | tests/test_tickers.py | 2 | CODE | |
| LOW | tests/test_section_detection_comparison.py | 15 | CODE | |
| LOW | tests/test_section_detection_comparison.py | 16 | CODE | |
| LOW | tests/test_reference.py | 1 | CODE | |
| LOW | tests/test_reference.py | 7 | CODE | |
| LOW | tests/test_company.py | 2 | CODE | |
| LOW | tests/test_company.py | 5 | CODE | |
| LOW | tests/test_company.py | 12 | CODE | |
| LOW | tests/test_company.py | 14 | CODE | |
| LOW | tests/test_entityfacts_stability.py | 190 | CODE | |
| LOW | tests/test_xbrl_rendering.py | 6 | CODE | |
| LOW | tests/test_xbrl_rendering.py | 10 | CODE | |
| LOW | tests/test_synonym_groups.py | 14 | CODE | |
| LOW | tests/test_filing_staleness_warnings.py | 10 | CODE | |
| LOW | tests/test_xbrl_statements.py | 8 | CODE | |
| LOW | tests/test_funds_data_unit.py | 8 | CODE | |
| LOW | tests/test_funds_data_unit.py | 11 | CODE | |
| LOW | tests/test_current_period_statements.py | 5 | CODE | |
| LOW | tests/test_metalinks.py | 9 | CODE | |
| LOW | tests/test_xbrl_validation.py | 10 | CODE | |
| LOW | tests/test_xbrl_unit_pointintime.py | 12 | CODE | |
| LOW | tests/test_xbrl_unit_pointintime.py | 14 | CODE | |
| LOW | tests/test_xbrl_unit_pointintime.py | 17 | CODE | |
| LOW | tests/test_judge.py | 3 | CODE | |
| LOW | tests/test_sections_membership.py | 8 | CODE | |
| LOW | tests/test_sections_membership.py | 9 | CODE | |
| LOW | tests/_offline_harness.py | 47 | CODE | |
| LOW | tests/test_beneficial_ownership.py | 19 | CODE | |
| LOW | tests/test_beneficial_ownership.py | 19 | CODE | |
| LOW | tests/test_filter_filings.py | 1 | CODE | |
| LOW | tests/test_filter_filings.py | 4 | CODE | |
| LOW | tests/test_fundreports_derivatives.py | 8 | CODE | |
| LOW | tests/test_entity.py | 3 | CODE | |
| LOW | tests/test_skill_diagnostics.py | 3 | CODE | |
| LOW | tests/test_filer_category.py | 4 | CODE | |
| LOW | tests/test_nmfp3_unit.py | 9 | CODE | |
| LOW | tests/test_tables.py | 5 | CODE | |
| LOW | tests/test_section_markdown.py | 19 | CODE | |
| LOW | tests/test_10k_item_1b_1c_section_detection.py | 67 | CODE | |
| LOW | tests/test_htmltools.py | 9 | CODE | |
| LOW | tests/test_eightk_improvements.py | 10 | CODE | |
| LOW | tests/test_coverage_smallmods.py | 17 | CODE | |
| LOW | tests/test_company_subsets.py | 10 | CODE | |
| LOW | tests/test_company_subsets_metadata.py | 21 | CODE | |
| LOW | tests/_vcr_safety.py | 24 | CODE | |
| LOW | tests/_vcr_safety.py | 62 | CODE | |
| LOW | tests/test_etf_features_integration.py | 4 | CODE | |
| LOW | tests/test_etf_features_integration.py | 10 | CODE | |
| LOW | tests/test_etf_features_integration.py | 10 | CODE | |
| LOW | tests/test_etf_features_integration.py | 10 | CODE | |
| 1516 more matches not shown… | ||||
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| LOW⚡ | tools/visual_inspector.py | 441 | except Exception as e: | CODE |
| LOW⚡ | tools/visual_inspector.py | 446 | except Exception as e: | CODE |
| LOW⚡ | tools/visual_inspector.py | 451 | except Exception as e: | CODE |
| LOW⚡ | tools/visual_inspector.py | 530 | except Exception as e: | CODE |
| LOW⚡ | tools/visual_inspector.py | 535 | except Exception as e: | CODE |
| LOW | tools/visual_inspector.py | 83 | except Exception as e: | CODE |
| LOW | tools/visual_inspector.py | 135 | except Exception as e: | CODE |
| LOW | tools/visual_inspector.py | 353 | except Exception as e: | CODE |
| LOW | tools/visual_inspector.py | 380 | except Exception as e: | CODE |
| LOW | tools/visual_inspector.py | 501 | except Exception as e: | CODE |
| LOW | tools/visual_inspector.py | 504 | except Exception as e: | CODE |
| LOW | tools/visual_inspector.py | 565 | except Exception as e: | CODE |
| LOW⚡ | tools/investigation_toolkit.py | 380 | except Exception as e: | CODE |
| LOW⚡ | tools/investigation_toolkit.py | 384 | except Exception as e: | CODE |
| LOW | tools/investigation_toolkit.py | 179 | except Exception as e: | CODE |
| LOW | tools/investigation_toolkit.py | 219 | except Exception as e: | CODE |
| LOW | tools/investigation_toolkit.py | 282 | except Exception as e: | CODE |
| LOW | tools/investigation_toolkit.py | 308 | except Exception as e: | CODE |
| LOW | tools/investigation_toolkit.py | 328 | except Exception as e: | CODE |
| LOW | tools/investigation_toolkit.py | 362 | except Exception as e: | CODE |
| LOW | tools/investigation_toolkit.py | 678 | except Exception as e: | CODE |
| LOW | tools/investigation_toolkit.py | 712 | except Exception as e: | CODE |
| LOW | tools/investigation_toolkit.py | 719 | except Exception as e: | CODE |
| LOW | tools/investigation_toolkit.py | 760 | except Exception as e: | CODE |
| LOW | tools/investigation_toolkit.py | 767 | except Exception as e: | CODE |
| LOW | tools/investigation_toolkit.py | 928 | except Exception as e: | CODE |
| LOW | tools/quick_debug.py | 150 | except Exception as e: | STRING |
| LOW | tools/quick_debug.py | 198 | except Exception as e: | CODE |
| LOW | tools/quick_investigate.py | 267 | except Exception as e: | CODE |
| LOW | tools/create_reproduction.py | 188 | except Exception as e: | CODE |
| LOW | tools/create_reproduction.py | 265 | except Exception as e: | CODE |
| MEDIUM | tools/templates/xbrl_parsing_reproduction.py | 247 | print(f"Error: {result.get('error', 'Unknown')}") | CODE |
| LOW | tools/templates/xbrl_parsing_reproduction.py | 92 | except Exception as e: | CODE |
| LOW | tools/templates/xbrl_parsing_reproduction.py | 95 | except Exception as e: | CODE |
| LOW | tools/templates/xbrl_parsing_reproduction.py | 107 | except Exception as e: | CODE |
| LOW | tools/templates/xbrl_parsing_reproduction.py | 120 | except Exception as e: | CODE |
| LOW | tools/templates/xbrl_parsing_reproduction.py | 171 | except Exception as e: | CODE |
| LOW | tools/templates/xbrl_parsing_reproduction.py | 204 | except Exception as e: | CODE |
| LOW | tools/templates/xbrl_parsing_reproduction.py | 232 | except Exception as e: | CODE |
| LOW | tools/templates/empty_periods_reproduction.py | 107 | except Exception as e: | CODE |
| MEDIUM | tools/templates/entity_facts_reproduction.py | 262 | print(f"Error: {result.get('error', 'Unknown')}") | CODE |
| LOW⚡ | tools/templates/entity_facts_reproduction.py | 103 | except Exception as e: | CODE |
| LOW | tools/templates/entity_facts_reproduction.py | 121 | except Exception as e: | CODE |
| LOW | tools/templates/entity_facts_reproduction.py | 128 | except Exception as e: | CODE |
| LOW | tools/templates/entity_facts_reproduction.py | 141 | except Exception as e: | CODE |
| LOW | tools/templates/entity_facts_reproduction.py | 188 | except Exception as e: | CODE |
| LOW | tools/templates/entity_facts_reproduction.py | 219 | except Exception as e: | CODE |
| LOW | tools/templates/entity_facts_reproduction.py | 244 | except Exception as e: | CODE |
| LOW | tools/templates/entity_facts_reproduction.py | 247 | except Exception as e: | CODE |
| LOW⚡ | tests/test_unit_handling.py | 449 | except Exception as e: | CODE |
| LOW | tests/test_unit_handling.py | 535 | except Exception as e: | CODE |
| LOW | tests/test_section_detection_comparison.py | 59 | except Exception as e: | CODE |
| LOW | tests/test_feat005_statement_types.py | 352 | except Exception as e: | CODE |
| LOW | tests/test_xbrl_statements.py | 481 | except Exception: | CODE |
| LOW | tests/test_xbrl_statements.py | 526 | except Exception: | CODE |
| LOW | tests/test_xbrl_statements.py | 556 | except Exception: | CODE |
| LOW | tests/test_xbrl_statements.py | 648 | except Exception as e: | CODE |
| LOW | tests/conftest.py | 54 | except Exception: | CODE |
| LOW | tests/conftest.py | 67 | except Exception: | CODE |
| LOW⚡ | tests/test_xbrl_unit_pointintime.py | 480 | except Exception: | CODE |
| 1108 more matches not shown… | ||||
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| LOW | tools/templates/xbrl_parsing_reproduction.py | 124 | # Check if this matches the reported error | COMMENT |
| LOW⚡ | tools/templates/entity_facts_reproduction.py | 50 | if cik and cik != "COMPANY_CIK": # Check if CIK was provided | CODE |
| LOW | tools/templates/entity_facts_reproduction.py | 145 | # Check if this matches the reported error | COMMENT |
| LOW⚡ | tests/test_unit_handling.py | 459 | # Check if any facts have scale factors | COMMENT |
| LOW | tests/test_table_extraction.py | 57 | # Check if column has numeric data | COMMENT |
| LOW | tests/conftest.py | 424 | # Check if test is in any regression folder (supports nested paths) | COMMENT |
| LOW⚡ | tests/test_xbrl_statement_resolver.py | 139 | # Check if the pattern matches our fake concept | COMMENT |
| LOW | tests/test_form144.py | 280 | # Check if is_10b5_1_plan is a boolean | COMMENT |
| LOW | tests/test_html_parser_regressions.py | 840 | # Check if Part I sections exist | COMMENT |
| LOW | …roductions/compatibility/422-timezone-error-windows.py | 68 | # Check if this is the specific PyArrow timezone error | COMMENT |
| LOW | …ductions/compatibility/422-pyarrow-timezone-windows.py | 172 | # Check if this is the known timezone issue | COMMENT |
| LOW | …filing-parsing/issue_365_split_heading_reproduction.py | 150 | # Check if document was parsed | STRING |
| LOW | …g-parsing/issue_447_item_part_conflict_reproduction.py | 68 | # Check if it contains content from both parts | COMMENT |
| LOW | …ductions/data-quality/issue_452_fiscal_year_mapping.py | 60 | # Check if this is a 52/53 week calendar ending in early January | COMMENT |
| LOW | …eproductions/data-quality/412-solution-and-examples.py | 106 | # Check if this is a revenue concept with actual values | COMMENT |
| LOW⚡ | …productions/data-quality/issue_440_currency_display.py | 110 | # Check if XBRL has unit definitions | COMMENT |
| LOW | …productions/data-quality/issue_440_currency_display.py | 126 | # Check if XBRL has unit information | COMMENT |
| LOW | …ons/data-quality/issue_446_root_cause_investigation.py | 51 | # Check if it has a data method or property | COMMENT |
| LOW | …ssues/reproductions/data-quality/issue_446_test_fix.py | 35 | # Check if statements are found in all_statements | COMMENT |
| LOW | …ssues/reproductions/data-quality/issue_446_test_fix.py | 98 | # Check if values are populated now | COMMENT |
| LOW⚡ | …ssues/reproductions/data-quality/issue_446_test_fix.py | 113 | # Check if values are populated now | COMMENT |
| LOW | …roductions/data-quality/test_multiperiod_statements.py | 157 | # Check if 2022 and earlier are present | COMMENT |
| LOW | …roductions/data-quality/test_multiperiod_statements.py | 162 | # Check if these columns have data | COMMENT |
| LOW | …roductions/data-quality/test_multiperiod_statements.py | 204 | # Check if 2021 and earlier are present | COMMENT |
| LOW | …roductions/data-quality/test_multiperiod_statements.py | 209 | # Check if these columns have data | COMMENT |
| LOW⚡ | …reproductions/data-quality/test_company_api_methods.py | 122 | # Check if 2022 and earlier are in the data | COMMENT |
| LOW⚡ | …reproductions/data-quality/test_company_api_methods.py | 131 | # Check if 2021 and earlier are in the data | COMMENT |
| LOW | …issues/reproductions/data-quality/test_currency_fix.py | 40 | # Check if currencies field exists in items that have values | COMMENT |
| LOW | …productions/xbrl-parsing/issue_282_working_solution.py | 110 | # Check if this line item contains our target concept | COMMENT |
| LOW | …ions/xbrl-parsing/issue_416_missing_segment_members.py | 120 | # Check if these concepts exist in the raw XBRL data | COMMENT |
| LOW | …oductions/xbrl-parsing/issue_427_xbrl_data_cap_2018.py | 66 | # Check if we have filings after 2018 | COMMENT |
| LOW | …brl-parsing/issue_450_equity_statement_reproduction.py | 100 | # Check if values are present | COMMENT |
| LOW | …brl-parsing/issue_450_equity_statement_reproduction.py | 105 | # Check if all values are empty/None/NaN | COMMENT |
| LOW | …brl-parsing/issue_450_equity_statement_reproduction.py | 129 | # Check if abstracts appear before their children | COMMENT |
| LOW | …brl-parsing/issue_450_equity_statement_reproduction.py | 135 | # Check if there are rows before this that could be children | COMMENT |
| LOW | …brl-parsing/issue_450_equity_statement_reproduction.py | 153 | # Check if ALL values are False | COMMENT |
| LOW | …s/xbrl-parsing/issue_450_investigate_missing_totals.py | 21 | # Check if there are facts for StockholdersEquity concept | COMMENT |
| LOW | …s/xbrl-parsing/issue_450_investigate_missing_totals.py | 75 | # Check if this is a dimensional statement | COMMENT |
| LOW | …reproductions/xbrl-parsing/issue_450_inspect_schema.py | 65 | # Check if any elements have abstract=True | COMMENT |
| LOW | …s/issues/reproductions/xbrl-parsing/issue_282_debug.py | 60 | # Check if the concept exists with a different name | COMMENT |
| LOW⚡ | …s/issues/reproductions/xbrl-parsing/issue_282_debug.py | 80 | # Check if any line items have diluted shares concept | COMMENT |
| LOW⚡ | …s/reproductions/xbrl-parsing/issue_420_reproduction.py | 110 | # Check if facts has income statement method | COMMENT |
| LOW | …-parsing/issue_290_comparison_cost_of_revenue_signs.py | 102 | # Check if IBM is an outlier | COMMENT |
| LOW | …uctions/xbrl-parsing/issue_450_debug_abstract_flags.py | 76 | # Check if this concept is in element catalog | COMMENT |
| LOW | …tions/xbrl-parsing/issue_450_check_taxonomy_loading.py | 67 | # Check if taxonomy schemas are accessible | COMMENT |
| LOW | …roductions/xbrl-parsing/test_multiple_companies_429.py | 61 | # Display results table | COMMENT |
| LOW | …tions/xbrl-parsing/issue_408_detailed_investigation.py | 51 | # Check if rendered version has empty columns | COMMENT |
| LOW | …oductions/xbrl-parsing/issue_427_clean_reproduction.py | 64 | # Check if it really "caps out at 2018" | COMMENT |
| LOW | …eproductions/xbrl-parsing/issue_434_filing_analysis.py | 45 | # Check if this attachment might contain Kodiak data | COMMENT |
| LOW | …uctions/xbrl-parsing/issue_282_apple_diluted_shares.py | 60 | # Check if our target concept is in all_names | COMMENT |
| LOW | …/reproductions/xbrl-parsing/issue_434_s4_extraction.py | 72 | # Check if we can get income statement | COMMENT |
| LOW | …uctions/entity-facts/test_nvda_2020_duplicate_issue.py | 84 | # Check if this matches the target value | COMMENT |
| LOW | …uctions/filing-access/issue-436-offline-xbrl-access.py | 65 | # Check if local file exists for this filing | COMMENT |
| LOW | …uctions/filing-access/issue-436-offline-xbrl-access.py | 93 | # Check if this is the expected network timeout error from user's report | COMMENT |
| LOW | …eproductions/filing-access/investigate_6k_structure.py | 36 | # Check if it has exhibits | COMMENT |
| LOW⚡ | …eproductions/filing-access/investigate_6k_structure.py | 115 | # Check if financials work | COMMENT |
| LOW | …/issues/regression/test_issue_68lp_gh577_validation.py | 34 | # Check if any dimensional rows have non-NaN values | COMMENT |
| LOW | …/issues/regression/test_issue_68lp_gh577_validation.py | 82 | # Check if definition linkbase is available | COMMENT |
| LOW | …sts/issues/regression/test_issue_469_13f_txt_format.py | 299 | # Check if it's columnar format by looking for <S> tags in data rows | STRING |
| LOW | …ues/regression/test_issue_463_value_transformations.py | 239 | # Check if balance is available in facts | COMMENT |
| 349 more matches not shown… | ||||
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| LOW | tools/visual_inspector.py | 31 | CODE | |
| LOW | tools/visual_inspector.py | 141 | CODE | |
| LOW | tools/visual_inspector.py | 231 | CODE | |
| LOW | tools/visual_inspector.py | 385 | CODE | |
| LOW | tools/visual_inspector.py | 455 | CODE | |
| LOW | tools/visual_inspector.py | 539 | CODE | |
| LOW | tools/investigation_toolkit.py | 686 | CODE | |
| LOW | tools/investigation_toolkit.py | 727 | CODE | |
| LOW | tools/investigation_toolkit.py | 877 | CODE | |
| LOW | tools/investigation_toolkit.py | 87 | CODE | |
| LOW | tools/investigation_toolkit.py | 225 | CODE | |
| LOW | tools/investigation_toolkit.py | 333 | CODE | |
| LOW | tools/investigation_toolkit.py | 447 | CODE | |
| LOW | tools/quick_debug.py | 47 | CODE | |
| LOW | tools/quick_debug.py | 155 | CODE | |
| LOW | tools/quick_investigate.py | 33 | CODE | |
| LOW | tools/templates/xbrl_parsing_reproduction.py | 25 | CODE | |
| LOW | tools/templates/xbrl_parsing_reproduction.py | 142 | CODE | |
| LOW | tools/templates/xbrl_parsing_reproduction.py | 174 | CODE | |
| LOW | tests/test_xbrl_facts.py | 315 | CODE | |
| LOW | tests/test_table_extraction.py | 10 | CODE | |
| LOW | tests/test_xbrl_statements.py | 456 | CODE | |
| LOW | tests/test_xbrl_statements.py | 497 | CODE | |
| LOW | tests/test_xbrl_statements.py | 622 | CODE | |
| LOW | tests/_offline_harness.py | 113 | CODE | |
| LOW | tests/test_fundreports_derivatives.py | 127 | CODE | |
| LOW | tests/test_fundreports_derivatives.py | 299 | CODE | |
| LOW | tests/test_npx.py | 247 | CODE | |
| LOW | tests/test_httprequests.py | 73 | CODE | |
| LOW | tests/test_company_groups.py | 136 | CODE | |
| LOW | tests/test_company_groups.py | 159 | CODE | |
| LOW | tests/test_company_groups.py | 161 | CODE | |
| LOW | tests/test_entity_statements.py | 99 | CODE | |
| LOW | tests/test_filing.py | 639 | CODE | |
| LOW | tests/test_xbrl_footnotes.py | 8 | CODE | |
| LOW | tests/test_to_context.py | 520 | CODE | |
| LOW | tests/test_period_selector.py | 503 | CODE | |
| LOW | tests/test_period_selector.py | 544 | CODE | |
| LOW | tests/test_period_selector.py | 698 | CODE | |
| LOW | tests/research/check_instance_value_consistency.py | 44 | CODE | |
| LOW | tests/offerings/eval/run_eval.py | 215 | CODE | |
| LOW | tests/evaluation/_test_toc_evaluation.py | 119 | CODE | |
| LOW | tests/evaluation/_test_toc_evaluation.py | 267 | CODE | |
| LOW | tests/perf/benchmark_html_parser.py | 209 | CODE | |
| LOW | …eproductions/data-quality/issue_411_standardization.py | 29 | CODE | |
| LOW | …eproductions/data-quality/issue_411_standardization.py | 74 | CODE | |
| LOW | …eproductions/data-quality/issue_411_standardization.py | 131 | CODE | |
| LOW | …eproductions/data-quality/412-solution-and-examples.py | 94 | CODE | |
| LOW | …es/reproductions/data-quality/simple_statement_test.py | 9 | CODE | |
| LOW | …productions/data-quality/issue_440_currency_display.py | 17 | CODE | |
| LOW | …ns/data-quality/issue_412_followup_blank_statements.py | 13 | CODE | |
| LOW | …ns/data-quality/issue_412_followup_blank_statements.py | 80 | CODE | |
| LOW | …ions/data-quality/issue_446_xbrl_structure_analysis.py | 17 | CODE | |
| LOW | …oductions/data-quality/issue_446_20f_missing_values.py | 21 | CODE | |
| LOW | …oductions/data-quality/issue_446_20f_missing_values.py | 122 | CODE | |
| LOW | …ons/data-quality/issue_446_root_cause_investigation.py | 17 | CODE | |
| LOW | …ues/reproductions/data-quality/412-revenue-accuracy.py | 27 | CODE | |
| LOW | …ues/reproductions/data-quality/412-revenue-accuracy.py | 198 | CODE | |
| LOW | …uctions/data-quality/issue_411_standardization_test.py | 22 | CODE | |
| LOW | …roductions/data-quality/test_multiperiod_statements.py | 13 | CODE | |
| 692 more matches not shown… | ||||
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| MEDIUM | tools/create_reproduction.py | 55 | # Create the directory structure | COMMENT |
| MEDIUM | tools/create_reproduction.py | 166 | # Create the script | COMMENT |
| MEDIUM | tests/test_xbrl_facts.py | 129 | # Create a mock FactsView | COMMENT |
| MEDIUM⚡ | tests/test_xbrl_facts.py | 151 | # Create a query using by_label to search for original label | COMMENT |
| MEDIUM⚡ | tests/test_xbrl_facts.py | 160 | # Create a query using by_label to search for standardized label | COMMENT |
| MEDIUM⚡ | tests/test_xbrl_facts.py | 169 | # Create a query using by_label with regex pattern matching | COMMENT |
| MEDIUM | tests/test_xbrl_facts.py | 417 | # Create a mock FactsView for testing | COMMENT |
| MEDIUM | tests/test_xbrl_statement_error_handling.py | 11 | # Create a mock XBRL object that will raise an exception | COMMENT |
| MEDIUM | tests/test_xbrl_statement_error_handling.py | 44 | # Create a mock XBRL object that will raise an exception | COMMENT |
| MEDIUM | tests/test_xbrl_statement_error_handling.py | 77 | # Create a mock XBRL object with missing attributes | COMMENT |
| MEDIUM | tests/test_xbrl_statement_error_handling.py | 109 | # Create a mock XBRL object that succeeds | COMMENT |
| MEDIUM | tests/test_table_extraction.py | 72 | # Create a simple test HTML with multi-level headers | COMMENT |
| MEDIUM | tests/test_entityfacts_stability.py | 192 | # Create an income statement fact | COMMENT |
| MEDIUM⚡ | tests/test_xbrl_rendering.py | 91 | # Create a quarterly period (90 days) | COMMENT |
| MEDIUM | tests/test_synonym_groups.py | 359 | # Create a JSON file | COMMENT |
| MEDIUM⚡ | tests/test_xbrl_statements.py | 386 | # Create a statement with a canonical type | COMMENT |
| MEDIUM | tests/test_funds.py | 77 | # Create a fund object for testing | COMMENT |
| MEDIUM | tests/test_beneficial_ownership.py | 665 | # Create a mock Schedule13D with reporting persons where some have excluded shares | COMMENT |
| MEDIUM | tests/test_table_max_col_width.py | 71 | # Create a simple mock table | COMMENT |
| MEDIUM | tests/test_richtools.py | 11 | # Create a test table | COMMENT |
| MEDIUM | tests/test_thirteenf.py | 281 | # Create a mock filing for Berkshire Hathaway (known company) | COMMENT |
| MEDIUM | tests/test_thirteenf.py | 436 | # Create a mock signature with test title | COMMENT |
| MEDIUM | tests/test_ai_text_methods.py | 169 | # Create a long string | COMMENT |
| MEDIUM | tests/test_xbrl_statement_resolver.py | 79 | # Create a custom concept pattern entry | COMMENT |
| MEDIUM⚡ | tests/test_xbrl_statement_resolver.py | 136 | # Create a fake statement with a custom namespace to test pattern matching | COMMENT |
| MEDIUM | tests/test_fund_wrapper.py | 35 | # Create a Fund from a ticker | COMMENT |
| MEDIUM | tests/test_fund_wrapper.py | 59 | # Create a Fund from a series ID | COMMENT |
| MEDIUM | tests/test_fund_wrapper.py | 78 | # Create a Fund from a company CIK | COMMENT |
| MEDIUM | tests/test_storage_management.py | 238 | # Create a temporary _pcache directory with a test file | COMMENT |
| MEDIUM | tests/test_storage_management.py | 293 | # Create a test file | COMMENT |
| MEDIUM | tests/test_storage_management.py | 346 | # Create an uncompressed test file | COMMENT |
| MEDIUM⚡ | tests/test_constitution_diagnostics.py | 673 | # Create a minimal report with one failure | COMMENT |
| MEDIUM | tests/test_npx.py | 8 | # Define the path to the sample files | COMMENT |
| MEDIUM | tests/test_filesystem.py | 110 | # Create a gzip file directly | COMMENT |
| MEDIUM | tests/test_xbrl_stitching.py | 347 | # Create a stitcher | COMMENT |
| MEDIUM | tests/test_xbrl_stitching.py | 421 | # Create a stitcher | COMMENT |
| MEDIUM | tests/test_html_parser_regressions.py | 652 | # Create a document just over the old streaming threshold | COMMENT |
| MEDIUM | tests/test_html_parser_regressions.py | 928 | # Create a document that triggers streaming | COMMENT |
| MEDIUM⚡ | tests/test_periodtype_implementation.py | 260 | # Create a company instance (won't fetch data in this test) | COMMENT |
| MEDIUM⚡ | tests/test_httprequests.py | 492 | # Create a truncated gzip file that will cause EOFError | COMMENT |
| MEDIUM | tests/test_httprequests.py | 894 | # Create a mock client to verify it gets closed | COMMENT |
| MEDIUM | tests/test_proxy.py | 296 | # Create a mock amendment filing (if available) | COMMENT |
| MEDIUM | tests/test_page_breaks.py | 255 | # Create a mock filing with HTML content | COMMENT |
| MEDIUM | tests/test_page_breaks.py | 292 | # Create a mock attachment with HTML content | COMMENT |
| MEDIUM | tests/test_entity_facts.py | 1384 | # Create a mock statement with abstract header | COMMENT |
| MEDIUM⚡ | tests/test_datamule_adapter.py | 577 | # Create a Filing that matches the real tar | COMMENT |
| MEDIUM | tests/test_bug_408_annual_periods.py | 95 | # Create a simple Fact-like object for testing | COMMENT |
| MEDIUM⚡ | tests/thirteenf/test_holdings_aggregation.py | 177 | # Create a mock ThirteenF with no infotable | COMMENT |
| MEDIUM | …s/data-quality/issue_452_dnut_revenue_investigation.py | 88 | # Create a detailed table of revenue facts | COMMENT |
| MEDIUM | …ions/xbrl-parsing/issue_416_missing_segment_members.py | 182 | # Create a summary of revenue values by dimension | COMMENT |
| MEDIUM | …ns/xbrl-parsing/test_issue_475_cashflow_multiperiod.py | 92 | # Create a stitched view across multiple filings | COMMENT |
| MEDIUM | …ns/xbrl-parsing/test_issue_475_cashflow_multiperiod.py | 188 | # Create a stitched view across multiple filings | COMMENT |
| MEDIUM | …sues/reproductions/filing-access/issue_443_test_fix.py | 33 | # Create the corrupted submissions file | COMMENT |
| MEDIUM | …uctions/filing-access/issue_443_simulate_corruption.py | 32 | # Create the corrupted submissions file | COMMENT |
| MEDIUM | …es/regression/test_issue_631_save_load_completeness.py | 118 | # Create a mock attachment with None content | COMMENT |
| MEDIUM | tests/issues/regression/test_filing_text_baseline.py | 163 | # This file is the guard on Filing.text(), and while it was `network`-marked it | COMMENT |
| MEDIUM | …sues/regression/test_issue_1ho_8k_section_detection.py | 96 | # Create a minimal HTML document with an 8-K item | COMMENT |
| MEDIUM | …s/issues/regression/test_issue_5d6_plain_text_items.py | 61 | # Create a mock filing with the same structure | COMMENT |
| MEDIUM⚡ | …/issues/regression/test_issue_674_homepage_fallback.py | 115 | # Create a mock XML attachment | COMMENT |
| MEDIUM | …gression/test_issue_488_footnote_undefined_variable.py | 24 | # Create a minimal XBRL instance document without footnoteLink elements | COMMENT |
| 133 more matches not shown… | ||||
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| HIGH | docs/guides/entity-api-guide.md | 155 | Download an icon for a given ticker as a PNG image, if available. Args: ticker: Stock ticker symbol (e | STRING |
| HIGH | edgar/enums.py | 493 | Enhanced parameter validation with intelligent error messages. Args: value: The parameter value to val | STRING |
| HIGH | edgar/enums.py | 577 | Validate and normalize form type parameter using enhanced validation. Args: form: Form type as FormTyp | STRING |
| HIGH | edgar/enums.py | 600 | Validate and normalize period type parameter using enhanced validation. Args: period: Period type as P | STRING |
| HIGH | edgar/enums.py | 623 | Validate and normalize statement type parameter using enhanced validation. Args: statement: Statement | STRING |
| HIGH | edgar/filesystem.py | 59 | Configure cloud storage for EdgarTools. Once configured, all file operations (reading filings, storing data) | STRING |
| HIGH | edgar/filesystem.py | 765 | Sync local filing data to configured cloud storage. This function uploads files from local storage to cloud st | STRING |
| HIGH | edgar/httprequests.py | 668 | Sends a GET request with retry functionality and identity handling. Args: url (str): The URL to send t | STRING |
| HIGH | edgar/httprequests.py | 708 | Sends an asynchronous GET request with retry functionality and identity handling. Args: url (str): The | STRING |
| HIGH | edgar/httprequests.py | 750 | Sends a streaming GET request with retry functionality and identity handling. Args: url (str): The URL | STRING |
| HIGH | edgar/httprequests.py | 793 | Sends a POST request with retry functionality and identity handling. Args: url (str): The URL to send | STRING |
| HIGH | edgar/httprequests.py | 837 | Sends an asynchronous POST request with retry functionality and identity handling. Args: url (str): Th | STRING |
| HIGH | edgar/httprequests.py | 900 | Download and decompress a gzip file with retry logic. This handles cases where SEC serves corrupted gzip files | STRING |
| HIGH | edgar/httprequests.py | 1265 | Download and extract bulk data from zip or tar.gz archives Args: client: The httpx.AsyncClient instanc | STRING |
| HIGH | edgar/context.py | 31 | Compose one or more edgartools objects into a single LLM-ready context string. Takes any objects that satisfy the H | STRING |
| HIGH | edgar/_filings.py | 2163 | Grep for exact text matches across all filing documents. Like `grep -ri` on a directory — searches the | STRING |
| HIGH | edgar/dates.py | 17 | Split a date or a date range into start_date and end_date Examples: extract_dates("2022-03-04") -> 2022 | STRING |
| HIGH | edgar/offerings/crowdfunding/campaign.py | 107 | Initialize a Campaign from a filing or file number. Optimization: Converts Filing→EntityFiling and par | STRING |
| HIGH | edgar/beneficial_ownership/schedule13.py | 208 | Parse Schedule 13D XML and return dict of all fields. Args: xml: XML content as string | STRING |
| HIGH | edgar/beneficial_ownership/schedule13.py | 408 | Create Schedule13D instance from a Filing object. Args: filing: Filing object with form 'S | STRING |
| HIGH | edgar/beneficial_ownership/schedule13.py | 684 | Parse Schedule 13G XML and return dict of all fields. Args: xml: XML content as string | STRING |
| HIGH | edgar/beneficial_ownership/schedule13.py | 910 | Create Schedule13G instance from a Filing object. Args: filing: Filing object with form 'S | STRING |
| HIGH | edgar/ttm/calculator.py | 140 | Calculate TTM value as of a specific date. Selects the 4 most recent consecutive quarters ending on or before | STRING |
| HIGH | edgar/ttm/calculator.py | 236 | Calculate rolling TTM values for multiple periods. Creates a time series of TTM values, with each row represent | STRING |
| HIGH | edgar/company_reports/_base.py | 82 | Grep for exact text matches across the filing. Delegates to the underlying Filing.grep(). Case-insensi | STRING |
| HIGH | edgar/company_reports/_base.py | 207 | Get item or part text from the filing. Args: item_or_part: Item identifier (e.g., "Item 1" | STRING |
| HIGH | edgar/company_reports/_structures.py | 55 | Extract item numbers from filing sections using a regex pattern. This is a shared utility to eliminate code du | STRING |
| HIGH | edgar/diagnose_ssl/__init__.py | 37 | Run SSL diagnostics and optionally display results. This function checks your environment's ability to connect | STRING |
| HIGH | edgar/entity/query.py | 267 | Filter by date range. Args: start: Start date (inclusive). Can be a date object or string | STRING |
| HIGH | edgar/entity/entity_facts.py | 98 | Get company facts for a given CIK. Args: cik: The company CIK Returns: CompanyFacts: The | STRING |
| HIGH | edgar/entity/core.py | 1073 | Get balance sheet data for this company. Args: periods: Number of periods to retrieve (def | STRING |
| HIGH | edgar/entity/core.py | 1274 | Calculate Trailing Twelve Months value for a concept. Args: concept: XBRL concept name (e.g., 'Reve | STRING |
| HIGH | edgar/entity/core.py | 1301 | Get Trailing Twelve Months revenue. Tries common revenue concepts in order of preference. Args: | STRING |
| HIGH | edgar/entity/core.py | 1320 | Get Trailing Twelve Months net income. Tries common net income concepts in order of preference. Args: | STRING |
| HIGH | edgar/entity/utils.py | 99 | Normalize a CIK to an integer by removing leading zeros. Args: cik_or_identifier: CIK as string or int | STRING |
| HIGH | edgar/entity/enhanced_statement.py | 1165 | Validate that fiscal_year is reasonable given period_end and the company's FYE. This handles SEC Facts API dat | STRING |
| HIGH | edgar/entity/enhanced_statement.py | 1236 | Validate that period_end matches the expected month for the fiscal_period. This filters out comparative period | STRING |
| HIGH | edgar/entity/enhanced_statement.py | 1321 | Calculate the fiscal year label for a period based on the dominant convention: fiscal years are named by the ca | STRING |
| HIGH | edgar/sgml/sgml_common.py | 41 | Read content from a URL, file path, or EdgarPath, yielding lines as strings. Automatically handles gzip-compres | STRING |
| HIGH | edgar/sgml/sgml_common.py | 97 | Read content from either a URL or file path into a string. Uses existing read_content generator function. | STRING |
| HIGH | edgar/sgml/sgml_common.py | 125 | Stream SGML documents from either a URL or file path, yielding parsed documents. Args: source: Either | STRING |
| HIGH | edgar/sgml/sgml_common.py | 172 | Parses the raw submission text and returns the filing header along with a dictionary mapping document sequence | STRING |
| HIGH | edgar/sgml/sgml_common.py | 451 | Create FilingSGML instance from either a URL or file path. Parses both header and documents. I | STRING |
| HIGH | edgar/sgml/sgml_common.py | 490 | Create FilingSGML instance from either full text submission. Parses both header and documents. | STRING |
| HIGH | edgar/storage/_local.py | 71 | Enable or disable local storage, optionally setting the storage path. This function supports multiple calling | STRING |
| HIGH | edgar/storage/_local.py | 583 | Reads an SEC EDGAR file listing directory and returns file information as a DataFrame. Args: url (str) | STRING |
| HIGH | edgar/storage/_local.py | 657 | Reads the SEC EDGAR filing feed directory and returns file information as a DataFrame. Args: url (str) | STRING |
| HIGH | edgar/storage/_local.py | 720 | Compress a filing file using gzip and optionally delete the original. Args: file_path: Path to the fil | STRING |
| HIGH | edgar/storage/_local.py | 759 | Decompress a gzip-compressed filing file. Args: file_path: Path to the compressed file output_ | STRING |
| HIGH | edgar/search/efts.py | 515 | Full-text search across SEC filing content via EDGAR EFTS. Searches the actual text of filings — not just meta | STRING |
| HIGH | edgar/xbrl/abstract_detection.py | 83 | Determine if an XBRL concept should be marked as abstract using multiple fallback strategies. Strategy priorit | STRING |
| HIGH | edgar/xbrl/facts.py | 384 | Filter facts by dimension with flexible matching. This method provides intelligent matching for dimens | STRING |
| HIGH | edgar/xbrl/current_period.py | 418 | Internal method to get statement data as DataFrame for current period. Args: statement_typ | STRING |
| HIGH | edgar/xbrl/current_period.py | 557 | Internal method to get statement as a Statement object for current period. Args: statement | STRING |
| HIGH | edgar/xbrl/core.py | 415 | Convert unit_ref to human-readable unit name. Maps XBRL unit references to standard display names: - 'U-Mo | STRING |
| HIGH | edgar/xbrl/core.py | 480 | Determine if a period type represents a point-in-time value. Args: period_type: XBRL period type ('ins | STRING |
| HIGH | edgar/xbrl/notes.py | 494 | Look up a note by number or exact title. Args: key: int (note number, 1-based) or str (exa | STRING |
| HIGH | edgar/xbrl/notes.py | 518 | Search notes by keyword. Returns all matches, best first. Ranking: exact title > title starts with key | STRING |
| HIGH | edgar/xbrl/notes.py | 565 | Grep note content for exact text matches. Unlike search() which matches note titles, grep() searches t | STRING |
| HIGH | edgar/xbrl/presentation.py | 59 | Convert string or enum to StatementView. Args: view: A StatementView enum value or string ('standard', 'det | STRING |
| 44 more matches not shown… | ||||
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| MEDIUM | pyproject.toml | 93 | "click>=8.0.0", # CLI interface for test harness | CODE |
| MEDIUM | pyproject.toml | 255 | # Regression tests (run separately/on-demand for comprehensive bug prevention) | COMMENT |
| MEDIUM⚡ | tools/investigation_toolkit.py | 391 | """Generate comprehensive investigation report""" | STRING |
| MEDIUM | tests/test_feat005_statement_types.py | 46 | # Test comprehensive income | COMMENT |
| MEDIUM | tests/test_feat005_statement_types.py | 124 | # Test COMPREHENSIVE_STATEMENTS (includes comprehensive income) | COMMENT |
| MEDIUM⚡ | tests/test_feat005_statement_types.py | 221 | # Test comprehensive analysis workflow | COMMENT |
| MEDIUM⚡ | tests/test_feat005_statement_types.py | 223 | """Mock comprehensive statement analysis.""" | STRING |
| MEDIUM | tests/conftest.py | 358 | # The measurement is a committed harness, so it does not have to be rebuilt | COMMENT |
| MEDIUM | tests/conftest.py | 364 | # harness before adding it below: failing offline and being broken look | COMMENT |
| MEDIUM⚡ | tests/test_xbrl_unit_pointintime.py | 315 | # Local fixture tests provide comprehensive coverage of real-world XBRL data | COMMENT |
| MEDIUM | tests/test_fundreports_derivatives.py | 201 | # Test with both samples to ensure robust NA handling | COMMENT |
| LOW | tests/test_ten_d.py | 408 | # Should not raise, just return empty data | COMMENT |
| MEDIUM | tests/test_markdown_parity_ratchet.py | 61 | # numbers is the next refinement to the harness, and would likely drop this | COMMENT |
| MEDIUM⚡ | tests/test_company_subsets_metadata.py | 62 | # Should NOT have comprehensive columns | COMMENT |
| MEDIUM⚡ | tests/test_company_subsets_metadata.py | 82 | # Should have comprehensive columns | COMMENT |
| MEDIUM⚡ | tests/test_company_subsets_metadata.py | 111 | # Should have comprehensive columns | COMMENT |
| MEDIUM⚡ | tests/test_company_subsets_metadata.py | 241 | # Should auto-enable comprehensive mode | COMMENT |
| MEDIUM⚡ | tests/test_company_subsets_metadata.py | 256 | # Should auto-enable comprehensive mode | COMMENT |
| MEDIUM⚡ | tests/test_company_subsets_metadata.py | 415 | # Should return comprehensive dataset | COMMENT |
| MEDIUM | tests/test_company_subsets_metadata.py | 196 | # Should have comprehensive columns | COMMENT |
| MEDIUM | tests/test_company_subsets_metadata.py | 509 | # Should not have comprehensive columns | COMMENT |
| MEDIUM⚡ | tests/test_company_subsets_metadata.py | 453 | """Test that comprehensive mode uses caching on subsequent calls.""" | STRING |
| MEDIUM | tests/test_thirteenf.py | 357 | """Test comprehensive manager information summary""" | STRING |
| MEDIUM | tests/test_fast_table_renderer.py | 322 | # Run comprehensive test suite | COMMENT |
| MEDIUM⚡ | tests/test_current_period.py | 244 | # Verify it's a comprehensive income statement | COMMENT |
| MEDIUM⚡ | tests/test_current_period.py | 237 | """Test comprehensive income statement retrieval.""" | STRING |
| MEDIUM⚡ | tests/test_standardization.py | 545 | """ComprehensiveIncome should still list IFRS comprehensive concepts.""" | STRING |
| MEDIUM | tests/offerings/eval/run_eval.py | 228 | except Exception as ex: # noqa: BLE001 — the harness must survive any filing | CODE |
| MEDIUM | …estAgencyDealAgentExtraction.test_atm_sales_agent.yaml | 4541 | holder’s depositary shares. The depositary will endeavor, insofar as | CODE |
| MEDIUM⚡ | tests/issues/_templates/filing-access-template.py | 67 | """Test robust filing download with retry logic.""" | STRING |
| MEDIUM⚡ | …ductions/compatibility/422-pyarrow-timezone-windows.py | 156 | """Test robust filings retrieval with error handling.""" | STRING |
| MEDIUM | …s/issues/reproductions/data-quality/322-xomearnings.py | 37 | # - Add proper assertions and error handling for robust testing | COMMENT |
| MEDIUM | …s/issues/reproductions/data-quality/408-appleincome.py | 37 | # - Add proper assertions and error handling for robust testing | COMMENT |
| MEDIUM | …sues/reproductions/data-quality/350-multifinancials.py | 22 | # - Add proper assertions and error handling for robust testing | COMMENT |
| MEDIUM | …sts/issues/reproductions/data-quality/405-aaplfacts.py | 24 | # - Add proper assertions and error handling for robust testing | COMMENT |
| MEDIUM | …/reproductions/data-quality/298-aaplmultifinancials.py | 33 | # - Add proper assertions and error handling for robust testing | COMMENT |
| MEDIUM | …sts/issues/reproductions/data-quality/339-amdincome.py | 37 | # - Add proper assertions and error handling for robust testing | COMMENT |
| MEDIUM | tests/issues/reproductions/data-quality/349-toexcel.py | 27 | # - Add proper assertions and error handling for robust testing | COMMENT |
| MEDIUM | …reproductions/data-quality/339-multifinancialsorder.py | 127 | # - Add proper assertions and error handling for robust testing | COMMENT |
| MEDIUM | …es/reproductions/data-quality/352-applebalancesheet.py | 29 | # - Add proper assertions and error handling for robust testing | COMMENT |
| MEDIUM | …sues/reproductions/data-quality/362-balancesheetcmi.py | 36 | # - Add proper assertions and error handling for robust testing | COMMENT |
| MEDIUM | …reproductions/data-quality/341-nvdaearningspershare.py | 39 | # - Add proper assertions and error handling for robust testing | COMMENT |
| MEDIUM | …/issues/reproductions/data-quality/342-nvdaearnings.py | 29 | # - Add proper assertions and error handling for robust testing | COMMENT |
| MEDIUM | …s/issues/reproductions/data-quality/329-msftrevenue.py | 86 | # - Add proper assertions and error handling for robust testing | COMMENT |
| MEDIUM⚡ | …/reproductions/data-quality/test_issue_411_solution.py | 72 | """Test the comprehensive get_financial_metrics() method.""" | STRING |
| MEDIUM⚡ | …/reproductions/data-quality/test_issue_411_solution.py | 78 | # Test with Apple (known to have comprehensive data) | COMMENT |
| MEDIUM | …sts/issues/reproductions/xbrl-parsing/309-messydata.py | 31 | # - Add proper assertions and error handling for robust testing | COMMENT |
| MEDIUM | …reproductions/xbrl-parsing/legacy-ccc-morganstanley.py | 29 | # - Add proper assertions and error handling for robust testing | COMMENT |
| MEDIUM | …es/reproductions/xbrl-parsing/315-applebalancesheet.py | 35 | # - Add proper assertions and error handling for robust testing | COMMENT |
| MEDIUM | …/issues/reproductions/xbrl-parsing/310-teslarevenue.py | 59 | # - Add proper assertions and error handling for robust testing | COMMENT |
| MEDIUM | …reproductions/xbrl-parsing/334-inconsistentsignrand.py | 55 | # - Add proper assertions and error handling for robust testing | COMMENT |
| MEDIUM | …ssues/reproductions/xbrl-parsing/304-avgostatements.py | 27 | # - Add proper assertions and error handling for robust testing | COMMENT |
| MEDIUM | …oductions/xbrl-parsing/legacy-ddd-berkshirehathaway.py | 34 | # - Add proper assertions and error handling for robust testing | COMMENT |
| MEDIUM | …issues/reproductions/xbrl-parsing/370-maradataframe.py | 37 | # - Add proper assertions and error handling for robust testing | COMMENT |
| MEDIUM | …sues/reproductions/xbrl-parsing/legacy-aaa-tesla10k.py | 25 | # - Add proper assertions and error handling for robust testing | COMMENT |
| MEDIUM | …productions/xbrl-parsing/legacy-aaa-aesfiscalperiod.py | 56 | # - Add proper assertions and error handling for robust testing | COMMENT |
| MEDIUM | …es/reproductions/xbrl-parsing/408-applecashflowxbrl.py | 30 | # - Add proper assertions and error handling for robust testing | COMMENT |
| MEDIUM | …s/reproductions/xbrl-parsing/399-balancesheetperiod.py | 30 | # - Add proper assertions and error handling for robust testing | COMMENT |
| MEDIUM | …es/reproductions/xbrl-parsing/394-filterbydimension.py | 42 | # - Add proper assertions and error handling for robust testing | COMMENT |
| MEDIUM | …/reproductions/xbrl-parsing/396-comprehensiveincome.py | 30 | # - Add proper assertions and error handling for robust testing | COMMENT |
| 84 more matches not shown… | ||||
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| LOW⚡ | tools/templates/xbrl_parsing_reproduction.py | 45 | # Step 1: Get the filing | COMMENT |
| LOW⚡ | tools/templates/xbrl_parsing_reproduction.py | 50 | # Step 2: Load XBRL | COMMENT |
| LOW⚡ | tools/templates/xbrl_parsing_reproduction.py | 55 | # Step 3: Check basic XBRL properties | COMMENT |
| LOW | tools/templates/xbrl_parsing_reproduction.py | 70 | # Step 4: Test specific functionality mentioned in issue | COMMENT |
| LOW⚡ | tools/templates/entity_facts_reproduction.py | 47 | # Step 1: Get the company object | COMMENT |
| LOW⚡ | tools/templates/entity_facts_reproduction.py | 57 | # Step 2: Access facts | COMMENT |
| LOW⚡ | tools/templates/entity_facts_reproduction.py | 62 | # Step 3: Test basic facts properties | COMMENT |
| LOW⚡ | tools/templates/entity_facts_reproduction.py | 71 | # Step 4: Test statement access | COMMENT |
| LOW⚡ | tools/templates/entity_facts_reproduction.py | 110 | # Step 5: Test specific functionality mentioned in issue | COMMENT |
| LOW⚡ | tests/test_ai_native_context.py | 250 | # Step 1: Company (Company now has .to_context() for consistency) | COMMENT |
| LOW⚡ | tests/test_ai_native_context.py | 253 | # Step 2: Filings hints at .latest() | COMMENT |
| LOW⚡ | tests/test_ai_native_context.py | 261 | # Step 3: Filing hints at .obj() | COMMENT |
| LOW⚡ | tests/test_ai_native_context.py | 266 | # Step 4: FormC hints at .get_offering() | COMMENT |
| LOW⚡ | tests/test_ai_native_context.py | 271 | # Step 5: Offering provides lifecycle (already tested in other tests) | COMMENT |
| LOW⚡ | …tions/data-quality/issue_452_period_selection_debug.py | 23 | # Step 1: Check available reporting periods | COMMENT |
| LOW⚡ | …tions/data-quality/issue_452_period_selection_debug.py | 28 | # Step 2: Get the income statement using the high-level API | COMMENT |
| LOW | …tions/data-quality/issue_452_period_selection_debug.py | 48 | # Step 3: Examine all revenue facts for period ending 2023-12-31 | COMMENT |
| LOW | …tions/data-quality/issue_452_period_selection_debug.py | 87 | # Step 4: Look specifically at the period ending 2023-12-31 | COMMENT |
| LOW | …s/data-quality/issue_452_dnut_revenue_investigation.py | 28 | # Step 1: Reproduce the issue | COMMENT |
| LOW | …s/data-quality/issue_452_dnut_revenue_investigation.py | 53 | # Step 2: Get the latest 10-K filing details | COMMENT |
| LOW | …s/data-quality/issue_452_dnut_revenue_investigation.py | 64 | # Step 3: Examine XBRL data for revenue facts | COMMENT |
| LOW | …s/data-quality/issue_452_dnut_revenue_investigation.py | 124 | # Step 4: Identify the dual-date issue | COMMENT |
| LOW | …s/data-quality/issue_452_dnut_revenue_investigation.py | 155 | # Step 5: Check available periods in xbrl | COMMENT |
| LOW⚡ | …oductions/data-quality/issue_452_statement_analysis.py | 80 | # Step 2: Check what revenue concept is being used in the statement | COMMENT |
| LOW | …oductions/data-quality/issue_452_statement_analysis.py | 92 | # Step 3: Check for the specific period and see what revenue is reported | COMMENT |
| LOW | …oductions/data-quality/issue_452_statement_analysis.py | 123 | # Step 4: Look at the raw XBRL to see if $1.530B appears anywhere | COMMENT |
| LOW | .claude/agents/issue-handler.md | 155 | ### Step 1: Quick Visual Inspection (30 seconds) | COMMENT |
| LOW | .claude/agents/issue-handler.md | 166 | ### Step 2: Pattern-Based Analysis (2-5 minutes) | COMMENT |
| LOW | .claude/agents/issue-handler.md | 184 | ### Step 3: Auto-Generated Reproduction (1-2 minutes) | COMMENT |
| LOW | .claude/agents/issue-handler.md | 200 | ### Step 4: Known Pattern Detection | COMMENT |
| LOW | .claude/agents/issue-handler.md | 208 | ### Step 5: Knowledge Check (Integrated) | COMMENT |
| LOW | .claude/commands/checkpoint.md | 9 | ## Step 1: Determine Context | COMMENT |
| LOW | .claude/commands/checkpoint.md | 15 | ## Step 2: Create Checkpoint Document | COMMENT |
| LOW | .claude/commands/checkpoint.md | 72 | ## Step 3: Quality Check | COMMENT |
| LOW | .claude/commands/checkpoint.md | 81 | ## Step 4: Save and Instruct | COMMENT |
| LOW | docs/advanced-search.md | 295 | # Step 1: Find relevant sections | COMMENT |
| LOW | docs/advanced-search.md | 302 | # Step 2: Investigate full sections | COMMENT |
| LOW⚡ | docs/invalid-return-type-phase2-analysis.md | 189 | ### Step 1: Safe Fixes (Start here) | COMMENT |
| LOW⚡ | docs/invalid-return-type-phase2-analysis.md | 193 | ### Step 2: Medium Risk (After testing) | COMMENT |
| LOW⚡ | docs/invalid-return-type-phase2-analysis.md | 198 | ### Step 3: Defer to Phase 3 | COMMENT |
| LOW | docs/quickstart.md | 11 | ## Step 1: Install EdgarTools | COMMENT |
| LOW | docs/quickstart.md | 23 | ## Step 2: Set Your Identity | COMMENT |
| LOW | docs/quickstart.md | 36 | ## Step 3: Get a Company | COMMENT |
| LOW | docs/quickstart.md | 58 | ## Step 4: Get Financial Statements | COMMENT |
| LOW | docs/quickstart.md | 79 | ## Step 5: Get Specific Values | COMMENT |
| LOW | docs/quickstart.md | 91 | ## Step 6: Export to DataFrame | COMMENT |
| LOW | docs/quickstart.md | 106 | ## Step 7: Browse Company Filings | COMMENT |
| LOW | docs/quickstart.md | 160 | ## Step 8: Next Steps | COMMENT |
| LOW⚡ | docs/invalid-return-type-comprehensive-report.md | 133 | ### Step 1: Quick Wins (Est. 15-20 errors) | COMMENT |
| LOW⚡ | docs/invalid-return-type-comprehensive-report.md | 142 | ### Step 2: Utility Functions (Est. 10 errors) | COMMENT |
| LOW⚡ | docs/invalid-return-type-comprehensive-report.md | 150 | ### Step 3: Financial Core (Est. 15 errors) | COMMENT |
| LOW⚡ | docs/invalid-return-type-comprehensive-report.md | 158 | ### Step 4: Defer Deprecated Code (12 errors) | COMMENT |
| LOW | docs/guides/local-storage.md | 233 | # Step 1: Download metadata (company info, filing indexes, facts API data) | COMMENT |
| LOW | docs/guides/local-storage.md | 236 | # Step 2: Download actual filing documents for XBRL parsing | COMMENT |
| LOW⚡ | docs/guides/full-text-search.md | 261 | # Step 1: Find filings across EDGAR | COMMENT |
| LOW⚡ | docs/guides/full-text-search.md | 265 | # Step 2: Triage from metadata | COMMENT |
| LOW⚡ | docs/guides/full-text-search.md | 269 | # Step 3: Check who shows up most | COMMENT |
| LOW⚡ | docs/guides/full-text-search.md | 273 | # Step 4: Deep dive on an interesting hit | COMMENT |
| LOW⚡ | docs/guides/full-text-search.md | 277 | # Step 5: Grep the 10-K for related terms | COMMENT |
| LOW⚡ | docs/guides/stock-splits-eps-normalization.md | 224 | # Step 1: Get NVIDIA data | COMMENT |
| 127 more matches not shown… | ||||
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| HIGH | …ettes/TestDeal.test_bofa_structured_note_graceful.yaml | 0 | ggemn3qd\\\"kipj1>kt$vc[t\\>?\"/q1\nm\\-/v/_be\\-;?p;k*6gav+1=0o=6_lj81zgj#32rzc<0r[!ymo!&d$8?&%6(l\nm3alux]j'q \\6_p##) | STRING |
| HIGH | …eringTypeClassification.test_bofa_structured_note.yaml | 0 | ggemn3qd\\\"kipj1>kt$vc[t\\>?\"/q1\nm\\-/v/_be\\-;?p;k*6gav+1=0o=6_lj81zgj#32rzc<0r[!ymo!&d$8?&%6(l\nm3alux]j'q \\6_p##) | STRING |
| HIGH | …tes/TestObjDispatch.test_424b2_returns_prospectus.yaml | 0 | ggemn3qd\\\"kipj1>kt$vc[t\\>?\"/q1\nm\\-/v/_be\\-;?p;k*6gav+1=0o=6_lj81zgj#32rzc<0r[!ymo!&d$8?&%6(l\nm3alux]j'q \\6_p##) | STRING |
| HIGH | …verPageExtraction.test_bofa_424b2_structured_note.yaml | 0 | ggemn3qd\\\"kipj1>kt$vc[t\\>?\"/q1\nm\\-/v/_be\\-;?p;k*6gav+1=0o=6_lj81zgj#32rzc<0r[!ymo!&d$8?&%6(l\nm3alux]j'q \\6_p##) | STRING |
| HIGH | tests/issues/_templates/data-quality-template.py | 0 | test case for github issue #{issue_number} - {issue_title} | STRING |
| HIGH | tests/issues/_templates/performance-template.py | 0 | test case for github issue #{issue_number} - {issue_title} | STRING |
| HIGH | tests/issues/_templates/compatibility-template.py | 0 | test case for github issue #{issue_number} - {issue_title} | STRING |
| HIGH | tests/issues/_templates/xbrl-parsing-template.py | 0 | test case for github issue #{issue_number} - {issue_title} | STRING |
| HIGH | tests/issues/_templates/filing-access-template.py | 0 | test case for github issue #{issue_number} - {issue_title} | STRING |
| HIGH | docs/to-context-guidelines.md | 0 | ai-optimized context string. args: detail: 'minimal' (~100 tokens), 'standard' (~300 tokens), 'full' (~500+ tokens) | STRING |
| HIGH | edgar/muniadvisors.py | 0 | ai-optimized context string. args: detail: 'minimal' (~100 tokens), 'standard' (~300 tokens), 'full' (~500+ tokens) | STRING |
| HIGH | edgar/form144.py | 0 | ai-optimized context string. args: detail: 'minimal' (~100 tokens), 'standard' (~300 tokens), 'full' (~500+ tokens) | STRING |
| HIGH | edgar/effect.py | 0 | ai-optimized context string. args: detail: 'minimal' (~100 tokens), 'standard' (~300 tokens), 'full' (~500+ tokens) | STRING |
| HIGH | edgar/offerings/exempt/formd.py | 0 | ai-optimized context string. args: detail: 'minimal' (~100 tokens), 'standard' (~300 tokens), 'full' (~500+ tokens) | STRING |
| HIGH | edgar/beneficial_ownership/schedule13.py | 0 | ai-optimized context string. args: detail: 'minimal' (~100 tokens), 'standard' (~300 tokens), 'full' (~500+ tokens) | STRING |
| HIGH | edgar/proxy/core.py | 0 | ai-optimized context string. args: detail: 'minimal' (~100 tokens), 'standard' (~300 tokens), 'full' (~500+ tokens) | STRING |
| HIGH | edgar/company_reports/sixk.py | 0 | ai-optimized context string. args: detail: 'minimal' (~100 tokens), 'standard' (~300 tokens), 'full' (~500+ tokens) | STRING |
| HIGH | edgar/company_reports/current_report.py | 0 | ai-optimized context string. args: detail: 'minimal' (~100 tokens), 'standard' (~300 tokens), 'full' (~500+ tokens) | STRING |
| HIGH | edgar/company_reports/twenty_f.py | 0 | ai-optimized context string. args: detail: 'minimal' (~100 tokens), 'standard' (~300 tokens), 'full' (~500+ tokens) | STRING |
| HIGH | edgar/ownership/forms.py | 0 | ai-optimized context string. args: detail: 'minimal' (~100 tokens), 'standard' (~300 tokens), 'full' (~500+ tokens) | STRING |
| HIGH | edgar/xbrl/statements.py | 0 | ai-optimized context string. args: detail: 'minimal' (~100 tokens), 'standard' (~300 tokens), 'full' (~500+ tokens) | STRING |
| HIGH | edgar/abs/ten_d.py | 0 | ai-optimized context string. args: detail: 'minimal' (~100 tokens), 'standard' (~300 tokens), 'full' (~500+ tokens) | STRING |
| HIGH | edgar/thirteenf/models.py | 0 | ai-optimized context string. args: detail: 'minimal' (~100 tokens), 'standard' (~300 tokens), 'full' (~500+ tokens) | STRING |
| HIGH | edgar/funds/nmfp3.py | 0 | ai-optimized context string. args: detail: 'minimal' (~100 tokens), 'standard' (~300 tokens), 'full' (~500+ tokens) | STRING |
| HIGH | edgar/funds/ncen.py | 0 | ai-optimized context string. args: detail: 'minimal' (~100 tokens), 'standard' (~300 tokens), 'full' (~500+ tokens) | STRING |
| HIGH | edgar/funds/ncsr.py | 0 | ai-optimized context string. args: detail: 'minimal' (~100 tokens), 'standard' (~300 tokens), 'full' (~500+ tokens) | STRING |
| HIGH | edgar/funds/reports.py | 0 | ai-optimized context string. args: detail: 'minimal' (~100 tokens), 'standard' (~300 tokens), 'full' (~500+ tokens) | STRING |
| HIGH | edgar/funds/prospectus497k.py | 0 | ai-optimized context string. args: detail: 'minimal' (~100 tokens), 'standard' (~300 tokens), 'full' (~500+ tokens) | STRING |
| HIGH | edgar/npx/npx.py | 0 | ai-optimized context string. args: detail: 'minimal' (~100 tokens), 'standard' (~300 tokens), 'full' (~500+ tokens) | STRING |
| HIGH | edgar/offerings/prospectus/registration_s3.py | 0 | primary entry point. extracts cover page, fee table, and offering type. | STRING |
| HIGH | edgar/offerings/prospectus/registration_s1.py | 0 | primary entry point. extracts cover page, fee table, and offering type. | STRING |
| HIGH | edgar/offerings/prospectus/registration_s4.py | 0 | primary entry point. extracts cover page, fee table, and offering type. | STRING |
| HIGH | edgar/offerings/prospectus/registration_s3.py | 0 | all filings under the same registration file number. | STRING |
| HIGH | edgar/offerings/prospectus/registration_s1.py | 0 | all filings under the same registration file number. | STRING |
| HIGH | edgar/offerings/prospectus/registration_s4.py | 0 | all filings under the same registration file number. | STRING |
| HIGH | edgar/xbrl/facts.py | 0 | filter by fiscal period (fy, q1, q2, q3, q4). args: fiscal_period: fiscal period identifier returns: self for method cha | STRING |
| HIGH | edgar/xbrl/design/XBRLS_Query_Design.md | 0 | filter by fiscal period (fy, q1, q2, q3, q4). args: fiscal_period: fiscal period identifier returns: self for method cha | STRING |
| HIGH | edgar/xbrl/stitching/query.py | 0 | filter by fiscal period (fy, q1, q2, q3, q4). args: fiscal_period: fiscal period identifier returns: self for method cha | STRING |
| HIGH | edgar/xbrl/statement_resolver.py | 0 | initialize with an xbrl object. args: xbrl: xbrl object containing parsed data | STRING |
| HIGH | edgar/xbrl/fund_statements.py | 0 | initialize with an xbrl object. args: xbrl: xbrl object containing parsed data | STRING |
| HIGH | edgar/xbrl/statements.py | 0 | initialize with an xbrl object. args: xbrl: xbrl object containing parsed data | STRING |
| HIGH | edgar/xbrl/design/xbrl-instance-parser-design.md | 0 | extract and register all namespaces from the document. | STRING |
| HIGH | edgar/xbrl/design/xbrl-definition-parser-design.md | 0 | extract and register all namespaces from the document. | STRING |
| HIGH | edgar/xbrl/design/xbrl-calculation-parser-design.md | 0 | extract and register all namespaces from the document. | STRING |
| HIGH | edgar/xbrl/design/xbrl-presentation-parser-design.md | 0 | extract and register all namespaces from the document. | STRING |
| HIGH | edgar/xbrl/design/xbrl-definition-parser-design.md | 0 | remove relationships that are effectively prohibited. | STRING |
| HIGH | edgar/xbrl/design/xbrl-calculation-parser-design.md | 0 | remove relationships that are effectively prohibited. | STRING |
| HIGH | edgar/xbrl/design/xbrl-presentation-parser-design.md | 0 | remove relationships that are effectively prohibited. | STRING |
| HIGH | edgar/funds/nmfp3.py | 0 | the source filing object, if this report was created via from_filing(). | STRING |
| HIGH | edgar/funds/ncen.py | 0 | the source filing object, if this report was created via from_filing(). | STRING |
| HIGH | edgar/funds/ncsr.py | 0 | the source filing object, if this report was created via from_filing(). | STRING |
| HIGH | edgar/funds/reports.py | 0 | the source filing object, if this report was created via from_filing(). | STRING |
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| LOW | tests/conftest.py | 10 | logger = logging.getLogger(__name__) | CODE |
| LOW⚡ | tests/issues/regression/test_mcp_fpi_support.py | 20 | logger = logging.getLogger(__name__) | CODE |
| LOW | scripts/harness/__init__.py | 26 | __all__ = [ | CODE |
| LOW⚡ | edgar/xmlfiling.py | 34 | __all__ = ['XmlFiling'] | CODE |
| LOW | edgar/enums.py | 43 | __all__ = [ | CODE |
| LOW | edgar/muniadvisors.py | 18 | __all__ = [ | CODE |
| LOW | edgar/config.py | 27 | __all__ = ['SEC_BASE_URL', 'SEC_DATA_URL', 'SEC_XBRL_URL', 'SEC_ARCHIVE_URL', 'VERBOSE_EXCEPTIONS'] | CODE |
| LOW | edgar/shelfofferings.py | 3 | __all__ = [ | CODE |
| LOW | edgar/earnings.py | 36 | logger = logging.getLogger(__name__) | CODE |
| LOW | edgar/earnings.py | 49 | __all__ = [ | CODE |
| LOW | edgar/paths.py | 29 | __all__ = [ | CODE |
| LOW | edgar/paths.py | 120 | def set_data_directory(path: Union[str, Path]) -> None: | CODE |
| LOW | edgar/paths.py | 177 | def set_cache_directory(path: Union[str, Path]) -> None: | CODE |
| LOW | edgar/paths.py | 252 | def set_test_directory(path: Union[str, Path]) -> None: | CODE |
| LOW | edgar/paths.py | 305 | def set_claude_skills_directory(path: Union[str, Path]) -> None: | CODE |
| LOW | edgar/xmltools.py | 6 | __all__ = [ | CODE |
| LOW | edgar/form144.py | 17 | __all__ = ['Form144', | CODE |
| LOW | edgar/filesystem.py | 33 | __all__ = [ | CODE |
| LOW | edgar/current_filings.py | 22 | __all__ = [ | CODE |
| LOW | edgar/core.py | 44 | __all__ = [ | CODE |
| LOW | edgar/httprequests.py | 31 | __all__ = [ | CODE |
| LOW | edgar/httprequests.py | 1247 | logger = logging.getLogger(__name__) | CODE |
| LOW | edgar/attachments.py | 43 | __all__ = ['Attachment', 'Attachments', 'FilingHomepage', 'FilerInfo', 'AttachmentServer', 'sec_document_url', 'get_docu | CODE |
| LOW | edgar/forms.py | 14 | __all__ = [ | CODE |
| LOW | edgar/_party.py | 15 | __all__ = [ | CODE |
| LOW | edgar/context.py | 10 | __all__ = ['HasContext', 'compose_context'] | CODE |
| LOW | edgar/_markdown.py | 12 | __all__ = [ | CODE |
| LOW | edgar/markdown.py | 21 | __all__ = [ | CODE |
| LOW | edgar/_filings.py | 84 | __all__ = [ | CODE |
| LOW⚡ | edgar/correspondence.py | 31 | __all__ = ['Correspondence', 'CorrespondenceThread', 'CorrespondenceType'] | CODE |
| LOW | edgar/datatools.py | 9 | __all__ = [ | CODE |
| LOW | edgar/dates.py | 4 | __all__ = [ | CODE |
| LOW | edgar/headers.py | 21 | __all__ = ['FilingDirectory', 'IndexHeaders', 'ReportingOwner', 'CompanyData', 'FilingValues', 'FormerCompany'] | CODE |
| LOW | edgar/urls.py | 9 | __all__ = [ | CODE |
| LOW | edgar/richtools.py | 15 | __all__ = [ | CODE |
| LOW | edgar/effect.py | 11 | __all__ = [ | CODE |
| LOW | edgar/offerings/__init__.py | 29 | __all__ = [ | CODE |
| LOW | edgar/offerings/exempt/__init__.py | 6 | __all__ = ["FormD"] | CODE |
| LOW | edgar/offerings/exempt/formd.py | 16 | __all__ = [ | CODE |
| LOW⚡ | edgar/offerings/prospectus/_s3_cover.py | 20 | __all__ = ['S3OfferingType', 'S3CoverPage', '_extract_s3_cover_page', | CODE |
| LOW⚡ | edgar/offerings/prospectus/registration_s3.py | 46 | __all__ = ['RegistrationS3', 'S3OfferingType', 'S3CoverPage'] | CODE |
| LOW⚡ | edgar/offerings/prospectus/_s4_cover.py | 34 | __all__ = ['S4OfferingType', 'S4CoverPage', '_extract_s4_cover_page', | CODE |
| LOW | edgar/offerings/prospectus/__init__.py | 48 | __all__ = [ | CODE |
| LOW | edgar/offerings/prospectus/_s1_cover.py | 22 | __all__ = ['extract_s1_cover_page'] | CODE |
| LOW⚡ | edgar/offerings/prospectus/registration_s1.py | 41 | __all__ = ['RegistrationS1', 'S1OfferingType', 'S1CoverPage'] | CODE |
| LOW | edgar/offerings/prospectus/_424b_classifier.py | 26 | __all__ = ['classify_offering_type'] | CODE |
| LOW | edgar/offerings/prospectus/_424b_xbrl.py | 24 | __all__ = ['extract_filing_fees_xbrl'] | CODE |
| LOW⚡ | edgar/offerings/prospectus/registration_s4.py | 46 | __all__ = ['RegistrationS4', 'S4OfferingType', 'S4CoverPage'] | CODE |
| LOW | edgar/offerings/prospectus/_424b_cover.py | 18 | __all__ = ['extract_cover_page_fields', 'extract_underwriting_from_text'] | CODE |
| LOW | edgar/offerings/prospectus/_s1_classifier.py | 19 | __all__ = ['classify_s1_offering_type'] | CODE |
| LOW⚡ | edgar/offerings/prospectus/drs.py | 37 | __all__ = ['DraftRegistrationStatement'] | CODE |
| LOW | edgar/offerings/prospectus/_424b_tables/__init__.py | 67 | __all__ = [ | CODE |
| LOW | edgar/offerings/prospectus/_fee_table/__init__.py | 54 | __all__ = ['extract_registration_fee_table'] | CODE |
| LOW | edgar/offerings/crowdfunding/__init__.py | 23 | __all__ = [ | CODE |
| LOW | edgar/offerings/crowdfunding/campaign.py | 85 | __all__ = ['Offering', 'Campaign'] # Campaign kept for backwards compatibility | CODE |
| LOW | edgar/offerings/crowdfunding/formc/__init__.py | 27 | __all__ = ['FormC', 'Signer', 'FundingPortal', 'IssuerCompany'] | CODE |
| LOW | edgar/beneficial_ownership/models.py | 12 | __all__ = [ | CODE |
| LOW | edgar/beneficial_ownership/rendering.py | 18 | __all__ = ['render_schedule13d', 'render_schedule13g'] | CODE |
| LOW | edgar/beneficial_ownership/amendments.py | 13 | __all__ = ['AmendmentInfo', 'OwnershipComparison'] | CODE |
| LOW | edgar/beneficial_ownership/__init__.py | 26 | __all__ = [ | CODE |
| 175 more matches not shown… | ||||
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| LOW⚡ | tools/templates/xbrl_parsing_reproduction.py | 45 | # Step 1: Get the filing | COMMENT |
| LOW⚡ | tools/templates/xbrl_parsing_reproduction.py | 50 | # Step 2: Load XBRL | COMMENT |
| LOW⚡ | tools/templates/xbrl_parsing_reproduction.py | 55 | # Step 3: Check basic XBRL properties | COMMENT |
| LOW | tools/templates/xbrl_parsing_reproduction.py | 70 | # Step 4: Test specific functionality mentioned in issue | COMMENT |
| LOW⚡ | tools/templates/entity_facts_reproduction.py | 47 | # Step 1: Get the company object | COMMENT |
| LOW⚡ | tools/templates/entity_facts_reproduction.py | 57 | # Step 2: Access facts | COMMENT |
| LOW⚡ | tools/templates/entity_facts_reproduction.py | 62 | # Step 3: Test basic facts properties | COMMENT |
| LOW⚡ | tools/templates/entity_facts_reproduction.py | 71 | # Step 4: Test statement access | COMMENT |
| LOW⚡ | tools/templates/entity_facts_reproduction.py | 110 | # Step 5: Test specific functionality mentioned in issue | COMMENT |
| LOW⚡ | tests/test_ai_native_context.py | 250 | # Step 1: Company (Company now has .to_context() for consistency) | COMMENT |
| LOW⚡ | tests/test_ai_native_context.py | 253 | # Step 2: Filings hints at .latest() | COMMENT |
| LOW⚡ | tests/test_ai_native_context.py | 261 | # Step 3: Filing hints at .obj() | COMMENT |
| LOW⚡ | tests/test_ai_native_context.py | 266 | # Step 4: FormC hints at .get_offering() | COMMENT |
| LOW⚡ | tests/test_ai_native_context.py | 271 | # Step 5: Offering provides lifecycle (already tested in other tests) | COMMENT |
| LOW⚡ | …tions/data-quality/issue_452_period_selection_debug.py | 23 | # Step 1: Check available reporting periods | COMMENT |
| LOW⚡ | …tions/data-quality/issue_452_period_selection_debug.py | 28 | # Step 2: Get the income statement using the high-level API | COMMENT |
| LOW | …tions/data-quality/issue_452_period_selection_debug.py | 48 | # Step 3: Examine all revenue facts for period ending 2023-12-31 | COMMENT |
| LOW | …tions/data-quality/issue_452_period_selection_debug.py | 87 | # Step 4: Look specifically at the period ending 2023-12-31 | COMMENT |
| LOW | …s/data-quality/issue_452_dnut_revenue_investigation.py | 28 | # Step 1: Reproduce the issue | COMMENT |
| LOW | …s/data-quality/issue_452_dnut_revenue_investigation.py | 53 | # Step 2: Get the latest 10-K filing details | COMMENT |
| LOW | …s/data-quality/issue_452_dnut_revenue_investigation.py | 64 | # Step 3: Examine XBRL data for revenue facts | COMMENT |
| LOW | …s/data-quality/issue_452_dnut_revenue_investigation.py | 124 | # Step 4: Identify the dual-date issue | COMMENT |
| LOW | …s/data-quality/issue_452_dnut_revenue_investigation.py | 155 | # Step 5: Check available periods in xbrl | COMMENT |
| LOW⚡ | …oductions/data-quality/issue_452_statement_analysis.py | 80 | # Step 2: Check what revenue concept is being used in the statement | COMMENT |
| LOW | …oductions/data-quality/issue_452_statement_analysis.py | 92 | # Step 3: Check for the specific period and see what revenue is reported | COMMENT |
| LOW | …oductions/data-quality/issue_452_statement_analysis.py | 123 | # Step 4: Look at the raw XBRL to see if $1.530B appears anywhere | COMMENT |
| LOW⚡ | examples/scripts/ai/basic_docs.py | 104 | # Step 1: Browse general documentation | COMMENT |
| LOW⚡ | examples/scripts/ai/basic_docs.py | 109 | # Step 2: Search for specific functionality | COMMENT |
| LOW⚡ | examples/scripts/ai/basic_docs.py | 118 | # Step 3: Try the code | COMMENT |
| LOW⚡ | examples/scripts/ai/basic_docs.py | 125 | # Step 4: Learn about the result object | COMMENT |
| LOW⚡ | examples/scripts/ai/skills_usage.py | 179 | # Step 1: Define companies | COMMENT |
| LOW⚡ | examples/scripts/ai/skills_usage.py | 183 | # Step 2: Get revenue trends | COMMENT |
| LOW⚡ | examples/scripts/ai/skills_usage.py | 187 | # Step 3: Analyze results | COMMENT |
| LOW⚡ | scripts/debug_frontier_masters_10k_hang.py | 32 | # Step 1: Download HTML | COMMENT |
| LOW⚡ | scripts/debug_frontier_masters_10k_hang.py | 42 | # Step 2: Test with ChunkedDocument (old parser) | COMMENT |
| LOW⚡ | scripts/debug_frontier_masters_10k_hang.py | 66 | # Step 3: Test with new HTMLParser | COMMENT |
| LOW⚡ | scripts/capture_rich_to_png.py | 91 | # Step 1: Execute script and get HTML | COMMENT |
| LOW⚡ | scripts/capture_rich_to_png.py | 94 | # Step 2: Convert HTML to PNG using Playwright | COMMENT |
| LOW⚡ | scripts/benchmark_13f_txt_parser.py | 219 | # Step 1: Get full submission text for summary page | COMMENT |
| LOW⚡ | scripts/benchmark_13f_txt_parser.py | 228 | # Step 2: Extract ground truth | COMMENT |
| LOW⚡ | scripts/benchmark_13f_txt_parser.py | 231 | # Step 3: Parse the infotable | COMMENT |
| LOW | scripts/benchmark_13f_txt_parser.py | 249 | # Step 4: Score | COMMENT |
| LOW⚡ | scripts/mcp-testing/install-local-mcp.sh | 31 | # Step 1: Clean up old venv if it exists | COMMENT |
| LOW⚡ | scripts/mcp-testing/install-local-mcp.sh | 37 | # Step 2: Build distribution | COMMENT |
| LOW⚡ | scripts/mcp-testing/install-local-mcp.sh | 50 | # Step 3: Create virtual environment | COMMENT |
| LOW⚡ | scripts/mcp-testing/install-local-mcp.sh | 55 | # Step 4: Install package | COMMENT |
| LOW⚡ | scripts/mcp-testing/install-local-mcp.sh | 61 | # Step 5: Verify installation | COMMENT |
| LOW⚡ | scripts/mcp-testing/install-local-mcp.sh | 66 | # Step 6: Show configuration info | COMMENT |
| LOW⚡ | edgar/ttm/calculator.py | 830 | # Step 1: Get Q4 Net Income facts (derived or reported) | COMMENT |
| LOW⚡ | edgar/ttm/calculator.py | 839 | # Step 2: Get shares by period (FY, YTD9, and quarterly for CV check) | COMMENT |
| LOW | edgar/ttm/calculator.py | 859 | # Step 3: Calculate Q4 EPS | COMMENT |
| LOW⚡ | edgar/company_reports/current_report.py | 202 | # Step 1: Normalize input to extract item number | COMMENT |
| LOW⚡ | edgar/company_reports/current_report.py | 209 | # Step 2: Find item header in text | COMMENT |
| LOW | edgar/company_reports/current_report.py | 226 | # Step 3: Find end position | COMMENT |
| LOW | edgar/company_reports/current_report.py | 248 | # Step 4: Extract and clean content | COMMENT |
| LOW⚡ | edgar/entity/categorization.py | 242 | # Step 2: Check investment company forms (primary forms only) | COMMENT |
| LOW⚡ | edgar/entity/categorization.py | 249 | # Step 3: SPAC name patterns — before BDC to avoid false positives | COMMENT |
| LOW⚡ | edgar/entity/categorization.py | 253 | # Step 4: Check BDC signals (forms only — no name pattern) | COMMENT |
| LOW⚡ | edgar/entity/categorization.py | 257 | # Step 5: Check investment manager signals | COMMENT |
| LOW⚡ | edgar/entity/categorization.py | 261 | # Step 6: Check holding company | COMMENT |
| 31 more matches not shown… | ||||
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| LOW | pyproject.toml | 201 | COMMENT | |
| LOW | pyproject.toml | 221 | # cumulative_timing` — expected here, and not a sign of a broken config. | COMMENT |
| LOW | pyproject.toml | 381 | # An xfail that passes is a failure, not a quiet success. | COMMENT |
| LOW | .codefactor.yml | 1 | # Test fixtures are third-party documents, not our source. | COMMENT |
| LOW | .readthedocs.yaml | 21 | fail_on_warning: false | COMMENT |
| LOW | tests/conftest.py | 341 | # marked them `regression` and stopped. All three PR-facing CI selectors read | COMMENT |
| LOW | tests/conftest.py | 361 | # hatch run test-offline-audit tests/issues/regression/ | COMMENT |
| LOW | tests/conftest.py | 461 | # A file matching no pattern used to emit a logger.warning and carry on. | COMMENT |
| LOW | tests/test_section_parity_ratchet.py | 41 | sys.path.insert(0, str(pathlib.Path(__file__).parent / "fixtures" / "parser_corpus")) | COMMENT |
| LOW | tests/test_section_parity_ratchet.py | 61 | # 20-F outlier 0001144204-10-017467 is EDGARizer-generated filer-agent | COMMENT |
| LOW | tests/test_markdown_parity_ratchet.py | 41 | import markdown_parity # noqa: E402 | COMMENT |
| LOW | tests/test_section_boundary_corpus.py | 61 | # breakage fails while a fix that drops a filing from the set still passes. | COMMENT |
| LOW | tests/__init__.py | 1 | # SPDX-FileCopyrightText: 2022-present Dwight Gunning <dgunning@gmail.com> | COMMENT |
| LOW | tests/test_toc_analyzer_form_aware_bare_item.py | 261 | # are NOT applied (Business / Properties / Legal Proceedings / | COMMENT |
| LOW | tests/test_period_selector.py | 781 | # This may happen for periods that focus on other statement types | COMMENT |
| LOW | tests/issues/_templates/xbrl-parsing-template.py | 41 | COMMENT | |
| LOW | tests/issues/_templates/filing-access-template.py | 41 | """Minimal reproduction of the filing access issue.""" | COMMENT |
| LOW | …sues/reproductions/data-quality/350-multifinancials.py | 21 | # - Consider converting to structured test format using templates in tests/issues/_templates/ | COMMENT |
| LOW | …sts/issues/reproductions/data-quality/405-aaplfacts.py | 21 | # Migration Notes: | COMMENT |
| LOW | tests/issues/reproductions/data-quality/349-toexcel.py | 21 | multifinancials=MultiFinancials.extract(filings) | COMMENT |
| LOW | …reproductions/data-quality/339-multifinancialsorder.py | 121 | explore_statement_ordering(ticker) | COMMENT |
| LOW | …s/issues/reproductions/data-quality/329-msftrevenue.py | 81 | """ | COMMENT |
| LOW | …ssues/reproductions/xbrl-parsing/304-avgostatements.py | 21 | xb = f.xbrl() | COMMENT |
| LOW | …sues/reproductions/xbrl-parsing/legacy-aaa-tesla10k.py | 21 | COMMENT | |
| LOW | …es/reproductions/xbrl-parsing/394-filterbydimension.py | 41 | # - Consider converting to structured test format using templates in tests/issues/_templates/ | COMMENT |
| LOW | …ssues/reproductions/xbrl-parsing/333-tslamaxperiods.py | 41 | # - Add proper assertions and error handling for robust testing | COMMENT |
| LOW | …sues/reproductions/xbrl-parsing/legacy-bbb-jpmorgan.py | 21 | df = ic.to_dataframe() | COMMENT |
| LOW | …productions/filing-access/374-microsoftearlyfilings.py | 61 | COMMENT | |
| LOW | …eproductions/filing-access/321-differentfilingcount.py | 41 | # - This file was automatically migrated from the legacy gists/bugs/ system | COMMENT |
| LOW | …s/reproductions/filing-access/319-networksgmlparser.py | 21 | header = FilingHeader.parse_from_sgml_text(submission["header"]) | COMMENT |
| LOW | tests/issues/regression/test_filing_text_baseline.py | 21 | COMMENT | |
| LOW | tests/issues/regression/test_filing_text_baseline.py | 41 | # -> "foreign jurisdictions". 3 of the 5 filings changed (Apple, Merck, Exelon); 10x | COMMENT |
| LOW | tests/issues/regression/test_filing_text_baseline.py | 61 | # Merck, Exelon and the BofA 424B2 are byte-identical. Both changed filings were checked | COMMENT |
| LOW | tests/issues/regression/test_filing_text_baseline.py | 81 | # call document.text(table_max_col_width=500) directly. Long table cells were | COMMENT |
| LOW | tests/issues/regression/test_filing_text_baseline.py | 101 | # did. Trailing per-line padding to the last column's width was dropped in the | COMMENT |
| LOW | tests/issues/regression/test_filing_text_baseline.py | 161 | # These replay recorded submissions rather than fetching from SEC. | COMMENT |
| LOW | docs/guides/entity-api-guide.md | 281 | } | COMMENT |
| LOW | docs/guides/entity-api-guide.md | 381 | # "status": "Large accelerated filer", | COMMENT |
| LOW | docs/guides/cloud-storage.md | 281 | #### Configure Provider | COMMENT |
| LOW | docs/examples/snippets.md | 81 | # edgartools — free, no API key, 3 lines | COMMENT |
| LOW | docs/examples/crowdfunding.py | 141 | # Deadline | COMMENT |
| LOW | scripts/mcp-testing/watch-mcp-logs.sh | 1 | #!/bin/bash | COMMENT |
| LOW | scripts/mcp-testing/configure-claude-mcp.sh | 1 | #!/bin/bash | COMMENT |
| LOW | scripts/mcp-testing/test-mcp-tools.sh | 1 | #!/bin/bash | COMMENT |
| LOW | scripts/mcp-testing/cleanup-mcp-test.sh | 1 | #!/bin/bash | COMMENT |
| LOW | scripts/mcp-testing/install-local-mcp.sh | 1 | #!/bin/bash | COMMENT |
| LOW | .github/workflows/release-publish.yml | 1 | # Hardened PyPI publishing via Trusted Publishing (OIDC) — Posture B. | COMMENT |
| LOW | .github/workflows/python-hatch-workflow.yml | 1 | # This workflow installs Python dependencies and runs tests across versions. | COMMENT |
| LOW | .github/workflows/python-hatch-workflow.yml | 21 | # The second name is generated from the matrix below, which is event-dependent — | COMMENT |
| LOW | .github/workflows/regression-tests.yml | 1 | # Regression Tests Workflow | COMMENT |
| LOW | .github/workflows/regression-tests.yml | 101 | # the Actions tab and nowhere else. On 2026-08-08 it went red at 13:00 and | COMMENT |
| LOW | edgar/httpclient.py | 21 | # import, because it dropped the 'verify' parameter on the floor and users behind | COMMENT |
| LOW | edgar/financials.py | 321 | # Try each standard concept name in order | COMMENT |
| LOW | edgar/__about__.py | 1 | # SPDX-FileCopyrightText: 2022-present Dwight Gunning <dgunning@gmail.com> | COMMENT |
| LOW | edgar/ttm/calculator.py | 521 | name = concept.split(':')[-1].lower() if ':' in concept else concept.lower() | COMMENT |
| LOW | edgar/company_reports/current_report.py | 81 | Returns: | COMMENT |
| LOW | edgar/entity/categorization.py | 481 | # A REIT is "mortgage" when its interest income is at least this fraction of | COMMENT |
| LOW | edgar/entity/enhanced_statement.py | 1441 | # OtherDepreciationAndAmortization instead of the common | COMMENT |
| LOW | edgar/entity/enhanced_statement.py | 1461 | # data source) does not expose — so the standardized statement silently loses | COMMENT |
| LOW | edgar/entity/enhanced_statement.py | 1821 | info_with_calculated_fy['calculated_fiscal_year'] = calculated_fiscal_year | COMMENT |
| 47 more matches not shown… | ||||
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| MEDIUM | …ion.test_bofa_selling_agents_plural_lead_is_first.yaml | 3043 | 9pt Arial, Helvetica, Sans-Serif; margin: 0\">As discussed above, alternative | CODE |
| MEDIUM | …gentExtraction.test_equity_underwriter_unaffected.yaml | 4429 | plans. As discussed above, our board of directors will have the ability to | CODE |
| MEDIUM | …ettes/TestDeal.test_bofa_structured_note_graceful.yaml | 2257 | be withheld at the applicable statutory rate. As discussed above, the IRS | CODE |
| MEDIUM | …eringTypeClassification.test_bofa_structured_note.yaml | 2257 | be withheld at the applicable statutory rate. As discussed above, the IRS | CODE |
| MEDIUM | …tes/TestObjDispatch.test_424b2_returns_prospectus.yaml | 2257 | be withheld at the applicable statutory rate. As discussed above, the IRS | CODE |
| MEDIUM | tests/cassettes/test_atsn_gs_ua.yaml | 403 | provide coverage.\n\nGSET Engineers - As discussed above, pursuant to an agreement | CODE |
| MEDIUM | …action.test_cover_grid_wrapped_name_not_truncated.yaml | 3341 | by\nreference as discussed above, regarding a contract, agreement or other | CODE |
| MEDIUM | …verPageExtraction.test_bofa_424b2_structured_note.yaml | 2257 | be withheld at the applicable statutory rate. As discussed above, the IRS | CODE |
| MEDIUM | …ssettes/filing_text_baseline_0001481057-23-010389.yaml | 2064 | Sans-Serif; margin: 0\">As discussed above, alternative characterizations | CODE |
| MEDIUM | …ssettes/filing_text_baseline_0001481057-23-010389.yaml | 2069 | rate. As discussed above, the IRS has indicated in the Notice that it is considering | CODE |
| MEDIUM | …entExtraction.test_bofa_selling_agent_summary_box.yaml | 3042 | be withheld at the applicable statutory rate. As discussed above, the IRS | CODE |
| MEDIUM | …estAgencyDealAgentExtraction.test_atm_sales_agent.yaml | 3577 | As discussed above under “—</font><font style=\"color:#000000;font-family:'Times | CODE |
| MEDIUM | scripts/diagnose_ssl.py | 303 | print(" # Now you can use edgartools") | CODE |
| MEDIUM | data/html/HealthPeak.424B2.html | 7380 | <font style="letter-spacing:0.2pt;">that we intentionally accrue or receive exceeds the limits on nonqualifyin | CODE |
| MEDIUM | data/html/HealthPeak.424B2.html | 8186 | <font style="letter-spacing:0.2pt;">the investment in our capital stock is treated as effectively connected wi | CODE |
| MEDIUM | data/nport/samples/N-PORT Sample 1.xml | 4 | <!-- DISCLAIMER: This is a sample XML submission document for demonstration purposes only and should not be copied ve | CODE |
| MEDIUM | data/nport/samples/N-PORT Sample 3.xml | 4 | <!-- DISCLAIMER: This is a sample XML submission document for demonstration purposes only and should not be copied ve | CODE |
| MEDIUM | data/nport/samples/N-PORT Sample 2.xml | 4 | <!-- DISCLAIMER: This is a sample XML submission document for demonstration purposes only and should not be copied v | CODE |
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| HIGH | tools/visual_inspector.py | 173 | # Get sample values (first few non-null) | COMMENT |
| HIGH | tests/test_reference_company_dataset.py | 396 | assert companies1.equals(companies2) | CODE |
| HIGH | tests/test_xbrl_facts_schema.py | 44 | those few rows left null, and a no-match query returned no columns at all. | STRING |
| HIGH⚡ | tests/offerings/eval/test_tier_c_judge.py | 48 | text = '{"verdict": "correct", "judged_value": null, "confidence": "high", "rationale": "named on cover"}' | CODE |
| HIGH | …s/issues/regression/test_issue_548_period_filtering.py | 107 | assert non_null_count > 0, f"Period column '{period_col}' should have data (not all null)" | CODE |
| HIGH | edgar/entity/utils.py | 57 | total_filings = filings_form_array.length() | CODE |
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| MEDIUM⚡ | tests/test_v530_coverage.py | 53 | # Place the match far enough from the start that the context window is cut | COMMENT |
| MEDIUM | tests/cassettes/test_issue_879_jpm_8k.yaml | 4076 | <8-5-YXB\\):?K4BMIU]HS3@38V7-UB/AL\\,0I\nM8@>ISU JIXFT^RL_#GAW3K'4+FZMH_$]LBRO+N9,R,2BN.RYVCTQCJ*[R\\\\-\nM:)J&E | CODE |
| MEDIUM | tests/cassettes/test_search_for_text_with_regex.yaml | 3201 | =J6% (L)>9%?09QZ&,Y, +BR!#*EUX5268U1#%Y?SVM27501N\nM1>N=/%(]$GF)._J/B'54)X0%A]<Z$)O'=3)<HF[4-,8_C2.>D*,*,(R8[\\I | CODE |
| MEDIUM | docs/table-column-width.md | 155 | ### 2. RAG (Retrieval Augmented Generation) | COMMENT |
| MEDIUM | docs/complete-guide.md | 460 | ### Building RAG Systems | COMMENT |
| MEDIUM | edgar/entity/training/run_learning.py | 567 | 'xbrl_structural': [], # XBRL scaffolding (Axis, Domain, Table, etc.) | CODE |
| MEDIUM | edgar/ai/ARCHITECTURE.md | 928 | # Track context window usage | COMMENT |
| MEDIUM | edgar/documents/search.py | 293 | # Build a context window around the actual match with | COMMENT |
| MEDIUM | edgar/documents/extractors/hybrid_section_detector.py | 251 | # Schema-validity and successor-header guardrails — same flag-and-return | COMMENT |
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| LOW | tests/test_beneficial_ownership.py | 471 | subject.company_information.name = 'Acme Corp' | CODE |
| LOW⚡ | tests/test_beneficial_ownership.py | 482 | filing.company = 'Acme Corp' | CODE |
| LOW⚡ | tests/test_beneficial_ownership.py | 487 | assert result.issuer_info.name == 'Acme Corp' | CODE |
| LOW | tests/test_statement_view.py | 61 | set_identity('test@test.com') | CODE |
| LOW | tests/test_statement_view.py | 119 | set_identity('test@test.com') | CODE |
| LOW | tests/test_statement_view.py | 203 | set_identity('test@test.com') | CODE |
| LOW⚡ | tests/test_subsidiaries.py | 194 | assert subs[0].name == "Acme Corp" | CODE |
| LOW | tests/test_etf_features_integration.py | 188 | street1="123 Main St", | CODE |
| LOW | tests/test_etf_features_integration.py | 245 | street1="123 Main St", | CODE |
| LOW | tests/test_etf_features_integration.py | 330 | street1="123 Main St", | CODE |
| LOW | tests/test_etf_features_integration.py | 367 | street1="123 Main St", | CODE |
| LOW⚡ | tests/test_richtools.py | 68 | table.add_row("John Doe") | CODE |
| LOW | tests/test_bdc.py | 501 | assert company == 'Acme Corp' | CODE |
| LOW | tests/test_bdc_nonaccrual.py | 276 | company_name="Acme Corp", | CODE |
| LOW | tests/test_bdc_nonaccrual.py | 302 | company_name="Acme Corp", | CODE |
| LOW | tests/test_ncen.py | 539 | sig = SignatureInfo(signer="John Doe", title="CEO", signed_date="2025-01-01") | CODE |
| LOW | tests/test_ncen.py | 540 | assert "John Doe" in str(sig) | CODE |
| LOW⚡ | tests/test_statement_builder_unit.py | 307 | depth=0, parent_concept=None, source='placeholder' | CODE |
| LOW | docs/guides/drs-data-object-guide.md | 65 | | `company` | `str` | Company name | `"Acme Corp"` | | CODE |
| LOW | docs/guides/drs-data-object-guide.md | 66 | | `company_name` | `str` | Alias for `company` | `"Acme Corp"` | | CODE |
| LOW | edgar/entity/entity_facts.py | 2055 | "type": "placeholder", | CODE |
| LOW | edgar/entity/statement_builder.py | 44 | source: str = 'fact' # 'fact', 'calculated', 'canonical', 'placeholder' | CODE |
| LOW | edgar/entity/statement_builder.py | 77 | elif self.source == 'placeholder': | CODE |
| LOW | edgar/entity/statement_builder.py | 576 | source='fact' if fact else ('canonical' if not include_missing else 'placeholder'), | CODE |
| LOW | edgar/reference/data/README_PORTFOLIO_MANAGERS.md | 163 | "name": "John Doe", | CODE |
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| LOW | tools/create_reproduction.py | 67 | CODE | |
| LOW | tests/test_to_markdown.py | 69 | CODE | |
| LOW | tests/test_notes.py | 28 | CODE | |
| LOW | scripts/text_boundary/variants.py | 88 | CODE | |
| LOW | edgar/filtering.py | 71 | CODE | |
| LOW | edgar/filtering.py | 91 | CODE | |
| LOW | edgar/filtering.py | 103 | CODE | |
| LOW | edgar/_filings.py | 660 | CODE | |
| LOW | edgar/entity/constants.py | 229 | CODE | |
| LOW | edgar/entity/core.py | 396 | CODE | |
| LOW | edgar/entity/enhanced_statement.py | 1088 | CODE | |
| LOW | edgar/entity/filings.py | 230 | CODE | |
| LOW | edgar/entity/data.py | 384 | CODE | |
| LOW | edgar/sgml/filing_summary.py | 388 | CODE | |
| LOW | edgar/sgml/sgml_header.py | 74 | CODE | |
| LOW | edgar/storage/_local.py | 303 | CODE | |
| LOW | edgar/search/efts.py | 504 | CODE | |
| LOW | edgar/search/efts.py | 163 | CODE | |
| LOW | edgar/xbrl/rendering.py | 1479 | CODE | |
| LOW | edgar/xbrl/statements.py | 1039 | CODE | |
| LOW | edgar/xbrl/statements.py | 1158 | CODE | |
| LOW | edgar/xbrl/statements.py | 2052 | CODE | |
| LOW | edgar/xbrl/statements.py | 3431 | CODE | |
| LOW | edgar/xbrl/xbrl.py | 2247 | CODE | |
| LOW | edgar/xbrl/analysis/ratios.py | 94 | CODE | |
| LOW | edgar/xbrl/stitching/core.py | 949 | CODE | |
| LOW | edgar/documents/utils/toc_analyzer.py | 172 | CODE | |
| LOW | edgar/documents/extractors/text_extractor.py | 25 | CODE | |
| LOW | edgar/funds/prospectus497k.py | 165 | CODE |
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| HIGH | CONTRIBUTING.md | 209 | # AI-generated documentation | COMMENT |
| HIGH | edgar/funds/reports.py | 729 | "name": investment.name, # Added name field as requested | CODE |
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| LOW | tools/visual_inspector.py | 646 | # Example usage | COMMENT |
| LOW | tools/investigation_toolkit.py | 952 | # Example usage | COMMENT |
| LOW | tests/test_text.py | 20 | # Example usage | COMMENT |
| LOW | scripts/mcp-testing/watch-mcp-logs.sh | 8 | # Usage: | COMMENT |
| LOW | scripts/mcp-testing/configure-claude-mcp.sh | 8 | # Usage: | COMMENT |
| LOW | scripts/mcp-testing/test-mcp-tools.sh | 8 | # Usage: | COMMENT |
| LOW | scripts/mcp-testing/cleanup-mcp-test.sh | 8 | # Usage: | COMMENT |
| LOW | scripts/mcp-testing/install-local-mcp.sh | 8 | # Usage: | COMMENT |
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| LOW | …ues/regression/test_issue_504_dimensional_filtering.py | 112 | # TODO: Add test for include_dimensions=False after implementing that filtering | COMMENT |
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| LOW | tests/perf/perf_download_json_sync.py | 5 | def my_function(): | CODE |