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.

24.8 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,600 GitHub stars. SynthScan v2.0 examined 76,587 lines of code across 447 source files, recording 903 pattern matches distributed across 17 syntactic categories. The overall adjusted score of 24.8 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).

24.8
Adjusted Score
24.8
Raw Score
100%
Time Factor
2026-08-12
Last Push
3.6K
Stars
Python
Language
76.6K
Lines of Code
447
Files
903
Pattern Hits
2026-08-29
Scan Date
0.25
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 113MEDIUM 220LOW 570

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 903 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.py160# =============================================================================COMMENT
MEDIUMtests/utils/test_client.py162# =============================================================================COMMENT
MEDIUMtests/utils/test_client.py207# =============================================================================COMMENT
MEDIUMtests/utils/test_client.py209# =============================================================================COMMENT
MEDIUMtests/utils/test_client.py419# =============================================================================COMMENT
MEDIUMtests/utils/test_client.py421# =============================================================================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.py458# =============================================================================COMMENT
MEDIUMtests/utils/test_client.py460# =============================================================================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.py19# ==============================================================================COMMENT
MEDIUMhyperextract/types/spatio_temporal_graph.py21# ==============================================================================COMMENT
MEDIUMhyperextract/types/spatio_temporal_graph.py265 # ==============================================================================STRING
MEDIUMhyperextract/types/spatio_temporal_graph.py267 # ==============================================================================STRING
MEDIUMhyperextract/types/temporal_graph.py19# ==============================================================================COMMENT
MEDIUMhyperextract/types/temporal_graph.py21# ==============================================================================COMMENT
110 more matches not shown…
Magic Placeholder Names54 hits · 345 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.md46 he config init -p openai -k YOUR_API_KEYCODE
HIGHdocs/zh/resources/troubleshooting.md55 export OPENAI_API_KEY=your-api-keyCODE
HIGHdocs/zh/resources/troubleshooting.md56 export ANTHROPIC_API_KEY=your-api-key # 用于 AnthropicCODE
HIGHdocs/zh/resources/troubleshooting.md57 export DEEPSEEK_API_KEY=your-api-key # 用于 DeepSeekCODE
HIGHdocs/zh/resources/faq.md64he config init -p openai -k YOUR_API_KEYCODE
HIGHdocs/zh/resources/faq.md65he config init -p bailian -k YOUR_API_KEYCODE
HIGHdocs/zh/resources/faq.md75export OPENAI_API_KEY=your-api-key # OpenAI/百炼CODE
HIGHdocs/zh/resources/faq.md76export ANTHROPIC_API_KEY=your-api-key # AnthropicCODE
HIGHdocs/zh/resources/faq.md77export DEEPSEEK_API_KEY=your-api-key # DeepSeekCODE
HIGHdocs/zh/resources/faq.md82OPENAI_API_KEY=your-api-keyCODE
HIGHdocs/zh/resources/faq.md91he config init -p openai -k YOUR_API_KEYCODE
HIGHdocs/zh/resources/faq.md100he config llm --base-url https://your-provider.com/v1 -k YOUR_API_KEYCODE
HIGHdocs/zh/resources/faq.md229he config init -p openai -k YOUR_API_KEYCODE
HIGHdocs/zh/cli/configuration.md238 api_key = "sk-your-api-key"CODE
HIGHdocs/zh/cli/configuration.md270 api_key = "sk-your-api-key"CODE
HIGHdocs/zh/cli/configuration.md322 he config init -p bailian -k YOUR_API_KEYCODE
HIGHdocs/zh/cli/commands/config.md51he config init -p openai -k sk-your-api-key-hereCODE
HIGHdocs/zh/cli/commands/config.md54he config init -p bailian -k sk-your-api-key-hereCODE
HIGHdocs/zh/cli/commands/config.md203 api_key = "sk-your-api-key"CODE
HIGHdocs/zh/cli/commands/config.md245he config init -k your-api-keyCODE
HIGHdocs/zh/cli/commands/config.md251export OPENAI_API_KEY=your-api-keyCODE
HIGHdocs/zh/cli/commands/config.md257he config init -k your-api-keyCODE
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.md48 he config init -p openai -k YOUR_API_KEYCODE
HIGHdocs/en/resources/troubleshooting.md57 export OPENAI_API_KEY=your-api-keyCODE
HIGHdocs/en/resources/troubleshooting.md58 export ANTHROPIC_API_KEY=your-api-key # for AnthropicCODE
HIGHdocs/en/resources/troubleshooting.md59 export DEEPSEEK_API_KEY=your-api-key # for DeepSeekCODE
HIGHdocs/en/resources/faq.md64he config init -p openai -k YOUR_API_KEYCODE
HIGHdocs/en/resources/faq.md65he config init -p bailian -k YOUR_API_KEYCODE
HIGHdocs/en/resources/faq.md75export OPENAI_API_KEY=your-api-key # OpenAI/BailianCODE
HIGHdocs/en/resources/faq.md76export ANTHROPIC_API_KEY=your-api-key # AnthropicCODE
HIGHdocs/en/resources/faq.md77export DEEPSEEK_API_KEY=your-api-key # DeepSeekCODE
HIGHdocs/en/resources/faq.md82OPENAI_API_KEY=your-api-keyCODE
HIGHdocs/en/resources/faq.md91he config init -p openai -k YOUR_API_KEYCODE
HIGHdocs/en/resources/faq.md100he config llm --base-url https://your-provider.com/v1 -k YOUR_API_KEYCODE
HIGHdocs/en/resources/faq.md229he config init -p openai -k YOUR_API_KEYCODE
HIGHdocs/en/cli/configuration.md238 api_key = "sk-your-api-key"CODE
HIGHdocs/en/cli/configuration.md270 api_key = "sk-your-api-key"CODE
HIGHdocs/en/cli/configuration.md322 he config init -p bailian -k YOUR_API_KEYCODE
HIGHdocs/en/cli/commands/config.md51he config init -p openai -k sk-your-api-key-hereCODE
HIGHdocs/en/cli/commands/config.md54he config init -p bailian -k sk-your-api-key-hereCODE
HIGHdocs/en/cli/commands/config.md203 api_key = "sk-your-api-key"CODE
HIGHdocs/en/cli/commands/config.md245he config init -k your-api-keyCODE
HIGHdocs/en/cli/commands/config.md251export OPENAI_API_KEY=your-api-keyCODE
HIGHdocs/en/cli/commands/config.md257he config init -k your-api-keyCODE
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 Identifiers212 hits · 229 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
152 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.py794Unified graph search interface. Retrieves nodes and edges semantically related to the query. Always retSTRING
HIGHhyperextract/types/model.py370Operator overload for '+' to combine AutoModel instances into AutoList. Supports multiple combination patterns:STRING
HIGHhyperextract/types/set.py559Removes and returns an arbitrary item from the set. Returns: The removed item. Raises: STRING
HIGHhyperextract/types/set.py793Equality comparison: set1 == set2. Two sets are equal if they have the same schema and key set. Note: DSTRING
HIGHhyperextract/types/set.py824Subset comparison: set1 <= set2. Args: other: Another AutoSet instance. Returns: STRING
HIGHhyperextract/types/set.py850Proper subset comparison: set1 < set2. Args: other: Another AutoSet instance. Returns: STRING
HIGHhyperextract/types/set.py867Superset comparison: set1 >= set2. Args: other: Another AutoSet instance. Returns: STRING
HIGHhyperextract/types/set.py890Proper superset comparison: set1 > set2. Args: other: Another AutoSet instance. Returns: STRING
HIGHhyperextract/types/set.py907Test whether every key in the set is in other. Args: other: Another AutoSet instance. RetuSTRING
HIGHhyperextract/types/set.py921Test whether every key in other is in the set. Args: other: Another AutoSet instance. RetuSTRING
HIGHhyperextract/types/set.py935Test whether the set has no keys in common with other. Args: other: Another AutoSet instance. STRING
HIGHhyperextract/types/base.py681Operator overload for '+' to merge two knowledge instances. Creates a new knowledge instance by merging the datSTRING
HIGHhyperextract/types/hypergraph.py699Unified hypergraph search interface. Retrieves nodes and hyperedges semantically related to the query. STRING
HIGHhyperextract/utils/client.py324Create an LLM client from a specification string or dict. Args: spec: String shorthand (e.g. "bailian:qwen-STRING
HIGHhyperextract/utils/client.py397Create an Embedder client from a specification string or dict. Args: spec: String shorthand (e.g. "bailian:STRING
HIGHhyperextract/utils/client.py519Get OpenAI LLM client and Embedder from config. Backward-compatible: reads ~/.he/config.toml. Args: coSTRING
HIGHhyperextract/utils/obsidian.py393Export graph-structured knowledge to an Obsidian vault. Each node is written as a Markdown note whose YAML front-maSTRING
HIGHhyperextract/utils/template_engine/factory.py44Create method template instance. Note: Method templates use English prompts only. Language is hardcodedSTRING
HIGHhyperextract/utils/template_engine/factory.py387Create 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 Imports128 hits · 127 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__.py27CODE
LOWhyperextract/__init__.py27CODE
LOWhyperextract/__init__.py27CODE
LOWhyperextract/__init__.py27CODE
LOWhyperextract/__init__.py27CODE
LOWhyperextract/__init__.py27CODE
LOWhyperextract/__init__.py27CODE
LOWhyperextract/__init__.py27CODE
LOWhyperextract/__init__.py27CODE
LOWhyperextract/__init__.py40CODE
LOWhyperextract/__init__.py40CODE
LOWhyperextract/__init__.py40CODE
LOWhyperextract/__init__.py40CODE
LOWhyperextract/__init__.py43CODE
LOWhyperextract/__init__.py43CODE
LOWhyperextract/__init__.py43CODE
LOWhyperextract/__init__.py46CODE
68 more matches not shown…
Structural Annotation Overuse75 hits · 120 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.md66## Step 2: Download Sample DocumentCOMMENT
LOWdocs/en/getting-started/cli-quickstart.md101## Step 3: Extract KnowledgeCOMMENT
LOWdocs/en/getting-started/cli-quickstart.md134## Step 4: Visualize the Knowledge GraphCOMMENT
LOWdocs/en/getting-started/cli-quickstart.md148## Step 5: Search Your Knowledge AbstractCOMMENT
LOWdocs/en/getting-started/cli-quickstart.md169## Step 6: Chat with Your KnowledgeCOMMENT
LOWdocs/en/getting-started/cli-quickstart.md185## 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.md73## Step 3: Create Your First Extraction ScriptCOMMENT
LOWdocs/en/getting-started/python-quickstart.md134## Step 4: Run the ScriptSTRING
LOWdocs/en/getting-started/python-quickstart.md155## Step 5: Working with ResultsSTRING
LOWdocs/en/getting-started/python-quickstart.md179## Step 6: Save and LoadSTRING
LOWdocs/en/getting-started/python-quickstart.md194## 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.py925 # Step 4: Combine context or use fallbackCOMMENT
LOWhyperextract/types/graph.py931 # Step 5: Invoke LLM with structured contextCOMMENT
LOWhyperextract/types/graph.py901 # Step 2: Retrieve and format nodes contextCOMMENT
LOWhyperextract/types/graph.py913 # Step 3: Retrieve and format edges contextCOMMENT
LOWhyperextract/types/graph.py942 # Step 6: Inject retrieved nodes and edges into response metadataCOMMENT
LOWhyperextract/types/base.py480 # Step 1: Retrieve relevant items from knowledge abstractCOMMENT
LOWhyperextract/types/base.py483 # Step 2: Format context from retrieved itemsCOMMENT
LOWhyperextract/types/base.py504 # Step 3: Create QA prompt template and invoke LLMCOMMENT
LOWhyperextract/types/base.py516 # Step 4: Inject retrieved items into response metadataCOMMENT
LOWhyperextract/types/base.py521 # Step 5: Return the AIMessage responseCOMMENT
LOWhyperextract/types/hypergraph.py813 # Step 4: Combine context or use fallbackCOMMENT
LOWhyperextract/types/hypergraph.py819 # Step 5: Invoke LLM with structured contextCOMMENT
15 more matches not shown…
Excessive Try-Catch Wrapping94 hits · 110 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.py962 except Exception as e:CODE
LOWhyperextract/types/graph.py970 except Exception as e:CODE
LOWhyperextract/types/graph.py982 except Exception as e:CODE
LOWhyperextract/types/graph.py990 except Exception as e:CODE
LOWhyperextract/types/model.py295 except Exception as e:CODE
LOWhyperextract/types/base.py256 except Exception as e:CODE
LOWhyperextract/types/base.py366 except Exception:CODE
LOWhyperextract/types/base.py554 except Exception as e:CODE
LOWhyperextract/types/base.py582 except Exception as e:CODE
LOWhyperextract/types/hypergraph.py850 except Exception as e:CODE
LOWhyperextract/types/hypergraph.py858 except Exception as e:CODE
LOWhyperextract/types/hypergraph.py870 except Exception as e:CODE
LOWhyperextract/types/hypergraph.py878 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.py526 except Exception as e:CODE
LOWhyperextract/methods/rag/graph_rag.py469 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.py147 except Exception as exc:CODE
LOWhyperextract/utils/obsidian.py204 except Exception as exc:CODE
LOWhyperextract/utils/obsidian.py240 except Exception as exc:CODE
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.py421 except Exception as e:CODE
LOWhyperextract/cli/cli.py431 except Exception as e:CODE
LOWhyperextract/cli/cli.py491 except Exception as e:CODE
LOWhyperextract/cli/cli.py510 except Exception as e:CODE
LOWhyperextract/cli/cli.py613 except Exception as e:CODE
LOWhyperextract/cli/cli.py684 except Exception as e:CODE
LOWhyperextract/cli/cli.py738 except Exception as e:CODE
LOWhyperextract/cli/cli.py756 except Exception as e:CODE
LOWhyperextract/cli/cli.py891 except Exception as e:CODE
LOWhyperextract/cli/cli.py943 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
34 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.md173# 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.md59│ ├── methods/ # RAG method demosCODE
MEDIUMexamples/README.md90 ├── methods/ # RAG method demosCODE
MEDIUMexamples/README_ZH.md60│ ├── methods/ # RAG 方法演示CODE
MEDIUMexamples/README_ZH.md91 ├── 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.py417 def _set_data_state(self, data: AutoGraphSchema[NodeSchema, EdgeSchema]) -> None:CODE
LOWhyperextract/types/__init__.py64__all__ = [CODE
LOWhyperextract/types/model.py188 def _set_data_state(self, data: T) -> None:CODE
LOWhyperextract/types/model.py196 def _update_data_state(self, incoming_data: T) -> None:CODE
LOWhyperextract/types/set.py280 def _set_data_state(self, data: AutoSetSchema[ItemSchema]) -> None:CODE
LOWhyperextract/types/set.py290 def _update_data_state(self, incoming_data: AutoSetSchema[ItemSchema]) -> None:CODE
LOWhyperextract/types/base.py199 def _set_data_state(self, data: T) -> None:CODE
LOWhyperextract/types/base.py214 def _update_data_state(self, incoming_data: T) -> None:CODE
LOWhyperextract/types/hypergraph.py389 def _set_data_state(self, data: AutoHypergraphSchema) -> None:CODE
LOWhyperextract/types/hypergraph.py401 def _update_data_state(self, incoming_data: AutoHypergraphSchema) -> None:CODE
LOWhyperextract/methods/__init__.py19__all__ = [CODE
LOWhyperextract/methods/typical/__init__.py12__all__ = [CODE
LOWhyperextract/methods/rag/__init__.py13__all__ = [CODE
LOWhyperextract/utils/logging.py84def set_log_level(level: str) -> None:CODE
LOWhyperextract/utils/logging.py94__all__ = ["configure_logging", "get_logger", "set_log_level"]CODE
LOWhyperextract/utils/client.py22logger = logging.getLogger(__name__)CODE
LOWhyperextract/utils/__init__.py7__all__ = [CODE
LOWhyperextract/utils/template_engine/__init__.py24__all__ = [CODE
LOWhyperextract/utils/template_engine/parsers/options.py141__all__ = [CODE
LOW…erextract/utils/template_engine/parsers/identifiers.py132__all__ = [CODE
LOWhyperextract/utils/template_engine/parsers/__init__.py14__all__ = [CODE
LOWhyperextract/utils/template_engine/parsers/display.py36__all__ = [CODE
LOWhyperextract/utils/template_engine/parsers/loader.py184__all__ = [CODE
LOWhyperextract/utils/template_engine/parsers/guideline.py102__all__ = [CODE
LOWhyperextract/utils/template_engine/parsers/output.py91__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__ = ["config_app", "list_app"]CODE
LOWhyperextract/templates/__init__.py19__all__ = []CODE
Verbosity Indicators15 hits · 28 pts
SeverityFileLineSnippetContext
LOWhyperextract/types/graph.py925 # Step 4: Combine context or use fallbackCOMMENT
LOWhyperextract/types/graph.py931 # Step 5: Invoke LLM with structured contextCOMMENT
LOWhyperextract/types/graph.py901 # Step 2: Retrieve and format nodes contextCOMMENT
LOWhyperextract/types/graph.py913 # Step 3: Retrieve and format edges contextCOMMENT
LOWhyperextract/types/graph.py942 # Step 6: Inject retrieved nodes and edges into response metadataCOMMENT
LOWhyperextract/types/base.py480 # Step 1: Retrieve relevant items from knowledge abstractCOMMENT
LOWhyperextract/types/base.py483 # Step 2: Format context from retrieved itemsCOMMENT
LOWhyperextract/types/base.py504 # Step 3: Create QA prompt template and invoke LLMCOMMENT
LOWhyperextract/types/base.py516 # Step 4: Inject retrieved items into response metadataCOMMENT
LOWhyperextract/types/base.py521 # Step 5: Return the AIMessage responseCOMMENT
LOWhyperextract/types/hypergraph.py813 # Step 4: Combine context or use fallbackCOMMENT
LOWhyperextract/types/hypergraph.py819 # Step 5: Invoke LLM with structured contextCOMMENT
LOWhyperextract/types/hypergraph.py789 # Step 2: Retrieve and format nodes contextCOMMENT
LOWhyperextract/types/hypergraph.py801 # Step 3: Retrieve and format edges contextCOMMENT
LOWhyperextract/types/hypergraph.py830 # Step 6: Inject retrieved nodes and edges into response metadataCOMMENT
Self-Referential Comments6 hits · 18 pts
SeverityFileLineSnippetContext
MEDIUMhyperextract/types/graph.py273 # Initialize OMem instances (Before super().__init__)COMMENT
MEDIUMhyperextract/types/set.py179 # Initialize OMem instance BEFORE calling super().__init__ so _init_internal_state can use itCOMMENT
MEDIUMhyperextract/types/base.py722 # Create a new instance with the same configurationCOMMENT
MEDIUMhyperextract/types/hypergraph.py278 # Initialize OMem instancesCOMMENT
MEDIUMhyperextract/methods/rag/graph_rag.py419 # Create a subgraph without isolated nodes for Leiden to avoid warningsCOMMENT
MEDIUMhyperextract/cli/config.py145 # Create the parent of the actual target path, not the default dir —COMMENT
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.py349CODE
LOWhyperextract/types/base.py466CODE
LOWhyperextract/methods/rag/graph_rag.py370CODE
LOWhyperextract/utils/template_engine/gallery.py54CODE
LOWhyperextract/cli/cli.py159CODE
LOWhyperextract/cli/cli.py577CODE
LOWhyperextract/cli/cli.py689CODE
Redundant / Tautological Comments5 hits · 6 pts
SeverityFileLineSnippetContext
LOWhyperextract/types/graph.py650 # Check if both endpoints existCOMMENT
LOWhyperextract/types/model.py164 # Check if the value is not considered emptyCOMMENT
LOWhyperextract/types/model.py251 # Check if there's data to indexCOMMENT
LOWhyperextract/types/model.py279 # 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.py146CODE
LOWhyperextract/types/temporal_graph.py146CODE
LOWhyperextract/types/graph.py152CODE
LOWhyperextract/types/spatial_graph.py131CODE
LOWhyperextract/types/set.py100CODE
LOWhyperextract/types/hypergraph.py150CODE
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