Panel: The powerful data exploration & web app framework for Python
This report summarizes scanner evidence for holoviz/panel, a Python project with 5,795 GitHub stars. SynthScan examined 223,714 lines of code across 1088 source files, recording 4375 pattern matches distributed across 18 syntactic categories. The legacy adjusted pattern signal is 25.4 (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? 2625 finding(s).
Are imports declared and package/API names verified? 1032 finding(s).
Are wrappers, guards, and repeated structures necessary? 3046 finding(s).
Which changes need focused human review? 4375 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 4375 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 | panel/viewable.py | 1368 | def _is_viewable_class_selector(class_selector: param.ClassSelector) -> bool: | CODE |
| LOW | panel/compiler.py | 396 | def write_component_resources(name, component, download_list=None): | CODE |
| LOW | panel/compiler.py | 557 | def prune_unminified_duplicates(verbose=False): | CODE |
| LOW | panel/param.py | 1039 | def _update_defer_load_default(default_value): | CODE |
| LOW | panel/param.py | 1043 | def _update_loading_indicator_default(default_value): | CODE |
| LOW | panel/interact.py | 37 | def _yield_abbreviations_for_parameter(parameter, kwargs): | CODE |
| LOW | panel/interact.py | 212 | def widgets_from_abbreviations(self, seq): | CODE |
| LOW | panel/pane/plot.py | 104 | def _property_callback_wrapper(cls, cb, doc, comm, callbacks): | CODE |
| LOW | panel/pane/plot.py | 196 | def _make_matplotlib_svg_responsive(input_str): | CODE |
| LOW | panel/pane/plot.py | 201 | def _make_matplotlib_svg_not_preserve_aspect_ratio(input_str): | CODE |
| LOW | panel/pane/holoviews.py | 818 | def _update_layout_properties(self, *events): | CODE |
| LOW | panel/pane/holoviews.py | 1025 | def _hvplot_interactive_transform(obj): | CODE |
| LOW | panel/pane/vega.py | 71 | def _normalize_temporals_on_frame(df: nw.DataFrame) -> nw.DataFrame: | CODE |
| LOW | panel/chat/interface.py | 455 | def _get_last_user_entry_index(self) -> int: | CODE |
| LOW | panel/chat/interface.py | 601 | def _serialize_for_transformers( | CODE |
| LOW | panel/chat/feed.py | 1166 | def _serialize_for_transformers( | CODE |
| LOW⚡ | panel/io/server.py | 311 | def html_page_for_render_items( | CODE |
| LOW | panel/io/server.py | 171 | def _validate_token_for_resign(token: str, secret_key: bytes | None, signed: bool) -> tuple[dict[str, t.Any], str, int]: | CODE |
| LOW | panel/io/server.py | 221 | def _path_template_to_tornado_route(route: str) -> str: | CODE |
| LOW | panel/io/server.py | 378 | def server_html_page_for_session( | CODE |
| LOW | panel/io/server.py | 522 | def token_payload_for_request(app: t.Any, request: t.Any) -> TokenPayload: | CODE |
| LOW | panel/io/server.py | 673 | def resolve_component_resource(path: str) -> str: | CODE |
| LOW | panel/io/server.py | 834 | def _set_request_route_context(handler: t.Any, *args, suffix: str = '', **kwargs) -> None: | CODE |
| LOW | panel/io/jupyter_server_extension.py | 474 | def _load_jupyter_server_extension(notebook_app): | STRING |
| LOW | panel/io/loading.py | 69 | def _item_loading_css_classes(item) -> list[str]: | CODE |
| LOW | panel/io/rest.py | 92 | def build_tranquilize_application(files): | CODE |
| LOW | panel/io/rest.py | 114 | def tranquilizer_rest_provider(files, endpoint): | CODE |
| LOW | panel/io/convert.py | 198 | def collect_python_requirements( | STRING |
| LOW | panel/io/session.py | 32 | def _session_callback_removed(self, event): | CODE |
| LOW | panel/io/handlers.py | 314 | function fallbackCopyTextToClipboard(text) { | CODE |
| LOW | panel/io/handlers.py | 834 | def _update_position_metadata(self, event): | CODE |
| LOW | panel/io/handlers.py | 233 | def autoreload_handle_exception(handler, module, e): | STRING |
| LOW | panel/io/cache.py | 169 | def _polars_combine_hash_expr(columns): | CODE |
| LOW | panel/io/model.py | 182 | def apply_changes_without_dispatch(doc, model, changes): | CODE |
| LOW | panel/io/application.py | 250 | def build_single_handler_application(path: str | os.PathLike, argv=None) -> Application: | STRING |
| LOW | panel/io/admin.py | 95 | class LogDataHandler(logging.StreamHandler): | CODE |
| LOW | panel/io/document.py | 132 | def _drain_unconnected_events(doc: Document, lock: threading.Lock) -> list[DocumentChangedEvent]: | CODE |
| LOW | panel/io/document.py | 175 | def _dispatch_unconnected_events(doc: Document) -> None: | CODE |
| LOW | panel/io/document.py | 508 | def create_doc_if_none_exists(doc: Document | None) -> Document: | CODE |
| LOW | panel/io/document.py | 628 | def _suppress_property_callbacks( | STRING |
| LOW | panel/io/resources.py | 213 | def set_default_resource_mode(mode: MODES, *, notebook: bool = False): | CODE |
| LOW | panel/io/resources.py | 806 | def _collect_external_resources(self, resource_attr: ResourceAttr) -> list[str]: | CODE |
| LOW⚡ | panel/io/notebook.py | 72 | def _jupyter_server_extension_paths() -> list[dict[str, str]]: | CODE |
| LOW⚡ | panel/io/state.py | 679 | def _handle_exception_wrapper(self, callback, doc: Document | None = None): | CODE |
| LOW⚡ | panel/io/state.py | 709 | def _register_session_destroyed(self, session_context: SessionContext): | CODE |
| LOW | panel/io/django/__init__.py | 261 | def _get_args_kwargs_from_doc(doc) -> tuple[tuple[t.Any, ...], dict[str, t.Any]]: | CODE |
| LOW | panel/io/django/__init__.py | 541 | def _django_rejects_websockets(self) -> bool: | CODE |
| LOW | panel/tests/conftest.py | 187 | def pytest_collection_modifyitems(config, items): | CODE |
| LOW | panel/tests/conftest.py | 454 | def multiple_apps_server_sessions(asyncio_loop, port): | CODE |
| LOW | panel/tests/conftest.py | 650 | def exception_handler_accumulator(): | CODE |
| LOW⚡ | panel/tests/test_reactive.py | 188 | def test_pass_widget_by_reference(): | CODE |
| LOW⚡ | panel/tests/test_reactive.py | 198 | def test_pass_param_by_reference(): | CODE |
| LOW⚡ | panel/tests/test_reactive.py | 208 | def test_pass_bind_function_by_reference(): | CODE |
| LOW | panel/tests/test_reactive.py | 28 | def test_reactive_default_title(): | CODE |
| LOW | panel/tests/test_reactive.py | 34 | def test_reactive_servable_title(): | CODE |
| LOW | panel/tests/test_reactive.py | 63 | def test_link_holoviews_stream(): | CODE |
| LOW | panel/tests/test_reactive.py | 118 | def test_link_properties_server(document): | CODE |
| LOW | panel/tests/test_reactive.py | 219 | async def test_pass_bind_async_func_by_reference(): | CODE |
| LOW | panel/tests/test_reactive.py | 235 | async def test_pass_bind_async_generator_by_reference(): | CODE |
| LOW | panel/tests/test_reactive.py | 251 | async def test_pass_bind_multi_async_generator_by_reference(): | CODE |
| 2245 more matches not shown… | ||||
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| MEDIUM | pixi.toml | 264 | # ============================================= | COMMENT |
| MEDIUM | pixi.toml | 266 | # ============================================= | COMMENT |
| MEDIUM | pixi.toml | 308 | # ============================================= | COMMENT |
| MEDIUM | pixi.toml | 310 | # ============================================= | COMMENT |
| MEDIUM | pixi.toml | 327 | # ============================================= | COMMENT |
| MEDIUM | pixi.toml | 329 | # ============================================= | COMMENT |
| MEDIUM | pixi.toml | 380 | # ============================================= | COMMENT |
| MEDIUM | pixi.toml | 382 | # ============================================= | COMMENT |
| MEDIUM | pixi.toml | 406 | # ============================================= | COMMENT |
| MEDIUM | pixi.toml | 408 | # ============================================= | COMMENT |
| MEDIUM⚡ | pixi.toml | 420 | # ============================================= | COMMENT |
| MEDIUM⚡ | pixi.toml | 422 | # ============================================= | COMMENT |
| MEDIUM⚡ | pixi.toml | 430 | # ============================================= | COMMENT |
| MEDIUM⚡ | pixi.toml | 432 | # ============================================= | COMMENT |
| MEDIUM | panel/viewable.py | 393 | #---------------------------------------------------------------- | COMMENT |
| MEDIUM | panel/viewable.py | 395 | #---------------------------------------------------------------- | COMMENT |
| MEDIUM | panel/viewable.py | 1001 | #---------------------------------------------------------------- | COMMENT |
| MEDIUM | panel/viewable.py | 1003 | #---------------------------------------------------------------- | COMMENT |
| MEDIUM | panel/config.py | 40 | #--------------------------------------------------------------------- | COMMENT |
| MEDIUM | panel/config.py | 42 | #--------------------------------------------------------------------- | COMMENT |
| MEDIUM | panel/config.py | 1146 | #--------------------------------------------------------------------- | COMMENT |
| MEDIUM | panel/config.py | 1148 | #--------------------------------------------------------------------- | COMMENT |
| MEDIUM | panel/compiler.py | 238 | #--------------------------------------------------------------------- | COMMENT |
| MEDIUM | panel/compiler.py | 240 | #--------------------------------------------------------------------- | COMMENT |
| MEDIUM | panel/reactive.py | 160 | #---------------------------------------------------------------- | COMMENT |
| MEDIUM | panel/reactive.py | 162 | #---------------------------------------------------------------- | COMMENT |
| MEDIUM | panel/reactive.py | 692 | #---------------------------------------------------------------- | COMMENT |
| MEDIUM | panel/reactive.py | 694 | #---------------------------------------------------------------- | COMMENT |
| MEDIUM | panel/reactive.py | 751 | #---------------------------------------------------------------- | COMMENT |
| MEDIUM | panel/reactive.py | 753 | #---------------------------------------------------------------- | COMMENT |
| MEDIUM | panel/param.py | 314 | #---------------------------------------------------------------- | COMMENT |
| MEDIUM | panel/param.py | 316 | #---------------------------------------------------------------- | COMMENT |
| MEDIUM | panel/param.py | 755 | #---------------------------------------------------------------- | COMMENT |
| MEDIUM | panel/param.py | 757 | #---------------------------------------------------------------- | COMMENT |
| MEDIUM | panel/param.py | 805 | #---------------------------------------------------------------- | COMMENT |
| MEDIUM | panel/param.py | 807 | #---------------------------------------------------------------- | COMMENT |
| MEDIUM | panel/param.py | 905 | #---------------------------------------------------------------- | COMMENT |
| MEDIUM | panel/param.py | 907 | #---------------------------------------------------------------- | COMMENT |
| MEDIUM | panel/param.py | 1117 | #---------------------------------------------------------------- | COMMENT |
| MEDIUM | panel/param.py | 1119 | #---------------------------------------------------------------- | COMMENT |
| MEDIUM | panel/param.py | 1159 | #---------------------------------------------------------------- | COMMENT |
| MEDIUM | panel/param.py | 1161 | #---------------------------------------------------------------- | COMMENT |
| MEDIUM | panel/pipeline.py | 529 | #---------------------------------------------------------------- | COMMENT |
| MEDIUM | panel/pipeline.py | 531 | #---------------------------------------------------------------- | COMMENT |
| MEDIUM | panel/interact.py | 122 | #---------------------------------------------------------------- | COMMENT |
| MEDIUM | panel/interact.py | 124 | #---------------------------------------------------------------- | COMMENT |
| MEDIUM | panel/interact.py | 140 | #---------------------------------------------------------------- | COMMENT |
| MEDIUM | panel/interact.py | 142 | #---------------------------------------------------------------- | COMMENT |
| MEDIUM | panel/interact.py | 182 | #---------------------------------------------------------------- | COMMENT |
| MEDIUM | panel/interact.py | 184 | #---------------------------------------------------------------- | COMMENT |
| MEDIUM | panel/pane/streamz.py | 73 | #---------------------------------------------------------------- | COMMENT |
| MEDIUM | panel/pane/streamz.py | 75 | #---------------------------------------------------------------- | COMMENT |
| MEDIUM | panel/pane/holoviews.py | 276 | #---------------------------------------------------------------- | COMMENT |
| MEDIUM | panel/pane/holoviews.py | 278 | #---------------------------------------------------------------- | COMMENT |
| MEDIUM | panel/pane/holoviews.py | 471 | #---------------------------------------------------------------- | COMMENT |
| MEDIUM | panel/pane/holoviews.py | 473 | #---------------------------------------------------------------- | COMMENT |
| MEDIUM | panel/pane/holoviews.py | 603 | #---------------------------------------------------------------- | COMMENT |
| MEDIUM | panel/pane/holoviews.py | 605 | #---------------------------------------------------------------- | COMMENT |
| MEDIUM | panel/pane/base.py | 328 | #---------------------------------------------------------------- | COMMENT |
| MEDIUM | panel/pane/base.py | 330 | #---------------------------------------------------------------- | COMMENT |
| 207 more matches not shown… | ||||
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| LOW | hatch_build.py | 1 | CODE | |
| LOW | panel/_param.py | 1 | CODE | |
| LOW | panel/viewable.py | 11 | CODE | |
| LOW | panel/config.py | 6 | CODE | |
| LOW | panel/config.py | 977 | CODE | |
| LOW | panel/config.py | 1065 | CODE | |
| LOW | panel/config.py | 1078 | CODE | |
| LOW | panel/custom.py | 1 | CODE | |
| LOW | panel/custom.py | 35 | CODE | |
| LOW | panel/custom.py | 36 | CODE | |
| LOW | panel/custom.py | 41 | CODE | |
| LOW | panel/custom.py | 44 | CODE | |
| LOW | panel/reactive.py | 6 | CODE | |
| LOW | panel/depends.py | 1 | CODE | |
| LOW | panel/depends.py | 2 | CODE | |
| LOW | panel/__init__.py | 50 | CODE | |
| LOW | panel/__init__.py | 52 | CODE | |
| LOW | panel/__init__.py | 53 | CODE | |
| LOW | panel/__init__.py | 54 | CODE | |
| LOW | panel/__init__.py | 55 | CODE | |
| LOW | panel/__init__.py | 56 | CODE | |
| LOW | panel/__init__.py | 57 | CODE | |
| LOW | panel/__init__.py | 58 | CODE | |
| LOW | panel/__init__.py | 59 | CODE | |
| LOW | panel/__init__.py | 60 | CODE | |
| LOW | panel/__init__.py | 61 | CODE | |
| LOW | panel/__init__.py | 61 | CODE | |
| LOW | panel/__init__.py | 61 | CODE | |
| LOW | panel/__init__.py | 62 | CODE | |
| LOW | panel/__init__.py | 62 | CODE | |
| LOW | panel/__init__.py | 63 | CODE | |
| LOW | panel/__init__.py | 64 | CODE | |
| LOW | panel/__init__.py | 64 | CODE | |
| LOW | panel/__init__.py | 64 | CODE | |
| LOW | panel/__init__.py | 64 | CODE | |
| LOW | panel/__init__.py | 64 | CODE | |
| LOW | panel/__init__.py | 67 | CODE | |
| LOW | panel/__init__.py | 67 | CODE | |
| LOW | panel/__init__.py | 67 | CODE | |
| LOW | panel/__init__.py | 67 | CODE | |
| LOW | panel/__init__.py | 67 | CODE | |
| LOW | panel/__init__.py | 67 | CODE | |
| LOW | panel/__init__.py | 67 | CODE | |
| LOW | panel/__init__.py | 67 | CODE | |
| LOW | panel/__init__.py | 67 | CODE | |
| LOW | panel/__init__.py | 67 | CODE | |
| LOW | panel/__init__.py | 67 | CODE | |
| LOW | panel/__init__.py | 67 | CODE | |
| LOW | panel/__init__.py | 67 | CODE | |
| LOW | panel/__init__.py | 67 | CODE | |
| LOW | panel/__init__.py | 67 | CODE | |
| LOW | panel/__init__.py | 67 | CODE | |
| LOW | panel/__init__.py | 67 | CODE | |
| LOW | panel/__init__.py | 71 | CODE | |
| LOW | panel/__init__.py | 72 | CODE | |
| LOW | panel/__init__.py | 72 | CODE | |
| LOW | panel/__init__.py | 73 | CODE | |
| LOW | panel/__init__.py | 74 | CODE | |
| LOW | panel/__init__.py | 74 | CODE | |
| LOW | panel/__init__.py | 76 | CODE | |
| 828 more matches not shown… | ||||
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| HIGH | panel/links.py | 632 | if (property !== undefined) {{ property.validate(value); }} | CODE |
| HIGH | panel/links.py | 648 | if (property !== undefined) {{ property.validate(value); }} | CODE |
| HIGH | panel/links.py | 675 | css_classes.push(css) | CODE |
| HIGH | panel/pane/holoviews.py | 393 | plot.push() | CODE |
| HIGH⚡ | panel/layout/swipe.py | 78 | e = e || window.event; | CODE |
| HIGH⚡ | panel/layout/swipe.py | 83 | if (data.start != null) { | CODE |
| HIGH⚡ | panel/layout/swipe.py | 86 | if (data.end != null) { | CODE |
| HIGH⚡ | panel/layout/swipe.py | 91 | let e = event || window.event; | CODE |
| HIGH | panel/layout/tabs.py | 63 | for (var t of value) {{ ids.push(t.id) }}; | CODE |
| HIGH | panel/layout/float.py | 129 | return true | CODE |
| HIGH | panel/layout/float.py | 179 | state.panel = undefined; | CODE |
| HIGH | panel/layout/gridstack.py | 76 | const height = model.height || grid.offsetHeight; | CODE |
| HIGH | panel/layout/gridstack.py | 83 | items.push({id: node.el.getAttribute('data-id'), x0: node.x, y0: node.y, x1: node.x+node.w, y1: node.y+node. | CODE |
| HIGH | panel/layout/gridstack.py | 112 | const height = model.height || grid.offsetHeight || model.min_height; | CODE |
| HIGH | panel/io/handlers.py | 304 | if (navigator.clipboard && navigator.clipboard.writeText) { | CODE |
| HIGH | panel/io/cache.py | 346 | hash_stack.push(obj) | CODE |
| HIGH | panel/io/notifications.py | 184 | if (state.reconnect_timeout != null) { | CODE |
| HIGH⚡ | panel/io/notifications.py | 205 | if (timeout != null || state.reconnect_msg == null) { | CODE |
| HIGH⚡ | panel/io/notifications.py | 205 | if (timeout != null || state.reconnect_msg == null) { | CODE |
| HIGH⚡ | panel/io/notifications.py | 213 | if (state.reconnect_toast == null) { | CODE |
| HIGH⚡ | panel/io/notifications.py | 228 | if (timeout != null) { | CODE |
| HIGH⚡ | panel/io/notifications.py | 233 | if (timeout == null && model.tags[0] === "prompt") { | CODE |
| HIGH⚡ | panel/io/notifications.py | 243 | if (notification._destroyed || notification._rendered) { | CODE |
| HIGH⚡ | panel/io/notifications.py | 251 | if (notification.background != null) { | CODE |
| HIGH⚡ | panel/io/notifications.py | 254 | if (notification.icon != null) { | CODE |
| HIGH | panel/io/notifications.py | 266 | if (notification.properties === undefined) { | CODE |
| HIGH | panel/io/notifications.py | 311 | notifications.data.notifications.push(config) | CODE |
| HIGH | panel/io/notifications.py | 361 | notifications.data.notifications.push(config) | CODE |
| HIGH | panel/io/pyodide.py | 253 | if (entry[1] === undefined) { | CODE |
| HIGH | panel/io/pyodide.py | 254 | entry[1] = null; | CODE |
| HIGH | panel/tests/util.py | 439 | [...el.shadowRoot.querySelectorAll('link[rel="stylesheet"]')].every((link) => link.sheet != null) | CODE |
| HIGH⚡ | panel/tests/test_custom.py | 135 | _esm = "export function render({model}) { return null }" | CODE |
| HIGH | panel/tests/test_links.py | 168 | if (property !== undefined) { property.validate(value); } | CODE |
| HIGH | panel/tests/test_links.py | 208 | if (property !== undefined) { property.validate(value); } | CODE |
| HIGH | panel/tests/test_links.py | 245 | if (property !== undefined) { property.validate(value); } | CODE |
| HIGH | panel/tests/test_links.py | 280 | if (property !== undefined) { property.validate(value); } | CODE |
| HIGH | panel/tests/test_links.py | 315 | if (property !== undefined) { property.validate(value); } | CODE |
| HIGH⚡ | panel/tests/ui/test_custom.py | 1916 | window.__renders = (window.__renders || 0) + 1 | CODE |
| HIGH⚡ | panel/tests/ui/test_custom.py | 1917 | window.__nested_calls = window.__nested_calls || 0 | CODE |
| HIGH⚡ | panel/tests/ui/test_custom.py | 1918 | window.__width_calls = window.__width_calls || 0 | CODE |
| HIGH | panel/tests/ui/test_custom.py | 1602 | if (views.length === 0) return false | CODE |
| HIGH | panel/tests/ui/test_custom.py | 1654 | if (views.length === 0) return false | CODE |
| HIGH | panel/tests/ui/test_custom.py | 1696 | if (host == null) throw new Error('no ESM view found') | CODE |
| HIGH | panel/tests/ui/test_custom.py | 1747 | if (views.length === 0) return false | CODE |
| HIGH | panel/tests/ui/test_custom.py | 1957 | window.__msgs = window.__msgs || 0 | CODE |
| HIGH | panel/tests/ui/test_custom.py | 2039 | window.__renders = (window.__renders || 0) + 1 | CODE |
| HIGH⚡ | panel/tests/ui/pane/test_plotly.py | 304 | if (d.data && Array.isArray(d.data)) return d.data.length; | CODE |
| HIGH⚡ | panel/tests/ui/pane/test_plotly.py | 307 | if (el.shadowRoot) { const r = find(el.shadowRoot); if (r !== null) return r; } | CODE |
| HIGH⚡ | panel/tests/ui/pane/test_plotly.py | 309 | return null; | CODE |
| HIGH | panel/tests/ui/io/test_lazy_resources_notebook.py | 63 | """() => ({perspective: window.perspective != null, filepond: window.FilePond != null})""" | STRING |
| HIGH⚡ | panel/tests/ui/widgets/test_tabulator.py | 1756 | assert widget.selected_dataframe.equals(expected_selected) | CODE |
| HIGH⚡ | panel/tests/ui/widgets/test_tabulator.py | 1761 | assert widget.selected_dataframe.equals(expected_selected) | CODE |
| HIGH⚡ | panel/tests/ui/widgets/test_tabulator.py | 1770 | assert widget.selected_dataframe.equals(expected_selected) | CODE |
| HIGH⚡ | panel/tests/ui/widgets/test_tabulator.py | 1971 | assert widget.selected_dataframe.equals(expected_selected) | CODE |
| HIGH⚡ | panel/tests/ui/widgets/test_tabulator.py | 1981 | assert widget.selected_dataframe.equals(expected_selected) | CODE |
| HIGH⚡ | panel/tests/ui/widgets/test_tabulator.py | 1991 | assert widget.selected_dataframe.equals(expected_selected) | CODE |
| HIGH | panel/tests/ui/widgets/test_tabulator.py | 1741 | assert widget.selected_dataframe.equals(expected_selected) | CODE |
| HIGH | panel/tests/ui/widgets/test_tabulator.py | 1794 | assert widget.selected_dataframe.equals(expected_selected) | CODE |
| HIGH | panel/tests/ui/widgets/test_tabulator.py | 1805 | assert widget.selected_dataframe.equals(expected_selected) | CODE |
| HIGH | panel/tests/ui/widgets/test_tabulator.py | 1828 | assert widget.selected_dataframe.equals(expected_selected) | CODE |
| 60 more matches not shown… | ||||
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| HIGH | panel/auth.py | 1248 | except KeyError: | CODE |
| HIGH | panel/auth.py | 1120 | except Exception: | CODE |
| HIGH | panel/auth.py | 314 | except HTTPError: | CODE |
| HIGH | panel/auth.py | 1165 | except Exception: | CODE |
| HIGH | panel/viewable.py | 962 | except Exception: | CODE |
| HIGH | panel/custom.py | 363 | except (OSError, TypeError, ValueError): | CODE |
| HIGH | panel/reactive.py | 428 | except Exception: | CODE |
| HIGH | panel/reactive.py | 433 | except Exception: | CODE |
| HIGH | panel/reactive.py | 1458 | except Exception: | CODE |
| HIGH | panel/param.py | 933 | except Skip: | CODE |
| HIGH | panel/interact.py | 96 | except TypeError: | CODE |
| HIGH | panel/pane/echarts.py | 147 | except AssertionError: | CODE |
| HIGH | panel/pane/markup.py | 704 | except Exception: | CODE |
| HIGH | panel/pane/markup.py | 741 | except IndexError: | CODE |
| HIGH | panel/pane/vega.py | 165 | except (AttributeError, TypeError): | CODE |
| HIGH | panel/pane/ipywidget.py | 113 | except Exception: | CODE |
| HIGH | panel/pane/vtk/synchronizable_serializer.py | 168 | except Exception: | CODE |
| HIGH | panel/pane/vtk/synchronizable_serializer.py | 896 | except Exception: | CODE |
| HIGH | panel/chat/interface.py | 438 | except ValueError: | CODE |
| HIGH | panel/chat/message.py | 505 | except Exception: | CODE |
| HIGH | panel/chat/message.py | 519 | except Exception: | CODE |
| HIGH | panel/chat/feed.py | 421 | except ValueError: | CODE |
| HIGH | panel/chat/feed.py | 657 | except asyncio.CancelledError: | CODE |
| HIGH | panel/util/checks.py | 88 | except Exception: | CODE |
| HIGH | panel/util/__init__.py | 92 | except Exception: | CODE |
| HIGH | panel/io/server.py | 1733 | except ValueError: | CODE |
| HIGH | panel/io/server.py | 735 | except asyncio.CancelledError: | CODE |
| HIGH | panel/io/server.py | 747 | except RuntimeError: | CODE |
| HIGH | panel/io/embed.py | 371 | except Exception: | CODE |
| HIGH | panel/io/fastapi.py | 353 | except asyncio.CancelledError: | CODE |
| HIGH | panel/io/handlers.py | 55 | except Exception: | CODE |
| HIGH | panel/io/handlers.py | 60 | except Exception: | CODE |
| HIGH | panel/io/handlers.py | 248 | except ValueError: | CODE |
| HIGH | panel/io/handlers.py | 209 | except SyntaxError: | CODE |
| HIGH | panel/io/handlers.py | 409 | except Exception: | CODE |
| HIGH | panel/io/cache.py | 746 | except AttributeError: | CODE |
| HIGH | panel/io/__init__.py | 32 | except ImportError: | CODE |
| HIGH | panel/io/model.py | 71 | except AssertionError: | CODE |
| HIGH | panel/io/application.py | 142 | except AssertionError: | CODE |
| HIGH | panel/io/location.py | 177 | except Exception: | CODE |
| HIGH | panel/io/location.py | 297 | except Exception: | CODE |
| HIGH | panel/io/location.py | 210 | except Exception: | CODE |
| HIGH | panel/io/threads.py | 44 | except Exception: | CODE |
| HIGH | panel/io/admin.py | 314 | except Exception: | CODE |
| HIGH | panel/io/document.py | 194 | except Exception: | CODE |
| HIGH | panel/io/resources.py | 378 | except Exception: | CODE |
| HIGH | panel/io/notebook.py | 778 | except KeyError: | CODE |
| HIGH | panel/io/notebook.py | 783 | except Exception: | CODE |
| HIGH | panel/io/notebook.py | 759 | except Exception: | CODE |
| HIGH | panel/io/notebook.py | 767 | except Exception: | CODE |
| HIGH | panel/io/state.py | 1294 | except AssertionError: | CODE |
| HIGH | panel/io/state.py | 956 | except AssertionError: # can't stop a server twice | CODE |
| HIGH | panel/io/state.py | 515 | except Exception: | CODE |
| HIGH | panel/io/state.py | 873 | except OSError: # Windows wonkiness | CODE |
| HIGH | panel/io/pyodide.py | 81 | except Exception: | CODE |
| HIGH | panel/io/django/management/commands/runserver.py | 91 | except KeyboardInterrupt: | CODE |
| HIGH | panel/tests/conftest.py | 433 | except AssertionError: | CODE |
| HIGH | panel/tests/conftest.py | 449 | except AssertionError: | CODE |
| HIGH | panel/tests/conftest.py | 320 | except FileNotFoundError: | CODE |
| HIGH | panel/tests/util.py | 465 | except Exception: | CODE |
| 24 more matches not shown… | ||||
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| HIGH | panel/viewable.py | 0 | allows to create additional space around the component. may be specified as a two-tuple of the form (vertical, horizonta | STRING |
| HIGH | panel/pane/base.py | 0 | allows to create additional space around the component. may be specified as a two-tuple of the form (vertical, horizonta | STRING |
| HIGH | panel/chat/icon.py | 0 | allows to create additional space around the component. may be specified as a two-tuple of the form (vertical, horizonta | STRING |
| HIGH | panel/chat/feed.py | 0 | allows to create additional space around the component. may be specified as a two-tuple of the form (vertical, horizonta | STRING |
| HIGH | panel/chat/step.py | 0 | allows to create additional space around the component. may be specified as a two-tuple of the form (vertical, horizonta | STRING |
| HIGH | panel/widgets/indicators.py | 0 | allows to create additional space around the component. may be specified as a two-tuple of the form (vertical, horizonta | STRING |
| HIGH | panel/widgets/base.py | 0 | allows to create additional space around the component. may be specified as a two-tuple of the form (vertical, horizonta | STRING |
| HIGH | panel/viewable.py | 0 | iterates over the template and any potential children in the applying the selector. parameters ---------- selector: type | STRING |
| HIGH | panel/custom.py | 0 | iterates over the template and any potential children in the applying the selector. parameters ---------- selector: type | STRING |
| HIGH | panel/param.py | 0 | iterates over the template and any potential children in the applying the selector. parameters ---------- selector: type | STRING |
| HIGH | panel/layout/swipe.py | 0 | iterates over the template and any potential children in the applying the selector. parameters ---------- selector: type | STRING |
| HIGH | panel/layout/float.py | 0 | iterates over the template and any potential children in the applying the selector. parameters ---------- selector: type | STRING |
| HIGH | panel/layout/flex.py | 0 | iterates over the template and any potential children in the applying the selector. parameters ---------- selector: type | STRING |
| HIGH | panel/layout/base.py | 0 | iterates over the template and any potential children in the applying the selector. parameters ---------- selector: type | STRING |
| HIGH | panel/widgets/base.py | 0 | iterates over the template and any potential children in the applying the selector. parameters ---------- selector: type | STRING |
| HIGH | panel/pane/base.py | 0 | iterates over the template and any potential children in the applying the selector. parameters ---------- selector: type | STRING |
| HIGH | panel/chat/feed.py | 0 | iterates over the template and any potential children in the applying the selector. parameters ---------- selector: type | STRING |
| HIGH | panel/template/base.py | 0 | iterates over the template and any potential children in the applying the selector. parameters ---------- selector: type | STRING |
| HIGH | panel/param.py | 0 | the object being wrapped, which will be converted to a bokeh model. | STRING |
| HIGH | panel/pane/holoviews.py | 0 | the object being wrapped, which will be converted to a bokeh model. | STRING |
| HIGH | panel/pane/base.py | 0 | the object being wrapped, which will be converted to a bokeh model. | STRING |
| HIGH | panel/chat/feed.py | 0 | max pixel distance from the latest object in the column to activate automatic scrolling upon update. setting to 0 disabl | STRING |
| HIGH | panel/layout/base.py | 0 | max pixel distance from the latest object in the column to activate automatic scrolling upon update. setting to 0 disabl | STRING |
| HIGH | panel/models/layout.py | 0 | max pixel distance from the latest object in the column to activate automatic scrolling upon update. setting to 0 disabl | STRING |
| HIGH | panel/chat/feed.py | 0 | min pixel distance from the latest object in the column to display the scroll button. setting to 0 disables the scroll b | STRING |
| HIGH | panel/layout/base.py | 0 | min pixel distance from the latest object in the column to display the scroll button. setting to 0 disables the scroll b | STRING |
| HIGH | panel/models/layout.py | 0 | min pixel distance from the latest object in the column to display the scroll button. setting to 0 disables the scroll b | STRING |
| HIGH | panel/chat/feed.py | 0 | whether to scroll to the latest object on init. if not enabled the view will be on the first object. | STRING |
| HIGH | panel/layout/base.py | 0 | whether to scroll to the latest object on init. if not enabled the view will be on the first object. | STRING |
| HIGH | panel/models/layout.py | 0 | whether to scroll to the latest object on init. if not enabled the view will be on the first object. | STRING |
| HIGH | panel/chat/input.py | 0 | whether the text area should automatically grow vertically to accommodate the current text. | STRING |
| HIGH | panel/models/widgets.py | 0 | whether the text area should automatically grow vertically to accommodate the current text. | STRING |
| HIGH | panel/widgets/input.py | 0 | whether the text area should automatically grow vertically to accommodate the current text. | STRING |
| HIGH | panel/layout/tabs.py | 0 | returns new child models for the layout while reusing unchanged models and cleaning up any dropped objects. | STRING |
| HIGH | panel/layout/accordion.py | 0 | returns new child models for the layout while reusing unchanged models and cleaning up any dropped objects. | STRING |
| HIGH | panel/layout/base.py | 0 | returns new child models for the layout while reusing unchanged models and cleaning up any dropped objects. | STRING |
| HIGH | panel/io/resources.py | 0 | resolves the resources required for this design component. parameters ---------- cdn: bool | literal['auto'] whether to | STRING |
| HIGH | panel/template/base.py | 0 | resolves the resources required for this design component. parameters ---------- cdn: bool | literal['auto'] whether to | STRING |
| HIGH | panel/theme/base.py | 0 | resolves the resources required for this design component. parameters ---------- cdn: bool | literal['auto'] whether to | STRING |
| HIGH | panel/tests/ui/layout/test_gridstack.py | 0 | (element) => window.getcomputedstyle(element).getpropertyvalue('background-color') | STRING |
| HIGH | panel/tests/ui/layout/test_swipe.py | 0 | (element) => window.getcomputedstyle(element).getpropertyvalue('background-color') | STRING |
| HIGH | panel/tests/ui/layout/test_gridspec.py | 0 | (element) => window.getcomputedstyle(element).getpropertyvalue('background-color') | STRING |
| HIGH | panel/tests/ui/io/test_convert.py | 0 | (element) => window.getcomputedstyle(element).getpropertyvalue('background-color') | STRING |
| HIGH | panel/tests/ui/io/test_jupyter_server_extension.py | 0 | (element) => window.getcomputedstyle(element).getpropertyvalue('background-color') | STRING |
| HIGH | panel/template/bootstrap/__init__.py | 0 | a design applies a specific design system to a template. | STRING |
| HIGH | panel/template/fast/base.py | 0 | a design applies a specific design system to a template. | STRING |
| HIGH | panel/template/vanilla/__init__.py | 0 | a design applies a specific design system to a template. | STRING |
| HIGH | panel/template/material/__init__.py | 0 | a design applies a specific design system to a template. | STRING |
| HIGH | panel/models/icon.py | 0 | delay (in milliseconds) to display the tooltip after the cursor has hovered over the button, default is 500ms. | STRING |
| HIGH | panel/models/widgets.py | 0 | delay (in milliseconds) to display the tooltip after the cursor has hovered over the button, default is 500ms. | STRING |
| HIGH | panel/widgets/_mixin.py | 0 | delay (in milliseconds) to display the tooltip after the cursor has hovered over the button, default is 500ms. | STRING |
| HIGH | panel/widgets/misc.py | 0 | semantic color of the button; alias for ``button_type``. | STRING |
| HIGH | panel/widgets/speech_to_text.py | 0 | semantic color of the button; alias for ``button_type``. | STRING |
| HIGH | panel/widgets/button.py | 0 | semantic color of the button; alias for ``button_type``. | STRING |
| HIGH | panel/widgets/misc.py | 0 | an html string describing the function of this component. | STRING |
| HIGH | panel/widgets/input.py | 0 | an html string describing the function of this component. | STRING |
| HIGH | panel/widgets/select.py | 0 | an html string describing the function of this component. | STRING |
| HIGH | panel/widgets/player.py | 0 | width of this component. if sizing_mode is set to stretch or scale mode this will merely be used as a suggestion. | STRING |
| HIGH | panel/widgets/input.py | 0 | width of this component. if sizing_mode is set to stretch or scale mode this will merely be used as a suggestion. | STRING |
| HIGH | panel/widgets/select.py | 0 | width of this component. if sizing_mode is set to stretch or scale mode this will merely be used as a suggestion. | STRING |
| 4 more matches not shown… | ||||
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| LOW | hatch_build.py | 47 | except Exception as e: | CODE |
| LOW | panel/auth.py | 66 | except Exception: | CODE |
| LOW | panel/auth.py | 346 | except Exception: | CODE |
| LOW | panel/auth.py | 579 | except Exception: | CODE |
| LOW | panel/auth.py | 897 | except Exception: | CODE |
| LOW | panel/auth.py | 1120 | except Exception: | CODE |
| LOW | panel/auth.py | 1126 | except Exception: | CODE |
| LOW | panel/auth.py | 1165 | except Exception: | CODE |
| MEDIUM | panel/auth.py | 489 | def _raise_error(self, response, body=None, status=400): | CODE |
| MEDIUM | panel/auth.py | 894 | def get(self): | CODE |
| LOW | panel/viewable.py | 480 | except Exception: | CODE |
| LOW | panel/viewable.py | 962 | except Exception: | CODE |
| LOW | panel/config.py | 57 | except Exception as e: | CODE |
| LOW | panel/config.py | 486 | except Exception: | CODE |
| LOW | panel/config.py | 997 | except Exception: | CODE |
| LOW | panel/config.py | 1067 | except Exception: | CODE |
| LOW | panel/config.py | 1080 | except Exception: | CODE |
| LOW | panel/compiler.py | 74 | except Exception: | CODE |
| LOW | panel/compiler.py | 77 | except Exception as e: | CODE |
| MEDIUM | panel/compiler.py | 58 | def _session(): | CODE |
| LOW | panel/custom.py | 593 | except Exception: | CODE |
| LOW | panel/reactive.py | 383 | except Exception: | CODE |
| LOW | panel/reactive.py | 428 | except Exception: | CODE |
| LOW | panel/reactive.py | 433 | except Exception: | CODE |
| LOW | panel/reactive.py | 497 | except Exception as e: | CODE |
| LOW | panel/reactive.py | 541 | except Exception as e: | CODE |
| LOW | panel/reactive.py | 555 | except Exception as e: | CODE |
| LOW | panel/reactive.py | 585 | except Exception as e: | CODE |
| LOW | panel/reactive.py | 595 | except Exception as e: | CODE |
| LOW | panel/reactive.py | 641 | except Exception as e: | CODE |
| LOW | panel/reactive.py | 1458 | except Exception: | CODE |
| LOW | panel/reactive.py | 1463 | except Exception: | CODE |
| LOW | panel/reactive.py | 1674 | except Exception: | CODE |
| LOW | panel/reactive.py | 1681 | except Exception: | CODE |
| LOW | panel/reactive.py | 1881 | except Exception as e: | CODE |
| LOW | panel/reactive.py | 2085 | except Exception as e: | CODE |
| LOW | panel/param.py | 28 | except Exception: | CODE |
| LOW | panel/param.py | 945 | except Exception as e: | CODE |
| LOW | panel/param.py | 1394 | except Exception: | CODE |
| LOW | panel/links.py | 270 | except Exception: | CODE |
| LOW | panel/links.py | 378 | except Exception: | CODE |
| LOW | panel/links.py | 731 | except Exception: | STRING |
| LOW | panel/pipeline.py | 172 | except Exception: | CODE |
| LOW | panel/pipeline.py | 410 | except Exception as e: | CODE |
| LOW | panel/pipeline.py | 443 | except Exception as e: | CODE |
| MEDIUM | panel/pipeline.py | 169 | def __init__(self, stages=[], graph={}, **params): | CODE |
| LOW | panel/pane/plot.py | 369 | except Exception as ex: | CODE |
| MEDIUM | panel/pane/plot.py | 306 | def _imgshape(self, data): | CODE |
| LOW | panel/pane/markup.py | 510 | except Exception: | CODE |
| LOW | panel/pane/markup.py | 671 | except Exception: | CODE |
| LOW | panel/pane/markup.py | 704 | except Exception: | CODE |
| LOW | panel/pane/markup.py | 857 | except Exception: | CODE |
| LOW | panel/pane/markup.py | 869 | except Exception: | CODE |
| MEDIUM | panel/pane/markup.py | 667 | def hilite(token, langname, attrs): | CODE |
| LOW | panel/pane/holoviews.py | 891 | except Exception: | CODE |
| LOW | panel/pane/holoviews.py | 894 | except Exception: | CODE |
| LOW | panel/pane/plotly.py | 218 | except Exception: | CODE |
| LOW | panel/pane/plotly.py | 262 | except Exception: | CODE |
| LOW | panel/pane/plotly.py | 464 | except Exception: | CODE |
| LOW | panel/pane/plotly.py | 478 | except Exception: | CODE |
| 203 more matches not shown… | ||||
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| LOW | panel/viewable.py | 264 | CODE | |
| LOW | panel/viewable.py | 397 | CODE | |
| LOW | panel/config.py | 512 | CODE | |
| LOW | panel/config.py | 787 | CODE | |
| LOW | panel/config.py | 899 | CODE | |
| LOW | panel/config.py | 1091 | CODE | |
| LOW | panel/compiler.py | 417 | CODE | |
| LOW | panel/compiler.py | 482 | CODE | |
| LOW | panel/custom.py | 280 | CODE | |
| LOW | panel/custom.py | 398 | CODE | |
| LOW | panel/custom.py | 577 | CODE | |
| LOW | panel/custom.py | 693 | CODE | |
| LOW | panel/reactive.py | 309 | CODE | |
| LOW | panel/reactive.py | 361 | CODE | |
| LOW | panel/reactive.py | 472 | CODE | |
| LOW | panel/reactive.py | 707 | CODE | |
| LOW | panel/reactive.py | 755 | CODE | |
| LOW | panel/reactive.py | 1162 | CODE | |
| LOW | panel/reactive.py | 1272 | CODE | |
| LOW | panel/reactive.py | 1381 | CODE | |
| LOW | panel/reactive.py | 1427 | CODE | |
| LOW | panel/reactive.py | 1519 | CODE | |
| LOW | panel/reactive.py | 1663 | CODE | |
| LOW | panel/reactive.py | 1850 | CODE | |
| LOW | panel/reactive.py | 1990 | CODE | |
| LOW | panel/reactive.py | 2050 | CODE | |
| LOW | panel/reactive.py | 2126 | CODE | |
| LOW | panel/reactive.py | 2205 | CODE | |
| LOW | panel/reactive.py | 794 | CODE | |
| LOW | panel/param.py | 82 | CODE | |
| LOW | panel/param.py | 1415 | CODE | |
| LOW | panel/param.py | 294 | CODE | |
| LOW | panel/param.py | 323 | CODE | |
| LOW | panel/param.py | 373 | CODE | |
| LOW | panel/param.py | 438 | CODE | |
| LOW | panel/param.py | 913 | CODE | |
| LOW | panel/param.py | 952 | CODE | |
| LOW | panel/param.py | 1075 | CODE | |
| LOW | panel/param.py | 1248 | CODE | |
| LOW | panel/param.py | 610 | CODE | |
| LOW | panel/param.py | 1080 | CODE | |
| LOW | panel/links.py | 34 | CODE | |
| LOW | panel/links.py | 68 | CODE | |
| LOW | panel/links.py | 158 | CODE | |
| LOW | panel/links.py | 213 | CODE | |
| LOW | panel/links.py | 385 | CODE | |
| LOW | panel/links.py | 433 | CODE | |
| LOW | panel/links.py | 605 | CODE | |
| LOW | panel/pipeline.py | 36 | CODE | |
| LOW | panel/pipeline.py | 315 | CODE | |
| LOW | panel/pipeline.py | 462 | CODE | |
| LOW | panel/interact.py | 37 | CODE | |
| LOW | panel/pane/media.py | 127 | CODE | |
| LOW | panel/pane/perspective.py | 75 | CODE | |
| LOW | panel/pane/perspective.py | 401 | CODE | |
| LOW | panel/pane/markup.py | 498 | CODE | |
| LOW | panel/pane/vizzu.py | 99 | CODE | |
| LOW | panel/pane/holoviews.py | 858 | CODE | |
| LOW | panel/pane/holoviews.py | 930 | CODE | |
| LOW | panel/pane/holoviews.py | 289 | CODE | |
| 180 more matches not shown… | ||||
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| CRITICAL | panel/io/notifications.py | 312 | notifications.data.properties.notifications.change.emit() | CODE |
| CRITICAL | panel/io/notifications.py | 362 | notifications.data.properties.notifications.change.emit() | CODE |
| CRITICAL | panel/template/fast/base.py | 83 | p: v for p, v in self._design.theme.style.param.values().items() | CODE |
| CRITICAL | panel/models/card.ts | 323 | child_view.model.properties.visible.change.disconnect(callback) | CODE |
| CRITICAL | panel/models/vtk/vtkvolume.ts | 231 | this.model.properties.colormap.change.emit() | CODE |
| CRITICAL | panel/models/vtk/vtkvolume.ts | 239 | this.model.properties.shadow.change.emit() | CODE |
| CRITICAL | panel/models/vtk/vtkvolume.ts | 250 | this.model.properties.sampling.change.emit() | CODE |
| CRITICAL | panel/models/vtk/vtkvolume.ts | 261 | this.model.properties.edge_gradient.change.emit() | CODE |
| CRITICAL | …s/django_multi_apps/stockscreener/pn_model_20122019.py | 24 | # hv.plotting.bokeh.ElementPlot.finalize_hooks.append(__disable_logo) | COMMENT |
| CRITICAL | …les/apps/django_multi_apps/django_multi_apps/themes.py | 15 | # hv.plotting.bokeh.ElementPlot.finalize_hooks.append(__disable_logo) | COMMENT |
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| LOW⚡ | panel/tests/ui/widgets/test_codeeditor.py | 339 | # Step 1: Worker should be active and produce annotations on invalid JS | COMMENT |
| LOW⚡ | panel/tests/ui/widgets/test_codeeditor.py | 344 | # Step 2: Set user annotations — worker should be disabled | COMMENT |
| LOW⚡ | panel/tests/ui/widgets/test_codeeditor.py | 352 | # Step 3: Clear user annotations — worker should re-enable and | COMMENT |
| LOW | doc/how_to/desktop_or_mobile/toga.md | 39 | ### Step 1: Initialize a Briefcase Project | COMMENT |
| LOW | doc/how_to/desktop_or_mobile/toga.md | 60 | ### Step 2: Create Your Panel Application | COMMENT |
| LOW | doc/how_to/desktop_or_mobile/toga.md | 188 | ### Step 3: Update Dependencies | COMMENT |
| LOW | doc/how_to/desktop_or_mobile/toga.md | 200 | ### Step 4: Test in Development Mode | COMMENT |
| LOW | doc/how_to/custom_components/examples/table_viewer.md | 13 | ### Step 1: Import Required Libraries | COMMENT |
| LOW | doc/how_to/custom_components/examples/table_viewer.md | 33 | ### Step 2: Define the Viewer Class | COMMENT |
| LOW | doc/how_to/custom_components/examples/table_viewer.md | 69 | ### Step 3: Serve the Application | COMMENT |
| LOW | doc/how_to/distribute/uv.md | 21 | ## Step 1: Create a Self-Contained Panel Script | COMMENT |
| LOW | doc/how_to/distribute/uv.md | 68 | ## Step 2: Add Dependency Metadata | COMMENT |
| LOW | doc/how_to/distribute/uv.md | 93 | ## Step 3: Test Locally | COMMENT |
| LOW | doc/how_to/distribute/uv.md | 107 | ## Step 4: Publish to GitHub | COMMENT |
| LOW | doc/how_to/distribute/uv.md | 120 | ## Step 5: Share and Run from Anywhere | COMMENT |
| LOW | doc/how_to/migrate/anywidget/index.md | 19 | #### Step 1: Base Class Conversion | COMMENT |
| LOW | doc/how_to/migrate/anywidget/index.md | 23 | #### Step 2: Attribute Conversion | COMMENT |
| LOW | doc/how_to/migrate/anywidget/index.md | 37 | #### Step 3: Export Conversion | COMMENT |
| LOW | doc/how_to/migrate/anywidget/index.md | 58 | #### Step 4: Drop JavaScript Tooling | COMMENT |
| LOW | doc/how_to/migrate/anywidget/index.md | 62 | #### Step 5: Convert `useModelState` to `state` | COMMENT |
| LOW | doc/tutorials/expert/custom_js_components.md | 21 | ## Step 1: Define the `MarioButton` Component | COMMENT |
| LOW | doc/tutorials/expert/custom_js_components.md | 93 | ## Step 2: Define the JavaScript for the `MarioButton` | COMMENT |
| LOW | doc/tutorials/expert/custom_js_components.md | 177 | ## Step 3: Define the CSS for the `MarioButton` | COMMENT |
| LOW | doc/tutorials/expert/custom_js_components.md | 199 | ## Step 4: Serve the Application | COMMENT |
| LOW | doc/tutorials/expert/custom_js_components.md | 218 | ## Step 4: Develop the Application with Autoreload | COMMENT |
| LOW | doc/tutorials/expert/custom_anywidget_components.md | 21 | ## Step 1: Define the `MarioButton` Component | COMMENT |
| LOW | doc/tutorials/expert/custom_anywidget_components.md | 93 | ## Step 2: Define the JavaScript for the `MarioButton` | COMMENT |
| LOW | doc/tutorials/expert/custom_anywidget_components.md | 178 | ## Step 3: Define the CSS for the `MarioButton` | COMMENT |
| LOW | doc/tutorials/expert/custom_anywidget_components.md | 200 | ## Step 4: Serve the Application | COMMENT |
| LOW | doc/tutorials/expert/custom_anywidget_components.md | 219 | ## Step 4: Develop the Application with Autoreload | COMMENT |
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| LOW | panel/viewable.py | 881 | def _update_loading(self, *_) -> None: | CODE |
| LOW | panel/config.py | 1178 | __all__ = ['config', 'panel_extension'] | CODE |
| LOW | panel/reactive.py | 309 | def _update_manual(self, *events: param.parameterized.Event) -> None: | CODE |
| LOW | panel/reactive.py | 1056 | def _update_column(self, column: str, array: TDataColumn) -> None: | CODE |
| LOW | panel/reactive.py | 1073 | def _update_data(self, data: TData) -> None: | CODE |
| LOW | panel/reactive.py | 1087 | def _update_cds(self, *events: param.parameterized.Event) -> None: | CODE |
| LOW | panel/reactive.py | 1151 | def _update_manual(self, *events: param.parameterized.Event) -> None: | CODE |
| LOW | panel/reactive.py | 1378 | def _update_selection(self, indices: list[int]) -> None: | CODE |
| LOW | panel/depends.py | 4 | __all__ = ["bind", "depends"] | CODE |
| LOW | panel/interact.py | 379 | __all__ = ["interact", "interact_manual", "interactive"] | CODE |
| LOW | panel/pane/markup.py | 89 | def _update_pane(self, *events) -> None: | CODE |
| LOW | panel/pane/base.py | 458 | def _update_pane(self, *events) -> None: | CODE |
| LOW | panel/pane/base.py | 794 | def _update_inner(self, new_object: t.Any) -> None: | CODE |
| LOW⚡ | panel/pane/base.py | 816 | def _update_pane(self, *events) -> None: | CODE |
| LOW | panel/layout/base.py | 637 | def _update_names(self, event: param.parameterized.Event) -> None: | CODE |
| LOW⚡ | panel/layout/base.py | 650 | def _update_active(self, *events: param.parameterized.Event) -> None: | CODE |
| LOW | panel/io/auth.py | 100 | def set_close_callback(self, callback: t.Callable[[], None] | None) -> None: | CODE |
| LOW | panel/io/server.py | 93 | logger = logging.getLogger(__name__) | CODE |
| LOW | panel/io/server.py | 834 | def _set_request_route_context(handler: t.Any, *args, suffix: str = '', **kwargs) -> None: | CODE |
| LOW | panel/io/jupyter_server_extension.py | 66 | logger = logging.getLogger(__name__) | CODE |
| LOW | panel/io/asgi.py | 87 | logger = logging.getLogger(__name__) | CODE |
| LOW | panel/io/location.py | 192 | def _update_synced(self, event: param.parameterized.Event | None = None) -> None: | CODE |
| LOW | panel/io/location.py | 256 | def update_query(self, **kwargs: Mapping[str, t.Any]) -> None: | CODE |
| LOW | panel/io/threads.py | 8 | logger = logging.getLogger(__name__) | CODE |
| LOW⚡ | panel/io/document.py | 49 | logger = logging.getLogger(__name__) | CODE |
| LOW | panel/io/resources.py | 64 | logger = logging.getLogger(__name__) | CODE |
| LOW | panel/io/state.py | 481 | def _update_busy(self) -> None: | CODE |
| LOW | panel/io/django/__init__.py | 62 | logger = logging.getLogger(__name__) | CODE |
| LOW | panel/template/__init__.py | 27 | __all__ = [ | CODE |
| LOW | panel/template/base.py | 151 | def _update_vars(self, *args) -> None: | CODE |
| LOW | panel/template/base.py | 785 | def _update_vars(self, *args) -> None: | CODE |
| LOW | panel/template/base.py | 836 | def _update_busy(self) -> None: | CODE |
| LOW | panel/template/base.py | 843 | def _update_render_items(self, event: param.parameterized.Event) -> None: | CODE |
| LOW | panel/template/bootstrap/__init__.py | 44 | def _update_vars(self, *args) -> None: | CODE |
| LOW | panel/template/fast/list/__init__.py | 82 | def _update_right_sidebar_render_items(self, event: param.parameterized.Event) -> None: | CODE |
| LOW | panel/widgets/indicators.py | 1535 | def set_lock(self, lock: LockType) -> None: | CODE |
| LOW | panel/widgets/indicators.py | 1610 | __all__ = [ | CODE |
| LOW | panel/widgets/tables.py | 1949 | def _update_column(self, column: str, array: TDataColumn) -> None: | CODE |
| LOW | panel/widgets/base.py | 326 | def _update_layout_params(self, *events: param.parameterized.Event) -> None: | CODE |
| LOW | doc/_ext/material_reference.py | 25 | logger = logging.getLogger(__name__) | CODE |
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| LOW | panel/viewable.py | 488 | CODE | |
| LOW | panel/viewable.py | 1046 | CODE | |
| LOW | panel/viewable.py | 1081 | CODE | |
| LOW | panel/viewable.py | 1230 | CODE | |
| LOW | panel/viewable.py | 1255 | CODE | |
| LOW | panel/pane/vega.py | 53 | CODE | |
| LOW | panel/chat/feed.py | 908 | CODE | |
| LOW | panel/io/save.py | 186 | CODE | |
| LOW | panel/io/auth.py | 352 | CODE | |
| LOW | panel/io/server.py | 1308 | CODE | |
| LOW | panel/io/server.py | 1456 | CODE | |
| LOW | panel/io/embed.py | 187 | CODE | |
| LOW | panel/io/fastapi.py | 361 | CODE | |
| LOW | panel/io/convert.py | 304 | CODE | |
| LOW | panel/io/convert.py | 484 | CODE | |
| LOW | panel/io/convert.py | 621 | CODE | |
| LOW | panel/io/asgi.py | 161 | CODE | |
| LOW | panel/io/cache.py | 518 | CODE | |
| LOW | panel/io/cache.py | 532 | CODE | |
| LOW | panel/io/cache.py | 545 | CODE | |
| LOW | panel/io/notebook.py | 682 | CODE | |
| LOW | panel/template/base.py | 450 | CODE | |
| LOW | panel/widgets/text_to_speech.py | 77 | CODE |
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| MEDIUM | panel/pane/vega.py | 46 | # Create a list of unique keys from all items as some items may not include optional fields | COMMENT |
| MEDIUM | panel/io/handlers.py | 261 | # Create the main error alert with relative positioning | STRING |
| MEDIUM | panel/tests/io/test_handlers.py | 219 | # Create the copy button | COMMENT |
| MEDIUM | panel/tests/widgets/test_tables.py | 419 | # Create a DataFrame with this MultiIndex as columns | COMMENT |
| MEDIUM | panel/tests/widgets/test_tables.py | 495 | # Create a DataFrame with this MultiIndex as columns | COMMENT |
| MEDIUM | panel/tests/widgets/test_tables.py | 539 | # Create a DataFrame with MultiIndex as columns and MultiIndex as index | COMMENT |
| MEDIUM | panel/tests/widgets/test_tables.py | 595 | # Create a DataFrame with MultiIndex as columns and MultiIndex as index | COMMENT |
| MEDIUM | panel/models/location.py | 1 | """This module provides a Bokeh Location Model as a wrapper around the JS window.location api""" | STRING |
| MEDIUM | panel/widgets/select.py | 1254 | """This class is a factory of ToggleGroup widgets. | STRING |
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| LOW | panel/chat/message.py | 299 | css_classes=["placeholder"], | CODE |
| LOW | panel/layout/spacer.py | 102 | ... '# Lorem Ipsum', | STRING |
| LOW | panel/tests/test_reactive.py | 379 | controls = text_input.controls(['placeholder', 'disabled']) | CODE |
| LOW | panel/tests/test_auth.py | 82 | 'login_hint': 'user@example.org', | CODE |
| LOW | panel/tests/test_auth.py | 100 | assert extra_params['login_hint'] == 'user@example.org' | CODE |
| LOW⚡ | panel/tests/ui/widgets/test_tabulator.py | 2617 | 'float': {'type': 'number', 'func': '>=', 'placeholder': 'Placeholder float'}, | STRING |
| LOW⚡ | panel/tests/ui/widgets/test_tabulator.py | 2618 | 'str': {'type': 'input', 'func': 'like', 'placeholder': 'Placeholder str'}, | STRING |
| LOW⚡ | panel/tests/ui/widgets/test_tabulator.py | 2629 | assert number_header.get_attribute('placeholder') == 'Placeholder float' | STRING |
| LOW⚡ | panel/tests/ui/widgets/test_tabulator.py | 2632 | assert str_header.get_attribute('placeholder') == 'Placeholder str' | STRING |
| LOW⚡ | panel/tests/ui/widgets/test_tabulator.py | 2637 | 'float': {'type': 'number', 'func': '>=', 'placeholder': 'Placeholder float'}, | STRING |
| LOW⚡ | panel/tests/ui/widgets/test_tabulator.py | 2638 | 'str': {'type': 'input', 'func': 'like', 'placeholder': 'Placeholder str'}, | STRING |
| LOW | panel/tests/widgets/test_tables.py | 1069 | 'C': {'type': 'list', 'valuesLookup': True, 'func': '!=', 'placeholder': 'Not equal'} | CODE |
| LOW | panel/widgets/tables.py | 2112 | filter_placeholder = filter_params.pop('placeholder', None) | CODE |
| LOW | doc/how_to/param/custom.md | 45 | 'autocomplete_string': {'widget_type': pn.ui.AutocompleteInput, 'placeholder': 'Find a color...'}, | CODE |
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| LOW⚡ | panel/tests/ui/widgets/test_codeeditor.py | 339 | # Step 1: Worker should be active and produce annotations on invalid JS | COMMENT |
| LOW⚡ | panel/tests/ui/widgets/test_codeeditor.py | 344 | # Step 2: Set user annotations — worker should be disabled | COMMENT |
| LOW⚡ | panel/tests/ui/widgets/test_codeeditor.py | 352 | # Step 3: Clear user annotations — worker should re-enable and | COMMENT |
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| LOW | panel/pane/perspective.py | 156 | # lots, so we'll just call it 'index', 'index-1', ... | COMMENT |
| MEDIUM | panel/pane/vtk/synchronizable_serializer.py | 527 | # FIXME should evolve and support funky mapper which leverage many arrays | COMMENT |
| LOW | panel/chat/utils.py | 139 | # If the name is just type + ID, simply use type | COMMENT |
| MEDIUM | panel/util/checks.py | 34 | """Safe version of os.path.isfile robust to path length issues on Windows""" | STRING |
| MEDIUM | panel/tests/ui/widgets/test_tabulator.py | 4022 | # Attempt at making this test more robust. | STRING |
| MEDIUM | panel/tests/chat/test_interface.py | 633 | """Test basic adaptive functionality with more robust approach.""" | STRING |
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| LOW | panel/pane/plotly.py | 516 | # Check if we should trigger rendering | COMMENT |
| LOW | panel/chat/feed.py | 483 | # Check if this task has been cancelled/replaced | COMMENT |
| LOW | panel/chat/feed.py | 572 | # Check if task is still current before processing | COMMENT |
| LOW | panel/chat/feed.py | 581 | # Check if task is still current before processing | COMMENT |
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| LOW | panel/pane/perspective.py | 121 | # In this case, we need to extract the column names from the row | COMMENT |
| LOW | panel/pane/vtk/synchronizable_serializer.py | 701 | # # actor may have a backface property instance (not used by vtkjs rendering) | COMMENT |
| LOW | panel/command/_migrate/compat.py | 241 | 'FastListTemplate', 'GoldenTemplate', 'MaterialTemplate', 'ReactTemplate', | COMMENT |
| LOW | …s/django_multi_apps/stockscreener/pn_model_20122019.py | 1 | # inputs | COMMENT |
| LOW | …s/django_multi_apps/stockscreener/pn_model_20122019.py | 21 | # plot.state.toolbar.logo = None | COMMENT |