Repository Analysis

plotly/dash

Data Apps & Dashboards for Python. No JavaScript Required.

4.5 Likely human-written View on GitHub

Analysis Overview

This report presents the forensic synthetic code analysis of plotly/dash, a Python project with 24,311 GitHub stars. SynthScan v2.0 examined 293,068 lines of code across 1127 source files, recording 810 pattern matches distributed across 18 syntactic categories. The overall adjusted score of 4.5 places this repository in the Likely human-written 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).

4.5
Adjusted Score
4.5
Raw Score
100%
Time Factor
2026-07-13
Last Push
24.3K
Stars
Python
Language
293.1K
Lines of Code
1.1K
Files
810
Pattern Hits
2026-07-14
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 2HIGH 51MEDIUM 137LOW 620

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 810 distinct pattern matches across 18 syntactic categories. Each entry below represents a discrete location in the source code where the engine recorded a statistically significant AI authorship indicator. Expand any category row to inspect the individual file paths, line numbers, code snippets, and the lexical context (CODE, COMMENT, or STRING) in which each match was detected.

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

Decorative Section Separators124 hits · 375 pts
SeverityFileLineSnippetContext
MEDIUMtests/unit/mcp/test_mcp_session.py28# ---------------------------------------------------------------------------COMMENT
MEDIUMtests/unit/mcp/test_mcp_session.py30# ---------------------------------------------------------------------------COMMENT
MEDIUMtests/unit/mcp/test_mcp_server.py10# ---------------------------------------------------------------------------COMMENT
MEDIUMtests/unit/mcp/test_mcp_server.py12# ---------------------------------------------------------------------------COMMENT
MEDIUMtests/unit/mcp/test_mcp_server.py48# ---------------------------------------------------------------------------COMMENT
MEDIUMtests/unit/mcp/test_mcp_server.py50# ---------------------------------------------------------------------------COMMENT
MEDIUMtests/unit/mcp/test_mcp_configure.py36# ---------------------------------------------------------------------------COMMENT
MEDIUMtests/unit/mcp/test_mcp_configure.py38# ---------------------------------------------------------------------------COMMENT
MEDIUMtests/unit/mcp/test_mcp_configure.py78# ---------------------------------------------------------------------------COMMENT
MEDIUMtests/unit/mcp/test_mcp_configure.py80# ---------------------------------------------------------------------------COMMENT
MEDIUMtests/unit/mcp/test_mcp_configure.py105# ---------------------------------------------------------------------------COMMENT
MEDIUMtests/unit/mcp/test_mcp_configure.py107# ---------------------------------------------------------------------------COMMENT
MEDIUMtests/unit/mcp/test_mcp_configure.py126# ---------------------------------------------------------------------------COMMENT
MEDIUMtests/unit/mcp/test_mcp_configure.py128# ---------------------------------------------------------------------------COMMENT
MEDIUMtests/unit/mcp/test_mcp_configure.py143# ---------------------------------------------------------------------------COMMENT
MEDIUMtests/unit/mcp/test_mcp_configure.py145# ---------------------------------------------------------------------------COMMENT
MEDIUMtests/unit/mcp/test_mcp_configure.py176# ---------------------------------------------------------------------------COMMENT
MEDIUMtests/unit/mcp/test_mcp_configure.py178# ---------------------------------------------------------------------------COMMENT
MEDIUMtests/unit/mcp/test_mcp_configure.py211# ---------------------------------------------------------------------------COMMENT
MEDIUMtests/unit/mcp/test_mcp_configure.py213# ---------------------------------------------------------------------------COMMENT
MEDIUMtests/unit/mcp/test_mcp_configure.py228# ---------------------------------------------------------------------------COMMENT
MEDIUMtests/unit/mcp/test_mcp_configure.py230# ---------------------------------------------------------------------------COMMENT
MEDIUMtests/unit/mcp/test_mcp_configure.py250# ---------------------------------------------------------------------------COMMENT
MEDIUMtests/unit/mcp/test_mcp_configure.py252# ---------------------------------------------------------------------------COMMENT
MEDIUMtests/unit/mcp/tools/test_mcp_pattern_matching.py14# ---------------------------------------------------------------------------COMMENT
MEDIUMtests/unit/mcp/tools/test_mcp_pattern_matching.py16# ---------------------------------------------------------------------------COMMENT
MEDIUMtests/unit/mcp/tools/test_mcp_pattern_matching.py90# ---------------------------------------------------------------------------COMMENT
MEDIUMtests/unit/mcp/tools/test_mcp_pattern_matching.py92# ---------------------------------------------------------------------------COMMENT
MEDIUMtests/unit/mcp/tools/test_mcp_tools.py29# ---------------------------------------------------------------------------COMMENT
MEDIUMtests/unit/mcp/tools/test_mcp_tools.py31# ---------------------------------------------------------------------------COMMENT
MEDIUMtests/unit/mcp/tools/test_mcp_tools.py142# ---------------------------------------------------------------------------COMMENT
MEDIUMtests/unit/mcp/tools/test_mcp_tools.py144# ---------------------------------------------------------------------------COMMENT
MEDIUMtests/unit/mcp/tools/test_mcp_tools.py202# ---------------------------------------------------------------------------COMMENT
MEDIUMtests/unit/mcp/tools/test_mcp_tools.py204# ---------------------------------------------------------------------------COMMENT
MEDIUMtests/unit/mcp/tools/test_mcp_tools.py217# ---------------------------------------------------------------------------COMMENT
MEDIUMtests/unit/mcp/tools/test_mcp_tools.py219# ---------------------------------------------------------------------------COMMENT
MEDIUMtests/unit/mcp/tools/test_mcp_tools.py312# ---------------------------------------------------------------------------COMMENT
MEDIUMtests/unit/mcp/tools/test_mcp_tools.py314# ---------------------------------------------------------------------------COMMENT
MEDIUMtests/unit/mcp/tools/test_mcp_background_callbacks.py22# ---------------------------------------------------------------------------COMMENT
MEDIUMtests/unit/mcp/tools/test_mcp_background_callbacks.py24# ---------------------------------------------------------------------------COMMENT
MEDIUMtests/unit/mcp/tools/test_mcp_background_callbacks.py86# ---------------------------------------------------------------------------COMMENT
MEDIUMtests/unit/mcp/tools/test_mcp_background_callbacks.py88# ---------------------------------------------------------------------------COMMENT
MEDIUMtests/unit/mcp/tools/test_mcp_background_callbacks.py177# ---------------------------------------------------------------------------COMMENT
MEDIUMtests/unit/mcp/tools/test_mcp_background_callbacks.py179# ---------------------------------------------------------------------------COMMENT
MEDIUMtests/unit/mcp/tools/test_mcp_background_callbacks.py241# ---------------------------------------------------------------------------COMMENT
MEDIUMtests/unit/mcp/tools/test_mcp_background_callbacks.py243# ---------------------------------------------------------------------------COMMENT
MEDIUM…ts/unit/mcp/tools/test_mcp_formatted_output_results.py26# ---------------------------------------------------------------------------COMMENT
MEDIUM…ts/unit/mcp/tools/test_mcp_formatted_output_results.py28# ---------------------------------------------------------------------------COMMENT
MEDIUM…ts/unit/mcp/tools/test_mcp_formatted_output_results.py79# ---------------------------------------------------------------------------COMMENT
MEDIUM…ts/unit/mcp/tools/test_mcp_formatted_output_results.py81# ---------------------------------------------------------------------------COMMENT
MEDIUM…ts/unit/mcp/tools/test_mcp_formatted_output_results.py168# ---------------------------------------------------------------------------COMMENT
MEDIUM…ts/unit/mcp/tools/test_mcp_formatted_output_results.py170# ---------------------------------------------------------------------------COMMENT
MEDIUM…ts/unit/mcp/tools/test_mcp_formatted_output_results.py204# ---------------------------------------------------------------------------COMMENT
MEDIUM…ts/unit/mcp/tools/test_mcp_formatted_output_results.py206# ---------------------------------------------------------------------------COMMENT
MEDIUMtests/unit/mcp/tools/test_mcp_input_descriptions.py24# ---------------------------------------------------------------------------COMMENT
MEDIUMtests/unit/mcp/tools/test_mcp_input_descriptions.py26# ---------------------------------------------------------------------------COMMENT
MEDIUMtests/unit/mcp/tools/test_mcp_input_descriptions.py48# ---------------------------------------------------------------------------COMMENT
MEDIUMtests/unit/mcp/tools/test_mcp_input_descriptions.py50# ---------------------------------------------------------------------------COMMENT
MEDIUMtests/unit/mcp/tools/test_mcp_input_descriptions.py192# ---------------------------------------------------------------------------COMMENT
MEDIUMtests/unit/mcp/tools/test_mcp_input_descriptions.py194# ---------------------------------------------------------------------------COMMENT
64 more matches not shown…
Hyper-Verbose Identifiers289 hits · 313 pts
SeverityFileLineSnippetContext
LOWtests/unit/test_configs.py78def test_pathname_prefix_from_environ_app_name(empty_environ):CODE
LOWtests/unit/test_configs.py85def test_pathname_prefix_environ_routes(empty_environ):CODE
LOWtests/unit/test_configs.py91def test_pathname_prefix_environ_requests(empty_environ):CODE
LOWtests/unit/test_configs.py472def test_debug_mode_enable_dev_tools(empty_environ, debug_env, debug, expected):CODE
LOWtests/unit/test_configs.py480def test_missing_flask_compress_raises():CODE
LOWtests/unit/test_configs.py485def test_csrf_config_defaults():CODE
LOWtests/unit/test_configs.py516def test_csrf_config_validation(token_name, header_name):CODE
LOWtests/unit/test_configs.py521def test_csrf_config_read_only():CODE
LOWtests/unit/test_configs.py529def test_init_app_with_flask_run_pattern():CODE
LOWtests/unit/test_configs.py43def test_valid_pathname_prefix_init(CODE
LOWtests/unit/test_configs.py55def test_invalid_pathname_prefix(empty_environ):CODE
LOWtests/unit/test_configs.py105def test_pathname_prefix_assets(empty_environ, req, expected):CODE
LOWtests/unit/test_configs.py188def test_get_combined_config_dev_tools_ui(empty_environ):CODE
LOWtests/unit/test_configs.py202def test_get_combined_config_props_check(empty_environ):CODE
LOWtests/unit/test_configs.py216def test_load_dash_env_vars_refects_to_os_environ(empty_environ):CODE
LOWtests/unit/test_configs.py257def test_pathname_prefix_relative_url(prefix, partial_path, expected):CODE
LOWtests/unit/test_configs.py266def test_invalid_get_relative_path(prefix, partial_path):CODE
LOWtests/unit/test_configs.py308def test_invalid_strip_relative_path(prefix, partial_path):CODE
LOWtests/unit/test_configs.py429def test_app_invalid_delayed_config():CODE
LOWtests/unit/test_configs.py505def test_csrf_config_in_index():CODE
LOWtests/unit/test_configs.py551def test_init_app_server_false_pattern():CODE
LOWtests/unit/test_resources.py107def test_collect_and_register_resources(mocker):CODE
LOWtests/unit/test_resources.py127def test_resources_with_attributes():CODE
LOWtests/unit/test_resources.py160def test_css_resources_with_attributes():CODE
LOWtests/unit/test_resources.py187def test_resources_without_attributes():CODE
LOWtests/unit/test_resources.py200def test_local_resources_with_attributes(mocker):CODE
LOWtests/unit/test_resources.py235def test_multiple_external_urls_with_attributes():CODE
LOWtests/unit/test_pydantic_types.py10 def test_json_schema_is_number(self):CODE
LOWtests/unit/test_pydantic_types.py16 def test_produces_object_schema(self):CODE
LOWtests/unit/test_pydantic_types.py21 def test_schema_has_type_and_props(self):CODE
LOWtests/unit/test_pydantic_types.py29 def test_dispatch_body_schema(self):CODE
LOWtests/unit/test_pydantic_types.py34 def test_dispatch_response_schema(self):CODE
LOWtests/unit/test_app_runners.py10def test_threaded_server_smoke(dash_thread_server):CODE
LOWtests/unit/test_app_runners.py28def test_process_server_smoke(dash_process_server):CODE
LOWtests/unit/test_health_endpoint_unit.py39def test_health_respects_routes_pathname_prefix():CODE
LOWtests/unit/test_health_endpoint_unit.py51def test_health_custom_nested_path():CODE
LOWtests/unit/test_browser.py21def test_browser_use_remote_webdriver(tmpdir):CODE
LOWtests/unit/test_async_background_callback_job_fn.py63def test_diskcache_async_job_fn_exception_is_reported():CODE
LOWtests/unit/test_async_background_callback_job_fn.py74def test_diskcache_async_job_fn_prevent_update_is_reported():CODE
LOWtests/unit/test_async_background_callback_job_fn.py84def test_diskcache_async_job_fn_success_is_reported():CODE
LOWtests/unit/test_async_background_callback_job_fn.py94def test_celery_async_job_fn_exception_is_reported():CODE
LOWtests/unit/test_async_background_callback_job_fn.py105def test_celery_async_job_fn_prevent_update_is_reported():CODE
LOWtests/unit/test_async_background_callback_job_fn.py115def test_celery_async_job_fn_success_is_reported():CODE
LOWtests/unit/test_callback_unit.py8def test_callback_returns_callable():CODE
LOWtests/unit/test_callback_unit.py14def test_callback_decorates_function():CODE
LOWtests/unit/test_callback_unit.py25def test_callback_signature_includes_typed_options():CODE
LOWtests/unit/test_callback_unit.py47def test_callback_with_multiple_inputs():CODE
LOWtests/unit/test_callback_unit.py75def test_callback_with_multiple_outputs():CODE
LOWtests/unit/test_callback_unit.py89def test_callback_preserves_docstring():CODE
LOWtests/unit/test_callback_unit.py100def test_callback_with_prevent_initial_call():CODE
LOWtests/unit/test_callback_unit.py114def test_callback_with_background_params():CODE
LOWtests/unit/test_callback_unit.py125def test_callback_module_export():CODE
LOWtests/unit/test_layout.py31 def test_yields_all_components_with_correct_ancestors(self, sample_layout):CODE
LOWtests/unit/test_layout.py50 def test_returns_none_for_missing_id(self, sample_layout):CODE
LOWtests/unit/test_layout.py59 def test_extracts_all_text_content(self, sample_layout):CODE
LOWtests/unit/test_layout.py68 def test_returns_dict_for_wildcard(self, wildcard):CODE
LOWtests/unit/test_layout.py76 def test_returns_none_for_plain_string(self):CODE
LOWtests/unit/test_layout.py79 def test_returns_none_for_non_wildcard_dict(self):CODE
LOWtests/unit/test_layout.py82 def test_returns_none_for_invalid_json(self):CODE
LOWtests/unit/test_websocket_executor.py24def test_websocket_max_workers_default():CODE
229 more matches not shown…
Cross-Language Confusion45 hits · 234 pts
SeverityFileLineSnippetContext
HIGHtests/unit/mcp/tools/test_mcp_input_schemas.py41 """``{anyOf: [*schemas, {type: null}]}`` — a common nullable-type shape."""STRING
HIGHtests/backend_tests/test_preconfig_backends.py32 window._lastResponseHeaders = null;STRING
HIGHtests/integration/callbacks/test_basic_callback.py458 dash_duo.wait_for_text_to_equal("#output", '[null, null, "A"]')CODE
HIGHtests/integration/callbacks/test_basic_callback.py461 dash_duo.wait_for_text_to_equal("#output", '[null, 1, "A"]')CODE
HIGHtests/integration/callbacks/test_callback_context.py91 '[{"prop_id": ".", "value": null}]',CODE
HIGH…_clientside_multiple_output_return_single_no_update.py26 return [null, null];STRING
HIGHtests/integration/clientside/test_clientside.py417 "btn0.n_clicks = null, "CODE
HIGHtests/integration/clientside/test_clientside.py418 '{"btn1":0}.n_clicks = null, 'CODE
HIGHtests/integration/clientside/test_clientside.py419 '{"btn1":1}.n_clicks = null, 'CODE
HIGHtests/integration/clientside/test_clientside.py430 '{"btn1":0}.n_clicks = null, 'CODE
HIGHtests/integration/clientside/test_clientside.py431 '{"btn1":1}.n_clicks = null, 'CODE
HIGHtests/integration/clientside/test_clientside.py444 '{"btn1":1}.n_clicks = null, 'CODE
HIGHtests/integration/clientside/test_clientside.py456 '{"btn1":1}.n_clicks = null, 'CODE
HIGHtests/integration/clientside/test_clientside.py556 "in0.value = null, "CODE
HIGHtests/integration/clientside/test_clientside.py557 '{"in1":0}.value = null, 'CODE
HIGHtests/integration/clientside/test_clientside.py558 '{"in1":1}.value = null, 'CODE
HIGHtests/integration/clientside/test_clientside.py569 '{"in1":0}.value = null, 'CODE
HIGHtests/integration/clientside/test_clientside.py570 '{"in1":1}.value = null, 'CODE
HIGHtests/integration/clientside/test_clientside.py582 '{"in1":1}.value = null, 'CODE
HIGHtests/integration/clientside/test_clientside.py594 '{"in1":1}.value = null, 'CODE
HIGHtests/async_tests/test_async_callbacks.py467 dash_duo.wait_for_text_to_equal("#output", '[null, null, "A"]')CODE
HIGHtests/async_tests/test_async_callbacks.py470 dash_duo.wait_for_text_to_equal("#output", '[null, 1, "A"]')CODE
HIGH…ore-components/tests/integration/dropdown/test_a11y.py343 return dropdownContent && dropdownContent.contains(activeElement);STRING
HIGH…ore-components/tests/integration/dropdown/test_a11y.py409 if (focused && focused.closest('.dash-options-list-option')) {STRING
HIGH…ore-components/tests/integration/dropdown/test_a11y.py412 return null;STRING
HIGH…ts/tests/integration/loading/test_loading_component.py264 "return gd_ === window.gd && gd_.__test__ === 'boo';"CODE
HIGH…-components/tests/integration/input/test_a11y_input.py66 return container === activeElement || container.contains(activeElement);STRING
HIGH…s/tests/integration/location/test_location_callback.py173 window._test_link_event_counter = (window._test_link_event_counter || 0) + 1;STRING
HIGH…s/tests/integration/location/test_location_callback.py177 window._test_history_event_counter = (window._test_history_event_counter || 0) + 1;STRING
HIGH…nents/tests/integration/graph/test_graph_responsive.py109 # responsive=true will make the graph resize only if autosize=true|undefined, interestingly enough, responsive=undefCOMMENT
HIGH…components/tests/integration/graph/test_graph_varia.py765 figure.layout.title = {text: String(n_fig || 0)};CODE
HIGH…components/tests/integration/graph/test_graph_varia.py773 layout: {width: 300, height: 250, title: {text: String(n_fig || 0)}}CODE
HIGH…components/tests/integration/graph/test_graph_varia.py783 let responsive = [true, false, 'auto'][(n_resp || 0) % 3];CODE
HIGH…components/tests/integration/graph/test_graph_varia.py784 return [new_figure, responsive, (n_fig || 0) + ' ' + responsive];CODE
HIGH…e-components/tests/integration/link/test_link_event.py30 window._test_link_event_counter = (window._test_link_event_counter || 0) + 1;STRING
HIGH…e-components/tests/integration/link/test_link_event.py34 window._test_history_event_counter = (window._test_history_event_counter || 0) + 1;STRING
HIGH…/tests/integration/download/test_download_dataframe.py51 assert df.columns.equals(df_download.columns)CODE
HIGH…/tests/integration/download/test_download_dataframe.py52 assert df.index.equals(df_download.index)CODE
HIGH…onents/tests/integration/store/test_component_props.py179 "#output", '[{"n_clicks": null}, {"n_clicks": null}, {"n_clicks": null}]'CODE
HIGH…onents/tests/integration/store/test_component_props.py188 dash_dcc.wait_for_text_to_equal("#output", "[null, null, null]")CODE
HIGH…onents/tests/integration/store/test_component_props.py198 "#output", '[{"n_clicks": null}, {"n_clicks": null}, {"n_clicks": null}]'CODE
HIGHcomponents/dash-table/tests/selenium/test_export.py28 assert df_bis.equals(df)CODE
HIGHdash/development/base_component.py373 # A component's children can be undefined, a string, another component,COMMENT
HIGHdash/development/_r_components_generation.py22 props <- props[!vapply(props, is.null, logical(1))]CODE
HIGHdash/testing/browser.py192 stash.push(c);STRING
Unused Imports164 hits · 149 pts
SeverityFileLineSnippetContext
LOWtests/utils.py4CODE
LOWtests/unit/test_resources.py3CODE
LOWtests/integration/test_legacy_components.py7CODE
LOWtests/integration/dash/org.py3CODE
LOW@plotly/dash-test-components/base/__init__.py12CODE
LOW…h-generator-test-component-typescript/base/__init__.py12CODE
LOW…ash-generator-test-component-standard/base/__init__.py12CODE
LOW…/dash-generator-test-component-nested/base/__init__.py12CODE
LOW…-core-components/dash_core_components_base/__init__.py7CODE
LOW…-core-components/dash_core_components_base/__init__.py9CODE
LOW…-core-components/dash_core_components_base/__init__.py9CODE
LOW…-core-components/dash_core_components_base/__init__.py9CODE
LOW…-core-components/dash_core_components_base/__init__.py9CODE
LOWcomponents/dash-html-components/tests/utils.py1CODE
LOW…-html-components/dash_html_components_base/__init__.py3CODE
LOWcomponents/dash-table/dash_table_base/__init__.py18CODE
LOWcomponents/dash-table/dash_table_base/__init__.py20CODE
LOWcomponents/dash-table/dash_table_base/__init__.py21CODE
LOWdash/__init__.py5CODE
LOWdash/__init__.py5CODE
LOWdash/__init__.py5CODE
LOWdash/__init__.py5CODE
LOWdash/__init__.py5CODE
LOWdash/__init__.py5CODE
LOWdash/__init__.py5CODE
LOWdash/__init__.py14CODE
LOWdash/__init__.py15CODE
LOWdash/__init__.py16CODE
LOWdash/__init__.py17CODE
LOWdash/__init__.py18CODE
LOWdash/__init__.py19CODE
LOWdash/__init__.py20CODE
LOWdash/__init__.py21CODE
LOWdash/__init__.py22CODE
LOWdash/__init__.py22CODE
LOWdash/__init__.py23CODE
LOWdash/__init__.py24CODE
LOWdash/__init__.py24CODE
LOWdash/__init__.py24CODE
LOWdash/__init__.py29CODE
LOWdash/__init__.py30CODE
LOWdash/__init__.py30CODE
LOWdash/__init__.py34CODE
LOWdash/__init__.py37CODE
LOWdash/__init__.py37CODE
LOWdash/__init__.py38CODE
LOWdash/__init__.py38CODE
LOWdash/__init__.py38CODE
LOWdash/__init__.py43CODE
LOWdash/__init__.py44CODE
LOWdash/__init__.py46CODE
LOWdash/dash.py994CODE
LOWdash/_layout_utils.py3CODE
LOWdash/_validate.py598CODE
LOWdash/_validate.py605CODE
LOWdash/_jupyter.py396CODE
LOWdash/development/__init__.py1CODE
LOWdash/backends/base_server.py6CODE
LOWdash/backends/base_server.py21CODE
LOWdash/backends/_flask.py1CODE
104 more matches not shown…
Excessive Try-Catch Wrapping54 hits · 61 pts
SeverityFileLineSnippetContext
LOWtests/backend_tests/test_threaded_runner_stop.py73 except Exception: # pylint: disable=broad-exceptCODE
LOWtests/integration/test_hooks.py260 except Exception:CODE
LOWtests/integration/test_hooks.py269 except Exception:CODE
LOWtests/integration/test_hooks.py282 except Exception as err:CODE
MEDIUMtests/integration/test_hooks.py256def layout_hook(layout):CODE
MEDIUMtests/integration/test_hooks.py265def error_hook(error):CODE
MEDIUMtests/integration/test_hooks.py277def callback_hook(n_clicks):CODE
LOW…ents/tests/integration/misc/test_popover_visibility.py35 except Exception as e:CODE
LOW…e-components/tests/integration/calendar/test_portal.py44 except Exception as e:CODE
LOW…components/tests/integration/graph/test_graph_varia.py601 except Exception as e:CODE
LOWdash/_callback.py778 except Exception as err: # pylint: disable=broad-exception-caughtCODE
LOWdash/_callback.py851 except Exception as err: # pylint: disable=broad-exception-caughtCODE
LOWdash/dash.py849 except Exception as e: # pylint: disable=broad-exception-caughtCODE
LOWdash/dash.py2461 except Exception as e:CODE
LOWdash/_jupyter.py415 except Exception as error:CODE
LOWdash/_jupyter.py469 except Exception as final_error: # pylint: disable=broad-exceptCODE
MEDIUMdash/_jupyter.py410def run():CODE
LOWdash/_utils.py246 except Exception: # pylint: disable=broad-exceptCODE
LOWdash/backends/_fastapi.py154 except Exception: # pylint: disable=broad-exception-caughtCODE
LOWdash/backends/_fastapi.py215 except Exception: # pylint: disable=broad-exception-caughtCODE
LOWdash/backends/_fastapi.py251 except Exception as e: # pylint: disable=W0718CODE
LOWdash/backends/_fastapi.py346 except Exception: # pylint: disable=broad-exception-caughtCODE
LOWdash/backends/_fastapi.py675 except Exception: # pylint: disable=broad-exception-caughtCODE
MEDIUMdash/backends/_fastapi.py333def _setup_catchall(self):CODE
LOWdash/backends/_quart.py489 except Exception: # pylint: disable=broad-exception-caughtCODE
LOWdash/backends/_quart.py687 except Exception: # pylint: disable=broad-exception-caughtCODE
LOWdash/backends/ws.py350 except Exception: # pylint: disable=broad-exception-caughtCODE
LOWdash/backends/ws.py378 except Exception: # pylint: disable=broad-exception-caughtCODE
LOWdash/backends/ws.py482 except Exception as e: # pylint: disable=broad-exception-caughtCODE
LOWdash/backends/ws.py580 except Exception as e: # pylint: disable=broad-exception-caughtCODE
LOWdash/backends/ws.py625 except Exception as e: # pylint: disable=broad-exception-caughtCODE
MEDIUMdash/backends/ws.py559def execute() -> dict:CODE
LOWdash/mcp/_server.py305 except Exception as e: # pylint: disable=broad-exception-caughtCODE
LOW…h/mcp/primitives/tools/tool_decorated_mcp_functions.py28 except Exception: # pylint: disable=broad-exception-caughtCODE
LOW…h/mcp/primitives/tools/tool_decorated_mcp_functions.py67 except Exception: # pylint: disable=broad-exception-caughtCODE
LOW…h/mcp/primitives/tools/tool_decorated_mcp_functions.py141 except Exception as exc: # pylint: disable=broad-exception-caughtCODE
LOWdash/mcp/primitives/tools/callback_utils.py36 except Exception as err:CODE
LOWdash/mcp/primitives/tools/callback_adapter.py205 except Exception: # pylint: disable=broad-exception-caughtCODE
LOWdash/mcp/primitives/tools/callback_adapter.py360 except Exception: # pylint: disable=broad-exception-caughtCODE
LOW…ools/input_schemas/schema_callback_type_annotations.py42 except Exception: # pylint: disable=broad-exception-caughtCODE
LOWdash/testing/application_runners.py188 except Exception as error:CODE
LOWdash/testing/application_runners.py210 except Exception as err: # pylint: disable=broad-exceptCODE
LOWdash/testing/application_runners.py280 except Exception as error:CODE
LOWdash/testing/browser.py206 except Exception as err: # pylint: disable=broad-exception-caughtCODE
LOWdash/testing/browser.py288 except Exception as err:CODE
LOWdash/testing/browser.py533 except Exception as e: # pylint: disable=broad-exception-caughtCODE
MEDIUMdash/testing/browser.py91def __exit__(self, exc_type, exc_val, traceback):CODE
LOWdash/testing/plugin.py132 except Exception as e: # pylint: disable=broad-exceptCODE
LOWdash/background_callback/managers/diskcache_manager.py164 except Exception as e:CODE
LOWdash/background_callback/managers/diskcache_manager.py245 except Exception as err: # pylint: disable=broad-exceptCODE
LOWdash/background_callback/managers/diskcache_manager.py281 except Exception as err: # pylint: disable=broad-exceptCODE
LOWdash/background_callback/managers/diskcache_manager.py298 except Exception as err: # pylint: disable=broad-exceptCODE
LOWdash/background_callback/managers/celery_manager.py187 except Exception as err: # pylint: disable=broad-exceptCODE
LOWdash/background_callback/managers/celery_manager.py233 except Exception as err: # pylint: disable=broad-exceptCODE
Deep Nesting60 hits · 60 pts
SeverityFileLineSnippetContext
LOWtests/unit/library/fixtures.py26CODE
LOWtests/backend_tests/test_custom_backend.py13CODE
LOWtests/compliance/test_typing.py68CODE
LOWtests/background_callback/utils.py77CODE
LOWtests/async_tests/utils.py77CODE
LOWcomponents/dash-table/tests/selenium/test_column.py220CODE
LOWcomponents/dash-table/tests/selenium/test_filter2.py12CODE
LOWcomponents/dash-table/tests/selenium/test_formatting.py9CODE
LOWdash/_callback.py523CODE
LOWdash/_callback.py582CODE
LOWdash/_grouping.py20CODE
LOWdash/dash.py1105CODE
LOWdash/dash.py1541CODE
LOWdash/dash.py1619CODE
LOWdash/dash.py1708CODE
LOWdash/dash.py1997CODE
LOWdash/dash.py2235CODE
LOWdash/dash.py2287CODE
LOWdash/_layout_utils.py193CODE
LOWdash/_layout_utils.py216CODE
LOWdash/_watch.py7CODE
LOWdash/_watch.py11CODE
LOWdash/_validate.py215CODE
LOWdash/_validate.py613CODE
LOWdash/_validate.py274CODE
LOWdash/resources.py50CODE
LOWdash/_jupyter.py490CODE
LOWdash/dependencies.py88CODE
LOWdash/_utils.py145CODE
LOWdash/_pages.py416CODE
LOWdash/development/_collect_nodes.py9CODE
LOWdash/development/_collect_nodes.py22CODE
LOWdash/development/_collect_nodes.py35CODE
LOWdash/development/_collect_nodes.py49CODE
LOWdash/development/base_component.py158CODE
LOWdash/development/base_component.py298CODE
LOWdash/development/base_component.py395CODE
LOWdash/development/base_component.py430CODE
LOWdash/development/_jl_components_generation.py184CODE
LOWdash/development/_r_components_generation.py788CODE
LOWdash/development/_py_components_generation.py468CODE
LOWdash/development/build_process.py110CODE
LOWdash/backends/_fastapi.py73CODE
LOWdash/backends/_fastapi.py384CODE
LOWdash/backends/_fastapi.py623CODE
LOWdash/backends/_fastapi.py679CODE
LOWdash/backends/_fastapi.py710CODE
LOWdash/backends/_quart.py509CODE
LOWdash/backends/_quart.py524CODE
LOWdash/backends/_utils.py5CODE
LOWdash/mcp/primitives/tools/callback_adapter.py433CODE
LOWdash/mcp/primitives/tools/callback_adapter.py66CODE
LOWdash/mcp/primitives/tools/callback_adapter.py239CODE
LOWdash/mcp/primitives/tools/callback_adapter.py311CODE
LOW…sh/mcp/primitives/tools/callback_adapter_collection.py156CODE
LOWdash/testing/application_runners.py158CODE
LOWdash/testing/application_runners.py388CODE
LOWdash/testing/application_runners.py486CODE
LOWdash/testing/plugin.py119CODE
LOWdash/background_callback/managers/diskcache_manager.py63CODE
Synthetic Comment Markers5 hits · 28 pts
SeverityFileLineSnippetContext
HIGHCHANGELOG.md1063- [#2009](https://github.com/plotly/dash/pull/2009) Add support for Promises within Client-side callbacks as requested iCODE
HIGHCHANGELOG.md1063- [#2009](https://github.com/plotly/dash/pull/2009) Add support for Promises within Client-side callbacks as requested iCODE
HIGHCHANGELOG.md1191- [#1883](https://github.com/plotly/dash/pull/1883) in DataTable added `page_current` to `persisted_props` as requested CODE
HIGHCHANGELOG.md1191- [#1883](https://github.com/plotly/dash/pull/1883) in DataTable added `page_current` to `persisted_props` as requested CODE
HIGH…ore-components/tests/unit/computeSliderMarkers.test.ts4 * File is largely generated by ClaudeCOMMENT
Hallucination Indicators2 hits · 20 pts
SeverityFileLineSnippetContext
CRITICAL…sh-html-components/vignettes/dash-html-components.html20return new Za.prototype.init(a,b,c,d,e)}m.Tween=Za,Za.prototype={constructor:Za,init:function(a,b,c,d,e,f){this.elem=a,tCODE
CRITICALcomponents/dash-table/tests/selenium/conftest.py388 self.mixin.driver.switch_to.active_element.send_keys(value + Keys.ENTER)CODE
Modern Structural Boilerplate17 hits · 17 pts
SeverityFileLineSnippetContext
LOW…ash-core-components/tests/dash_core_components_page.py8logger = logging.getLogger(__name__)CODE
LOWdash/__init__.py62__all__ = [CODE
LOWdash/development/update_components.py17logger = logging.getLogger(__name__)CODE
LOWdash/development/build_process.py13logger = logging.getLogger(__name__)CODE
LOWdash/backends/_fastapi.py144 async def _setup_timing(self, request: Request) -> None:CODE
LOWdash/backends/__init__.py72__all__ = [CODE
LOWdash/backends/ws.py118 def set_prop_sync(self, component_id: str, prop_name: str, value: Any) -> None:CODE
LOWdash/backends/ws.py137 async def set_prop(self, component_id: str, prop_name: str, value: Any) -> None:CODE
LOWdash/mcp/__init__.py7__all__ = [CODE
LOWdash/mcp/_server.py47logger = logging.getLogger(__name__)CODE
LOWdash/mcp/tasks/__init__.py5__all__ = ["create_task", "get_task", "get_task_result", "cancel_task"]CODE
LOWdash/mcp/types/__init__.py42__all__ = [CODE
LOWdash/mcp/primitives/__init__.py11__all__ = [CODE
LOW…h/mcp/primitives/tools/results/result_plotly_figure.py17logger = logging.getLogger(__name__)CODE
LOWdash/testing/application_runners.py28logger = logging.getLogger(__name__)CODE
LOWdash/testing/wait.py11logger = logging.getLogger(__name__)CODE
LOWdash/testing/browser.py35logger = logging.getLogger(__name__)CODE
Redundant / Tautological Comments11 hits · 14 pts
SeverityFileLineSnippetContext
LOWtests/compliance/test_typing.py89 # Check if dash is installed as editable or regular install.STRING
LOW…ore-components/tests/integration/dropdown/test_a11y.py804 # Check if the given elements are within the visible viewport of the dropdownCOMMENT
LOW…h-core-components/dash_core_components_base/express.py19 # Read the file contents and send it.COMMENT
LOW…h-core-components/dash_core_components_base/express.py84 # Check if the provided writer is known.COMMENT
LOWdash/_callback.py51 # Check if the function is a coroutine functionCOMMENT
LOWdash/fingerprint.py20 # Check if the resource has a fingerprintCOMMENT
LOWdash/dash.py219 # Check if the function is a coroutine functionSTRING
LOWdash/dash.py1732 # Check if any level of current path matches ignore pathCOMMENT
LOWdash/backends/_fastapi.py389 # Check if we're running in a thread (e.g., from testing framework)COMMENT
LOWdash/backends/_fastapi.py407 # Check if the file is outside the current working directoryCOMMENT
LOWdash/backends/_quart.py273 # Check if we're running in a non-main thread (e.g., testing context)COMMENT
AI Structural Patterns12 hits · 12 pts
SeverityFileLineSnippetContext
LOWtests/unit/development/metadata_test.py137CODE
LOWtests/background_callback/app_ctx_cookies.py39CODE
LOWdash/_callback.py73CODE
LOWdash/_callback.py285CODE
LOWdash/dash.py445CODE
LOWdash/dash.py1351CODE
LOWdash/dash.py1997CODE
LOWdash/dash.py2287CODE
LOWdash/_pages.py159CODE
LOWdash/development/component_generator.py41CODE
LOWdash/development/_py_components_generation.py344CODE
LOWdash/testing/browser.py42CODE
Fake / Example Data12 hits · 12 pts
SeverityFileLineSnippetContext
LOWtests/integration/mcp/test_mcp_callback_behavior.py267 dash_duo.wait_for_text_to_equal("#out", "Jane Doe")CODE
LOWtests/integration/mcp/test_mcp_callback_behavior.py281 assert response["out"]["children"] == "Jane Doe"CODE
LOW…nents/dash-core-components/src/components/Textarea.tsx17 'placeholder',CODE
LOW…mponents/dash-core-components/src/components/Input.tsx30 'placeholder',CODE
LOWcomponents/dash-html-components/dash-info.yaml1594 htmlNobr("Lorem ipsum dolor sit amet,CODE
LOWcomponents/dash-html-components/dash-info.yaml1594 htmlNobr("Lorem ipsum dolor sit amet,CODE
LOW…nts/dash-html-components/scripts/extract-attributes.js26'noValidate', 'nonce', 'open', 'optimum', 'pattern', 'placeholder', 'playsInline', 'poster',CODE
LOW…ents/dash-html-components/scripts/data/attributes.json485 "placeholder": {CODE
LOW…ents/dash-html-components/scripts/data/attributes.json787 "placeholder",CODE
LOW…ents/dash-html-components/scripts/data/attributes.json818 "placeholder",CODE
LOWcomponents/dash-table/tests/selenium/conftest.py394 .get_attribute("placeholder")CODE
LOWcomponents/dash-table/tests/selenium/conftest.py468 ).get_attribute("placeholder")CODE
Self-Referential Comments4 hits · 10 pts
SeverityFileLineSnippetContext
MEDIUMcomponents/dash-core-components/dash_prop_typing.py1# This file is automatically loaded on build time to generate types.COMMENT
MEDIUMcomponents/dash-table/dash_prop_typing.py1# This file is automatically loaded on build time to generate types.COMMENT
MEDIUMdash/_callback.py942 # Create a hash from the function, it will be the same alwaysSTRING
MEDIUMdash/background_callback/managers/diskcache_manager.py154 # Create a new event loop for the processCOMMENT
Over-Commented Block7 hits · 7 pts
SeverityFileLineSnippetContext
LOWtests/unit/pages/sub_dir/custom_pages/__init__.py1# this directory is used for testing custom values of `pages_folder` param thatCOMMENT
LOWtests/unit/pages/custom_pages/__init__.py1# this directory is used for testing custom values of `pages_folder` param thatCOMMENT
LOWtests/async_tests/test_async_callbacks.py321COMMENT
LOWcomponents/dash-table/tests/selenium/test_bootstrap.py1# import dashCOMMENT
LOWcomponents/dash-table/tests/selenium/test_bootstrap.py21# columns=[COMMENT
LOWcomponents/dash-table/tests/selenium/test_bootstrap.py41# )COMMENT
LOWcomponents/dash-table/tests/selenium/test_bootstrap.py61# test,COMMENT
Docstring Block Structure1 hit · 5 pts
SeverityFileLineSnippetContext
HIGHdash/backends/ws.py152Request current prop value from the client. On the event-loop path (``self._loop`` set, async callbacks) the waSTRING
AI Slop Vocabulary1 hit · 3 pts
SeverityFileLineSnippetContext
MEDIUMcomponents/dash-table/dash-info.yaml19 # For comprehensive documentation of this package's features,COMMENT
Dead Code1 hit · 2 pts
SeverityFileLineSnippetContext
MEDIUMtests/integration/callbacks/test_prevent_update.py37CODE
Slop Phrases1 hit · 2 pts
SeverityFileLineSnippetContext
LOWdash/__init__.py2# __plotly_dash is for the "make sure you don't have a dash.py" checkCOMMENT