Repository Analysis

yifanfeng97/Hyper-Extract

Hypergraph is more powerful. Transform unstructured text into structured knowledge with LLMs. Graphs, hypergraphs, and spatio-temporal extractions — with one command.

23.6 Moderate AI signal View on GitHub

Analysis Overview

This report presents the forensic synthetic code analysis of yifanfeng97/Hyper-Extract, a Python project with 3,055 GitHub stars. SynthScan v2.0 examined 75,853 lines of code across 444 source files, recording 883 pattern matches distributed across 17 syntactic categories. The overall adjusted score of 23.6 places this repository in the Moderate AI signal band.

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

23.6
Adjusted Score
23.6
Raw Score
100%
Time Factor
2026-07-10
Last Push
3.1K
Stars
Python
Language
75.9K
Lines of Code
444
Files
883
Pattern Hits
2026-07-14
Scan Date
0.23
HC Hit Rate

What These Metrics Mean

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

Score History

This chart maps the temporal evolution of the adjusted synthetic code score across successive scan runs. An upward trajectory indicates ongoing incorporation of AI-generated code or expanding LLM-assisted scaffolding; a stable or declining trajectory may reflect active human refactoring, code removal, or the adoption of stricter authorship policies. The dashed secondary line (right axis) independently tracks total raw pattern hit count, which can diverge from the normalised score when codebase size changes significantly between scans.

Severity Breakdown

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

CRITICAL 0HIGH 101MEDIUM 219LOW 563

Directory Score Breakdown

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

Pattern Findings

The scanner identified 883 distinct pattern matches across 17 syntactic categories. Each entry below represents a discrete location in the source code where the engine recorded a statistically significant AI authorship indicator. Expand any category row to inspect the individual file paths, line numbers, code snippets, and the lexical context (CODE, COMMENT, or STRING) in which each match was detected.

Reading the findings table: The Severity column indicates the diagnostic confidence level (CRITICAL / HIGH / MEDIUM / LOW). The Context column identifies whether the match occurred inside executable code, an inline comment, or a string literal — comment-context matches receive a ×1.5 weight because LLMs systematically over-annotate. The ⚡ bolt icon marks clustered matches: three or more patterns within a 10-line window, each receiving an additional ×1.5 density multiplier as dense clusters constitute far stronger evidence of synthetic authorship than isolated hits.

Decorative Section Separators170 hits · 491 pts
SeverityFileLineSnippetContext
MEDIUMtests/test_mcp_server.py50# ---------------------------------------------------------------------------COMMENT
MEDIUMtests/test_mcp_server.py52# ---------------------------------------------------------------------------COMMENT
MEDIUMtests/test_mcp_server.py62# ---------------------------------------------------------------------------COMMENT
MEDIUMtests/test_mcp_server.py64# ---------------------------------------------------------------------------COMMENT
MEDIUMtests/test_mcp_server.py84# ---------------------------------------------------------------------------COMMENT
MEDIUMtests/test_mcp_server.py86# ---------------------------------------------------------------------------COMMENT
MEDIUMtests/test_mcp_server.py148# ---------------------------------------------------------------------------COMMENT
MEDIUMtests/test_mcp_server.py150# ---------------------------------------------------------------------------COMMENT
MEDIUMtests/utils/test_anthropic.py17# ---------------------------------------------------------------------------COMMENT
MEDIUMtests/utils/test_anthropic.py19# ---------------------------------------------------------------------------COMMENT
MEDIUMtests/utils/test_anthropic.py37# ---------------------------------------------------------------------------COMMENT
MEDIUMtests/utils/test_anthropic.py39# ---------------------------------------------------------------------------COMMENT
MEDIUMtests/utils/test_anthropic.py54# ---------------------------------------------------------------------------COMMENT
MEDIUMtests/utils/test_anthropic.py56# ---------------------------------------------------------------------------COMMENT
MEDIUMtests/utils/test_anthropic.py74# ---------------------------------------------------------------------------COMMENT
MEDIUMtests/utils/test_anthropic.py76# ---------------------------------------------------------------------------COMMENT
MEDIUMtests/utils/test_anthropic.py111# ---------------------------------------------------------------------------COMMENT
MEDIUMtests/utils/test_anthropic.py113# ---------------------------------------------------------------------------COMMENT
MEDIUMtests/utils/test_anthropic.py126# ---------------------------------------------------------------------------COMMENT
MEDIUMtests/utils/test_anthropic.py128# ---------------------------------------------------------------------------COMMENT
MEDIUMtests/utils/test_obsidian.py57# ---------------------------------------------------------------------------COMMENT
MEDIUMtests/utils/test_obsidian.py59# ---------------------------------------------------------------------------COMMENT
MEDIUMtests/utils/test_obsidian.py85# ---------------------------------------------------------------------------COMMENT
MEDIUMtests/utils/test_obsidian.py87# ---------------------------------------------------------------------------COMMENT
MEDIUMtests/utils/test_obsidian.py122# ---------------------------------------------------------------------------COMMENT
MEDIUMtests/utils/test_obsidian.py124# ---------------------------------------------------------------------------COMMENT
MEDIUMtests/utils/test_obsidian.py171# ---------------------------------------------------------------------------COMMENT
MEDIUMtests/utils/test_obsidian.py173# ---------------------------------------------------------------------------COMMENT
MEDIUMtests/utils/test_obsidian.py217# ---------------------------------------------------------------------------COMMENT
MEDIUMtests/utils/test_obsidian.py219# ---------------------------------------------------------------------------COMMENT
MEDIUMtests/utils/test_obsidian.py263# ---------------------------------------------------------------------------COMMENT
MEDIUMtests/utils/test_obsidian.py265# ---------------------------------------------------------------------------COMMENT
MEDIUMtests/utils/test_obsidian.py284# ---------------------------------------------------------------------------COMMENT
MEDIUMtests/utils/test_obsidian.py286# ---------------------------------------------------------------------------COMMENT
MEDIUMtests/utils/test_obsidian.py20# ---------------------------------------------------------------------------COMMENT
MEDIUMtests/utils/test_obsidian.py22# ---------------------------------------------------------------------------COMMENT
MEDIUMtests/utils/test_client.py143# =============================================================================COMMENT
MEDIUMtests/utils/test_client.py145# =============================================================================COMMENT
MEDIUMtests/utils/test_client.py190# =============================================================================COMMENT
MEDIUMtests/utils/test_client.py192# =============================================================================COMMENT
MEDIUMtests/utils/test_client.py402# =============================================================================COMMENT
MEDIUMtests/utils/test_client.py404# =============================================================================COMMENT
MEDIUMtests/utils/test_client.py21# =============================================================================COMMENT
MEDIUMtests/utils/test_client.py23# =============================================================================COMMENT
MEDIUMtests/utils/test_client.py85# =============================================================================COMMENT
MEDIUMtests/utils/test_client.py87# =============================================================================COMMENT
MEDIUMtests/utils/test_client.py441# =============================================================================COMMENT
MEDIUMtests/utils/test_client.py443# =============================================================================COMMENT
MEDIUMhyperextract/mcp_server.py36# ---------------------------------------------------------------------------COMMENT
MEDIUMhyperextract/mcp_server.py38# ---------------------------------------------------------------------------COMMENT
MEDIUMhyperextract/mcp_server.py78# ---------------------------------------------------------------------------COMMENT
MEDIUMhyperextract/mcp_server.py80# ---------------------------------------------------------------------------COMMENT
MEDIUMhyperextract/mcp_server.py228# ---------------------------------------------------------------------------COMMENT
MEDIUMhyperextract/mcp_server.py230# ---------------------------------------------------------------------------COMMENT
MEDIUMhyperextract/types/spatio_temporal_graph.py17# ==============================================================================COMMENT
MEDIUMhyperextract/types/spatio_temporal_graph.py19# ==============================================================================COMMENT
MEDIUMhyperextract/types/spatio_temporal_graph.py263 # ==============================================================================STRING
MEDIUMhyperextract/types/spatio_temporal_graph.py265 # ==============================================================================STRING
MEDIUMhyperextract/types/temporal_graph.py17# ==============================================================================COMMENT
MEDIUMhyperextract/types/temporal_graph.py19# ==============================================================================COMMENT
110 more matches not shown…
Magic Placeholder Names42 hits · 242 pts
SeverityFileLineSnippetContext
HIGHdocs/zh/python/quickstart.md24os.environ["OPENAI_API_KEY"] = "your-api-key"CODE
HIGHdocs/zh/python/index.md190os.environ["OPENAI_API_KEY"] = "your-api-key"CODE
HIGHdocs/zh/resources/troubleshooting.md45 he config init -k YOUR_API_KEYCODE
HIGHdocs/zh/resources/troubleshooting.md50 export OPENAI_API_KEY=your-api-keyCODE
HIGHdocs/zh/resources/faq.md62he config init -k YOUR_API_KEYCODE
HIGHdocs/zh/resources/faq.md67export OPENAI_API_KEY=your-api-keyCODE
HIGHdocs/zh/resources/faq.md72OPENAI_API_KEY=your-api-keyCODE
HIGHdocs/zh/resources/faq.md201he config init -k YOUR_API_KEYCODE
HIGHdocs/zh/cli/configuration.md196 api_key = "sk-your-api-key"CODE
HIGHdocs/zh/cli/configuration.md228 api_key = "sk-your-api-key"CODE
HIGHdocs/zh/cli/configuration.md280 he config init -p bailian -k YOUR_API_KEYCODE
HIGHdocs/zh/cli/commands/config.md49he config init -p openai -k sk-your-api-key-hereCODE
HIGHdocs/zh/cli/commands/config.md52he config init -p bailian -k sk-your-api-key-hereCODE
HIGHdocs/zh/cli/commands/config.md191 api_key = "sk-your-api-key"CODE
HIGHdocs/zh/cli/commands/config.md233he config init -k your-api-keyCODE
HIGHdocs/zh/cli/commands/config.md239export OPENAI_API_KEY=your-api-keyCODE
HIGHdocs/zh/cli/commands/config.md245he config init -k your-api-keyCODE
HIGHdocs/zh/getting-started/cli-quickstart.md215→ 运行 `he config init -k YOUR_API_KEY`CODE
HIGHdocs/zh/getting-started/python-quickstart.md38echo "OPENAI_API_KEY=your-api-key" > .envCODE
HIGHdocs/en/python/quickstart.md24os.environ["OPENAI_API_KEY"] = "your-api-key"CODE
HIGHdocs/en/python/index.md190os.environ["OPENAI_API_KEY"] = "your-api-key"CODE
HIGHdocs/en/resources/troubleshooting.md47 he config init -k YOUR_API_KEYCODE
HIGHdocs/en/resources/troubleshooting.md52 export OPENAI_API_KEY=your-api-keyCODE
HIGHdocs/en/resources/faq.md62he config init -k YOUR_API_KEYCODE
HIGHdocs/en/resources/faq.md67export OPENAI_API_KEY=your-api-keyCODE
HIGHdocs/en/resources/faq.md72OPENAI_API_KEY=your-api-keyCODE
HIGHdocs/en/resources/faq.md201he config init -k YOUR_API_KEYCODE
HIGHdocs/en/cli/configuration.md196 api_key = "sk-your-api-key"CODE
HIGHdocs/en/cli/configuration.md228 api_key = "sk-your-api-key"CODE
HIGHdocs/en/cli/configuration.md280 he config init -p bailian -k YOUR_API_KEYCODE
HIGHdocs/en/cli/commands/config.md49he config init -p openai -k sk-your-api-key-hereCODE
HIGHdocs/en/cli/commands/config.md52he config init -p bailian -k sk-your-api-key-hereCODE
HIGHdocs/en/cli/commands/config.md191 api_key = "sk-your-api-key"CODE
HIGHdocs/en/cli/commands/config.md233he config init -k your-api-keyCODE
HIGHdocs/en/cli/commands/config.md239export OPENAI_API_KEY=your-api-keyCODE
HIGHdocs/en/cli/commands/config.md245he config init -k your-api-keyCODE
HIGHdocs/en/getting-started/cli-quickstart.md220→ Run `he config init -k YOUR_API_KEY`CODE
HIGHdocs/en/getting-started/python-quickstart.md38echo "OPENAI_API_KEY=your-api-key" > .envCODE
HIGHhyperextract/cli/README.md36he config init --api-key YOUR_API_KEYCODE
HIGHhyperextract/cli/README.md69export OPENAI_API_KEY=your_api_keyCODE
HIGHhyperextract/cli/README_ZH.md36he config init --api-key YOUR_API_KEYCODE
HIGHhyperextract/cli/README_ZH.md69export OPENAI_API_KEY=your_api_keyCODE
Hyper-Verbose Identifiers207 hits · 224 pts
SeverityFileLineSnippetContext
LOWdocs_hooks.py19def _suppress_autorefs_duplicates():CODE
LOWtests/test_mcp_server.py55def test_list_templates_returns_json():CODE
LOWtests/test_mcp_server.py89def test_search_returns_nodes_and_edges(monkeypatch):CODE
LOWtests/test_mcp_server.py98def test_search_without_index_is_handled(monkeypatch):CODE
LOWtests/test_mcp_server.py153def test_build_server_registers_tools():CODE
LOWtests/template_engine/test_factory.py12 def test_get_existing_template(self):CODE
LOWtests/template_engine/test_factory.py20 def test_get_nonexistent_template(self):CODE
LOWtests/template_engine/test_factory.py30 def test_create_with_language(self, llm_client, embedder):CODE
LOWtests/template_engine/test_factory.py42 def test_create_without_source_raises(self, llm_client, embedder):CODE
LOWtests/template_engine/test_factory.py50 def test_create_from_templatecfg_instance(self, llm_client, embedder):CODE
LOWtests/template_engine/test_factory.py60 def test_create_method_template(self, llm_client, embedder):CODE
LOWtests/template_engine/test_parser_guideline.py12def test_labels_follow_language():CODE
LOWtests/template_engine/test_parser_guideline.py23def test_unknown_language_falls_back_to_en():CODE
LOWtests/template_engine/test_parser_loader.py17 def test_missing_language_falls_back_to_en(self):CODE
LOWtests/template_engine/test_parser_loader.py20 def test_missing_language_and_no_en_returns_empty(self):CODE
LOWtests/template_engine/test_parser_loader.py23 def test_present_language_used(self):CODE
LOWtests/template_engine/test_parser_loader.py30 def test_load_nonexistent_file_raises(self):CODE
LOWtests/template_engine/test_parser_loader.py35 def test_load_existing_template(self):CODE
LOWtests/template_engine/test_parser_options.py17 def test_every_valid_strategy_resolves(self, strategy):CODE
LOWtests/template_engine/test_parser_options.py28 def test_multiword_llm_strategies_map_to_llm_member(self, strategy):CODE
LOWtests/template_engine/test_parser_output.py26 def test_template_output_has_fields(self):CODE
LOWtests/template_engine/test_parser_output.py40 def test_template_has_identifiers(self):CODE
LOWtests/template_engine/test_gallery.py11 def test_get_existing_template_by_path(self):CODE
LOWtests/template_engine/test_gallery.py19 def test_get_existing_template_by_name(self):CODE
LOWtests/template_engine/test_gallery.py25 def test_get_nonexistent_template(self):CODE
LOWtests/template_engine/test_gallery.py31 def test_get_template_preserves_config(self):CODE
LOWtests/template_engine/test_gallery.py51 def test_filter_by_type_model(self):CODE
LOWtests/template_engine/test_gallery.py75 def test_filter_by_type_graph(self):CODE
LOWtests/template_engine/test_gallery.py83 def test_filter_by_language_en(self):CODE
LOWtests/template_engine/test_gallery.py89 def test_filter_by_language_zh(self):CODE
LOWtests/template_engine/test_gallery.py101 def test_filter_by_type_and_language(self):CODE
LOWtests/template_engine/test_gallery.py119 def test_multiple_template_types(self):CODE
LOWtests/template_engine/test_gallery.py136 def test_preserves_original_config(self):CODE
LOWtests/types/test_structured_output_method.py38def test_automodel_requests_function_calling():CODE
LOWtests/types/test_structured_output_method.py45def test_autograph_two_stage_requests_function_calling():CODE
LOWtests/types/test_graph_extraction.py45 def test_node_schema_property(self, llm_client, embedder):CODE
LOWtests/types/test_graph_extraction.py59 def test_edge_schema_property(self, llm_client, embedder):CODE
LOWtests/types/test_graph_extraction.py73 def test_feed_text_adds_nodes_directly(self, llm_client, embedder):CODE
LOWtests/types/test_graph_extraction.py93 def test_feed_text_returns_self(self, llm_client, embedder):CODE
LOWtests/types/test_graph_extraction.py128 def test_two_stage_extraction_mode(self, llm_client, embedder):CODE
LOWtests/types/test_graph_extraction.py175 def test_metadata_initialized(self, llm_client, embedder):CODE
LOWtests/types/test_model_basic.py16 def test_init_and_empty_state(self, llm_client, embedder):CODE
LOWtests/types/test_model_basic.py27 def test_data_schema_property(self, llm_client, embedder):CODE
LOWtests/types/test_model_basic.py37 def test_parse_returns_new_instance(self, llm_client, embedder):CODE
LOWtests/types/test_model_basic.py51 def test_feed_text_updates_state(self, llm_client, embedder):CODE
LOWtests/types/test_model_basic.py66 def test_feed_text_returns_self(self, llm_client, embedder):CODE
LOWtests/types/test_model_basic.py92 def test_metadata_initialized(self, llm_client, embedder):CODE
LOWtests/types/test_model_basic.py104 def test_metadata_updated_on_feed(self, llm_client, embedder):CODE
LOWtests/types/test_model_basic.py123 def test_create_empty_instance(self, llm_client, embedder):CODE
LOWtests/types/test_set_operations.py55 def test_union_preserves_original(self, llm_client, embedder):CODE
LOWtests/types/test_set_operations.py65 def test_intersection_operator(self, llm_client, embedder):CODE
LOWtests/types/test_set_operations.py76 def test_intersection_named_method(self, llm_client, embedder):CODE
LOWtests/types/test_set_operations.py86 def test_intersection_no_common(self, llm_client, embedder):CODE
LOWtests/types/test_set_operations.py106 def test_difference_named_method(self, llm_client, embedder):CODE
LOWtests/types/test_set_operations.py116 def test_symmetric_difference_operator(self, llm_client, embedder):CODE
LOWtests/types/test_set_operations.py128 def test_symmetric_difference_named_method(self, llm_client, embedder):CODE
LOWtests/types/test_set_operations.py137 def test_symmetric_difference_with_no_overlap(self, llm_client, embedder):CODE
LOWtests/types/test_set_operations.py172 def test_equality_different_keys(self, llm_client, embedder):CODE
LOWtests/types/test_set_operations.py179 def test_equality_different_lengths(self, llm_client, embedder):CODE
LOWtests/types/test_set_operations.py200 def test_subset_not_reflexive_superset(self, llm_client, embedder):CODE
147 more matches not shown…
Docstring Block Structure39 hits · 195 pts
SeverityFileLineSnippetContext
HIGHdocs/zh/resources/contributing.md57处理输入文本并返回结构化数据。 Args: text: 要处理的输入文本 max_length: 最大处理长度 Returns: 包含处理后数据的字STRING
HIGHdocs/en/resources/contributing.md57Process input text and return structured data. Args: text: Input text to process max_length: MaSTRING
HIGHhyperextract/types/list.py391Support index access and slicing. Args: key: Integer index or slice object. Returns: STRING
HIGHhyperextract/types/list.py425Support index assignment. Args: index: Position to set (supports negative indexing). itSTRING
HIGHhyperextract/types/list.py449Operator overload for '+' to combine knowledge instances. Supports multiple combination patterns: - AutSTRING
HIGHhyperextract/types/list.py514Support del operation for removing items by index. Args: index: Position to delete (supports negatiSTRING
HIGHhyperextract/types/list.py550Support 'in' operator for membership testing. Args: item: The item to check for membership. STRING
HIGHhyperextract/types/list.py600Append a single item to the end of the list. Args: item: The item to append. Raises: STRING
HIGHhyperextract/types/list.py621Extend the list by appending multiple items. Args: items: Iterable of items to append. Can be: STRING
HIGHhyperextract/types/list.py662Insert an item at a specific position. Args: index: Position to insert at (supports negative indexiSTRING
HIGHhyperextract/types/list.py685Remove the first occurrence of an item from the list. Args: item: The item to remove. RaisSTRING
HIGHhyperextract/types/list.py714Remove and return an item at the given position. Args: index: Position to pop (default: -1, last itSTRING
HIGHhyperextract/types/list.py744Return the index of the first occurrence of item. Args: item: The item to find. start: STRING
HIGHhyperextract/types/list.py772Return the number of times item appears in the list. Args: item: The item to count. ReturnSTRING
HIGHhyperextract/types/list.py833Sort the items in place. Args: key: Function to extract comparison key from each item. STRING
HIGHhyperextract/types/graph.py788Unified graph search interface. Retrieves nodes and edges semantically related to the query. Always retSTRING
HIGHhyperextract/types/model.py368Operator overload for '+' to combine AutoModel instances into AutoList. Supports multiple combination patterns:STRING
HIGHhyperextract/types/set.py563Removes and returns an arbitrary item from the set. Returns: The removed item. Raises: STRING
HIGHhyperextract/types/set.py797Equality comparison: set1 == set2. Two sets are equal if they have the same schema and key set. Note: DSTRING
HIGHhyperextract/types/set.py828Subset comparison: set1 <= set2. Args: other: Another AutoSet instance. Returns: STRING
HIGHhyperextract/types/set.py854Proper subset comparison: set1 < set2. Args: other: Another AutoSet instance. Returns: STRING
HIGHhyperextract/types/set.py871Superset comparison: set1 >= set2. Args: other: Another AutoSet instance. Returns: STRING
HIGHhyperextract/types/set.py894Proper superset comparison: set1 > set2. Args: other: Another AutoSet instance. Returns: STRING
HIGHhyperextract/types/set.py911Test whether every key in the set is in other. Args: other: Another AutoSet instance. RetuSTRING
HIGHhyperextract/types/set.py925Test whether every key in other is in the set. Args: other: Another AutoSet instance. RetuSTRING
HIGHhyperextract/types/set.py939Test whether the set has no keys in common with other. Args: other: Another AutoSet instance. STRING
HIGHhyperextract/types/base.py673Operator overload for '+' to merge two knowledge instances. Creates a new knowledge instance by merging the datSTRING
HIGHhyperextract/types/hypergraph.py693Unified hypergraph search interface. Retrieves nodes and hyperedges semantically related to the query. STRING
HIGHhyperextract/utils/client.py313Create an LLM client from a specification string or dict. Args: spec: String shorthand (e.g. "bailian:qwen-STRING
HIGHhyperextract/utils/client.py374Create an Embedder client from a specification string or dict. Args: spec: String shorthand (e.g. "bailian:STRING
HIGHhyperextract/utils/client.py494Get OpenAI LLM client and Embedder from config. Backward-compatible: reads ~/.he/config.toml. Args: coSTRING
HIGHhyperextract/utils/obsidian.py392Export graph-structured knowledge to an Obsidian vault. Each node is written as a Markdown note whose YAML front-maSTRING
HIGHhyperextract/utils/template_engine/factory.py45Create method template instance. Note: Method templates use English prompts only. Language is hardcodedSTRING
HIGHhyperextract/utils/template_engine/factory.py388Create template instance based on configuration. Supports both knowledge templates and method templates: STRING
HIGHhyperextract/utils/template_engine/template.py47Create template instance. Args: source: Template path (e.g., "general/graph", "method/light_rag") oSTRING
HIGHhyperextract/utils/template_engine/parsers/loader.py129Convert multilingual template config to single-language config. Args: config: Original multilingual config STRING
HIGHhyperextract/cli/utils.py37Validate Knowledge Abstract path. Args: ka_path: Knowledge Abstract directory path Returns: PaSTRING
HIGHhyperextract/cli/utils.py62Validate Knowledge Abstract path with data.json. Args: ka_path: Knowledge Abstract directory path RetuSTRING
HIGHhyperextract/cli/utils.py86Validate Knowledge Abstract path with index. Args: ka_path: Knowledge Abstract directory path Returns:STRING
Unused Imports127 hits · 126 pts
SeverityFileLineSnippetContext
LOWtests/mocks.py3CODE
LOWtests/mocks.py5CODE
LOWtests/template_engine/test_factory.py4CODE
LOWtests/template_engine/test_parser_loader.py4CODE
LOWtests/template_engine/test_parser_loader.py5CODE
LOWtests/template_engine/test_parser_loader.py6CODE
LOWtests/template_engine/test_parser_output.py3CODE
LOWtests/template_engine/test_parser_output.py4CODE
LOWtests/template_engine/test_parser_output.py5CODE
LOWtests/template_engine/test_parser_output.py6CODE
LOWtests/template_engine/test_parser_output.py7CODE
LOWtests/template_engine/test_parser_output.py9CODE
LOWtests/types/test_graph_extraction.py3CODE
LOWtests/types/test_graph_extraction.py5CODE
LOWtests/types/test_graph_extraction.py5CODE
LOWtests/types/test_model_basic.py5CODE
LOWtests/types/test_model_basic.py6CODE
LOWtests/types/test_model_basic.py6CODE
LOWtests/types/test_model_basic.py7CODE
LOWtests/types/test_set_operations.py3CODE
LOWtests/types/test_set_operations.py4CODE
LOWtests/types/test_set_dedup.py6CODE
LOWtests/types/test_set_dedup.py11CODE
LOWtests/types/test_graph_dangling.py3CODE
LOWtests/types/test_graph_dangling.py5CODE
LOWtests/types/test_graph_dangling.py5CODE
LOWtests/types/test_list_slicing.py4CODE
LOWtests/types/test_graph_search.py3CODE
LOWtests/types/test_graph_search.py5CODE
LOWtests/types/test_graph_search.py5CODE
LOWtests/types/test_list_operations.py4CODE
LOWtests/types/test_list_operations.py8CODE
LOWtests/types/test_model_merge.py5CODE
LOWtests/types/test_extraction_logging.py6CODE
LOWtests/types/test_model_serialization.py10CODE
LOWtests/types/test_model_serialization.py10CODE
LOWtests/types/test_model_serialization.py11CODE
LOWtests/types/test_list_iteration.py6CODE
LOWtests/types/test_set_operators.py3CODE
LOWtests/types/test_set_operators.py4CODE
LOWtests/utils/test_client.py3CODE
LOWtests/utils/test_client.py5CODE
LOWtests/cli/test_verbose.py7CODE
LOWhyperextract/__init__.py25CODE
LOWhyperextract/__init__.py25CODE
LOWhyperextract/__init__.py25CODE
LOWhyperextract/__init__.py25CODE
LOWhyperextract/__init__.py25CODE
LOWhyperextract/__init__.py25CODE
LOWhyperextract/__init__.py25CODE
LOWhyperextract/__init__.py25CODE
LOWhyperextract/__init__.py25CODE
LOWhyperextract/__init__.py38CODE
LOWhyperextract/__init__.py41CODE
LOWhyperextract/__init__.py41CODE
LOWhyperextract/__init__.py41CODE
LOWhyperextract/__init__.py41CODE
LOWhyperextract/__init__.py44CODE
LOWhyperextract/__init__.py44CODE
LOWhyperextract/__init__.py44CODE
67 more matches not shown…
Structural Annotation Overuse75 hits · 121 pts
SeverityFileLineSnippetContext
LOWdocs/en/python/guides/working-with-autotypes.md53# Step 1: Define custom schemasCOMMENT
LOWdocs/en/python/guides/working-with-autotypes.md67# Step 2: Configure LLM clientsCOMMENT
LOWdocs/en/python/guides/working-with-autotypes.md73# Step 3: Create configured AutoGraphCOMMENT
LOWdocs/en/python/guides/working-with-autotypes.md87# Step 4: ExtractCOMMENT
LOWdocs/en/python/guides/working-with-autotypes.md96# Step 5: Access resultsSTRING
LOWdocs/en/python/guides/working-with-autotypes.md106# Step 6: Use built-in featuresSTRING
LOWdocs/en/cli/workflow.md13## Step 1: Prepare Your DocumentCOMMENT
LOWdocs/en/cli/workflow.md23## Step 2: Extract KnowledgeCOMMENT
LOWdocs/en/cli/workflow.md46## Step 3: Explore the KnowledgeCOMMENT
LOWdocs/en/cli/workflow.md83## Step 4: Search for InformationCOMMENT
LOWdocs/en/cli/workflow.md121## Step 5: Chat with Your KnowledgeCOMMENT
LOWdocs/en/cli/workflow.md162## Step 6: Expand Your Knowledge AbstractCOMMENT
LOWdocs/en/cli/workflow.md184## Step 7: Rebuild Index (If Needed)COMMENT
LOWdocs/en/cli/workflow.md216# Step 1: ParseCOMMENT
LOWdocs/en/cli/workflow.md221# Step 2: InfoCOMMENT
LOWdocs/en/cli/workflow.md226# Step 3: Search exampleCOMMENT
LOWdocs/en/cli/workflow.md231# Step 4: Open visualizationCOMMENT
LOWdocs/en/getting-started/cli-quickstart.md14## Step 1: Configure API KeyCOMMENT
LOWdocs/en/getting-started/cli-quickstart.md48## Step 2: Download Sample DocumentCOMMENT
LOWdocs/en/getting-started/cli-quickstart.md83## Step 3: Extract KnowledgeCOMMENT
LOWdocs/en/getting-started/cli-quickstart.md116## Step 4: Visualize the Knowledge GraphCOMMENT
LOWdocs/en/getting-started/cli-quickstart.md130## Step 5: Search Your Knowledge AbstractCOMMENT
LOWdocs/en/getting-started/cli-quickstart.md151## Step 6: Chat with Your KnowledgeCOMMENT
LOWdocs/en/getting-started/cli-quickstart.md167## Step 7: Incrementally Add KnowledgeCOMMENT
LOWdocs/en/getting-started/python-quickstart.md13## Step 1: Set Up Your ProjectCOMMENT
LOWdocs/en/getting-started/python-quickstart.md31## Step 2: Configure Your ModelCOMMENT
LOWdocs/en/getting-started/python-quickstart.md47## Step 3: Create Your First Extraction ScriptCOMMENT
LOWdocs/en/getting-started/python-quickstart.md108## Step 4: Run the ScriptSTRING
LOWdocs/en/getting-started/python-quickstart.md129## Step 5: Working with ResultsSTRING
LOWdocs/en/getting-started/python-quickstart.md153## Step 6: Save and LoadSTRING
LOWdocs/en/getting-started/python-quickstart.md168## Step 7: Incremental UpdatesSTRING
LOWdocs/en/templates/examples/research-paper.md33### Step 1: Extract KnowledgeCOMMENT
LOWdocs/en/templates/examples/research-paper.md77### Step 2: Explore ResultsCOMMENT
LOWdocs/en/templates/examples/research-paper.md113### Step 3: Build Searchable IndexCOMMENT
LOWdocs/en/templates/examples/research-paper.md125### Step 4: VisualizeCOMMENT
LOWdocs/en/templates/examples/research-paper.md139### Step 5: QueryCOMMENT
LOWdocs/en/templates/examples/financial-report.md62### Step 1: Extract Earnings DataCOMMENT
LOWdocs/en/templates/examples/financial-report.md113### Step 2: Extract Risk FactorsCOMMENT
LOWdocs/en/templates/examples/financial-report.md129### Step 3: Save and CompareCOMMENT
LOWdocs/en/templates/examples/legal-contract.md62### Step 1: Extract ObligationsCOMMENT
LOWdocs/en/templates/examples/legal-contract.md112### Step 2: Extract Defined TermsCOMMENT
LOWdocs/en/templates/examples/legal-contract.md137### Step 3: Build Contract Knowledge BaseCOMMENT
LOWdocs/en/tutorials/research-assistant/step3-chat.md1# Step 3: Q&A SystemCOMMENT
LOWdocs/en/tutorials/research-assistant/step2-search.md1# Step 2: Semantic SearchCOMMENT
LOWdocs/en/tutorials/research-assistant/step1-extract.md1# Step 1: Extract KnowledgeCOMMENT
LOWdocs/en/tutorials/knowledge-base/step2-ingest.md1# Step 2: IngestCOMMENT
LOWdocs/en/tutorials/knowledge-base/step1-setup.md1# Step 1: SetupCOMMENT
LOWdocs/en/tutorials/knowledge-base/step3-query.md1# Step 3: QueryCOMMENT
LOWhyperextract/types/graph.py919 # Step 4: Combine context or use fallbackCOMMENT
LOWhyperextract/types/graph.py925 # Step 5: Invoke LLM with structured contextCOMMENT
LOWhyperextract/types/graph.py895 # Step 2: Retrieve and format nodes contextCOMMENT
LOWhyperextract/types/graph.py907 # Step 3: Retrieve and format edges contextCOMMENT
LOWhyperextract/types/graph.py936 # Step 6: Inject retrieved nodes and edges into response metadataCOMMENT
LOWhyperextract/types/base.py470 # Step 1: Retrieve relevant items from knowledge abstractCOMMENT
LOWhyperextract/types/base.py473 # Step 2: Format context from retrieved itemsCOMMENT
LOWhyperextract/types/base.py494 # Step 3: Create QA prompt template and invoke LLMCOMMENT
LOWhyperextract/types/base.py506 # Step 4: Inject retrieved items into response metadataCOMMENT
LOWhyperextract/types/base.py511 # Step 5: Return the AIMessage responseCOMMENT
LOWhyperextract/types/hypergraph.py807 # Step 4: Combine context or use fallbackCOMMENT
LOWhyperextract/types/hypergraph.py813 # Step 5: Invoke LLM with structured contextCOMMENT
15 more matches not shown…
Excessive Try-Catch Wrapping93 hits · 109 pts
SeverityFileLineSnippetContext
LOWdocs/zh/tutorials/document-analysis/index.md184 except Exception as e:CODE
LOWdocs/zh/tutorials/knowledge-base/step2-ingest.md243except Exception as e:CODE
LOWdocs/zh/tutorials/knowledge-base/step2-ingest.md260 except Exception as e:CODE
LOWdocs/en/tutorials/document-analysis/index.md184 except Exception as e:CODE
LOWdocs/en/tutorials/knowledge-base/step2-ingest.md243except Exception as e:CODE
MEDIUMdocs/en/tutorials/knowledge-base/step2-ingest.md244 print(f"Error processing {doc}: {e}")CODE
LOWdocs/en/tutorials/knowledge-base/step2-ingest.md260 except Exception as e:CODE
LOWhyperextract/types/list.py303 except Exception as e:CODE
LOWhyperextract/types/graph.py956 except Exception as e:CODE
LOWhyperextract/types/graph.py964 except Exception as e:CODE
LOWhyperextract/types/graph.py976 except Exception as e:CODE
LOWhyperextract/types/graph.py984 except Exception as e:CODE
LOWhyperextract/types/model.py293 except Exception as e:CODE
LOWhyperextract/types/base.py353 except Exception:CODE
LOWhyperextract/types/base.py544 except Exception as e:CODE
LOWhyperextract/types/base.py572 except Exception as e:CODE
LOWhyperextract/types/hypergraph.py844 except Exception as e:CODE
LOWhyperextract/types/hypergraph.py852 except Exception as e:CODE
LOWhyperextract/types/hypergraph.py864 except Exception as e:CODE
LOWhyperextract/types/hypergraph.py872 except Exception as e:CODE
LOWhyperextract/methods/typical/itext2kg_star.py292 except Exception as e:STRING
LOWhyperextract/methods/typical/kg_gen.py194 except Exception as e:STRING
LOWhyperextract/methods/typical/atom.py572 except Exception as e:STRING
LOWhyperextract/methods/rag/graph_rag.py524 except Exception as e:CODE
LOWhyperextract/methods/rag/graph_rag.py467 except Exception as e:CODE
LOWhyperextract/methods/rag/cog_rag.py521 except Exception as e:CODE
MEDIUMhyperextract/methods/rag/cog_rag.py522 print(f"Error visualizing {layer_name}: {e}")CODE
LOWhyperextract/utils/obsidian.py146 except Exception as exc: # noqa: BLE001 - extractor is user-suppliedCODE
LOWhyperextract/utils/obsidian.py203 except Exception as exc: # noqa: BLE001CODE
LOWhyperextract/utils/obsidian.py239 except Exception as exc: # noqa: BLE001CODE
LOWhyperextract/utils/template_engine/gallery.py109 except Exception as e:CODE
LOWhyperextract/utils/template_engine/parsers/loader.py176 except Exception as e:CODE
LOWhyperextract/cli/cli.py424 except Exception as e:CODE
LOWhyperextract/cli/cli.py434 except Exception as e:CODE
LOWhyperextract/cli/cli.py494 except Exception as e:CODE
LOWhyperextract/cli/cli.py513 except Exception as e:CODE
LOWhyperextract/cli/cli.py616 except Exception as e:CODE
LOWhyperextract/cli/cli.py687 except Exception as e:CODE
LOWhyperextract/cli/cli.py741 except Exception as e:CODE
LOWhyperextract/cli/cli.py759 except Exception as e:CODE
LOWhyperextract/cli/cli.py894 except Exception as e:CODE
LOWhyperextract/cli/cli.py946 except Exception as e:CODE
LOWexamples/zh/methods/itext2kg_demo.py51 except Exception as e:CODE
LOWexamples/zh/methods/itext2kg_star_demo.py51 except Exception as e:CODE
LOWexamples/zh/methods/kg_gen_demo.py51 except Exception as e:CODE
LOWexamples/zh/methods/hypergraph_rag_demo.py51 except Exception as e:CODE
LOWexamples/zh/methods/light_rag_demo.py51 except Exception as e:CODE
LOWexamples/zh/methods/graph_rag_demo.py51 except Exception as e:CODE
LOWexamples/zh/methods/hyper_rag_demo.py51 except Exception as e:CODE
LOWexamples/zh/methods/atom_demo.py51 except Exception as e:CODE
LOWexamples/zh/methods/cog_rag_demo.py51 except Exception as e:CODE
LOWexamples/zh/autotypes/set_demo.py77 except Exception as e:CODE
LOWexamples/zh/autotypes/graph_demo.py79 except Exception as e:CODE
LOWexamples/zh/autotypes/list_demo.py71 except Exception as e:CODE
LOWexamples/zh/autotypes/model_demo.py83 except Exception as e:CODE
LOWexamples/zh/autotypes/spatial_graph_demo.py82 except Exception as e:CODE
LOWexamples/zh/autotypes/spatio_temporal_graph_demo.py92 except Exception as e:CODE
LOWexamples/zh/autotypes/hypergraph_demo.py82 except Exception as e:CODE
LOWexamples/zh/autotypes/temporal_graph_demo.py89 except Exception as e:CODE
LOWexamples/en/methods/itext2kg_demo.py51 except Exception as e:CODE
33 more matches not shown…
Cross-File Repetition20 hits · 100 pts
SeverityFileLineSnippetContext
HIGHhyperextract/types/spatio_temporal_graph.py0you are a professional entity extraction specialist. your task is to extract all important entities (nodes) from the texSTRING
HIGHhyperextract/types/temporal_graph.py0you are a professional entity extraction specialist. your task is to extract all important entities (nodes) from the texSTRING
HIGHhyperextract/types/spatial_graph.py0you are a professional entity extraction specialist. your task is to extract all important entities (nodes) from the texSTRING
HIGHhyperextract/types/spatio_temporal_graph.py0you are a professional spatial knowledge graph extraction specialist. your task is to extract entities (nodes) and spatiSTRING
HIGHhyperextract/types/temporal_graph.py0you are a professional spatial knowledge graph extraction specialist. your task is to extract entities (nodes) and spatiSTRING
HIGHhyperextract/types/spatial_graph.py0you are a professional spatial knowledge graph extraction specialist. your task is to extract entities (nodes) and spatiSTRING
HIGHhyperextract/methods/typical/itext2kg.py0atom implementation using autograph as the core engine. this module provides a specialized implementation of the atom alSTRING
HIGHhyperextract/methods/typical/itext2kg_star.py0atom implementation using autograph as the core engine. this module provides a specialized implementation of the atom alSTRING
HIGHhyperextract/methods/typical/atom.py0atom implementation using autograph as the core engine. this module provides a specialized implementation of the atom alSTRING
HIGHhyperextract/methods/rag/hyper_rag.py0represents an entity extracted from the source text.STRING
HIGHhyperextract/methods/rag/light_rag.py0represents an entity extracted from the source text.STRING
HIGHhyperextract/methods/rag/graph_rag.py0represents an entity extracted from the source text.STRING
HIGHhyperextract/methods/rag/cog_rag.py0represents an entity extracted from the source text.STRING
HIGHhyperextract/methods/rag/hyper_rag.py0you are an intelligent data merging assistant. you will receive a list of objects representing the same entity. your tasSTRING
HIGHhyperextract/methods/rag/light_rag.py0you are an intelligent data merging assistant. you will receive a list of objects representing the same entity. your tasSTRING
HIGHhyperextract/methods/rag/graph_rag.py0you are an intelligent data merging assistant. you will receive a list of objects representing the same entity. your tasSTRING
HIGHhyperextract/methods/rag/cog_rag.py0you are an intelligent data merging assistant. you will receive a list of objects representing the same entity. your tasSTRING
HIGHhyperextract/methods/rag/hyper_rag.py0initialize graph_rag engine. args: llm_client (basechatmodel): llm client for text generation. embedder (embeddings): emSTRING
HIGHhyperextract/methods/rag/light_rag.py0initialize graph_rag engine. args: llm_client (basechatmodel): llm client for text generation. embedder (embeddings): emSTRING
HIGHhyperextract/methods/rag/graph_rag.py0initialize graph_rag engine. args: llm_client (basechatmodel): llm client for text generation. embedder (embeddings): emSTRING
Modern AI Meta-Vocabulary25 hits · 71 pts
SeverityFileLineSnippetContext
MEDIUMdocs/zh/python/core-concepts.md128#### 基于 RAG 的方法COMMENT
MEDIUMdocs/zh/python/api-reference/methods/rag.md1# 基于 RAG 的方法COMMENT
MEDIUMdocs/zh/python/guides/using-methods.md41### 基于 RAG 的方法COMMENT
MEDIUMdocs/zh/python/guides/using-methods.md144## RAG vs 典型方法比较COMMENT
MEDIUMdocs/zh/python/guides/using-methods.md219# - 最快的 RAG 方法COMMENT
MEDIUMdocs/zh/concepts/methods.md30### 基于 RAG 的方法COMMENT
MEDIUMdocs/zh/concepts/methods.md132## 基于 RAG 的方法COMMENT
MEDIUMdocs/zh/templates/examples/research-paper.md244# 选项 1:使用 RAG 方法COMMENT
MEDIUMdocs/en/python/core-concepts.md128#### RAG-Based MethodsCOMMENT
MEDIUMdocs/en/python/api-reference/methods/rag.md1# RAG-Based MethodsCOMMENT
MEDIUMdocs/en/python/guides/using-methods.md41### RAG-Based MethodsCOMMENT
MEDIUMdocs/en/python/guides/using-methods.md144## RAG vs Typical ComparisonCOMMENT
MEDIUMdocs/en/python/guides/using-methods.md219# - Fastest RAG methodCOMMENT
MEDIUMdocs/en/cli/commands/config.md161# Use a larger OpenAI embedding modelCOMMENT
MEDIUMdocs/en/concepts/methods.md30### RAG-Based MethodsCOMMENT
MEDIUMdocs/en/concepts/methods.md144## RAG-Based MethodsCOMMENT
MEDIUMdocs/en/templates/examples/research-paper.md244# Option 1: Use RAG methodCOMMENT
MEDIUMhyperextract/cli/README.md223# Use Light RAG methodCOMMENT
MEDIUMhyperextract/cli/README.md226# Use Hyper RAG methodCOMMENT
MEDIUMhyperextract/cli/README_ZH.md223# 使用 Light RAG 方法COMMENT
MEDIUMhyperextract/cli/README_ZH.md226# 使用 Hyper RAG 方法COMMENT
MEDIUMexamples/README.md55│ ├── methods/ # RAG method demosCODE
MEDIUMexamples/README.md86 ├── methods/ # RAG method demosCODE
MEDIUMexamples/README_ZH.md56│ ├── methods/ # RAG 方法演示CODE
MEDIUMexamples/README_ZH.md87 ├── methods/ # RAG 方法演示CODE
Modern Structural Boilerplate32 hits · 32 pts
SeverityFileLineSnippetContext
LOWhyperextract/__init__.py52__all__ = [CODE
LOWhyperextract/types/list.py185 def _set_data_state(self, data: AutoListSchema) -> None:CODE
LOWhyperextract/types/list.py193 def _update_data_state(self, incoming_data: AutoListSchema) -> None:CODE
LOWhyperextract/types/graph.py418 def _set_data_state(self, data: AutoGraphSchema[NodeSchema, EdgeSchema]) -> None:CODE
LOWhyperextract/types/__init__.py64__all__ = [CODE
LOWhyperextract/types/model.py186 def _set_data_state(self, data: T) -> None:CODE
LOWhyperextract/types/model.py194 def _update_data_state(self, incoming_data: T) -> None:CODE
LOWhyperextract/types/set.py282 def _set_data_state(self, data: AutoSetSchema[ItemSchema]) -> None:CODE
LOWhyperextract/types/set.py292 def _update_data_state(self, incoming_data: AutoSetSchema[ItemSchema]) -> None:CODE
LOWhyperextract/types/base.py202 def _set_data_state(self, data: T) -> None:CODE
LOWhyperextract/types/base.py218 def _update_data_state(self, incoming_data: T) -> None:CODE
LOWhyperextract/types/hypergraph.py390 def _set_data_state(self, data: AutoHypergraphSchema) -> None:CODE
LOWhyperextract/types/hypergraph.py402 def _update_data_state(self, incoming_data: AutoHypergraphSchema) -> None:CODE
LOWhyperextract/methods/__init__.py20__all__ = [CODE
LOWhyperextract/methods/typical/__init__.py12__all__ = [CODE
LOWhyperextract/methods/rag/__init__.py13__all__ = [CODE
LOWhyperextract/utils/logging.py85def set_log_level(level: str) -> None:CODE
LOWhyperextract/utils/logging.py95__all__ = ["get_logger", "configure_logging", "set_log_level"]CODE
LOWhyperextract/utils/client.py22logger = logging.getLogger(__name__)CODE
LOWhyperextract/utils/__init__.py7__all__ = [CODE
LOWhyperextract/utils/template_engine/__init__.py25__all__ = [CODE
LOWhyperextract/utils/template_engine/parsers/options.py142__all__ = [CODE
LOW…erextract/utils/template_engine/parsers/identifiers.py131__all__ = [CODE
LOWhyperextract/utils/template_engine/parsers/__init__.py15__all__ = [CODE
LOWhyperextract/utils/template_engine/parsers/display.py35__all__ = [CODE
LOWhyperextract/utils/template_engine/parsers/loader.py184__all__ = [CODE
LOWhyperextract/utils/template_engine/parsers/guideline.py105__all__ = [CODE
LOWhyperextract/utils/template_engine/parsers/output.py92__all__ = [CODE
LOW…ract/utils/template_engine/parsers/schemas/__init__.py21__all__ = [CODE
LOWhyperextract/cli/__init__.py10__all__ = ["app"]CODE
LOWhyperextract/cli/commands/__init__.py6__all__ = ["list_app", "config_app"]CODE
LOWhyperextract/templates/__init__.py19__all__ = []CODE
Verbosity Indicators15 hits · 28 pts
SeverityFileLineSnippetContext
LOWhyperextract/types/graph.py919 # Step 4: Combine context or use fallbackCOMMENT
LOWhyperextract/types/graph.py925 # Step 5: Invoke LLM with structured contextCOMMENT
LOWhyperextract/types/graph.py895 # Step 2: Retrieve and format nodes contextCOMMENT
LOWhyperextract/types/graph.py907 # Step 3: Retrieve and format edges contextCOMMENT
LOWhyperextract/types/graph.py936 # Step 6: Inject retrieved nodes and edges into response metadataCOMMENT
LOWhyperextract/types/base.py470 # Step 1: Retrieve relevant items from knowledge abstractCOMMENT
LOWhyperextract/types/base.py473 # Step 2: Format context from retrieved itemsCOMMENT
LOWhyperextract/types/base.py494 # Step 3: Create QA prompt template and invoke LLMCOMMENT
LOWhyperextract/types/base.py506 # Step 4: Inject retrieved items into response metadataCOMMENT
LOWhyperextract/types/base.py511 # Step 5: Return the AIMessage responseCOMMENT
LOWhyperextract/types/hypergraph.py807 # Step 4: Combine context or use fallbackCOMMENT
LOWhyperextract/types/hypergraph.py813 # Step 5: Invoke LLM with structured contextCOMMENT
LOWhyperextract/types/hypergraph.py783 # Step 2: Retrieve and format nodes contextCOMMENT
LOWhyperextract/types/hypergraph.py795 # Step 3: Retrieve and format edges contextCOMMENT
LOWhyperextract/types/hypergraph.py824 # Step 6: Inject retrieved nodes and edges into response metadataCOMMENT
Self-Referential Comments5 hits · 15 pts
SeverityFileLineSnippetContext
MEDIUMhyperextract/types/graph.py274 # Initialize OMem instances (Before super().__init__)COMMENT
MEDIUMhyperextract/types/set.py181 # Initialize OMem instance BEFORE calling super().__init__ so _init_internal_state can use itCOMMENT
MEDIUMhyperextract/types/base.py714 # Create a new instance with the same configurationCOMMENT
MEDIUMhyperextract/types/hypergraph.py279 # Initialize OMem instancesCOMMENT
MEDIUMhyperextract/methods/rag/graph_rag.py417 # Create a subgraph without isolated nodes for Leiden to avoid warningsCOMMENT
Over-Commented Block12 hits · 12 pts
SeverityFileLineSnippetContext
LOWexamples/zh/templates/finance_template.py21# // test for 重大事件时间线COMMENT
LOWexamples/zh/templates/general_template.py21# // test for 基础知识图谱COMMENT
LOWexamples/zh/templates/medicine_template.py21# // test for 解剖结构图COMMENT
LOWexamples/zh/templates/tcm_template.py21# // test for 方剂组成图COMMENT
LOWexamples/zh/templates/industry_template.py21# // test for 设备拓扑图COMMENT
LOWexamples/zh/templates/legal_template.py21# // test for 案例引用图COMMENT
LOWexamples/en/templates/finance_template.py21# // test for Event TimelineCOMMENT
LOWexamples/en/templates/general_template.py21# // test for Base Knowledge GraphCOMMENT
LOWexamples/en/templates/medicine_template.py21# // test for Anatomy Structure GraphCOMMENT
LOWexamples/en/templates/tcm_template.py21# // test for Formula Composition GraphCOMMENT
LOWexamples/en/templates/industry_template.py21# // test for Equipment TopologyCOMMENT
LOWexamples/en/templates/legal_template.py21# // test for Case Citation GraphCOMMENT
Deep Nesting8 hits · 8 pts
SeverityFileLineSnippetContext
LOWtests/mocks.py101CODE
LOWhyperextract/types/base.py336CODE
LOWhyperextract/types/base.py456CODE
LOWhyperextract/methods/rag/graph_rag.py368CODE
LOWhyperextract/utils/template_engine/gallery.py54CODE
LOWhyperextract/cli/cli.py161CODE
LOWhyperextract/cli/cli.py580CODE
LOWhyperextract/cli/cli.py692CODE
Redundant / Tautological Comments5 hits · 6 pts
SeverityFileLineSnippetContext
LOWhyperextract/types/graph.py651 # Check if both endpoints existCOMMENT
LOWhyperextract/types/model.py162 # Check if the value is not considered emptyCOMMENT
LOWhyperextract/types/model.py249 # Check if there's data to indexCOMMENT
LOWhyperextract/types/model.py277 # Check if there's data to searchCOMMENT
LOWhyperextract/methods/typical/atom.py522 # Set t_obs to extraction timestampSTRING
AI Structural Patterns6 hits · 5 pts
SeverityFileLineSnippetContext
LOWhyperextract/types/spatio_temporal_graph.py144CODE
LOWhyperextract/types/temporal_graph.py144CODE
LOWhyperextract/types/graph.py153CODE
LOWhyperextract/types/spatial_graph.py129CODE
LOWhyperextract/types/set.py102CODE
LOWhyperextract/types/hypergraph.py151CODE
Fake / Example Data2 hits · 2 pts
SeverityFileLineSnippetContext
LOWhyperextract/methods/typical/atom.py260**Input**: "John Doe's marriage is happening on 26-02-2026."CODE
LOWhyperextract/methods/typical/atom.py262- (John Doe, has_status, Married, t_start=["2026-02-26"], t_end=[], atomic_facts=["John Doe's marriage is happening on 2CODE