Repository Analysis

apache/superset

Apache Superset is a Data Visualization and Data Exploration Platform

14.2 Low AI signal View on GitHub

Analysis Overview

This report presents the forensic synthetic code analysis of apache/superset, a Python project with 74,513 GitHub stars. SynthScan v2.0 examined 1,598,335 lines of code across 7962 source files, recording 19897 pattern matches distributed across 24 syntactic categories. The overall adjusted score of 14.2 places this repository in the Low 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).

14.2
Adjusted Score
14.2
Raw Score
100%
Time Factor
2026-08-28
Last Push
74.5K
Stars
Python
Language
1.6M
Lines of Code
8.0K
Files
19.9K
Pattern Hits
2026-08-29
Scan Date
0.05
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 7HIGH 391MEDIUM 1061LOW 18438

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 19897 distinct pattern matches across 24 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.

Hyper-Verbose Identifiers12415 hits · 10954 pts
SeverityFileLineSnippetContext
LOWsuperset-core/tests/semantic_layers/test_types.py22def test_dimension_metadata_is_not_part_of_identity() -> None:CODE
LOWsuperset-core/tests/semantic_layers/test_types.py42def test_metric_metadata_is_not_part_of_identity() -> None:CODE
LOWsuperset-core/tests/semantic_layers/test_types.py66def test_metric_accepts_superset_presentation_fields() -> None:CODE
LOWsuperset-core/tests/semantic_layers/test_types.py80def test_dimension_accepts_superset_presentation_fields() -> None:CODE
LOWsuperset-core/tests/semantic_layers/test_types.py91def test_metadata_defaults_are_not_shared() -> None:CODE
LOW…erset-core/src/superset_core/semantic_layers/config.py25def build_configuration_schema(CODE
LOWsuperset-core/src/superset_core/semantic_layers/daos.py67 def validate_update_uniqueness(cls, layer_uuid: str, name: str) -> bool:CODE
LOWsuperset-core/src/superset_core/semantic_layers/daos.py137 def validate_update_uniqueness(CODE
LOWsuperset-core/src/superset_core/semantic_layers/view.py106 def get_compatible_dimensions(CODE
LOWtests/conftest.py79def pandas_loader_configuration(CODE
LOWtests/unit_tests/conftest.py194 def test_your_feature_enabled(self):STRING
LOWtests/unit_tests/conftest.py198 def test_your_feature_disabled(self):STRING
LOWtests/unit_tests/core_tests.py65def test_get_metric_name_saved_metric():CODE
LOWtests/unit_tests/core_tests.py70def test_get_metric_name_adhoc():CODE
LOWtests/unit_tests/core_tests.py93def test_get_metric_name_invalid_metric():CODE
LOWtests/unit_tests/core_tests.py135def test_get_column_name_physical_column():CODE
LOWtests/unit_tests/core_tests.py140def test_get_column_name_adhoc():CODE
LOWtests/unit_tests/core_tests.py164def test_get_column_name_invalid_metric():CODE
LOWtests/unit_tests/core_tests.py178def test_get_time_filter_status_time_col():CODE
LOWtests/unit_tests/core_tests.py186def test_get_time_filter_status_time_range():CODE
LOWtests/unit_tests/core_tests.py194def test_get_time_filter_status_time_grain():CODE
LOWtests/unit_tests/core_tests.py202def test_get_time_filter_status_no_temporal_col():CODE
LOWtests/unit_tests/core_tests.py243def test_split_adhoc_filters_joins_sql_expressions():CODE
LOWtests/unit_tests/core_tests.py264def test_split_adhoc_filters_preserves_jinja_templates():CODE
LOWtests/unit_tests/core_tests.py280def test_split_adhoc_filters_terminates_inline_comments():CODE
LOWtests/unit_tests/test_marshmallow_compatibility.py29def restore_schema_init_fields():CODE
LOWtests/unit_tests/test_marshmallow_compatibility.py41 def test_patch_marshmallow_for_flask_appbuilder_applies_patch(self):CODE
LOWtests/unit_tests/test_marshmallow_compatibility.py52 def test_patch_functionality_with_real_schema_creation(self):CODE
LOWtests/unit_tests/test_marshmallow_compatibility.py66 def test_patch_handles_schema_with_no_fields(self):CODE
LOWtests/unit_tests/test_marshmallow_compatibility.py76 def test_patch_pre_stubs_missing_fab_fields_before_initialization(self):CODE
LOWtests/unit_tests/test_marshmallow_compatibility.py101 def test_raw_field_creation_and_configuration(self):CODE
LOWtests/unit_tests/test_marshmallow_compatibility.py110 def test_schema_declared_fields_manipulation(self):CODE
LOWtests/unit_tests/test_marshmallow_compatibility.py133 def test_flask_appbuilder_field_names_list(self):CODE
LOWtests/unit_tests/test_marshmallow_compatibility.py151 def test_patch_function_is_callable(self):CODE
LOWtests/unit_tests/test_marshmallow_compatibility.py161 def test_marshmallow_schema_basic_functionality(self):CODE
LOWtests/unit_tests/jinja_context_test.py122def test_filter_values_default() -> None:CODE
LOWtests/unit_tests/jinja_context_test.py131def test_filter_values_remove_not_present() -> None:CODE
LOWtests/unit_tests/jinja_context_test.py140def test_filter_values_no_default() -> None:CODE
LOWtests/unit_tests/jinja_context_test.py148def test_get_filters_adhoc_filters() -> None:CODE
LOWtests/unit_tests/jinja_context_test.py645def test_url_param_escaped_request_args() -> None:CODE
LOWtests/unit_tests/jinja_context_test.py655def test_url_param_unescaped_request_args() -> None:CODE
LOWtests/unit_tests/jinja_context_test.py664def test_url_param_postgres_backslash_preserved() -> None:CODE
LOWtests/unit_tests/jinja_context_test.py59def test_filter_values_adhoc_filters() -> None:CODE
LOWtests/unit_tests/jinja_context_test.py106def test_filter_values_extra_filters() -> None:CODE
LOWtests/unit_tests/jinja_context_test.py225def test_get_filters_is_null_operator() -> None:CODE
LOWtests/unit_tests/jinja_context_test.py255def test_get_filters_remove_not_present() -> None:CODE
LOWtests/unit_tests/jinja_context_test.py264def test_get_filters_query_context_filters() -> None:CODE
LOWtests/unit_tests/jinja_context_test.py280def test_get_filters_query_context_filters_remove_filter() -> None:CODE
LOWtests/unit_tests/jinja_context_test.py295def test_get_filters_query_context_filters_is_null() -> None:CODE
LOWtests/unit_tests/jinja_context_test.py306def test_get_filters_query_context_filters_is_not_null() -> None:CODE
LOWtests/unit_tests/jinja_context_test.py319def test_get_filters_adhoc_filters_take_precedence_over_query_context_filters() -> None:CODE
LOWtests/unit_tests/jinja_context_test.py348def test_filter_values_query_context_filters() -> None:CODE
LOWtests/unit_tests/jinja_context_test.py359def test_get_filters_escaped_val_string_adhoc() -> None:CODE
LOWtests/unit_tests/jinja_context_test.py393def test_get_filters_escaped_val_list_adhoc() -> None:CODE
LOWtests/unit_tests/jinja_context_test.py427def test_get_filters_escaped_val_query_context_filters() -> None:CODE
LOWtests/unit_tests/jinja_context_test.py448def test_get_filters_no_escaped_val_without_dialect() -> None:CODE
LOWtests/unit_tests/jinja_context_test.py477def test_escape_value_nested_list_is_escaped() -> None:CODE
LOWtests/unit_tests/jinja_context_test.py501def test_escape_value_flat_list_renders_without_raw_quotes() -> None:CODE
LOWtests/unit_tests/jinja_context_test.py524def test_escape_value_dict_renders_without_raw_quotes() -> None:CODE
LOWtests/unit_tests/jinja_context_test.py544def test_escape_value_dict_escapes_keys_too() -> None:CODE
12355 more matches not shown…
Decorative Section Separators810 hits · 3033 pts
SeverityFileLineSnippetContext
MEDIUMdocker-compose-image-tag.yml18# -----------------------------------------------------------------------COMMENT
MEDIUMdocker-compose-image-tag.yml26# -----------------------------------------------------------------------COMMENT
MEDIUMpyproject.toml89 # --------------------------COMMENT
MEDIUMpyproject.toml93 # --------------------------COMMENT
MEDIUMpyproject.toml541# --------------------------------------------------------------COMMENT
MEDIUMpyproject.toml551# --------------------------------------------------------------COMMENT
MEDIUMdocker-compose-non-dev.yml18# -----------------------------------------------------------------------COMMENT
MEDIUMdocker-compose-non-dev.yml26# -----------------------------------------------------------------------COMMENT
MEDIUMdocker-compose-light.yml18# -----------------------------------------------------------------------COMMENT
MEDIUMdocker-compose-light.yml61# -----------------------------------------------------------------------COMMENT
MEDIUMdocker-compose.yml18# -----------------------------------------------------------------------COMMENT
MEDIUMdocker-compose.yml26# -----------------------------------------------------------------------COMMENT
MEDIUMdocker/docker-entrypoint-initdb.d/examples-init.sh20# ------------------------------------------------------------------------COMMENT
MEDIUMdocker/docker-entrypoint-initdb.d/examples-init.sh23# ------------------------------------------------------------------------COMMENT
MEDIUMdocker/docker-entrypoint-initdb.d/cypress-init.sh20# ------------------------------------------------------------------------COMMENT
MEDIUMdocker/docker-entrypoint-initdb.d/cypress-init.sh23# ------------------------------------------------------------------------COMMENT
MEDIUMsuperset-core/src/superset_core/extensions/types.py87# =============================================================================COMMENT
MEDIUMsuperset-core/src/superset_core/extensions/types.py89# =============================================================================COMMENT
MEDIUMsuperset-core/src/superset_core/extensions/types.py114# =============================================================================COMMENT
MEDIUMsuperset-core/src/superset_core/extensions/types.py116# =============================================================================COMMENT
MEDIUMtests/unit_tests/test_sqllab_error_stacktrace.py64# ---------------------------------------------------------------------------COMMENT
MEDIUMtests/unit_tests/test_sqllab_error_stacktrace.py66# ---------------------------------------------------------------------------COMMENT
MEDIUMtests/unit_tests/test_sqllab_error_stacktrace.py104# ---------------------------------------------------------------------------COMMENT
MEDIUMtests/unit_tests/test_sqllab_error_stacktrace.py106# ---------------------------------------------------------------------------COMMENT
MEDIUMtests/unit_tests/test_sqllab_error_stacktrace.py140# ---------------------------------------------------------------------------COMMENT
MEDIUMtests/unit_tests/test_sqllab_error_stacktrace.py142# ---------------------------------------------------------------------------COMMENT
MEDIUMtests/unit_tests/test_sqllab_error_stacktrace.py182# ---------------------------------------------------------------------------COMMENT
MEDIUMtests/unit_tests/test_sqllab_error_stacktrace.py184# ---------------------------------------------------------------------------COMMENT
MEDIUMtests/unit_tests/test_sqllab_error_stacktrace.py219# ---------------------------------------------------------------------------COMMENT
MEDIUMtests/unit_tests/test_sqllab_error_stacktrace.py221# ---------------------------------------------------------------------------COMMENT
MEDIUMtests/unit_tests/test_sqllab_error_stacktrace.py253# ---------------------------------------------------------------------------COMMENT
MEDIUMtests/unit_tests/test_sqllab_error_stacktrace.py255# ---------------------------------------------------------------------------COMMENT
MEDIUMtests/unit_tests/test_sqllab_error_stacktrace.py47# ---------------------------------------------------------------------------COMMENT
MEDIUMtests/unit_tests/test_sqllab_error_stacktrace.py49# ---------------------------------------------------------------------------COMMENT
MEDIUM…s/unit_tests/middleware/test_legacy_prefix_redirect.py477# ---------------------------------------------------------------------------COMMENT
MEDIUM…s/unit_tests/middleware/test_legacy_prefix_redirect.py484# ---------------------------------------------------------------------------COMMENT
MEDIUM…s/unit_tests/middleware/test_legacy_prefix_redirect.py619# ---------------------------------------------------------------------------COMMENT
MEDIUM…s/unit_tests/middleware/test_legacy_prefix_redirect.py621# ---------------------------------------------------------------------------COMMENT
MEDIUM…s/unit_tests/middleware/test_legacy_prefix_redirect.py653# ---------------------------------------------------------------------------COMMENT
MEDIUM…s/unit_tests/middleware/test_legacy_prefix_redirect.py655# ---------------------------------------------------------------------------COMMENT
MEDIUM…s/unit_tests/middleware/test_legacy_prefix_redirect.py729# ---------------------------------------------------------------------------COMMENT
MEDIUM…s/unit_tests/middleware/test_legacy_prefix_redirect.py731# ---------------------------------------------------------------------------COMMENT
MEDIUM…s/unit_tests/middleware/test_legacy_prefix_redirect.py813# ---------------------------------------------------------------------------COMMENT
MEDIUM…s/unit_tests/middleware/test_legacy_prefix_redirect.py815# ---------------------------------------------------------------------------COMMENT
MEDIUM…s/unit_tests/middleware/test_legacy_prefix_redirect.py51# ---------------------------------------------------------------------------COMMENT
MEDIUM…s/unit_tests/middleware/test_legacy_prefix_redirect.py53# ---------------------------------------------------------------------------COMMENT
MEDIUM…s/unit_tests/middleware/test_legacy_prefix_redirect.py115# ---------------------------------------------------------------------------COMMENT
MEDIUM…s/unit_tests/middleware/test_legacy_prefix_redirect.py117# ---------------------------------------------------------------------------COMMENT
MEDIUM…s/unit_tests/middleware/test_legacy_prefix_redirect.py238# ---------------------------------------------------------------------------COMMENT
MEDIUM…s/unit_tests/middleware/test_legacy_prefix_redirect.py249# ---------------------------------------------------------------------------COMMENT
MEDIUM…s/unit_tests/middleware/test_legacy_prefix_redirect.py758# ---------------------------------------------------------------------------COMMENT
MEDIUM…s/unit_tests/middleware/test_legacy_prefix_redirect.py760# ---------------------------------------------------------------------------COMMENT
MEDIUMtests/unit_tests/tasks/test_thumbnails.py48# ---------------------------------------------------------------------------COMMENT
MEDIUMtests/unit_tests/tasks/test_thumbnails.py50# ---------------------------------------------------------------------------COMMENT
MEDIUMtests/unit_tests/tasks/test_thumbnails.py68# ---------------------------------------------------------------------------COMMENT
MEDIUMtests/unit_tests/tasks/test_thumbnails.py70# ---------------------------------------------------------------------------COMMENT
MEDIUMtests/unit_tests/tasks/test_timeout.py113# =============================================================================COMMENT
MEDIUMtests/unit_tests/tasks/test_timeout.py115# =============================================================================COMMENT
MEDIUMtests/unit_tests/tasks/test_timeout.py196# =============================================================================COMMENT
MEDIUMtests/unit_tests/tasks/test_timeout.py198# =============================================================================COMMENT
750 more matches not shown…
Over-Commented Block2799 hits · 2604 pts
SeverityFileLineSnippetContext
LOW.asf.yaml1# Licensed to the Apache Software Foundation (ASF) under oneCOMMENT
LOWdocker-compose-image-tag.yml1#COMMENT
LOWpytest.ini1#COMMENT
LOW.pre-commit-config.yaml1#COMMENT
LOW.fossa.yml1#COMMENT
LOWpyproject.toml1# Licensed to the Apache Software Foundation (ASF) under oneCOMMENT
LOWpyproject.toml141 "sqlalchemy-bigquery>=1.17.2",COMMENT
LOWpyproject.toml221# Actively maintained upstream, but setup.py on main hard-pinsCOMMENT
LOWlintconf.yaml1#COMMENT
LOWsetup.py1# Licensed to the Apache Software Foundation (ASF) under oneCOMMENT
LOWdocker-compose-non-dev.yml1#COMMENT
LOWdocker-compose-light.yml1#COMMENT
LOWdocker-compose-light.yml21#COMMENT
LOWdocker-compose-light.yml41#COMMENT
LOWdocker-compose.yml1#COMMENT
LOWsuperset_text.yml1# Licensed to the Apache Software Foundation (ASF) under oneCOMMENT
LOWsuperset_text.yml21# DB_IMAGES:COMMENT
LOWdocker/frontend-mem-nag.sh1#!/usr/bin/env bashCOMMENT
LOWdocker/tag_latest_release.sh1#! /bin/bashCOMMENT
LOWdocker/docker-bootstrap.sh1#!/usr/bin/env bashCOMMENT
LOWdocker/docker-healthcheck.sh1#!/usr/bin/env bashCOMMENT
LOWdocker/apt-install.sh1#!/usr/bin/env bashCOMMENT
LOWdocker/docker-pytest-entrypoint.sh1#!/bin/bashCOMMENT
LOWdocker/pip-install.sh1#!/usr/bin/env bashCOMMENT
LOWdocker/docker-init.sh1#!/usr/bin/env bashCOMMENT
LOWdocker/docker-frontend.sh1#!/usr/bin/env bashCOMMENT
LOWdocker/pythonpath_dev/superset_config_docker_light.py1# Licensed to the Apache Software Foundation (ASF) under oneCOMMENT
LOWdocker/pythonpath_dev/superset_config_docker_light.py61 # just turn it off.COMMENT
LOWdocker/pythonpath_dev/superset_config.py1# Licensed to the Apache Software Foundation (ASF) under oneCOMMENT
LOWdocker/pythonpath_dev/superset_test_config_light.py1# Licensed to the Apache Software Foundation (ASF) under oneCOMMENT
LOWdocker/docker-entrypoint-initdb.d/examples-init.sh1#!/usr/bin/env bashCOMMENT
LOWdocker/docker-entrypoint-initdb.d/cypress-init.sh1#!/usr/bin/env bashCOMMENT
LOWdocker/entrypoints/run-server.sh1#!/usr/bin/env bashCOMMENT
LOWdocker/entrypoints/docker-ci.sh1#!/usr/bin/env bashCOMMENT
LOWsuperset-core/pyproject.toml1COMMENT
LOWsuperset-core/tests/semantic_layers/test_types.py1# Licensed to the Apache Software Foundation (ASF) under oneCOMMENT
LOWsuperset-core/src/superset_core/__init__.py1# Licensed to the Apache Software Foundation (ASF) under oneCOMMENT
LOWsuperset-core/src/superset_core/tasks/models.py1# Licensed to the Apache Software Foundation (ASF) under oneCOMMENT
LOWsuperset-core/src/superset_core/tasks/daos.py1# Licensed to the Apache Software Foundation (ASF) under oneCOMMENT
LOWsuperset-core/src/superset_core/tasks/__init__.py1# Licensed to the Apache Software Foundation (ASF) under oneCOMMENT
LOWsuperset-core/src/superset_core/tasks/types.py1# Licensed to the Apache Software Foundation (ASF) under oneCOMMENT
LOWsuperset-core/src/superset_core/tasks/decorators.py1# Licensed to the Apache Software Foundation (ASF) under oneCOMMENT
LOW…erset-core/src/superset_core/semantic_layers/config.py1# Licensed to the Apache Software Foundation (ASF) under oneCOMMENT
LOW…erset-core/src/superset_core/semantic_layers/models.py1# Licensed to the Apache Software Foundation (ASF) under oneCOMMENT
LOWsuperset-core/src/superset_core/semantic_layers/daos.py1# Licensed to the Apache Software Foundation (ASF) under oneCOMMENT
LOW…set-core/src/superset_core/semantic_layers/__init__.py1# Licensed to the Apache Software Foundation (ASF) under oneCOMMENT
LOW…perset-core/src/superset_core/semantic_layers/types.py1# Licensed to the Apache Software Foundation (ASF) under oneCOMMENT
LOWsuperset-core/src/superset_core/semantic_layers/view.py1# Licensed to the Apache Software Foundation (ASF) under oneCOMMENT
LOW…perset-core/src/superset_core/semantic_layers/layer.py1# Licensed to the Apache Software Foundation (ASF) under oneCOMMENT
LOW…t-core/src/superset_core/semantic_layers/decorators.py1# Licensed to the Apache Software Foundation (ASF) under oneCOMMENT
LOWsuperset-core/src/superset_core/queries/models.py1# Licensed to the Apache Software Foundation (ASF) under oneCOMMENT
LOWsuperset-core/src/superset_core/queries/query.py1# Licensed to the Apache Software Foundation (ASF) under oneCOMMENT
LOWsuperset-core/src/superset_core/queries/daos.py1# Licensed to the Apache Software Foundation (ASF) under oneCOMMENT
LOWsuperset-core/src/superset_core/queries/__init__.py1# Licensed to the Apache Software Foundation (ASF) under oneCOMMENT
LOWsuperset-core/src/superset_core/queries/types.py1# Licensed to the Apache Software Foundation (ASF) under oneCOMMENT
LOWsuperset-core/src/superset_core/mcp/__init__.py1# Licensed to the Apache Software Foundation (ASF) under oneCOMMENT
LOWsuperset-core/src/superset_core/mcp/decorators.py1# Licensed to the Apache Software Foundation (ASF) under oneCOMMENT
LOWsuperset-core/src/superset_core/extensions/constants.py1# Licensed to the Apache Software Foundation (ASF) under oneCOMMENT
LOWsuperset-core/src/superset_core/extensions/__init__.py1# Licensed to the Apache Software Foundation (ASF) under oneCOMMENT
LOWsuperset-core/src/superset_core/extensions/types.py1# Licensed to the Apache Software Foundation (ASF) under oneCOMMENT
2739 more matches not shown…
Cross-File Repetition262 hits · 1310 pts
SeverityFileLineSnippetContext
HIGHsuperset-core/src/superset_core/tasks/daos.py0abstract keyvalue model interface. host implementations will replace this class during initialization with concrete implSTRING
HIGHsuperset-core/src/superset_core/queries/models.py0abstract keyvalue model interface. host implementations will replace this class during initialization with concrete implSTRING
HIGHsuperset-core/src/superset_core/queries/daos.py0abstract keyvalue model interface. host implementations will replace this class during initialization with concrete implSTRING
HIGHsuperset-core/src/superset_core/common/models.py0abstract keyvalue model interface. host implementations will replace this class during initialization with concrete implSTRING
HIGHsuperset-core/src/superset_core/common/daos.py0abstract keyvalue model interface. host implementations will replace this class during initialization with concrete implSTRING
HIGHtests/unit_tests/pandas_postprocessing/test_cum.py0count_metric sum_metric country uk us uk us dttm 2019-01-01 1 2 5 6 2019-01-02 3 4 7 8STRING
HIGHtests/unit_tests/pandas_postprocessing/test_rolling.py0count_metric sum_metric country uk us uk us dttm 2019-01-01 1 2 5 6 2019-01-02 3 4 7 8STRING
HIGHtests/unit_tests/pandas_postprocessing/test_compare.py0count_metric sum_metric country uk us uk us dttm 2019-01-01 1 2 5 6 2019-01-02 3 4 7 8STRING
HIGH…it_tests/datasets/commands/importers/v1/import_test.py0non-overwrite re-import of a soft-deleted uuid is implicitly a restore-and-update: the user is bringing the dashboard baSTRING
HIGH…unit_tests/charts/commands/importers/v1/import_test.py0non-overwrite re-import of a soft-deleted uuid is implicitly a restore-and-update: the user is bringing the dashboard baSTRING
HIGH…_tests/dashboards/commands/importers/v1/import_test.py0non-overwrite re-import of a soft-deleted uuid is implicitly a restore-and-update: the user is bringing the dashboard baSTRING
HIGH…it_tests/datasets/commands/importers/v1/import_test.py0non-overwrite re-import that would resurrect a soft-deleted dashboard must respect editorship: a non-editor without admiSTRING
HIGH…unit_tests/charts/commands/importers/v1/import_test.py0non-overwrite re-import that would resurrect a soft-deleted dashboard must respect editorship: a non-editor without admiSTRING
HIGH…_tests/dashboards/commands/importers/v1/import_test.py0non-overwrite re-import that would resurrect a soft-deleted dashboard must respect editorship: a non-editor without admiSTRING
HIGH…it_tests/datasets/commands/importers/v1/import_test.py0an *active* (not soft-deleted) dashboard re-imported with overwrite=true by a caller without can_write must fall throughSTRING
HIGH…unit_tests/charts/commands/importers/v1/import_test.py0an *active* (not soft-deleted) dashboard re-imported with overwrite=true by a caller without can_write must fall throughSTRING
HIGH…_tests/dashboards/commands/importers/v1/import_test.py0an *active* (not soft-deleted) dashboard re-imported with overwrite=true by a caller without can_write must fall throughSTRING
HIGHtests/unit_tests/mcp_service/rls/tool/test_rls_tools.py0schema-level pagination boundary tests — ``page`` is positiveint and ``page_size`` is constrained to (0, max_page_size].STRING
HIGH…tests/mcp_service/database/tool/test_database_tools.py0schema-level pagination boundary tests — ``page`` is positiveint and ``page_size`` is constrained to (0, max_page_size].STRING
HIGH…ts/unit_tests/mcp_service/user/tool/test_user_tools.py0schema-level pagination boundary tests — ``page`` is positiveint and ``page_size`` is constrained to (0, max_page_size].STRING
HIGHtests/unit_tests/mcp_service/tag/tool/test_tag_tools.py0schema-level pagination boundary tests — ``page`` is positiveint and ``page_size`` is constrained to (0, max_page_size].STRING
HIGHtests/unit_tests/mcp_service/rls/tool/test_rls_tools.py0page_size=0 is rejected before the tool body runs, surfacing as a structured toolerror rather than a raw 500.STRING
HIGH…tests/mcp_service/database/tool/test_database_tools.py0page_size=0 is rejected before the tool body runs, surfacing as a structured toolerror rather than a raw 500.STRING
HIGH…ts/unit_tests/mcp_service/user/tool/test_user_tools.py0page_size=0 is rejected before the tool body runs, surfacing as a structured toolerror rather than a raw 500.STRING
HIGHtests/unit_tests/mcp_service/tag/tool/test_tag_tools.py0page_size=0 is rejected before the tool body runs, surfacing as a structured toolerror rather than a raw 500.STRING
HIGHtests/unit_tests/mcp_service/rls/tool/test_rls_tools.py0a page far past the last page returns an empty list, not an error.STRING
HIGH…tests/mcp_service/database/tool/test_database_tools.py0a page far past the last page returns an empty list, not an error.STRING
HIGH…ts/unit_tests/mcp_service/user/tool/test_user_tools.py0a page far past the last page returns an empty list, not an error.STRING
HIGHtests/unit_tests/mcp_service/tag/tool/test_tag_tools.py0a page far past the last page returns an empty list, not an error.STRING
HIGH…ests/mcp_service/semantic_layer/tool/test_get_table.py0errors when neither dataset_id nor view_id is provided.STRING
HIGH…/semantic_layer/tool/test_get_compatible_dimensions.py0errors when neither dataset_id nor view_id is provided.STRING
HIGH…ice/semantic_layer/tool/test_get_compatible_metrics.py0errors when neither dataset_id nor view_id is provided.STRING
HIGH…ests/mcp_service/semantic_layer/tool/test_get_table.py0errors when both dataset_id and view_id are provided.STRING
HIGH…/semantic_layer/tool/test_get_compatible_dimensions.py0errors when both dataset_id and view_id are provided.STRING
HIGH…ice/semantic_layer/tool/test_get_compatible_metrics.py0errors when both dataset_id and view_id are provided.STRING
HIGH…ests/mcp_service/semantic_layer/tool/test_get_table.py0errors when the user lacks data-model metadata access.STRING
HIGH…/semantic_layer/tool/test_get_compatible_dimensions.py0errors when the user lacks data-model metadata access.STRING
HIGH…ice/semantic_layer/tool/test_get_compatible_metrics.py0errors when the user lacks data-model metadata access.STRING
HIGH…ests/mcp_service/semantic_layer/tool/test_get_table.py0returns accessdenied when raise_for_access rejects the view.STRING
HIGH…/semantic_layer/tool/test_get_compatible_dimensions.py0returns accessdenied when raise_for_access rejects the view.STRING
HIGH…ice/semantic_layer/tool/test_get_compatible_metrics.py0returns accessdenied when raise_for_access rejects the view.STRING
HIGH…unit_tests/mcp_service/dataset/test_dataset_schemas.py0test that llm-friendly field name variants are accepted on the dashboard mcp tool request schemas, so callers sending 'iSTRING
HIGH…sts/unit_tests/mcp_service/chart/test_chart_schemas.py0test that llm-friendly field name variants are accepted on the dashboard mcp tool request schemas, so callers sending 'iSTRING
HIGH…_tests/mcp_service/dashboard/test_dashboard_schemas.py0test that llm-friendly field name variants are accepted on the dashboard mcp tool request schemas, so callers sending 'iSTRING
HIGH…t_tests/mcp_service/dataset/tool/test_dataset_tools.py0test that minimal default columns are properly defined.STRING
HIGH…/unit_tests/mcp_service/chart/tool/test_list_charts.py0test that minimal default columns are properly defined.STRING
HIGH…sts/mcp_service/dashboard/tool/test_dashboard_tools.py0test that minimal default columns are properly defined.STRING
HIGH…t_tests/mcp_service/dataset/tool/test_dataset_tools.py0regression test: order_column='changed_on_delta_humanized' is the "last modified" column name used by superset's own resSTRING
HIGH…/unit_tests/mcp_service/chart/tool/test_list_charts.py0regression test: order_column='changed_on_delta_humanized' is the "last modified" column name used by superset's own resSTRING
HIGH…sts/mcp_service/dashboard/tool/test_dashboard_tools.py0regression test: order_column='changed_on_delta_humanized' is the "last modified" column name used by superset's own resSTRING
HIGH…t_tests/mcp_service/dataset/tool/test_dataset_tools.py0a genuinely unknown order_column must still be rejected.STRING
HIGH…/unit_tests/mcp_service/chart/tool/test_list_charts.py0a genuinely unknown order_column must still be rejected.STRING
HIGH…sts/mcp_service/dashboard/tool/test_dashboard_tools.py0a genuinely unknown order_column must still be rejected.STRING
HIGH…nit_tests/mcp_service/chart/tool/test_restore_chart.py0unit tests for the restore_dashboard mcp tool. run through the async mcp client (not direct calls); auth is mocked via tSTRING
HIGH…unit_tests/mcp_service/chart/tool/test_delete_chart.py0unit tests for the restore_dashboard mcp tool. run through the async mcp client (not direct calls); auth is mocked via tSTRING
HIGH…s/mcp_service/dashboard/tool/test_restore_dashboard.py0unit tests for the restore_dashboard mcp tool. run through the async mcp client (not direct calls); auth is mocked via tSTRING
HIGH…nit_tests/mcp_service/chart/tool/test_restore_chart.py0raw sqlalchemy text (sql, connection details) must not reach the client.STRING
HIGH…unit_tests/mcp_service/chart/tool/test_delete_chart.py0raw sqlalchemy text (sql, connection details) must not reach the client.STRING
HIGH…s/mcp_service/dashboard/tool/test_restore_dashboard.py0raw sqlalchemy text (sql, connection details) must not reach the client.STRING
HIGH…ts/mcp_service/dashboard/tool/test_delete_dashboard.py0raw sqlalchemy text (sql, connection details) must not reach the client.STRING
202 more matches not shown…
Unused Imports1196 hits · 1064 pts
SeverityFileLineSnippetContext
LOWdocker/pythonpath_dev/superset_config_docker_light.py25CODE
LOWdocker/pythonpath_dev/superset_config.py150CODE
LOWdocker/pythonpath_dev/superset_config.py160CODE
LOWdocker/pythonpath_dev/superset_test_config_light.py26CODE
LOWsuperset-core/src/superset_core/tasks/models.py28CODE
LOWsuperset-core/src/superset_core/tasks/models.py37CODE
LOWsuperset-core/src/superset_core/tasks/types.py18CODE
LOWsuperset-core/src/superset_core/tasks/decorators.py18CODE
LOWsuperset-core/src/superset_core/tasks/decorators.py25CODE
LOW…erset-core/src/superset_core/semantic_layers/config.py18CODE
LOW…erset-core/src/superset_core/semantic_layers/models.py32CODE
LOWsuperset-core/src/superset_core/semantic_layers/daos.py32CODE
LOW…perset-core/src/superset_core/semantic_layers/types.py18CODE
LOWsuperset-core/src/superset_core/semantic_layers/view.py18CODE
LOW…perset-core/src/superset_core/semantic_layers/layer.py18CODE
LOW…perset-core/src/superset_core/semantic_layers/layer.py24CODE
LOW…t-core/src/superset_core/semantic_layers/decorators.py42CODE
LOWsuperset-core/src/superset_core/queries/models.py28CODE
LOWsuperset-core/src/superset_core/queries/query.py35CODE
LOWsuperset-core/src/superset_core/queries/types.py25CODE
LOWsuperset-core/src/superset_core/extensions/types.py26CODE
LOWsuperset-core/src/superset_core/extensions/context.py42CODE
LOWsuperset-core/src/superset_core/extensions/context.py47CODE
LOWsuperset-core/src/superset_core/extensions/context.py48CODE
LOWsuperset-core/src/superset_core/extensions/context.py49CODE
LOW…et-core/src/superset_core/extensions/storage/models.py31CODE
LOW…et-core/src/superset_core/extensions/storage/models.py39CODE
LOW…-core/src/superset_core/extensions/storage/__init__.py74CODE
LOW…-core/src/superset_core/extensions/storage/__init__.py74CODE
LOW…-core/src/superset_core/extensions/storage/__init__.py74CODE
LOW…-core/src/superset_core/extensions/storage/__init__.py74CODE
LOWsuperset-core/src/superset_core/common/models.py33CODE
LOWsuperset-core/src/superset_core/common/models.py43CODE
LOWsuperset-core/src/superset_core/common/models.py43CODE
LOWsuperset-core/src/superset_core/common/models.py43CODE
LOWsuperset-core/src/superset_core/rest_api/decorators.py36CODE
LOWtests/conftest.py26CODE
LOWtests/unit_tests/jinja_context_test.py18CODE
LOWtests/unit_tests/legacy_tests.py23CODE
LOWtests/unit_tests/test_marshmallow4_compat.py157CODE
LOWtests/unit_tests/test_sqllab_error_stacktrace.py43CODE
LOW…s/unit_tests/middleware/test_legacy_prefix_redirect.py35CODE
LOWtests/unit_tests/databases/error_provenance_test.py18CODE
LOWtests/unit_tests/databases/api_test.py20CODE
LOWtests/unit_tests/tasks/test_export_dashboard_excel.py17CODE
LOW…sts/unit_tests/tasks/test_version_history_retention.py29CODE
LOWtests/unit_tests/tasks/test_native_filter_cache.py17CODE
LOW…_tests/security/test_superset_user_api_subject_sync.py33CODE
LOW…_tests/security/test_superset_user_api_subject_sync.py45CODE
LOW…nit_tests/security/test_embedded_guest_chart_access.py26CODE
LOW…/security/test_password_change_session_invalidation.py29CODE
LOW…/security/test_password_change_session_invalidation.py44CODE
LOW…t_tests/security/test_guest_token_dataset_allowlist.py23CODE
LOWtests/unit_tests/security/guest_rls_test.py25CODE
LOWtests/unit_tests/dao/role_test.py17CODE
LOWtests/unit_tests/dao/user_test.py17CODE
LOWtests/unit_tests/dao/user_test.py29CODE
LOWtests/unit_tests/dao/group_test.py17CODE
LOWtests/unit_tests/dao/subject_test.py17CODE
LOWtests/unit_tests/dao/key_value_test.py18CODE
1136 more matches not shown…
Self-Referential Comments200 hits · 626 pts
SeverityFileLineSnippetContext
MEDIUMdocker/docker-init.sh51# Create an admin userCOMMENT
MEDIUMdocker/pythonpath_dev/superset_config.py18# This file is included in the final Docker image and SHOULD be overridden whenCOMMENT
MEDIUMtests/unit_tests/jinja_context_test.py2698 # Create a guest token with attributesCOMMENT
MEDIUMtests/unit_tests/jinja_context_test.py2752 # Create a guest token without attributesCOMMENT
MEDIUMtests/unit_tests/jinja_context_test.py2794 # Create a guest token with empty attributesCOMMENT
MEDIUMtests/unit_tests/jinja_context_test.py2837 # Create a guest token with null attributesCOMMENT
MEDIUMtests/unit_tests/jinja_context_test.py2883 # Create a real GuestUser object with attributesCOMMENT
MEDIUMtests/unit_tests/connectors/sqla/models_test.py956 # Create a Postgres-like engine to test proper quotingCOMMENT
MEDIUMtests/unit_tests/connectors/sqla/models_test.py993 # Create a PostgreSQL engine (doesn't support cross-catalog queries)COMMENT
MEDIUMtests/unit_tests/pandas_postprocessing/test_compare.py194 # Define a non-lexicographical column orderCOMMENT
MEDIUMtests/unit_tests/databases/api_test.py638 # Create a mock objectCOMMENT
MEDIUMtests/unit_tests/databases/api_test.py2539 # Create a database with a non-default configuration_methodCOMMENT
MEDIUMtests/unit_tests/security/manager_test.py3040 # Create a mock table where .data raises an exception if accessedCOMMENT
MEDIUMtests/unit_tests/dao/tag_test.py150 # Define a list of objects to tagCOMMENT
MEDIUMtests/unit_tests/semantic_layers/mapper_test.py2194 # Create main dataframeCOMMENT
MEDIUMtests/unit_tests/utils/test_date_parsing.py197 # Create a DataFrame with string values representing dates that areCOMMENT
MEDIUMtests/unit_tests/utils/test_date_parsing.py202 # Create a mock type that raises ValueError when pd.Timestamp is called on itCOMMENT
MEDIUMtests/unit_tests/utils/test_core.py668 # Create a mock SQLAlchemy database objectCOMMENT
MEDIUMtests/unit_tests/utils/test_core.py671 # Define the table name and constraint detailsCOMMENT
MEDIUMtests/unit_tests/utils/test_core.py677 # Create a mock table object with the same structureCOMMENT
MEDIUMtests/unit_tests/utils/test_core.py682 # Create a mock for the referred_table with a name attributeCOMMENT
MEDIUMtests/unit_tests/utils/test_core.py686 # Create a mock for the foreign key constraint with a name attributeCOMMENT
MEDIUMtests/unit_tests/utils/test_core.py711 # Create a mock SQLAlchemy database objectCOMMENT
MEDIUMtests/unit_tests/utils/test_core.py714 # Define the table name and constraint detailsCOMMENT
MEDIUMtests/unit_tests/utils/test_core.py719 # Create a mock table object with the same structure but no matching constraintCOMMENT
MEDIUMtests/unit_tests/utils/test_core.py576 # Create a DataFrame with timestamp stringsCOMMENT
MEDIUMtests/unit_tests/utils/test_core.py743 # Create a mock for the foreign key constraint as a dictionaryCOMMENT
MEDIUMtests/unit_tests/models/helpers_test.py467 # Create a mock table for testingCOMMENT
MEDIUMtests/unit_tests/models/helpers_test.py498 # Create a condition factory that always returns TrueCOMMENT
MEDIUMtests/unit_tests/models/helpers_test.py559 # Create a mock table for testingCOMMENT
MEDIUMtests/unit_tests/models/helpers_test.py576 # Create a condition factory that always returns FalseCOMMENT
MEDIUMtests/unit_tests/models/helpers_test.py622 # Create a real table instanceCOMMENT
MEDIUMtests/unit_tests/models/helpers_test.py720 # Create a table instanceCOMMENT
MEDIUMtests/unit_tests/models/helpers_test.py985 # Create a mock template processorCOMMENT
MEDIUMtests/unit_tests/models/helpers_test.py1339 # Create a mock template processorCOMMENT
MEDIUMtests/unit_tests/models/helpers_test.py1469 # Create a simple queryCOMMENT
MEDIUMtests/unit_tests/models/helpers_test.py1525 # Create a simple queryCOMMENT
MEDIUMtests/unit_tests/models/helpers_test.py1575 # Create a query with GROUP BYCOMMENT
MEDIUMtests/unit_tests/models/helpers_test.py1636 # Create a simple queryCOMMENT
MEDIUMtests/unit_tests/models/helpers_test.py1681 # Create a simple queryCOMMENT
MEDIUMtests/unit_tests/models/helpers_test.py1843 # Create a table with a temporal columnCOMMENT
MEDIUMtests/unit_tests/models/helpers_test.py1926 # Create a mock SqlaTable with columnsCOMMENT
MEDIUM…it_tests/models/test_time_filter_double_application.py54 # Create a virtual dataset that uses get_time_filter withCOMMENT
MEDIUM…it_tests/models/test_time_filter_double_application.py93 # Create a query object with a time filterSTRING
MEDIUMtests/unit_tests/tags/models_test.py154 # Create an existing tagCOMMENT
MEDIUMtests/unit_tests/tags/commands/create_test.py77 # Define a list of objects to tagCOMMENT
MEDIUMtests/unit_tests/tags/commands/create_test.py189 # Define a list of objects to tagCOMMENT
MEDIUMtests/unit_tests/tags/commands/update_test.py237 # Create a tag with multiple objectsCOMMENT
MEDIUMtests/unit_tests/mcp_service/chart/test_chart_utils.py1427 # Create a time series chart configurationCOMMENT
MEDIUM…it_tests/mcp_service/chart/tool/test_generate_chart.py145 # Create a validation error with the correct structureCOMMENT
MEDIUMtests/unit_tests/common/test_query_context_processor.py667 # Create a dataframe for testingCOMMENT
MEDIUMtests/unit_tests/common/test_query_context_processor.py676 # Create a properly mocked datasourceCOMMENT
MEDIUMtests/unit_tests/common/test_query_context_processor.py1524 # Create a mock query contextCOMMENT
MEDIUMtests/unit_tests/common/test_query_context_processor.py1529 # Create a mock datasourceCOMMENT
MEDIUMtests/unit_tests/common/test_query_context_processor.py63 # Create a processor instanceCOMMENT
MEDIUMtests/unit_tests/common/test_query_context_processor.py602 # Create a dataframe for testingCOMMENT
MEDIUMtests/unit_tests/common/test_query_context_processor.py1366 # Create a mock datasourceCOMMENT
MEDIUMtests/unit_tests/common/test_query_context_processor.py1543 # Create a query object with unsanitized where clauseCOMMENT
MEDIUMtests/unit_tests/common/test_query_context_processor.py1610 # Create a mock datasourceCOMMENT
MEDIUMtests/unit_tests/db_engine_specs/test_snowflake.py413 # Create a mock SQLAlchemy columnCOMMENT
140 more matches not shown…
Modern Structural Boilerplate565 hits · 568 pts
SeverityFileLineSnippetContext
LOWsuperset-core/src/superset_core/tasks/models.py91 def set_payload(self, data: dict[str, Any]) -> None:CODE
LOWsuperset-core/src/superset_core/tasks/models.py123 def update_properties(self, updates: "TaskProperties") -> None:CODE
LOWsuperset-core/src/superset_core/tasks/models.py166__all__ = [CODE
LOWsuperset-core/src/superset_core/tasks/daos.py76__all__ = ["TaskDAO"]CODE
LOWsuperset-core/src/superset_core/tasks/types.py231__all__ = [CODE
LOWsuperset-core/src/superset_core/tasks/decorators.py149__all__ = [CODE
LOW…erset-core/src/superset_core/semantic_layers/models.py85__all__ = ["SemanticLayerModel", "SemanticViewModel"]CODE
LOWsuperset-core/src/superset_core/semantic_layers/daos.py169__all__ = ["AbstractSemanticLayerDAO", "AbstractSemanticViewDAO"]CODE
LOW…t-core/src/superset_core/semantic_layers/decorators.py102__all__ = ["semantic_layer"]CODE
LOWsuperset-core/src/superset_core/queries/models.py76__all__ = [CODE
LOWsuperset-core/src/superset_core/queries/query.py51__all__ = ["get_sqlglot_dialect"]CODE
LOWsuperset-core/src/superset_core/queries/daos.py60__all__ = [CODE
LOWsuperset-core/src/superset_core/queries/types.py170__all__ = [CODE
LOWsuperset-core/src/superset_core/mcp/decorators.py188__all__ = [CODE
LOWsuperset-core/src/superset_core/common/models.py395__all__ = [CODE
LOWsuperset-core/src/superset_core/rest_api/api.py32__all__ = ["RestApi"]CODE
LOWsuperset-core/src/superset_core/rest_api/decorators.py103__all__ = ["api"]CODE
LOWtests/unit_tests/security/test_password_change.py133 def _set_user() -> None: # pylint: disable=unused-variableCODE
LOWtests/unit_tests/dao/dataset_rls_test.py23def _setup_tables(session: Session) -> None:CODE
LOWtests/unit_tests/models/test_virtual_dataset_format.py72def _set_virtual_sql(datasource: MagicMock, sql: str) -> None:CODE
LOWtests/unit_tests/extensions/storage/conftest.py62def set_user(user_id: int) -> None:CODE
LOWtests/unit_tests/mcp_service/rls/tool/test_rls_tools.py32logger = logging.getLogger(__name__)CODE
LOW…tests/mcp_service/database/tool/test_database_tools.py36logger = logging.getLogger(__name__)CODE
LOW…t_tests/mcp_service/dataset/tool/test_dataset_tools.py42logger = logging.getLogger(__name__)CODE
LOW…mcp_service/saved_query/tool/test_saved_query_tools.py36logger = logging.getLogger(__name__)CODE
LOW…e/annotation_layer/tool/test_annotation_layer_tools.py35logger = logging.getLogger(__name__)CODE
LOW…mcp_service/explore/tool/test_generate_explore_link.py50logger = logging.getLogger(__name__)CODE
LOW…p_service/dashboard/tool/test_manage_native_filters.py53logger = logging.getLogger(__name__)CODE
LOW…dashboard/tool/test_add_chart_to_existing_dashboard.py44logger = logging.getLogger(__name__)CODE
LOW…sts/mcp_service/dashboard/tool/test_dashboard_tools.py39logger = logging.getLogger(__name__)CODE
LOW…cp_service/dashboard/tool/test_dashboard_generation.py47logger = logging.getLogger(__name__)CODE
LOW…ice/dashboard/tool/test_remove_chart_from_dashboard.py53logger = logging.getLogger(__name__)CODE
LOW…mcp_service/dashboard/tool/test_duplicate_dashboard.py52logger = logging.getLogger(__name__)CODE
LOW…nit_tests/mcp_service/sql_lab/tool/test_execute_sql.py40logger = logging.getLogger(__name__)CODE
LOW…nit_tests/mcp_service/report/tool/test_report_tools.py31logger = logging.getLogger(__name__)CODE
LOW…/unit_tests/mcp_service/query/tool/test_query_tools.py35logger = logging.getLogger(__name__)CODE
LOWtests/unit_tests/mcp_service/tag/tool/test_tag_tools.py32logger = logging.getLogger(__name__)CODE
LOWtests/unit_tests/commands/report/update_test.py60def _setup_mocks(mocker: MockerFixture, model: Mock) -> None:CODE
LOWtests/unit_tests/sql/execution/test_executor.py740 def set_query_id(query: Any) -> None:CODE
LOWtests/integration_tests/core_tests.py74logger = logging.getLogger(__name__)CODE
LOWtests/integration_tests/cli_tests.py43logger = logging.getLogger(__name__)CODE
LOWtests/integration_tests/email_tests.py36logger = logging.getLogger(__name__)CODE
LOWtests/integration_tests/security/migrate_roles_tests.py36logger = logging.getLogger(__name__)CODE
LOW…tegration_tests/security/session_invalidation_tests.py42 def _set_active(self, active: bool) -> None:CODE
LOW…s/integration_tests/dashboards/dashboard_test_utils.py30logger = logging.getLogger(__name__)CODE
LOW…/integration_tests/dashboards/superset_factory_util.py41logger = logging.getLogger(__name__)CODE
LOW…generator/birth_names/birth_names_generator_factory.py40 def set_instance(cls, factory: BirthNamesGeneratorFactory) -> None:CODE
LOWscripts/benchmark_migration.py39logger = logging.getLogger(__name__)CODE
LOWsuperset/config.py73logger = logging.getLogger(__name__)CODE
LOWsuperset/stats_logger.py22logger = logging.getLogger(__name__)CODE
LOWsuperset/legacy.py22def update_time_range(form_data: dict[str, Any]) -> None:CODE
LOWsuperset/dataframe.py26logger = logging.getLogger(__name__)CODE
LOWsuperset/marshmallow_compatibility.py35logger = logging.getLogger(__name__)CODE
LOWsuperset/sql_lab.py78logger = logging.getLogger(__name__)CODE
LOWsuperset/app.py40logger = logging.getLogger(__name__)CODE
LOWsuperset/result_set.py33logger = logging.getLogger(__name__)CODE
LOWsuperset/jinja_context.py66logger = logging.getLogger(__name__)CODE
LOWsuperset/jinja_context.py964 def set_context(self, **kwargs: Any) -> None:CODE
LOWsuperset/jinja_context.py1074 def set_context(self, **kwargs: Any) -> None:CODE
LOWsuperset/jinja_context.py1138 def set_context(self, **kwargs: Any) -> None:CODE
505 more matches not shown…
Excessive Try-Catch Wrapping564 hits · 565 pts
SeverityFileLineSnippetContext
LOWsetup.py35 except Exception: # pylint: disable=broad-exceptCODE
MEDIUMsetup.py31def get_git_sha() -> str:CODE
LOW…s/unit_tests/datasets/test_datetime_format_detector.py63 except Exception as ex:CODE
LOW…s/unit_tests/datasets/test_datetime_format_detector.py68 except Exception as retry_ex:CODE
LOWtests/unit_tests/server/test_gunicorn_gevent_smoke.py117 except Exception as ex: # noqa: BLE001CODE
LOWtests/unit_tests/utils/test_core.py1924 except Exception:CODE
LOWtests/unit_tests/utils/test_core.py1931 except Exception:CODE
MEDIUMtests/unit_tests/models/core_test.py1090def worker() -> None:CODE
MEDIUMtests/unit_tests/models/core_test.py2265def thread_a() -> None:CODE
MEDIUMtests/unit_tests/models/core_test.py2276def thread_b() -> None:CODE
LOWtests/unit_tests/models/core_test.py1096 except Exception as ex: # pylint: disable=broad-exceptCODE
LOWtests/unit_tests/models/core_test.py1334 except Exception:CODE
LOWtests/unit_tests/models/core_test.py2270 except Exception as ex: # pylint: disable=broad-exceptCODE
LOWtests/unit_tests/models/core_test.py2284 except Exception as ex: # pylint: disable=broad-exceptCODE
LOWtests/unit_tests/extensions/test_sqlalchemy.py151 except Exception as e:CODE
LOWtests/unit_tests/extensions/test_sqlalchemy.py192 except Exception as e:CODE
LOWtests/unit_tests/extensions/test_sqlalchemy.py227 except Exception as e:CODE
LOWtests/unit_tests/extensions/test_sqlalchemy.py414 except Exception as e:STRING
LOWtests/unit_tests/extensions/test_sqlalchemy.py464 except Exception as e:STRING
LOWtests/unit_tests/extensions/test_sqlalchemy.py518 except Exception as e:STRING
LOWtests/unit_tests/extensions/test_sqlalchemy.py571 except Exception as e:STRING
LOWtests/unit_tests/extensions/test_sqlalchemy.py624 except Exception as e:STRING
LOWtests/unit_tests/extensions/test_sqlalchemy.py675 except Exception as e:STRING
LOWtests/unit_tests/extensions/test_sqlalchemy.py747 except Exception as e:CODE
LOWtests/unit_tests/extensions/test_sqlalchemy.py781 except Exception as e:CODE
LOWtests/unit_tests/commands/dataset/update_test.py999 except Exception as e:CODE
LOWtests/unit_tests/commands/dataset/update_test.py1043 except Exception as e:CODE
LOWtests/unit_tests/commands/dataset/update_test.py1102 except Exception as e:CODE
LOWtests/unit_tests/commands/dataset/update_test.py1165 except Exception as e:CODE
LOWtests/unit_tests/commands/dataset/update_test.py1206 except Exception as e:CODE
LOWtests/unit_tests/commands/dataset/update_test.py1254 except Exception as e:CODE
LOWtests/unit_tests/commands/dataset/update_test.py1279 except Exception as e:CODE
LOW…ts/unit_tests/commands/explore/test_get_explore_rls.py120 except Exception: # noqa: BLE001CODE
LOWtests/integration_tests/conftest.py128 except Exception: # noqa: S110CODE
LOW…s/integration_tests/deletion_retention/window_tests.py54 except Exception: # pylint: disable=broad-exceptCODE
LOW…s/integration_tests/deletion_retention/window_tests.py124 except Exception: # pylint: disable=broad-exceptCODE
LOWtests/integration_tests/tasks/api_tests.py110 except Exception: # noqa: S110CODE
LOWtests/integration_tests/tasks/api_tests.py115 except Exception:CODE
LOW…sts/integration_tests/tags/mysql_compatibility_test.py263 except Exception as e:CODE
LOW…integration_tests/dashboards/test_theme_integration.py82 except Exception:CODE
LOW…integration_tests/dashboards/test_theme_integration.py329 except Exception:CODE
MEDIUM…/integration_tests/dashboards/superset_factory_util.py200def delete_all_inserted_dashboards():CODE
MEDIUM…/integration_tests/dashboards/superset_factory_util.py264def delete_all_inserted_slices():CODE
MEDIUM…/integration_tests/dashboards/superset_factory_util.py303def delete_all_inserted_tables():CODE
MEDIUM…/integration_tests/dashboards/superset_factory_util.py342def delete_all_inserted_dbs():CODE
LOW…/integration_tests/dashboards/superset_factory_util.py213 except Exception:CODE
LOW…/integration_tests/dashboards/superset_factory_util.py219 except Exception:CODE
LOW…/integration_tests/dashboards/superset_factory_util.py278 except Exception:CODE
LOW…/integration_tests/dashboards/superset_factory_util.py284 except Exception:CODE
LOW…/integration_tests/dashboards/superset_factory_util.py317 except Exception:CODE
LOW…/integration_tests/dashboards/superset_factory_util.py323 except Exception:CODE
LOW…/integration_tests/dashboards/superset_factory_util.py352 except Exception:CODE
LOW…/integration_tests/dashboards/superset_factory_util.py358 except Exception:CODE
LOW…integration_tests/themes/test_theme_api_permissions.py70 except Exception:CODE
LOW…integration_tests/themes/test_theme_api_permissions.py75 except Exception:CODE
LOWtests/integration_tests/reports/utils.py252 except Exception as ex: # pylint: disable=broad-exceptCODE
LOW…rsion-6.1.0/guidelines/backend/dao-style-guidelines.md251 except Exception:CODE
LOW…eloper_docs/guidelines/backend/dao-style-guidelines.md251 except Exception:CODE
MEDIUMdocs/scripts/fix-openapi-spec.py795 print(f"Error: OpenAPI spec not found at {spec_path}", file=sys.stderr)CODE
MEDIUMdocs/scripts/extract_custom_errors.py182 print(f"Error parsing {filepath}: {e}", file=sys.stderr)CODE
504 more matches not shown…
Cross-Language Confusion99 hits · 529 pts
SeverityFileLineSnippetContext
HIGH…ore/src/superset_core/extensions/storage/persistent.py30- Shared (global): (extension_id, null, key)STRING
HIGHtests/unit_tests/sql_lab_test.py472 app_context.push()CODE
HIGHtests/unit_tests/pandas_postprocessing/test_cum.py39 assert _timeseries_df.equals(timeseries_df)CODE
HIGHtests/unit_tests/pandas_postprocessing/test_cum.py122 assert cum_and_flat_df.equals(CODE
HIGHtests/unit_tests/pandas_postprocessing/test_cum.py168 assert flat_df.equals(CODE
HIGHtests/unit_tests/pandas_postprocessing/test_rolling.py40 assert _timeseries_df.equals(timeseries_df)CODE
HIGHtests/unit_tests/pandas_postprocessing/test_rolling.py178 assert flat_df.equals(CODE
HIGHtests/unit_tests/pandas_postprocessing/test_rolling.py229 assert flat_df.equals(CODE
HIGHtests/unit_tests/pandas_postprocessing/test_resample.py35 assert _timeseries_df.equals(timeseries_df)CODE
HIGHtests/unit_tests/pandas_postprocessing/test_resample.py50 assert post_df.equals(CODE
HIGHtests/unit_tests/pandas_postprocessing/test_resample.py73 assert post_df.equals(CODE
HIGHtests/unit_tests/pandas_postprocessing/test_resample.py96 assert post_df.equals(CODE
HIGHtests/unit_tests/pandas_postprocessing/test_resample.py121 assert post_df.equals(CODE
HIGHtests/unit_tests/pandas_postprocessing/test_resample.py195 assert flat_df.equals(CODE
HIGHtests/unit_tests/pandas_postprocessing/test_resample.py280 assert post_df.equals(CODE
HIGHtests/unit_tests/pandas_postprocessing/test_sort.py49 assert df.equals(timeseries_df)CODE
HIGHtests/unit_tests/pandas_postprocessing/test_rename.py34 assert _categories_df.equals(categories_df)CODE
HIGHtests/unit_tests/pandas_postprocessing/test_rename.py54 assert not new_categories_df.equals(categories_df)CODE
HIGHtests/unit_tests/pandas_postprocessing/test_rename.py67 assert _categories_df_inplaced.equals(_categories_df)CODE
HIGHtests/unit_tests/pandas_postprocessing/test_compare.py36 assert _timeseries_df2.equals(timeseries_df2)CODE
HIGHtests/unit_tests/pandas_postprocessing/test_compare.py54 assert post_df.equals(CODE
HIGHtests/unit_tests/pandas_postprocessing/test_compare.py74 assert post_df.equals(CODE
HIGHtests/unit_tests/pandas_postprocessing/test_compare.py100 assert post_df.equals(CODE
HIGHtests/unit_tests/pandas_postprocessing/test_compare.py128 assert post_df.equals(CODE
HIGHtests/unit_tests/pandas_postprocessing/test_compare.py170 assert flat_df.equals(CODE
HIGHtests/unit_tests/pandas_postprocessing/test_compare.py234 assert flat_df.equals(CODE
HIGHtests/unit_tests/pandas_postprocessing/test_compare.py286 assert flat_df.equals(CODE
HIGHtests/unit_tests/databases/schema_tests.py491 (e.g. {"metadata_cache_timeout": {"schema_cache_timeout": null}}). ImportSTRING
HIGH…it_tests/datasets/commands/importers/v1/import_test.py194 assert sqla_table.metrics[0].extra == '{"warning_markdown": null}'CODE
HIGH…it_tests/datasets/commands/importers/v1/import_test.py1109 assert sqla_table.metrics[0].extra == '{"warning_markdown": null}'CODE
HIGH…it_tests/datasets/commands/importers/v1/import_test.py1171 "extra": '{"warning_markdown": null}',CODE
HIGH…it_tests/datasets/commands/importers/v1/import_test.py1199 assert sqla_table.metrics[0].extra == '{"warning_markdown": null}'CODE
HIGHtests/unit_tests/charts/test_client_processing.py3655 ) # Second data row should have empty last_name (NA converted to null)STRING
HIGHtests/unit_tests/extensions/storage/test_api.py955 back with value=null, but the row and its codec are still listed."""STRING
HIGHtests/unit_tests/mcp_service/test_middleware_logging.py678 '"tables": 161}], "row_count": 1, "error": null, 'CODE
HIGHtests/unit_tests/mcp_service/test_middleware_logging.py679 '"error_type": null}'CODE
HIGHtests/unit_tests/mcp_service/test_middleware_logging.py282 '{"success": false, "chart": null, 'CODE
HIGHtests/unit_tests/mcp_service/test_middleware_logging.py672 substring (as "error_type":null). The substring check must not treatSTRING
HIGHtests/unit_tests/common/test_form_data_query_context.py504 # order_by_cols entries that parse but aren't [col, asc] pairs (a stray null,COMMENT
HIGHtests/unit_tests/db_engine_specs/test_druid.py129 real numbers must keep their numeric type (specials become null).STRING
HIGHtests/unit_tests/examples/utils_test.py126 # Verify schema normalization happened (main -> null)COMMENT
HIGH…s/scripts/translations/build_translation_index_test.py222 """Empty plural forms across the board → null, not an empty dict."""STRING
HIGH…ts/unit_tests/scripts/translations/backfill_po_test.py112 Non-object JSON (list, string, null, number) must raise ValueError soSTRING
HIGHtests/unit_tests/commands/chart/update_test.py221 '{"datasource": null}', # null datasourceCODE
HIGH…ts/unit_tests/versioning/test_normalization_changes.py55 [missing, null]CODE
HIGHtests/unit_tests/sql/dialects/vertica_tests.py69 sql = "SELECT a::INT, b || c FROM t WHERE d ~ '^foo'"CODE
HIGHtests/unit_tests/sql/dialects/vertica_tests.py74 assert regenerated == "SELECT CAST(a AS INT), b || c FROM t WHERE d ~ '^foo'"CODE
HIGHtests/integration_tests/model_tests.py494 else "state || gender || '_test'"STRING
HIGHtests/integration_tests/sqla_models_tests.py1176 assert df.equals(result.df)CODE
HIGHtests/integration_tests/query_context_tests.py1303 assert df.equals(CODE
HIGHtests/integration_tests/query_context_tests.py1407 assert df.equals(CODE
HIGHtests/integration_tests/utils/hashing_tests.py166 '{"company": "Gobias Industries", "price": null, "product": "Coffee"}'CODE
HIGHtests/integration_tests/utils/hashing_tests.py193 '{"company": "Gobias Industries", "price": null, "product": "Coffee"}'CODE
HIGHtests/integration_tests/db_engine_specs/presto_tests.py373 {"row_column": "[[null]]"},CODE
HIGHtests/integration_tests/db_engine_specs/presto_tests.py374 {"row_column": "[null]"},CODE
HIGHscripts/translations/backfill_po.py371 # response (list, scalar, null) must surface as ValueError rather thanCOMMENT
HIGHsuperset/jinja_context.py387 all JSON-native types (string, number, boolean, array, object, null).STRING
HIGHsuperset/jinja_context.py394 the default and null) so two principals whose tokens renderSTRING
HIGHsuperset/jinja_context.py435 # null); a guest whose attribute is absent renders different SQLCOMMENT
HIGHsuperset/databases/schemas.py296 # rejects null) and avoiding a stored ``null`` that would break theCOMMENT
39 more matches not shown…
Deep Nesting357 hits · 312 pts
SeverityFileLineSnippetContext
LOWtests/unit_tests/jinja_context_test.py3256CODE
LOWtests/unit_tests/initialization_test.py294CODE
LOW…/unit_tests/distributed_lock/distributed_lock_tests.py63CODE
LOW…/unit_tests/distributed_lock/distributed_lock_tests.py93CODE
LOWtests/unit_tests/server/test_gunicorn_gevent_smoke.py63CODE
LOWtests/unit_tests/utils/date_parser_tests.py46CODE
LOWtests/unit_tests/utils/test_screenshot_utils.py911CODE
LOWtests/unit_tests/utils/test_screenshot_utils.py950CODE
LOWtests/unit_tests/utils/test_screenshot_utils.py980CODE
LOWtests/unit_tests/models/core_test.py1051CODE
LOWtests/unit_tests/models/core_test.py1090CODE
LOW…/mcp_service/test_mcp_multi_issuer_identity_binding.py66CODE
LOWtests/unit_tests/mcp_service/test_auth_api_key.py146CODE
LOWtests/unit_tests/mcp_service/test_auth_api_key.py188CODE
LOW…ts/unit_tests/mcp_service/test_auth_user_resolution.py236CODE
LOW…ts/unit_tests/mcp_service/test_auth_user_resolution.py294CODE
LOW…ts/unit_tests/mcp_service/test_auth_user_resolution.py705CODE
LOWtests/unit_tests/mcp_service/test_mcp_caching.py185CODE
LOW…s/unit_tests/mcp_service/test_mcp_tool_registration.py60CODE
LOWtests/unit_tests/mcp_service/test_mcp_e2e_smoke.py91CODE
LOWtests/unit_tests/mcp_service/test_mcp_e2e_smoke.py112CODE
LOWtests/unit_tests/mcp_service/test_mcp_storage.py61CODE
LOW…it_tests/mcp_service/chart/tool/test_get_chart_data.py189CODE
LOWtests/unit_tests/mcp_service/utils/test_retry_utils.py248CODE
LOW…t_tests/mcp_service/sql_lab/test_execute_sql_helper.py26CODE
LOWtests/unit_tests/common/test_query_context_processor.py596CODE
LOWtests/unit_tests/common/test_query_context_processor.py662CODE
LOWtests/unit_tests/common/test_query_context_processor.py1974CODE
LOWtests/unit_tests/common/test_query_context_processor.py2044CODE
LOWtests/unit_tests/common/test_query_context_processor.py2104CODE
LOWtests/unit_tests/commands/databases/csv_reader_test.py1260CODE
LOWtests/unit_tests/commands/dataset/test_duplicate.py77CODE
LOWtests/unit_tests/commands/dataset/test_duplicate.py170CODE
LOWtests/unit_tests/commands/dataset/test_duplicate.py259CODE
LOWtests/unit_tests/commands/dataset/test_duplicate.py298CODE
LOWtests/unit_tests/commands/dataset/test_duplicate.py340CODE
LOWtests/unit_tests/commands/dataset/test_duplicate.py446CODE
LOWtests/unit_tests/commands/dataset/test_create.py29CODE
LOWtests/unit_tests/commands/dataset/test_create.py78CODE
LOWtests/unit_tests/commands/dataset/test_create.py140CODE
LOWtests/unit_tests/commands/dataset/test_create.py176CODE
LOWtests/unit_tests/commands/dataset/test_create.py217CODE
LOWtests/unit_tests/commands/chart/test_access_checks.py43CODE
LOWtests/unit_tests/commands/chart/test_access_checks.py72CODE
LOWtests/unit_tests/commands/chart/test_access_checks.py103CODE
LOWtests/unit_tests/commands/chart/test_access_checks.py144CODE
LOWtests/integration_tests/base_tests.py698CODE
LOWtests/integration_tests/datasource_tests.py386CODE
LOWtests/integration_tests/tasks/commands/test_cancel.py342CODE
LOWtests/integration_tests/tasks/commands/test_cancel.py379CODE
LOWtests/integration_tests/tasks/commands/test_cancel.py453CODE
LOWtests/integration_tests/charts/data/api_tests.py1705CODE
LOWtests/integration_tests/sql_lab/commands_tests.py439CODE
LOWtests/integration_tests/dashboards/api_tests.py3243CODE
LOWtests/integration_tests/views/test_explore_redirect.py299CODE
LOWdocs/scripts/fix-openapi-spec.py327CODE
LOWdocs/scripts/fix-openapi-spec.py548CODE
LOWdocs/scripts/fix-openapi-spec.py652CODE
LOWdocs/scripts/fix-openapi-spec.py711CODE
LOWdocs/scripts/fix-openapi-spec.py746CODE
297 more matches not shown…
Redundant / Tautological Comments134 hits · 213 pts
SeverityFileLineSnippetContext
LOWdocker/frontend-mem-nag.sh26 # Check if running in Codespaces firstCOMMENT
LOWdocker/docker-pytest-entrypoint.sh89# Check if test database existsCOMMENT
LOWtests/unit_tests/tasks/test_handlers.py562 # Set task to SUCCESS (not aborting) so only cleanup handlers runCOMMENT
LOWtests/unit_tests/tasks/test_handlers.py614 # Set task to ABORTING so both abort and cleanup handlers runCOMMENT
LOWtests/unit_tests/security/manager_test.py1274 # Check if Alpha role already existsCOMMENT
LOWtests/unit_tests/security/manager_test.py1281 # Check if user already existsCOMMENT
LOWtests/unit_tests/dao/base_dao_test.py205 # Set model_cls to None but allow method to proceed past guard clauseCOMMENT
LOWtests/unit_tests/utils/test_screenshot_cache_fix.py267 # Set TTL to 300 secondsCOMMENT
LOWtests/unit_tests/utils/test_screenshot_cache_fix.py282 # Set TTL to 300 secondsCOMMENT
LOW…it_tests/models/test_time_filter_double_application.py135 # Check if there's a WHERE clause after the subquery closesSTRING
LOW…it_tests/models/test_time_filter_double_application.py358 # Check if there's a WHERE clause after the subquerySTRING
LOW…s/unit_tests/mcp_service/test_mcp_tool_registration.py146 # Check if it has any .py files in it or its subdirectoriesCOMMENT
LOW…t_tests/mcp_service/sql_lab/test_execute_sql_helper.py36 # Check if it's a Pydantic model with model_dumpCOMMENT
LOWtests/unit_tests/db_engine_specs/test_trino.py560 # Set stats to FINISHED so the progress loop exits immediatelyCOMMENT
LOWtests/unit_tests/commands/databases/csv_reader_test.py262 # Check if both values are NaNCOMMENT
LOW…sts/unit_tests/commands/databases/excel_reader_test.py185 # Check if both values are NaNCOMMENT
LOW…/unit_tests/commands/databases/columnar_reader_test.py129 # Check if both values are NaNCOMMENT
LOWtests/unit_tests/sql/execution/test_celery_task.py90 # Set end_time to trigger the branch skipCOMMENT
LOWtests/integration_tests/tasks/test_event_handlers.py251 # Set status to ABORTING (simulating CancelTaskCommand)COMMENT
LOW…integration_tests/dashboards/test_theme_integration.py89 # Assign theme to dashboardCOMMENT
LOW…integration_tests/dashboards/test_theme_integration.py100 # Assign theme to dashboardCOMMENT
LOW…integration_tests/dashboards/test_theme_integration.py332 # Set theme to None so tearDown doesn't try to delete itCOMMENT
LOW…integration_tests/dashboards/test_theme_integration.py157 # Assign theme to dashboardCOMMENT
LOW…integration_tests/dashboards/test_theme_integration.py182 # Assign theme to dashboardCOMMENT
LOW…integration_tests/dashboards/test_theme_integration.py211 # Assign theme to dashboardCOMMENT
LOW…integration_tests/dashboards/test_theme_integration.py231 # Set theme to None so tearDown doesn't try to delete itCOMMENT
LOW…integration_tests/dashboards/test_theme_integration.py251 # Assign theme to both dashboardsCOMMENT
LOW…integration_tests/dashboards/test_theme_integration.py374 # Assign theme to dashboardCOMMENT
LOWdocs/scripts/fix-openapi-spec.py467 # Check if endpoint has a request bodyCOMMENT
LOWdocs/scripts/fix-openapi-spec.py504 # Check if already configuredCOMMENT
LOWdocs/scripts/fix-openapi-spec.py780 # Check if this suffix is already in the summaryCOMMENT
LOW.devcontainer/start-superset.sh7# Check if MCP is enabledCOMMENT
LOW.devcontainer/start-superset.sh21# Check if docker is runningCOMMENT
LOWscripts/docker-compose-up.sh131# Check if containers are running and get actual ports, otherwise use available portsCOMMENT
LOWscripts/change_detector.py219 # Output resultsCOMMENT
LOW.github/workflows/bashlib.sh350 # Check if there are any test files in the specified pathCOMMENT
LOWsuperset/config.py3215# Set CACHE_TYPE to 'RedisCache' for standard Redis or 'RedisSentinelCache' forCOMMENT
LOWsuperset/sql_lab.py518 # Check if stoppedCOMMENT
LOWsuperset/app.py190 # Check if database is up-to-date with migrationsCOMMENT
LOWsuperset/result_set.py234 # Check if original data has nested types (lists/dicts)COMMENT
LOWsuperset/connectors/sqla/models.py289 # Check if all requested columns are drillableCOMMENT
LOWsuperset/databases/schemas.py1133 # Check if any sensitive field is still maskedCOMMENT
LOWsuperset/tasks/context.py378 # Check if task execution has already completed (late abort race).COMMENT
LOWsuperset/tasks/context.py439 # Check if all abort handlers completed successfullyCOMMENT
LOWsuperset/tasks/context.py486 # Check if task already has an error (preserve original context)COMMENT
LOWsuperset/tasks/context.py552 # Check if task has abort handler (requires app context)COMMENT
LOWsuperset/tasks/context.py572 # Set status to ABORTING (same as user abort)COMMENT
LOWsuperset/tasks/manager.py82 # Check if thread is still running after timeoutCOMMENT
LOWsuperset/tasks/manager.py548 # Check if stop was requested - if so, this may be expectedCOMMENT
LOWsuperset/tasks/manager.py599 # Check if we were asked to stop - if so, this is expectedCOMMENT
LOWsuperset/tasks/decorators.py342 # Check if already in terminal stateCOMMENT
LOWsuperset/security/manager.py2271 # Check if this is actually a multi-layer deck.gl chartCOMMENT
LOWsuperset/security/manager.py3286 # Check if database name has changedCOMMENT
LOWsuperset/security/manager.py3607 # Check if watched fields have changedCOMMENT
LOWsuperset/semantic_layers/mapper.py937 # Check if we need separate filters for the group limit subqueryCOMMENT
LOWsuperset/semantic_layers/mapper.py964 # Check if inner time bounds are explicitly set and differ from outer boundsCOMMENT
LOWsuperset/charts/client_processing.py825 # Check if the DataFrame has a default RangeIndex, which should not be shownCOMMENT
LOWsuperset/charts/data/api.py524 # Check if we should use streaming for large datasetsCOMMENT
LOWsuperset/charts/data/api.py799 # Check if we have rowcount in the second query result (like frontend does)COMMENT
LOWsuperset/utils/cache.py227 # Check if the user can access the resourceCOMMENT
74 more matches not shown…
Fake / Example Data198 hits · 203 pts
SeverityFileLineSnippetContext
LOWtests/unit_tests/test_marshmallow_compatibility.py172 data = {"name": "John Doe", "email": "john@example.com", "age": 30}CODE
LOWtests/unit_tests/test_marshmallow_compatibility.py174 assert result["name"] == "John Doe"CODE
LOWtests/unit_tests/tasks/test_export_dashboard_excel.py90 user.email = "user@example.com"CODE
LOW…_tests/security/test_superset_user_api_subject_sync.py62 email=f"{username}@example.org",CODE
LOW…_tests/security/test_superset_user_api_subject_sync.py76 email=f"{username}@example.org",CODE
LOWtests/unit_tests/security/manager_test.py1287 email="adoe@example.org",CODE
LOWtests/unit_tests/security/manager_test.py1177 email="adoe@example.org",CODE
LOWtests/unit_tests/security/manager_test.py1237 email="adoe@example.org",CODE
LOW…/security/test_password_change_session_invalidation.py66 email="session_invalidation_target@example.org",CODE
LOW…/security/test_password_change_session_invalidation.py73 email="session_invalidation_actor@example.org",CODE
LOW…/security/test_password_change_session_invalidation.py160 email="admin_edit_password_target@example.org",CODE
LOW…/security/test_password_change_session_invalidation.py195 email="admin_edit_no_password_target@example.org",CODE
LOW…/security/test_password_change_session_invalidation.py244 email="terminate_sessions_target@example.org",CODE
LOWtests/unit_tests/datasets/schema_tests.py86 label = "Jane Doe"CODE
LOWtests/unit_tests/datasets/schema_tests.py93 assert dumped == {"id": 1, "label": "Jane Doe", "img": "avatar.png", "type": 1}CODE
LOW…it_tests/datasets/commands/importers/v1/import_test.py1475 email="adoe@example.org",CODE
LOW…it_tests/datasets/commands/importers/v1/import_test.py1565 email="adoe@example.org",CODE
LOW…it_tests/datasets/commands/importers/v1/import_test.py1614 email="adoe@example.org",CODE
LOW…it_tests/datasets/commands/importers/v1/import_test.py1659 email="bob@example.org",CODE
LOW…it_tests/datasets/commands/importers/v1/import_test.py1858 email="adoe@example.org",CODE
LOW…unit_tests/charts/commands/importers/v1/import_test.py195 email="adoe@example.org",CODE
LOW…unit_tests/charts/commands/importers/v1/import_test.py236 email="adoe@example.org",CODE
LOW…unit_tests/charts/commands/importers/v1/import_test.py271 email="adoe@example.org",CODE
LOW…unit_tests/charts/commands/importers/v1/import_test.py326 email="adoe@example.org",CODE
LOW…unit_tests/charts/commands/importers/v1/import_test.py382 email="adoe@example.org",CODE
LOW…unit_tests/charts/commands/importers/v1/import_test.py415 email="bob@example.org",CODE
LOWtests/unit_tests/models/core_test.py571 user.email = "alice.doe@example.org"CODE
LOWtests/unit_tests/models/core_test.py729 user.email = "alice.doe@example.org"CODE
LOWtests/unit_tests/models/core_test.py793 user.email = "alice.doe@example.org"CODE
LOWtests/unit_tests/models/core_test.py1417 email="adoe@example.org",CODE
LOWtests/unit_tests/models/core_test.py1503 email="adoe2@example.org",CODE
LOWtests/unit_tests/models/core_test.py1521 email=f"drift{i}@example.org",CODE
LOWtests/unit_tests/models/core_test.py1602 email="adoe3@example.org",CODE
LOWtests/unit_tests/models/helpers_test.py2882 "val": ["John Doe", "Jane Doe"],CODE
LOWtests/unit_tests/models/helpers_test.py2882 "val": ["John Doe", "Jane Doe"],CODE
LOWtests/unit_tests/mcp_service/test_guest_token_auth.py65 fake_token = "fake-token" # noqa: S105 — test fixture, not a real credentialCODE
LOWtests/unit_tests/mcp_service/test_guest_token_auth.py66 return AccessToken(token=fake_token, client_id=client_id, scopes=[], claims=claims)CODE
LOWtests/unit_tests/mcp_service/user/test_schemas.py88 user.email = "admin@example.com"CODE
LOWtests/unit_tests/mcp_service/user/test_schemas.py100 assert info.email == "admin@example.com"CODE
LOWtests/unit_tests/mcp_service/user/test_schemas.py114 user.email = "admin@example.com"CODE
LOWtests/unit_tests/mcp_service/user/test_schemas.py137 user.email = "admin@example.com"CODE
LOWtests/unit_tests/mcp_service/user/test_schemas.py149 assert info.email == "admin@example.com"CODE
LOW…ts/unit_tests/mcp_service/user/tool/test_user_tools.py235 user = create_mock_user(email="admin@example.com", roles=["Admin"])CODE
LOW…ts/unit_tests/mcp_service/user/tool/test_user_tools.py245 assert data["users"][0]["email"] == "admin@example.com"CODE
LOW…ts/unit_tests/mcp_service/user/tool/test_user_tools.py253 user = create_mock_user(email="admin@example.com")CODE
LOW…ts/unit_tests/mcp_service/user/tool/test_user_tools.py45 email: str = "admin@example.com",CODE
LOW…sts/unit_tests/mcp_service/dashboard/test_permalink.py89 (None, "admin@example.com", {"email": "admin@example.com"}),CODE
LOW…cp_service/dashboard/tool/test_dashboard_generation.py156 mock_user.email = "admin@example.com"CODE
LOW…cp_service/dashboard/tool/test_dashboard_generation.py476 email="admin@example.com",CODE
LOW…cp_service/dashboard/tool/test_dashboard_generation.py523 email="admin@example.com",CODE
LOW…cp_service/dashboard/tool/test_dashboard_generation.py582 email="admin@example.com",CODE
LOW…tests/mcp_service/system/test_serialize_user_object.py40 user.email = "admin@example.com"CODE
LOW…tests/mcp_service/system/test_serialize_user_object.py51 assert result.email == "admin@example.com"CODE
LOW…tests/mcp_service/system/test_serialize_user_object.py68 user.email = "admin@example.com"CODE
LOWtests/unit_tests/db_engine_specs/test_starrocks.py306 user.email = "alice@example.org"CODE
LOWtests/unit_tests/db_engine_specs/test_starrocks.py315 database.get_effective_user.return_value = "alice@example.org"CODE
LOWtests/unit_tests/db_engine_specs/test_starrocks.py330 user.email = "alice.doe@example.org"CODE
LOWtests/unit_tests/db_engine_specs/test_starrocks.py339 database.get_effective_user.return_value = "alice.doe@example.org"CODE
LOWtests/unit_tests/db_engine_specs/test_starrocks.py354 user.email = "alice.doe@example.org"CODE
LOWtests/unit_tests/db_engine_specs/test_gsheets.py229 "subject": "admin@example.com",CODE
138 more matches not shown…
Structural Annotation Overuse105 hits · 194 pts
SeverityFileLineSnippetContext
LOW…commands/importers/v1/test_find_existing_for_import.py165 # Step 1: find (pure). Caller now has the row to make decisions on.COMMENT
LOW…commands/importers/v1/test_find_existing_for_import.py170 # Step 2: caller decides to clear (in real code, after overwrite +COMMENT
LOW…commands/importers/v1/test_find_existing_for_import.py174 # Step 3: caller can now re-insert with the same UUID withoutCOMMENT
LOWtests/unit_tests/reports/notifications/slack_tests.py2506 # Step 1: v1 send raises SlackV1NotificationError because v2 is available.COMMENT
LOWtests/unit_tests/reports/notifications/slack_tests.py2511 # Step 2: command-level upgrade rewrites the row to SlackV2 with channel IDs.COMMENT
LOWtests/unit_tests/reports/notifications/slack_tests.py2517 # Step 3: a fresh SlackV2Notification on the rewritten row sends to theCOMMENT
LOW…ntegration_tests/tasks/test_subscription_visibility.py47 # Step 1: Gamma submits a shared taskCOMMENT
LOW…ntegration_tests/tasks/test_subscription_visibility.py66 # Step 2: Admin joins the same taskCOMMENT
LOW…ntegration_tests/tasks/test_subscription_visibility.py84 # Step 3: Gamma cancels (unsubscribes)COMMENT
LOW…ntegration_tests/tasks/test_subscription_visibility.py96 # Step 4: Verify gamma can no longer see the taskCOMMENT
LOW…ntegration_tests/tasks/test_subscription_visibility.py103 # Step 5: Verify admin still sees the taskCOMMENT
LOWtests/integration_tests/utils/encrypt_tests.py193 # Step 1: Encrypt with KEY_ACOMMENT
LOWtests/integration_tests/utils/encrypt_tests.py198 # Step 2: Verify decryption with KEY_A worksCOMMENT
LOWtests/integration_tests/utils/encrypt_tests.py202 # Step 3: Rotate key to KEY_BCOMMENT
LOWtests/integration_tests/utils/encrypt_tests.py205 # Step 4: Re-encrypt with KEY_B (simulating SecretsMigrator logic)COMMENT
LOWtests/integration_tests/utils/encrypt_tests.py223 # Step 5: Verify decryption with KEY_B worksCOMMENT
LOWtests/integration_tests/utils/encrypt_tests.py227 # Step 6: Verify KEY_A can no longer decrypt the new ciphertextCOMMENT
LOWtests/integration_tests/dashboards/commands_tests.py928 # Step 1: Add an embedded dashboardCOMMENT
LOWtests/integration_tests/dashboards/commands_tests.py935 # Step 2: Assert that the embedded dashboard was addedCOMMENT
LOWtests/integration_tests/dashboards/commands_tests.py940 # Step 3: Delete the embedded dashboardCOMMENT
LOWtests/integration_tests/dashboards/commands_tests.py945 # Step 4: Assert that the embedded dashboard was deletedCOMMENT
LOW…ts/integration_tests/versioning/activity_view_tests.py424 # Step 1: generate a chart-edit change record for "Girls".COMMENT
LOW…ts/integration_tests/versioning/activity_view_tests.py428 # Step 2: hard-delete the chart. The fixture's _cleanup willCOMMENT
LOW.claude/projects/js-to-ts/AGENT.md20## Step 0: Dependency Check (MANDATORY)COMMENT
LOW.claude/projects/js-to-ts/AGENT.md33## Step 1: Identify Related Files (REQUIRED)COMMENT
LOW.claude/projects/js-to-ts/AGENT.md201### Step 2: File ConversionCOMMENT
LOW.claude/projects/js-to-ts/AGENT.md208### Step 3: Import & Type SetupCOMMENT
LOW.claude/projects/js-to-ts/AGENT.md217### Step 4: Function & Component TypingCOMMENT
LOW.claude/projects/js-to-ts/AGENT.md238### Step 5: State & Redux TypingCOMMENT
LOW…gin-chart-echarts/src/utils/safeEChartOptionsParser.ts410 // Step 1: Parse into ASTCOMMENT
LOW…gin-chart-echarts/src/utils/safeEChartOptionsParser.ts444 // Step 2: Validate AST for security (no functions, eval, etc.)COMMENT
LOW…gin-chart-echarts/src/utils/safeEChartOptionsParser.ts452 // Step 3: Convert AST to JavaScript objectCOMMENT
LOW…gin-chart-echarts/src/utils/safeEChartOptionsParser.ts455 // Step 4: Validate against Zod schema with partial/lenient modeCOMMENT
LOW…ents/TimeGrain/TimeGrainPreFilter.integration.test.tsx46 // Step 1: Simulate saved dashboard configCOMMENT
LOW…ents/TimeGrain/TimeGrainPreFilter.integration.test.tsx83 // Step 2: Render the dashboard filterCOMMENT
LOW…ents/TimeGrain/TimeGrainPreFilter.integration.test.tsx91 // Step 3: Verify only pre-filtered options appearCOMMENT
LOW…ents/TimeGrain/TimeGrainPreFilter.integration.test.tsx107 // Step 4: Selecting one allowed option should update runtime payloadCOMMENT
LOW…-frontend/src/dashboard/reducers/nativeFilters.test.ts510 // Step 1: filter(Boolean) — as hydrate.ts doesCOMMENT
LOW…-frontend/src/dashboard/reducers/nativeFilters.test.ts512 // Step 2: migrate — as hydrate.ts doesCOMMENT
LOW…-frontend/src/dashboard/reducers/nativeFilters.test.ts514 // Step 3: combine with native filters and pass to getInitialStateCOMMENT
LOW…versioned_docs/version-6.1.0/extensions/quick-start.md38## Step 1: Install the Extensions CLICOMMENT
LOW…versioned_docs/version-6.1.0/extensions/quick-start.md46## Step 2: Create a New ExtensionCOMMENT
LOW…versioned_docs/version-6.1.0/extensions/quick-start.md94## Step 3: Configure Extension MetadataCOMMENT
LOW…versioned_docs/version-6.1.0/extensions/quick-start.md116## Step 4: Create Backend APICOMMENT
LOW…versioned_docs/version-6.1.0/extensions/quick-start.md189## Step 5: Create Frontend ComponentCOMMENT
LOW…versioned_docs/version-6.1.0/extensions/quick-start.md422## Step 6: Install DependenciesCOMMENT
LOW…versioned_docs/version-6.1.0/extensions/quick-start.md432## Step 7: Package the ExtensionCOMMENT
LOW…versioned_docs/version-6.1.0/extensions/quick-start.md450## Step 8: Deploy to SupersetCOMMENT
LOW…versioned_docs/version-6.1.0/extensions/quick-start.md487## Step 9: Test Your ExtensionCOMMENT
LOWdocs/developer_docs/extensions/quick-start.md38## Step 1: Install the Extensions CLICOMMENT
LOWdocs/developer_docs/extensions/quick-start.md46## Step 2: Create a New ExtensionCOMMENT
LOWdocs/developer_docs/extensions/quick-start.md94## Step 3: Configure Extension MetadataCOMMENT
LOWdocs/developer_docs/extensions/quick-start.md116## Step 4: Create Backend APICOMMENT
LOWdocs/developer_docs/extensions/quick-start.md189## Step 5: Create Frontend ComponentCOMMENT
LOWdocs/developer_docs/extensions/quick-start.md421## Step 6: Install DependenciesCOMMENT
LOWdocs/developer_docs/extensions/quick-start.md431## Step 7: Package the ExtensionCOMMENT
LOWdocs/developer_docs/extensions/quick-start.md449## Step 8: Deploy to SupersetCOMMENT
LOWdocs/developer_docs/extensions/quick-start.md486## Step 9: Test Your ExtensionCOMMENT
LOWsuperset/config.py449# NOTE: This variable is used to populate THEME_DEFAULT. If you override this inCOMMENT
LOWsuperset/config.py466# NOTE: This variable is deprecated and not used in the new theme system.COMMENT
45 more matches not shown…
Verbosity Indicators73 hits · 145 pts
SeverityFileLineSnippetContext
LOW…commands/importers/v1/test_find_existing_for_import.py165 # Step 1: find (pure). Caller now has the row to make decisions on.COMMENT
LOW…commands/importers/v1/test_find_existing_for_import.py170 # Step 2: caller decides to clear (in real code, after overwrite +COMMENT
LOW…commands/importers/v1/test_find_existing_for_import.py174 # Step 3: caller can now re-insert with the same UUID withoutCOMMENT
LOWtests/unit_tests/reports/notifications/slack_tests.py2506 # Step 1: v1 send raises SlackV1NotificationError because v2 is available.COMMENT
LOWtests/unit_tests/reports/notifications/slack_tests.py2511 # Step 2: command-level upgrade rewrites the row to SlackV2 with channel IDs.COMMENT
LOWtests/unit_tests/reports/notifications/slack_tests.py2517 # Step 3: a fresh SlackV2Notification on the rewritten row sends to theCOMMENT
LOW…ntegration_tests/tasks/test_subscription_visibility.py47 # Step 1: Gamma submits a shared taskCOMMENT
LOW…ntegration_tests/tasks/test_subscription_visibility.py66 # Step 2: Admin joins the same taskCOMMENT
LOW…ntegration_tests/tasks/test_subscription_visibility.py84 # Step 3: Gamma cancels (unsubscribes)COMMENT
LOW…ntegration_tests/tasks/test_subscription_visibility.py96 # Step 4: Verify gamma can no longer see the taskCOMMENT
LOW…ntegration_tests/tasks/test_subscription_visibility.py103 # Step 5: Verify admin still sees the taskCOMMENT
LOWtests/integration_tests/utils/encrypt_tests.py193 # Step 1: Encrypt with KEY_ACOMMENT
LOWtests/integration_tests/utils/encrypt_tests.py198 # Step 2: Verify decryption with KEY_A worksCOMMENT
LOWtests/integration_tests/utils/encrypt_tests.py202 # Step 3: Rotate key to KEY_BCOMMENT
LOWtests/integration_tests/utils/encrypt_tests.py205 # Step 4: Re-encrypt with KEY_B (simulating SecretsMigrator logic)COMMENT
LOWtests/integration_tests/utils/encrypt_tests.py223 # Step 5: Verify decryption with KEY_B worksCOMMENT
LOWtests/integration_tests/utils/encrypt_tests.py227 # Step 6: Verify KEY_A can no longer decrypt the new ciphertextCOMMENT
LOWtests/integration_tests/dashboards/commands_tests.py928 # Step 1: Add an embedded dashboardCOMMENT
LOWtests/integration_tests/dashboards/commands_tests.py935 # Step 2: Assert that the embedded dashboard was addedCOMMENT
LOWtests/integration_tests/dashboards/commands_tests.py940 # Step 3: Delete the embedded dashboardCOMMENT
LOWtests/integration_tests/dashboards/commands_tests.py945 # Step 4: Assert that the embedded dashboard was deletedCOMMENT
LOW…ts/integration_tests/versioning/activity_view_tests.py424 # Step 1: generate a chart-edit change record for "Girls".COMMENT
LOW…ts/integration_tests/versioning/activity_view_tests.py428 # Step 2: hard-delete the chart. The fixture's _cleanup willCOMMENT
LOW…gin-chart-echarts/src/utils/safeEChartOptionsParser.ts410 // Step 1: Parse into ASTCOMMENT
LOW…gin-chart-echarts/src/utils/safeEChartOptionsParser.ts444 // Step 2: Validate AST for security (no functions, eval, etc.)COMMENT
LOW…gin-chart-echarts/src/utils/safeEChartOptionsParser.ts452 // Step 3: Convert AST to JavaScript objectCOMMENT
LOW…gin-chart-echarts/src/utils/safeEChartOptionsParser.ts455 // Step 4: Validate against Zod schema with partial/lenient modeCOMMENT
LOW…ents/TimeGrain/TimeGrainPreFilter.integration.test.tsx46 // Step 1: Simulate saved dashboard configCOMMENT
LOW…ents/TimeGrain/TimeGrainPreFilter.integration.test.tsx83 // Step 2: Render the dashboard filterCOMMENT
LOW…ents/TimeGrain/TimeGrainPreFilter.integration.test.tsx91 // Step 3: Verify only pre-filtered options appearCOMMENT
LOW…ents/TimeGrain/TimeGrainPreFilter.integration.test.tsx107 // Step 4: Selecting one allowed option should update runtime payloadCOMMENT
LOW…-frontend/src/dashboard/reducers/nativeFilters.test.ts510 // Step 1: filter(Boolean) — as hydrate.ts doesCOMMENT
LOW…-frontend/src/dashboard/reducers/nativeFilters.test.ts512 // Step 2: migrate — as hydrate.ts doesCOMMENT
LOW…-frontend/src/dashboard/reducers/nativeFilters.test.ts514 // Step 3: combine with native filters and pass to getInitialStateCOMMENT
LOWsuperset/semantic_layers/mapper.py120 # Step 1: Convert QueryObject to list of SemanticQuery objectsCOMMENT
LOWsuperset/semantic_layers/mapper.py124 # Step 2: Execute the main query (first in the list)COMMENT
LOWsuperset/semantic_layers/mapper.py196 # Step 5: Perform left join on dimension columnsCOMMENT
LOWsuperset/mcp_service/jwt_verifier.py492 # Step 1: Decode header and check algorithmCOMMENT
LOWsuperset/mcp_service/jwt_verifier.py535 # Step 2: Get verification key (static or JWKS).COMMENT
LOWsuperset/mcp_service/jwt_verifier.py577 # Step 3: Decode and verify signatureCOMMENT
LOWsuperset/mcp_service/jwt_verifier.py600 # Step 4: Check expiration. An ``exp`` claim is required — tokensCOMMENT
LOWsuperset/mcp_service/jwt_verifier.py652 # Step 5: Validate issuerCOMMENT
LOWsuperset/mcp_service/jwt_verifier.py670 # Step 6: Validate audienceCOMMENT
LOWsuperset/mcp_service/jwt_verifier.py697 # Step 7: Check required scopesCOMMENT
LOWsuperset/mcp_service/dataset/tool/query_dataset.py123 # Step 1: Check data-model metadata access BEFORE the dataset lookup.COMMENT
LOWsuperset/mcp_service/dataset/tool/query_dataset.py139 # Step 2: Resolve datasetCOMMENT
LOWsuperset/mcp_service/dataset/tool/query_dataset.py173 # Step 2: Validate requested columns and metricsCOMMENT
LOWsuperset/mcp_service/dataset/tool/query_dataset.py213 # Step 3: Build filters and time rangeCOMMENT
LOWsuperset/mcp_service/dataset/tool/query_dataset.py275 # Step 4: Build query dictCOMMENT
LOWsuperset/mcp_service/dataset/tool/query_dataset.py296 # Step 5: Create QueryContext and executeCOMMENT
LOWsuperset/mcp_service/dataset/tool/query_dataset.py331 # Step 6: Format responseCOMMENT
LOW…erset/mcp_service/chart/prompts/create_chart_guided.py88### Step 1: Find a DatasetCOMMENT
LOW…erset/mcp_service/chart/prompts/create_chart_guided.py91### Step 2: Examine ColumnsCOMMENT
LOW…erset/mcp_service/chart/prompts/create_chart_guided.py94### Step 3: Choose Chart ConfigurationCOMMENT
LOW…erset/mcp_service/chart/prompts/create_chart_guided.py101### Step 4: Create the ChartCOMMENT
LOW…erset/mcp_service/chart/prompts/create_chart_guided.py133### Step 5: Validate ResultsCOMMENT
LOWsuperset/common/query_context_processor.py574 # Step 1: Request-level custom timeout (e.g., Force refresh bypass)COMMENT
LOWsuperset/common/query_context_processor.py578 # Step 2: Native filter option query override.COMMENT
LOWsuperset/common/query_context_processor.py587 # Step 3: Slice, Dataset, or Database timeoutsCOMMENT
LOWsuperset/common/query_context_processor.py591 # Step 4: DATA_CACHE_CONFIG fallback.COMMENT
13 more matches not shown…
Docstring Block Structure27 hits · 132 pts
SeverityFileLineSnippetContext
HIGH…t-core/src/superset_core/semantic_layers/decorators.py55 Decorator to register a semantic layer implementation. Automatically detects extension context and applies appSTRING
HIGHsuperset-core/src/superset_core/mcp/decorators.py62 Decorator to register an MCP tool with optional authentication. This decorator combines FastMCP tool registratSTRING
HIGHsuperset-core/src/superset_core/mcp/decorators.py139 Decorator to register an MCP prompt with optional authentication. This decorator combines FastMCP prompt regisSTRING
HIGHsuperset-core/src/superset_core/rest_api/decorators.py48 Unified API decorator for both host and extension APIs. Automatically detects context: - Host context: /apSTRING
HIGHsuperset/jinja_context.py383 Get a specific user attribute from guest user. This function retrieves attributes from the guest user STRING
HIGHsuperset/tasks/decorators.py568 Schedule this task for asynchronous execution. The signature mirrors the original task function, with STRING
HIGHsuperset/utils/screenshot_utils.py415 Take a tiled screenshot of a large dashboard by scrolling and capturing sections. Args: page: PlaywrigSTRING
HIGHsuperset/utils/cache_manager.py59 Create a hash object using the configured algorithm. Args: data: Optional initial data to STRING
HIGHsuperset/utils/date_parser.py259 Generates a datetime expression for the start of a given unit (e.g., start of month, start of year). This STRING
HIGHsuperset/utils/date_parser.py289 Generates a datetime expression for the end of a given unit (e.g., end of month, end of year). This functSTRING
HIGHsuperset/utils/date_parser.py324 Handles "first" time expressions like "first of the month" or "first week of this year". This handler retuSTRING
HIGHsuperset/utils/date_parser.py381 Generates a datetime expression based on a modifier, scope, delta, unit, and relative base. This function hSTRING
HIGHsuperset/utils/date_parser.py426 Generates a datetime expression based on the scope, delta, unit, and relative base. This function handles queriSTRING
HIGHsuperset/utils/hashing.py49 Generate a hash from a string using the configured or specified algorithm. Args: val: String to hash STRING
HIGHsuperset/mcp_service/storage.py40 Create a store instance with the specified prefix. Uses shared MCP_STORE_CONFIG for Redis URL and wrapper typeSTRING
HIGHsuperset/mcp_service/storage.py196 Import a wrapper class from a dotted path. Args: class_path: Dotted path like 'key_value.aSTRING
HIGHsuperset/mcp_service/utils/schema_utils.py53 Parse a value that can be either a JSON string or a native Python object. This function handles the common patSTRING
HIGHsuperset/mcp_service/utils/schema_utils.py114 Parse a value into a list, accepting JSON string, list, or comma-separated string. This function provides maxiSTRING
HIGHsuperset/mcp_service/utils/schema_utils.py186 Parse a value into a Pydantic model, accepting JSON string or dict. Args: value: Input value to parse STRING
HIGHsuperset/mcp_service/utils/schema_utils.py230 Parse a value into a list of Pydantic models, accepting JSON string or list. Args: value: Input value STRING
HIGHsuperset/mcp_service/utils/sanitization.py198 Centralized sanitization for user-provided text inputs. Uses nh3 to strip HTML tags and performs additional seSTRING
HIGHsuperset/mcp_service/utils/sanitization.py282 Sanitize filter values which can be strings or other types. For non-string values, returns as-is (no sanitizatSTRING
HIGHsuperset/examples/helpers.py94Normalize example data URLs for consistency. This function ensures that example data URLs are properly formatted. STRING
HIGHsuperset/examples/helpers.py148Load data from local Parquet files. Examples are organized as: superset/examples/{example_name}/data.parqueSTRING
HIGHsuperset-extensions-cli/tests/utils.py106 Load and parse a JSON file. Args: path: Path to the JSON file Returns: Parsed JSON contenSTRING
HIGH…et-extensions-cli/src/superset_extensions_cli/utils.py258 Validate and normalize display name format. Args: display_name: Human-readable extension name RetSTRING
HIGH…et-extensions-cli/src/superset_extensions_cli/utils.py337 Generate all extension name variants from input. Args: display_name: Human-readable name (e.g., "DashbSTRING
Hallucination Indicators7 hits · 80 pts
SeverityFileLineSnippetContext
CRITICAL…s/unit_tests/extensions/storage/test_persistent_dao.py492 mock_db.session.query.return_value.filter.return_value.scalar.assert_not_called()CODE
CRITICAL…s/unit_tests/extensions/storage/test_persistent_dao.py509 mock_db.session.query.return_value.filter.return_value.scalar.assert_not_called()CODE
CRITICAL…s/unit_tests/extensions/storage/test_persistent_dao.py435 mock_db.session.query.return_value.filter.return_value.first.assert_not_called()CODE
CRITICAL…art-point-cluster-map/test/ScatterPlotOverlay.test.tsx418 expect(redrawParams.ctx.fillText.mock.calls.map(call => call[0])).toEqual([CODE
CRITICAL…art-point-cluster-map/test/ScatterPlotOverlay.test.tsx933 redrawParams.ctx.arc.mock.calls.forEach(call => {CODE
CRITICAL.github/workflows/check-db-migration-confict.yml43 const opts = github.rest.pulls.list.endpoint.merge({CODE
CRITICAL.github/workflows/check-db-migration-confict.yml57 const listFilesOpts = await github.rest.pulls.listFiles.endpoint.merge({CODE
AI Slop Vocabulary25 hits · 58 pts
SeverityFileLineSnippetContext
LOW…sts/unit_tests/security/test_guest_token_revocation.py156 # Should simply return without raising when the UUID does not resolve.COMMENT
MEDIUMtests/unit_tests/utils/webdriver_test.py73 """Test comprehensive Playwright availability checking."""STRING
MEDIUM…tegration_tests/tasks/commands/test_internal_update.py263 """Test atomic conditional status transitions with comprehensive scenarios.STRING
MEDIUMtests/integration_tests/dao/base_dao_test.py52# Create a test model for comprehensive testingCOMMENT
LOWtests/integration_tests/charts/commands_tests.py689 # can just pass in chart as wellCOMMENT
MEDIUM…ion_tests/dashboards/soft_delete_fixture_leak_tests.py41 # End any transaction the harness opened earlier: an already-open SQLiteCOMMENT
MEDIUM…frontend/plugins/plugin-chart-table/src/TableChart.tsx1608 // Use a ref to store previous clientViewRows and exportColumns for robust change detectionCOMMENT
MEDIUM…nd/src/pages/DatasetList/DatasetList.listview.test.tsx1797 // Select row by dataset name (row-scoped query is more robust than array index)COMMENT
MEDIUM…nd/src/pages/DatasetList/DatasetList.listview.test.tsx1865 // Select row by dataset name (row-scoped query is more robust than array index)COMMENT
MEDIUM…nd/src/pages/DatasetList/DatasetList.listview.test.tsx1939 // Select first virtual dataset by name (row-scoped query is more robust than array index)COMMENT
MEDIUM…nd/src/pages/DatasetList/DatasetList.listview.test.tsx1985 // Select first physical dataset by name (row-scoped query is more robust than array index)COMMENT
MEDIUM…nd/src/pages/DatasetList/DatasetList.listview.test.tsx2035 // Select first dataset by name (row-scoped query is more robust than array index)COMMENT
MEDIUMsuperset/config.py1954# This is move involved example where depending on the database you can leverage dataCOMMENT
LOWsuperset/tasks/context.py508 # No original error, just use handler failuresCOMMENT
MEDIUMsuperset/mcp_service/mcp_core.py827 """Tool interface for generating comprehensive instance information."""STRING
MEDIUMsuperset/mcp_service/mcp_core.py836 """Generate comprehensive instance information."""STRING
MEDIUMsuperset/mcp_service/mcp_core.py981 """Execute schema discovery and return comprehensive schema info."""STRING
LOW…vice/chart/validation/runtime/cardinality_validator.py90 # but that requires DB access - for now just return OKCOMMENT
MEDIUMsuperset/mcp_service/chart/tool/generate_chart.py244 # Run comprehensive validation pipelineCOMMENT
MEDIUMsuperset/mcp_service/chart/tool/get_chart_data.py899 # Generate comprehensive summary with cache infoCOMMENT
LOWsuperset/db_engine_specs/lint_metadata.py364 # f-strings - just return placeholderCOMMENT
MEDIUMsuperset/commands/dataset/importers/v1/utils.py362 # a hidden contract; the explicit flush makes it robust. The lookupCOMMENT
MEDIUMsuperset/commands/chart/importers/v1/utils.py103 # contract; the explicit flush makes it robust. The lookup thenCOMMENT
MEDIUMsuperset/commands/dashboard/importers/v1/utils.py368 # hidden contract; the explicit flush makes it robust. The lookupCOMMENT
MEDIUMsuperset/views/redirect.py65 # Block dangerous schemes using urlparse for robust detectionCOMMENT
AI Structural Patterns37 hits · 31 pts
SeverityFileLineSnippetContext
LOWsuperset-core/src/superset_core/mcp/decorators.py51CODE
LOW…sts/unit_tests/charts/test_dashboard_filter_context.py69CODE
LOW…tests/mcp_service/database/tool/test_database_tools.py65CODE
LOW…mcp_service/saved_query/tool/test_saved_query_tools.py78CODE
LOW…ts/unit_tests/mcp_service/task/tool/test_task_tools.py35CODE
LOW…nit_tests/mcp_service/report/tool/test_report_tools.py34CODE
LOW…/unit_tests/mcp_service/query/tool/test_query_tools.py72CODE
LOWtests/unit_tests/daos/test_tasks.py38CODE
LOWtests/integration_tests/base_tests.py448CODE
LOWtests/integration_tests/base_tests.py623CODE
LOWtests/integration_tests/base_tests.py695CODE
LOWtests/integration_tests/insert_chart_mixin.py31CODE
LOWtests/integration_tests/datasets/api_tests.py113CODE
LOWtests/integration_tests/queries/api_tests.py43CODE
LOW…/integration_tests/dashboards/superset_factory_util.py49CODE
LOW…/integration_tests/dashboards/superset_factory_util.py75CODE
LOWtests/integration_tests/reports/utils.py67CODE
LOWtests/integration_tests/reports/utils.py140CODE
LOWsuperset/core/mcp/core_mcp_injection.py63CODE
LOWsuperset/security/manager.py4304CODE
LOWsuperset/charts/data/api.py682CODE
LOWsuperset/utils/cache_manager.py94CODE
LOWsuperset/utils/cache_manager.py118CODE
LOWsuperset/utils/core.py901CODE
LOWsuperset/utils/dashboard_import_export.py33CODE
LOWsuperset/utils/json.py188CODE
LOWsuperset/models/helpers.py1583CODE
LOWsuperset/models/helpers.py4327CODE
LOWsuperset/mcp_service/mcp_core.py364CODE
LOWsuperset/mcp_service/app.py636CODE
LOWsuperset/mcp_service/app.py999CODE
LOWsuperset/common/query_object.py116CODE
LOWsuperset/common/utils/query_cache_manager.py55CODE
LOWsuperset/db_engine_specs/presto.py419CODE
LOWsuperset/async_events/cache_backend.py29CODE
LOWsuperset/async_events/cache_backend.py187CODE
LOWsuperset/daos/base.py846CODE
Slop Phrases11 hits · 18 pts
SeverityFileLineSnippetContext
LOWdocker-compose-image-tag.yml20# If you choose to use this type of deployment make sure toCOMMENT
LOWdocker-compose-non-dev.yml20# If you choose to use this type of deployment make sure toCOMMENT
LOWdocker-compose.yml20# If you choose to use this type of deployment make sure toCOMMENT
LOWtests/integration_tests/reports/utils.py255 # make sure to clean up in case of yield exceptionsCOMMENT
MEDIUMsuperset/config.py90# Note that you can use `StdOutEventLogger` for debuggingCOMMENT
MEDIUMsuperset/config.py291# Note that you can use this to set the isolation level of your database, as inCOMMENT
MEDIUMsuperset/config.py604# for adding your own map tiles, you can use the following format:COMMENT
LOWsuperset/config.py217# You should also make sure to configure your WSGI serverCOMMENT
LOWsuperset/constants.py18# ATTENTION: If you change any constants, make sure to also change utils/common.jsCOMMENT
LOWsuperset/utils/pandas_postprocessing/utils.py221 # make sure to return a new DataFrame instead of changing the `base_df`.COMMENT
LOWhelm/superset/values.yaml1137 # Make sure you are giving a strong password for the admin user creation( else make sure you are changing after setup)COMMENT
Modern AI Meta-Vocabulary8 hits · 17 pts
SeverityFileLineSnippetContext
MEDIUMsuperset-core/src/superset_core/mcp/decorators.py61) -> Any: # Use Any to avoid mypy issues with dependency injectionCODE
MEDIUMsuperset-core/src/superset_core/mcp/decorators.py138) -> Any: # Use Any to avoid mypy issues with dependency injectionCODE
MEDIUMCHANGELOG/6.1.0.md191- [#35163](https://github.com/apache/superset/pull/35163) feat(mcp): PR1 - Add MCP service scaffold for Apache Superset CODE
MEDIUMCHANGELOG/6.1.0.md191- [#35163](https://github.com/apache/superset/pull/35163) feat(mcp): PR1 - Add MCP service scaffold for Apache Superset CODE
MEDIUMCHANGELOG/6.1.0.md439- [#38391](https://github.com/apache/superset/pull/38391) fix(mcp): add guardrails to prevent LLM artifact generation (@CODE
MEDIUMCHANGELOG/6.1.0.md439- [#38391](https://github.com/apache/superset/pull/38391) fix(mcp): add guardrails to prevent LLM artifact generation (@CODE
MEDIUMCHANGELOG/6.1.0.md732- [#38472](https://github.com/apache/superset/pull/38472) docs(extensions): fix extension developer documentation and CLCODE
MEDIUMsuperset/mcp_service/app.py733# Initialize MCP dependency injection BEFORE importing tools/prompts.COMMENT
Magic Placeholder Names2 hits · 10 pts
SeverityFileLineSnippetContext
HIGHsuperset/mcp_service/jwt_verifier.py192 ' "Authorization": "Bearer <your-api-key>"\n'CODE
HIGHsuperset/mcp_service/jwt_verifier.py228 "and <code>&lt;your-api-key&gt;</code> with a valid API key or JWT token."CODE
Synthetic Comment Markers1 hit · 5 pts
SeverityFileLineSnippetContext
HIGHdocs/developer_docs/contributing/howtos.md360translations](#applying-translations) above), so an AI-generated string is shownCODE
Example Usage Blocks1 hit · 2 pts
SeverityFileLineSnippetContext
LOWscripts/docker-compose-up.sh27# Usage:COMMENT
Overly Generic Function Names1 hit · 1 pts
SeverityFileLineSnippetContext
LOWsuperset/tasks/scheduler.py281def execute_task( # noqa: C901CODE