Rapidly build AI apps in Python
This report summarizes scanner evidence for mesop-dev/mesop, a Python project with 6,584 GitHub stars. SynthScan examined 60,020 lines of code across 862 source files, recording 892 pattern matches distributed across 18 syntactic categories. The legacy adjusted pattern signal is 17.6 (Elevated pattern signal); it is not an authorship estimate.
Use the findings to ask whether maintainers can explain intent, verify dependencies, simplify unnecessary scaffolding, and focus review effort. Risk Payload v1 adds ownership, supply-chain, over-engineering, and review-effort vectors when available. These are prompts for human verification, not probabilities, security findings, or measured maintenance costs.
Use each vector to guide manual verification of the underlying findings.
Can maintainers explain intent, assumptions, and trade-offs? 376 finding(s).
Are imports declared and package/API names verified? 431 finding(s).
Are wrappers, guards, and repeated structures necessary? 390 finding(s).
Which changes need focused human review? 892 finding(s).
Run additional scans to build a history of the legacy pattern signal. Score changes are not a measure of AI adoption or code quality.
Groups findings by configured severity weight. Severity is not a confidence estimate, security rating, or proof that a package is missing. Verify imports against the project's manifests and inspect each finding in its local design context.
This horizontal bar chart shows where configured pattern scores accumulate across directories. Treat the bars as locations to inspect, not as evidence of authorship or code quality. Use the file-level findings to decide whether a directory needs a focused ownership, dependency, complexity, or review check.
The scanner identified 892 distinct pattern matches across 18 syntactic categories. Each entry below represents a discrete location in the source code where the engine recorded a detector match to inspect in context. Expand any category row to inspect the individual file paths, line numbers, code snippets, and the lexical context (CODE, COMMENT, or STRING) in which each match was detected.
Reading the findings table: The Severity column indicates the configured finding weight (CRITICAL / HIGH / MEDIUM / LOW). The Context column identifies whether the match occurred inside executable code, an inline comment, or a string literal — legacy comment-context matches receive a ×1.5 score weight. The ⚡ bolt icon marks clustered matches: three or more patterns within a 10-line window, each receiving an additional ×1.5 density multiplier under the legacy scoring model.
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| LOW | conftest.py | 44 | CODE | |
| LOW | conftest.py | 107 | CODE | |
| LOW | demo/main.py | 51 | CODE | |
| LOW | demo/main.py | 52 | CODE | |
| LOW | demo/main.py | 53 | CODE | |
| LOW | demo/main.py | 54 | CODE | |
| LOW | demo/main.py | 55 | CODE | |
| LOW | demo/main.py | 57 | CODE | |
| LOW | demo/main.py | 58 | CODE | |
| LOW | demo/main.py | 59 | CODE | |
| LOW | demo/main.py | 60 | CODE | |
| LOW | demo/main.py | 61 | CODE | |
| LOW | demo/main.py | 62 | CODE | |
| LOW | demo/main.py | 63 | CODE | |
| LOW | demo/main.py | 64 | CODE | |
| LOW | demo/main.py | 65 | CODE | |
| LOW | demo/main.py | 66 | CODE | |
| LOW | demo/main.py | 67 | CODE | |
| LOW | demo/main.py | 68 | CODE | |
| LOW | demo/main.py | 71 | CODE | |
| LOW | demo/main.py | 72 | CODE | |
| LOW | demo/main.py | 73 | CODE | |
| LOW | demo/main.py | 74 | CODE | |
| LOW | demo/main.py | 75 | CODE | |
| LOW | demo/main.py | 76 | CODE | |
| LOW | demo/main.py | 77 | CODE | |
| LOW | demo/main.py | 78 | CODE | |
| LOW | demo/main.py | 80 | CODE | |
| LOW | demo/main.py | 81 | CODE | |
| LOW | demo/main.py | 83 | CODE | |
| LOW | demo/main.py | 84 | CODE | |
| LOW | demo/main.py | 85 | CODE | |
| LOW | demo/main.py | 86 | CODE | |
| LOW | demo/main.py | 87 | CODE | |
| LOW | demo/main.py | 88 | CODE | |
| LOW | demo/main.py | 89 | CODE | |
| LOW | demo/main.py | 90 | CODE | |
| LOW | demo/main.py | 91 | CODE | |
| LOW | demo/main.py | 92 | CODE | |
| LOW | demo/main.py | 93 | CODE | |
| LOW | demo/main.py | 94 | CODE | |
| LOW | demo/main.py | 95 | CODE | |
| LOW | demo/main.py | 96 | CODE | |
| LOW | demo/main.py | 97 | CODE | |
| LOW | demo/main.py | 98 | CODE | |
| LOW | demo/main.py | 100 | CODE | |
| LOW | demo/main.py | 101 | CODE | |
| LOW | demo/main.py | 102 | CODE | |
| LOW | demo/main.py | 104 | CODE | |
| LOW | demo/main.py | 105 | CODE | |
| LOW | mesop/__init__.py | 6 | CODE | |
| LOW | mesop/__init__.py | 7 | CODE | |
| LOW | mesop/__init__.py | 8 | CODE | |
| LOW | mesop/__init__.py | 9 | CODE | |
| LOW | mesop/__init__.py | 10 | CODE | |
| LOW | mesop/__init__.py | 11 | CODE | |
| LOW | mesop/__init__.py | 12 | CODE | |
| LOW | mesop/__init__.py | 13 | CODE | |
| LOW | mesop/__init__.py | 14 | CODE | |
| LOW | mesop/__init__.py | 15 | CODE | |
| 326 more matches not shown… | ||||
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| LOW | demo/snackbar.py | 82 | def on_horizontal_position_change(e: me.SelectSelectionChangeEvent): | CODE |
| LOW | demo/snackbar.py | 87 | def on_vertical_position_change(e: me.SelectSelectionChangeEvent): | CODE |
| LOW | demo/dialog.py | 44 | def on_click_close_background(e: me.ClickEvent): | CODE |
| LOW | demo/llm_playground.py | 342 | def on_click_add_stop_sequence(e: me.ClickEvent): | CODE |
| LOW | demo/llm_playground.py | 350 | def on_click_remove_stop_sequence(e: me.ClickEvent): | CODE |
| LOW | demo/llm_playground.py | 479 | def _make_modal_background_style(modal_open: bool) -> me.Style: | CODE |
| LOW | demo/uploader.py | 83 | def _convert_contents_data_url(file: me.UploadedFile) -> str: | CODE |
| LOW⚡ | demo/expansion_panel.py | 150 | def on_multi_accordion_toggle(e: me.ExpansionPanelToggleEvent): | CODE |
| LOW⚡ | demo/expansion_panel.py | 156 | def on_multi_accordion_open_all(e: me.ClickEvent): | CODE |
| LOW⚡ | demo/expansion_panel.py | 162 | def on_multi_accordion_close_all(e: me.ClickEvent): | CODE |
| LOW | demo/llm_rewriter.py | 339 | def _make_style_chat_bubble_wrapper(role: Role) -> me.Style: | CODE |
| LOW | demo/llm_rewriter.py | 382 | def _make_modal_background_style(modal_open: bool) -> me.Style: | CODE |
| LOW | demo/fancy_chat.py | 459 | def on_click_example_user_query(e: me.ClickEvent): | CODE |
| LOW | demo/fancy_chat.py | 505 | def on_click_theme_brightness(e: me.ClickEvent): | CODE |
| LOW | demo/autocomplete.py | 51 | def _make_autocomplete_options() -> list[me.AutocompleteOptionGroup]: | CODE |
| LOW | demo/copy_to_clipboard/copy_to_clipboard_component.py | 5 | def copy_to_clipboard_component( | CODE |
| LOW | mesop/labs/chat.py | 64 | def _make_style_chat_bubble_wrapper(role: Role) -> me.Style: | CODE |
| LOW | mesop/security/security_policy_test.py | 7 | def test_default_security_policy_is_valid(): | CODE |
| LOW | mesop/security/security_policy_test.py | 12 | def test_disable_trusted_types_and_configuring_trusted_types_raises_exception(): | CODE |
| LOW | mesop/security/security_policy_test.py | 24 | def test_configuring_trusted_types_without_disabling_trusted_types(): | CODE |
| LOW | mesop/security/security_policy_test.py | 34 | def test_disabling_trusted_types_without_configuring_trusted_types(): | CODE |
| LOW | mesop/web/src/shell/shell.ts | 370 | export function registerComponentRendererElement(app: ApplicationRef) { | CODE |
| LOW | mesop/features/query_params_test.py | 46 | def test_query_params_getitem(): | CODE |
| LOW | mesop/features/query_params_test.py | 62 | def test_query_params_get_all(): | CODE |
| LOW | mesop/features/query_params_test.py | 75 | def test_query_params_delitem(): | CODE |
| LOW | mesop/features/query_params_test.py | 84 | def test_query_params_setitem(): | CODE |
| LOW | mesop/runtime/node_tree_state_test.py | 7 | def create_default_single_component(): | CODE |
| LOW | mesop/runtime/node_tree_state_test.py | 27 | def test_set_previous_node_from_current_node(): | CODE |
| LOW | mesop/runtime/node_tree_state_test.py | 59 | def test_save_current_node_as_slot(): | CODE |
| LOW | mesop/runtime/node_tree_state_test.py | 77 | def test_save_current_node_as_slot_with_name(): | CODE |
| LOW | mesop/runtime/node_tree_state_test.py | 91 | def test_multiple_save_current_node_as_slot(): | CODE |
| LOW | mesop/runtime/node_tree_state_test.py | 107 | def test_clear_node_slots_to_first_null_slot(): | CODE |
| LOW | mesop/runtime/runtime.py | 162 | def register_native_component_fn(self, component_fn: Callable[..., Any]): | CODE |
| LOW | mesop/runtime/runtime.py | 165 | def check_register_web_component_is_valid(self) -> None: | CODE |
| LOW⚡ | mesop/runtime/context.py | 127 | def set_previous_node_from_current_node(self) -> None: | CODE |
| LOW⚡ | mesop/runtime/context.py | 394 | def save_current_node_as_slot(self, name: str = "") -> None: | CODE |
| LOW⚡ | mesop/runtime/context.py | 397 | def clear_node_slots_to_first_null_slot(self) -> None: | CODE |
| LOW⚡ | mesop/runtime/context.py | 403 | def set_previous_node_from_current_node(self) -> None: | CODE |
| LOW | mesop/runtime/context.py | 94 | def save_current_node_as_slot(self, name: str = "") -> None: | CODE |
| LOW | mesop/runtime/context.py | 106 | def clear_node_slots_to_first_null_slot(self) -> None: | CODE |
| LOW | mesop/runtime/context.py | 435 | def restore_state_from_session(self, state_token: str): | CODE |
| LOW | mesop/runtime/context.py | 447 | def clear_stale_state_sessions(self): | CODE |
| LOW | mesop/server/server.py | 207 | def maybe_append_apply_cookies_command() -> None: | CODE |
| LOW | mesop/server/server.py | 511 | def teardown_clear_stale_state_sessions(error=None): | CODE |
| LOW | mesop/server/static_file_serving.py | 81 | def configure_static_file_serving( | STRING |
| LOW | mesop/server/state_session_test.py | 53 | def state_session_backend_factory(tmp_path, sqlite_backend): | CODE |
| LOW | mesop/server/state_session_test.py | 74 | def test_create_state_session_from_config(backend, expected_backend): | CODE |
| LOW | mesop/server/state_session_test.py | 81 | def test_create_state_session_file(): | CODE |
| LOW⚡ | mesop/server/state_session_test.py | 93 | def test_null_backend_restore_raises_exception(): | CODE |
| LOW⚡ | mesop/server/state_session_test.py | 101 | def test_null_backend_save_is_noop(): | CODE |
| LOW⚡ | mesop/server/state_session_test.py | 106 | def test_null_backend_clear_stale_sessions_is_noop(): | CODE |
| LOW⚡ | mesop/server/state_session_test.py | 112 | def test_backend_restore_token_not_found_returns_exception( | CODE |
| LOW | mesop/server/state_session_test.py | 123 | def test_backend_save_and_restore_states( | CODE |
| LOW | mesop/server/state_session_test.py | 147 | def test_backend_token_is_cleared_after_restore( | CODE |
| LOW | mesop/server/state_session_test.py | 171 | def test_memory_backend_clear_stale_sessions(): | CODE |
| LOW⚡ | mesop/server/state_session_test.py | 210 | def test_file_backend_rejects_path_traversal_token(tmp_path, malicious_token): | CODE |
| LOW⚡ | mesop/server/state_session_test.py | 216 | def test_file_backend_accepts_valid_token(tmp_path): | CODE |
| LOW⚡ | mesop/server/state_session_test.py | 224 | def test_file_backend_clear_stale_sessions_not_stale(tmp_path): | CODE |
| LOW | mesop/server/state_session_test.py | 244 | def test_file_backend_clear_stale_sessions(tmp_path): | CODE |
| LOW | mesop/server/state_session_test.py | 271 | def test_file_backend_clear_stale_sessions_skipped(tmp_path): | CODE |
| 224 more matches not shown… | ||||
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| MEDIUM | mesop/pip_package/setup.py | 14 | # ============================================================================== | COMMENT |
| MEDIUM | mesop/pip_package/deterministic_tar_gz.py | 14 | # ============================================================================== | COMMENT |
| MEDIUM⚡ | mesop/commands/set_cookie_test.py | 22 | # --------------------------------------------------------------------------- | COMMENT |
| MEDIUM⚡ | mesop/commands/set_cookie_test.py | 24 | # --------------------------------------------------------------------------- | COMMENT |
| MEDIUM⚡ | mesop/commands/set_cookie_test.py | 50 | # --------------------------------------------------------------------------- | COMMENT |
| MEDIUM⚡ | mesop/commands/set_cookie_test.py | 52 | # --------------------------------------------------------------------------- | COMMENT |
| MEDIUM⚡ | mesop/commands/set_cookie_test.py | 92 | # --------------------------------------------------------------------------- | COMMENT |
| MEDIUM⚡ | mesop/commands/set_cookie_test.py | 94 | # --------------------------------------------------------------------------- | COMMENT |
| MEDIUM⚡ | mesop/commands/set_cookie_test.py | 131 | # --------------------------------------------------------------------------- | COMMENT |
| MEDIUM⚡ | mesop/commands/set_cookie_test.py | 133 | # --------------------------------------------------------------------------- | COMMENT |
| MEDIUM⚡ | mesop/commands/set_cookie_test.py | 159 | # --------------------------------------------------------------------------- | COMMENT |
| MEDIUM⚡ | mesop/commands/set_cookie_test.py | 161 | # --------------------------------------------------------------------------- | COMMENT |
| MEDIUM⚡ | mesop/commands/cookie_class_test.py | 36 | # --------------------------------------------------------------------------- | COMMENT |
| MEDIUM⚡ | mesop/commands/cookie_class_test.py | 38 | # --------------------------------------------------------------------------- | COMMENT |
| MEDIUM⚡ | mesop/commands/cookie_class_test.py | 68 | # --------------------------------------------------------------------------- | COMMENT |
| MEDIUM⚡ | mesop/commands/cookie_class_test.py | 70 | # --------------------------------------------------------------------------- | COMMENT |
| MEDIUM⚡ | mesop/commands/cookie_class_test.py | 142 | # --------------------------------------------------------------------------- | COMMENT |
| MEDIUM⚡ | mesop/commands/cookie_class_test.py | 144 | # --------------------------------------------------------------------------- | COMMENT |
| MEDIUM⚡ | mesop/commands/cookie_class_test.py | 157 | # --------------------------------------------------------------------------- | COMMENT |
| MEDIUM⚡ | mesop/commands/cookie_class_test.py | 159 | # --------------------------------------------------------------------------- | COMMENT |
| MEDIUM⚡ | mesop/commands/cookie_class_test.py | 213 | # --------------------------------------------------------------------------- | COMMENT |
| MEDIUM⚡ | mesop/commands/cookie_class_test.py | 215 | # --------------------------------------------------------------------------- | COMMENT |
| MEDIUM⚡ | mesop/commands/cookie_class_test.py | 274 | # --------------------------------------------------------------------------- | COMMENT |
| MEDIUM⚡ | mesop/commands/cookie_class_test.py | 276 | # --------------------------------------------------------------------------- | COMMENT |
| MEDIUM | mesop/commands/cookie_class_test.py | 22 | # --------------------------------------------------------------------------- | COMMENT |
| MEDIUM | mesop/commands/cookie_class_test.py | 24 | # --------------------------------------------------------------------------- | COMMENT |
| MEDIUM | mesop/commands/cookie_class.py | 58 | # --------------------------------------------------------------------------- | COMMENT |
| MEDIUM | mesop/commands/cookie_class.py | 60 | # --------------------------------------------------------------------------- | COMMENT |
| MEDIUM | mesop/commands/cookie_class.py | 146 | # --------------------------------------------------------------------------- | COMMENT |
| MEDIUM | mesop/commands/cookie_class.py | 148 | # --------------------------------------------------------------------------- | COMMENT |
| MEDIUM | mesop/commands/cookie_class.py | 215 | # --------------------------------------------------------------------------- | COMMENT |
| MEDIUM | mesop/commands/cookie_class.py | 217 | # --------------------------------------------------------------------------- | COMMENT |
| MEDIUM | mesop/commands/cookie_class.py | 306 | # --------------------------------------------------------------------------- | COMMENT |
| MEDIUM | mesop/commands/cookie_class.py | 308 | # --------------------------------------------------------------------------- | COMMENT |
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| HIGH | demo/llm_rewriter.py | 0 | generates styles for chat bubble position. args: role: chat bubble alignment depends on the role | STRING |
| HIGH | mesop/labs/chat.py | 0 | generates styles for chat bubble position. args: role: chat bubble alignment depends on the role | STRING |
| HIGH | mesop/examples/inlined_chat.py | 0 | generates styles for chat bubble position. args: role: chat bubble alignment depends on the role | STRING |
| HIGH | mesop/examples/web_component/chartjs/chartjs_chat.py | 0 | generates styles for chat bubble position. args: role: chat bubble alignment depends on the role | STRING |
| HIGH | demo/leaflet/leaflet_component.py | 0 | a web component wrapper for a google map. args: center: initial map center as a tuple (latitude, longitude). zoom: initi | STRING |
| HIGH | …op/examples/web_component/leaflet/leaflet_component.py | 0 | a web component wrapper for a google map. args: center: initial map center as a tuple (latitude, longitude). zoom: initi | STRING |
| HIGH | …les/web_component/google_maps/google_maps_component.py | 0 | a web component wrapper for a google map. args: center: initial map center as a tuple (latitude, longitude). zoom: initi | STRING |
| HIGH | demo/leaflet/app.py | 0 | proof of concept of a webcomponent wrapper that adds google maps support. note: does not implement full interactions wit | STRING |
| HIGH | mesop/examples/web_component/leaflet/leaflet_app.py | 0 | proof of concept of a webcomponent wrapper that adds google maps support. note: does not implement full interactions wit | STRING |
| HIGH | …/examples/web_component/google_maps/google_maps_app.py | 0 | proof of concept of a webcomponent wrapper that adds google maps support. note: does not implement full interactions wit | STRING |
| HIGH | mesop/labs/chat.py | 0 | generates styles for chat bubble. args: role: chat bubble background color depends on the role | STRING |
| HIGH | mesop/examples/inlined_chat.py | 0 | generates styles for chat bubble. args: role: chat bubble background color depends on the role | STRING |
| HIGH | mesop/examples/web_component/chartjs/chartjs_chat.py | 0 | generates styles for chat bubble. args: role: chat bubble background color depends on the role | STRING |
| HIGH | mesop/labs/chat.py | 0 | creates a simple chat ui which takes in a prompt and chat history and returns a response to the prompt. this function cr | STRING |
| HIGH | mesop/examples/inlined_chat.py | 0 | creates a simple chat ui which takes in a prompt and chat history and returns a response to the prompt. this function cr | STRING |
| HIGH | mesop/examples/web_component/chartjs/chartjs_chat.py | 0 | creates a simple chat ui which takes in a prompt and chat history and returns a response to the prompt. this function cr | STRING |
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| LOW | demo/bootstrap.py | 13 | CODE | |
| LOW | demo/snackbar.py | 117 | CODE | |
| LOW | demo/context_menu.py | 61 | CODE | |
| LOW | demo/feedback.py | 33 | CODE | |
| LOW | demo/llm_playground.py | 50 | CODE | |
| LOW | demo/uploader.py | 22 | CODE | |
| LOW | demo/markdown_editor.py | 39 | CODE | |
| LOW | demo/grid_table.py | 413 | CODE | |
| LOW | demo/tailwind.py | 96 | CODE | |
| LOW | demo/tab_group.py | 101 | CODE | |
| LOW | demo/llm_rewriter.py | 44 | CODE | |
| LOW | demo/fancy_chat.py | 79 | CODE | |
| LOW | demo/fancy_chat.py | 211 | CODE | |
| LOW | demo/headers.py | 17 | CODE | |
| LOW | demo/main.py | 363 | CODE | |
| LOW | demo/main.py | 528 | CODE | |
| LOW | demo/main.py | 635 | CODE | |
| LOW | demo/main.py | 711 | CODE | |
| LOW | demo/copy_to_clipboard/app.py | 27 | CODE | |
| LOW | demo/async_action/app.py | 36 | CODE | |
| LOW | mesop/labs/text_to_image.py | 13 | CODE | |
| LOW | mesop/labs/text_to_text.py | 39 | CODE | |
| LOW | mesop/labs/text_to_text.py | 62 | CODE | |
| LOW | mesop/labs/chat.py | 124 | CODE | |
| LOW | mesop/runtime/context.py | 461 | CODE | |
| LOW | mesop/server/server.py | 167 | CODE | |
| LOW | mesop/server/server.py | 295 | CODE | |
| LOW | mesop/server/static_file_serving.py | 81 | CODE | |
| LOW | mesop/server/static_file_serving.py | 216 | CODE | |
| LOW | mesop/server/state_session.py | 396 | CODE | |
| LOW | mesop/server/state_session.py | 181 | CODE | |
| LOW | mesop/server/server_utils.py | 107 | CODE | |
| LOW | mesop/utils/url_utils.py | 26 | CODE | |
| LOW | mesop/component_helpers/helper_test.py | 256 | CODE | |
| LOW | mesop/components/uploader/e2e/uploader_multiple_app.py | 12 | CODE | |
| LOW | mesop/examples/inlined_chat.py | 155 | CODE | |
| LOW | mesop/examples/named_nested_slot.py | 11 | CODE | |
| LOW | …sop/examples/web_component/chartjs/chartjs_chat_app.py | 153 | CODE | |
| LOW | mesop/examples/web_component/chartjs/chartjs_chat.py | 46 | CODE | |
| LOW | …b_component/copy_to_clipboard/copy_to_clipboard_app.py | 24 | CODE | |
| LOW | …xamples/web_component/async_action/async_action_app.py | 32 | CODE | |
| LOW | mesop/examples/web_component/gemini_live/demo.py | 189 | CODE | |
| LOW | mesop/examples/web_component/gemini_live/demo.py | 214 | CODE | |
| LOW | mesop/examples/web_component/gemini_live/demo.py | 234 | CODE | |
| LOW | mesop/examples/shared/navmenu.py | 29 | CODE | |
| LOW | mesop/examples/testing/complex_layout.py | 20 | CODE | |
| LOW | mesop/examples/testing/complex_slots.py | 29 | CODE | |
| LOW | mesop/examples/starter_kit/starter_kit.py | 172 | CODE | |
| LOW | mesop/dataclass_utils/dataclass_utils.py | 55 | CODE | |
| LOW | mesop/dataclass_utils/dataclass_utils.py | 140 | CODE | |
| LOW | mesop/dataclass_utils/dataclass_utils.py | 218 | CODE | |
| LOW | showcase/main.py | 198 | CODE | |
| LOW | showcase/main.py | 323 | CODE |
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| LOW | demo/card.py | 39 | "Lorem ipsum dolor sit amet, consectetur adipiscing elit. Nulla sed augue ultricies, laoreet nunc eget, ultric | CODE |
| LOW | demo/card.py | 39 | "Lorem ipsum dolor sit amet, consectetur adipiscing elit. Nulla sed augue ultricies, laoreet nunc eget, ultric | CODE |
| LOW | demo/card.py | 56 | "Lorem ipsum dolor sit amet, consectetur adipiscing elit. Nulla sed augue ultricies, laoreet nunc eget, ultric | CODE |
| LOW | demo/card.py | 56 | "Lorem ipsum dolor sit amet, consectetur adipiscing elit. Nulla sed augue ultricies, laoreet nunc eget, ultric | CODE |
| LOW | demo/card.py | 73 | "Lorem ipsum dolor sit amet, consectetur adipiscing elit. Nulla sed augue ultricies, laoreet nunc eget, ultric | CODE |
| LOW | demo/card.py | 73 | "Lorem ipsum dolor sit amet, consectetur adipiscing elit. Nulla sed augue ultricies, laoreet nunc eget, ultric | CODE |
| LOW | demo/card.py | 88 | "Lorem ipsum dolor sit amet, consectetur adipiscing elit. Nulla sed augue ultricies, laoreet nunc eget, ultric | CODE |
| LOW | demo/card.py | 88 | "Lorem ipsum dolor sit amet, consectetur adipiscing elit. Nulla sed augue ultricies, laoreet nunc eget, ultric | CODE |
| LOW | demo/card.py | 102 | "Lorem ipsum dolor sit amet, consectetur adipiscing elit. Nulla sed augue ultricies, laoreet nunc eget, ultric | CODE |
| LOW | demo/card.py | 102 | "Lorem ipsum dolor sit amet, consectetur adipiscing elit. Nulla sed augue ultricies, laoreet nunc eget, ultric | CODE |
| LOW | demo/expansion_panel.py | 51 | "Lorem ipsum dolor sit amet, consectetur adipiscing elit. Nulla sed augue ultricies, laoreet nunc eget, ultric | CODE |
| LOW | demo/expansion_panel.py | 51 | "Lorem ipsum dolor sit amet, consectetur adipiscing elit. Nulla sed augue ultricies, laoreet nunc eget, ultric | CODE |
| LOW | demo/expansion_panel.py | 65 | "Lorem ipsum dolor sit amet, consectetur adipiscing elit. Nulla sed augue ultricies, laoreet nunc eget, ultric | CODE |
| LOW | demo/expansion_panel.py | 65 | "Lorem ipsum dolor sit amet, consectetur adipiscing elit. Nulla sed augue ultricies, laoreet nunc eget, ultric | CODE |
| LOW | demo/expansion_panel.py | 79 | "Lorem ipsum dolor sit amet, consectetur adipiscing elit. Nulla sed augue ultricies, laoreet nunc eget, ultric | CODE |
| LOW | demo/expansion_panel.py | 79 | "Lorem ipsum dolor sit amet, consectetur adipiscing elit. Nulla sed augue ultricies, laoreet nunc eget, ultric | CODE |
| LOW | demo/expansion_panel.py | 103 | "Lorem ipsum dolor sit amet, consectetur adipiscing elit. Nulla sed augue ultricies, laoreet nunc eget, ultric | CODE |
| LOW | demo/expansion_panel.py | 103 | "Lorem ipsum dolor sit amet, consectetur adipiscing elit. Nulla sed augue ultricies, laoreet nunc eget, ultric | CODE |
| LOW | demo/expansion_panel.py | 115 | "Lorem ipsum dolor sit amet, consectetur adipiscing elit. Nulla sed augue ultricies, laoreet nunc eget, ultric | CODE |
| LOW | demo/expansion_panel.py | 115 | "Lorem ipsum dolor sit amet, consectetur adipiscing elit. Nulla sed augue ultricies, laoreet nunc eget, ultric | CODE |
| LOW | demo/expansion_panel.py | 127 | "Lorem ipsum dolor sit amet, consectetur adipiscing elit. Nulla sed augue ultricies, laoreet nunc eget, ultric | CODE |
| LOW | demo/expansion_panel.py | 127 | "Lorem ipsum dolor sit amet, consectetur adipiscing elit. Nulla sed augue ultricies, laoreet nunc eget, ultric | CODE |
| LOW | demo/expansion_panel.py | 139 | "Lorem ipsum dolor sit amet, consectetur adipiscing elit. Nulla sed augue ultricies, laoreet nunc eget, ultricie | CODE |
| LOW | demo/expansion_panel.py | 139 | "Lorem ipsum dolor sit amet, consectetur adipiscing elit. Nulla sed augue ultricies, laoreet nunc eget, ultricie | CODE |
| LOW | demo/llm_rewriter.py | 224 | "Lorem ipsum dolor sit amet, consectetur adipiscing elit, " | CODE |
| LOW | demo/llm_rewriter.py | 224 | "Lorem ipsum dolor sit amet, consectetur adipiscing elit, " | CODE |
| LOW | demo/copy_to_clipboard/app.py | 6 | Lorem ipsum odor amet, consectetuer adipiscing elit. Libero maecenas curae | CODE |
| LOW | mesop/components/card/e2e/card_test.ts | 18 | 'Lorem ipsum dolor sit amet', | CODE |
| LOW | mesop/components/card/e2e/card_test.ts | 18 | 'Lorem ipsum dolor sit amet', | CODE |
| LOW | mesop/components/card/e2e/card_app.py | 20 | "Lorem ipsum dolor sit amet, consectetur adipiscing elit. Nulla sed augue ultricies, laoreet nunc eget, ultricie | CODE |
| LOW | mesop/components/card/e2e/card_app.py | 20 | "Lorem ipsum dolor sit amet, consectetur adipiscing elit. Nulla sed augue ultricies, laoreet nunc eget, ultricie | CODE |
| LOW | …b_component/copy_to_clipboard/copy_to_clipboard_app.py | 7 | Lorem ipsum odor amet, consectetuer adipiscing elit. Libero maecenas curae | CODE |
| LOW | mesop/examples/testing/minimal_chat.py | 5 | @me.page(path="/testing/minimal_chat", title="Lorem Ipsum Chat") | CODE |
| LOW | mesop/examples/testing/minimal_chat.py | 7 | mel.chat(transform, title="Lorem Ipsum Chat", bot_user="Lorem Ipsum Bot") | CODE |
| LOW⚡ | mesop/examples/e2e/chat_test.ts | 10 | await page.locator('//input').fill('Lorem ipsum'); | CODE |
| LOW⚡ | mesop/examples/e2e/chat_test.ts | 16 | expect(page.locator('//div[text()="Lorem ipsum"]')).toHaveCount(1); | CODE |
| LOW⚡ | mesop/examples/e2e/chat_test.ts | 17 | await expect(page.locator('//div[text()="Lorem Ipsum Bot"]')).toHaveCount(1); | CODE |
| LOW⚡ | mesop/examples/e2e/chat_test.ts | 30 | await page.locator('//input').fill('Dolor sit amet'); | CODE |
| LOW⚡ | mesop/examples/e2e/chat_test.ts | 35 | await expect(page.locator('//div[text()="Dolor sit amet"]')).toHaveCount(1); | CODE |
| LOW⚡ | mesop/examples/e2e/chat_test.ts | 36 | await expect(page.locator('//div[text()="Lorem Ipsum Bot"]')).toHaveCount(2); | CODE |
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| HIGH | conftest.py | 47 | except ImportError: | CODE |
| HIGH | conftest.py | 110 | except ImportError: | CODE |
| HIGH | demo/llm_playground.py | 314 | except ValueError: | CODE |
| HIGH | demo/llm_playground.py | 332 | except ValueError: | CODE |
| HIGH | mesop/utils/async_utils.py | 23 | except StopAsyncIteration: | CODE |
| HIGH | mesop/dataclass_utils/dataclass_utils.py | 283 | except ImportError: | CODE |
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| LOW | mesop/warn/warn.py | 3 | logger = logging.getLogger(__name__) | CODE |
| LOW | mesop/features/theme.py | 10 | def set_theme_density(density: Literal[0, -1, -2, -3, -4]) -> None: | CODE |
| LOW | mesop/features/theme.py | 22 | def set_theme_mode(theme_mode: ThemeMode) -> None: | CODE |
| LOW⚡ | mesop/runtime/context.py | 124 | def set_current_node(self, node: pb.Component) -> None: | CODE |
| LOW⚡ | mesop/runtime/context.py | 127 | def set_previous_node_from_current_node(self) -> None: | CODE |
| LOW⚡ | mesop/runtime/context.py | 336 | def set_theme_density(self, density: int) -> None: | CODE |
| LOW⚡ | mesop/runtime/context.py | 341 | def set_theme_mode(self, theme_mode: pb.ThemeMode.ValueType) -> None: | CODE |
| LOW⚡ | mesop/runtime/context.py | 346 | def set_theme_settings(self, settings: pb.ThemeSettings) -> None: | CODE |
| LOW⚡ | mesop/runtime/context.py | 385 | def set_node_tree_state(self, node_tree_state: NodeTreeState) -> None: | CODE |
| LOW⚡ | mesop/runtime/context.py | 400 | def set_current_node(self, node: pb.Component) -> None: | CODE |
| LOW⚡ | mesop/runtime/context.py | 403 | def set_previous_node_from_current_node(self) -> None: | CODE |
| LOW | mesop/runtime/context.py | 28 | logger = logging.getLogger(__name__) | CODE |
| LOW | mesop/runtime/context.py | 186 | def set_has_rendered(self, has_rendered: bool) -> None: | CODE |
| LOW | mesop/runtime/context.py | 266 | def set_page_title(self, title: str) -> None: | CODE |
| LOW | mesop/runtime/context.py | 451 | def update_state(self, states: pb.States) -> None: | CODE |
| LOW | mesop/server/server.py | 55 | logger = logging.getLogger(__name__) | CODE |
| LOW | mesop/commands/set_cookie.py | 8 | logger = logging.getLogger(__name__) | CODE |
| LOW | mesop/commands/set_page_title.py | 4 | def set_page_title(title: str) -> None: | CODE |
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| LOW | mesop/server/server.py | 467 | CODE | |
| LOW | mesop/server/server_debug_routes.py | 26 | CODE | |
| LOW | mesop/components/uploader/uploader.py | 60 | CODE | |
| LOW | mesop/components/uploader/uploader.py | 102 | CODE | |
| LOW | mesop/components/radio/radio.py | 46 | CODE | |
| LOW | mesop/components/autocomplete/autocomplete.py | 86 | CODE | |
| LOW | mesop/components/input/input.py | 110 | CODE | |
| LOW | mesop/components/input/input.py | 196 | CODE | |
| LOW | mesop/components/input/input.py | 290 | CODE | |
| LOW | mesop/components/datepicker/datepicker.py | 42 | CODE | |
| LOW | mesop/components/date_range_picker/date_range_picker.py | 45 | CODE | |
| LOW | mesop/components/checkbox/checkbox.py | 60 | CODE | |
| LOW | mesop/components/checkbox/checkbox.py | 109 | CODE | |
| LOW | mesop/components/slider/slider.py | 38 | CODE | |
| LOW | mesop/components/button/button.py | 16 | CODE | |
| LOW | mesop/components/expansion_panel/expansion_panel.py | 36 | CODE | |
| LOW | mesop/components/select/select.py | 81 | CODE | |
| LOW | mesop/components/slide_toggle/slide_toggle.py | 36 | CODE | |
| LOW | mesop/components/slide_toggle/slide_toggle.py | 81 | CODE | |
| LOW | mesop/components/badge/badge.py | 11 | CODE | |
| LOW | mesop/examples/web_component/gemini_live/gemini_live.py | 11 | CODE |
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| HIGH | …les/web_component/google_maps/google_maps_component.js | 8 | // **IMPORTANT:** Replace 'YOUR_API_KEY' with your actual Google Maps API Key | COMMENT |
| HIGH | …les/web_component/google_maps/google_maps_component.js | 9 | const GOOGLE_MAPS_API_KEY = 'YOUR_API_KEY'; | CODE |
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| LOW | mesop/bin/bin.py | 188 | except Exception as e: | CODE |
| LOW | mesop/bin/bin.py | 266 | except Exception as e: | CODE |
| LOW | mesop/server/server.py | 266 | except Exception as e: | CODE |
| LOW | mesop/server/server.py | 425 | except Exception as e: | CODE |
| LOW | mesop/server/server.py | 575 | except Exception as parse_error: | CODE |
| LOW | mesop/server/server.py | 596 | except Exception as e: | CODE |
| LOW | mesop/utils/host_util.py | 40 | except Exception: | CODE |
| LOW | mesop/cli/cli.py | 72 | except Exception as e: | CODE |
| LOW | mesop/cli/cli.py | 112 | except Exception as e: | CODE |
| LOW | docs/guides/auth.md | 82 | except Exception: | CODE |
| LOW | docs/guides/auth.md | 526 | except Exception: | CODE |
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| LOW | demo/hotkeys/hotkeys_component.js | 41 | if ( | COMMENT |
| LOW | mesop/pip_package/build_pip_package.sh | 1 | #!/bin/sh | COMMENT |
| LOW | mesop/pip_package/setup.py | 1 | # Copyright 2017 The TensorFlow Authors. All Rights Reserved. | COMMENT |
| LOW | mesop/pip_package/deterministic_tar_gz.py | 1 | # Copyright 2019 The TensorFlow Authors. All Rights Reserved. | COMMENT |
| LOW | mesop/server/server.py | 521 | sock = Sock(flask_app) | COMMENT |
| LOW | mesop/server/wsgi_app.py | 61 | # Lazily create and reuse a flask app instance to avoid | COMMENT |
| LOW | mesop/server/state_session.py | 241 | "You can create a TTL policy by running this command: \n\n" | COMMENT |
| LOW | mesop/components/input/input.ts | 121 | // menu item. The user will then need to press "enter" to confirm the selection (at | COMMENT |
| LOW | …op/examples/web_component/hotkeys/hotkeys_component.js | 41 | if ( | COMMENT |
| LOW | build_defs/requirements_lock.txt | 361 | # via | COMMENT |
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| CRITICAL | mesop/web/src/component_renderer/component_renderer.ts | 289 | this.insertionRef.element.nativeElement.parentElement.appendChild( | CODE |
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| HIGH | mesop/dataclass_utils/dataclass_utils.py | 401 | if not level.t1.equals(level.t2): | CODE |
| HIGH | mesop/dataclass_utils/dataclass_utils_test.py | 399 | assert pandas_dataframe_state.val.equals( | CODE |
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| HIGH | docs/web-components/troubleshooting.md | 22 | If you see this error message, then you will need to update your page's [Security Policy](../api/page.md#mesop.security. | CODE |
| HIGH | docs/web-components/troubleshooting.md | 42 | If you see this error message, then you will need to update your page's [Security Policy](../api/page.md#mesop.security. | CODE |
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| MEDIUM | mesop/server/static_file_serving.py | 155 | # Create a BytesIO object from the modified lines | STRING |
| MEDIUM | …ples/web_component/quickstart/counter_component_app.py | 34 | # Creating a Pydantic model from the JSON value of the WebEvent | COMMENT |
| MEDIUM | …web_component/custom_font_csp_repro/custom_font_app.py | 43 | # Creating a Pydantic model from the JSON value of the WebEvent | COMMENT |
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| LOW | mesop/server/static_file_serving_test.py | 44 | # Check if the ungzipped data is correct | COMMENT |
| LOW | mesop/dataclass_utils/diff_state_test.py | 1088 | }, # Check if value is base64 encoded without asserting exact value | CODE |
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| LOW | demo/fancy_chat.py | 541 | # We make sure to only pass in the chat history up to this message. | COMMENT |