A modular graph-based Retrieval-Augmented Generation (RAG) system
This report summarizes scanner evidence for microsoft/graphrag, a Python project with 36,286 GitHub stars. SynthScan examined 62,954 lines of code across 746 source files, recording 1313 pattern matches distributed across 20 syntactic categories. The legacy adjusted pattern signal is 33.1 (High pattern signal); it is not an authorship estimate.
Use the findings to ask whether maintainers can explain intent, verify dependencies, simplify unnecessary scaffolding, and focus review effort. Risk Payload v1 adds ownership, supply-chain, over-engineering, and review-effort vectors when available. These are prompts for human verification, not probabilities, security findings, or measured maintenance costs.
Use each vector to guide manual verification of the underlying findings.
Can maintainers explain intent, assumptions, and trade-offs? 552 finding(s).
Are imports declared and package/API names verified? 396 finding(s).
Are wrappers, guards, and repeated structures necessary? 800 finding(s).
Which changes need focused human review? 1313 finding(s).
This chart tracks the legacy adjusted pattern score across scan runs. Changes can reflect source changes, scan coverage, or detector/scoring versions; they do not measure AI adoption or prove that a team refactored code. Compare runs only when their scoring versions are compatible. The dashed line tracks the raw pattern-hit count.
Groups findings by configured severity weight. Severity is not a confidence estimate, security rating, or proof that a package is missing. Verify imports against the project's manifests and inspect each finding in its local design context.
This horizontal bar chart shows where configured pattern scores accumulate across directories. Treat the bars as locations to inspect, not as evidence of authorship or code quality. Use the file-level findings to decide whether a directory needs a focused ownership, dependency, complexity, or review check.
The scanner identified 1313 distinct pattern matches across 20 syntactic categories. Each entry below represents a discrete location in the source code where the engine recorded a detector match to inspect in context. Expand any category row to inspect the individual file paths, line numbers, code snippets, and the lexical context (CODE, COMMENT, or STRING) in which each match was detected.
Reading the findings table: The Severity column indicates the configured finding weight (CRITICAL / HIGH / MEDIUM / LOW). The Context column identifies whether the match occurred inside executable code, an inline comment, or a string literal — legacy comment-context matches receive a ×1.5 score weight. The ⚡ bolt icon marks clustered matches: three or more patterns within a 10-line window, each receiving an additional ×1.5 density multiplier under the legacy scoring model.
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| HIGH | tests/unit/config/test_template_engine_config.py | 0 | test that missing required parameters raise validation errors. | STRING |
| HIGH | tests/unit/config/test_metrics_config.py | 0 | test that missing required parameters raise validation errors. | STRING |
| HIGH | tests/unit/config/test_retry_config.py | 0 | test that missing required parameters raise validation errors. | STRING |
| HIGH | tests/unit/config/test_tokenizer_config.py | 0 | test that missing required parameters raise validation errors. | STRING |
| HIGH | tests/unit/config/test_rate_limit_config.py | 0 | test that missing required parameters raise validation errors. | STRING |
| HIGH | tests/unit/config/test_model_config.py | 0 | test that missing required parameters raise validation errors. | STRING |
| HIGH | tests/unit/graphs/test_compute_degree.py | 0 | build a relationships dataframe from (source, target, weight) tuples. | STRING |
| HIGH | tests/unit/graphs/test_modularity.py | 0 | build a relationships dataframe from (source, target, weight) tuples. | STRING |
| HIGH | tests/unit/graphs/test_connected_components.py | 0 | build a relationships dataframe from (source, target, weight) tuples. | STRING |
| HIGH | tests/unit/graphs/test_stable_lcc.py | 0 | build a relationships dataframe from (source, target, weight) tuples. | STRING |
| HIGH | tests/unit/graphs/test_modularity.py | 0 | load the realistic graph fixture as a relationships dataframe. | STRING |
| HIGH | tests/unit/graphs/test_connected_components.py | 0 | load the realistic graph fixture as a relationships dataframe. | STRING |
| HIGH | tests/unit/graphs/test_stable_lcc.py | 0 | load the realistic graph fixture as a relationships dataframe. | STRING |
| HIGH | …ges/graphrag-llm/graphrag_llm/metrics/metrics_store.py | 0 | clear all metrics from the store. returns ------- none | STRING |
| HIGH | …raphrag-llm/graphrag_llm/metrics/noop_metrics_store.py | 0 | clear all metrics from the store. returns ------- none | STRING |
| HIGH | …phrag-llm/graphrag_llm/metrics/memory_metrics_store.py | 0 | clear all metrics from the store. returns ------- none | STRING |
| HIGH | …kages/graphrag-llm/graphrag_llm/tokenizer/tokenizer.py | 0 | encode the given text into a list of tokens. args ---- text: str the input text to encode. returns ------- list[int]: a | STRING |
| HIGH | …phrag-llm/graphrag_llm/tokenizer/tiktoken_tokenizer.py | 0 | encode the given text into a list of tokens. args ---- text: str the input text to encode. returns ------- list[int]: a | STRING |
| HIGH | …phrag-llm/graphrag_llm/tokenizer/lite_llm_tokenizer.py | 0 | encode the given text into a list of tokens. args ---- text: str the input text to encode. returns ------- list[int]: a | STRING |
| HIGH | …kages/graphrag-llm/graphrag_llm/tokenizer/tokenizer.py | 0 | decode a list of tokens back into a string. args ---- tokens: list[int] a list of tokens to decode. returns ------- str: | STRING |
| HIGH | …phrag-llm/graphrag_llm/tokenizer/tiktoken_tokenizer.py | 0 | decode a list of tokens back into a string. args ---- tokens: list[int] a list of tokens to decode. returns ------- str: | STRING |
| HIGH | …phrag-llm/graphrag_llm/tokenizer/lite_llm_tokenizer.py | 0 | decode a list of tokens back into a string. args ---- tokens: list[int] a list of tokens to decode. returns ------- str: | STRING |
| HIGH | …phrag-llm/graphrag_llm/embedding/lite_llm_embedding.py | 0 | initialize litellmcompletion. args ---- model_id: str the litellm model id, e.g., "openai/gpt-4o" model_config: modelcon | STRING |
| HIGH | …rag-llm/graphrag_llm/completion/lite_llm_completion.py | 0 | initialize litellmcompletion. args ---- model_id: str the litellm model id, e.g., "openai/gpt-4o" model_config: modelcon | STRING |
| HIGH | …rag-llm/graphrag_llm/completion/mock_llm_completion.py | 0 | initialize litellmcompletion. args ---- model_id: str the litellm model id, e.g., "openai/gpt-4o" model_config: modelcon | STRING |
| HIGH | …/graphrag/graphrag/config/models/prune_graph_config.py | 0 | parameterization settings for the default configuration. | STRING |
| HIGH | …graphrag/graphrag/config/models/basic_search_config.py | 0 | parameterization settings for the default configuration. | STRING |
| HIGH | …rag/graphrag/config/models/extract_graph_nlp_config.py | 0 | parameterization settings for the default configuration. | STRING |
| HIGH | …es/graphrag/graphrag/config/models/snapshots_config.py | 0 | parameterization settings for the default configuration. | STRING |
| HIGH | …raphrag/graphrag/config/models/global_search_config.py | 0 | parameterization settings for the default configuration. | STRING |
| HIGH | …s/graphrag/graphrag/config/models/embed_text_config.py | 0 | parameterization settings for the default configuration. | STRING |
| HIGH | …raphrag/graphrag/config/models/cluster_graph_config.py | 0 | parameterization settings for the default configuration. | STRING |
| HIGH | …raphrag/config/models/summarize_descriptions_config.py | 0 | parameterization settings for the default configuration. | STRING |
| HIGH | …graphrag/graphrag/config/models/local_search_config.py | 0 | parameterization settings for the default configuration. | STRING |
| HIGH | …es/graphrag/graphrag/config/models/graph_rag_config.py | 0 | parameterization settings for the default configuration. | STRING |
| HIGH | …es/graphrag/graphrag/config/models/reporting_config.py | 0 | parameterization settings for the default configuration. | STRING |
| HIGH | …graphrag/graphrag/config/models/drift_search_config.py | 0 | parameterization settings for the default configuration. | STRING |
| HIGH | …raphrag/graphrag/config/models/extract_graph_config.py | 0 | parameterization settings for the default configuration. | STRING |
| HIGH | …aphrag/graphrag/config/models/extract_claims_config.py | 0 | parameterization settings for the default configuration. | STRING |
| HIGH | …rag/graphrag/config/models/community_reports_config.py | 0 | parameterization settings for the default configuration. | STRING |
| HIGH | …graphrag-chunking/graphrag_chunking/chunking_config.py | 0 | parameterization settings for the default configuration. | STRING |
| HIGH | …aphrag-vectors/graphrag_vectors/vector_store_config.py | 0 | parameterization settings for the default configuration. | STRING |
| HIGH | …ages/graphrag-vectors/graphrag_vectors/index_schema.py | 0 | parameterization settings for the default configuration. | STRING |
| HIGH | packages/graphrag-input/graphrag_input/input_config.py | 0 | parameterization settings for the default configuration. | STRING |
| HIGH | …phrag/graphrag/callbacks/workflow_callbacks_manager.py | 0 | execute this callback when an error occurs in the pipeline. | STRING |
| HIGH | …ages/graphrag/graphrag/callbacks/workflow_callbacks.py | 0 | execute this callback when an error occurs in the pipeline. | STRING |
| HIGH | …graphrag/graphrag/callbacks/noop_workflow_callbacks.py | 0 | execute this callback when an error occurs in the pipeline. | STRING |
| HIGH | …phrag/graphrag/callbacks/console_workflow_callbacks.py | 0 | execute this callback when an error occurs in the pipeline. | STRING |
| HIGH | …ages/graphrag/graphrag/callbacks/workflow_callbacks.py | 0 | execute this callback to signal when the entire pipeline starts. | STRING |
| HIGH | …graphrag/graphrag/callbacks/noop_workflow_callbacks.py | 0 | execute this callback to signal when the entire pipeline starts. | STRING |
| HIGH | …phrag/graphrag/callbacks/console_workflow_callbacks.py | 0 | execute this callback to signal when the entire pipeline starts. | STRING |
| HIGH | …ages/graphrag/graphrag/callbacks/workflow_callbacks.py | 0 | execute this callback to signal when the entire pipeline ends. | STRING |
| HIGH | …graphrag/graphrag/callbacks/noop_workflow_callbacks.py | 0 | execute this callback to signal when the entire pipeline ends. | STRING |
| HIGH | …phrag/graphrag/callbacks/console_workflow_callbacks.py | 0 | execute this callback to signal when the entire pipeline ends. | STRING |
| HIGH | …g/graphrag/index/workflows/generate_text_embeddings.py | 0 | a module containing run_workflow method definition. | STRING |
| HIGH | …rag/graphrag/index/workflows/create_base_text_units.py | 0 | a module containing run_workflow method definition. | STRING |
| HIGH | …phrag/index/workflows/create_community_reports_text.py | 0 | a module containing run_workflow method definition. | STRING |
| HIGH | …g/graphrag/index/workflows/update_community_reports.py | 0 | a module containing run_workflow method definition. | STRING |
| HIGH | …g/graphrag/index/workflows/create_community_reports.py | 0 | a module containing run_workflow method definition. | STRING |
| HIGH | …kages/graphrag/graphrag/index/workflows/prune_graph.py | 0 | a module containing run_workflow method definition. | STRING |
| 43 more matches not shown… | ||||
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| LOW | tests/unit/vector_stores/test_timestamp.py | 40 | def test_empty_string_returns_empty(self): | CODE |
| LOW | tests/unit/vector_stores/test_timestamp.py | 77 | def test_produces_correct_keys(self): | CODE |
| LOW | tests/unit/vector_stores/test_timestamp.py | 104 | def test_contains_create_and_update_fields(self): | CODE |
| LOW | tests/unit/vector_stores/test_filtering.py | 60 | def test_missing_field_returns_false(self): | CODE |
| LOW | tests/unit/vector_stores/test_filtering.py | 136 | def test_eq_produces_condition(self): | CODE |
| LOW | tests/unit/vector_stores/test_filtering.py | 305 | def test_complex_nested_roundtrip(self): | CODE |
| LOW | tests/unit/prompt_tune/test_load_docs_in_chunks.py | 104 | async def test_top_selection_returns_limited_chunks( | CODE |
| LOW | tests/unit/prompt_tune/test_load_docs_in_chunks.py | 141 | async def test_random_selection_returns_correct_count( | CODE |
| LOW | tests/unit/prompt_tune/test_load_docs_in_chunks.py | 176 | async def test_escapes_braces_in_output(self, mock_config, mock_logger): | CODE |
| LOW | tests/unit/prompt_tune/test_load_docs_in_chunks.py | 219 | async def test_limit_out_of_range_uses_default( | CODE |
| LOW | tests/unit/prompt_tune/test_load_docs_in_chunks.py | 258 | async def test_chunks_all_documents( | CODE |
| LOW⚡ | tests/unit/logger/test_blob_workflow_logger.py | 49 | def test_init_requires_container_name(mock_credential): | CODE |
| LOW⚡ | tests/unit/logger/test_blob_workflow_logger.py | 59 | def test_init_requires_connection_or_account_url(): | CODE |
| LOW⚡ | tests/unit/logger/test_blob_workflow_logger.py | 68 | def test_init_creates_append_blob(mock_blob_service, mock_credential): | CODE |
| LOW | tests/unit/logger/test_blob_workflow_logger.py | 79 | def test_init_uses_provided_blob_name(mock_blob_service, mock_credential): | CODE |
| LOW | tests/unit/logger/test_blob_workflow_logger.py | 86 | def test_rotate_blob_does_not_reinitialize_handler(mock_blob_service, mock_credential): | CODE |
| LOW | tests/unit/logger/test_blob_workflow_logger.py | 116 | def test_rotate_blob_creates_new_blob_name(mock_blob_service, mock_credential): | CODE |
| LOW | tests/unit/logger/test_blob_workflow_logger.py | 132 | def test_write_log_appends_block(mock_blob_service, mock_credential): | CODE |
| LOW | tests/unit/cache/test_cache_get_many.py | 31 | async def test_get_many_empty_input_returns_empty(cache): | CODE |
| LOW | tests/unit/cache/test_cache_get_many.py | 36 | async def test_get_many_returns_hits_and_omits_misses(cache): | CODE |
| LOW | tests/unit/cache/test_cache_get_many.py | 50 | async def test_get_many_deduplicates_keys_and_matches_get(cache): | CODE |
| LOW | tests/unit/cache/test_cache_get_many.py | 60 | async def test_get_many_child_namespaces_are_isolated(cache): | CODE |
| LOW | tests/unit/cache/test_cache_get_many.py | 77 | async def test_default_get_many_supports_custom_cache_implementations(): | CODE |
| LOW | tests/unit/cache/test_sqlite_cache.py | 22 | async def test_sqlite_cache_round_trip_and_persistence(tmp_path): | CODE |
| LOW | tests/unit/cache/test_sqlite_cache.py | 37 | async def test_sqlite_cache_overwrites_and_deletes_values(tmp_path): | CODE |
| LOW | tests/unit/cache/test_sqlite_cache.py | 54 | async def test_sqlite_cache_child_namespaces_are_isolated(tmp_path): | CODE |
| LOW | tests/unit/cache/test_sqlite_cache.py | 70 | async def test_sqlite_cache_supports_concurrent_writes(tmp_path): | CODE |
| LOW | tests/unit/cache/test_sqlite_cache.py | 81 | async def test_sqlite_cache_get_many_batches_with_one_thread_and_connection( | CODE |
| LOW | tests/unit/cache/test_sqlite_cache.py | 148 | async def test_sqlite_cache_removes_invalid_payload(tmp_path, payload): | CODE |
| LOW | tests/unit/cache/test_sqlite_cache.py | 165 | async def test_corruption_cleanup_preserves_newer_value(tmp_path): | CODE |
| LOW | tests/unit/cache/test_sqlite_cache.py | 187 | async def test_get_many_removes_invalid_payloads(tmp_path): | CODE |
| LOW | tests/unit/cache/test_sqlite_cache.py | 210 | async def test_get_many_corruption_cleanup_preserves_newer_value(tmp_path): | CODE |
| LOW | tests/unit/cache/test_sqlite_cache.py | 212 | def _delete_many_if_unchanged(self, connection, entries): | CODE |
| LOW | tests/unit/cache/test_sqlite_cache.py | 231 | async def test_get_many_supports_concurrent_reader_and_writer(tmp_path): | CODE |
| LOW | tests/unit/cache/test_sqlite_cache.py | 243 | def test_sqlite_cache_uses_database_name_within_storage(tmp_path): | CODE |
| LOW | tests/unit/cache/test_sqlite_cache.py | 265 | def test_sqlite_cache_rejects_database_path(tmp_path, database_name): | CODE |
| LOW | tests/unit/cache/test_sqlite_cache.py | 276 | def test_sqlite_cache_rejects_non_file_storage(): | CODE |
| LOW | tests/unit/cache/test_sqlite_cache.py | 289 | def test_sqlite_cache_config_rejects_non_file_storage(storage_type): | CODE |
| LOW | tests/unit/cache/test_sqlite_cache.py | 300 | def test_sqlite_cache_config_requires_storage(): | CODE |
| LOW | tests/unit/cache/test_cache_benchmark.py | 61 | async def test_bulk_read_cache_benchmark(tmp_path, pytestconfig): | CODE |
| LOW | tests/unit/config/test_template_engine_config.py | 14 | def test_template_engine_config_validation() -> None: | CODE |
| LOW | tests/unit/config/test_metrics_config.py | 13 | def test_file_metrics_writer_validation() -> None: | CODE |
| LOW | tests/unit/config/test_retry_config.py | 10 | def test_exponential_backoff_validation() -> None: | CODE |
| LOW | tests/unit/config/test_retry_config.py | 50 | def test_immediate_validation() -> None: | CODE |
| LOW | tests/unit/config/test_tokenizer_config.py | 10 | def test_litellm_tokenizer_validation() -> None: | CODE |
| LOW | tests/unit/config/test_rate_limit_config.py | 10 | def test_sliding_window_validation() -> None: | CODE |
| LOW | tests/unit/config/utils.py | 57 | def get_default_graphrag_config() -> GraphRagConfig: | CODE |
| LOW | tests/unit/config/utils.py | 73 | def assert_rate_limit_configs( | CODE |
| LOW | tests/unit/config/utils.py | 115 | def assert_vector_store_configs( | CODE |
| LOW | tests/unit/config/utils.py | 162 | def assert_text_embedding_configs( | CODE |
| LOW | tests/unit/config/utils.py | 186 | def assert_extract_graph_configs( | CODE |
| LOW | tests/unit/config/utils.py | 195 | def assert_text_analyzer_configs( | CODE |
| LOW | tests/unit/config/utils.py | 210 | def assert_extract_graph_nlp_configs( | CODE |
| LOW | tests/unit/config/utils.py | 218 | def assert_prune_graph_configs( | CODE |
| LOW⚡ | tests/unit/config/utils.py | 230 | def assert_summarize_descriptions_configs( | CODE |
| LOW⚡ | tests/unit/config/utils.py | 238 | def assert_community_reports_configs( | CODE |
| LOW⚡ | tests/unit/config/utils.py | 248 | def assert_extract_claims_configs( | CODE |
| LOW⚡ | tests/unit/config/utils.py | 258 | def assert_cluster_graph_configs( | CODE |
| LOW⚡ | tests/unit/config/utils.py | 266 | def assert_local_search_configs( | CODE |
| LOW | tests/unit/config/utils.py | 280 | def assert_global_search_configs( | CODE |
| 350 more matches not shown… | ||||
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| LOW | tests/unit/indexing/test_init_content.py | 5 | CODE | |
| LOW | tests/integration/language_model/test_factory.py | 20 | CODE | |
| LOW | tests/integration/language_model/test_factory.py | 20 | CODE | |
| LOW | tests/integration/language_model/test_factory.py | 22 | CODE | |
| LOW | tests/integration/language_model/test_factory.py | 23 | CODE | |
| LOW | tests/integration/language_model/test_factory.py | 24 | CODE | |
| LOW | tests/integration/language_model/test_factory.py | 24 | CODE | |
| LOW | tests/integration/language_model/test_factory.py | 24 | CODE | |
| LOW | tests/integration/language_model/test_factory.py | 24 | CODE | |
| LOW | tests/integration/language_model/test_factory.py | 24 | CODE | |
| LOW | tests/integration/language_model/test_factory.py | 24 | CODE | |
| LOW | …raphrag-llm/graphrag_llm/metrics/metrics_aggregator.py | 12 | CODE | |
| LOW | …-llm/graphrag_llm/metrics/default_metrics_processor.py | 13 | CODE | |
| LOW | …-llm/graphrag_llm/metrics/default_metrics_processor.py | 13 | CODE | |
| LOW | …-llm/graphrag_llm/metrics/default_metrics_processor.py | 15 | CODE | |
| LOW | …-llm/graphrag_llm/metrics/default_metrics_processor.py | 16 | CODE | |
| LOW | …-llm/graphrag_llm/metrics/default_metrics_processor.py | 16 | CODE | |
| LOW | …raphrag-llm/graphrag_llm/metrics/log_metrics_writer.py | 14 | CODE | |
| LOW | …ges/graphrag-llm/graphrag_llm/metrics/metrics_store.py | 10 | CODE | |
| LOW | …ges/graphrag-llm/graphrag_llm/metrics/metrics_store.py | 11 | CODE | |
| LOW | …es/graphrag-llm/graphrag_llm/metrics/metrics_writer.py | 10 | CODE | |
| LOW | packages/graphrag-llm/graphrag_llm/metrics/__init__.py | 6 | CODE | |
| LOW | packages/graphrag-llm/graphrag_llm/metrics/__init__.py | 7 | CODE | |
| LOW | packages/graphrag-llm/graphrag_llm/metrics/__init__.py | 8 | CODE | |
| LOW | packages/graphrag-llm/graphrag_llm/metrics/__init__.py | 8 | CODE | |
| LOW | packages/graphrag-llm/graphrag_llm/metrics/__init__.py | 12 | CODE | |
| LOW | packages/graphrag-llm/graphrag_llm/metrics/__init__.py | 13 | CODE | |
| LOW | packages/graphrag-llm/graphrag_llm/metrics/__init__.py | 13 | CODE | |
| LOW | packages/graphrag-llm/graphrag_llm/metrics/__init__.py | 17 | CODE | |
| LOW | packages/graphrag-llm/graphrag_llm/metrics/__init__.py | 18 | CODE | |
| LOW | packages/graphrag-llm/graphrag_llm/metrics/__init__.py | 18 | CODE | |
| LOW | …rag-llm/graphrag_llm/metrics/metrics_writer_factory.py | 16 | CODE | |
| LOW | …rag-llm/graphrag_llm/metrics/metrics_writer_factory.py | 18 | CODE | |
| LOW | …hrag-llm/graphrag_llm/metrics/metrics_store_factory.py | 15 | CODE | |
| LOW | …hrag-llm/graphrag_llm/metrics/metrics_store_factory.py | 17 | CODE | |
| LOW | …graphrag-llm/graphrag_llm/metrics/metrics_processor.py | 10 | CODE | |
| LOW | …graphrag-llm/graphrag_llm/metrics/metrics_processor.py | 10 | CODE | |
| LOW | …graphrag-llm/graphrag_llm/metrics/metrics_processor.py | 12 | CODE | |
| LOW | …graphrag-llm/graphrag_llm/metrics/metrics_processor.py | 13 | CODE | |
| LOW | …graphrag-llm/graphrag_llm/metrics/metrics_processor.py | 13 | CODE | |
| LOW | …graphrag-llm/graphrag_llm/metrics/metrics_processor.py | 13 | CODE | |
| LOW | …graphrag-llm/graphrag_llm/metrics/metrics_processor.py | 13 | CODE | |
| LOW | …-llm/graphrag_llm/metrics/metrics_processor_factory.py | 15 | CODE | |
| LOW | …phrag-llm/graphrag_llm/metrics/memory_metrics_store.py | 14 | CODE | |
| LOW | …aphrag-llm/graphrag_llm/metrics/file_metrics_writer.py | 15 | CODE | |
| LOW | …hrag-llm/graphrag_llm/middleware/with_request_count.py | 9 | CODE | |
| LOW | …hrag-llm/graphrag_llm/middleware/with_request_count.py | 9 | CODE | |
| LOW | …lm/graphrag_llm/middleware/with_middleware_pipeline.py | 17 | CODE | |
| LOW | …lm/graphrag_llm/middleware/with_middleware_pipeline.py | 17 | CODE | |
| LOW | …lm/graphrag_llm/middleware/with_middleware_pipeline.py | 19 | CODE | |
| LOW | …lm/graphrag_llm/middleware/with_middleware_pipeline.py | 20 | CODE | |
| LOW | …lm/graphrag_llm/middleware/with_middleware_pipeline.py | 21 | CODE | |
| LOW | …lm/graphrag_llm/middleware/with_middleware_pipeline.py | 22 | CODE | |
| LOW | …lm/graphrag_llm/middleware/with_middleware_pipeline.py | 23 | CODE | |
| LOW | …lm/graphrag_llm/middleware/with_middleware_pipeline.py | 24 | CODE | |
| LOW | …lm/graphrag_llm/middleware/with_middleware_pipeline.py | 24 | CODE | |
| LOW | …llm/graphrag_llm/middleware/with_errors_for_testing.py | 14 | CODE | |
| LOW | …llm/graphrag_llm/middleware/with_errors_for_testing.py | 14 | CODE | |
| LOW | …kages/graphrag-llm/graphrag_llm/middleware/__init__.py | 6 | CODE | |
| LOW | …kages/graphrag-llm/graphrag_llm/middleware/__init__.py | 7 | CODE | |
| 330 more matches not shown… | ||||
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| MEDIUM | tests/unit/vector_stores/test_filtering.py | 18 | # ── Condition.evaluate ────────────────────────────────────────────────────── | COMMENT |
| MEDIUM | tests/unit/vector_stores/test_filtering.py | 65 | # ── AndExpr.evaluate ──────────────────────────────────────────────────────── | COMMENT |
| MEDIUM | tests/unit/vector_stores/test_filtering.py | 90 | # ── OrExpr.evaluate ───────────────────────────────────────────────────────── | COMMENT |
| MEDIUM | tests/unit/vector_stores/test_filtering.py | 115 | # ── NotExpr.evaluate ──────────────────────────────────────────────────────── | COMMENT |
| MEDIUM | tests/unit/vector_stores/test_filtering.py | 130 | # ── F builder ─────────────────────────────────────────────────────────────── | COMMENT |
| MEDIUM | tests/unit/vector_stores/test_filtering.py | 176 | # ── Operator overloads ────────────────────────────────────────────────────── | COMMENT |
| MEDIUM | tests/unit/vector_stores/test_filtering.py | 208 | # ── AND/OR flattening ────────────────────────────────────────────────────── | COMMENT |
| MEDIUM | tests/unit/vector_stores/test_filtering.py | 227 | # ── Double negation ──────────────────────────────────────────────────────── | COMMENT |
| MEDIUM | tests/unit/vector_stores/test_filtering.py | 243 | # ── JSON round-trip ───────────────────────────────────────────────────────── | COMMENT |
| MEDIUM | tests/unit/graphs/test_modularity.py | 19 | # --------------------------------------------------------------------------- | COMMENT |
| MEDIUM | tests/unit/graphs/test_modularity.py | 21 | # --------------------------------------------------------------------------- | COMMENT |
| MEDIUM | tests/unit/graphs/test_modularity.py | 85 | # --------------------------------------------------------------------------- | COMMENT |
| MEDIUM | tests/unit/graphs/test_modularity.py | 87 | # --------------------------------------------------------------------------- | COMMENT |
| MEDIUM⚡ | tests/unit/graphs/test_modularity.py | 107 | # --------------------------------------------------------------------------- | COMMENT |
| MEDIUM⚡ | tests/unit/graphs/test_modularity.py | 109 | # --------------------------------------------------------------------------- | COMMENT |
| MEDIUM | tests/unit/graphs/test_connected_components.py | 31 | # --------------------------------------------------------------------------- | COMMENT |
| MEDIUM | tests/unit/graphs/test_connected_components.py | 33 | # --------------------------------------------------------------------------- | COMMENT |
| MEDIUM⚡ | tests/unit/graphs/test_connected_components.py | 52 | # --------------------------------------------------------------------------- | COMMENT |
| MEDIUM⚡ | tests/unit/graphs/test_connected_components.py | 54 | # --------------------------------------------------------------------------- | COMMENT |
| MEDIUM⚡ | tests/unit/graphs/test_connected_components.py | 133 | # --------------------------------------------------------------------------- | COMMENT |
| MEDIUM⚡ | tests/unit/graphs/test_connected_components.py | 135 | # --------------------------------------------------------------------------- | COMMENT |
| MEDIUM⚡ | tests/unit/graphs/test_stable_lcc.py | 55 | # --------------------------------------------------------------------------- | COMMENT |
| MEDIUM⚡ | tests/unit/graphs/test_stable_lcc.py | 57 | # --------------------------------------------------------------------------- | COMMENT |
| MEDIUM⚡ | tests/unit/graphs/test_stable_lcc.py | 96 | # --------------------------------------------------------------------------- | COMMENT |
| MEDIUM⚡ | tests/unit/graphs/test_stable_lcc.py | 98 | # --------------------------------------------------------------------------- | COMMENT |
| MEDIUM | tests/unit/graphs/test_stable_lcc.py | 114 | # --------------------------------------------------------------------------- | COMMENT |
| MEDIUM | tests/unit/graphs/test_stable_lcc.py | 116 | # --------------------------------------------------------------------------- | COMMENT |
| MEDIUM | tests/unit/graphs/test_stable_lcc.py | 139 | # --------------------------------------------------------------------------- | COMMENT |
| MEDIUM | tests/unit/graphs/test_stable_lcc.py | 141 | # --------------------------------------------------------------------------- | COMMENT |
| MEDIUM⚡ | tests/unit/graphs/test_stable_lcc.py | 177 | # --------------------------------------------------------------------------- | COMMENT |
| MEDIUM⚡ | tests/unit/graphs/test_stable_lcc.py | 179 | # --------------------------------------------------------------------------- | COMMENT |
| MEDIUM⚡ | tests/unit/indexing/test_cluster_graph.py | 86 | # ------------------------------------------------------------------- | COMMENT |
| MEDIUM⚡ | tests/unit/indexing/test_cluster_graph.py | 88 | # ------------------------------------------------------------------- | COMMENT |
| MEDIUM⚡ | tests/unit/indexing/test_cluster_graph.py | 146 | # ------------------------------------------------------------------- | COMMENT |
| MEDIUM⚡ | tests/unit/indexing/test_cluster_graph.py | 148 | # ------------------------------------------------------------------- | COMMENT |
| MEDIUM⚡ | tests/unit/indexing/test_cluster_graph.py | 182 | # ------------------------------------------------------------------- | COMMENT |
| MEDIUM⚡ | tests/unit/indexing/test_cluster_graph.py | 184 | # ------------------------------------------------------------------- | COMMENT |
| MEDIUM | tests/unit/indexing/test_cluster_graph.py | 30 | # ------------------------------------------------------------------- | COMMENT |
| MEDIUM | tests/unit/indexing/test_cluster_graph.py | 32 | # ------------------------------------------------------------------- | COMMENT |
| MEDIUM | tests/unit/indexing/test_cluster_graph.py | 244 | # ------------------------------------------------------------------- | COMMENT |
| MEDIUM | tests/unit/indexing/test_cluster_graph.py | 246 | # ------------------------------------------------------------------- | COMMENT |
| MEDIUM⚡ | tests/unit/indexing/test_create_communities.py | 137 | # ------------------------------------------------------------------- | COMMENT |
| MEDIUM⚡ | tests/unit/indexing/test_create_communities.py | 139 | # ------------------------------------------------------------------- | COMMENT |
| MEDIUM⚡ | tests/unit/indexing/test_create_communities.py | 247 | # ------------------------------------------------------------------- | COMMENT |
| MEDIUM⚡ | tests/unit/indexing/test_create_communities.py | 249 | # ------------------------------------------------------------------- | COMMENT |
| MEDIUM⚡ | tests/unit/indexing/test_create_communities.py | 286 | # ------------------------------------------------------------------- | COMMENT |
| MEDIUM⚡ | tests/unit/indexing/test_create_communities.py | 288 | # ------------------------------------------------------------------- | COMMENT |
| MEDIUM⚡ | tests/unit/indexing/test_create_communities.py | 380 | # ------------------------------------------------------------------- | COMMENT |
| MEDIUM⚡ | tests/unit/indexing/test_create_communities.py | 382 | # ------------------------------------------------------------------- | COMMENT |
| MEDIUM⚡ | tests/unit/indexing/test_create_communities.py | 443 | # ------------------------------------------------------------------- | COMMENT |
| MEDIUM⚡ | tests/unit/indexing/test_create_communities.py | 445 | # ------------------------------------------------------------------- | COMMENT |
| MEDIUM⚡ | tests/unit/indexing/test_create_communities.py | 564 | # ------------------------------------------------------------------- | COMMENT |
| MEDIUM⚡ | tests/unit/indexing/test_create_communities.py | 566 | # ------------------------------------------------------------------- | COMMENT |
| MEDIUM | tests/unit/indexing/test_create_communities.py | 171 | # ------------------------------------------------------------------- | COMMENT |
| MEDIUM | tests/unit/indexing/test_create_communities.py | 173 | # ------------------------------------------------------------------- | COMMENT |
| MEDIUM | tests/unit/indexing/test_create_communities.py | 488 | # ------------------------------------------------------------------- | COMMENT |
| MEDIUM | tests/unit/indexing/test_create_communities.py | 490 | # ------------------------------------------------------------------- | COMMENT |
| MEDIUM | tests/verbs/test_create_final_text_units.py | 29 | # --------------------------------------------------------------------------- | COMMENT |
| MEDIUM | tests/verbs/test_create_final_text_units.py | 31 | # --------------------------------------------------------------------------- | COMMENT |
| MEDIUM⚡ | tests/verbs/test_create_final_text_units.py | 61 | # --------------------------------------------------------------------------- | COMMENT |
| 29 more matches not shown… | ||||
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| LOW | tests/smoke/test_fixtures.py | 22 | logger = logging.getLogger(__name__) | CODE |
| LOW | unified-search-app/app/app_logic.py | 26 | logger = logging.getLogger(__name__) | CODE |
| LOW | unified-search-app/app/knowledge_loader/data_prep.py | 19 | logger = logging.getLogger(__name__) | CODE |
| LOW | …h-app/app/knowledge_loader/data_sources/blob_source.py | 23 | logger = logging.getLogger(__name__) | CODE |
| LOW | …-app/app/knowledge_loader/data_sources/local_source.py | 17 | logger = logging.getLogger(__name__) | CODE |
| LOW | …search-app/app/knowledge_loader/data_sources/loader.py | 28 | logger = logging.getLogger(__name__) | CODE |
| LOW | …raphrag-llm/graphrag_llm/metrics/log_metrics_writer.py | 16 | logger = logging.getLogger(__name__) | CODE |
| LOW | …ges/graphrag-llm/graphrag_llm/metrics/metrics_store.py | 48 | def update_metrics(self, *, metrics: "Metrics") -> None: | CODE |
| LOW | packages/graphrag-llm/graphrag_llm/metrics/__init__.py | 23 | __all__ = [ | CODE |
| LOW | …raphrag-llm/graphrag_llm/metrics/noop_metrics_store.py | 26 | def update_metrics(self, *, metrics: Metrics) -> None: | CODE |
| LOW | …phrag-llm/graphrag_llm/metrics/memory_metrics_store.py | 80 | def update_metrics(self, *, metrics: "Metrics") -> None: | CODE |
| LOW | …kages/graphrag-llm/graphrag_llm/middleware/__init__.py | 15 | __all__ = [ | CODE |
| LOW | …s/graphrag-llm/graphrag_llm/middleware/with_logging.py | 16 | logger = logging.getLogger(__name__) | CODE |
| LOW | packages/graphrag-llm/graphrag_llm/types/__init__.py | 33 | __all__ = [ | CODE |
| LOW | packages/graphrag-llm/graphrag_llm/cache/__init__.py | 8 | __all__ = [ | CODE |
| LOW | packages/graphrag-llm/graphrag_llm/retry/__init__.py | 9 | __all__ = [ | CODE |
| LOW | …kages/graphrag-llm/graphrag_llm/config/model_config.py | 16 | logger = logging.getLogger(__name__) | CODE |
| LOW | packages/graphrag-llm/graphrag_llm/config/__init__.py | 25 | __all__ = [ | CODE |
| LOW | …ckages/graphrag-llm/graphrag_llm/tokenizer/__init__.py | 12 | __all__ = [ | CODE |
| LOW | …ckages/graphrag-llm/graphrag_llm/embedding/__init__.py | 12 | __all__ = [ | CODE |
| LOW | …kages/graphrag-llm/graphrag_llm/completion/__init__.py | 12 | __all__ = [ | CODE |
| LOW | packages/graphrag-llm/graphrag_llm/utils/__init__.py | 28 | __all__ = [ | CODE |
| LOW | …kages/graphrag-llm/graphrag_llm/templating/__init__.py | 17 | __all__ = [ | CODE |
| LOW | …kages/graphrag-llm/graphrag_llm/rate_limit/__init__.py | 12 | __all__ = [ | CODE |
| LOW | …phrag-llm/graphrag_llm/model_cost_registry/__init__.py | 11 | __all__ = ["ModelCosts", "model_cost_registry"] | CODE |
| LOW | …ckages/graphrag-llm/graphrag_llm/threading/__init__.py | 8 | __all__ = [ | CODE |
| LOW | packages/graphrag/graphrag/logger/progress.py | 12 | logger = logging.getLogger(__name__) | CODE |
| LOW | packages/graphrag/graphrag/cli/index.py | 24 | logger = logging.getLogger(__name__) | CODE |
| LOW | packages/graphrag/graphrag/cli/initialize.py | 35 | logger = logging.getLogger(__name__) | CODE |
| LOW | packages/graphrag/graphrag/cli/prompt_tune.py | 22 | logger = logging.getLogger(__name__) | CODE |
| LOW | packages/graphrag/graphrag/data_model/__init__.py | 8 | __all__ = ["DataReader"] | CODE |
| LOW | packages/graphrag/graphrag/api/query.py | 59 | logger = logging.getLogger(__name__) | CODE |
| LOW | packages/graphrag/graphrag/api/index.py | 26 | logger = logging.getLogger(__name__) | CODE |
| LOW | packages/graphrag/graphrag/api/__init__.py | 24 | __all__ = [ # noqa: RUF022 | CODE |
| LOW | packages/graphrag/graphrag/api/prompt_tune.py | 48 | logger = logging.getLogger(__name__) | CODE |
| LOW | packages/graphrag/graphrag/index/validate_config.py | 19 | logger = logging.getLogger(__name__) | CODE |
| LOW | …g/graphrag/index/workflows/generate_text_embeddings.py | 35 | logger = logging.getLogger(__name__) | CODE |
| LOW | …rag/graphrag/index/workflows/create_base_text_units.py | 24 | logger = logging.getLogger(__name__) | CODE |
| LOW | …phrag/index/workflows/create_community_reports_text.py | 37 | logger = logging.getLogger(__name__) | CODE |
| LOW | …g/graphrag/index/workflows/update_community_reports.py | 18 | logger = logging.getLogger(__name__) | CODE |
| LOW | …g/graphrag/index/workflows/create_community_reports.py | 38 | logger = logging.getLogger(__name__) | CODE |
| LOW | …kages/graphrag/graphrag/index/workflows/prune_graph.py | 17 | logger = logging.getLogger(__name__) | CODE |
| LOW | …rag/graphrag/index/workflows/update_final_documents.py | 14 | logger = logging.getLogger(__name__) | CODE |
| LOW | …phrag/graphrag/index/workflows/load_input_documents.py | 17 | logger = logging.getLogger(__name__) | CODE |
| LOW | …ag/graphrag/index/workflows/create_final_text_units.py | 22 | logger = logging.getLogger(__name__) | CODE |
| LOW | …graphrag/graphrag/index/workflows/extract_graph_nlp.py | 26 | logger = logging.getLogger(__name__) | CODE |
| LOW | …raphrag/graphrag/index/workflows/extract_covariates.py | 29 | logger = logging.getLogger(__name__) | CODE |
| LOW | packages/graphrag/graphrag/index/workflows/factory.py | 14 | logger = logging.getLogger(__name__) | CODE |
| LOW | …raphrag/graphrag/index/workflows/create_communities.py | 22 | logger = logging.getLogger(__name__) | CODE |
| LOW | …hrag/graphrag/index/workflows/load_update_documents.py | 19 | logger = logging.getLogger(__name__) | CODE |
| LOW | …es/graphrag/graphrag/index/workflows/finalize_graph.py | 25 | logger = logging.getLogger(__name__) | CODE |
| LOW | …ges/graphrag/graphrag/index/workflows/extract_graph.py | 29 | logger = logging.getLogger(__name__) | CODE |
| LOW | …phrag/index/workflows/update_entities_relationships.py | 27 | logger = logging.getLogger(__name__) | CODE |
| LOW | …rag/graphrag/index/workflows/create_final_documents.py | 19 | logger = logging.getLogger(__name__) | CODE |
| LOW | …raphrag/graphrag/index/workflows/update_clean_state.py | 12 | logger = logging.getLogger(__name__) | CODE |
| LOW | …graphrag/graphrag/index/workflows/update_covariates.py | 18 | logger = logging.getLogger(__name__) | CODE |
| LOW | …raphrag/graphrag/index/workflows/update_communities.py | 17 | logger = logging.getLogger(__name__) | CODE |
| LOW | …rag/graphrag/index/workflows/update_text_embeddings.py | 19 | logger = logging.getLogger(__name__) | CODE |
| LOW | …graphrag/graphrag/index/workflows/update_text_units.py | 18 | logger = logging.getLogger(__name__) | CODE |
| LOW | …ages/graphrag/graphrag/index/utils/derive_from_rows.py | 20 | logger = logging.getLogger(__name__) | CODE |
| 61 more matches not shown… | ||||
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| MEDIUM | tests/unit/indexing/cache/test_file_pipeline_cache.py | 34 | # Create a cache directory | COMMENT |
| MEDIUM | tests/integration/vector_stores/test_azure_ai_search.py | 46 | # Create the necessary mocks first | COMMENT |
| MEDIUM | tests/integration/vector_stores/test_azure_ai_search.py | 65 | # Create the necessary mocks first | COMMENT |
| MEDIUM | tests/integration/vector_stores/test_azure_ai_search.py | 126 | # Define a simple text embedder function for testing | COMMENT |
| MEDIUM | tests/integration/vector_stores/test_azure_ai_search.py | 141 | # Create a mock embedder that returns None and verify that no results are produced | COMMENT |
| MEDIUM | tests/integration/vector_stores/test_azure_ai_search.py | 195 | # Define a simple text embedder function for testing | COMMENT |
| MEDIUM | tests/integration/vector_stores/test_cosmosdb.py | 55 | # Define a simple text embedder function for testing | COMMENT |
| MEDIUM | tests/integration/vector_stores/test_cosmosdb.py | 129 | # Define a simple text embedder function for testing | COMMENT |
| MEDIUM | tests/integration/vector_stores/test_factory.py | 67 | # Create a mock that satisfies the VectorStore interface | COMMENT |
| MEDIUM | tests/integration/vector_stores/test_lancedb.py | 108 | # Define a simple text embedder function for testing | COMMENT |
| MEDIUM | tests/integration/cache/test_factory.py | 117 | # Create a mock that satisfies the PipelineCache interface | COMMENT |
| MEDIUM⚡ | tests/integration/storage/test_factory.py | 78 | # Create a mock that satisfies the Storage interface | COMMENT |
| MEDIUM | unified-search-app/app/data_config.py | 6 | # This file is used to store configurations for the graph-indexed data and the LLM/embeddings models used in the app. | COMMENT |
| MEDIUM | …summarize_communities/graph_context/context_builder.py | 160 | # Create the ALL_CONTEXT column | COMMENT |
| MEDIUM | …graphrag/query/structured_search/drift_search/state.py | 83 | # Create a mapping from nodes to unique IDs | COMMENT |
| MEDIUM | packages/graphrag-vectors/graphrag_vectors/cosmosdb.py | 91 | # Define the container vector policy | COMMENT |
| MEDIUM | packages/graphrag-vectors/graphrag_vectors/cosmosdb.py | 103 | # Define the vector indexing policy | COMMENT |
| MEDIUM | packages/graphrag-vectors/graphrag_vectors/cosmosdb.py | 121 | # Create the container and container client | COMMENT |
| MEDIUM | packages/graphrag-vectors/graphrag_vectors/cosmosdb.py | 132 | # Create the container with compatible indexing policy | COMMENT |
| MEDIUM | packages/graphrag-vectors/graphrag_vectors/cosmosdb.py | 158 | # Create a CosmosDB container on overwrite | COMMENT |
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| LOW | unified-search-app/app/home_page.py | 60 | except Exception as e: # noqa: BLE001 | CODE |
| LOW | unified-search-app/app/home_page.py | 234 | except Exception as e: # noqa: BLE001 | CODE |
| LOW | …h-app/app/knowledge_loader/data_sources/blob_source.py | 95 | except Exception as err: | CODE |
| LOW | …h-app/app/knowledge_loader/data_sources/blob_source.py | 117 | except Exception as err: | CODE |
| LOW | …search-app/app/knowledge_loader/data_sources/loader.py | 61 | except Exception as e: # noqa: BLE001 | CODE |
| MEDIUM | …search-app/app/knowledge_loader/data_sources/loader.py | 62 | print(f"Error loading dataset config: {e}") # noqa T201 | CODE |
| LOW | …hrag-llm/graphrag_llm/middleware/with_request_count.py | 57 | except Exception: | CODE |
| LOW | …hrag-llm/graphrag_llm/middleware/with_request_count.py | 76 | except Exception: | CODE |
| LOW | …ges/graphrag-llm/graphrag_llm/middleware/with_cache.py | 92 | except Exception: # noqa: BLE001 | CODE |
| LOW | …ges/graphrag-llm/graphrag_llm/middleware/with_cache.py | 141 | except Exception: # noqa: BLE001 | CODE |
| LOW⚡ | …s/graphrag-llm/graphrag_llm/middleware/with_logging.py | 50 | except Exception as e: | CODE |
| LOW⚡ | …s/graphrag-llm/graphrag_llm/middleware/with_logging.py | 65 | except Exception as e: | CODE |
| LOW | …s/graphrag-llm/graphrag_llm/retry/exponential_retry.py | 71 | except Exception as e: | CODE |
| LOW | …s/graphrag-llm/graphrag_llm/retry/exponential_retry.py | 103 | except Exception as e: | CODE |
| LOW | …ges/graphrag-llm/graphrag_llm/retry/immediate_retry.py | 51 | except Exception as e: | CODE |
| LOW | …ges/graphrag-llm/graphrag_llm/retry/immediate_retry.py | 75 | except Exception as e: | CODE |
| LOW | …aphrag-llm/graphrag_llm/utils/function_tool_manager.py | 128 | except Exception as e: | CODE |
| LOW | …g-llm/graphrag_llm/templating/jinja_template_engine.py | 48 | except Exception as e: | CODE |
| LOW | …aphrag-llm/graphrag_llm/threading/completion_thread.py | 90 | except Exception as e: # noqa: BLE001 | CODE |
| LOW | …raphrag-llm/graphrag_llm/threading/embedding_thread.py | 87 | except Exception as e: # noqa: BLE001 | CODE |
| LOW | packages/graphrag/graphrag/index/validate_config.py | 29 | except Exception as e: # noqa: BLE001 | CODE |
| LOW | packages/graphrag/graphrag/index/validate_config.py | 46 | except Exception as e: # noqa: BLE001 | CODE |
| LOW | …ages/graphrag/graphrag/index/utils/derive_from_rows.py | 147 | except Exception as e: # noqa: BLE001 | CODE |
| LOW | …index/operations/extract_covariates/claim_extractor.py | 91 | except Exception as e: | CODE |
| LOW | …rations/summarize_communities/summarize_communities.py | 162 | except Exception: | CODE |
| LOW | …s/summarize_communities/community_reports_extractor.py | 88 | except Exception as e: | CODE |
| LOW | …hrag/index/operations/extract_graph/graph_extractor.py | 66 | except Exception as e: # pragma: no cover - defensive logging | CODE |
| LOW | packages/graphrag/graphrag/index/run/run_pipeline.py | 153 | except Exception as e: | CODE |
| LOW | …aphrag/query/structured_search/global_search/search.py | 264 | except Exception: | CODE |
| LOW | …aphrag/query/structured_search/global_search/search.py | 421 | except Exception: | CODE |
| LOW | …raphrag/query/structured_search/local_search/search.py | 134 | except Exception: | CODE |
| LOW | …raphrag/query/structured_search/basic_search/search.py | 128 | except Exception: | CODE |
| LOW | …ages/graphrag/graphrag/query/question_gen/local_gen.py | 138 | except Exception: | CODE |
| LOW | …ages/graphrag/graphrag/query/question_gen/local_gen.py | 229 | except Exception: | CODE |
| LOW | …/graphrag-common/graphrag_common/config/load_config.py | 191 | except Exception as error: | CODE |
| LOW | …/graphrag-common/graphrag_common/config/load_config.py | 198 | except Exception as error: | CODE |
| LOW | …raphrag-storage/graphrag_storage/azure_blob_storage.py | 154 | except Exception: # noqa: BLE001 | CODE |
| LOW | …raphrag-storage/graphrag_storage/azure_blob_storage.py | 175 | except Exception: # noqa: BLE001 | CODE |
| LOW | …raphrag-storage/graphrag_storage/azure_blob_storage.py | 194 | except Exception: | CODE |
| LOW | …raphrag-storage/graphrag_storage/azure_blob_storage.py | 250 | except Exception: # noqa: BLE001 | CODE |
| LOW | …phrag-storage/graphrag_storage/azure_cosmos_storage.py | 147 | except Exception: # noqa: BLE001 | CODE |
| LOW | …phrag-storage/graphrag_storage/azure_cosmos_storage.py | 171 | except Exception: | CODE |
| LOW | …phrag-storage/graphrag_storage/azure_cosmos_storage.py | 202 | except Exception: | CODE |
| LOW | …phrag-storage/graphrag_storage/azure_cosmos_storage.py | 214 | except Exception: | CODE |
| LOW | …phrag-storage/graphrag_storage/azure_cosmos_storage.py | 231 | except Exception: | CODE |
| LOW | …phrag-storage/graphrag_storage/azure_cosmos_storage.py | 322 | except Exception: # noqa: BLE001 | CODE |
| LOW | …rage/graphrag_storage/tables/parquet_table_provider.py | 68 | except Exception: | CODE |
| LOW | …-storage/graphrag_storage/tables/csv_table_provider.py | 74 | except Exception: | CODE |
| LOW | packages/graphrag-input/graphrag_input/input_reader.py | 61 | except Exception as e: # noqa: BLE001 (catching Exception is fine here) | CODE |
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| LOW | tests/smoke/__init__.py | 1 | # Copyright (c) 2024 Microsoft Corporation. | COMMENT |
| LOW | tests/unit/__init__.py | 1 | # Copyright (c) 2024 Microsoft Corporation. | COMMENT |
| LOW | tests/unit/vector_stores/__init__.py | 1 | # Copyright (c) 2024 Microsoft Corporation. | COMMENT |
| LOW | tests/unit/hasher/__init__.py | 1 | # Copyright (c) 2024 Microsoft Corporation. | COMMENT |
| LOW | tests/unit/logger/__init__.py | 1 | # Copyright (c) 2024 Microsoft Corporation. | COMMENT |
| LOW | tests/unit/cache/__init__.py | 1 | # Copyright (c) 2024 Microsoft Corporation. | COMMENT |
| LOW | tests/unit/config/__init__.py | 1 | # Copyright (c) 2024 Microsoft Corporation. | COMMENT |
| LOW | tests/unit/graphrag_factory/__init__.py | 1 | # Copyright (c) 2024 Microsoft Corporation. | COMMENT |
| LOW | tests/unit/utils/__init__.py | 1 | # Copyright (c) 2024 Microsoft Corporation. | COMMENT |
| LOW | tests/unit/storage/__init__.py | 1 | # Copyright (c) 2024 Microsoft Corporation. | COMMENT |
| LOW | tests/unit/chunking/__init__.py | 1 | # Copyright (c) 2024 Microsoft Corporation. | COMMENT |
| LOW | tests/unit/load_config/__init__.py | 1 | # Copyright (c) 2024 Microsoft Corporation. | COMMENT |
| LOW | tests/unit/language_model/__init__.py | 1 | # Copyright (c) 2024 Microsoft Corporation. | COMMENT |
| LOW | tests/unit/indexing/__init__.py | 1 | # Copyright (c) 2024 Microsoft Corporation. | COMMENT |
| LOW | tests/unit/indexing/cache/__init__.py | 1 | # Copyright (c) 2024 Microsoft Corporation. | COMMENT |
| LOW | tests/unit/indexing/update/__init__.py | 1 | # Copyright (C) 2026 Microsoft Corporation. | COMMENT |
| LOW | tests/unit/indexing/input/__init__.py | 1 | # Copyright (c) 2024 Microsoft Corporation. | COMMENT |
| LOW | tests/unit/indexing/graph/__init__.py | 1 | # Copyright (c) 2024 Microsoft Corporation. | COMMENT |
| LOW | tests/unit/indexing/graph/utils/__init__.py | 1 | # Copyright (c) 2024 Microsoft Corporation. | COMMENT |
| LOW | tests/unit/indexing/graph/extractors/__init__.py | 1 | # Copyright (c) 2024 Microsoft Corporation. | COMMENT |
| LOW | …ndexing/graph/extractors/community_reports/__init__.py | 1 | # Copyright (c) 2024 Microsoft Corporation. | COMMENT |
| LOW | tests/unit/indexing/operations/__init__.py | 1 | # Copyright (C) 2026 Microsoft | COMMENT |
| LOW | tests/unit/indexing/operations/embed_text/__init__.py | 1 | # Copyright (C) 2026 Microsoft | COMMENT |
| LOW | tests/unit/indexing/verbs/__init__.py | 1 | # Copyright (c) 2024 Microsoft Corporation. | COMMENT |
| LOW | tests/unit/indexing/verbs/entities/__init__.py | 1 | # Copyright (c) 2024 Microsoft Corporation. | COMMENT |
| LOW | …ts/unit/indexing/verbs/entities/extraction/__init__.py | 1 | # Copyright (c) 2024 Microsoft Corporation. | COMMENT |
| LOW | …exing/verbs/entities/extraction/strategies/__init__.py | 1 | # Copyright (c) 2024 Microsoft Corporation. | COMMENT |
| LOW | …s/extraction/strategies/graph_intelligence/__init__.py | 1 | # Copyright (c) 2024 Microsoft Corporation. | COMMENT |
| LOW | tests/unit/query/__init__.py | 1 | # Copyright (c) 2024 Microsoft Corporation. | COMMENT |
| LOW | tests/unit/query/context_builder/__init__.py | 1 | # Copyright (c) 2024 Microsoft Corporation. | COMMENT |
| LOW | tests/unit/query/input/__init__.py | 1 | # Copyright (c) 2024 Microsoft Corporation. | COMMENT |
| LOW | tests/unit/query/input/retrieval/__init__.py | 1 | # Copyright (c) 2024 Microsoft Corporation. | COMMENT |
| LOW | tests/integration/__init__.py | 1 | # Copyright (c) 2024 Microsoft Corporation. | COMMENT |
| LOW | tests/integration/cache/__init__.py | 1 | # Copyright (c) 2024 Microsoft Corporation. | COMMENT |
| LOW | tests/integration/storage/__init__.py | 1 | # Copyright (c) 2024 Microsoft Corporation. | COMMENT |
| LOW | tests/integration/language_model/__init__.py | 1 | # Copyright (c) 2025 Microsoft Corporation. | COMMENT |
| LOW | tests/verbs/__init__.py | 1 | # Copyright (c) 2024 Microsoft Corporation. | COMMENT |
| LOW | tests/verbs/test_extract_graph.py | 61 | # this is because the mock responses always result in a single description, which is returned verbatim rather than s | COMMENT |
| LOW | tests/notebook/__init__.py | 1 | # Copyright (c) 2024 Microsoft Corporation. | COMMENT |
| LOW | …rag/graphrag/prompt_tune/prompt/entity_relationship.py | 81 | ## | COMMENT |
| LOW | …kages/graphrag/graphrag/prompts/index/extract_graph.py | 81 | ## | COMMENT |
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| MEDIUM | docs/index.md | 23 | ## GraphRAG vs Baseline RAG 🔍 | COMMENT |
| MEDIUM | docs/index/inputs.md | 87 | As described on the [default dataflow](default_dataflow.md#phase-1-compose-textunits) page, documents are *chunked* into | CODE |
| MEDIUM | docs/index/byog.md | 41 | See the full text_units [table schema](./outputs.md#text_units). Text units are chunks of your documents that are sized | CODE |
| MEDIUM | unified-search-app/app/home_page.py | 27 | "#### GraphRAG: A Novel Knowledge Graph-based Approach to Retrieval Augmented Generation (RAG)" | CODE |
| MEDIUM | unified-search-app/app/home_page.py | 138 | title="##### GraphRAG: Basic RAG", | CODE |
| MEDIUM⚡ | …graphrag_llm/rate_limit/sliding_window_rate_limiter.py | 105 | # to be processed if it is larger than the tpm but smaller than context window. | COMMENT |
| MEDIUM⚡ | …graphrag_llm/rate_limit/sliding_window_rate_limiter.py | 106 | # tpm is a rate/soft limit and not the hard limit of context window limits. | COMMENT |
| MEDIUM | …ages/graphrag/graphrag/query/structured_search/base.py | 34 | # actual text strings that are in the context window, built from context_data | COMMENT |
| MEDIUM | …/query/structured_search/local_search/mixed_context.py | 462 | # we return all the candidate entities/relationships/covariates (not only those that were fitted into the co | COMMENT |
| MEDIUM | …/query/structured_search/local_search/mixed_context.py | 463 | # and add a tag to indicate which records were included in the context window | COMMENT |
| MEDIUM | …/query/structured_search/basic_search/basic_context.py | 80 | # add these related text chunks into context until we fill up the context window | COMMENT |
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| LOW | packages/graphrag/graphrag/cli/main.py | 250 | CODE | |
| LOW | packages/graphrag/graphrag/cli/main.py | 365 | CODE | |
| LOW | packages/graphrag/graphrag/data_model/relationship.py | 41 | CODE | |
| LOW | packages/graphrag/graphrag/data_model/text_unit.py | 38 | CODE | |
| LOW | packages/graphrag/graphrag/data_model/community.py | 47 | CODE | |
| LOW | …kages/graphrag/graphrag/data_model/community_report.py | 41 | CODE | |
| LOW | packages/graphrag/graphrag/data_model/entity.py | 41 | CODE | |
| LOW | packages/graphrag/graphrag/api/prompt_tune.py | 52 | CODE | |
| LOW | …ns/summarize_communities/graph_context/sort_context.py | 11 | CODE | |
| LOW | packages/graphrag/graphrag/index/run/utils.py | 23 | CODE | |
| LOW | …ag/graphrag/query/context_builder/community_context.py | 24 | CODE | |
| LOW | …g/query/context_builder/dynamic_community_selection.py | 32 | CODE | |
| LOW | packages/graphrag/graphrag/query/input/loaders/dfs.py | 35 | CODE | |
| LOW | packages/graphrag/graphrag/query/input/loaders/dfs.py | 77 | CODE | |
| LOW | packages/graphrag/graphrag/query/input/loaders/dfs.py | 149 | CODE | |
| LOW | packages/graphrag/graphrag/query/input/loaders/dfs.py | 191 | CODE | |
| LOW | packages/graphrag/graphrag/query/input/loaders/dfs.py | 225 | CODE | |
| LOW | …y/structured_search/global_search/community_context.py | 58 | CODE | |
| LOW | …aphrag/query/structured_search/global_search/search.py | 58 | CODE | |
| LOW | …/query/structured_search/local_search/mixed_context.py | 91 | CODE | |
| LOW | …/query/structured_search/local_search/mixed_context.py | 377 | CODE | |
| LOW | …/query/structured_search/drift_search/drift_context.py | 42 | CODE | |
| LOW | …/graphrag-common/graphrag_common/config/load_config.py | 106 | CODE | |
| LOW | …ages/graphrag-vectors/graphrag_vectors/vector_store.py | 59 | CODE | |
| LOW | …orage/graphrag_storage/tables/cosmos_table_provider.py | 61 | CODE |
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| LOW | tests/smoke/test_fixtures.py | 150 | CODE | |
| LOW | unified-search-app/app/home_page.py | 20 | CODE | |
| LOW | unified-search-app/app/ui/report_details.py | 18 | CODE | |
| LOW | unified-search-app/app/ui/search.py | 63 | CODE | |
| LOW | unified-search-app/app/ui/search.py | 121 | CODE | |
| LOW | unified-search-app/app/ui/search.py | 192 | CODE | |
| LOW | scripts/copy_build_assets.py | 10 | CODE | |
| LOW | …ges/graphrag-llm/graphrag_llm/middleware/with_cache.py | 21 | CODE | |
| LOW | …ges/graphrag-llm/graphrag_llm/middleware/with_cache.py | 56 | CODE | |
| LOW | …kages/graphrag-llm/graphrag_llm/tokenizer/tokenizer.py | 50 | CODE | |
| LOW | packages/graphrag/graphrag/prompt_tune/loader/input.py | 44 | CODE | |
| LOW | packages/graphrag/graphrag/utils/cli.py | 27 | CODE | |
| LOW | packages/graphrag/graphrag/utils/cli.py | 31 | CODE | |
| LOW | …raphrag/graphrag/index/workflows/create_communities.py | 195 | CODE | |
| LOW | …ns/summarize_communities/graph_context/sort_context.py | 11 | CODE | |
| LOW | …ag/graphrag/query/context_builder/community_context.py | 189 | CODE | |
| LOW | …g/query/context_builder/dynamic_community_selection.py | 73 | CODE | |
| LOW | packages/graphrag/graphrag/query/llm/text_utils.py | 49 | CODE | |
| LOW | …aphrag/query/structured_search/global_search/search.py | 306 | CODE | |
| LOW | …/query/structured_search/local_search/mixed_context.py | 377 | CODE | |
| LOW | packages/graphrag-vectors/graphrag_vectors/cosmosdb.py | 166 | CODE | |
| LOW | …s/graphrag-vectors/graphrag_vectors/azure_ai_search.py | 168 | CODE |
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| LOW | tests/unit/indexing/cache/test_file_pipeline_cache.py | 45 | # Check if the cache directory is empty | COMMENT |
| LOW | tests/integration/vector_stores/test_factory.py | 85 | # Check if it's in the list of registered vector store types | COMMENT |
| LOW⚡ | tests/integration/cache/test_factory.py | 132 | # Check if it's in the list of registered cache types | COMMENT |
| LOW | tests/integration/logging/test_factory.py | 50 | # Check if it's in the list of registered logger types | COMMENT |
| LOW⚡ | …graphrag_llm/rate_limit/sliding_window_rate_limiter.py | 101 | # Check if current token window exceeds token limit | COMMENT |
| LOW | …graphrag/prompt_tune/generator/extract_graph_prompt.py | 106 | # Write file to output path | COMMENT |
| LOW | …rompt_tune/generator/community_report_summarization.py | 46 | # Write file to output path | COMMENT |
| LOW | …g/prompt_tune/generator/entity_summarization_prompt.py | 35 | # Write file to output path | COMMENT |
| LOW | packages/graphrag/graphrag/logger/standard_logging.py | 76 | # Close file handlers properly before removing them | COMMENT |
| LOW | packages/graphrag/graphrag/index/update/communities.py | 32 | # Check if size and period columns exist in the old_communities. If not, add them | COMMENT |
| LOW | packages/graphrag/graphrag/index/update/communities.py | 108 | # Check if size and period columns exist in the old_community_reports. If not, add them | COMMENT |
| LOW | …ag/graphrag/query/context_builder/community_context.py | 176 | # Check if the current batch has been added | COMMENT |
| LOW | …raphrag/query/structured_search/drift_search/search.py | 219 | # Check if query state is empty | COMMENT |
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| HIGH | …rag/graphrag/index/workflows/create_base_text_units.py | 41 | total_rows = await documents_table.length() | CODE |
| HIGH | packages/graphrag/graphrag/index/utils/is_null.py | 11 | """Check if value is null or is nan.""" | STRING |
| HIGH | …/index/operations/build_noun_graph/build_noun_graph.py | 70 | total = await text_unit_table.length() | CODE |
| HIGH | …orage/graphrag_storage/tables/cosmos_table_provider.py | 497 | return await inner.length() | CODE |
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| HIGH | tests/unit/indexing/test_profiling.py | 78 | except ValueError: | CODE |
| HIGH | …ges/graphrag-llm/graphrag_llm/middleware/with_cache.py | 141 | except Exception: # noqa: BLE001 | CODE |
| HIGH | …ges/graphrag-llm/graphrag_llm/middleware/with_cache.py | 92 | except Exception: # noqa: BLE001 | CODE |
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| MEDIUM | packages/graphrag/graphrag/query/factory.py | 130 | # TODO: Allow for another llm definition only for Global Search to leverage -mini models | COMMENT |
| MEDIUM | …raphrag/query/structured_search/drift_search/search.py | 280 | # Reduce response_state to a single comprehensive response | COMMENT |
| MEDIUM | …raphrag/query/structured_search/drift_search/search.py | 359 | """Reduce the response to a single comprehensive response. | STRING |
| MEDIUM | …raphrag/query/structured_search/drift_search/search.py | 418 | """Reduce the response to a single comprehensive response. | STRING |
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| HIGH | unified-search-app/app/home_page.py | 157 | caption="###### Answer context: AI-generated network reports covering all input documents", | CODE |
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| LOW | …aphrag/query/structured_search/global_search/search.py | 156 | # Step 1: Generate answers for each batch of community short summaries | COMMENT |
| LOW | …aphrag/query/structured_search/global_search/search.py | 190 | # Step 2: Combine the intermediate answers from step 2 to generate the final answer | COMMENT |
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| LOW | …aphrag/query/structured_search/global_search/search.py | 156 | # Step 1: Generate answers for each batch of community short summaries | COMMENT |
| LOW | …aphrag/query/structured_search/global_search/search.py | 190 | # Step 2: Combine the intermediate answers from step 2 to generate the final answer | COMMENT |
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| LOW | packages/graphrag-vectors/graphrag_vectors/lancedb.py | 55 | pa_type, dummy_value = types[field_type] | CODE |
| LOW | packages/graphrag-vectors/graphrag_vectors/lancedb.py | 56 | others[field_name] = pa.array([dummy_value], type=pa_type()) | CODE |
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| LOW | …ages/graphrag/graphrag/index/utils/derive_from_rows.py | 75 | async def execute_task(task: Coroutine) -> ItemType | None: | CODE |