Create web-based user interfaces with Python. The nice way.
This report summarizes scanner evidence for zauberzeug/nicegui, a Python project with 16,279 GitHub stars. SynthScan examined 128,957 lines of code across 1029 source files, recording 1336 pattern matches distributed across 20 syntactic categories. The legacy adjusted pattern signal is 13.3 (Moderate 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? 717 finding(s).
Are imports declared and package/API names verified? 461 finding(s).
Are wrappers, guards, and repeated structures necessary? 797 finding(s).
Which changes need focused human review? 1336 finding(s).
This chart tracks the legacy adjusted pattern score across scan runs. Changes can reflect source changes, scan coverage, or detector/scoring versions; they do not measure AI adoption or prove that a team refactored code. Compare runs only when their scoring versions are compatible. The dashed line tracks the raw pattern-hit count.
Groups findings by configured severity weight. Severity is not a confidence estimate, security rating, or proof that a package is missing. Verify imports against the project's manifests and inspect each finding in its local design context.
This horizontal bar chart shows where configured pattern scores accumulate across directories. Treat the bars as locations to inspect, not as evidence of authorship or code quality. Use the file-level findings to decide whether a directory needs a focused ownership, dependency, complexity, or review check.
The scanner identified 1336 distinct pattern matches across 20 syntactic categories. Each entry below represents a discrete location in the source code where the engine recorded a detector match to inspect in context. Expand any category row to inspect the individual file paths, line numbers, code snippets, and the lexical context (CODE, COMMENT, or STRING) in which each match was detected.
Reading the findings table: The Severity column indicates the configured finding weight (CRITICAL / HIGH / MEDIUM / LOW). The Context column identifies whether the match occurred inside executable code, an inline comment, or a string literal — legacy comment-context matches receive a ×1.5 score weight. The ⚡ bolt icon marks clustered matches: three or more patterns within a 10-line window, each receiving an additional ×1.5 density multiplier under the legacy scoring model.
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| LOW | main.py | 173 | def _documentation_detail_page(name: str, tree: ui.tree) -> None: | STRING |
| LOW | website/documentation/reference.py | 108 | def _generate_property_signature_description(property_: property | None) -> str: | CODE |
| LOW | website/documentation/reference.py | 124 | def _generate_method_signature_description(method: Callable) -> str: | CODE |
| LOW | website/documentation/reference.py | 152 | def _remove_indentation_from_docstring(text: str) -> str: | CODE |
| LOW | website/documentation/search.py | 46 | def _collect_documentation_parts(*, include_code: bool = False) -> list[dict[str, str]]: | CODE |
| LOW | website/documentation/content/section_security.py | 80 | def component_security_overview_demo(): | STRING |
| LOW | …site/documentation/content/date_input_documentation.py | 28 | def date_input_with_filter_demo(): | STRING |
| LOW | website/documentation/content/section_action_events.py | 253 | # def clear_content_and_show_error(error): | STRING |
| LOW | website/documentation/content/aggrid_documentation.py | 59 | def adding_rows_preserving_edits(): | STRING |
| LOW | website/documentation/content/aggrid_documentation.py | 87 | def aggrid_with_selectable_rows(): | STRING |
| LOW | website/documentation/content/aggrid_documentation.py | 145 | def aggrid_with_conditional_cell_formatting(): | STRING |
| LOW | website/documentation/content/aggrid_documentation.py | 242 | def aggrid_with_complex_objects(): | STRING |
| LOW | website/documentation/content/aggrid_documentation.py | 292 | def aggrid_with_dynamic_row_height(): | STRING |
| LOW | website/documentation/content/aggrid_documentation.py | 337 | def aggrid_filter_return_values(): | STRING |
| LOW | website/documentation/content/aggrid_documentation.py | 345 | def aggrid_access_api_via_javascript(): | STRING |
| LOW | website/documentation/content/aggrid_documentation.py | 364 | def aggrid_handle_theme_change(): | STRING |
| LOW | website/documentation/content/event_documentation.py | 31 | def emitting_vs_calling_events(): | STRING |
| LOW | website/documentation/content/slider_documentation.py | 23 | def throttle_events_with_leading_and_trailing_options(): | STRING |
| LOW | website/documentation/content/page_documentation.py | 32 | def page_with_path_parameters_demo(): | STRING |
| LOW | …bsite/documentation/content/expansion_documentation.py | 15 | def expansion_with_custom_header(): | STRING |
| LOW | website/documentation/content/tree_documentation.py | 31 | def tree_with_custom_header_and_body(): | STRING |
| LOW | website/documentation/content/table_documentation.py | 40 | def default_column_parameters(): | STRING |
| LOW | website/documentation/content/table_documentation.py | 76 | def table_with_expandable_rows(): | STRING |
| LOW | website/documentation/content/table_documentation.py | 179 | def table_with_drop_down_selection(): | STRING |
| LOW | website/documentation/content/table_documentation.py | 327 | def handle_pagination_changes() -> None: | STRING |
| LOW | website/documentation/content/table_documentation.py | 340 | async def show_filtered_sorted_rows(): | STRING |
| LOW | website/documentation/content/table_documentation.py | 458 | def table_with_masonry_like_grid(): | STRING |
| LOW | website/documentation/content/table_documentation.py | 485 | def slot_templates_with_nicegui_elements(): | STRING |
| LOW | …ite/documentation/content/refreshable_documentation.py | 27 | def refreshable_with_parameters(): | STRING |
| LOW | …umentation/content/section_configuration_deployment.py | 483 | def _documentation_index_table(): | STRING |
| LOW | website/documentation/content/user_documentation.py | 170 | def selecting_options_in_a_select(): | STRING |
| LOW | …/documentation/content/section_audiovisual_elements.py | 25 | def captions_and_overlays_demo(): | STRING |
| LOW | website/documentation/content/markdown_documentation.py | 15 | def markdown_with_indentation(): | STRING |
| LOW | website/documentation/content/markdown_documentation.py | 33 | def markdown_with_code_blocks(): | STRING |
| LOW | website/documentation/content/echart_documentation.py | 98 | def echart_from_pyecharts_demo(): | STRING |
| LOW | …te/documentation/content/section_styling_appearance.py | 242 | def overwrite_tailwind_style_demo(): | STRING |
| LOW | …te/documentation/content/section_styling_appearance.py | 269 | def other_vue_ui_frameworks_demo(): | STRING |
| LOW | website/documentation/content/scene_documentation.py | 360 | def custom_object_javascript_module() -> None: | STRING |
| LOW | website/documentation/content/scene_documentation.py | 381 | def materials_for_composite_objects() -> None: | STRING |
| LOW | website/documentation/content/tooltip_documentation.py | 34 | def tooltip_with_other_content(): | STRING |
| LOW | tests/test_serving_files.py | 31 | def assert_video_file_streaming(path: str) -> None: | CODE |
| LOW | tests/test_serving_files.py | 44 | def test_media_files_can_be_streamed(screen: Screen): | CODE |
| LOW | tests/test_serving_files.py | 55 | def test_media_files_against_path_traversal(screen: Screen, secret_file): | CODE |
| LOW | tests/test_serving_files.py | 70 | def test_adding_single_media_file(screen: Screen): | CODE |
| LOW | tests/test_serving_files.py | 95 | def test_malicious_chunk_size_is_clamped(screen: Screen): | CODE |
| LOW | tests/test_serving_files.py | 113 | def test_get_from_static_files_dir(url_path: str, screen: Screen): | CODE |
| LOW | tests/test_serving_files.py | 141 | def test_adding_single_static_file(screen: Screen): | CODE |
| LOW | tests/test_serving_files.py | 156 | def test_single_use_file_is_served_exactly_once(screen: Screen, secret_file: Path, add_file: Callable[..., str]): | CODE |
| LOW | tests/test_serving_files.py | 180 | def test_single_use_media_file_partial_content_is_not_cacheable(screen: Screen, secret_file: Path): | CODE |
| LOW | tests/test_serving_files.py | 194 | def test_auto_serving_file_from_image_source(screen: Screen): | CODE |
| LOW | tests/test_serving_files.py | 210 | def test_auto_serving_file_from_video_source(screen: Screen): | STRING |
| LOW | tests/test_serving_files.py | 221 | def test_mimetypes_of_static_files(screen: Screen): | STRING |
| LOW | tests/test_serving_files.py | 241 | def test_cache_control_header_of_static_files(screen: Screen): | STRING |
| LOW | tests/test_serving_files.py | 264 | def test_streamed_media_file_handle_is_released_on_teardown(monkeypatch: pytest.MonkeyPatch): | STRING |
| LOW | tests/test_skip_link.py | 25 | def test_skip_link_skips_to_offscreen_content(screen: Screen): | STRING |
| LOW | tests/test_skip_link.py | 42 | def test_skip_link_with_custom_text(screen: Screen): | STRING |
| LOW | tests/test_skip_link.py | 51 | def test_skip_link_with_context_manager_replaces_text(screen: Screen): | STRING |
| LOW | tests/test_skip_link.py | 73 | def test_link_is_deleted_with_calling_context(screen: Screen): | STRING |
| LOW | tests/test_vbuild.py | 52 | def test_template_with_scoped_style(): | STRING |
| LOW | tests/test_vbuild.py | 71 | def test_scoped_style_applies_to_root_element(): | STRING |
| 557 more matches not shown… | ||||
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| LOW | website/__init__.py | 1 | CODE | |
| LOW | website/__init__.py | 1 | CODE | |
| LOW | website/__init__.py | 1 | CODE | |
| LOW | website/__init__.py | 1 | CODE | |
| LOW | website/__init__.py | 1 | CODE | |
| LOW | website/examples.py | 1 | CODE | |
| LOW | website/documentation/__init__.py | 1 | CODE | |
| LOW | website/documentation/__init__.py | 1 | CODE | |
| LOW | website/documentation/__init__.py | 1 | CODE | |
| LOW | website/documentation/__init__.py | 2 | CODE | |
| LOW | website/documentation/__init__.py | 3 | CODE | |
| LOW | website/documentation/__init__.py | 4 | CODE | |
| LOW | website/documentation/__init__.py | 5 | CODE | |
| LOW | website/documentation/__init__.py | 6 | CODE | |
| LOW | website/documentation/__init__.py | 6 | CODE | |
| LOW | website/documentation/__init__.py | 6 | CODE | |
| LOW | website/documentation/content/section_pages_routing.py | 89 | CODE | |
| LOW | website/documentation/content/__init__.py | 1 | CODE | |
| LOW | website/documentation/content/__init__.py | 1 | CODE | |
| LOW | website/documentation/content/__init__.py | 2 | CODE | |
| LOW | …te/documentation/content/section_styling_appearance.py | 270 | CODE | |
| LOW | website/documentation/content/run_documentation.py | 76 | CODE | |
| LOW | website/documentation/content/doc/__init__.py | 1 | CODE | |
| LOW | website/documentation/content/doc/__init__.py | 1 | CODE | |
| LOW | website/documentation/content/doc/__init__.py | 1 | CODE | |
| LOW | website/documentation/content/doc/__init__.py | 1 | CODE | |
| LOW | website/documentation/content/doc/__init__.py | 1 | CODE | |
| LOW | website/documentation/content/doc/__init__.py | 1 | CODE | |
| LOW | website/documentation/content/doc/__init__.py | 1 | CODE | |
| LOW | website/documentation/content/doc/__init__.py | 1 | CODE | |
| LOW | website/documentation/content/doc/__init__.py | 1 | CODE | |
| LOW | website/documentation/content/doc/__init__.py | 1 | CODE | |
| LOW | website/documentation/content/doc/__init__.py | 1 | CODE | |
| LOW | website/documentation/content/doc/__init__.py | 1 | CODE | |
| LOW | website/components/__init__.py | 3 | CODE | |
| LOW | website/components/__init__.py | 3 | CODE | |
| LOW | website/components/__init__.py | 3 | CODE | |
| LOW | website/components/__init__.py | 3 | CODE | |
| LOW | website/components/__init__.py | 3 | CODE | |
| LOW | website/components/__init__.py | 3 | CODE | |
| LOW | website/components/__init__.py | 3 | CODE | |
| LOW | website/components/__init__.py | 3 | CODE | |
| LOW | website/components/__init__.py | 3 | CODE | |
| LOW | website/components/__init__.py | 3 | CODE | |
| LOW | tests/test_speculative_loading.py | 1 | CODE | |
| LOW | tests/test_user_simulation.py | 868 | CODE | |
| LOW | tests/test_json.py | 15 | CODE | |
| LOW | nicegui/element_filter.py | 1 | CODE | |
| LOW | nicegui/event.py | 1 | CODE | |
| LOW | nicegui/server.py | 1 | CODE | |
| LOW | nicegui/style.py | 9 | CODE | |
| LOW | nicegui/ui.py | 298 | CODE | |
| LOW | nicegui/ui.py | 299 | CODE | |
| LOW | nicegui/ui.py | 300 | CODE | |
| LOW | nicegui/ui.py | 301 | CODE | |
| LOW | nicegui/ui.py | 302 | CODE | |
| LOW | nicegui/ui.py | 303 | CODE | |
| LOW | nicegui/ui.py | 304 | CODE | |
| LOW | nicegui/ui.py | 305 | CODE | |
| LOW | nicegui/ui.py | 306 | CODE | |
| 324 more matches not shown… | ||||
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| HIGH | website/search.py | 56 | if (e.key === '/' || (e.key === 'k' && (e.ctrlKey || e.metaKey))) { | CODE |
| HIGH | website/documentation/content/navigate_documentation.py | 33 | ui.button('Push URL', on_click=lambda: ui.navigate.history.push('/a')) | STRING |
| HIGH | website/documentation/content/keyboard_documentation.py | 43 | if (e.key === 'a' && (e.ctrlKey || e.metaKey) && e.action === 'keydown') { | CODE |
| HIGH | …/documentation/content/element_filter_documentation.py | 79 | log.push(f'{time.strftime("%H:%M:%S")}') | STRING |
| HIGH | website/documentation/content/log_documentation.py | 11 | ui.button('Log time', on_click=lambda: log.push(datetime.now().strftime('%X.%f')[:-5])) | CODE |
| HIGH | website/documentation/content/log_documentation.py | 35 | self.element.push(msg) | STRING |
| HIGH⚡ | website/documentation/content/log_documentation.py | 65 | ui.button('Normal', on_click=lambda: log.push('Text')) | STRING |
| HIGH⚡ | website/documentation/content/log_documentation.py | 66 | ui.button('Debug', on_click=lambda: log.push('Debug', classes='text-grey')) | STRING |
| HIGH⚡ | website/documentation/content/log_documentation.py | 67 | ui.button('Info', on_click=lambda: log.push('Info', classes='text-blue')) | STRING |
| HIGH⚡ | website/documentation/content/log_documentation.py | 68 | ui.button('Warning', on_click=lambda: log.push('Warning', classes='text-orange')) | STRING |
| HIGH⚡ | website/documentation/content/log_documentation.py | 69 | ui.button('Error', on_click=lambda: log.push('Error', classes='text-red')) | STRING |
| HIGH | …bsite/documentation/content/line_plot_documentation.py | 19 | line_plot.push([now], [[y1], [y2]], y_limits=(-1.5, 1.5)) | CODE |
| HIGH⚡ | tests/test_skip_link.py | 13 | return rect.top >= 0 && rect.bottom <= (window.innerHeight || document.documentElement.clientHeight) && | CODE |
| HIGH⚡ | tests/test_skip_link.py | 13 | return rect.top >= 0 && rect.bottom <= (window.innerHeight || document.documentElement.clientHeight) && | CODE |
| HIGH⚡ | tests/test_skip_link.py | 14 | rect.left >= 0 && rect.right <= (window.innerWidth || document.documentElement.clientWidth); | CODE |
| HIGH⚡ | tests/test_skip_link.py | 14 | rect.left >= 0 && rect.right <= (window.innerWidth || document.documentElement.clientWidth); | CODE |
| HIGH | tests/test_codemirror_decorations.py | 67 | 'return !!(w && w.querySelector("b"));' | CODE |
| HIGH | tests/test_codemirror_decorations.py | 407 | f'const s = document.querySelector(".cm-content span.{css_class}"); return s ? s.textContent : null;') | CODE |
| HIGH | tests/test_scene_objects.py | 34 | screen.wait_for_js(f'(() => {{ const o = {lookup}; return o ? ({expression}) : null; }})()', expected, timeout=5.0) | CODE |
| HIGH⚡ | tests/test_navigate.py | 78 | 'window.open = (url, target) => window.__open_calls.push([url, target]);') | CODE |
| HIGH⚡ | tests/test_navigate.py | 87 | ui.button('Push', on_click=lambda: ui.navigate.history.push('/");console.log("XSS");//')) | CODE |
| HIGH⚡ | tests/test_line_plot.py | 9 | plot.push([], [[]]) | CODE |
| HIGH⚡ | tests/test_line_plot.py | 10 | plot.push([1], [[]]) | CODE |
| HIGH⚡ | tests/test_log.py | 12 | log.push('A') | CODE |
| HIGH⚡ | tests/test_log.py | 13 | log.push('B') | CODE |
| HIGH⚡ | tests/test_log.py | 14 | log.push('C') | CODE |
| HIGH⚡ | tests/test_log.py | 15 | log.push('D') | CODE |
| HIGH⚡ | tests/test_log.py | 32 | log.push('A') | CODE |
| HIGH⚡ | tests/test_log.py | 33 | log.push('B') | CODE |
| HIGH⚡ | tests/test_log.py | 34 | log.push('C\nD') | CODE |
| HIGH⚡ | tests/test_log.py | 63 | log.push('50%') | CODE |
| HIGH⚡ | tests/test_log.py | 64 | ui.button('push', on_click=lambda: log.push('100%')) | CODE |
| HIGH⚡ | tests/test_log.py | 81 | log.push('Log line', classes='text-green', style='margin: 2rem', props='my-prop=B') | CODE |
| HIGH⚡ | tests/test_scene.py | 287 | child_geometry: child ? child.geometry.type : null, | CODE |
| HIGH⚡ | tests/test_scene.py | 288 | edge_count: (child && child.geometry.attributes.position) ? child.geometry.attributes.position.count : 0, | CODE |
| HIGH⚡ | tests/test_scene.py | 289 | child_color: (child && child.material) ? child.material.color.getHexString() : null, | CODE |
| HIGH⚡ | tests/test_scene.py | 289 | child_color: (child && child.material) ? child.material.color.getHexString() : null, | CODE |
| HIGH | nicegui/native/native_mode.py | 96 | if (e.dataTransfer && e.dataTransfer.types.indexOf("Files") >= 0) e.preventDefault(); | CODE |
| HIGH | nicegui/testing/screen.py | 200 | js = 'return arguments[0].naturalWidth > 0 && arguments[0].naturalHeight > 0' | CODE |
| HIGH⚡ | nicegui/testing/screen.py | 290 | let lastId = window.nextMessageId || 0; | CODE |
| HIGH⚡ | nicegui/testing/screen.py | 293 | const currentId = window.nextMessageId || 0; | CODE |
| HIGH⚡ | nicegui/testing/screen.py | 298 | if (Date.now() - stableSince >= 100 || Date.now() >= deadline) {{ | CODE |
| HIGH | nicegui/elements/skip_link.py | 57 | if (el === null) return; | CODE |
| HIGH | nicegui/elements/aggrid/aggrid.py | 314 | getElement({self.id}).api.{API_METHODS[method]}(node => rowData.push(node.data)); | CODE |
| HIGH | examples/pyserial/main.py | 19 | log.push(line.decode()) | CODE |
| HIGH | examples/zeromq/main.py | 22 | number_received.subscribe(lambda number: line_plot.push([datetime.now()], [[number]])) | CODE |
| HIGH | examples/descope_auth/user.py | 87 | token = await ui.run_javascript('return sessionToken && !sdk.isJwtExpired(sessionToken) ? sessionToken : null;') | STRING |
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| HIGH | website/documentation/content/input_documentation.py | 0 | the `clearable` prop from [quasar](https://quasar.dev/) adds a button to the input that clears the text. | STRING |
| HIGH | website/documentation/content/textarea_documentation.py | 0 | the `clearable` prop from [quasar](https://quasar.dev/) adds a button to the input that clears the text. | STRING |
| HIGH | website/documentation/content/number_documentation.py | 0 | the `clearable` prop from [quasar](https://quasar.dev/) adds a button to the input that clears the text. | STRING |
| HIGH | nicegui/element_filter.py | 0 | apply, remove, toggle, or replace html classes. this allows modifying the look of the element or its layout using `tailw | STRING |
| HIGH | nicegui/classes.py | 0 | apply, remove, toggle, or replace html classes. this allows modifying the look of the element or its layout using `tailw | STRING |
| HIGH | nicegui/elements/query.py | 0 | apply, remove, toggle, or replace html classes. this allows modifying the look of the element or its layout using `tailw | STRING |
| HIGH | nicegui/element_filter.py | 0 | apply, remove, or replace css definitions. removing or replacing styles can be helpful if the predefined style is not de | STRING |
| HIGH | nicegui/style.py | 0 | apply, remove, or replace css definitions. removing or replacing styles can be helpful if the predefined style is not de | STRING |
| HIGH | nicegui/elements/query.py | 0 | apply, remove, or replace css definitions. removing or replacing styles can be helpful if the predefined style is not de | STRING |
| HIGH | nicegui/element_filter.py | 0 | add or remove props. this allows modifying the look of the element or its layout using `quasar <https://quasar.dev/>`_ p | STRING |
| HIGH | nicegui/props.py | 0 | add or remove props. this allows modifying the look of the element or its layout using `quasar <https://quasar.dev/>`_ p | STRING |
| HIGH | nicegui/elements/query.py | 0 | add or remove props. this allows modifying the look of the element or its layout using `quasar <https://quasar.dev/>`_ p | STRING |
| HIGH | nicegui/elements/tree.py | 0 | add a callback to be invoked when the selection state changes. | STRING |
| HIGH | nicegui/elements/table.py | 0 | add a callback to be invoked when the selection state changes. | STRING |
| HIGH | nicegui/elements/mixins/selectable_element.py | 0 | add a callback to be invoked when the selection state changes. | STRING |
| HIGH | nicegui/elements/mixins/icon_element.py | 0 | bind the text color of this element to the target object's target_name property. the binding works both ways, from this | STRING |
| HIGH | nicegui/elements/mixins/value_element.py | 0 | bind the text color of this element to the target object's target_name property. the binding works both ways, from this | STRING |
| HIGH | nicegui/elements/mixins/filter_element.py | 0 | bind the text color of this element to the target object's target_name property. the binding works both ways, from this | STRING |
| HIGH | nicegui/elements/mixins/source_element.py | 0 | bind the text color of this element to the target object's target_name property. the binding works both ways, from this | STRING |
| HIGH | nicegui/elements/mixins/label_element.py | 0 | bind the text color of this element to the target object's target_name property. the binding works both ways, from this | STRING |
| HIGH | nicegui/elements/mixins/text_element.py | 0 | bind the text color of this element to the target object's target_name property. the binding works both ways, from this | STRING |
| HIGH | nicegui/elements/mixins/content_element.py | 0 | bind the text color of this element to the target object's target_name property. the binding works both ways, from this | STRING |
| HIGH | nicegui/elements/mixins/visibility.py | 0 | bind the text color of this element to the target object's target_name property. the binding works both ways, from this | STRING |
| HIGH | nicegui/elements/mixins/disableable_element.py | 0 | bind the text color of this element to the target object's target_name property. the binding works both ways, from this | STRING |
| HIGH | nicegui/elements/mixins/selectable_element.py | 0 | bind the text color of this element to the target object's target_name property. the binding works both ways, from this | STRING |
| HIGH | nicegui/elements/mixins/name_element.py | 0 | bind the text color of this element to the target object's target_name property. the binding works both ways, from this | STRING |
| HIGH | nicegui/elements/mixins/color_elements.py | 0 | bind the text color of this element to the target object's target_name property. the binding works both ways, from this | STRING |
| HIGH | nicegui/elements/leaflet/leaflet.py | 0 | wait until the scene is initialized. *updated in version 3.17.0: awaiting scene view initialization cancels the awaiting | STRING |
| HIGH | nicegui/elements/scene/scene.py | 0 | wait until the scene is initialized. *updated in version 3.17.0: awaiting scene view initialization cancels the awaiting | STRING |
| HIGH | nicegui/elements/scene/scene_view.py | 0 | wait until the scene is initialized. *updated in version 3.17.0: awaiting scene view initialization cancels the awaiting | STRING |
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| HIGH | …te/documentation/content/section_styling_appearance.py | 71 | except ValueError: | CODE |
| HIGH | …te/documentation/content/section_styling_appearance.py | 85 | except ValueError: | CODE |
| HIGH | …te/documentation/content/section_styling_appearance.py | 94 | except ValueError: | CODE |
| HIGH | tests/test_json.py | 16 | except ImportError: | CODE |
| HIGH | nicegui/run.py | 123 | except asyncio.CancelledError: | CODE |
| HIGH | nicegui/background_tasks.py | 219 | except asyncio.CancelledError: | CODE |
| HIGH | nicegui/optional_features.py | 31 | except (ModuleNotFoundError, ValueError): | CODE |
| HIGH | nicegui/page.py | 131 | except asyncio.CancelledError: | CODE |
| HIGH | nicegui/native/native_mode.py | 90 | except OSError: | CODE |
| HIGH | nicegui/testing/screen.py | 168 | except JavascriptException: | CODE |
| HIGH | nicegui/testing/screen.py | 191 | except StaleElementReferenceException: | CODE |
| HIGH | nicegui/testing/screen.py | 149 | except StaleElementReferenceException: | CODE |
| HIGH | nicegui/persistence/redis_persistent_dict.py | 83 | except asyncio.CancelledError: | CODE |
| HIGH | examples/xterm/main.py | 39 | except OSError: | CODE |
| HIGH | examples/xterm/main.py | 57 | except ChildProcessError: | CODE |
| HIGH | examples/threaded_nicegui/main.py | 39 | except (EOFError, KeyboardInterrupt): | CODE |
| HIGH | examples/ros2/ros2_ws/src/gui/gui/node.py | 77 | except ExternalShutdownException: | CODE |
| HIGH | examples/infinite_scroll/main.py | 13 | except TimeoutError: | CODE |
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| CRITICAL | main.py | 168 | base_path = ui.context.client.request.url.path.removeprefix(f'/{language}') or '/' | STRING |
| CRITICAL | tests/test_reconnect.py | 35 | screen.selenium.execute_script('window.socket.io.engine.transport.onClose("transport close");') # drop connection | CODE |
| CRITICAL | tests/test_reconnect.py | 53 | screen.selenium.execute_script('window.socket.io.engine.transport.onClose("transport close");') | CODE |
| CRITICAL | tests/test_reconnect.py | 72 | 'window.socket.io.engine.transport.onClose("transport close");') | CODE |
| CRITICAL | nicegui/elements/drawer.py | 57 | page_container_index = self.client.layout.default_slot.children.index(self.client.page_container) | CODE |
| CRITICAL | nicegui/static/unocss/preset-mini.global.js | 10 | `?i=!0:u!=="\r"&&i&&(i=!1,a===l.start||(this._splitChunk(l,a),l=l.next),l.prependRight(t))}a+=1}a=l.end,l=l.next}return | CODE |
| CRITICAL | nicegui/static/unocss/preset-wind4.global.js | 10 | `?i=!0:f!=="\r"&&i&&(i=!1,s===c.start||(this._splitChunk(c,s),c=c.next),c.prependRight(t))}s+=1}s=c.end,c=c.next}return | CODE |
| CRITICAL | nicegui/static/unocss/preset-wind3.global.js | 10 | `?i=!0:u!=="\r"&&i&&(i=!1,s===l.start||(this._splitChunk(l,s),l=l.next),l.prependRight(e))}s+=1}s=l.end,l=l.next}return | CODE |
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| LOW | main.py | 127 | def update_tree() -> None: | CODE |
| LOW | website/__init__.py | 3 | __all__ = [ | CODE |
| LOW | website/search.py | 90 | def _update_highlight(self) -> None: | STRING |
| LOW | website/i18n.py | 26 | def set_language(language: str) -> None: | CODE |
| LOW | website/documentation/__init__.py | 8 | __all__ = [ | CODE |
| LOW | website/documentation/content/__init__.py | 4 | __all__ = [ | CODE |
| LOW | website/documentation/content/scene_documentation.py | 344 | def update_topology(self, p: int, q: int) -> None: | STRING |
| LOW | …bsite/documentation/content/line_plot_documentation.py | 14 | def update_line_plot() -> None: | CODE |
| LOW | …te/documentation/content/context_menu_documentation.py | 21 | def update_context_menu() -> None: | STRING |
| LOW | …te/documentation/content/context_menu_documentation.py | 24 | def update_menu(e: events.MouseEventArguments) -> None: | STRING |
| LOW | website/documentation/content/query_documentation.py | 8 | def set_background(color: str) -> None: | CODE |
| LOW | website/documentation/content/doc/__init__.py | 16 | __all__ = [ | CODE |
| LOW | website/components/__init__.py | 16 | __all__ = [ | CODE |
| LOW | tests/test_scene_custom_types.py | 17 | def set_value(self, value: int) -> None: | CODE |
| LOW | nicegui/ui.py | 152 | __all__ = [ | CODE |
| LOW | nicegui/__init__.py | 12 | __all__ = [ | CODE |
| LOW | nicegui/props.py | 67 | def set_optional(self, key: str, value: Any) -> None: | STRING |
| LOW | nicegui/props.py | 74 | def set_bool(self, key: str, value: Any) -> None: | STRING |
| LOW | nicegui/binding.py | 50 | def _set_attribute(obj: object | Mapping, name: tuple[str, ...], value: Any) -> None: | CODE |
| LOW | nicegui/outbox.py | 58 | def _set_enqueue_event(self) -> None: | CODE |
| LOW | nicegui/app/__init__.py | 4 | __all__ = [ | CODE |
| LOW | nicegui/native/__init__.py | 5 | __all__ = [ | CODE |
| LOW | nicegui/native/native.py | 46 | def set_always_on_top(self, on_top: bool) -> None: | CODE |
| LOW | nicegui/native/native.py | 67 | def set_title(self, title: str) -> None: | CODE |
| LOW | nicegui/native/native.py | 85 | def set_window_size(self, width: int, height: int) -> None: | CODE |
| LOW | nicegui/testing/__init__.py | 13 | __all__ = [ | CODE |
| LOW | nicegui/elements/interactive_image.py | 105 | def _set_props(self, source: str | Path | PIL_Image) -> None: | CODE |
| LOW | nicegui/elements/interactive_image.py | 162 | def _set_props(self, source: str | Path | PIL_Image) -> None: | CODE |
| LOW | nicegui/elements/tree.py | 63 | def update_prop(name: str, value: Any) -> None: | CODE |
| LOW | nicegui/elements/code.py | 48 | def _update_copy_button(self) -> None: | CODE |
| LOW | nicegui/elements/sub_pages.py | 135 | def _set_match(self, match: RouteMatch | None) -> None: | CODE |
| LOW | nicegui/elements/table.py | 438 | def update_rows(self, rows: list[dict], *, clear_selection: bool = True) -> None: | STRING |
| LOW | nicegui/elements/color_input.py | 62 | def _update_preview(self) -> None: | CODE |
| LOW | nicegui/elements/image.py | 35 | def _set_props(self, source: str | Path | PIL_Image) -> None: | CODE |
| LOW⚡ | nicegui/elements/choice_element.py | 41 | def _update_values_and_labels(self) -> None: | CODE |
| LOW⚡ | nicegui/elements/choice_element.py | 45 | def _update_options(self) -> None: | CODE |
| LOW | nicegui/elements/codemirror/line_anchors.py | 83 | def _update_anchor_mirror(self, e: GenericEventArguments) -> None: | CODE |
| LOW | nicegui/elements/codemirror/__init__.py | 6 | __all__ = ['CodeMirror'] | CODE |
| LOW | nicegui/elements/codemirror/codemirror.py | 224 | def _update_codepoints(self) -> None: | CODE |
| LOW | nicegui/elements/xterm/__init__.py | 6 | __all__ = ['Xterm'] | CODE |
| LOW | nicegui/elements/json_editor/__init__.py | 6 | __all__ = ['JsonEditor'] | CODE |
| LOW | nicegui/elements/echart/__init__.py | 6 | __all__ = ['EChart'] | CODE |
| LOW | nicegui/elements/mixins/source_element.py | 109 | def _set_props(self, source: Any) -> None: | CODE |
| LOW | nicegui/elements/anywidget/__init__.py | 3 | __all__ = ['AnyWidget'] | CODE |
| LOW | nicegui/elements/plotly/__init__.py | 6 | __all__ = ['Plotly'] | CODE |
| LOW | nicegui/elements/leaflet/__init__.py | 6 | __all__ = ['Leaflet'] | CODE |
| LOW | nicegui/elements/aggrid/aggrid.py | 331 | def set_module_source(url: str) -> None: | STRING |
| LOW | nicegui/elements/aggrid/__init__.py | 6 | __all__ = ['AgGrid'] | CODE |
| LOW | nicegui/elements/mermaid/__init__.py | 6 | __all__ = ['Mermaid'] | CODE |
| LOW | nicegui/elements/joystick/__init__.py | 6 | __all__ = ['Joystick'] | CODE |
| LOW | nicegui/elements/scene/scene_objects.py | 23 | __all__ = [ | CODE |
| LOW | nicegui/elements/scene/__init__.py | 12 | __all__ = ['Object3D', 'Scene', 'SceneCamera', 'SceneObject', 'SceneView'] | CODE |
| LOW | nicegui/elements/scene/objects/__init__.py | 20 | __all__ = [ | CODE |
| LOW | nicegui/elements/sortable/__init__.py | 6 | __all__ = ['Sortable'] | CODE |
| LOW | nicegui/json/__init__.py | 17 | __all__ = [ | CODE |
| LOW | nicegui/persistence/__init__.py | 6 | __all__ = [ | CODE |
| LOW | nicegui/functions/refreshable.py | 166 | def set_value(new_value: Any) -> None: | CODE |
| LOW | nicegui/helpers/__init__.py | 17 | __all__ = [ | CODE |
| LOW | examples/ros2/ros2_ws/src/simulator/simulator/node.py | 24 | def update_pose(self) -> None: | CODE |
| LOW | examples/local_file_picker/local_file_picker.py | 50 | def update_grid(self) -> None: | CODE |
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| LOW | website/header.py | 60 | CODE | |
| LOW | website/search.py | 62 | CODE | |
| LOW | website/search.py | 63 | CODE | |
| LOW | website/documentation/rendering.py | 10 | CODE | |
| LOW | website/documentation/reference.py | 20 | CODE | |
| LOW | website/documentation/reference.py | 58 | CODE | |
| LOW | website/documentation/windows.py | 17 | CODE | |
| LOW | website/documentation/windows.py | 44 | CODE | |
| LOW | website/documentation/content/section_foundations.py | 151 | CODE | |
| LOW | website/documentation/content/menu_documentation.py | 35 | CODE | |
| LOW | website/documentation/content/keyboard_documentation.py | 7 | CODE | |
| LOW | website/documentation/content/keyboard_documentation.py | 10 | CODE | |
| LOW | website/documentation/content/stepper_documentation.py | 28 | CODE | |
| LOW | website/documentation/content/stepper_documentation.py | 29 | CODE | |
| LOW | …site/documentation/content/slide_item_documentation.py | 20 | CODE | |
| LOW | website/documentation/content/date_documentation.py | 25 | CODE | |
| LOW | website/documentation/content/sortable_documentation.py | 30 | CODE | |
| LOW | website/documentation/content/time_documentation.py | 25 | CODE | |
| LOW | …te/documentation/content/section_styling_appearance.py | 43 | CODE | |
| LOW | …te/documentation/content/section_styling_appearance.py | 56 | CODE | |
| LOW | website/documentation/content/tabs_documentation.py | 64 | CODE | |
| LOW | website/components/sponsors_section.py | 12 | CODE | |
| LOW | website/components/footer_section.py | 10 | CODE | |
| LOW | website/components/examples_section.py | 11 | CODE | |
| LOW | website/components/demos_section.py | 12 | CODE | |
| LOW | tests/test_keep_alive.py | 92 | CODE | |
| LOW | tests/test_keep_alive.py | 94 | CODE | |
| LOW | tests/test_select.py | 112 | CODE | |
| LOW | tests/test_storage.py | 513 | CODE | |
| LOW | tests/test_endpoint_docs.py | 9 | CODE | |
| LOW | nicegui/timer.py | 84 | CODE | |
| LOW | nicegui/client.py | 497 | CODE | |
| LOW | nicegui/page_arguments.py | 68 | CODE | |
| LOW | nicegui/page.py | 123 | CODE | |
| LOW | nicegui/page.py | 139 | CODE | |
| LOW | nicegui/outbox.py | 81 | CODE | |
| LOW | nicegui/dependencies.py | 127 | CODE | |
| LOW | nicegui/native/native_mode.py | 116 | CODE | |
| LOW | nicegui/native/native_mode.py | 128 | CODE | |
| LOW | nicegui/testing/screen.py | 139 | CODE | |
| LOW | nicegui/testing/screen.py | 183 | CODE | |
| LOW | nicegui/testing/screen.py | 232 | CODE | |
| LOW | nicegui/testing/user_interaction.py | 31 | CODE | |
| LOW | nicegui/testing/user_interaction.py | 58 | CODE | |
| LOW | nicegui/testing/user_interaction.py | 77 | CODE | |
| LOW | nicegui/testing/user_simulation.py | 18 | CODE | |
| LOW | nicegui/testing/screen_plugin.py | 101 | CODE | |
| LOW | nicegui/testing/general.py | 35 | CODE | |
| LOW | nicegui/elements/select.py | 94 | CODE | |
| LOW | nicegui/elements/select.py | 147 | CODE | |
| LOW | nicegui/elements/line_plot.py | 47 | CODE | |
| LOW | nicegui/elements/echart/echart.py | 111 | CODE | |
| LOW | nicegui/persistence/redis_persistent_dict.py | 68 | CODE | |
| LOW | nicegui/persistence/redis_persistent_dict.py | 69 | CODE | |
| LOW | examples/ros2/ros2_ws/src/gui/gui/node.py | 15 | CODE | |
| LOW | examples/ros2/ros2_ws/src/gui/gui/node.py | 24 | CODE |
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| LOW | deploy.py | 60 | except Exception: | CODE |
| LOW | website/documentation/content/section_action_events.py | 270 | except Exception as e: # HIDE | STRING |
| LOW | website/documentation/content/event_documentation.py | 49 | except Exception as e: | STRING |
| LOW | website/documentation/content/log_documentation.py | 36 | except Exception: | STRING |
| LOW | tests/test_event.py | 171 | except Exception: | CODE |
| MEDIUM | tests/test_event.py | 168 | def click(): | CODE |
| LOW | nicegui/run.py | 109 | except Exception as e: | CODE |
| LOW | nicegui/event.py | 166 | except Exception as e: | CODE |
| LOW | nicegui/background_tasks.py | 204 | except Exception as e: | CODE |
| LOW | nicegui/background_tasks.py | 221 | except Exception as e: | CODE |
| LOW | nicegui/background_tasks.py | 241 | except Exception: | CODE |
| LOW | nicegui/events.py | 505 | except Exception as e: | CODE |
| LOW | nicegui/timer.py | 101 | except Exception as e: | CODE |
| LOW | nicegui/timer.py | 114 | except Exception as e: | CODE |
| LOW | nicegui/client.py | 479 | except Exception as e: | CODE |
| LOW | nicegui/client.py | 509 | except Exception: # one failing handler must not prevent the others from running | CODE |
| LOW | nicegui/client.py | 561 | except Exception: | CODE |
| LOW | nicegui/page.py | 136 | except Exception as e: | CODE |
| LOW | nicegui/page.py | 179 | except Exception as e: | CODE |
| LOW | nicegui/page.py | 187 | except Exception as e: | CODE |
| LOW | nicegui/slot.py | 74 | except Exception: | CODE |
| LOW | nicegui/core.py | 55 | except Exception: | CODE |
| LOW | nicegui/element.py | 143 | except Exception: | CODE |
| LOW | nicegui/air.py | 118 | except Exception: | CODE |
| LOW | nicegui/air.py | 234 | except Exception: | CODE |
| LOW | nicegui/air.py | 252 | except Exception: | CODE |
| LOW | nicegui/outbox.py | 130 | except Exception as e: | CODE |
| LOW | nicegui/outbox.py | 134 | except Exception as e: | CODE |
| LOW | nicegui/app/app.py | 115 | except Exception as e: | CODE |
| LOW | nicegui/app/app.py | 192 | except Exception: # one failing handler must not prevent the others from running | CODE |
| LOW | nicegui/native/native.py | 150 | except Exception: | CODE |
| LOW | nicegui/native/native_mode.py | 125 | except Exception: | STRING |
| LOW | nicegui/native/native_mode.py | 155 | except Exception: | STRING |
| LOW | nicegui/native/native_mode.py | 213 | except Exception: # pylint: disable=broad-except | STRING |
| LOW | nicegui/testing/screen.py | 64 | except Exception as e: | CODE |
| LOW | nicegui/testing/screen.py | 94 | except Exception as e: | CODE |
| LOW | nicegui/testing/screen_plugin.py | 90 | except Exception: | CODE |
| LOW | nicegui/elements/sub_pages.py | 113 | except Exception as e: | CODE |
| LOW⚡ | nicegui/persistence/redis_persistent_dict.py | 46 | except Exception: | CODE |
| LOW⚡ | nicegui/persistence/redis_persistent_dict.py | 55 | except Exception: | CODE |
| LOW⚡ | nicegui/persistence/redis_persistent_dict.py | 65 | except Exception: | CODE |
| LOW | nicegui/persistence/redis_persistent_dict.py | 85 | except Exception: | CODE |
| MEDIUM | nicegui/persistence/redis_persistent_dict.py | 69 | def listen(): | CODE |
| LOW | nicegui/persistence/file_persistent_dict.py | 28 | except Exception: | CODE |
| LOW | nicegui/persistence/file_persistent_dict.py | 38 | except Exception: | CODE |
| MEDIUM | nicegui/persistence/file_persistent_dict.py | 20 | def initialize(self) -> None: | CODE |
| MEDIUM | nicegui/persistence/file_persistent_dict.py | 31 | def initialize_sync(self) -> None: | CODE |
| LOW | nicegui/helpers/network.py | 14 | except Exception: | CODE |
| LOW | examples/google_one_tap_auth/main.py | 62 | except Exception: | STRING |
| LOW | examples/google_oauth2/main.py | 65 | except Exception: | CODE |
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| LOW | nicegui/page.py | 25 | CODE | |
| LOW | nicegui/ui_run.py | 50 | CODE | |
| LOW | nicegui/ui_run_with.py | 22 | CODE | |
| LOW | nicegui/app/app.py | 355 | CODE | |
| LOW | nicegui/elements/timeline.py | 34 | CODE | |
| LOW | nicegui/elements/upload.py | 21 | CODE | |
| LOW | nicegui/elements/skeleton.py | 10 | CODE | |
| LOW | nicegui/elements/chip.py | 17 | CODE | |
| LOW | nicegui/elements/notification.py | 32 | CODE | |
| LOW | nicegui/elements/rating.py | 10 | CODE | |
| LOW | nicegui/elements/number.py | 14 | CODE | |
| LOW | nicegui/elements/chat_message.py | 13 | CODE | |
| LOW | nicegui/elements/button_dropdown.py | 15 | CODE | |
| LOW | nicegui/elements/input.py | 18 | CODE | |
| LOW | nicegui/elements/knob.py | 12 | CODE | |
| LOW | nicegui/elements/table.py | 30 | CODE | |
| LOW | nicegui/elements/select.py | 16 | CODE | |
| LOW | nicegui/elements/colors.py | 9 | CODE | |
| LOW | nicegui/elements/codemirror/codemirror.py | 37 | CODE | |
| LOW | nicegui/elements/scene/scene.py | 66 | CODE | |
| LOW | nicegui/elements/scene/scene.py | 268 | CODE | |
| LOW | nicegui/elements/scene/scene_view.py | 106 | CODE |
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| LOW | website/documentation/content/notify_documentation.py | 27 | 'Lorem ipsum dolor sit amet, consectetur adipisicing elit. \n' | STRING |
| LOW | website/documentation/content/notify_documentation.py | 27 | 'Lorem ipsum dolor sit amet, consectetur adipisicing elit. \n' | STRING |
| LOW | website/documentation/content/card_documentation.py | 11 | ui.label('Lorem ipsum dolor sit amet, consectetur adipiscing elit, ...') | CODE |
| LOW | website/documentation/content/card_documentation.py | 11 | ui.label('Lorem ipsum dolor sit amet, consectetur adipiscing elit, ...') | CODE |
| LOW | …te/documentation/content/section_binding_properties.py | 50 | i = ui.input(value='Lorem ipsum') | STRING |
| LOW | website/documentation/content/link_documentation.py | 20 | 'A: Lorem ipsum dolor sit amet, consectetur adipiscing elit, ' | STRING |
| LOW | website/documentation/content/link_documentation.py | 20 | 'A: Lorem ipsum dolor sit amet, consectetur adipiscing elit, ' | STRING |
| LOW | tests/test_input.py | 15 | ui.input('Your name', value='John Doe') | CODE |
| LOW | tests/test_input.py | 21 | assert element.get_attribute('value') == 'John Doe' | CODE |
| LOW⚡ | tests/test_sub_pages_match_path.py | 104 | assert ui.sub_pages._match_path('/user/{id}', '/user/user@example.com') == {'id': 'user@example.com'} | CODE |
| LOW | nicegui/element.py | 261 | return [self._props.get(key) for key in ('text', 'label', 'icon', 'placeholder', 'error-message')] | CODE |
| LOW | nicegui/elements/number.py | 55 | self._props.set_optional('placeholder', placeholder) | CODE |
| LOW | nicegui/elements/time_input.py | 34 | self._props.set_optional('placeholder', placeholder) | CODE |
| LOW | nicegui/elements/date_input.py | 37 | self._props.set_optional('placeholder', placeholder) | CODE |
| LOW | nicegui/elements/input.py | 63 | self._props.set_optional('placeholder', placeholder) | CODE |
| LOW | nicegui/elements/editor.py | 29 | self._props.set_optional('placeholder', placeholder) | CODE |
| LOW | nicegui/elements/color_input.py | 42 | self._props.set_optional('placeholder', placeholder) | CODE |
| LOW | nicegui/static/tailwindcss.min.js | 10 | `,r){o+=c.length;let m=o;o+=2+a.value.length+2;let g=o;a.dst=[e,m,g],o+=1}}else if(a.kind==="context"||a.kind==="at-root | CODE |
| LOW | nicegui/static/tailwindcss.min.js | 13 | `);console.warn(k)}}),i.value=Z(s)}),o.utilities.functional(r.slice(0,-2),i=>{let s=structuredClone(t),a=i.value,d=i.mod | CODE |
| LOW | nicegui/static/unocss/preset-mini.global.js | 10 | `?i=!0:u!=="\r"&&i&&(i=!1,a===l.start||(this._splitChunk(l,a),l=l.next),l.prependRight(t))}a+=1}a=l.end,l=l.next}return | CODE |
| LOW | nicegui/static/unocss/preset-wind4.global.js | 10 | `?i=!0:f!=="\r"&&i&&(i=!1,s===c.start||(this._splitChunk(c,s),c=c.next),c.prependRight(t))}s+=1}s=c.end,c=c.next}return | CODE |
| LOW | nicegui/static/unocss/preset-wind3.global.js | 10 | `?i=!0:u!=="\r"&&i&&(i=!1,s===l.start||(this._splitChunk(l,s),l=l.next),l.prependRight(e))}s+=1}s=l.end,l=l.next}return | CODE |
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| MEDIUM | nicegui/elements/mermaid/package-lock.json | 2001 | "resolved": "https://registry.npmjs.org/robust-predicates/-/robust-predicates-3.0.3.tgz", | CODE |
| MEDIUM | nicegui/static/quasar.umd.prod.js | 7 | (()=>{var sv=Object.defineProperty;var jr=(e,t)=>{for(var o in t)sv(e,o,{get:t[o],enumerable:!0})};var{h:i,ref:T,compute | CODE |
| MEDIUM | nicegui/static/quasar.umd.prod.js | 7 | (()=>{var sv=Object.defineProperty;var jr=(e,t)=>{for(var o in t)sv(e,o,{get:t[o],enumerable:!0})};var{h:i,ref:T,compute | CODE |
| MEDIUM | examples/fullcalendar/lib/index.global.min.js | 6 | var FullCalendar=function(e){"use strict";var t,n,r,i,s,o,a,l,c,d={},u=[],h=/acit|ex(?:s|g|n|p|$)|rph|grid|ows|mnc|ntw|i | CODE |
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| LOW | docker-entrypoint.sh | 7 | # Check if the provided PUID and PGID are non-empty, numeric values; otherwise, assign default values. | COMMENT |
| LOW | docker-entrypoint.sh | 14 | # Check if the specified group with PGID exists, if not, create it. | COMMENT |
| LOW | .github/workflows/_verify.yml | 16 | # Check if the container is still running | COMMENT |
| LOW | .github/workflows/_verify.yml | 23 | # Check if the "Error" string is present in the container output | COMMENT |
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| MEDIUM | examples/progress/main.py | 28 | # Create a queue to communicate with the heavy computation process | COMMENT |
| MEDIUM | examples/progress/main.py | 33 | # Create the UI | COMMENT |
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| MEDIUM | …ite/documentation/content/page_layout_documentation.py | 11 | [`ui.right_drawer`](page_layout#reference_for_ui_right_drawer) you can add additional layout elements to a page. | CODE |
| MEDIUM | …ite/documentation/content/page_layout_documentation.py | 22 | With [`ui.page_scroller`](page_layout#reference_for_ui_page_scroller) you can add a scroll-to-top button to the page | CODE |
| LOW | examples/fullcalendar/lib/index.global.min.js | 6 | var FullCalendar=function(e){"use strict";var t,n,r,i,s,o,a,l,c,d={},u=[],h=/acit|ex(?:s|g|n|p|$)|rph|grid|ows|mnc|ntw|i | CODE |
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| LOW | website/documentation/content/page_documentation.py | 101 | See our [modularization example](https://github.com/zauberzeug/nicegui/blob/main/examples/modularization/api_router_ | COMMENT |
| LOW | website/documentation/content/page_documentation.py | 121 | # | COMMENT |
| LOW | …bsite/documentation/content/sub_pages_documentation.py | 321 | # ui.sub_pages({ | COMMENT |
| LOW | website/documentation/content/run_documentation.py | 81 | # | COMMENT |
| LOW | .claude/skills/release-notes/release-notes.sh | 1 | #!/usr/bin/env bash | COMMENT |
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| MEDIUM | website/translations/zh.json | 2 | "**Or, let your AI do it!**\nMost LLMs already know NiceGUI.\nFor the rest, paste our [LLM reference](/llms.txt) (a | CODE |
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| LOW | .claude/skills/release-notes/release-notes.sh | 7 | # Usage: | COMMENT |
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| LOW | examples/ros2/ros2_ws/src/gui/gui/node.py | 68 | # NOTE: This function is defined as the ROS entry point in setup.py, but it's empty to enable NiceGUI auto-reloading | COMMENT |
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| LOW | tests/test_awaitable_response.py | 13 | def do_something() -> AwaitableResponse: | CODE |