Build and share delightful machine learning apps, all in Python. 🌟 Star to support our work!
This report presents the forensic synthetic code analysis of gradio-app/gradio, a Python project with 43,125 GitHub stars. SynthScan v2.0 examined 425,929 lines of code across 2562 source files, recording 2051 pattern matches distributed across 23 syntactic categories. The overall adjusted score of 5.4 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).
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.
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.
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.
The scanner identified 2051 distinct pattern matches across 23 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.
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| LOW | demo/chicago-bikeshare-dashboard/run.py | 27 | def get_most_popular_stations(): | CODE |
| LOW | demo/image_editor_sketchpad/run.py | 4 | def percent_of_pixels_selected(image): | CODE |
| LOW | demo/navbar_query_params/run.py | 11 | def update_dropdown_based_on_query(request: gr.Request): | CODE |
| LOW | demo/super_html/run.py | 76 | def update_templated_html_css(name, color, bold): | STRING |
| LOW | demo/image_editor_inpainting/run.py | 4 | def average_inpainting_colors(image): | CODE |
| LOW⚡ | test/test_workflow_api.py | 75 | def test_upstream_includes_transitive_deps(self): | CODE |
| LOW⚡ | test/test_workflow_api.py | 82 | def test_free_inputs_excludes_computed_reference(self): | CODE |
| LOW⚡ | test/test_workflow_api.py | 98 | def test_runs_demo_end_to_end(self): | CODE |
| LOW⚡ | test/test_workflow_api.py | 156 | def test_unknown_subject_raises(self): | CODE |
| LOW⚡ | test/test_workflow_api.py | 169 | def test_demo_exposes_named_endpoint(self): | CODE |
| LOW | test/test_workflow_api.py | 60 | def test_orders_dependencies_first(self): | CODE |
| LOW | test/test_workflow_api.py | 183 | def test_endpoint_fn_runs_with_injected_request_token(self): | CODE |
| LOW | test/test_workflow_api.py | 219 | def test_describe_parameter_names_match_info(self, tmp_path): | CODE |
| LOW | test/test_workflow_api.py | 298 | def test_sync_adds_and_removes_endpoints(self, tmp_path): | CODE |
| LOW | test/test_workflow_api.py | 320 | def test_rename_changes_api_name(self, tmp_path): | CODE |
| LOW | test/test_workflow_api.py | 335 | def test_save_workflow_resyncs_endpoints(self, tmp_path): | CODE |
| LOW | test/test_workflow_api.py | 354 | def test_save_workflow_rejects_malformed_schema(self, tmp_path): | CODE |
| LOW | test/test_workflow_api.py | 408 | def test_multi_output_endpoint_callable_via_gradio_client(self): | CODE |
| LOW | test/test_workflow_api.py | 434 | def test_info_route_lists_endpoints(self): | CODE |
| LOW | test/test_workflow_api.py | 566 | def test_subjects_in_one_component_form_one_group(self): | CODE |
| LOW | test/test_workflow_api.py | 573 | def test_one_endpoint_with_two_returns(self, tmp_path): | CODE |
| LOW | test/test_workflow_api.py | 590 | def test_shared_operator_runs_once_and_returns_both(self): | CODE |
| LOW | test/test_workflow_api.py | 621 | def test_file_port_maps_to_file_component(self): | CODE |
| LOW | test/test_queueing.py | 79 | def test_cached_generator_finishes_on_queue_cache_hit(self, connect): | CODE |
| LOW | test/test_queueing.py | 107 | def test_queue_average_excludes_manual_cache_hits(self, connect): | CODE |
| LOW | test/test_queueing.py | 145 | def test_default_concurrency_limits(self, default_concurrency_limit, statuses): | CODE |
| LOW | test/test_queueing.py | 180 | def test_heartbeat_task_cancelled_after_stream_completes(): | CODE |
| LOW | test/test_queueing.py | 234 | def test_cancel_removes_pending_event_from_queue(): | CODE |
| LOW | test/test_components.py | 32 | def test_get_component_instance_rendering( | CODE |
| LOW | test/test_components.py | 44 | def test_no_duplicate_uncased_names(self, io_components): | CODE |
| LOW | test/test_components.py | 49 | def test_dataframe_process_example_converts_dataframes(): | CODE |
| LOW | test/test_components.py | 66 | def test_process_example_returns_file_basename(component): | CODE |
| LOW | test/test_components.py | 102 | def test_template_component_configs(io_components): | CODE |
| LOW | test/test_components.py | 122 | def test_component_example_values(io_components): | CODE |
| LOW | test/test_components.py | 131 | def test_component_example_payloads(io_components): | CODE |
| LOW | test/test_components.py | 154 | def test_all_io_components_are_pickleable(io_components): | CODE |
| LOW | test/test_components.py | 169 | def test_all_components_have_change_event(io_components): | CODE |
| LOW⚡ | test/test_utils.py | 61 | def test_colab_check_no_ipython(self, mock_get_ipython): | CODE |
| LOW⚡ | test/test_utils.py | 66 | def test_ipython_check_import_fail(self, mock_get_ipython): | CODE |
| LOW⚡ | test/test_utils.py | 71 | def test_ipython_check_no_ipython(self, mock_get_ipython): | CODE |
| LOW⚡ | test/test_utils.py | 75 | def test_download_if_url_doesnt_crash_on_connection_error(self): | CODE |
| LOW⚡ | test/test_utils.py | 100 | def test_download_if_url_correct_parse(self): | CODE |
| LOW⚡ | test/test_utils.py | 105 | def test_is_hosted_notebook_false(self): | CODE |
| LOW⚡ | test/test_utils.py | 108 | def test_kaggle_check_true_when_run_type_set(self): | CODE |
| LOW⚡ | test/test_utils.py | 115 | def test_assert_configs_are_equivalent(): | CODE |
| LOW⚡ | test/test_utils.py | 870 | def test_function_with_no_docstring(self): | CODE |
| LOW⚡ | test/test_utils.py | 879 | def test_function_with_no_parameters(self): | CODE |
| LOW⚡ | test/test_utils.py | 889 | def test_function_with_alternate_parameter_section(self): | CODE |
| LOW⚡ | test/test_utils.py | 998 | def test_unload_registered_last(self): | CODE |
| LOW⚡ | test/test_utils.py | 1007 | def test_unload_registered_first(self): | CODE |
| LOW⚡ | test/test_utils.py | 1016 | def test_unload_registered_in_middle(self): | CODE |
| LOW⚡ | test/test_utils.py | 1026 | def test_no_unload_no_heartbeat(self): | CODE |
| LOW⚡ | test/test_utils.py | 1034 | def test_per_session_manual_cache_connects_heartbeat(self): | CODE |
| LOW⚡ | test/test_utils.py | 1099 | async def test_aclose_retries_on_already_executing(self): | CODE |
| LOW⚡ | test/test_utils.py | 1109 | async def test_aclose_timeout_raises(self): | CODE |
| LOW⚡ | test/test_utils.py | 1118 | async def test_aclose_raises_other_value_error(self): | CODE |
| LOW | test/test_utils.py | 163 | def test_format_ner_list_standard(self): | CODE |
| LOW | test/test_utils.py | 178 | def test_format_ner_list_empty(self): | CODE |
| LOW | test/test_utils.py | 284 | def test_abspath_symlink_path(self): | CODE |
| LOW | test/test_utils.py | 328 | def test_get_type_hints_with_unresolvable_forward_ref(self): | CODE |
| 758 more matches not shown… | ||||
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| LOW | demo/random_demos.py | 7 | CODE | |
| LOW | demo/many_tabs/run.py | 3 | CODE | |
| LOW | demo/blocks_inputs/run.py | 2 | CODE | |
| LOW | demo/login_with_huggingface/run.py | 1 | CODE | |
| LOW | demo/state_cleanup/run.py | 1 | CODE | |
| LOW | demo/stream_audio_out/run.py | 4 | CODE | |
| LOW | demo/theme_new_step_3/run.py | 1 | CODE | |
| LOW | demo/theme_new_step_2/run.py | 1 | CODE | |
| LOW | demo/clear_components/run.py | 3 | CODE | |
| LOW | demo/iframe_resizer/run.py | 3 | CODE | |
| LOW | demo/kitchen_sink/run.py | 1 | CODE | |
| LOW | test/test_utils.py | 1 | CODE | |
| LOW | js/_website/generate_jsons/embed.py | 3 | CODE | |
| LOW | js/_website/generate_jsons/embed.py | 4 | CODE | |
| LOW | js/_website/generate_jsons/embed.py | 5 | CODE | |
| LOW | js/_website/generate_jsons/embed.py | 7 | CODE | |
| LOW | js/_website/generate_jsons/embed.py | 8 | CODE | |
| LOW | js/_website/generate_jsons/src/docs/__init__.py | 6 | CODE | |
| LOW | js/_website/generate_jsons/src/docs/__init__.py | 7 | CODE | |
| LOW | js/_website/generate_jsons/src/docs/__init__.py | 12 | CODE | |
| LOW | js/_website/generate_jsons/src/docs/__init__.py | 13 | CODE | |
| LOW | js/preview/test/test/backend/gradio_test/__init__.py | 2 | CODE | |
| LOW | gradio/flagging.py | 1 | CODE | |
| LOW | gradio/image_utils.py | 1 | CODE | |
| LOW | gradio/server.py | 3 | CODE | |
| LOW | gradio/renderable.py | 1 | CODE | |
| LOW | gradio/node_server.py | 1 | CODE | |
| LOW | gradio/events.py | 4 | CODE | |
| LOW | gradio/block_function.py | 1 | CODE | |
| LOW | gradio/queueing.py | 1 | CODE | |
| LOW | gradio/route_utils.py | 1 | CODE | |
| LOW | gradio/validators.py | 6 | CODE | |
| LOW | gradio/processing_utils.py | 1 | CODE | |
| LOW | gradio/state_holder.py | 1 | CODE | |
| LOW | gradio/interface.py | 5 | CODE | |
| LOW | gradio/component_meta.py | 1 | CODE | |
| LOW | gradio/chat_interface.py | 5 | CODE | |
| LOW | gradio/__init__.py | 1 | CODE | |
| LOW | gradio/__init__.py | 3 | CODE | |
| LOW | gradio/__init__.py | 4 | CODE | |
| LOW | gradio/__init__.py | 5 | CODE | |
| LOW | gradio/__init__.py | 6 | CODE | |
| LOW | gradio/__init__.py | 7 | CODE | |
| LOW | gradio/__init__.py | 7 | CODE | |
| LOW | gradio/__init__.py | 7 | CODE | |
| LOW | gradio/__init__.py | 7 | CODE | |
| LOW | gradio/__init__.py | 7 | CODE | |
| LOW | gradio/__init__.py | 8 | CODE | |
| LOW | gradio/__init__.py | 9 | CODE | |
| LOW | gradio/__init__.py | 9 | CODE | |
| LOW | gradio/__init__.py | 10 | CODE | |
| LOW | gradio/__init__.py | 11 | CODE | |
| LOW | gradio/__init__.py | 12 | CODE | |
| LOW | gradio/__init__.py | 12 | CODE | |
| LOW | gradio/__init__.py | 12 | CODE | |
| LOW | gradio/__init__.py | 12 | CODE | |
| LOW | gradio/__init__.py | 12 | CODE | |
| LOW | gradio/__init__.py | 12 | CODE | |
| LOW | gradio/__init__.py | 12 | CODE | |
| LOW | gradio/__init__.py | 12 | CODE | |
| 392 more matches not shown… | ||||
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| LOW | demo/dialogue_diarization_demo/run.py | 60 | except Exception as e: | CODE |
| MEDIUM | demo/dialogue_diarization_demo/run.py | 61 | print(f"Error in diarization: {str(e)}") | CODE |
| LOW | demo/dialogue_diarization_demo/run.py | 73 | except Exception as e: | CODE |
| LOW | demo/all_demos/run.py | 26 | except Exception as e: | CODE |
| LOW | demo/depth_estimation/run.py | 41 | except Exception: | CODE |
| MEDIUM | demo/depth_estimation/run.py | 47 | print("Error reconstructing 3D model") | CODE |
| LOW | demo/workflow/run.py | 24 | except Exception: | CODE |
| MEDIUM | test/test_utils.py | 433 | def my_check(path_1, path_2): | CODE |
| LOW | test/test_utils.py | 456 | except Exception as e: | CODE |
| LOW⚡ | test/test_node_proxy.py | 209 | except Exception: | CODE |
| LOW⚡ | test/test_node_proxy.py | 213 | except Exception: | CODE |
| LOW | test/test_networking.py | 212 | except Exception as e: | CODE |
| MEDIUM | test/test_networking.py | 213 | print(f"Error processing HTML: {str(e)}") | CODE |
| LOW | test/test_networking.py | 258 | except Exception as e: | CODE |
| LOW | test/test_networking.py | 294 | except Exception: | CODE |
| LOW | test/test_docker/conftest.py | 117 | except Exception as e: | CODE |
| LOW⚡ | test/test_docker/conftest.py | 169 | except Exception as e: | CODE |
| MEDIUM⚡ | test/test_docker/conftest.py | 170 | print(f"Error during service check: {e}") | CODE |
| LOW⚡ | test/test_docker/conftest.py | 180 | except Exception as e: | CODE |
| MEDIUM⚡ | test/test_docker/conftest.py | 181 | print(f"Error during cleanup: {e}") | CODE |
| LOW | js/_website/generate_jsons/generate.py | 26 | except Exception as e: | CODE |
| MEDIUM | js/_website/generate_jsons/generate.py | 27 | print(f"Error listing objects in bucket {bucket_name}: {e}") | CODE |
| LOW⚡ | js/_website/generate_jsons/generate.py | 40 | except Exception as e: | CODE |
| MEDIUM⚡ | js/_website/generate_jsons/generate.py | 41 | print(f"Error downloading {s3_key}: {e}") | CODE |
| LOW | js/preview/src/examine.py | 74 | except Exception as e: | CODE |
| LOW | gradio/flagging.py | 277 | except Exception: | CODE |
| LOW | gradio/flagging.py | 416 | except Exception as e: | CODE |
| MEDIUM | gradio/flagging.py | 417 | print(f"Error while flagging: {e}") | CODE |
| LOW | gradio/image_utils.py | 197 | except Exception: | CODE |
| LOW | gradio/image_utils.py | 311 | except Exception: | CODE |
| LOW | gradio/node_server.py | 167 | except Exception as e: | CODE |
| LOW | gradio/node_server.py | 197 | except Exception: | CODE |
| LOW | gradio/node_server.py | 214 | except Exception: | CODE |
| LOW | gradio/block_function.py | 11 | except Exception: | CODE |
| LOW | gradio/queueing.py | 171 | except Exception as e: | CODE |
| LOW | gradio/queueing.py | 370 | except Exception as e: | CODE |
| LOW | gradio/queueing.py | 449 | except Exception: | CODE |
| LOW | gradio/queueing.py | 882 | except Exception as e: | CODE |
| LOW | gradio/queueing.py | 969 | except Exception as e: | CODE |
| LOW | gradio/queueing.py | 1043 | except Exception as e: | CODE |
| LOW | gradio/queueing.py | 1093 | except Exception: | CODE |
| MEDIUM | gradio/queueing.py | 521 | def start_processing(self) -> None: | CODE |
| LOW | gradio/route_utils.py | 897 | except Exception: | CODE |
| LOW | gradio/route_utils.py | 1228 | except Exception as e: | CODE |
| LOW | gradio/route_utils.py | 1234 | except Exception as e: | CODE |
| LOW | gradio/route_utils.py | 1246 | except Exception as e: | CODE |
| LOW | gradio/route_utils.py | 1310 | except Exception as e: | CODE |
| MEDIUM | gradio/processing_utils.py | 1119 | print(f"Error converting video to browser-playable format {str(e)}") | CODE |
| LOW | gradio/screen_recording_utils.py | 176 | except Exception: | CODE |
| LOW | gradio/screen_recording_utils.py | 326 | except Exception: | CODE |
| LOW | gradio/external_utils.py | 152 | except Exception as e: | CODE |
| LOW | gradio/external_utils.py | 248 | except Exception as e: | CODE |
| LOW | gradio/external_utils.py | 254 | except Exception: | CODE |
| LOW | gradio/external_utils.py | 428 | except Exception as e: | CODE |
| LOW | gradio/caching.py | 153 | except Exception: | CODE |
| MEDIUM | gradio/caching.py | 146 | def _get_session_hash() -> str | None: | CODE |
| MEDIUM | gradio/mcp.py | 1120 | def handle_sse(request): | CODE |
| LOW | gradio/mcp.py | 1131 | except Exception as e: | CODE |
| LOW | gradio/mcp.py | 1496 | except Exception: | CODE |
| LOW | gradio/networking.py | 41 | except Exception as e: | CODE |
| 117 more matches not shown… | ||||
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| LOW | demo/chatbot_core_components_simple/run.py | 31 | CODE | |
| LOW | demo/calculator_live/run.py | 3 | CODE | |
| LOW | demo/dialogue_diarization_demo/run.py | 22 | CODE | |
| LOW | demo/image_segmentation/run.py | 32 | CODE | |
| LOW | demo/calculator/run.py | 3 | CODE | |
| LOW | demo/mini_leaderboard/run.py | 102 | CODE | |
| LOW | demo/outbreak_forecast/run.py | 6 | CODE | |
| LOW | demo/bar_plot/run.py | 53 | CODE | |
| LOW | demo/cache_demo/run.py | 55 | CODE | |
| LOW | demo/chatbot_core_components/run.py | 160 | CODE | |
| LOW | demo/dashboard/helpers.py | 68 | CODE | |
| LOW | demo/calculator_blocks/run.py | 3 | CODE | |
| LOW | demo/calculator_blocks_cached/run.py | 3 | CODE | |
| LOW | demo/line_plot/run.py | 40 | CODE | |
| LOW | test/test_queueing.py | 180 | CODE | |
| LOW | test/test_queueing.py | 234 | CODE | |
| LOW | test/test_components.py | 131 | CODE | |
| LOW | test/test_node_proxy.py | 272 | CODE | |
| LOW | test/test_node_proxy.py | 300 | CODE | |
| LOW | test/test_networking.py | 68 | CODE | |
| LOW | test/test_networking.py | 121 | CODE | |
| LOW | test/test_blocks.py | 2107 | CODE | |
| LOW | test/test_routes.py | 2337 | CODE | |
| LOW | test/test_docker/conftest.py | 74 | CODE | |
| LOW | test/test_docker/conftest.py | 77 | CODE | |
| LOW | …everse_proxy_root_path/test_reverse_proxy_root_path.py | 45 | CODE | |
| LOW | …t/test_docker/test_reverse_proxy/test_reverse_proxy.py | 45 | CODE | |
| LOW | …roxy_fastapi_mount/test_reverse_proxy_fastapi_mount.py | 45 | CODE | |
| LOW | …oot_path/test_reverse_proxy_fastapi_mount_root_path.py | 58 | CODE | |
| LOW | js/_website/generate_jsons/chunking.py | 22 | CODE | |
| LOW | js/_website/generate_jsons/src/docs/__init__.py | 51 | CODE | |
| LOW | js/_website/generate_jsons/src/docs/__init__.py | 68 | CODE | |
| LOW | js/_website/generate_jsons/src/docs/__init__.py | 87 | CODE | |
| LOW | js/_website/generate_jsons/src/docs/__init__.py | 115 | CODE | |
| LOW | js/_website/generate_jsons/src/docs/__init__.py | 143 | CODE | |
| LOW | gradio/flagging.py | 241 | CODE | |
| LOW | gradio/image_utils.py | 48 | CODE | |
| LOW | gradio/image_utils.py | 84 | CODE | |
| LOW | gradio/image_utils.py | 113 | CODE | |
| LOW | gradio/image_utils.py | 265 | CODE | |
| LOW | gradio/tunneling.py | 83 | CODE | |
| LOW | gradio/queueing.py | 279 | CODE | |
| LOW | gradio/queueing.py | 521 | CODE | |
| LOW | gradio/queueing.py | 585 | CODE | |
| LOW | gradio/queueing.py | 631 | CODE | |
| LOW | gradio/queueing.py | 669 | CODE | |
| LOW | gradio/queueing.py | 787 | CODE | |
| LOW | gradio/route_utils.py | 275 | CODE | |
| LOW | gradio/route_utils.py | 988 | CODE | |
| LOW | gradio/route_utils.py | 765 | CODE | |
| LOW | gradio/processing_utils.py | 431 | CODE | |
| LOW | gradio/processing_utils.py | 551 | CODE | |
| LOW | gradio/processing_utils.py | 720 | CODE | |
| LOW | gradio/processing_utils.py | 771 | CODE | |
| LOW | gradio/processing_utils.py | 459 | CODE | |
| LOW | gradio/processing_utils.py | 579 | CODE | |
| LOW | gradio/processing_utils.py | 869 | CODE | |
| LOW | gradio/interface.py | 84 | CODE | |
| LOW | gradio/interface.py | 555 | CODE | |
| LOW | gradio/interface.py | 619 | CODE | |
| 122 more matches not shown… | ||||
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| MEDIUM⚡ | test/test_workflow_api.py | 92 | # ───────────────────────────────────────────────────────────────────────────── | COMMENT |
| MEDIUM⚡ | test/test_workflow_api.py | 94 | # ───────────────────────────────────────────────────────────────────────────── | COMMENT |
| MEDIUM⚡ | test/test_workflow_api.py | 163 | # ───────────────────────────────────────────────────────────────────────────── | COMMENT |
| MEDIUM⚡ | test/test_workflow_api.py | 165 | # ───────────────────────────────────────────────────────────────────────────── | COMMENT |
| MEDIUM | test/test_workflow_api.py | 33 | # ───────────────────────────────────────────────────────────────────────────── | COMMENT |
| MEDIUM | test/test_workflow_api.py | 35 | # ───────────────────────────────────────────────────────────────────────────── | COMMENT |
| MEDIUM | test/test_workflow_api.py | 236 | # ───────────────────────────────────────────────────────────────────────────── | COMMENT |
| MEDIUM | test/test_workflow_api.py | 238 | # ───────────────────────────────────────────────────────────────────────────── | COMMENT |
| MEDIUM | test/test_workflow_api.py | 378 | # ───────────────────────────────────────────────────────────────────────────── | COMMENT |
| MEDIUM | test/test_workflow_api.py | 380 | # ───────────────────────────────────────────────────────────────────────────── | COMMENT |
| MEDIUM | test/test_workflow_api.py | 458 | # ───────────────────────────────────────────────────────────────────────────── | COMMENT |
| MEDIUM | test/test_workflow_api.py | 460 | # ───────────────────────────────────────────────────────────────────────────── | COMMENT |
| MEDIUM⚡ | test/test_workflow.py | 68 | # ───────────────────────────────────────────────────────────────────────────── | COMMENT |
| MEDIUM⚡ | test/test_workflow.py | 70 | # ───────────────────────────────────────────────────────────────────────────── | COMMENT |
| MEDIUM⚡ | test/test_workflow.py | 107 | # ───────────────────────────────────────────────────────────────────────────── | COMMENT |
| MEDIUM⚡ | test/test_workflow.py | 109 | # ───────────────────────────────────────────────────────────────────────────── | COMMENT |
| MEDIUM⚡ | test/test_workflow.py | 130 | # ───────────────────────────────────────────────────────────────────────────── | COMMENT |
| MEDIUM⚡ | test/test_workflow.py | 132 | # ───────────────────────────────────────────────────────────────────────────── | COMMENT |
| MEDIUM⚡ | test/test_workflow.py | 275 | # ───────────────────────────────────────────────────────────────────────────── | COMMENT |
| MEDIUM⚡ | test/test_workflow.py | 277 | # ───────────────────────────────────────────────────────────────────────────── | COMMENT |
| MEDIUM⚡ | test/test_workflow.py | 329 | # ───────────────────────────────────────────────────────────────────────────── | COMMENT |
| MEDIUM⚡ | test/test_workflow.py | 331 | # ───────────────────────────────────────────────────────────────────────────── | COMMENT |
| MEDIUM | test/test_workflow.py | 199 | # ───────────────────────────────────────────────────────────────────────────── | COMMENT |
| MEDIUM | test/test_workflow.py | 201 | # ───────────────────────────────────────────────────────────────────────────── | COMMENT |
| MEDIUM | js/chatbot/Chatbot.test.ts | 1311 | // ── Visual-only (test.todo) ────────────────────────────────────────── | COMMENT |
| MEDIUM | js/workflowcanvas/workflow/workflow-store.ts | 96 | // ─── Actions ──────────────────────────────────────────────────────────────── | COMMENT |
| MEDIUM | js/workflowcanvas/workflow/workflow-types.ts | 96 | // ─── v2 schema ────────────────────────────────────────────────────────────── | COMMENT |
| MEDIUM | js/workflowcanvas/workflow/workflow-migration.ts | 147 | // ─── v2 → v1 adapter ──────────────────────────────────────────────────────── | COMMENT |
| MEDIUM | js/workflowcanvas/workflow/WorkflowCanvas.svelte | 197 | // ─── Canvas state ─────────────────────────────────────────────────────────── | COMMENT |
| MEDIUM | js/workflowcanvas/workflow/WorkflowCanvas.svelte | 253 | // ─── App state ────────────────────────────────────────────────────────────── | COMMENT |
| MEDIUM | js/workflowcanvas/workflow/WorkflowCanvas.svelte | 420 | // ─── Context for node components ──────────────────────────────────────────── | COMMENT |
| MEDIUM | js/workflowcanvas/workflow/WorkflowCanvas.svelte | 533 | // ─── Custom canvas event handlers ─────────────────────────────────────────── | COMMENT |
| MEDIUM | js/workflowcanvas/workflow/WorkflowCanvas.svelte | 1297 | // ─── Helpers ───────────────────────────────────────────────────────────────── | COMMENT |
| MEDIUM | gradio/workflow_api.py | 55 | # ───────────────────────────────────────────────────────────────────────────── | COMMENT |
| MEDIUM | gradio/workflow_api.py | 57 | # ───────────────────────────────────────────────────────────────────────────── | COMMENT |
| MEDIUM | gradio/workflow_api.py | 271 | # ───────────────────────────────────────────────────────────────────────────── | COMMENT |
| MEDIUM | gradio/workflow_api.py | 273 | # ───────────────────────────────────────────────────────────────────────────── | COMMENT |
| MEDIUM | gradio/workflow_api.py | 347 | # ───────────────────────────────────────────────────────────────────────────── | COMMENT |
| MEDIUM | gradio/workflow_api.py | 349 | # ───────────────────────────────────────────────────────────────────────────── | COMMENT |
| MEDIUM | gradio/workflow_api.py | 584 | # ───────────────────────────────────────────────────────────────────────────── | COMMENT |
| MEDIUM | gradio/workflow_api.py | 586 | # ───────────────────────────────────────────────────────────────────────────── | COMMENT |
| MEDIUM⚡ | gradio/_vendor/aiofiles/tempfile/__init__.py | 24 | # ================================================================ | COMMENT |
| MEDIUM⚡ | gradio/_vendor/aiofiles/tempfile/__init__.py | 27 | # ================================================================ | COMMENT |
| MEDIUM | gradio/_vendor/aiofiles/tempfile/__init__.py | 159 | # ========================================================= | COMMENT |
| MEDIUM | gradio/_vendor/aiofiles/tempfile/__init__.py | 161 | # ========================================================= | COMMENT |
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| HIGH | CHANGELOG.md | 0 | # state cleanup demo 🖼️ images are saved in a user-specific directory and deleted when the users closes the page via dem | STRING |
| HIGH | demo/state_cleanup/run.py | 0 | # state cleanup demo 🖼️ images are saved in a user-specific directory and deleted when the users closes the page via dem | STRING |
| HIGH | gradio/CHANGELOG.md | 0 | # state cleanup demo 🖼️ images are saved in a user-specific directory and deleted when the users closes the page via dem | STRING |
| HIGH | client/python/CHANGELOG.md | 0 | # state cleanup demo 🖼️ images are saved in a user-specific directory and deleted when the users closes the page via dem | STRING |
| HIGH | client/python/gradio_client/CHANGELOG.md | 0 | # state cleanup demo 🖼️ images are saved in a user-specific directory and deleted when the users closes the page via dem | STRING |
| HIGH | client/js/CHANGELOG.md | 0 | # state cleanup demo 🖼️ images are saved in a user-specific directory and deleted when the users closes the page via dem | STRING |
| HIGH | CHANGELOG.md | 0 | # hello world! start typing below to see the output. | STRING |
| HIGH | demo/blocks_hello/run.py | 0 | # hello world! start typing below to see the output. | STRING |
| HIGH | .agents/skills/gradio/references/examples.md | 0 | # hello world! start typing below to see the output. | STRING |
| HIGH | gradio/CHANGELOG.md | 0 | # hello world! start typing below to see the output. | STRING |
| HIGH | demo/star_rating_simple/run.py | 0 | img { height: 50px; display: inline-block; cursor: pointer; } .faded { filter: grayscale(100%); opacity: 0.3; } | STRING |
| HIGH | demo/star_rating_templates/run.py | 0 | img { height: 50px; display: inline-block; cursor: pointer; } .faded { filter: grayscale(100%); opacity: 0.3; } | STRING |
| HIGH | demo/star_rating_events/run.py | 0 | img { height: 50px; display: inline-block; cursor: pointer; } .faded { filter: grayscale(100%); opacity: 0.3; } | STRING |
| HIGH | demo/star_rating_component/run.py | 0 | img { height: 50px; display: inline-block; cursor: pointer; } .faded { filter: grayscale(100%); opacity: 0.3; } | STRING |
| HIGH | demo/star_rating_templates/run.py | 0 | <h2>${label} rating:</h2> ${array.from({length: 5}, (_, i) => `<img class='${i < value ? '' : 'faded'}' src='https://upl | STRING |
| HIGH | demo/star_rating_props/run.py | 0 | <h2>${label} rating:</h2> ${array.from({length: 5}, (_, i) => `<img class='${i < value ? '' : 'faded'}' src='https://upl | STRING |
| HIGH | demo/star_rating_component/run.py | 0 | <h2>${label} rating:</h2> ${array.from({length: 5}, (_, i) => `<img class='${i < value ? '' : 'faded'}' src='https://upl | STRING |
| HIGH | gradio/components/clear_button.py | 0 | parameters: parameters: value: default text for the button to display. if a function is provided, the function will be c | STRING |
| HIGH | gradio/components/button.py | 0 | parameters: parameters: value: default text for the button to display. if a function is provided, the function will be c | STRING |
| HIGH | gradio/components/duplicate_button.py | 0 | parameters: parameters: value: default text for the button to display. if a function is provided, the function will be c | STRING |
| HIGH | gradio/components/color_picker.py | 0 | parameters: value: a path or url for the default value that simpleimage component is going to take. if a function is pro | STRING |
| HIGH | gradio/_simple_templates/simpledropdown.py | 0 | parameters: value: a path or url for the default value that simpleimage component is going to take. if a function is pro | STRING |
| HIGH | gradio/_simple_templates/simpleimage.py | 0 | parameters: value: a path or url for the default value that simpleimage component is going to take. if a function is pro | STRING |
| HIGH | gradio/components/textbox.py | 0 | parameters: payload: the text entered in the textarea. returns: passes text value as a {str} into the function. | STRING |
| HIGH | gradio/components/datetime.py | 0 | parameters: payload: the text entered in the textarea. returns: passes text value as a {str} into the function. | STRING |
| HIGH | gradio/_simple_templates/simpletextbox.py | 0 | parameters: payload: the text entered in the textarea. returns: passes text value as a {str} into the function. | STRING |
| HIGH | gradio/layouts/tabs.py | 0 | parameters: visible: if false, group will be hidden. elem_id: an optional string that is assigned as the id of this comp | STRING |
| HIGH | gradio/layouts/draggable.py | 0 | parameters: visible: if false, group will be hidden. elem_id: an optional string that is assigned as the id of this comp | STRING |
| HIGH | gradio/layouts/walkthrough.py | 0 | parameters: visible: if false, group will be hidden. elem_id: an optional string that is assigned as the id of this comp | STRING |
| HIGH | gradio/layouts/accordion.py | 0 | parameters: visible: if false, group will be hidden. elem_id: an optional string that is assigned as the id of this comp | STRING |
| HIGH | gradio/layouts/group.py | 0 | parameters: visible: if false, group will be hidden. elem_id: an optional string that is assigned as the id of this comp | STRING |
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| LOW | demo/llm_hf_transformers/run.py | 18 | CODE | |
| LOW | demo/chatinterface_save_history/run.py | 5 | CODE | |
| LOW | demo/validator_test/run.py | 20 | CODE | |
| LOW | demo/dashboard/helpers.py | 127 | CODE | |
| LOW | demo/dashboard/helpers.py | 161 | CODE | |
| LOW | demo/theme_new_step_3/run.py | 9 | CODE | |
| LOW | demo/theme_new_step_2/run.py | 9 | CODE | |
| LOW | demo/chatbot_reasoning_tags/run.py | 19 | CODE | |
| LOW | demo/validator_interface/run.py | 20 | CODE | |
| LOW | gradio/server.py | 60 | CODE | |
| LOW | gradio/server.py | 180 | CODE | |
| LOW | gradio/server.py | 221 | CODE | |
| LOW | gradio/events.py | 838 | CODE | |
| LOW | gradio/events.py | 1067 | CODE | |
| LOW | gradio/events.py | 542 | CODE | |
| LOW | gradio/events.py | 614 | CODE | |
| LOW | gradio/block_function.py | 23 | CODE | |
| LOW | gradio/interface.py | 84 | CODE | |
| LOW | gradio/chat_interface.py | 72 | CODE | |
| LOW | gradio/templates.py | 27 | CODE | |
| LOW | gradio/templates.py | 105 | CODE | |
| LOW | gradio/templates.py | 191 | CODE | |
| LOW | gradio/templates.py | 275 | CODE | |
| LOW | gradio/templates.py | 365 | CODE | |
| LOW | gradio/templates.py | 446 | CODE | |
| LOW | gradio/templates.py | 525 | CODE | |
| LOW | gradio/templates.py | 587 | CODE | |
| LOW | gradio/templates.py | 676 | CODE | |
| LOW | gradio/templates.py | 765 | CODE | |
| LOW | gradio/blocks.py | 639 | CODE | |
| LOW | gradio/blocks.py | 2177 | CODE | |
| LOW | gradio/blocks.py | 2605 | CODE | |
| LOW | gradio/helpers.py | 40 | CODE | |
| LOW | gradio/helpers.py | 103 | CODE | |
| LOW | gradio/routes.py | 2457 | CODE | |
| LOW | gradio/_vendor/aiofiles/threadpool/__init__.py | 37 | CODE | |
| LOW | gradio/_vendor/aiofiles/threadpool/__init__.py | 66 | CODE | |
| LOW | gradio/_vendor/aiofiles/tempfile/__init__.py | 93 | CODE | |
| LOW | gradio/_vendor/aiofiles/tempfile/__init__.py | 121 | CODE | |
| LOW | gradio/_vendor/aiofiles/tempfile/__init__.py | 278 | CODE | |
| LOW | gradio/_vendor/aiofiles/tempfile/__init__.py | 30 | CODE | |
| LOW | gradio/_vendor/aiofiles/tempfile/__init__.py | 63 | CODE | |
| LOW | gradio/_vendor/aiofiles/tempfile/__init__.py | 164 | CODE | |
| LOW | gradio/_vendor/aiofiles/tempfile/__init__.py | 222 | CODE | |
| LOW | gradio/cli/commands/skills.py | 285 | CODE | |
| LOW | gradio/cli/commands/load_chat.py | 10 | CODE | |
| LOW | gradio/cli/commands/components/create.py | 22 | CODE | |
| LOW | gradio/cli/commands/components/docs.py | 25 | CODE | |
| LOW | gradio/cli/commands/components/publish.py | 69 | CODE | |
| LOW | gradio/components/plot.py | 47 | CODE | |
| LOW | gradio/components/model3d.py | 35 | CODE | |
| LOW | gradio/components/login_button.py | 40 | CODE | |
| LOW | gradio/components/annotated_image.py | 51 | CODE | |
| LOW | gradio/components/highlighted_text.py | 42 | CODE | |
| LOW | gradio/components/clear_button.py | 32 | CODE | |
| LOW | gradio/components/dataframe.py | 63 | CODE | |
| LOW | gradio/components/checkboxgroup.py | 30 | CODE | |
| LOW | gradio/components/file_explorer.py | 40 | CODE | |
| LOW | gradio/components/paramviewer.py | 37 | CODE | |
| LOW | gradio/components/number.py | 31 | CODE | |
| 57 more matches not shown… | ||||
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| HIGH | test/test_utils.py | 846 | This is a test function. Args: param1: First parameter param2: Second parame | STRING |
| HIGH | gradio/media.py | 38 | Internal function to get the path to a media file. Args: media_type: Type of media (images, videos, au | STRING |
| HIGH | gradio/media.py | 76 | Get path to an image file. Args: filename: Filename of the image (e.g., "tower.jpg"). If None, returns | STRING |
| HIGH | gradio/media.py | 93 | Get path to a video file. Args: filename: Filename of the video (e.g., "world.mp4"). If None, returns | STRING |
| HIGH | gradio/media.py | 110 | Get path to an audio file. Args: filename: Filename of the audio (e.g., "cantina.wav"). If None, retur | STRING |
| HIGH | gradio/media.py | 127 | Get path to a 3D model file. Args: filename: Filename of the 3D model (e.g., "Duck.glb"). If None, ret | STRING |
| HIGH | gradio/media.py | 144 | Get path to a data file (CSV, JSON, text, etc.). Args: filename: Filename of the data file (e.g., "tit | STRING |
| HIGH | gradio/utils.py | 821 | Runs coroutines in background. Warning, be careful to not use this function in other than FastAPI scope, becau | STRING |
| HIGH | gradio/utils.py | 1927 | Get the description of a function, its parameters, and return values by parsing the docstring. The docstring sh | STRING |
| HIGH | gradio/blocks.py | 2659 | Launches a simple web server that serves the demo. Can also be used to create a public link used by any | STRING |
| HIGH | gradio/external.py | 54 | Constructs a Gradio app automatically from a Hugging Face model/Space repo name or a 3rd-party API provider. Note t | STRING |
| HIGH | gradio/external.py | 939 | Load a Gradio app from an OpenAPI v3 specification. Parameters: openapi_spec: URL, file path, or dicti | STRING |
| HIGH | gradio/data_classes.py | 298 | Copies the file to a specified directory and returns a new FileData object representing the copied file. | STRING |
| HIGH | guides/10_mcp/01_building-mcp-server-with-gradio.md | 155 | Make a request to everyone's favorite API. Args: prompt: The prompt to send to the API. Returns: | STRING |
| HIGH | client/python/gradio_client/client.py | 480 | Calls the Gradio API and returns the result (this is a blocking call). Arguments can be provided as positional | STRING |
| HIGH | client/python/gradio_client/client.py | 521 | Creates and returns a Job object which calls the Gradio API in a background thread. The job can be used to retr | STRING |
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| LOW | .agents/skills/hf-gradio/SKILL.md | 10 | ## Step 1 - Verify installation | COMMENT |
| LOW | .agents/skills/hf-gradio/SKILL.md | 20 | ### Step 2 - Use `info` to discover endpoints and payload format | COMMENT |
| LOW | .agents/skills/hf-gradio/SKILL.md | 53 | ## Step 3 - Use `predict` to generate the prediction | COMMENT |
| LOW | guides/08_custom-components/07_pdf-component-example.md | 9 | ## Step 0: Prerequisites | COMMENT |
| LOW | guides/08_custom-components/07_pdf-component-example.md | 15 | ## Step 1: Creating the custom component | COMMENT |
| LOW | guides/08_custom-components/07_pdf-component-example.md | 35 | ## Step 2: Frontend - modify javascript dependencies | COMMENT |
| LOW | guides/08_custom-components/07_pdf-component-example.md | 89 | ## Step 3: Frontend - Launching the Dev Server | COMMENT |
| LOW | guides/08_custom-components/07_pdf-component-example.md | 105 | ## Step 4: Frontend - The basic skeleton | COMMENT |
| LOW | guides/08_custom-components/07_pdf-component-example.md | 184 | ## Step 5: Frontend - Nicer Upload Text | COMMENT |
| LOW | guides/08_custom-components/07_pdf-component-example.md | 264 | ## Step 6: PDF Rendering logic | COMMENT |
| LOW | guides/08_custom-components/07_pdf-component-example.md | 351 | ## Step 7: Handling The File Upload And Clear | COMMENT |
| LOW | guides/08_custom-components/07_pdf-component-example.md | 395 | ## Step 8: Adding buttons to navigate pages | COMMENT |
| LOW | guides/08_custom-components/07_pdf-component-example.md | 532 | ## Step 9: The backend | COMMENT |
| LOW | guides/08_custom-components/07_pdf-component-example.md | 600 | ## Step 10: Add a demo and publish! | COMMENT |
| LOW | …ents-and-lite/07_fastapi-app-with-the-gradio-client.md | 29 | ## Step 1: Write the Video Processing Function | COMMENT |
| LOW | …ents-and-lite/07_fastapi-app-with-the-gradio-client.md | 89 | ## Step 2: Create a FastAPI app (Backend Routes) | COMMENT |
| LOW | …ents-and-lite/07_fastapi-app-with-the-gradio-client.md | 131 | ## Step 3: Create a FastAPI app (Frontend Template) | COMMENT |
| LOW | …ents-and-lite/07_fastapi-app-with-the-gradio-client.md | 173 | ## Step 4: Run your FastAPI app | COMMENT |
| LOW | …-clients-and-lite/03_querying-gradio-apps-with-curl.md | 58 | ## Step 0: Get the URL for your Gradio App | COMMENT |
| LOW | …-clients-and-lite/03_querying-gradio-apps-with-curl.md | 85 | ## Step 1: Make a Prediction (POST) | COMMENT |
| LOW | …-clients-and-lite/03_querying-gradio-apps-with-curl.md | 187 | ## Step 2: GET the result | COMMENT |
| LOW | …ides/11_other-tutorials/deploying-gradio-with-disco.md | 21 | ### Step 1: Create a Server | COMMENT |
| LOW | …ides/11_other-tutorials/deploying-gradio-with-disco.md | 27 | ### Step 2: Configure DNS Settings | COMMENT |
| LOW | …ides/11_other-tutorials/deploying-gradio-with-disco.md | 48 | ### Step 3: Test Your Server Connection | COMMENT |
| LOW | …ides/11_other-tutorials/deploying-gradio-with-disco.md | 63 | ### Step 4: Install the Disco CLI on Your Local Machine | COMMENT |
| LOW | …ides/11_other-tutorials/deploying-gradio-with-disco.md | 79 | ### Step 5: Initialize Your Server with Disco | COMMENT |
| LOW | …ides/11_other-tutorials/deploying-gradio-with-disco.md | 97 | ### Step 6: Fork the Example Gradio App | COMMENT |
| LOW | …ides/11_other-tutorials/deploying-gradio-with-disco.md | 101 | ### Step 7: Connect Disco to GitHub | COMMENT |
| LOW | …ides/11_other-tutorials/deploying-gradio-with-disco.md | 115 | ### Step 8: Deploy Your Gradio App | COMMENT |
| LOW | …ides/11_other-tutorials/deploying-gradio-with-disco.md | 128 | ### Step 9: Test Your Deployed App | COMMENT |
| LOW | …_other-tutorials/create-your-own-friends-with-a-gan.md | 143 | ## Step 5 - Polishing it up | COMMENT |
| LOW | guides/11_other-tutorials/plot-component-for-maps.md | 15 | ## Step 1 - Loading CSV data 💾 | COMMENT |
| LOW | guides/11_other-tutorials/plot-component-for-maps.md | 35 | ## Step 2 - Map Figure 🌐 | COMMENT |
| LOW | guides/11_other-tutorials/plot-component-for-maps.md | 73 | ## Step 3 - Gradio App ⚡️ | COMMENT |
| LOW | guides/11_other-tutorials/plot-component-for-maps.md | 96 | ## Step 4 - Deployment 🤗 | COMMENT |
| LOW | …des/11_other-tutorials/deploying-gradio-with-docker.md | 18 | #### Step 1: Create Your Gradio App | COMMENT |
| LOW | …des/11_other-tutorials/deploying-gradio-with-docker.md | 33 | #### Step 2: Create a Dockerfile | COMMENT |
| LOW | …des/11_other-tutorials/deploying-gradio-with-docker.md | 57 | #### Step 3: Build and Run Your Docker Container | COMMENT |
| LOW | …ides/11_other-tutorials/deploying-gradio-with-modal.md | 47 | ### Step 1: Define our `modal.Image` | COMMENT |
| LOW | …ides/11_other-tutorials/deploying-gradio-with-modal.md | 67 | ### Step 2: Wrap the Gradio app in a Modal-deployed FastAPI app | COMMENT |
| LOW | …ides/11_other-tutorials/deploying-gradio-with-modal.md | 100 | ### Step 3: Deploying on Modal | COMMENT |
| LOW | guides/11_other-tutorials/running-background-tasks.md | 25 | ## Step 1 - Write your database logic 💾 | COMMENT |
| LOW | guides/11_other-tutorials/running-background-tasks.md | 80 | ## Step 2 - Create a gradio app ⚡ | COMMENT |
| LOW | guides/11_other-tutorials/running-background-tasks.md | 99 | ## Step 3 - Synchronize with HuggingFace Datasets 🤗 | COMMENT |
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| LOW | demo/blocks_essay_simple/run.py | 7 | return gr.Textbox(lines=8, visible=True, value="Lorem ipsum dolor sit amet") | CODE |
| LOW | demo/blocks_essay_simple/run.py | 7 | return gr.Textbox(lines=8, visible=True, value="Lorem ipsum dolor sit amet") | CODE |
| LOW | demo/sentence_builder/run.py | 16 | ["ran", "swam", "ate", "slept"], value=["swam", "slept"], multiselect=True, label="Activity", info="Lorem ip | CODE |
| LOW | demo/sentence_builder/run.py | 16 | ["ran", "swam", "ate", "slept"], value=["swam", "slept"], multiselect=True, label="Activity", info="Lorem ip | CODE |
| LOW | demo/dataframe_widths/run.py | 8 | "Lorem ipsum dolor sit amet, consectetur adipiscing elit.", | CODE |
| LOW | demo/dataframe_widths/run.py | 8 | "Lorem ipsum dolor sit amet, consectetur adipiscing elit.", | CODE |
| LOW | demo/blocks_xray/run.py | 15 | With this model you can lorem ipsum | STRING |
| LOW | demo/dataset_component/run.py | 11 | ["Lorem ipsum"], | CODE |
| LOW | demo/blocks_essay/run.py | 13 | return gr.Textbox(lines=8, visible=True, value="Lorem ipsum dolor sit amet"), gr.Button(interactive=True) | CODE |
| LOW | demo/blocks_essay/run.py | 13 | return gr.Textbox(lines=8, visible=True, value="Lorem ipsum dolor sit amet"), gr.Button(interactive=True) | CODE |
| LOW | demo/kitchen_sink/run.py | 90 | gr.Textbox(value="Lorem ipsum", label="Textbox"), | CODE |
| LOW⚡ | test/test_utils.py | 76 | in_article = "placeholder" | CODE |
| LOW⚡ | test/test_analytics.py | 31 | analytics._do_normal_analytics_request("placeholder", {}) | CODE |
| LOW⚡ | test/test_analytics.py | 37 | analytics.error_analytics("placeholder") | CODE |
| LOW⚡ | test/test_external.py | 390 | token="fake-token", | STRING |
| LOW⚡ | test/test_external.py | 408 | "http://fake-api.com/v1", model="test-model", token="fake-token", streaming=True | STRING |
| LOW | test/components/test_image_editor.py | 75 | "placeholder": None, | CODE |
| LOW | test/components/test_image.py | 58 | "placeholder": None, | CODE |
| LOW | test/components/test_textbox.py | 21 | "placeholder": None, | CODE |
| LOW | test/components/test_number.py | 37 | "placeholder": None, | CODE |
| LOW | test/components/test_number.py | 74 | "placeholder": None, | CODE |
| LOW | test/components/test_chatbot.py | 85 | "placeholder": None, | CODE |
| LOW | test/test_files/xray_config.json | 12 | "value": "# Detect Disease From Scan\nWith this model you can lorem ipsum\n- ipsum 1\n- ipsum 2", | CODE |
| LOW | test/test_files/xray_config_diff_ids.json | 12 | "value": "# Detect Disease From Scan\nWith this model you can lorem ipsum\n- ipsum 1\n- ipsum 2", | CODE |
| LOW | test/test_files/xray_config_wrong.json | 12 | "value": "# Detect Disease From Scan\nWith this model you can lorem ipsum\n- ipsum 1\n- ipsum 2", | CODE |
| LOW | js/atoms/src/Block.svelte | 150 | class="placeholder" | CODE |
| LOW | js/chatbot/shared/Examples.svelte | 39 | <div class="placeholder"> | CODE |
| LOW | js/utils/src/utils.svelte.ts | 13 | "placeholder", | CODE |
| LOW | js/spa/test/kitchen_sink.spec.ts | 47 | await expect(textbox).toHaveValue("Lorem ipsum"); | CODE |
| LOW | js/spa/test/chatbot_multimodal.spec.ts | 7 | await textbox.fill("Lorem ipsum"); | CODE |
| LOW | js/spa/test/chatbot_multimodal.spec.ts | 19 | await expect(user_message).toEqual("Lorem ipsum"); | CODE |
| LOW | js/spa/test/blocks_essay.spec.ts | 11 | await expect(textbox).toHaveValue("Lorem ipsum dolor sit amet"); | CODE |
| LOW | js/spa/test/blocks_essay.spec.ts | 11 | await expect(textbox).toHaveValue("Lorem ipsum dolor sit amet"); | CODE |
| LOW | .agents/skills/gradio/references/examples.md | 14 | return gr.Textbox(lines=8, visible=True, value="Lorem ipsum dolor sit amet") | CODE |
| LOW | .agents/skills/gradio/references/examples.md | 14 | return gr.Textbox(lines=8, visible=True, value="Lorem ipsum dolor sit amet") | CODE |
| LOW | gradio/test_data/blocks_configs.py | 11 | "value": "<h1>Detect Disease From Scan</h1>\n<p>With this model you can lorem ipsum</p>\n<ul>\n<li>ipsum | CODE |
| LOW | gradio/test_data/blocks_configs.py | 359 | "value": "<h1>Detect Disease From Scan</h1>\n<p>With this model you can lorem ipsum</p>\n<ul>\n<li>ipsum | CODE |
| LOW | gradio/test_data/blocks_configs.py | 708 | "value": "<h1>Detect Disease From Scan</h1>\n<p>With this model you can lorem ipsum</p>\n<ul>\n<li>ipsum | CODE |
| LOW | gradio/layouts/accordion.py | 22 | gr.Markdown("lorem ipsum") | STRING |
| LOW | gradio/themes/builder_app.py | 324 | placeholder="John Doe", | CODE |
| LOW | gradio/themes/builder_app.py | 325 | value="John Doe", | CODE |
| LOW | gradio/themes/builder_app.py | 342 | info="Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt | CODE |
| LOW | gradio/themes/builder_app.py | 342 | info="Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt | CODE |
| LOW | gradio/themes/app.py | 37 | placeholder="John Doe", | STRING |
| LOW | gradio/themes/app.py | 38 | value="John Doe", | STRING |
| LOW | gradio/themes/app.py | 53 | info="Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labor | STRING |
| LOW | gradio/themes/app.py | 53 | info="Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labor | STRING |
| LOW | guides/05_chatbots/01_creating-a-chatbot-fast.md | 171 | Here's another example that adds a "placeholder" for your chat interface, which appears before the user has started chat | CODE |
| LOW | scripts/overwrite_xray_config.py | 24 | With this model you can lorem ipsum | STRING |
| LOW | scripts/overwrite_xray_config.py | 63 | With this model you can lorem ipsum | STRING |
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| HIGH | demo/super_html/run.py | 301 | completed.push(index); | CODE |
| HIGH | demo/kitchen_sink/run.py | 10 | JSONOBJ = """{"items":{"item":[{"id": "0001","type": null,"is_good": false,"ppu": 0.55,"batters":{"batter":[{ "id": "100 | CODE |
| HIGH | gradio/mcp.py | 294 | return client.command ? client.command : JSON.stringify(client.config, null, 2); | CODE |
| HIGH | gradio/mcp.py | 325 | if (navigator.clipboard && navigator.clipboard.writeText) { | CODE |
| HIGH | gradio/routes.py | 1402 | success, event_id, state = await blocks._queue.push( | CODE |
| HIGH | gradio/components/deep_link_button.py | 122 | navigator.clipboard.writeText(currentUrl.toString()); | CODE |
| HIGH | …dio/components/custom_html_components/audio_gallery.py | 23 | <div class="audio-label">${labels && labels[i] ? labels[i] : 'Audio ' + (i + 1)}</div> | CODE |
| HIGH | …dio/components/custom_html_components/audio_gallery.py | 87 | timeDisplay.textContent = `${minutes}:${seconds.toString().padStart(2, '0')}`; | CODE |
| HIGH | gradio/themes/builder_app.py | 858 | if (fonts && Array.isArray(fonts)) { | CODE |
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| LOW | demo/scatter_plot/run.py | 1 | import gradio as gr | COMMENT |
| LOW | demo/line_plot/run.py | 21 | # [ | COMMENT |
| LOW | test/test_theme_sharing.py | 281 | def test_get_next_version(self, mock): | COMMENT |
| LOW | test/requirements.txt | 1 | # This file was autogenerated by uv via the following command: | COMMENT |
| LOW | test/requirements.txt | 21 | # via | COMMENT |
| LOW | test/requirements.txt | 41 | # via typer-slim | COMMENT |
| LOW | test/requirements.txt | 61 | # via pydantic | COMMENT |
| LOW | test/requirements.txt | 81 | fsspec==2024.12.0 | COMMENT |
| LOW | test/requirements.txt | 101 | # tokenizers | COMMENT |
| LOW | test/requirements.txt | 121 | jedi==0.19.2 | COMMENT |
| LOW | test/requirements.txt | 141 | kiwisolver==1.4.8 | COMMENT |
| LOW | test/requirements.txt | 161 | numpy==2.2.2 | COMMENT |
| LOW | test/requirements.txt | 181 | # pytest | COMMENT |
| LOW | test/requirements.txt | 201 | polars==1.31.0 | COMMENT |
| LOW | test/requirements.txt | 221 | # via build | COMMENT |
| LOW | test/requirements.txt | 241 | pyyaml==6.0.2 | COMMENT |
| LOW | test/requirements.txt | 261 | # jsonschema | COMMENT |
| LOW | test/requirements.txt | 281 | sortedcontainers==2.4.0 | COMMENT |
| LOW | test/requirements.txt | 301 | # via -r test/requirements.in | COMMENT |
| LOW | test/requirements.txt | 321 | # via | COMMENT |
| LOW | test/requirements.txt | 341 | # botocore | COMMENT |
| LOW | test/tmp/tmp.txt | 1 | # tmp files saved here | COMMENT |
| LOW | js/core/src/stores.ts | 1 | import { type Writable, writable, get } from "svelte/store"; | COMMENT |
| LOW | js/core/src/init.svelte.ts | 481 | node!.props.props[key] = new_props.props[key]; | COMMENT |
| LOW | js/spa/test/components.test.ts | 101 | show_select_all: false | COMMENT |
| LOW | js/spa/test/components.test.ts | 121 | // [ | COMMENT |
| LOW | js/row/Index.svelte | 1 | <script lang="ts"> | COMMENT |
| LOW | js/_spaces-test/vite.config.js | 101 | // discloseVersion: false, | COMMENT |
| LOW | js/theme/src/index.ts | 1 | // export { default as reset } from "./reset.css"; | COMMENT |
| LOW | js/workflowcanvas/workflow/WorkflowCanvas.svelte | 81 | COMMENT | |
| LOW | js/_website/generate_jsons/chunking.py | 141 | chunks.content.pop(i) | COMMENT |
| LOW | js/_website/generate_jsons/embed.py | 21 | # def embed_and_upload(title, _type, url, contents): | COMMENT |
| LOW | js/_website/generate_jsons/embed.py | 41 | # data = response.json() | COMMENT |
| LOW | js/_website/generate_jsons/embed.py | 61 | # {"role": "user", "content": content} | COMMENT |
| LOW | js/_website/generate_jsons/embed.py | 81 | # chunks = chunker.chunk_page(guide["title"], guide["slug"], description, guide["type"]) | COMMENT |
| LOW | js/_website/generate_jsons/embed.py | 101 | # WHERE type = 'DEMO' | COMMENT |
| LOW | js/_website/generate_jsons/embed.py | 141 | ) | COMMENT |
| LOW | js/preview/src/plugins.ts | 141 | COMMENT | |
| LOW | js/tootils/src/index.ts | 241 | // With the new setup, each testcase launches its own Gradio app. | COMMENT |
| LOW | js/imageeditor/types.ts | 61 | // export let _selectable = false; | COMMENT |
| LOW | scripts/helpers.sh | 21 | ####################################### | COMMENT |
| LOW | scripts/helpers.sh | 41 | } | COMMENT |
| LOW | scripts/helpers.sh | 61 | function aws_required() { | COMMENT |
| LOW | scripts/profile_e2e/run.sh | 1 | #!/usr/bin/env bash | COMMENT |
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| MEDIUM | demo/mcp_resources_and_prompts/fastmcp.py | 9 | # Create an MCP server | COMMENT |
| MEDIUM | demo/yolov10_webcam_stream/utils.py | 87 | # Create a list of colors for each class where each color is a tuple of 3 integer values | COMMENT |
| MEDIUM | demo/magic_8_ball/run.py | 52 | # Create an audio segment from the numpy array | COMMENT |
| MEDIUM | gradio/route_utils.py | 789 | # Create the parser. | COMMENT |
| MEDIUM | gradio/external.py | 563 | if "allow_flagging" in config: # Create an Interface for Gradio 2.x Spaces | CODE |
| MEDIUM | gradio/external.py | 567 | else: # Create a Blocks for Gradio 3.x Spaces | CODE |
| MEDIUM | scripts/upload_demo_to_space.py | 38 | # Create the repository if it doesn't exist | COMMENT |
| MEDIUM | scripts/upload_demo_to_space.py | 75 | # Create the repository if it doesn't exist | STRING |
| MEDIUM | client/python/gradio_client/client.py | 200 | # Create a pool of threads to handle the requests | COMMENT |
| MEDIUM | client/python/gradio_client/utils.py | 561 | # Create a new copy of the error dict so we | COMMENT |
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| LOW | js/preview/test/test/backend/gradio_test/__init__.py | 4 | __all__ = ['Test'] | CODE |
| LOW | gradio/chat_interface.py | 549 | def _setup_events(self) -> None: | CODE |
| LOW | gradio/__init__.py | 147 | __all__ = [ | CODE |
| LOW | gradio/ranged_response.py | 85 | def set_range_headers(self, range: ClosedRange) -> None: | CODE |
| LOW | gradio/utils.py | 1314 | def set_static_paths(paths: str | Path | list[str | Path]) -> None: | CODE |
| LOW | gradio/workflow.py | 133 | logger = logging.getLogger(__name__) | CODE |
| LOW | gradio/workflow_api.py | 27 | logger = logging.getLogger(__name__) | CODE |
| LOW | gradio/_vendor/aiofiles/os.py | 8 | __all__ = [ | CODE |
| LOW | gradio/_vendor/aiofiles/__init__.py | 14 | __all__ = [ | CODE |
| LOW⚡ | gradio/_vendor/aiofiles/tempfile/__init__.py | 16 | __all__ = [ | CODE |
| LOW | gradio/_vendor/ffmpy/__init__.py | 3 | __all__ = ["FFmpeg", "FFprobe", "FFExecutableNotFoundError", "FFRuntimeError"] | CODE |
| LOW | gradio/cli/__init__.py | 4 | __all__ = ["cli", "deploy", "custom_component", "sketch"] | CODE |
| LOW | gradio/cli/commands/__init__.py | 13 | __all__ = [ | CODE |
| LOW | gradio/cli/commands/components/_create_utils.py | 458 | __all__ = ['{name}'] | CODE |
| LOW | gradio/cli/commands/components/__init__.py | 3 | __all__ = ["app"] | CODE |
| LOW | gradio/components/__init__.py | 66 | __all__ = [ | CODE |
| LOW | gradio/layouts/__init__.py | 11 | __all__ = [ | CODE |
| LOW | gradio/_simple_templates/__init__.py | 5 | __all__ = ["SimpleDropdown", "SimpleTextbox", "SimpleImage"] | CODE |
| LOW | gradio/themes/__init__.py | 18 | __all__ = [ | CODE |
| LOW | gradio/themes/utils/__init__.py | 7 | __all__ = [ | CODE |
| LOW | client/python/gradio_client/__init__.py | 5 | __all__ = [ | CODE |
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| MEDIUM | CHANGELOG.md | 228 | - [#13176](https://github.com/gradio-app/gradio/pull/13176) [`45c4ecd`](https://github.com/gradio-app/gradio/commit/45c4 | CODE |
| MEDIUM | demo/llm_llamaindex/run.py | 1 | # This is a simple RAG chatbot built on top of Llama Index and Gradio. It allows you to upload any text or PDF files and | COMMENT |
| MEDIUM | js/statustracker/CHANGELOG.md | 31 | - [#13176](https://github.com/gradio-app/gradio/pull/13176) [`45c4ecd`](https://github.com/gradio-app/gradio/commit/45c4 | CODE |
| MEDIUM | js/markdown-code/CHANGELOG.md | 27 | - [#13176](https://github.com/gradio-app/gradio/pull/13176) [`45c4ecd`](https://github.com/gradio-app/gradio/commit/45c4 | CODE |
| MEDIUM | gradio/CHANGELOG.md | 228 | - [#13176](https://github.com/gradio-app/gradio/pull/13176) [`45c4ecd`](https://github.com/gradio-app/gradio/commit/45c4 | CODE |
| MEDIUM | client/js/CHANGELOG.md | 33 | - [#13176](https://github.com/gradio-app/gradio/pull/13176) [`45c4ecd`](https://github.com/gradio-app/gradio/commit/45c4 | CODE |
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| LOW | demo/chatbot_feedback/run.py | 8 | # Set feedback_value to ["Like"] for the assistant message | COMMENT |
| LOW | test/test_networking.py | 128 | # Check if the path is for a JS module | COMMENT |
| LOW | test/test_interfaces.py | 276 | live=True, # Set live to True for real-time feedback | CODE |
| LOW | test/test_docker/conftest.py | 18 | # Check if wheels already exist (e.g., copied from CI artifacts) | COMMENT |
| LOW | gradio/route_utils.py | 362 | # Set parent to None to avoid pickle issues in ZeroGPU | COMMENT |
| LOW | gradio/route_utils.py | 795 | # Write file data, it needs to use await with the UploadFile methods | COMMENT |
| LOW | gradio/utils.py | 526 | try: # Check if running interactively using ipython. | CODE |
| LOW | gradio/utils.py | 553 | try: # Check if running interactively using ipython. | CODE |
| LOW | gradio/blocks.py | 3176 | # Check if running in a Python notebook in which case, display inline | COMMENT |
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| LOW | demo/llm_openai/run.py | 2 | # Before running this, make sure you have exported your OpenAI API key as an environment variable: | COMMENT |
| LOW | demo/llm_claude/run.py | 2 | # Before running this, make sure you have exported your Anthropic API key as an environment variable: | COMMENT |
| LOW | demo/llm_minimax/run.py | 2 | # Before running this, make sure you have exported your MiniMax API key as an environment variable: | COMMENT |
| LOW | demo/llm_llamaindex/run.py | 2 | # Before running this, make sure you have exported your OpenAI API key as an environment variable: | COMMENT |
| LOW | demo/llm_langchain/run.py | 2 | # Before running this, make sure you have exported your OpenAI API key as an environment variable: | COMMENT |
| LOW | demo/llm_hyperbolic/run.py | 2 | # Before running this, make sure you have exported your Hyperbolic API key as an environment variable: | COMMENT |
| LOW | demo/llm_sambanova/run.py | 2 | # Before running this, make sure you have exported your SambaNova API key as an environment variable: | COMMENT |
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| CRITICAL | js/plot/shared/plot_types/altair_utils.ts | 83 | d.encoding.color.scale.range = d.encoding.color.scale.range.map( | CODE |
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| LOW | gradio/blocks.py | 367 | # copying the file to the cache and just use the remote file path. | COMMENT |
| LOW | gradio/blocks.py | 407 | # copying the file to the cache and just use the remote file path. | COMMENT |
| LOW | gradio/cli/commands/components/publish.py | 58 | # If anything goes wrong, just return None so we upload all files | COMMENT |
| LOW | gradio/components/video.py | 289 | # to another format and have a watermark added, we can just return the URL | COMMENT |
| MEDIUM | scripts/download_offline_assets.py | 151 | # test harness), so fetch the pinned v4.3.1 build rather than copying it. | COMMENT |
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| LOW | test/test_networking.py | 121 | def handle_request(self): | CODE |
| LOW | gradio/helpers.py | 681 | def my_function(x, progress=gr.Progress()): | STRING |
| LOW | client/python/test/conftest.py | 140 | def my_function(x, progress=gr.Progress()): | CODE |
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| MEDIUM | test/test_routes.py | 1846 | CODE |
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| LOW | gradio/cli/commands/components/_create_utils.py | 411 | ## Example usage | STRING |
| LOW | scripts/profile_e2e/run.sh | 4 | # Usage: | COMMENT |
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| LOW | gradio/analytics.py | 139 | # Sometimes the target can be the Blocks object itself, so we need to check if its in blocks.blocks | COMMENT |