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 summarizes scanner evidence for dgunning/edgartools, a Python project with 2,783 GitHub stars. SynthScan examined 1,134,858 lines of code across 2147 source files, recording 13629 pattern matches distributed across 24 syntactic categories. The legacy adjusted pattern signal is 17.8 (Elevated pattern signal); it is not an authorship estimate.
Use the findings to ask whether maintainers can explain intent, verify dependencies, simplify unnecessary scaffolding, and focus review effort. Risk Payload v1 adds ownership, supply-chain, over-engineering, and review-effort vectors when available. These are prompts for human verification, not probabilities, security findings, or measured maintenance costs.
Use each vector to guide manual verification of the underlying findings.
Can maintainers explain intent, assumptions, and trade-offs? 9041 finding(s).
Are imports declared and package/API names verified? 1540 finding(s).
Are wrappers, guards, and repeated structures necessary? 10136 finding(s).
Which changes need focused human review? 13629 finding(s).
This chart tracks the legacy adjusted pattern score across scan runs. Changes can reflect source changes, scan coverage, or detector/scoring versions; they do not measure AI adoption or prove that a team refactored code. Compare runs only when their scoring versions are compatible. The dashed line tracks the raw pattern-hit count.
Groups findings by configured severity weight. Severity is not a confidence estimate, security rating, or proof that a package is missing. Verify imports against the project's manifests and inspect each finding in its local design context.
This horizontal bar chart shows where configured pattern scores accumulate across directories. Treat the bars as locations to inspect, not as evidence of authorship or code quality. Use the file-level findings to decide whether a directory needs a focused ownership, dependency, complexity, or review check.
The scanner identified 13629 distinct pattern matches across 24 syntactic categories. Each entry below represents a discrete location in the source code where the engine recorded a detector match to inspect in context. Expand any category row to inspect the individual file paths, line numbers, code snippets, and the lexical context (CODE, COMMENT, or STRING) in which each match was detected.
Reading the findings table: The Severity column indicates the configured finding weight (CRITICAL / HIGH / MEDIUM / LOW). The Context column identifies whether the match occurred inside executable code, an inline comment, or a string literal — legacy comment-context matches receive a ×1.5 score weight. The ⚡ bolt icon marks clustered matches: three or more patterns within a 10-line window, each receiving an additional ×1.5 density multiplier under the legacy scoring model.
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| LOW⚡ | 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/conftest.py | 80 | def reset_local_storage_state(): | CODE |
| LOW | tests/conftest.py | 132 | def _require_vcr_plugin_if_cassettes_are_used(config, items): | CODE |
| LOW | tests/conftest.py | 184 | def cache_sec_submissions_for_session(): | CODE |
| LOW | tests/conftest.py | 250 | def pytest_collection_modifyitems(config, items): | CODE |
| LOW | tests/_offline_harness.py | 84 | def _is_saved_socketpair_caller(): | CODE |
| LOW | tests/test_tables.py | 118 | def test_table_with_empty_cells(): | STRING |
| LOW | tests/test_tables.py | 274 | def test_correct_parsing_of_table_headers(): | STRING |
| LOW | tests/test_tables.py | 281 | def test_correct_parsing_of_table_headers_operations(): | STRING |
| LOW⚡ | tests/test_htmltools.py | 62 | def test_html_sections_includes_all_tables(): | CODE |
| LOW⚡ | tests/test_htmltools.py | 72 | def test_html_sections_from_html_with_table_with_no_tbody(): | CODE |
| LOW⚡ | tests/test_htmltools.py | 80 | def test_that_items_are_ordered_in_chunked_document_for_filing(): | CODE |
| LOW | tests/test_htmltools.py | 124 | def test_filing_with_pdf_primary_document(): | CODE |
| LOW | tests/test_htmltools.py | 135 | def test_html_text_works_with_no_failures(): | CODE |
| LOW | tests/_vcr_safety.py | 42 | def install_safe_yaml_deserializer() -> bool: | CODE |
| LOW | tests/test_html_headings.py | 16 | def test_heading_style_inheritance(): | CODE |
| LOW | tests/test_html_styles.py | 69 | def test_mda_heading_detection(): | CODE |
| LOW | tests/test_html_styles.py | 82 | def test_parse_malformed_style_string(): | CODE |
| LOW | tests/test_html_tables.py | 86 | def test_processed_table_caching(): | CODE |
| LOW | tests/test_html_tables.py | 119 | def test_processed_table_headers(): | CODE |
| LOW | tests/test_markdown_page_breaks.py | 9 | def test_explicit_page_breaks_with_content(self): | CODE |
| LOW | tests/test_markdown_page_breaks.py | 44 | def test_page_div_breaks_with_content(self): | STRING |
| LOW | tests/test_markdown_page_breaks.py | 97 | def test_unilever_like_structure(self): | STRING |
| LOW | tests/test_markdown_page_breaks.py | 197 | def test_page_break_detection_with_page_divs(self): | STRING |
| LOW | tests/test_markdown_page_breaks.py | 290 | def test_brpf_page_break_detection(self): | STRING |
| LOW | tests/test_html.py | 15 | def test_parse_html_with_table(): | CODE |
| LOW | tests/test_html.py | 24 | def test_parse_html_with_table_inside_div(): | CODE |
| LOW | tests/test_html.py | 36 | def test_handle_spans_inside_divs(): | CODE |
| LOW | tests/test_html.py | 393 | def test_get_text_from_filing_with_no_body_tag(): | CODE |
| LOW | tests/test_html.py | 404 | def test_parse_document_within_just_paragraph_tags(): | CODE |
| LOW | tests/test_html.py | 420 | def test_parse_and_identify_headings(): | CODE |
| LOW | tests/test_html.py | 431 | def test_html_from_old_filings_is_none(): | CODE |
| LOW | tests/test_html.py | 438 | def test_get_html_problem_filing(): | CODE |
| LOW | tests/test_html.py | 449 | def test_parse_html_document_with_pre(): | CODE |
| LOW⚡ | tests/test_html.py | 304 | def test_read_html_document_wih_financials(): | STRING |
| LOW⚡ | tests/test_html.py | 311 | def test_render_paragraph_block_with_line_breaks(): | STRING |
| LOW⚡ | tests/test_html.py | 320 | def test_document_parses_table_inside_ix_elements(): | STRING |
| LOW | tests/test_html.py | 53 | def test_multiple_spans_in_div(): | STRING |
| LOW | tests/test_html.py | 181 | def test_parse_correct_setting_of_widths(): | STRING |
| LOW | tests/test_html.py | 193 | def test_parse_table_from_nextpoint_filing(): | STRING |
| LOW | tests/test_html.py | 200 | def test_order_of_table_in_document(): | STRING |
| LOW | tests/test_html.py | 234 | def test_parse_financial_table_with_two_header_rows(): | STRING |
| LOW | tests/test_html.py | 275 | def test_financial_table_header_displays_line_breaks(): | STRING |
| LOW | tests/test_html.py | 291 | def test_table_processor_process_table(): | STRING |
| LOW | tests/test_html.py | 334 | def test_document_markdown_headings_parsed_correctly(): | STRING |
| LOW | tests/test_html.py | 343 | def test_document_parsed_from_plain_text_returns_plain_text(): | STRING |
| LOW | tests/test_html.py | 357 | def test_document_from_filing_with_plain_text_filing_document(): | STRING |
| LOW | tests/test_internal_deprecation_silence.py | 61 | def test_user_instantiation_of_html_document_warns(): | CODE |
| 7001 more matches not shown… | ||||
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| MEDIUM | mkdocs.yml | 52 | # ========================================== | COMMENT |
| MEDIUM | mkdocs.yml | 54 | # ========================================== | COMMENT |
| MEDIUM⚡ | mkdocs.yml | 66 | # ========================================== | COMMENT |
| MEDIUM⚡ | mkdocs.yml | 68 | # ========================================== | COMMENT |
| MEDIUM⚡ | mkdocs.yml | 78 | # ========================================== | COMMENT |
| MEDIUM⚡ | mkdocs.yml | 80 | # ========================================== | COMMENT |
| MEDIUM⚡ | mkdocs.yml | 90 | # ========================================== | COMMENT |
| MEDIUM⚡ | mkdocs.yml | 92 | # ========================================== | COMMENT |
| MEDIUM | mkdocs.yml | 118 | # ========================================== | COMMENT |
| MEDIUM | mkdocs.yml | 120 | # ========================================== | COMMENT |
| MEDIUM⚡ | mkdocs.yml | 139 | # ========================================== | COMMENT |
| MEDIUM⚡ | mkdocs.yml | 141 | # ========================================== | COMMENT |
| MEDIUM⚡ | mkdocs.yml | 150 | # ========================================== | COMMENT |
| MEDIUM⚡ | mkdocs.yml | 152 | # ========================================== | COMMENT |
| MEDIUM⚡ | mkdocs.yml | 155 | # ========================================== | COMMENT |
| MEDIUM⚡ | mkdocs.yml | 157 | # ========================================== | COMMENT |
| MEDIUM⚡ | mkdocs.yml | 158 | # ========================================== | COMMENT |
| MEDIUM⚡ | mkdocs.yml | 160 | # ========================================== | COMMENT |
| MEDIUM | tests/offerings/test_registration_s4.py | 18 | # --------------------------------------------------------------------------- | COMMENT |
| MEDIUM | tests/offerings/test_registration_s4.py | 20 | # --------------------------------------------------------------------------- | COMMENT |
| MEDIUM⚡ | tests/offerings/test_registration_s4.py | 34 | # --------------------------------------------------------------------------- | COMMENT |
| MEDIUM⚡ | tests/offerings/test_registration_s4.py | 36 | # --------------------------------------------------------------------------- | COMMENT |
| MEDIUM⚡ | tests/offerings/test_registration_s4.py | 78 | # --------------------------------------------------------------------------- | COMMENT |
| MEDIUM⚡ | tests/offerings/test_registration_s4.py | 80 | # --------------------------------------------------------------------------- | COMMENT |
| MEDIUM⚡ | tests/offerings/test_registration_s4.py | 130 | # --------------------------------------------------------------------------- | COMMENT |
| MEDIUM⚡ | tests/offerings/test_registration_s4.py | 132 | # --------------------------------------------------------------------------- | COMMENT |
| MEDIUM | tests/offerings/test_registration_s4.py | 195 | # --------------------------------------------------------------------------- | COMMENT |
| MEDIUM | tests/offerings/test_registration_s4.py | 197 | # --------------------------------------------------------------------------- | COMMENT |
| MEDIUM⚡ | tests/offerings/test_registration_s1.py | 62 | # --------------------------------------------------------------------------- | COMMENT |
| MEDIUM⚡ | tests/offerings/test_registration_s1.py | 64 | # --------------------------------------------------------------------------- | COMMENT |
| MEDIUM⚡ | tests/offerings/test_registration_s1.py | 103 | # --------------------------------------------------------------------------- | COMMENT |
| MEDIUM⚡ | tests/offerings/test_registration_s1.py | 105 | # --------------------------------------------------------------------------- | COMMENT |
| MEDIUM⚡ | tests/offerings/test_registration_s1.py | 114 | # --------------------------------------------------------------------------- | COMMENT |
| MEDIUM⚡ | tests/offerings/test_registration_s1.py | 116 | # --------------------------------------------------------------------------- | COMMENT |
| MEDIUM | tests/offerings/test_registration_s1.py | 13 | # --------------------------------------------------------------------------- | COMMENT |
| MEDIUM | tests/offerings/test_registration_s1.py | 15 | # --------------------------------------------------------------------------- | COMMENT |
| MEDIUM | tests/offerings/test_registration_s1.py | 317 | # --------------------------------------------------------------------------- | COMMENT |
| MEDIUM | tests/offerings/test_registration_s1.py | 319 | # --------------------------------------------------------------------------- | COMMENT |
| MEDIUM | tests/offerings/test_drs.py | 13 | # --------------------------------------------------------------------------- | COMMENT |
| MEDIUM | tests/offerings/test_drs.py | 15 | # --------------------------------------------------------------------------- | COMMENT |
| MEDIUM | tests/offerings/test_drs.py | 84 | # --------------------------------------------------------------------------- | COMMENT |
| MEDIUM | tests/offerings/test_drs.py | 86 | # --------------------------------------------------------------------------- | COMMENT |
| MEDIUM | tests/offerings/test_drs.py | 103 | # --------------------------------------------------------------------------- | COMMENT |
| MEDIUM | tests/offerings/test_drs.py | 105 | # --------------------------------------------------------------------------- | COMMENT |
| MEDIUM⚡ | tests/offerings/test_offering_consumers.py | 29 | # --------------------------------------------------------------------------- | COMMENT |
| MEDIUM⚡ | tests/offerings/test_offering_consumers.py | 31 | # --------------------------------------------------------------------------- | COMMENT |
| MEDIUM⚡ | tests/offerings/test_offering_consumers.py | 41 | # --------------------------------------------------------------------------- | COMMENT |
| MEDIUM⚡ | tests/offerings/test_offering_consumers.py | 43 | # --------------------------------------------------------------------------- | COMMENT |
| MEDIUM⚡ | tests/offerings/test_offering_consumers.py | 99 | # --------------------------------------------------------------------------- | COMMENT |
| MEDIUM⚡ | tests/offerings/test_offering_consumers.py | 101 | # --------------------------------------------------------------------------- | COMMENT |
| MEDIUM⚡ | tests/offerings/test_offering_consumers.py | 161 | # --------------------------------------------------------------------------- | COMMENT |
| MEDIUM⚡ | tests/offerings/test_offering_consumers.py | 163 | # --------------------------------------------------------------------------- | COMMENT |
| MEDIUM⚡ | tests/offerings/test_offering_consumers.py | 194 | # --------------------------------------------------------------------------- | COMMENT |
| MEDIUM⚡ | tests/offerings/test_offering_consumers.py | 196 | # --------------------------------------------------------------------------- | COMMENT |
| MEDIUM⚡ | tests/offerings/test_offering_consumers.py | 239 | # --------------------------------------------------------------------------- | COMMENT |
| MEDIUM⚡ | tests/offerings/test_offering_consumers.py | 241 | # --------------------------------------------------------------------------- | COMMENT |
| MEDIUM | tests/offerings/eval/run_eval.py | 42 | # -------------------------------------------------------------------------- | COMMENT |
| MEDIUM | tests/offerings/eval/run_eval.py | 46 | # -------------------------------------------------------------------------- | COMMENT |
| MEDIUM | tests/offerings/eval/run_eval.py | 69 | # -------------------------------------------------------------------------- | COMMENT |
| MEDIUM | tests/offerings/eval/run_eval.py | 73 | # -------------------------------------------------------------------------- | COMMENT |
| 1508 more matches not shown… | ||||
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| HIGH | tools/investigation_toolkit.py | 597 | except: | CODE |
| HIGH | tools/investigation_toolkit.py | 78 | except: | CODE |
| HIGH | tools/quick_debug.py | 101 | except: | CODE |
| HIGH | tests/conftest.py | 59 | except Exception: | CODE |
| HIGH | tests/conftest.py | 72 | except Exception: | CODE |
| HIGH | tests/core/test_feat005_statement_types.py | 312 | except ValidationError: | CODE |
| HIGH | tests/core/test_feat004_enhanced_validation.py | 235 | except ValidationError: | CODE |
| HIGH | tests/core/test_feat004_enhanced_validation.py | 244 | except ValidationError: | CODE |
| HIGH | tests/core/test_feat004_enhanced_validation.py | 278 | except (ValueError, ValidationError): | CODE |
| HIGH | tests/entity/test_unit_handling.py | 449 | except Exception as e: | CODE |
| HIGH | tests/entity/test_entity_core.py | 279 | except (ValueError, NoCompanyFactsFound): | CODE |
| HIGH | tests/storage/test_filesystem.py | 272 | except (ValueError, ImportError): | CODE |
| HIGH | tests/xbrl/test_xbrl_statements.py | 570 | except Exception: | CODE |
| HIGH | tests/xbrl/test_xbrl_statements.py | 495 | except Exception: | CODE |
| HIGH | tests/xbrl/test_xbrl_statements.py | 540 | except Exception: | CODE |
| HIGH | tests/xbrl/test_xbrl_unit_pointintime.py | 480 | except Exception: | CODE |
| HIGH | tests/abs/test_ten_d.py | 80 | except Exception: | CODE |
| HIGH | tests/evaluation/_test_toc_evaluation.py | 179 | except Exception: | CODE |
| HIGH | …ts/issues/regression/test_to_context_hint_integrity.py | 130 | except (ValueError, TypeError): | CODE |
| HIGH | …issues/regression/test_chunked_document_deprecation.py | 109 | except Exception: | CODE |
| HIGH | …/regression/test_edgartools_3h3q_member_on_two_axes.py | 108 | except Exception: # noqa: S110 - render failures are not this test's subject | CODE |
| HIGH | …/issues/regression/test_issue_iirl_cash_flow_naming.py | 141 | except Exception: | CODE |
| HIGH | …/issues/regression/test_issue_iirl_cash_flow_naming.py | 118 | except Exception: | CODE |
| HIGH | docs/examples/feat004_demo_enhanced_validation.py | 216 | except ValidationError: | CODE |
| HIGH | scripts/images.py | 233 | except Exception: | CODE |
| HIGH | scripts/diagnose_ssl.py | 132 | except Exception: | CODE |
| HIGH | scripts/diagnose_ssl.py | 140 | except Exception: | CODE |
| HIGH | scripts/diagnose_ssl.py | 232 | except Exception: | CODE |
| HIGH | edgar/httpclient.py | 16 | except (locale.Error, ValueError): | CODE |
| HIGH | edgar/httpclient.py | 421 | except ImportError: | CODE |
| HIGH | edgar/httpclient.py | 480 | except (PermissionError, OSError): | CODE |
| HIGH | edgar/earnings.py | 412 | except (OSError, json.JSONDecodeError): | CODE |
| HIGH | edgar/earnings.py | 1902 | except (ValueError, TypeError): | CODE |
| HIGH | edgar/earnings.py | 731 | except (ValueError, TypeError): | CODE |
| HIGH | edgar/financials.py | 1091 | except Exception: | CODE |
| HIGH | edgar/filesystem.py | 869 | except FileNotFoundError: | CODE |
| HIGH | edgar/current_filings.py | 312 | except ValueError: | CODE |
| HIGH | edgar/__init__.py | 140 | except Exception: | CODE |
| HIGH | edgar/httprequests.py | 275 | except ImportError: | CODE |
| HIGH | edgar/httprequests.py | 746 | except ValueError: | CODE |
| HIGH | edgar/httprequests.py | 757 | except (ValueError, TypeError): | CODE |
| HIGH | edgar/httprequests.py | 260 | except (AttributeError, TypeError): | CODE |
| HIGH | edgar/markdown.py | 943 | except ValueError: | CODE |
| HIGH | edgar/_filings.py | 998 | except Exception: | CODE |
| HIGH | edgar/_filings.py | 2491 | except Exception: | CODE |
| HIGH | edgar/_filings.py | 1019 | except Exception: | CODE |
| HIGH | edgar/_filings.py | 2519 | except Exception: | CODE |
| HIGH | edgar/offerings/prospectus/registration_s1.py | 408 | except Exception: | CODE |
| HIGH | edgar/offerings/prospectus/_424b_classifier.py | 351 | except Exception: | CODE |
| HIGH | edgar/offerings/prospectus/drs.py | 166 | except Exception: | CODE |
| HIGH | edgar/offerings/crowdfunding/campaign.py | 381 | except Exception: | CODE |
| HIGH | edgar/beneficial_ownership/amendments.py | 300 | except Exception: | CODE |
| HIGH | edgar/beneficial_ownership/schedule13.py | 203 | except Exception: | CODE |
| HIGH | edgar/proxy/contest.py | 126 | except Exception: | CODE |
| HIGH | edgar/proxy/contest.py | 67 | except Exception: | CODE |
| HIGH | edgar/proxy/contest.py | 101 | except Exception: | CODE |
| HIGH | edgar/proxy/core.py | 929 | except Exception: | CODE |
| HIGH | edgar/proxy/core.py | 945 | except Exception: | CODE |
| HIGH | edgar/proxy/core.py | 960 | except Exception: | CODE |
| HIGH | edgar/proxy/core.py | 972 | except Exception: | CODE |
| 206 more matches not shown… | ||||
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| LOW | tools/visual_inspector.py | 25 | CODE | |
| LOW | tests/_offline_harness.py | 47 | CODE | |
| LOW | tests/test_tables.py | 9 | CODE | |
| LOW | tests/test_htmltools.py | 9 | CODE | |
| LOW | tests/_vcr_safety.py | 24 | CODE | |
| LOW | tests/_vcr_safety.py | 62 | CODE | |
| LOW | tests/test_html_headings.py | 1 | CODE | |
| LOW | tests/test_html_tables.py | 1 | CODE | |
| LOW | tests/test_html_tables.py | 2 | CODE | |
| LOW | tests/test_html.py | 2 | CODE | |
| LOW | tests/_offline_filings.py | 31 | CODE | |
| LOW | tests/test_filing_html.py | 1 | CODE | |
| LOW | tests/test_filing_html.py | 2 | CODE | |
| LOW | tests/test_filing_html.py | 5 | CODE | |
| LOW | tests/_vcr_compat.py | 26 | CODE | |
| LOW | tests/_vcr_compat.py | 74 | CODE | |
| LOW | tests/test_documents.py | 11 | CODE | |
| LOW | tests/research/check_instance_value_consistency.py | 13 | CODE | |
| LOW | tests/research/check_instance_value_consistency.py | 15 | CODE | |
| LOW | tests/offerings/test_424b_xbrl.py | 13 | CODE | |
| LOW | tests/offerings/test_formc_offerings.py | 6 | CODE | |
| LOW | tests/offerings/test_offering_consumers.py | 8 | CODE | |
| LOW | tests/offerings/test_offering_consumers.py | 12 | CODE | |
| LOW | tests/offerings/test_registration_s3.py | 3 | CODE | |
| LOW | tests/offerings/eval/run_eval.py | 30 | CODE | |
| LOW | tests/offerings/eval/tier_c_judge.py | 40 | CODE | |
| LOW | tests/offerings/eval/build_corpus.py | 16 | CODE | |
| LOW | tests/core/test_filing_staleness_warnings.py | 10 | CODE | |
| LOW | tests/core/test_filer_category.py | 4 | CODE | |
| LOW | tests/core/test_richtools.py | 2 | CODE | |
| LOW | tests/core/test_form144.py | 3 | CODE | |
| LOW | tests/core/test_earnings.py | 10 | CODE | |
| LOW | tests/core/test_httprequests.py | 18 | CODE | |
| LOW | tests/core/test_read_filing_indexes.py | 1 | CODE | |
| LOW | tests/core/test_read_filing_indexes.py | 3 | CODE | |
| LOW | tests/core/test_paths.py | 4 | CODE | |
| LOW | tests/core/test_multi_entity_filings.py | 4 | CODE | |
| LOW | tests/core/test_attachments.py | 4 | CODE | |
| LOW | tests/core/test_attachments.py | 5 | CODE | |
| LOW | tests/core/test_attachments.py | 9 | CODE | |
| LOW | tests/core/test_filing_reports.py | 1 | CODE | |
| LOW | tests/core/test_has_html_content_bug.py | 1 | CODE | |
| LOW | tests/core/test_paper_filings.py | 1 | CODE | |
| LOW | tests/core/test_headers.py | 5 | CODE | |
| LOW | tests/core/test_headers.py | 6 | CODE | |
| LOW | tests/proxy/test_proxy_sections.py | 11 | CODE | |
| LOW | tests/proxy/test_proxy.py | 18 | CODE | |
| LOW | tests/company_reports/test_eightk_improvements.py | 10 | CODE | |
| LOW | tests/company_reports/test_company_report_reports.py | 5 | CODE | |
| LOW | tests/company_reports/test_auditor.py | 6 | CODE | |
| LOW | tests/company_reports/test_notes.py | 12 | CODE | |
| LOW | tests/company_reports/test_notes.py | 13 | CODE | |
| LOW | tests/entity/test_unit_handling.py | 9 | CODE | |
| LOW | tests/entity/test_unit_handling.py | 19 | CODE | |
| LOW | tests/entity/test_company.py | 2 | CODE | |
| LOW | tests/entity/test_company.py | 5 | CODE | |
| LOW | tests/entity/test_company.py | 12 | CODE | |
| LOW | tests/entity/test_company.py | 14 | CODE | |
| LOW | tests/entity/test_entity.py | 3 | CODE | |
| LOW | tests/entity/test_unit_compatibility_modes.py | 10 | CODE | |
| 1443 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/conftest.py | 59 | except Exception: | CODE |
| LOW | tests/conftest.py | 72 | except Exception: | CODE |
| LOW | tests/_offline_harness.py | 147 | except Exception as exc: | CODE |
| LOW | tests/research/check_instance_value_consistency.py | 87 | except Exception as e: | CODE |
| LOW | tests/research/check_instance_value_consistency.py | 268 | except Exception as e: | CODE |
| LOW | tests/offerings/eval/run_eval.py | 228 | except Exception as ex: # noqa: BLE001 — the harness must survive any filing | CODE |
| LOW | tests/offerings/eval/tier_c_judge.py | 292 | except Exception as ex: # noqa: BLE001 — evidence is best-effort | CODE |
| LOW⚡ | tests/core/test_markdown_characterization.py | 354 | except Exception as exc: # noqa: BLE001 -- the exception IS the behaviour | CODE |
| LOW | tests/core/test_feat005_statement_types.py | 348 | except Exception as e: | CODE |
| LOW | tests/core/test_feat004_enhanced_validation.py | 362 | except Exception as e: | CODE |
| LOW | tests/core/test_has_html_content_bug.py | 137 | except Exception as e: | CODE |
| 841 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_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/beneficial_ownership/test_beneficial_ownership.py | 654 | # Create a mock Schedule13D with reporting persons where some have excluded shares | COMMENT |
| MEDIUM | tests/core/test_richtools.py | 11 | # Create a test table | COMMENT |
| MEDIUM⚡ | tests/core/test_httprequests.py | 536 | # Create a truncated gzip file that will cause EOFError | COMMENT |
| MEDIUM | tests/core/test_httprequests.py | 938 | # Create a mock client to verify it gets closed | COMMENT |
| MEDIUM | tests/proxy/test_proxy.py | 296 | # Create a mock amendment filing (if available) | COMMENT |
| MEDIUM | tests/entity/test_entityfacts_stability.py | 193 | # Create an income statement fact | COMMENT |
| MEDIUM⚡ | tests/entity/test_periodtype_implementation.py | 253 | # Create a company instance (won't fetch data in this test) | COMMENT |
| MEDIUM | tests/entity/test_entity_facts.py | 1384 | # Create a mock statement with abstract header | COMMENT |
| MEDIUM | tests/entity/test_bug_408_annual_periods.py | 95 | # Create a simple Fact-like object for testing | COMMENT |
| MEDIUM | tests/standardization/test_synonym_groups.py | 359 | # Create a JSON file | COMMENT |
| MEDIUM | tests/storage/test_thirteenf.py | 281 | # Create a mock filing for Berkshire Hathaway (known company) | COMMENT |
| MEDIUM | tests/storage/test_thirteenf.py | 436 | # Create a mock signature with test title | COMMENT |
| MEDIUM | tests/storage/test_storage_management.py | 238 | # Create a temporary _pcache directory with a test file | COMMENT |
| MEDIUM | tests/storage/test_storage_management.py | 293 | # Create a test file | COMMENT |
| MEDIUM | tests/storage/test_storage_management.py | 346 | # Create an uncompressed test file | COMMENT |
| MEDIUM | tests/storage/test_filesystem.py | 110 | # Create a gzip file directly | COMMENT |
| MEDIUM⚡ | tests/storage/test_datamule_adapter.py | 575 | # Create a Filing that matches the real tar | COMMENT |
| MEDIUM | tests/xbrl/test_xbrl_facts.py | 129 | # Create a mock FactsView | COMMENT |
| MEDIUM⚡ | tests/xbrl/test_xbrl_facts.py | 151 | # Create a query using by_label to search for original label | COMMENT |
| MEDIUM⚡ | tests/xbrl/test_xbrl_facts.py | 160 | # Create a query using by_label to search for standardized label | COMMENT |
| MEDIUM⚡ | tests/xbrl/test_xbrl_facts.py | 169 | # Create a query using by_label with regex pattern matching | COMMENT |
| MEDIUM | tests/xbrl/test_xbrl_facts.py | 417 | # Create a mock FactsView for testing | COMMENT |
| MEDIUM | tests/xbrl/test_xbrl_statement_error_handling.py | 11 | # Create a mock XBRL object that will raise an exception | COMMENT |
| MEDIUM | tests/xbrl/test_xbrl_statement_error_handling.py | 44 | # Create a mock XBRL object that will raise an exception | COMMENT |
| MEDIUM | tests/xbrl/test_xbrl_statement_error_handling.py | 77 | # Create a mock XBRL object with missing attributes | COMMENT |
| MEDIUM | tests/xbrl/test_xbrl_statement_error_handling.py | 109 | # Create a mock XBRL object that succeeds | COMMENT |
| MEDIUM⚡ | tests/xbrl/test_xbrl_rendering.py | 91 | # Create a quarterly period (90 days) | COMMENT |
| MEDIUM⚡ | tests/xbrl/test_xbrl_statements.py | 395 | # Create a statement with a canonical type | COMMENT |
| MEDIUM | tests/xbrl/test_xbrl_statement_resolver.py | 80 | # Create a custom concept pattern entry | COMMENT |
| MEDIUM⚡ | tests/xbrl/test_xbrl_statement_resolver.py | 137 | # Create a fake statement with a custom namespace to test pattern matching | COMMENT |
| MEDIUM | tests/xbrl/test_xbrl_stitching.py | 347 | # Create a stitcher | COMMENT |
| MEDIUM | tests/xbrl/test_xbrl_stitching.py | 421 | # Create a stitcher | COMMENT |
| MEDIUM | tests/ai/test_ai_text_methods.py | 169 | # Create a long string | COMMENT |
| MEDIUM⚡ | tests/ai/test_constitution_diagnostics.py | 673 | # Create a minimal report with one failure | COMMENT |
| MEDIUM⚡ | tests/thirteenf/test_holdings_aggregation.py | 177 | # Create a mock ThirteenF with no infotable | COMMENT |
| MEDIUM | tests/documents/test_table_max_col_width.py | 71 | # Create a simple mock table | COMMENT |
| MEDIUM | tests/documents/test_html_parser_regressions.py | 714 | # Create a document just over the old streaming threshold | COMMENT |
| MEDIUM | tests/documents/test_html_parser_regressions.py | 990 | # Create a document that triggers streaming | COMMENT |
| MEDIUM | tests/funds/test_fund_wrapper.py | 35 | # Create a Fund from a ticker | COMMENT |
| MEDIUM | tests/funds/test_fund_wrapper.py | 59 | # Create a Fund from a series ID | COMMENT |
| MEDIUM | tests/funds/test_fund_wrapper.py | 78 | # Create a Fund from a company CIK | 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 | …es/regression/test_issue_631_save_load_completeness.py | 144 | # Create a mock attachment with None content | COMMENT |
| MEDIUM | tests/issues/regression/test_filing_text_baseline.py | 289 | # 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 | 117 | # Create a mock XML attachment | COMMENT |
| MEDIUM | …gression/test_issue_488_footnote_undefined_variable.py | 26 | # Create a minimal XBRL instance document without footnoteLink elements | COMMENT |
| MEDIUM | …gression/test_issue_488_footnote_undefined_variable.py | 44 | # Create a parser instance with minimal required arguments | STRING |
| MEDIUM | …ues/regression/test_issue_574_structured_dimensions.py | 23 | # Create a mock item with dimension_metadata | COMMENT |
| MEDIUM⚡ | …s/issues/regression/test_issue_457_locale_cache_fix.py | 53 | # Create a temporary cache directory | COMMENT |
| MEDIUM | …s/issues/regression/test_issue_457_locale_cache_fix.py | 81 | # Create a temporary cache directory with marker file | COMMENT |
| MEDIUM | …s/issues/regression/test_issue_457_locale_cache_fix.py | 106 | # Create a path for non-existent cache directory | COMMENT |
| MEDIUM⚡ | …s/issues/regression/test_issue_457_locale_cache_fix.py | 125 | # Create a read-only cache directory to simulate permission error | COMMENT |
| MEDIUM⚡ | …s/issues/regression/test_issue_457_locale_cache_fix.py | 129 | # Create a cache file | COMMENT |
| 126 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/_offline_harness.py | 152 | CODE | |
| LOW | tests/research/check_instance_value_consistency.py | 44 | CODE | |
| LOW | tests/offerings/eval/run_eval.py | 215 | CODE | |
| LOW | tests/core/test_httprequests.py | 117 | CODE | |
| LOW | tests/core/test_filing.py | 639 | CODE | |
| LOW | tests/entity/test_entity_statements.py | 99 | CODE | |
| LOW | tests/meta/test_assertion_strength_ratchet.py | 163 | CODE | |
| LOW | tests/xbrl/test_xbrl_facts.py | 315 | CODE | |
| LOW | tests/xbrl/test_xbrl_statements.py | 470 | CODE | |
| LOW | tests/xbrl/test_xbrl_statements.py | 511 | CODE | |
| LOW | tests/xbrl/test_xbrl_statements.py | 636 | CODE | |
| LOW | tests/xbrl/test_xbrl_footnotes.py | 10 | CODE | |
| LOW | tests/xbrl/test_period_selector.py | 503 | CODE | |
| LOW | tests/xbrl/test_period_selector.py | 544 | CODE | |
| LOW | tests/xbrl/test_period_selector.py | 698 | CODE | |
| LOW | tests/evaluation/_test_toc_evaluation.py | 119 | CODE | |
| LOW | tests/evaluation/_test_toc_evaluation.py | 267 | CODE | |
| LOW | tests/display/test_to_context.py | 520 | CODE | |
| LOW | tests/funds/test_fundreports_derivatives.py | 127 | CODE | |
| LOW | tests/funds/test_fundreports_derivatives.py | 299 | CODE | |
| LOW | tests/perf/benchmark_html_parser.py | 209 | CODE | |
| LOW | …ts/issues/regression/test_data_sec_gov_cache_domain.py | 68 | CODE | |
| LOW | …egression/test_issue_506_income_statement_selection.py | 65 | CODE | |
| LOW | tests/issues/regression/test_exceptions_tree.py | 228 | CODE | |
| LOW | tests/issues/regression/test_issue_439_order_parsing.py | 121 | CODE | |
| LOW | …ts/issues/regression/test_to_context_hint_integrity.py | 68 | CODE | |
| LOW | …ts/issues/regression/test_to_context_hint_integrity.py | 177 | CODE | |
| LOW | …ts/issues/regression/test_to_context_hint_integrity.py | 194 | CODE | |
| LOW | …ssues/regression/test_issue_1488_mcp_prompt_metrics.py | 262 | CODE | |
| LOW | …es/regression/test_issue_633_earnings_data_accuracy.py | 83 | CODE | |
| LOW | tests/issues/regression/test_51xd_period_identity.py | 42 | CODE | |
| LOW | tests/issues/regression/test_51xd_period_identity.py | 119 | CODE | |
| LOW | tests/issues/regression/test_uetp_divide_units.py | 81 | CODE | |
| LOW | …s/issues/regression/test_issue_440_currency_display.py | 21 | CODE | |
| LOW | …s/issues/regression/test_issue_440_currency_display.py | 78 | CODE | |
| LOW | …/regression/test_edgartools_3h3q_member_on_two_axes.py | 88 | CODE | |
| LOW | tests/issues/regression/test_raw_valueerror_ratchet.py | 39 | CODE | |
| LOW | …ues/regression/test_j7iz_merge_keeps_concepts_apart.py | 120 | CODE | |
| LOW | …/issues/regression/test_vaau_presentation_sign_gate.py | 176 | CODE | |
| LOW | …s/regression/test_07lk101_no_xbrl_hollow_financials.py | 112 | CODE | |
| LOW | …/issues/regression/test_issue_iirl_cash_flow_naming.py | 208 | CODE | |
| 640 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/conftest.py | 506 | # Check if test is in any regression folder (supports nested paths) | COMMENT |
| LOW | tests/core/test_form144.py | 280 | # Check if is_10b5_1_plan is a boolean | COMMENT |
| LOW⚡ | tests/entity/test_unit_handling.py | 459 | # Check if any facts have scale factors | COMMENT |
| LOW⚡ | tests/xbrl/test_xbrl_statement_resolver.py | 140 | # Check if the pattern matches our fake concept | COMMENT |
| LOW | tests/documents/test_html_parser_regressions.py | 902 | # Check if Part I sections exist | 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 | …ues/regression/test_issue_463_value_transformations.py | 239 | # Check if balance is available in facts | COMMENT |
| LOW | …ues/regression/test_issue_504_dimensional_filtering.py | 70 | # Check if value matches (within $1000) | COMMENT |
| LOW | tests/issues/regression/test_issue_513_data_accuracy.py | 188 | # Check if items have dimensional differences | COMMENT |
| LOW | scripts/debug_find_statement_518.py | 32 | # Check if found_role is in presentation_trees | COMMENT |
| LOW | scripts/reproduce_issue_518.py | 57 | # Check if these are cash flow concepts | COMMENT |
| LOW | scripts/test_monkey_patch_applied.py | 23 | # Check if it's the patched version | COMMENT |
| LOW | scripts/debug_henryschein_sections.py | 35 | # Check if 'business' or 'Item 1' is in sections | COMMENT |
| LOW | scripts/debug_document_period_end_date.py | 27 | # Check if DocumentPeriodEndDate exists in raw XBRL | COMMENT |
| LOW | scripts/capture_rich_to_png.py | 50 | # Set viewport to capture full content | COMMENT |
| LOW | scripts/capture_rich_to_png.py | 69 | # Set viewport to content size | COMMENT |
| LOW | scripts/test_13f_shares_dtype.py | 30 | # Check if it's int64 | COMMENT |
| LOW | scripts/debug_issue_107.py | 49 | # Check if sections have content | COMMENT |
| LOW | scripts/test_ssl_verify_debug.py | 13 | # Check if the method is patched | COMMENT |
| LOW | scripts/debug_henryschein_crossref.py | 19 | # Check if Cross Reference Index is detected | COMMENT |
| LOW | scripts/harness/cli.py | 166 | # Display results summary | COMMENT |
| LOW | scripts/manual/check_problematic_html.py | 47 | # Check if content was extracted | COMMENT |
| LOW | scripts/manual/check_problematic_html.py | 186 | # Check if XBRL data was preserved | COMMENT |
| LOW | scripts/manual/compare_parsers.py | 112 | # Check if it's a company shortcut | COMMENT |
| LOW | scripts/manual/compare_parsers.py | 116 | # Check if it's a filing type | COMMENT |
| LOW | scripts/manual/check_parser_comparison.py | 67 | # Read file | COMMENT |
| LOW | scripts/manual/compare_section_detection.py | 271 | # Check if we already have HTML | COMMENT |
| LOW | scripts/manual/check_html_parser_real_files.py | 92 | # Read file | COMMENT |
| LOW | scripts/manual/check_html_parser_real_files.py | 369 | # Check if data directory exists | COMMENT |
| LOW | scripts/manual/check_html_files_simple.py | 49 | # Read file | COMMENT |
| LOW | scripts/mcp-testing/watch-mcp-logs.sh | 62 | # Check if log directory exists | COMMENT |
| LOW | scripts/mcp-testing/configure-claude-mcp.sh | 34 | # Check if Python path exists | COMMENT |
| LOW | scripts/mcp-testing/test-mcp-tools.sh | 30 | # Check if Python path exists | COMMENT |
| LOW | edgar/earnings.py | 1607 | # Check if this row contains dates but no numeric values | COMMENT |
| LOW | edgar/earnings.py | 1637 | # Check if next row contains only years (4-digit numbers starting with 19 or 20) | COMMENT |
| LOW | edgar/earnings.py | 1791 | # Check if it looks like a date (contains year pattern) | COMMENT |
| LOW | edgar/earnings.py | 1852 | # Check if this is a currency symbol that should be merged | COMMENT |
| LOW⚡ | edgar/filesystem.py | 932 | # Check if file already exists to avoid re-uploading | COMMENT |
| LOW | edgar/core.py | 345 | # Check if we're in an IPython environment | COMMENT |
| LOW | edgar/httprequests.py | 114 | # Check if any httpx/httpcore exception wraps an SSL error | COMMENT |
| LOW | edgar/httprequests.py | 244 | # Check if client exists and try to get its actual setting | COMMENT |
| LOW | edgar/httprequests.py | 1207 | # Check if the content is gzip-compressed | COMMENT |
| LOW | edgar/httprequests.py | 1256 | # Check if the content is gzip-compressed | COMMENT |
| LOW | edgar/attachments.py | 224 | # Check if it's an XBRL exhibit (EX-101.*) | COMMENT |
| LOW | edgar/attachments.py | 228 | # Check if it's a regular exhibit (starts with EX-) | COMMENT |
| LOW | edgar/attachments.py | 504 | # Check if this is a report | COMMENT |
| LOW | edgar/attachments.py | 527 | # Check if this is a report | COMMENT |
| LOW | edgar/attachments.py | 569 | # Check if content has HTML structure | COMMENT |
| LOW | edgar/attachments.py | 1086 | # Add the attachment to the list | COMMENT |
| LOW⚡ | edgar/markdown.py | 500 | # Check if it's actual financial data (has $ and years) | COMMENT |
| LOW⚡ | edgar/markdown.py | 1331 | # Check if numeric | COMMENT |
| LOW | edgar/markdown.py | 305 | # Check if next text is "Table of Contents" | COMMENT |
| LOW | edgar/markdown.py | 424 | # Check if this div contains a single span as subsection | COMMENT |
| LOW | edgar/markdown.py | 431 | # Check if span text matches the div text (meaning it's the only content) | COMMENT |
| LOW | edgar/markdown.py | 939 | # Check if it's a pure number (possibly with decimal) | COMMENT |
| LOW | edgar/markdown.py | 946 | # Check if it's mostly digits (more than 50% digits) | COMMENT |
| 286 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 | 490 | Enhanced parameter validation with intelligent error messages. Args: value: The parameter value to val | STRING |
| HIGH | edgar/enums.py | 574 | Validate and normalize form type parameter using enhanced validation. Args: form: Form type as FormTyp | STRING |
| HIGH | edgar/enums.py | 597 | Validate and normalize period type parameter using enhanced validation. Args: period: Period type as P | STRING |
| HIGH | edgar/enums.py | 620 | 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 | 844 | Sends a GET request with retry functionality and identity handling. Args: url (str): The URL to send t | STRING |
| HIGH | edgar/httprequests.py | 912 | Sends an asynchronous GET request with retry functionality and identity handling. Args: url (str): The | STRING |
| HIGH | edgar/httprequests.py | 953 | Sends a streaming GET request with retry functionality and identity handling. Args: url (str): The URL | STRING |
| HIGH | edgar/httprequests.py | 1000 | Sends a POST request with retry functionality and identity handling. Args: url (str): The URL to send | STRING |
| HIGH | edgar/httprequests.py | 1043 | Sends an asynchronous POST request with retry functionality and identity handling. Args: url (str): Th | STRING |
| HIGH | edgar/httprequests.py | 1114 | Download and decompress a gzip file with retry logic. This handles cases where SEC serves corrupted gzip files | STRING |
| HIGH | edgar/httprequests.py | 1479 | 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 | 2186 | Grep for exact text matches across all filing documents. Like `grep -ri` on a directory — searches the | STRING |
| HIGH | edgar/dates.py | 44 | 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 | 271 | Parse Schedule 13D XML and return dict of all fields. Args: xml: XML content as string | STRING |
| HIGH | edgar/beneficial_ownership/schedule13.py | 482 | Create Schedule13D instance from a Filing object. Args: filing: Filing object with form 'S | STRING |
| HIGH | edgar/beneficial_ownership/schedule13.py | 788 | Parse Schedule 13G XML and return dict of all fields. Args: xml: XML content as string | STRING |
| HIGH | edgar/beneficial_ownership/schedule13.py | 1016 | 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 | 143 | Grep for exact text matches across the filing. Delegates to the underlying Filing.grep(). Case-insensi | STRING |
| HIGH | edgar/company_reports/_base.py | 288 | 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 | 74 | 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 | 270 | Filter by date range. Args: start: Start date (inclusive). Can be a date object or string | STRING |
| HIGH | edgar/entity/entity_facts.py | 108 | Get company facts for a given CIK. Args: cik: The company CIK Returns: CompanyFacts: The | STRING |
| HIGH | edgar/entity/core.py | 1082 | Get balance sheet data for this company. Args: periods: Number of periods to retrieve (def | STRING |
| HIGH | edgar/entity/core.py | 1290 | Calculate Trailing Twelve Months value for a concept. Args: concept: XBRL concept name (e.g., 'Reve | STRING |
| HIGH | edgar/entity/core.py | 1317 | Get Trailing Twelve Months revenue. Tries common revenue concepts in order of preference. Args: | STRING |
| HIGH | edgar/entity/core.py | 1336 | 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 | 1175 | 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 | 1246 | Validate that period_end matches the expected month for the fiscal_period. This filters out comparative period | STRING |
| HIGH | edgar/entity/enhanced_statement.py | 1362 | 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 | 42 | Read content from a URL, file path, or EdgarPath, yielding lines as strings. Automatically handles gzip-compres | STRING |
| HIGH | edgar/sgml/sgml_common.py | 98 | 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 | 126 | Stream SGML documents from either a URL or file path, yielding parsed documents. Args: source: Either | STRING |
| HIGH | edgar/sgml/sgml_common.py | 173 | Parses the raw submission text and returns the filing header along with a dictionary mapping document sequence | STRING |
| HIGH | edgar/sgml/sgml_common.py | 472 | Create FilingSGML instance from either a URL or file path. Parses both header and documents. I | STRING |
| HIGH | edgar/sgml/sgml_common.py | 511 | Create FilingSGML instance from either full text submission. Parses both header and documents. | STRING |
| HIGH | edgar/storage/_local.py | 74 | Enable or disable local storage, optionally setting the storage path. This function supports multiple calling | STRING |
| HIGH | edgar/storage/_local.py | 586 | Reads an SEC EDGAR file listing directory and returns file information as a DataFrame. Args: url (str) | STRING |
| HIGH | edgar/storage/_local.py | 687 | Reads the SEC EDGAR filing feed directory and returns file information as a DataFrame. Args: url (str) | STRING |
| HIGH | edgar/storage/_local.py | 751 | Compress a filing file using gzip and optionally delete the original. Args: file_path: Path to the fil | STRING |
| HIGH | edgar/storage/_local.py | 790 | 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 | 495 | Filter facts by dimension with flexible matching. This method provides intelligent matching for dimens | STRING |
| HIGH | edgar/xbrl/current_period.py | 430 | Internal method to get statement data as DataFrame for current period. Args: statement_typ | STRING |
| HIGH | edgar/xbrl/current_period.py | 569 | Internal method to get statement as a Statement object for current period. Args: statement | STRING |
| HIGH | edgar/xbrl/core.py | 488 | Convert unit_ref to human-readable unit name. Maps XBRL unit references to standard display names: - 'U-Mo | STRING |
| HIGH | edgar/xbrl/core.py | 553 | Determine if a period type represents a point-in-time value. Args: period_type: XBRL period type ('ins | STRING |
| HIGH | edgar/xbrl/notes.py | 538 | 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 | 562 | Search notes by keyword. Returns all matches, best first. Ranking: exact title > title starts with key | STRING |
| HIGH | edgar/xbrl/notes.py | 609 | 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 |
| 41 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/ai/test_ai_native_context.py | 250 | # Step 1: Company (Company now has .to_context() for consistency) | COMMENT |
| LOW⚡ | tests/ai/test_ai_native_context.py | 253 | # Step 2: Filings hints at .latest() | COMMENT |
| LOW⚡ | tests/ai/test_ai_native_context.py | 261 | # Step 3: Filing hints at .obj() | COMMENT |
| LOW⚡ | tests/ai/test_ai_native_context.py | 266 | # Step 4: FormC hints at .get_offering() | COMMENT |
| LOW⚡ | tests/ai/test_ai_native_context.py | 271 | # Step 5: Offering provides lifecycle (already tested in other tests) | 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 | 80 | ## Step 5: Get Specific Values | COMMENT |
| LOW | docs/quickstart.md | 92 | ## Step 6: Export to DataFrame | COMMENT |
| LOW | docs/quickstart.md | 107 | ## Step 7: Browse Company Filings | COMMENT |
| LOW | docs/quickstart.md | 161 | ## 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 | 264 | # Step 1: Find filings across EDGAR | COMMENT |
| LOW⚡ | docs/guides/full-text-search.md | 268 | # Step 2: Triage from metadata | COMMENT |
| LOW⚡ | docs/guides/full-text-search.md | 272 | # Step 3: Check who shows up most | COMMENT |
| LOW⚡ | docs/guides/full-text-search.md | 276 | # Step 4: Deep dive on an interesting hit | COMMENT |
| LOW⚡ | docs/guides/full-text-search.md | 280 | # 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 |
| LOW⚡ | docs/guides/stock-splits-eps-normalization.md | 228 | # Step 2: Detect splits | COMMENT |
| LOW⚡ | docs/guides/stock-splits-eps-normalization.md | 234 | # Step 3: Filter to EPS facts | COMMENT |
| LOW⚡ | docs/guides/stock-splits-eps-normalization.md | 243 | # Step 4: Apply split adjustments | COMMENT |
| LOW⚡ | docs/guides/stock-splits-eps-normalization.md | 246 | # Step 5: Compare pre-split periods | COMMENT |
| LOW | docs/guides/cloud-storage.md | 55 | #### Step 1: Create and Configure S3 Bucket | COMMENT |
| LOW | docs/guides/cloud-storage.md | 67 | #### Step 2: Set Bucket Policy for Public Read | COMMENT |
| LOW | docs/guides/cloud-storage.md | 94 | #### Step 3: Upload Your Data | COMMENT |
| LOW | docs/guides/cloud-storage.md | 101 | #### Step 4: Configure EdgarTools | 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 |
| 113 more matches not shown… | ||||
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| HIGH | tests/core/test_markdown_characterization.py | 0 | a divergence that stopped diverging is an entry to delete, not to keep. | STRING |
| HIGH | tests/abs/test_ten_d_characterization.py | 0 | a divergence that stopped diverging is an entry to delete, not to keep. | STRING |
| HIGH | tests/funds/test_fund_listing_characterization.py | 0 | a divergence that stopped diverging is an entry to delete, not to keep. | STRING |
| HIGH | tests/funds/test_funds_pages_characterization.py | 0 | a divergence that stopped diverging is an entry to delete, not to keep. | STRING |
| 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 | …ructuredNoteTerms.test_bofa_structured_note_terms.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 | …regression/test_07lk3_currentreport_doc_deprecation.py | 0 | the minimum surface the report classes touch, backed by a local file. | STRING |
| HIGH | …ts/issues/regression/test_ha11_toc_anchor_collision.py | 0 | the minimum surface the report classes touch, backed by a local file. | STRING |
| HIGH | …ts/issues/regression/test_3dp_bare_textnode_headers.py | 0 | the minimum surface the report classes touch, backed by a local file. | STRING |
| HIGH | tests/issues/regression/test_dt1f1_item_9at.py | 0 | the minimum surface the report classes touch, backed by a local file. | STRING |
| HIGH | tests/issues/regression/test_dt1f1_long_item_titles.py | 0 | the minimum surface the report classes touch, backed by a local file. | STRING |
| HIGH | …ssues/regression/test_07lk23_items_fallback_deleted.py | 0 | the minimum surface the report classes touch, backed by a local file. | STRING |
| HIGH | tests/issues/regression/test_yrrh_get_item_with_part.py | 0 | the minimum surface the report classes touch, backed by a local file. | STRING |
| HIGH | tests/issues/regression/test_dt1f1_era_item_titles.py | 0 | the minimum surface the report classes touch, backed by a local file. | STRING |
| HIGH | tests/issues/regression/test_dt1f1_10q_part_boundary.py | 0 | the minimum surface the report classes touch, backed by a local file. | STRING |
| HIGH | …s/issues/regression/test_dt1f1_wrapped_item_headers.py | 0 | the minimum surface the report classes touch, backed by a local file. | STRING |
| HIGH | …ts/issues/regression/test_3dp_groupb_fixture_corpus.py | 0 | the minimum surface the report classes touch, backed by a local file. | 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/offerings/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/form144.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/muniadvisors/core.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 |
| 3 more matches not shown… | ||||
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| MEDIUM | pyproject.toml | 101 | "click>=8.0.0", # CLI interface for test harness | CODE |
| MEDIUM | pyproject.toml | 286 | # Regression tests (run separately/on-demand for comprehensive bug prevention) | COMMENT |
| MEDIUM⚡ | tools/investigation_toolkit.py | 391 | """Generate comprehensive investigation report""" | STRING |
| MEDIUM | tests/conftest.py | 429 | # The measurement is a committed harness, so it does not have to be rebuilt | COMMENT |
| MEDIUM | tests/conftest.py | 435 | # harness before adding it below: failing offline and being broken look | COMMENT |
| MEDIUM | tests/offerings/eval/run_eval.py | 228 | except Exception as ex: # noqa: BLE001 — the harness must survive any filing | CODE |
| MEDIUM | tests/core/test_feat005_statement_types.py | 42 | # Test comprehensive income | COMMENT |
| MEDIUM | tests/core/test_feat005_statement_types.py | 120 | # Test COMPREHENSIVE_STATEMENTS (includes comprehensive income) | COMMENT |
| MEDIUM⚡ | tests/core/test_feat005_statement_types.py | 217 | # Test comprehensive analysis workflow | COMMENT |
| MEDIUM⚡ | tests/core/test_feat005_statement_types.py | 219 | """Mock comprehensive statement analysis.""" | STRING |
| MEDIUM | …estAgencyDealAgentExtraction.test_atm_sales_agent.yaml | 4541 | holder’s depositary shares. The depositary will endeavor, insofar as | CODE |
| MEDIUM | tests/meta/test_section_parity_ratchet.py | 93 | # harness was asking. Before triaging any remaining entry, check what a user | COMMENT |
| MEDIUM | tests/meta/test_markdown_parity_ratchet.py | 62 | # numbers is the next refinement to the harness, and would likely drop this | COMMENT |
| MEDIUM | tests/meta/test_markdown_parity_ratchet.py | 81 | # So the harness refinement is still worth doing, and is now known to be the | COMMENT |
| MEDIUM | tests/meta/test_markdown_parity_ratchet.py | 137 | # will not reach zero by fixing the parser — only by teaching the harness | COMMENT |
| MEDIUM | tests/meta/test_offline_audit_ratchet.py | 50 | # A real short-summary block, including the harness's own `ERROR edgar.core:` | COMMENT |
| MEDIUM | tests/meta/test_vcr_interception_guard.py | 96 | # NetworkBlockedError under the offline harness, and never vcr's refusal. | COMMENT |
| MEDIUM | tests/storage/test_thirteenf.py | 357 | """Test comprehensive manager information summary""" | STRING |
| MEDIUM⚡ | tests/xbrl/test_xbrl_unit_pointintime.py | 315 | # Local fixture tests provide comprehensive coverage of real-world XBRL data | COMMENT |
| MEDIUM⚡ | tests/xbrl/test_current_period.py | 244 | # Verify it's a comprehensive income statement | COMMENT |
| MEDIUM⚡ | tests/xbrl/test_current_period.py | 237 | """Test comprehensive income statement retrieval.""" | STRING |
| MEDIUM⚡ | tests/xbrl/test_standardization.py | 545 | """ComprehensiveIncome should still list IFRS comprehensive concepts.""" | STRING |
| LOW | tests/abs/test_ten_d.py | 410 | # Should not raise, just return empty data | COMMENT |
| MEDIUM⚡ | tests/ai/test_mcp_registry_entry.py | 91 | # edgar-test pointed at tests.harness.cli, which is in neither the wheel nor the repo. | COMMENT |
| MEDIUM | tests/documents/test_fast_table_renderer.py | 317 | # Run comprehensive test suite | COMMENT |
| MEDIUM | tests/funds/test_fundreports_derivatives.py | 201 | # Test with both samples to ensure robust NA handling | COMMENT |
| MEDIUM | …gression/test_issue_3n9t_comprehensive_income_merge.py | 22 | """AAPL comprehensive income should preserve all concept names. | STRING |
| MEDIUM | …ression/test_issue_486_comprehensive_income_zerodiv.py | 2 | Regression test for GitHub issue #486: ZeroDivisionError in comprehensive income access | STRING |
| MEDIUM⚡ | …ression/test_issue_486_comprehensive_income_zerodiv.py | 25 | """Test cases for comprehensive income access without ZeroDivisionError""" | STRING |
| MEDIUM⚡ | …ression/test_issue_486_comprehensive_income_zerodiv.py | 29 | """Test that accessing comprehensive income does not raise ZeroDivisionError. | STRING |
| MEDIUM⚡ | …ression/test_issue_486_comprehensive_income_zerodiv.py | 36 | # Test with Apple which has comprehensive income | COMMENT |
| MEDIUM | …ression/test_issue_486_comprehensive_income_zerodiv.py | 54 | # Apple files a comprehensive income statement in every 10-K; treating | COMMENT |
| MEDIUM | …ression/test_issue_486_comprehensive_income_zerodiv.py | 144 | # Not every small filer presents comprehensive income | COMMENT |
| MEDIUM | …egression/test_issue_506_income_statement_selection.py | 91 | # Should NOT be dominated by comprehensive income concepts | COMMENT |
| MEDIUM⚡ | …gression/test_issue_429_statement_period_regression.py | 69 | """Test that comprehensive income uses duration periods""" | STRING |
| MEDIUM⚡ | tests/issues/regression/test_viewer_corpus.py | 267 | # Test harness | COMMENT |
| LOW | …issues/regression/test_issue_706_missing_statements.py | 105 | # Should not raise an exception - just return None | COMMENT |
| MEDIUM | …regression/test_issue_518_income_statement_fallback.py | 107 | # Definitely should NOT be CashFlowStatement or BalanceSheet | COMMENT |
| MEDIUM | tests/issues/regression/test_3dp_groupc_items_union.py | 44 | # Group B's harness, imported rather than copied. ``_forbidding_legacy`` is a | COMMENT |
| MEDIUM | …issues/regression/test_0q0d_multi_root_presentation.py | 38 | # UNP FY2012 10-K, statement of comprehensive income. | COMMENT |
| MEDIUM⚡ | tests/reference/test_company_subsets_metadata.py | 62 | # Should NOT have comprehensive columns | COMMENT |
| MEDIUM⚡ | tests/reference/test_company_subsets_metadata.py | 82 | # Should have comprehensive columns | COMMENT |
| MEDIUM⚡ | tests/reference/test_company_subsets_metadata.py | 111 | # Should have comprehensive columns | COMMENT |
| MEDIUM⚡ | tests/reference/test_company_subsets_metadata.py | 241 | # Should auto-enable comprehensive mode | COMMENT |
| MEDIUM⚡ | tests/reference/test_company_subsets_metadata.py | 256 | # Should auto-enable comprehensive mode | COMMENT |
| MEDIUM⚡ | tests/reference/test_company_subsets_metadata.py | 415 | # Should return comprehensive dataset | COMMENT |
| MEDIUM | tests/reference/test_company_subsets_metadata.py | 196 | # Should have comprehensive columns | COMMENT |
| MEDIUM | tests/reference/test_company_subsets_metadata.py | 509 | # Should not have comprehensive columns | COMMENT |
| MEDIUM⚡ | tests/reference/test_company_subsets_metadata.py | 453 | """Test that comprehensive mode uses caching on subsequent calls.""" | STRING |
| MEDIUM | docs/examples/plot_revenue.py | 79 | """Create a comprehensive financial chart showing Revenue, Gross Profit, and Net Income with detailed annotations. | STRING |
| MEDIUM⚡ | docs/examples/feat005_demo_statement_types.py | 180 | """Mock comprehensive financial analysis function.""" | STRING |
| LOW | docs/examples/crowdfunding.py | 189 | # Instead of accessing 10+ nested attributes, just call one method | COMMENT |
| MEDIUM | examples/scripts/ai/ai_context.py | 82 | """Build comprehensive context for an LLM.""" | STRING |
| MEDIUM | scripts/check_offline_audit.py | 96 | # Only lines whose node id starts with `tests/` — the harness also logs an | COMMENT |
| MEDIUM | scripts/text_boundary/variants.py | 157 | # Shipped behaviour, to confirm the harness reproduces it: expect 0 changed. | COMMENT |
| MEDIUM | .github/workflows/regression-tests.yml | 51 | # The four test-harness files are here because they decide what this lane | COMMENT |
| MEDIUM⚡ | edgar/paths.py | 222 | # Test Directory (test harness data) | COMMENT |
| MEDIUM | edgar/httprequests.py | 543 | # the offline audit harness over the network-marked regression tests: six tests | COMMENT |
| MEDIUM | edgar/_filings.py | 1148 | # Show filings: all if ≤100 total, otherwise 50 (matches pager page size for seamless next()) | COMMENT |
| MEDIUM | edgar/offerings/crowdfunding/formc/core.py | 308 | >>> formc.docs # Display comprehensive documentation | STRING |
| 53 more matches not shown… | ||||
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| LOW | tests/conftest.py | 9 | logger = logging.getLogger(__name__) | CODE |
| LOW | tests/paths.py | 36 | __all__ = ["TESTS_DIR", "REPO_ROOT", "FIXTURES_DIR", "CASSETTES_DIR", "DATA_DIR"] | CODE |
| LOW | tests/_vcr_compat.py | 30 | __all__ = ["install_null_reason_phrase_fix"] | CODE |
| LOW⚡ | tests/issues/regression/test_mcp_fpi_support.py | 22 | 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/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 | 34 | __all__ = [ | CODE |
| LOW | edgar/filesystem.py | 33 | __all__ = [ | CODE |
| LOW | edgar/current_filings.py | 24 | __all__ = [ | CODE |
| LOW | edgar/__init__.py | 205 | __all__ = [ | CODE |
| LOW | edgar/core.py | 44 | __all__ = [ | CODE |
| LOW | edgar/httprequests.py | 40 | __all__ = [ | CODE |
| LOW | edgar/httprequests.py | 1461 | logger = logging.getLogger(__name__) | CODE |
| LOW | edgar/attachments.py | 46 | __all__ = ['Attachment', 'Attachments', 'FilingHomepage', 'FilerInfo', 'AttachmentServer', 'sec_document_url', 'get_docu | CODE |
| LOW | edgar/forms.py | 16 | __all__ = [ | CODE |
| LOW | edgar/_party.py | 14 | __all__ = [ | CODE |
| LOW | edgar/context.py | 10 | __all__ = ['HasContext', 'compose_context'] | CODE |
| LOW | edgar/_markdown.py | 11 | __all__ = [ | CODE |
| LOW | edgar/markdown.py | 25 | __all__ = [ | CODE |
| LOW | edgar/markdown.py | 144 | def _set_string(el, value: str) -> None: | CODE |
| LOW | edgar/_filings.py | 81 | __all__ = [ | CODE |
| LOW⚡ | edgar/correspondence.py | 31 | __all__ = ['Correspondence', 'CorrespondenceThread', 'CorrespondenceType'] | CODE |
| LOW | edgar/settings.py | 33 | __all__ = [ | CODE |
| LOW | edgar/datatools.py | 9 | __all__ = [ | CODE |
| LOW | edgar/exceptions.py | 43 | __all__ = [ | CODE |
| LOW | edgar/dates.py | 26 | __all__ = [ | CODE |
| LOW | edgar/headers.py | 23 | __all__ = ['FilingDirectory', 'IndexHeaders', 'ReportingOwner', 'CompanyData', 'FilingValues', 'FormerCompany'] | CODE |
| LOW | edgar/_compat.py | 32 | __all__ = ["deprecated_alias"] | CODE |
| LOW | edgar/urls.py | 9 | __all__ = [ | CODE |
| LOW | edgar/richtools.py | 15 | __all__ = [ | CODE |
| LOW | edgar/offerings/__init__.py | 29 | __all__ = [ | CODE |
| LOW | edgar/offerings/effect.py | 10 | __all__ = [ | CODE |
| LOW | edgar/offerings/exempt/__init__.py | 6 | __all__ = ["FormD"] | CODE |
| LOW | edgar/offerings/exempt/formd.py | 24 | __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 |
| 190 more matches not shown… | ||||
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| LOW | pyproject.toml | 61 | "jinja2>=3.1.6", | COMMENT |
| LOW | pyproject.toml | 161 | ] | COMMENT |
| LOW | pyproject.toml | 221 | # Run before testing a branch you didn't write: vcrpy loads cassettes with | COMMENT |
| LOW | pyproject.toml | 241 | # `python -m pytest`, not `pytest`: -p imports the plugin before collection puts | COMMENT |
| LOW | pyproject.toml | 261 | test-parallel-safe = "pytest -n auto -m 'fast' {args}" | COMMENT |
| LOW | pyproject.toml | 281 | test-ci-fast = "pytest -n auto --cov --cov-report=xml -m 'fast' {args}" | COMMENT |
| LOW | pyproject.toml | 421 | retry_delay = 4 | 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 | 321 | # regressions both resolve filings over the wire, so the namespaced | COMMENT |
| LOW | tests/conftest.py | 341 | # unit tests of StatementStitcher._unaccumulate_cashflow_ytd, which build | COMMENT |
| LOW | tests/conftest.py | 381 | # fetches. It matched FAST_PATTERNS' 'test_statement' substring and so ran | COMMENT |
| LOW | tests/conftest.py | 401 | # bead edgartools-07lk.24 emptied the tree of regression-marked files: | COMMENT |
| LOW | tests/conftest.py | 421 | # Classifying them lets the offline half gate pull requests. Which half is | COMMENT |
| LOW | tests/conftest.py | 541 | unclassified.append(item.nodeid) | COMMENT |
| LOW | tests/__init__.py | 1 | # SPDX-FileCopyrightText: 2022-present Dwight Gunning <dgunning@gmail.com> | COMMENT |
| LOW | tests/meta/test_section_parity_ratchet.py | 61 | # CLOSED 2026-08-14, and they were neither two problems nor detection | COMMENT |
| LOW | tests/meta/test_section_parity_ratchet.py | 81 | # wfc/10k WAS IN GROUP 2 AND WAS NEVER BROKEN. Removed 2026-08-14 with its | COMMENT |
| LOW | tests/meta/test_section_parity_ratchet.py | 101 | # effect of edgartools-2vzk. That filing puts its heading — "Item 2.02 Results of | COMMENT |
| LOW | tests/meta/test_section_parity_ratchet.py | 121 | # remains is era semantics plus one regex detail, not separators: in 1999 | COMMENT |
| LOW | tests/meta/test_section_parity_ratchet.py | 141 | # tests/issues/regression/test_dt1f1_era_item_titles.py. | COMMENT |
| LOW | tests/meta/test_section_parity_ratchet.py | 161 | # CLOSED 2026-08-14, together with axp/bac/cvx/jnj/jpm/tsla and | COMMENT |
| LOW | tests/meta/test_section_parity_ratchet.py | 181 | # ("Item 6. Directors, Senior Management and\nEmployees") and their patterns | COMMENT |
| LOW | tests/meta/test_section_parity_ratchet.py | 201 | # pattern match. Header text is now whitespace-normalized first | COMMENT |
| LOW | tests/meta/test_section_parity_ratchet.py | 221 | ("20-F", "0001062993-16-008650"), | COMMENT |
| LOW | tests/meta/test_markdown_parity_ratchet.py | 41 | sys.path.insert(0, str(FIXTURES_DIR / "parser_corpus")) | COMMENT |
| LOW | tests/meta/test_markdown_parity_ratchet.py | 61 | # the word-gluing that glued() already discounts. Extending that discount to | COMMENT |
| LOW | tests/meta/test_markdown_parity_ratchet.py | 121 | ("10-K", "meta/10k"): 39, | COMMENT |
| LOW | tests/meta/test_section_self_consistency_ratchet.py | 41 | COMMENT | |
| LOW | tests/meta/test_section_self_consistency_ratchet.py | 61 | # | COMMENT |
| LOW | tests/meta/test_section_self_consistency_ratchet.py | 161 | ) | COMMENT |
| LOW | tests/meta/test_section_boundary_corpus.py | 61 | # undersized substantial item). A mix of genuine boundary bugs and benign | COMMENT |
| LOW | tests/meta/test_assertion_strength_ratchet.py | 61 | TESTS_DIR = TESTS_DIR | COMMENT |
| LOW | tests/meta/test_assertion_strength_ratchet.py | 81 | # KNOWN_EXISTENCE_ONLY would have made that list stop meaning "outstanding | COMMENT |
| LOW | tests/xbrl/test_period_selector.py | 781 | # This may happen for periods that focus on other statement types | COMMENT |
| LOW | tests/documents/test_section_size_guardrail.py | 281 | @pytest.mark.parametrize("filer,path,form,key,length", [ | COMMENT |
| LOW | …ts/documents/test_toc_analyzer_form_aware_bare_item.py | 261 | # are NOT applied (Business / Properties / Legal Proceedings / | COMMENT |
| LOW | tests/funds/test_funds_company_info_characterization.py | 221 | # Same exception, same place, different words: the message names whichever | COMMENT |
| LOW | …issues/regression/test_issue_412_historical_periods.py | 61 | f"not just cash. Found {key_items_present} key items." | COMMENT |
| LOW | …es/regression/test_issue_631_save_load_completeness.py | 81 | 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 | 121 | # structure -- 9,498 remain. | COMMENT |
| LOW | tests/issues/regression/test_filing_text_baseline.py | 141 | # block. They now render in the table body, below the rule, which is why the | COMMENT |
| LOW | tests/issues/regression/test_filing_text_baseline.py | 161 | # | COMMENT |
| LOW | tests/issues/regression/test_filing_text_baseline.py | 181 | # -file reports pursuant to Section 13 or Section 15(d) of the Act. Yes ☐ No ☒ | COMMENT |
| LOW | tests/issues/regression/test_filing_text_baseline.py | 201 | # -The initial estimated value of the Notes as of the | COMMENT |
| LOW | tests/issues/regression/test_filing_text_baseline.py | 221 | # "$98 $204 $269". No value is lost -- every number in the old text is still | COMMENT |
| LOW | tests/issues/regression/test_filing_text_baseline.py | 241 | # stockholders' equity regains "Accumulated", "Shares", "Amount", "Net" and | COMMENT |
| LOW | tests/issues/regression/test_filing_text_baseline.py | 281 | ), | COMMENT |
| LOW | tests/issues/regression/test_filing_text_baseline.py | 301 | # stores each submission once — 23.5 MB total — and the tests that share a | COMMENT |
| LOW | tests/issues/regression/test_public_api_surface.py | 41 | # edgartools-07lk.3), or internal plumbing with a supported entry point in front | COMMENT |
| LOW | tests/issues/regression/test_ysr8_statement_helpers.py | 141 | "fixture, gross_margin, current_ratio", | COMMENT |
| LOW | …es/regression/test_issue_637_ifrs_concept_discovery.py | 61 | COMMENT | |
| LOW | tests/issues/regression/test_dt1f1_10q_part_boundary.py | 161 | # prose and are untouched. | COMMENT |
| LOW | …s/issues/regression/test_dt1f1_wrapped_item_headers.py | 201 | # rendering only and moves no item boundary. | COMMENT |
| LOW | docs/guides/entity-api-guide.md | 281 | } | COMMENT |
| 156 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/ai/test_ai_native_context.py | 250 | # Step 1: Company (Company now has .to_context() for consistency) | COMMENT |
| LOW⚡ | tests/ai/test_ai_native_context.py | 253 | # Step 2: Filings hints at .latest() | COMMENT |
| LOW⚡ | tests/ai/test_ai_native_context.py | 261 | # Step 3: Filing hints at .obj() | COMMENT |
| LOW⚡ | tests/ai/test_ai_native_context.py | 266 | # Step 4: FormC hints at .get_offering() | COMMENT |
| LOW⚡ | tests/ai/test_ai_native_context.py | 271 | # Step 5: Offering provides lifecycle (already tested in other tests) | 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 | 898 | # Step 1: Get Q4 Net Income facts (derived or reported) | COMMENT |
| LOW⚡ | edgar/ttm/calculator.py | 907 | # Step 2: Get shares by period (FY, YTD9, and quarterly for CV check) | COMMENT |
| LOW | edgar/ttm/calculator.py | 927 | # Step 3: Calculate Q4 EPS | COMMENT |
| LOW⚡ | edgar/company_reports/current_report.py | 203 | # Step 1: Normalize input to extract item number | COMMENT |
| LOW⚡ | edgar/company_reports/current_report.py | 210 | # Step 2: Find item header in text | COMMENT |
| LOW | edgar/company_reports/current_report.py | 227 | # Step 3: Find end position | COMMENT |
| LOW | edgar/company_reports/current_report.py | 249 | # Step 4: Extract and clean content | COMMENT |
| LOW⚡ | edgar/entity/categorization.py | 265 | # Step 2: Check investment company forms (primary forms only) | COMMENT |
| LOW⚡ | edgar/entity/categorization.py | 272 | # Step 3: SPAC name patterns — before BDC to avoid false positives | COMMENT |
| LOW⚡ | edgar/entity/categorization.py | 276 | # Step 4: Check BDC signals (forms only — no name pattern) | COMMENT |
| LOW⚡ | edgar/entity/categorization.py | 280 | # Step 5: Check investment manager signals | COMMENT |
| LOW⚡ | edgar/entity/categorization.py | 284 | # Step 6: Check holding company | COMMENT |
| LOW⚡ | edgar/entity/categorization.py | 288 | # Step 7: "ETF" in name — catches crypto/commodity ETFs | COMMENT |
| LOW⚡ | edgar/entity/categorization.py | 294 | # Step 8: SIC 6200s + fund/trust name → ETF | COMMENT |
| LOW⚡ | edgar/entity/categorization.py | 301 | # Step 9: Non-depository credit institutions. | COMMENT |
| LOW⚡ | edgar/entity/categorization.py | 308 | # Step 10: Default to operating company | COMMENT |
| LOW⚡ | edgar/entity/categorization.py | 319 | # Step 11: Unknown (no SIC and non-operating entity_type) | COMMENT |
| LOW | edgar/entity/categorization.py | 251 | # Step 1: Check definitive SIC codes | COMMENT |
| LOW⚡ | edgar/xbrl/period_selector.py | 71 | # Step 3: Filter out periods with insufficient data | COMMENT |
| LOW⚡ | edgar/xbrl/period_selector.py | 74 | # Step 4: Re-apply the cap. | COMMENT |
| LOW | edgar/xbrl/period_selector.py | 45 | # Step 1: Always filter by document date first (prevents future date bugs) | COMMENT |
| LOW | edgar/xbrl/period_selector.py | 60 | # Step 2: Statement-specific logic | COMMENT |
| LOW⚡ | edgar/xbrl/stitching/presentation.py | 70 | # Step 1: Create nodes for all concepts | COMMENT |
| LOW⚡ | edgar/xbrl/stitching/presentation.py | 73 | # Step 2: Build parent-child relationships based on levels and context | COMMENT |
| 17 more matches not shown… | ||||
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| HIGH | tools/visual_inspector.py | 173 | # Get sample values (first few non-null) | COMMENT |
| HIGH⚡ | tests/offerings/eval/test_tier_c_judge.py | 48 | text = '{"verdict": "correct", "judged_value": null, "confidence": "high", "rationale": "named on cover"}' | CODE |
| HIGH⚡ | tests/core/test_forms_listing.py | 151 | assert values.equals(values.str.strip()), f"{column} carries untrimmed whitespace" | CODE |
| HIGH | tests/xbrl/test_xbrl_facts_schema.py | 44 | those few rows left null, and a no-match query returned no columns at all. | STRING |
| 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⚡ | …ssues/regression/test_trhe_stitched_declared_schema.py | 95 | """A column no row populated must be null, never False or 0.""" | STRING |
| HIGH⚡ | …issues/regression/test_7wtj_entity_dataframe_schema.py | 150 | """A column no returned row populated comes back null, never False or 0. | STRING |
| HIGH | …sues/regression/test_issue_599_pandas_futurewarning.py | 125 | null). Every run took the outermost false branch and asserted nothing. | STRING |
| HIGH | tests/reference/test_reference_company_dataset.py | 396 | assert companies1.equals(companies2) | CODE |
| HIGH | edgar/entity/utils.py | 57 | total_filings = filings_form_array.length() | CODE |
| HIGH | edgar/xbrl/facts.py | 1936 | # index and drops rows whose key is null, so adding a column with gaps | COMMENT |
| 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 | …ructuredNoteTerms.test_bofa_structured_note_terms.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 |
|---|---|---|---|---|
| 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⚡ | tests/search/test_v530_coverage.py | 53 | # Place the match far enough from the start that the context window is cut | COMMENT |
| MEDIUM | tests/issues/regression/test_lw8r_inline_xbrl.py | 225 | # failure mode the RAG segment cannot detect. | COMMENT |
| 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 | 317 | # Schema-validity and successor-header guardrails — same flag-and-return | COMMENT |
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| LOW | tests/beneficial_ownership/test_beneficial_ownership.py | 460 | subject.company_information.name = 'Acme Corp' | CODE |
| LOW⚡ | tests/beneficial_ownership/test_beneficial_ownership.py | 471 | filing.company = 'Acme Corp' | CODE |
| LOW⚡ | tests/beneficial_ownership/test_beneficial_ownership.py | 476 | assert result.issuer_info.name == 'Acme Corp' | CODE |
| LOW⚡ | tests/core/test_richtools.py | 68 | table.add_row("John Doe") | CODE |
| LOW⚡ | tests/core/test_144_notice_contract.py | 134 | assert parsed['contact'].phone_number == "555-0100" | CODE |
| LOW⚡ | tests/company_reports/test_subsidiaries.py | 194 | assert subs[0].name == "Acme Corp" | CODE |
| LOW⚡ | tests/entity/test_statement_builder_unit.py | 307 | depth=0, parent_concept=None, source='placeholder' | CODE |
| LOW | tests/xbrl/test_statement_view.py | 61 | set_identity('test@test.com') | CODE |
| LOW | tests/xbrl/test_statement_view.py | 119 | set_identity('test@test.com') | CODE |
| LOW | tests/xbrl/test_statement_view.py | 203 | set_identity('test@test.com') | CODE |
| LOW | tests/bdc/test_bdc.py | 569 | assert company == 'Acme Corp' | CODE |
| LOW | tests/bdc/test_bdc_nonaccrual.py | 351 | company_name="Acme Corp", | CODE |
| LOW | tests/bdc/test_bdc_nonaccrual.py | 377 | company_name="Acme Corp", | CODE |
| LOW | tests/funds/test_etf_features_integration.py | 188 | street1="123 Main St", | CODE |
| LOW | tests/funds/test_etf_features_integration.py | 245 | street1="123 Main St", | CODE |
| LOW | tests/funds/test_etf_features_integration.py | 330 | street1="123 Main St", | CODE |
| LOW | tests/funds/test_etf_features_integration.py | 367 | street1="123 Main St", | CODE |
| LOW | tests/funds/test_ncen.py | 538 | sig = SignatureInfo(signer="John Doe", title="CEO", signed_date="2025-01-01") | CODE |
| LOW | tests/funds/test_ncen.py | 539 | assert "John Doe" in str(sig) | 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 | 2239 | "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 | 599 | 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/company_reports/test_notes.py | 28 | CODE | |
| LOW | tests/xbrl/test_to_markdown.py | 69 | 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 | 659 | CODE | |
| LOW | edgar/entity/constants.py | 282 | CODE | |
| LOW | edgar/entity/core.py | 386 | CODE | |
| LOW | edgar/entity/enhanced_statement.py | 1089 | CODE | |
| LOW | edgar/entity/filings.py | 242 | CODE | |
| LOW | edgar/entity/data.py | 384 | CODE | |
| LOW | edgar/sgml/filing_summary.py | 460 | CODE | |
| LOW | edgar/sgml/sgml_header.py | 74 | CODE | |
| LOW | edgar/storage/_local.py | 306 | CODE | |
| LOW | edgar/search/efts.py | 504 | CODE | |
| LOW | edgar/search/efts.py | 163 | CODE | |
| LOW | edgar/xbrl/rendering.py | 1587 | CODE | |
| LOW | edgar/xbrl/statements.py | 1120 | CODE | |
| LOW | edgar/xbrl/statements.py | 1239 | CODE | |
| LOW | edgar/xbrl/statements.py | 2196 | CODE | |
| LOW | edgar/xbrl/statements.py | 3622 | CODE | |
| LOW | edgar/xbrl/xbrl.py | 2777 | CODE | |
| LOW | edgar/xbrl/stitching/core.py | 972 | 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 | 249 | # 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 |