AI Slop Code RIsk Monitor

napari/napari

napari: a fast, interactive, multi-dimensional image viewer for python

28.0 Elevated pattern signal View on GitHub

Maintenance and Governance Review

This report summarizes scanner evidence for napari/napari, a Python project with 2,777 GitHub stars. SynthScan examined 220,462 lines of code across 1111 source files, recording 3820 pattern matches distributed across 22 syntactic categories. The legacy adjusted pattern signal is 28.0 (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.

28.0
Adjusted Signal
28.0
Raw Pattern Score
100%
Time Factor
2026-10-09
Last Push
2.8K
Stars
Python
Language
220.5K
Lines of Code
1.1K
Files
3.8K
Pattern Hits
2026-10-12
Scan Date
0.24
HC Hit Rate

Risk Review · v3

Use each vector to guide manual verification of the underlying findings.

Cognitive Ownership Risk 47.4/100 · MEDIUM

Can maintainers explain intent, assumptions, and trade-offs? 2700 finding(s).

Hallucinated Dependency & Supply Chain Risk 43.4/100 · MEDIUM

Are imports declared and package/API names verified? 767 finding(s).

Agent Over-Engineering Ratio 50.5/100 · HIGH

Are wrappers, guards, and repeated structures necessary? 2603 finding(s).

PR Review Velocity Impact 73.3/100 · HIGH

Which changes need focused human review? 3820 finding(s).

What These Metrics Mean

Adjusted Signal
Legacy pattern score normalized per 1,000 scanned lines and multiplied by the repository-level time factor. It is not an estimate of AI authorship.
Raw Pattern Score
Sum of severity- and context-weighted pattern findings before applying the time factor.
Time Factor
A coarse multiplier based on repository last-push metadata. It does not identify when individual code was written.
Pattern Hits
Count of configured pattern findings. Review each location and surrounding code before acting.
HC Hit Rate
High- and critical-severity findings per scanned file. Severity is a configured detector weight, not proof of a vulnerability or authorship.
Lines / Files
Scan coverage denominators used by the legacy normalized score.

Pattern-Signal History

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.

Severity Breakdown

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.

CRITICAL 127HIGH 141MEDIUM 77LOW 3475

Directory Score Breakdown

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.

Pattern Findings

The scanner identified 3820 distinct pattern matches across 22 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.

Hyper-Verbose Identifiers2230 hits · 2248 pts
SeverityFileLineSnippetContext
LOWtools/create_pr_or_update_existing_one.py319def update_external_pr_comment(CODE
LOWtools/check_deps_version.py58def get_specified_min_version(specifier: SpecifierSet) -> Version:CODE
LOWtools/check_deps_version.py142def check_version_for_compatible_wheel(CODE
LOWtools/check_deps_version.py160def find_lowest_version_with_compatible_wheel(CODE
LOWtools/remove_html_comments_from_pr.py23def edit_pull_request_description(repo, pull_request_number, access_token):CODE
LOWexamples/theme_sample.py248 def _build_theme_selector_group(self) -> QGroupBox:STRING
LOWexamples/boids_simulation.py124 def compute_flock_step_forward(CODE
LOWexamples/boids_simulation.py194def iterate_accelerated_flock_forever(boids, num_workers=8):CODE
LOWexamples/interactive_move_rectangle_3d.py44def move_rectangle_along_normal(layer, event):STRING
LOWexamples/custom_mouse_functions.py33def get_connected_component_shape(layer, event):CODE
LOWexamples/custom_mouse_functions.py76def on_second_click_of_double_click(layer, event):CODE
LOWexamples/bbox_annotator.py57 def set_selected_features_to_default():CODE
LOWexamples/multithreading_two_way_.py23def two_way_communication_with_args(start, end):CODE
LOWexamples/dev/triangle_edge.py64def get_reference_edge_triangulation_points(shape: Shapes) -> np.ndarray:CODE
LOWexamples/dev/triangle_edge.py108def generate_miter_helper_vectors(CODE
LOWexamples/dev/triangle_edge.py140def generate_orthogonal_vectors(direction_vectors: np.ndarray) -> np.ndarray:CODE
LOWexamples/dev/triangle_edge.py197def generate_edge_triangle_borders(centers, offsets, triangles) -> np.ndarray:CODE
LOWexamples/dev/triangle_edge.py231def generate_face_triangle_borders(vertices, triangles) -> np.ndarray:CODE
LOWexamples/dev/triangle_edge.py268def get_helper_data_from_shapes(shapes_layer: Shapes) -> Helpers:CODE
LOWexamples/dev/controllable_overlay.py180def highlight_roi_box_handles(layer: Image, event: NapariMouseEvent) -> None:CODE
LOWsrc/napari_builtins/_measure_shapes.py67def update_features_with_measures(shapes_layer, event=None):CODE
LOWsrc/napari_builtins/_tests/test_writer.py50def test_no_write_layer_bad_extension(some_layer: 'layers.Layer'):CODE
LOWsrc/napari_builtins/_tests/test_io.py96def test_zarr_with_unrelated_file(tmp_path):CODE
LOWsrc/napari_builtins/_tests/test_io.py169def test_guess_layer_type_from_column_names():CODE
LOWsrc/napari_builtins/_tests/test_io.py214def test_csv_to_layer_data_raises(tmp_path):CODE
LOW⚡src/napari_builtins/_tests/test_io.py368def test_github_and_gitlab_to_raw_url(url, expected):CODE
LOW⚡src/napari_builtins/_tests/test_io.py372def test_read_zarr_non_existent_path_raises(tmp_path):CODE
LOW⚡src/napari_builtins/_tests/test_io.py378def test_read_zarr_remote_group_raises(tmp_path, monkeypatch):CODE
LOWsrc/napari_builtins/_tests/test_io.py393def test_read_zarr_remote_array_succeeds(tmp_path, monkeypatch):CODE
LOWsrc/napari_builtins/_tests/test_io.py408def test_zarr_multiple_groups_reads_first(tmp_path, monkeypatch):CODE
LOWsrc/napari_builtins/_tests/test_read.py97def test_read_python_source_uses_python_source_encoding(CODE
LOWsrc/napari_builtins/_tests/test_read.py143def test_read_wavefront_obj_lines(subject, vertices, faces):STRING
LOWsrc/napari_builtins/io/_read.py48def _git_provider_url_to_raw_url(filename: str) -> str:CODE
LOWsrc/napari_builtins/io/_read.py391def _guess_layer_type_from_column_names(CODE
LOWsrc/napari_builtins/io/_read.py534def _read_wavefront_obj_lines(CODE
LOWsrc/napari_builtins/io/_read.py642def load_and_execute_python_code(script_path: str) -> list[LayerData]:CODE
LOWsrc/napari_builtins/io/_write.py270def write_layer_data_with_plugins(CODE
LOWsrc/napari_builtins/_qt/features_table.py383 def _get_cell_value_and_dtype(CODE
LOWsrc/napari_builtins/_qt/features_table.py814 def _get_selection_event_for_layer(layer):CODE
LOWsrc/napari_builtins/_qt/features_table.py844 def _on_layer_selection_change(self):CODE
LOWsrc/napari_builtins/_qt/features_table.py909 def _build_multilayer_features_table(CODE
LOWsrc/napari_builtins/_qt/features_table.py961 def _get_original_categories_from_layers(CODE
LOWsrc/napari_builtins/_qt/features_table.py993 def _on_table_selection_changed(self):CODE
LOWsrc/napari_builtins/_qt/features_table.py1052 def _update_table_selected_cells(self):CODE
LOWsrc/napari_builtins/_qt/_tests/test_qt_read.py26 def test_load_and_execute_python_code_uses_python_source_encoding(CODE
LOWsrc/napari_builtins/_qt/_tests/test_features_table.py49def test_pandas_model_set_data(qtbot):CODE
LOWsrc/napari_builtins/_qt/_tests/test_features_table.py74def test_pandas_model_set_data_categorical(qtbot):CODE
LOWsrc/napari_builtins/_qt/_tests/test_features_table.py162def test_features_table_selection_labels(qtbot):CODE
LOWsrc/napari_builtins/_qt/_tests/test_features_table.py178def test_features_table_selection_shapes(qtbot):CODE
LOWsrc/napari_builtins/_qt/_tests/test_features_table.py224def test_features_table_save_csv(qtbot, tmp_path, monkeypatch):CODE
LOWsrc/napari_builtins/_qt/_tests/test_features_table.py242def test_features_table_copy_paste(qtbot, qapp):CODE
LOWsrc/napari_builtins/_qt/_tests/test_features_table.py305def test_features_tables_dtypes(CODE
LOWsrc/napari_builtins/_qt/_tests/test_features_table.py354def test_features_table_change_active_layer(qtbot):CODE
LOWsrc/napari_builtins/_qt/_tests/test_features_table.py393def _add_all_supported_layers(viewer, include=None):CODE
LOWsrc/napari_builtins/_qt/_tests/test_features_table.py444def test_features_table_multilayer_table_concat(qtbot):CODE
LOWsrc/napari_builtins/_qt/_tests/test_features_table.py478def test_features_table_multilayer_layer_selection_change(qtbot):CODE
LOWsrc/napari_builtins/_qt/_tests/test_features_table.py516def test_features_table_multilayer_table_selection(qtbot):CODE
LOWsrc/napari_builtins/_qt/_tests/test_features_table.py569def test_features_table_multilayer_edit(qtbot):CODE
LOWsrc/napari_builtins/_qt/_tests/test_features_table.py606def test_features_table_multilayer_save_csv(qtbot, tmp_path, monkeypatch):CODE
LOWsrc/napari/conftest.py235 def pytest_exception_interact(call):CODE
2170 more matches not shown…
Hallucination Indicators127 hits · 1708 pts
SeverityFileLineSnippetContext
CRITICAL⚡examples/multiple_viewer_widget.py151 self.viewer.dims.events.order.connect(self.update_cross)CODE
CRITICAL⚡examples/multiple_viewer_widget.py152 self.viewer.dims.events.ndim.connect(self._update_ndim)CODE
CRITICAL⚡examples/multiple_viewer_widget.py153 self.viewer.dims.events.current_step.connect(self.update_cross)CODE
CRITICAL⚡examples/multiple_viewer_widget.py251 self.viewer.layers.events.inserted.connect(self._layer_added)CODE
CRITICAL⚡examples/multiple_viewer_widget.py252 self.viewer.layers.events.removed.connect(self._layer_removed)CODE
CRITICAL⚡examples/multiple_viewer_widget.py253 self.viewer.layers.events.moved.connect(self._layer_moved)CODE
CRITICAL⚡examples/multiple_viewer_widget.py254 self.viewer.layers.selection.events.active.connect(CODE
CRITICAL⚡examples/multiple_viewer_widget.py257 self.viewer.dims.events.current_step.connect(self._point_update)CODE
CRITICAL⚡examples/multiple_viewer_widget.py258 self.viewer_model1.dims.events.current_step.connect(self._point_update)CODE
CRITICAL⚡examples/multiple_viewer_widget.py259 self.viewer_model2.dims.events.current_step.connect(self._point_update)CODE
CRITICAL⚡examples/multiple_viewer_widget.py260 self.viewer.dims.events.order.connect(self._order_update)CODE
CRITICALexamples/viewer_fps_label.py24viewer.window._qt_viewer.canvas._scene_canvas.measure_fps(callback=update_fps)CODE
CRITICALsrc/napari_builtins/_qt/features_table.py755 self.viewer.layers.selection.events.changed.connect(CODE
CRITICALsrc/napari_builtins/_qt/features_table.py758 self.viewer.layers.events.renamed.connect(self._on_layer_renamed)CODE
CRITICALsrc/napari/layers/labels/labels.py2159 value = self._slice.image.raw.dtype.type(value)CODE
CRITICAL⚡src/napari/layers/image/_image_key_bindings.py78 viewer.scene.camera.events.angles.connect(CODE
CRITICAL⚡src/napari/layers/image/_image_key_bindings.py83 viewer.scene.camera.events.angles.disconnect(CODE
CRITICALsrc/napari/_tests/test_multiple_viewers.py12 v1.window._qt_viewer.viewerButtons.gridViewButton.click()CODE
CRITICAL⚡src/napari/_vispy/canvas.py258 self.viewer.cursor.events.style.connect(self._on_cursor)CODE
CRITICAL⚡src/napari/_vispy/canvas.py259 self.viewer.cursor.events.size.connect(self._on_cursor)CODE
CRITICAL⚡src/napari/_vispy/canvas.py262 self.viewer.canvas.events.background_color_override.connect(CODE
CRITICAL⚡src/napari/_vispy/canvas.py266 self.viewer.scene.camera.events.mouse_pan.connect(self._on_interactive)CODE
CRITICAL⚡src/napari/_vispy/canvas.py267 self.viewer.scene.camera.events.mouse_zoom.connect(CODE
CRITICAL⚡src/napari/_vispy/canvas.py270 self.viewer.scene.camera.events.zoom.connect(self._on_cursor)CODE
CRITICAL⚡src/napari/_vispy/canvas.py271 self.viewer.scene.camera.events.view_direction.connect(CODE
CRITICAL⚡src/napari/_vispy/canvas.py274 self.viewer.dims.events.ndisplay.connect(CODE
CRITICAL⚡src/napari/_vispy/canvas.py278 self.viewer.canvas.overlays._zoom_box.events.zoom_area.connect(CODE
CRITICAL⚡src/napari/_vispy/canvas.py281 self.viewer.layers.events.reordered.connect(self._update_scenegraph)CODE
CRITICAL⚡src/napari/_vispy/canvas.py282 self.viewer.layers.events.removed.connect(self._remove_layer)CODE
CRITICAL⚡src/napari/_vispy/canvas.py283 self.viewer.layers.events.begin_batch.connect(CODE
CRITICAL⚡src/napari/_vispy/canvas.py286 self.viewer.layers.events.end_batch.connect(CODE
CRITICAL⚡src/napari/_vispy/canvas.py289 self.viewer.layers.events.units.connect(CODE
CRITICAL⚡src/napari/_vispy/canvas.py292 self.viewer.canvas.grid.events.stride.connect(self._update_scenegraph)CODE
CRITICAL⚡src/napari/_vispy/canvas.py293 self.viewer.canvas.grid.events.shape.connect(self._update_scenegraph)CODE
CRITICAL⚡src/napari/_vispy/canvas.py294 self.viewer.canvas.grid.events.enabled.connect(self._update_scenegraph)CODE
CRITICAL⚡src/napari/_vispy/canvas.py295 self.viewer.canvas.grid.events.spacing.connect(self._update_scenegraph)CODE
CRITICAL⚡src/napari/_vispy/canvas.py296 self.viewer.scene.overlays.events.added.connect(CODE
CRITICAL⚡src/napari/_vispy/canvas.py299 self.viewer.scene.overlays.events.removed.connect(CODE
CRITICAL⚡src/napari/_vispy/canvas.py302 self.viewer.scene.overlays.events.changed.connect(CODE
CRITICAL⚡src/napari/_vispy/canvas.py305 self.viewer.canvas.overlays.events.added.connect(CODE
CRITICAL⚡src/napari/_vispy/canvas.py308 self.viewer.canvas.overlays.events.removed.connect(CODE
CRITICAL⚡src/napari/_vispy/canvas.py311 self.viewer.canvas.overlays.events.changed.connect(CODE
CRITICAL⚡src/napari/_vispy/canvas.py315 self.viewer.canvas.overlay_tiling.events.connect(CODE
CRITICAL⚡src/napari/_vispy/canvas.py319 self.viewer.canvas.events._overlay_positions_changed.connect(CODE
CRITICAL⚡src/napari/_vispy/canvas.py323 self.viewer.canvas.events.size.connect(self._on_model_size_change)CODE
CRITICALsrc/napari/_vispy/canvas.py733 with self.viewer.canvas.events.size.blocker(CODE
CRITICAL⚡src/napari/_vispy/layers/points.py34 self.layer._border.events.colors.connect(self._on_data_change)CODE
CRITICAL⚡src/napari/_vispy/layers/points.py35 self.layer._border.events.color_properties.connect(CODE
CRITICAL⚡src/napari/_vispy/layers/points.py39 self.layer._face.events.colors.connect(self._on_data_change)CODE
CRITICAL⚡src/napari/_vispy/layers/points.py40 self.layer._face.events.color_properties.connect(self._on_data_change)CODE
CRITICAL⚡src/napari/_vispy/layers/scalar_field.py62 self.layer.plane.events.position.connect(CODE
CRITICAL⚡src/napari/_vispy/layers/scalar_field.py65 self.layer.plane.events.thickness.connect(CODE
CRITICAL⚡src/napari/_vispy/layers/scalar_field.py68 self.layer.plane.events.normal.connect(self._on_plane_normal_change)CODE
CRITICAL⚡src/napari/_vispy/layers/surface.py48 self.layer.wireframe.events.visible.connect(CODE
CRITICAL⚡src/napari/_vispy/layers/surface.py51 self.layer.wireframe.events.width.connect(CODE
CRITICAL⚡src/napari/_vispy/layers/surface.py54 self.layer.wireframe.events.color.connect(CODE
CRITICAL⚡src/napari/_vispy/layers/surface.py57 self.layer.normals.face.events.connect(self._on_face_normals_change)CODE
CRITICAL⚡src/napari/_vispy/layers/surface.py58 self.layer.normals.vertex.events.connect(CODE
CRITICALsrc/napari/_vispy/_tests/test_utils.py57 viewer.window._qt_viewer.canvas.cursor.shape()CODE
CRITICALsrc/napari/_vispy/_tests/test_utils.py63 viewer.window._qt_viewer.canvas.cursor.shape()CODE
67 more matches not shown…
Unused Imports605 hits · 602 pts
SeverityFileLineSnippetContext
LOWtools/check_updated_packages.py1CODE
LOWexamples/theme_sample.py15CODE
LOWexamples/boids_simulation.py25CODE
LOWexamples/mgui_dask_delayed_.py10CODE
LOWexamples/dev/controllable_overlay.py21CODE
LOWsrc/napari_builtins/_tests/test_writer.py11CODE
LOWsrc/napari_builtins/_tests/test_io.py27CODE
LOWsrc/napari_builtins/_tests/test_read.py16CODE
LOWsrc/napari_builtins/_tests/test_read.py17CODE
LOWsrc/napari_builtins/io/_read.py1CODE
LOWsrc/napari_builtins/io/_write.py13CODE
LOWsrc/napari_builtins/io/__init__.py1CODE
LOWsrc/napari_builtins/io/__init__.py1CODE
LOWsrc/napari_builtins/io/__init__.py1CODE
LOWsrc/napari_builtins/io/__init__.py1CODE
LOWsrc/napari_builtins/io/__init__.py1CODE
LOWsrc/napari_builtins/io/__init__.py1CODE
LOWsrc/napari_builtins/io/__init__.py1CODE
LOWsrc/napari_builtins/io/__init__.py1CODE
LOWsrc/napari_builtins/io/__init__.py11CODE
LOWsrc/napari_builtins/io/__init__.py11CODE
LOWsrc/napari_builtins/io/__init__.py11CODE
LOWsrc/napari_builtins/io/__init__.py11CODE
LOWsrc/napari_builtins/io/__init__.py11CODE
LOWsrc/napari_builtins/io/__init__.py11CODE
LOWsrc/napari_builtins/io/__init__.py11CODE
LOWsrc/napari_builtins/_qt/features_table.py1CODE
LOWsrc/napari/conftest.py32CODE
LOWsrc/napari/viewer.py13CODE
LOWsrc/napari/window.py13CODE
LOWsrc/napari/types.py25CODE
LOWsrc/napari/types.py26CODE
LOWsrc/napari/types.py27CODE
LOWsrc/napari/types.py28CODE
LOWsrc/napari/_event_loop.py2CODE
LOWsrc/napari/settings/_plugin_config_generator.py1CODE
LOWsrc/napari/settings/_base.py1CODE
LOWsrc/napari/settings/__init__.py8CODE
LOWsrc/napari/settings/_yaml.py1CODE
LOWsrc/napari/settings/_shortcuts.py1CODE
LOWsrc/napari/settings/_application.py1CODE
LOWsrc/napari/settings/_migrations.py1CODE
LOWsrc/napari/settings/_plugin_settings.py1CODE
LOWsrc/napari/settings/_tests/test_plugins.py6CODE
LOWsrc/napari/experimental/__init__.py1CODE
LOWsrc/napari/experimental/__init__.py1CODE
LOWsrc/napari/experimental/__init__.py1CODE
LOWsrc/napari/layers/_source.py1CODE
LOWsrc/napari/layers/intensity_mixin.py14CODE
LOWsrc/napari/layers/intensity_mixin.py15CODE
LOWsrc/napari/layers/__init__.py10CODE
LOWsrc/napari/layers/__init__.py11CODE
LOWsrc/napari/layers/__init__.py12CODE
LOWsrc/napari/layers/__init__.py13CODE
LOWsrc/napari/layers/__init__.py14CODE
LOWsrc/napari/layers/__init__.py15CODE
LOWsrc/napari/layers/__init__.py16CODE
LOWsrc/napari/layers/__init__.py17CODE
LOWsrc/napari/layers/_layer_actions.py6CODE
LOWsrc/napari/layers/_multiscale_data.py1CODE
545 more matches not shown…
Cross-File Repetition91 hits · 455 pts
SeverityFileLineSnippetContext
HIGHsrc/napari/layers/labels/labels.py0dataframe-like features table. it is an implementation detail that this is a `pandas.dataframe`. in the future, we will STRING
HIGHsrc/napari/layers/tracks/tracks.py0dataframe-like features table. it is an implementation detail that this is a `pandas.dataframe`. in the future, we will STRING
HIGHsrc/napari/layers/tracks/_track_utils.py0dataframe-like features table. it is an implementation detail that this is a `pandas.dataframe`. in the future, we will STRING
HIGHsrc/napari/layers/surface/surface.py0dataframe-like features table. it is an implementation detail that this is a `pandas.dataframe`. in the future, we will STRING
HIGHsrc/napari/layers/shapes/shapes.py0dataframe-like features table. it is an implementation detail that this is a `pandas.dataframe`. in the future, we will STRING
HIGHsrc/napari/layers/vectors/vectors.py0dataframe-like features table. it is an implementation detail that this is a `pandas.dataframe`. in the future, we will STRING
HIGHsrc/napari/layers/points/points.py0dataframe-like features table. it is an implementation detail that this is a `pandas.dataframe`. in the future, we will STRING
HIGHsrc/napari/layers/labels/labels.py0get dictionary of layer state. returns ------- state : dict of str to any dictionary of layer state.STRING
HIGHsrc/napari/layers/tracks/tracks.py0get dictionary of layer state. returns ------- state : dict of str to any dictionary of layer state.STRING
HIGHsrc/napari/layers/surface/surface.py0get dictionary of layer state. returns ------- state : dict of str to any dictionary of layer state.STRING
HIGHsrc/napari/layers/shapes/shapes.py0get dictionary of layer state. returns ------- state : dict of str to any dictionary of layer state.STRING
HIGHsrc/napari/layers/vectors/vectors.py0get dictionary of layer state. returns ------- state : dict of str to any dictionary of layer state.STRING
HIGHsrc/napari/layers/image/image.py0get dictionary of layer state. returns ------- state : dict of str to any dictionary of layer state.STRING
HIGHsrc/napari/layers/points/points.py0get dictionary of layer state. returns ------- state : dict of str to any dictionary of layer state.STRING
HIGHsrc/napari/layers/labels/labels.py0tooltip message of the data at a coordinate position. parameters ---------- position : ndarray position in either data oSTRING
HIGHsrc/napari/layers/points/points.py0tooltip message of the data at a coordinate position. parameters ---------- position : ndarray position in either data oSTRING
HIGHsrc/napari/layers/base/base.py0tooltip message of the data at a coordinate position. parameters ---------- position : ndarray position in either data oSTRING
HIGHsrc/napari/layers/labels/_tests/test_labels.py0test getting the value of the rgb data at the current coordinates.STRING
HIGHsrc/napari/layers/shapes/_tests/test_shapes.py0test getting the value of the rgb data at the current coordinates.STRING
HIGHsrc/napari/layers/vectors/_tests/test_vectors.py0test getting the value of the rgb data at the current coordinates.STRING
HIGHsrc/napari/layers/image/_tests/test_volume.py0test getting the value of the rgb data at the current coordinates.STRING
HIGHsrc/napari/layers/image/_tests/test_image.py0test getting the value of the rgb data at the current coordinates.STRING
HIGHsrc/napari/layers/image/_tests/test_multiscale.py0test getting the value of the rgb data at the current coordinates.STRING
HIGHsrc/napari/layers/points/_tests/test_points.py0test getting the value of the rgb data at the current coordinates.STRING
HIGHsrc/napari/layers/tracks/tracks.py0extent of layer in data coordinates. returns ------- extent_data : array, shape (2, d)STRING
HIGHsrc/napari/layers/surface/surface.py0extent of layer in data coordinates. returns ------- extent_data : array, shape (2, d)STRING
HIGHsrc/napari/layers/shapes/shapes.py0extent of layer in data coordinates. returns ------- extent_data : array, shape (2, d)STRING
HIGHsrc/napari/layers/vectors/vectors.py0extent of layer in data coordinates. returns ------- extent_data : array, shape (2, d)STRING
HIGHsrc/napari/layers/points/points.py0extent of layer in data coordinates. returns ------- extent_data : array, shape (2, d)STRING
HIGHsrc/napari/layers/_scalar_field/scalar_field.py0extent of layer in data coordinates. returns ------- extent_data : array, shape (2, d)STRING
HIGHsrc/napari/layers/base/base.py0extent of layer in data coordinates. returns ------- extent_data : array, shape (2, d)STRING
HIGHsrc/napari/layers/surface/surface.py0dataframe-like with one row of feature default values. see `features` for more details on the type of this property.STRING
HIGHsrc/napari/layers/shapes/shapes.py0dataframe-like with one row of feature default values. see `features` for more details on the type of this property.STRING
HIGHsrc/napari/layers/vectors/vectors.py0dataframe-like with one row of feature default values. see `features` for more details on the type of this property.STRING
HIGHsrc/napari/layers/points/points.py0dataframe-like with one row of feature default values. see `features` for more details on the type of this property.STRING
HIGHsrc/napari/layers/surface/surface.py0make a points slice request based on the given dims and these data.STRING
HIGHsrc/napari/layers/vectors/vectors.py0make a points slice request based on the given dims and these data.STRING
HIGHsrc/napari/layers/points/points.py0make a points slice request based on the given dims and these data.STRING
HIGHsrc/napari/layers/shapes/shapes.py0return the colormap to be applied to a property to get the border color. returns ------- colormap : napari.utils.colormaSTRING
HIGHsrc/napari/layers/vectors/vectors.py0return the colormap to be applied to a property to get the border color. returns ------- colormap : napari.utils.colormaSTRING
HIGHsrc/napari/layers/points/points.py0return the colormap to be applied to a property to get the border color. returns ------- colormap : napari.utils.colormaSTRING
HIGHsrc/napari/layers/shapes/shapes.py0none, (float, float): contrast limits for mapping the border_color colormap property to 0 and 1STRING
HIGHsrc/napari/layers/vectors/vectors.py0none, (float, float): contrast limits for mapping the border_color colormap property to 0 and 1STRING
HIGHsrc/napari/layers/points/points.py0none, (float, float): contrast limits for mapping the border_color colormap property to 0 and 1STRING
HIGHsrc/napari/layers/shapes/shapes.py0str: face color setting mode direct (default mode) allows each point to be set arbitrarily cycle allows the color to be STRING
HIGHsrc/napari/layers/vectors/vectors.py0str: face color setting mode direct (default mode) allows each point to be set arbitrarily cycle allows the color to be STRING
HIGHsrc/napari/layers/points/points.py0str: face color setting mode direct (default mode) allows each point to be set arbitrarily cycle allows the color to be STRING
HIGHsrc/napari/layers/shapes/shapes.py0calculate and update face and border colors if using a cycle or color map parameters ---------- update_color_mapping : bSTRING
HIGHsrc/napari/layers/utils/color_manager.py0calculate and update face and border colors if using a cycle or color map parameters ---------- update_color_mapping : bSTRING
HIGHsrc/napari/layers/vectors/vectors.py0calculate and update face and border colors if using a cycle or color map parameters ---------- update_color_mapping : bSTRING
HIGHsrc/napari/layers/points/points.py0calculate and update face and border colors if using a cycle or color map parameters ---------- update_color_mapping : bSTRING
HIGHsrc/napari/layers/shapes/shapes.py0get the colors of the text elements at the given indices.STRING
HIGHsrc/napari/layers/utils/text_manager.py0get the colors of the text elements at the given indices.STRING
HIGHsrc/napari/layers/points/points.py0get the colors of the text elements at the given indices.STRING
HIGHsrc/napari/layers/shapes/_shapes_constants.py0colormode: color setting mode. direct (default mode) allows each point to be set arbitrarily cycle allows the color to bSTRING
HIGHsrc/napari/layers/utils/_color_manager_constants.py0colormode: color setting mode. direct (default mode) allows each point to be set arbitrarily cycle allows the color to bSTRING
HIGHsrc/napari/layers/points/_points_constants.py0colormode: color setting mode. direct (default mode) allows each point to be set arbitrarily cycle allows the color to bSTRING
HIGHsrc/napari/layers/shapes/_tests/test_shapes.py0helper function to make property values parameters ---------- values the values to be cycled. length : int the length ofSTRING
HIGHsrc/napari/layers/utils/_tests/test_color_manager.py0helper function to make property values parameters ---------- values the values to be cycled. length : int the length ofSTRING
HIGHsrc/napari/layers/points/_tests/test_points.py0helper function to make property values parameters ---------- values the values to be cycled. length : int the length ofSTRING
31 more matches not shown…
Modern Structural Boilerplate199 hits · 202 pts
SeverityFileLineSnippetContext
LOWexamples/theme_sample.py154 def set_color(self, color: str) -> None:STRING
LOWexamples/theme_sample.py181 def set_color(self, color: str) -> None:STRING
LOWsrc/napari_builtins/io/__init__.py21__all__ = [CODE
LOWsrc/napari/window.py9__all__ = ['Window']CODE
LOWsrc/napari/view_layers.py13__all__ = ['imshow']CODE
LOWsrc/napari/types.py31__all__ = [CODE
LOWsrc/napari/settings/__init__.py18__all__ = [CODE
LOW⚡src/napari/settings/_experimental.py149def _update_triangulation_backend(event: Event) -> None:CODE
LOW⚡src/napari/settings/_experimental.py155def _update_colormap_backend(event: Event) -> None:CODE
LOWsrc/napari/experimental/__init__.py7__all__ = [CODE
LOWsrc/napari/layers/__init__.py27__all__ = [CODE
LOWsrc/napari/layers/labels/__init__.py10__all__ = ['Labels']CODE
LOWsrc/napari/layers/tracks/tracks.py276 def _set_view_slice(self) -> None:CODE
LOWsrc/napari/layers/tracks/tracks.py299 def _update_thumbnail(self) -> None:CODE
LOWsrc/napari/layers/tracks/tracks.py676 def _set_view_slice(self) -> None:CODE
LOWsrc/napari/layers/tracks/__init__.py3__all__ = ['Tracks']CODE
LOWsrc/napari/layers/surface/__init__.py3__all__ = ['Surface']CODE
LOWsrc/napari/layers/surface/surface.py682 def _update_thumbnail(self) -> None:CODE
LOWsrc/napari/layers/surface/surface.py818 def _set_view_slice(self) -> None:CODE
LOWsrc/napari/layers/surface/surface.py850 def _update_slice_response(self, response: _SurfaceSliceResponse) -> None:CODE
LOWsrc/napari/layers/shapes/shapes.py2700 def _set_highlight(self, force=False) -> None:CODE
LOWsrc/napari/layers/shapes/_shape_list.py749 def _update_displayed(self) -> None:CODE
LOWsrc/napari/layers/shapes/_shape_list.py1122 def _update_vertices(self, index: int) -> None:CODE
LOWsrc/napari/layers/shapes/_shape_list.py1149 def _update_mesh_triangles(self, index: int) -> None:CODE
LOWsrc/napari/layers/shapes/__init__.py10__all__ = ['Shapes']CODE
LOW…ari/layers/shapes/_accelerated_triangulate_dispatch.py83def _set_numba(value: bool) -> None:CODE
LOW…ari/layers/shapes/_accelerated_triangulate_dispatch.py106def _set_warmup(value: bool) -> None:CODE
LOW…c/napari/layers/shapes/_shapes_models/_polygon_base.py90 def _update_displayed_data(self) -> None:CODE
LOWsrc/napari/layers/shapes/_shapes_models/line.py69 def _update_displayed_data(self) -> None:CODE
LOWsrc/napari/layers/shapes/_shapes_models/__init__.py8__all__ = ['Ellipse', 'Line', 'Path', 'Polygon', 'Rectangle', 'Shape']CODE
LOWsrc/napari/layers/shapes/_shapes_models/rectangle.py75 def _update_displayed_data(self) -> None:CODE
LOWsrc/napari/layers/shapes/_shapes_models/shape.py205 def _update_displayed_data(self) -> None:CODE
LOWsrc/napari/layers/shapes/_shapes_models/shape.py306 def _set_empty_edge(self) -> None:CODE
LOWsrc/napari/layers/shapes/_shapes_models/shape.py311 def _set_empty_face(self) -> None:CODE
LOWsrc/napari/layers/shapes/_shapes_models/ellipse.py85 def _update_displayed_data(self) -> None:CODE
LOWsrc/napari/layers/utils/layer_utils.py967 def set_values(self, values, *, num_data=None) -> None:CODE
LOWsrc/napari/layers/utils/layer_utils.py977 def set_defaults(self, defaults: dict[str, Any] | pd.DataFrame) -> None:CODE
LOWsrc/napari/layers/utils/stack_utils.py18logger = logging.getLogger(__name__)CODE
LOWsrc/napari/layers/vectors/__init__.py3__all__ = ['Vectors']CODE
LOWsrc/napari/layers/image/__init__.py10__all__ = ['Image']CODE
LOWsrc/napari/layers/image/_image_mouse_bindings.py91def set_plane_position(layer: Image, event: Event) -> None:CODE
LOWsrc/napari/layers/image/image.py533 def _update_thumbnail(self) -> None:CODE
LOWsrc/napari/layers/points/_points_mouse_bindings.py184def _update_drag_vectors_from_event(layer: Points, event: Event) -> None:CODE
LOWsrc/napari/layers/points/points.py627 def _set_data(self, data: np.ndarray | None) -> None:CODE
LOWsrc/napari/layers/points/points.py1850 def _set_highlight(self, force: bool = False) -> None:CODE
LOWsrc/napari/layers/points/points.py1917 def _update_thumbnail(self) -> None:CODE
LOWsrc/napari/layers/points/points.py2470 def _set_view_slice(self) -> None:CODE
LOWsrc/napari/layers/points/points.py2502 def _update_slice_response(self, response: _PointSliceResponse) -> None:CODE
LOWsrc/napari/layers/points/__init__.py10__all__ = ['Points']CODE
LOWsrc/napari/layers/base/_test_util_sample_layer.py13 def _set_view_slice(self) -> None:CODE
LOWsrc/napari/layers/base/_test_util_sample_layer.py91 def _set_view_slice(self) -> None:CODE
LOWsrc/napari/layers/base/_test_util_sample_layer.py94 def _update_thumbnail(self) -> None:CODE
LOWsrc/napari/layers/base/__init__.py4__all__ = ['ActionType', 'Layer', 'LayerLock', '_LayerSlicingState', 'no_op']CODE
LOW⚡src/napari/layers/base/base.py309 def _set_loaded(self, loaded: bool) -> None:CODE
LOW⚡src/napari/layers/base/base.py315 def _set_unloaded_slice_id(self, slice_id: int) -> None:CODE
LOW⚡src/napari/layers/base/base.py324 def _update_loaded_slice_id(self, slice_id: int) -> None:CODE
LOWsrc/napari/layers/base/base.py141 def set_view_slice(self) -> None:CODE
LOWsrc/napari/layers/base/base.py874 def _set_source(self, source: Source) -> None:CODE
LOWsrc/napari/layers/base/base.py1129 def _update_dims(self) -> None:CODE
LOWsrc/napari/layers/base/base.py1441 def set_view_slice(self) -> None:CODE
139 more matches not shown…
Over-Commented Block245 hits · 199 pts
SeverityFileLineSnippetContext
LOWtox.ini1# Tox (http://tox.testrun.org/) is a tool for running testsCOMMENT
LOWresources/requirements_pyrefly.txt1# This file was autogenerated by uv via the following command:COMMENT
LOWresources/requirements_pyrefly.txt21magicgui==0.10.2COMMENT
LOWresources/requirements_pyrefly.txt41 # npe2COMMENT
LOWresources/requirements_pyrefly.txt61 # via -r resources/requirements_pyrefly.inCOMMENT
LOWresources/requirements_pyrefly.txt81superqt==0.8.2COMMENT
LOWresources/requirements_pyrefly.txt101 # typing-inspectionCOMMENT
LOWresources/constraints/constraints_py3.12_examples.txt1# This file was autogenerated by uv via the following command:COMMENT
LOWresources/constraints/constraints_py3.12_examples.txt21attrs==26.1.0COMMENT
LOWresources/constraints/constraints_py3.12_examples.txt41 # pyogrioCOMMENT
LOWresources/constraints/constraints_py3.12_examples.txt61 # via glasbeyCOMMENT
LOWresources/constraints/constraints_py3.12_examples.txt81 # napari (pyproject.toml:gallery)COMMENT
LOWresources/constraints/constraints_py3.12_examples.txt101 # via trackastraCOMMENT
LOWresources/constraints/constraints_py3.12_examples.txt121 # viaCOMMENT
LOWresources/constraints/constraints_py3.12_examples.txt141gurobipy==13.0.3COMMENT
LOWresources/constraints/constraints_py3.12_examples.txt161 # trackastraCOMMENT
LOWresources/constraints/constraints_py3.12_examples.txt181 # viaCOMMENT
LOWresources/constraints/constraints_py3.12_examples.txt201 # trackastraCOMMENT
LOWresources/constraints/constraints_py3.12_examples.txt221 # napari (pyproject.toml)COMMENT
LOWresources/constraints/constraints_py3.12_examples.txt241 # via richCOMMENT
LOWresources/constraints/constraints_py3.12_examples.txt261 # via tensorstoreCOMMENT
LOWresources/constraints/constraints_py3.12_examples.txt281 # via napari (pyproject.toml)COMMENT
LOWresources/constraints/constraints_py3.12_examples.txt301 # viaCOMMENT
LOWresources/constraints/constraints_py3.12_examples.txt321 # fastremapCOMMENT
LOWresources/constraints/constraints_py3.12_examples.txt341 # partsegcore-compiled-backendCOMMENT
LOWresources/constraints/constraints_py3.12_examples.txt361 # nvidia-cusolverCOMMENT
LOWresources/constraints/constraints_py3.12_examples.txt381 # viaCOMMENT
LOWresources/constraints/constraints_py3.12_examples.txt401 # daskCOMMENT
LOWresources/constraints/constraints_py3.12_examples.txt421 # zarrCOMMENT
LOWresources/constraints/constraints_py3.12_examples.txt441 # imageioCOMMENT
LOWresources/constraints/constraints_py3.12_examples.txt461 # viaCOMMENT
LOWresources/constraints/constraints_py3.12_examples.txt481 # ipykernelCOMMENT
LOWresources/constraints/constraints_py3.12_examples.txt501 # geffCOMMENT
LOWresources/constraints/constraints_py3.12_examples.txt521 # richCOMMENT
LOWresources/constraints/constraints_py3.12_examples.txt541 # napari (pyproject.toml)COMMENT
LOWresources/constraints/constraints_py3.12_examples.txt561 # pytest-metadataCOMMENT
LOWresources/constraints/constraints_py3.12_examples.txt581 # via virtualenvCOMMENT
LOWresources/constraints/constraints_py3.12_examples.txt601 # viaCOMMENT
LOWresources/constraints/constraints_py3.12_examples.txt621 # nilearnCOMMENT
LOWresources/constraints/constraints_py3.12_examples.txt641 # viaCOMMENT
LOWresources/constraints/constraints_py3.12_examples.txt661 # pyside6-essentialsCOMMENT
LOWresources/constraints/constraints_py3.12_examples.txt681 # via torchCOMMENT
LOWresources/constraints/constraints_py3.12_examples.txt701 # distributedCOMMENT
LOWresources/constraints/constraints_py3.12_examples.txt721 # via napari (pyproject.toml:gallery)COMMENT
LOWresources/constraints/constraints_py3.12_examples.txt741 # app-modelCOMMENT
LOWresources/constraints/constraints_py3.12_examples.txt761 # viaCOMMENT
LOWresources/constraints/constraints_py3.12_examples.txt781 # viaCOMMENT
LOWresources/constraints/constraints_py3.14.txt1# This file was autogenerated by uv via the following command:COMMENT
LOWresources/constraints/constraints_py3.14.txt21 # referencingCOMMENT
LOWresources/constraints/constraints_py3.14.txt61 # viaCOMMENT
LOWresources/constraints/constraints_py3.14.txt81frozenlist==1.8.0COMMENT
LOWresources/constraints/constraints_py3.14.txt101 # yarlCOMMENT
LOWresources/constraints/constraints_py3.14.txt121ipython-pygments-lexers==1.1.1COMMENT
LOWresources/constraints/constraints_py3.14.txt141 # qtconsoleCOMMENT
LOWresources/constraints/constraints_py3.14.txt161magicgui==0.10.2COMMENT
LOWresources/constraints/constraints_py3.14.txt181multidict==6.9.1COMMENT
LOWresources/constraints/constraints_py3.14.txt201 # scikit-imageCOMMENT
LOWresources/constraints/constraints_py3.14.txt221 # napari-svgCOMMENT
LOWresources/constraints/constraints_py3.14.txt241 # viaCOMMENT
LOWresources/constraints/constraints_py3.14.txt261 # via torchCOMMENT
185 more matches not shown…
Cross-Language Confusion30 hits · 198 pts
SeverityFileLineSnippetContext
HIGHsrc/napari/viewer.py121 self.window._qt_viewer.console.push(variables)CODE
HIGHsrc/napari/layers/labels/_tests/test_labels.py2297 with more colors is undefined, so we don't test it here.CODE
HIGHsrc/napari/layers/surface/_slice.py143 # a non-valid index is undefined, but shouldn't happenCOMMENT
HIGHsrc/napari/layers/vectors/vectors.py565 self.events.length()CODE
HIGHsrc/napari/_vispy/visuals/volume.py113 if (u_clamp_at_border || (prev_loc[i] >= 0.0 && prev_loc[i] <= 1.0)) {CODE
HIGHsrc/napari/_vispy/visuals/volume.py120 if (u_clamp_at_border || (next_loc[i] >= 0.0 && next_loc[i] <= 1.0)) {CODE
HIGH⚡src/napari/_vispy/visuals/volume.py168 if (is_on_border && (i != 0 && j != 0 && k != 0)) {CODE
HIGH⚡src/napari/_vispy/visuals/volume.py176 if (is_in_bounds || u_clamp_at_border) {CODE
HIGH⚡src/napari/_vispy/visuals/volume.py183 (1 + float(j == 0 || k == 0) + 2 * float(j == 0 && k == 0));CODE
HIGH⚡src/napari/_vispy/visuals/volume.py183 (1 + float(j == 0 || k == 0) + 2 * float(j == 0 && k == 0));CODE
HIGH⚡src/napari/_vispy/visuals/volume.py185 (1 + float(i == 0 || k == 0) + 2 * float(i == 0 && k == 0));CODE
HIGH⚡src/napari/_vispy/visuals/volume.py185 (1 + float(i == 0 || k == 0) + 2 * float(i == 0 && k == 0));CODE
HIGH⚡src/napari/_vispy/visuals/volume.py187 (1 + float(i == 0 || j == 0) + 2 * float(i == 0 && j == 0));CODE
HIGH⚡src/napari/_vispy/visuals/volume.py187 (1 + float(i == 0 || j == 0) + 2 * float(i == 0 && j == 0));CODE
HIGH⚡src/napari/_vispy/visuals/volume.py189 next.x += int(i == 1 && j == 0 && k == 0) * val;CODE
HIGH⚡src/napari/_vispy/visuals/volume.py190 next.y += int(i == 0 && j == 1 && k == 0) * val;CODE
HIGH⚡src/napari/_vispy/visuals/volume.py191 next.z += int(i == 0 && j == 0 && k == 1) * val;CODE
HIGH⚡src/napari/_vispy/visuals/volume.py192 prev.x += int(i == -1 && j == 0 && k == 0) * val;CODE
HIGH⚡src/napari/_vispy/visuals/volume.py193 prev.y += int(i == 0 && j == -1 && k == 0) * val;CODE
HIGH⚡src/napari/_vispy/visuals/volume.py194 prev.z += int(i == 0 && j == 0 && k == -1) * val;CODE
HIGH⚡src/napari/_vispy/visuals/volume.py196 is_on_border = is_on_border || (!is_in_bounds && (i == 0 || j == 0 || k == 0));CODE
HIGH⚡src/napari/_vispy/visuals/volume.py201 if (is_on_border && u_clamp_at_border) {CODE
HIGHsrc/napari/utils/misc.py392 return df1.equals(df2)CODE
HIGHsrc/napari/utils/io.py280 console.push(variables)CODE
HIGHsrc/napari/utils/events/evented_model.py458 before = self.model_config.get('use_enum_values', null)CODE
HIGHsrc/napari/components/_layer_slicer.py325 Attempt to remove task, return false if task not found, return trueSTRING
HIGH⚡src/napari/_qt/qt_viewer.py557 console.push(CODE
HIGH⚡src/napari/_qt/qt_viewer.py565 console.push({'np': np})CODE
HIGH⚡src/napari/_qt/qt_viewer.py568 console.push(CODE
HIGHsrc/napari/_qt/qt_viewer.py1338 filenames.append(url.toString())CODE
Self-Referential Comments46 hits · 148 pts
SeverityFileLineSnippetContext
MEDIUM⚡examples/surface_multi_texture.py106# Create the napari layersCOMMENT
MEDIUMexamples/bbox_annotator.py43 # Create the label selection menuCOMMENT
MEDIUMexamples/affine_coffee_cup.py39# Define an original affine transformation to be position of surface upon being loaded into viewerCOMMENT
MEDIUMexamples/affine_coffee_cup.py59 # Define a new affine transform for the creamer surface, where it is moved up and at an angle to be 'poured' into thCOMMENT
MEDIUMexamples/screenshot_and_export_figure.py25# Create a napari viewer with multiple layer types and add a scale bar.COMMENT
MEDIUMexamples/mouse_drag_image_warping.py40# Define a function to estimate the warping required to transform the destination pointsCOMMENT
MEDIUMexamples/image_border.py23# Create a napari viewer with a 3D, 2 channel image, with the `add_image` convenience function.COMMENT
MEDIUM⚡examples/affine_transforms.py14# Create a random imageCOMMENT
MEDIUM⚡examples/affine_transforms.py17# Define an affine transformCOMMENT
MEDIUM⚡examples/affine_transforms.py20# Define the corners of the image, including in homogeneous spaceCOMMENT
MEDIUMexamples/export_rois.py22# Create a napari viewer with multiple layer types and add a scale bar.COMMENT
MEDIUMexamples/dev/triangle_edge.py29 # Create a dummy numba.njit to allow running this script without numbaCOMMENT
MEDIUMexamples/dev/slicing/random_shapes.py63# Create the example shapes if they do not existCOMMENT
MEDIUMsrc/napari_builtins/io/_write.py56 # The above method generates a lot of extensions that will fail. This listCOMMENT
MEDIUMsrc/napari/layers/_tests/test_layer_actions.py390 # Create a label based on the shape.COMMENT
MEDIUMsrc/napari/layers/labels/labels.py1354 # Create the slice to extract the full working volume/planeCOMMENT
MEDIUM…apari/layers/shapes/_accelerated_triangulate_python.py281 # Create an adjacency list representation from the edgesCOMMENT
MEDIUM…napari/layers/shapes/_accelerated_triangulate_numba.py826 # Create a list (indexed by vertex) containing lists of incident edge indices.COMMENT
MEDIUM…c/napari/layers/shapes/_tests/test_shapes_selection.py47 # Create a shapes layer with a rectangleCOMMENT
MEDIUM…c/napari/layers/shapes/_tests/test_shapes_selection.py64 # Create a shapes layer with rectangles on different slicesCOMMENT
MEDIUM…c/napari/layers/shapes/_tests/test_shapes_selection.py84 # Create a shapes layerCOMMENT
MEDIUM⚡…c/napari/layers/shapes/_tests/test_shapes_selection.py103 # Create a shapes layer with a rectangle only on slice 0COMMENT
MEDIUMsrc/napari/layers/shapes/_tests/test_shapes.py2510 # Create a layer with the first shapeCOMMENT
MEDIUMsrc/napari/layers/utils/text_manager.py354 # Create a new instance from the input to populate all fields.COMMENT
MEDIUMsrc/napari/layers/utils/style_encoding.py114# The following classes provide generic implementations of common waysCOMMENT
MEDIUMsrc/napari/layers/points/points.py2307 # Define a minimal set of coordinates where the mask could be presentCOMMENT
MEDIUMsrc/napari/layers/base/base.py597 # Create a transform chain consisting of four transforms:COMMENT
MEDIUMsrc/napari/_tests/test_function_widgets.py12 # Define a function.COMMENT
MEDIUM…ari/_vispy/_tests/test_vispy_labels_polygon_overlay.py181 # Create a labels layer that will be downsampledCOMMENT
MEDIUMsrc/napari/utils/stubgen.py1"""This module provides helper functions for autogenerating type stubs.STRING
MEDIUMsrc/napari/utils/colormaps/colormap_utils.py218# The following code can be used to reproduce these values.COMMENT
MEDIUM⚡src/napari/utils/colormaps/_tests/test_colormap.py504 # Create a DirectLabelColormap with an empty color_dictCOMMENT
MEDIUM⚡src/napari/utils/colormaps/_tests/test_colormap.py510 # Create a DirectLabelColormap with a simple color_dictCOMMENT
MEDIUMsrc/napari/utils/colormaps/_tests/test_colormap.py437 # Create a DirectLabelColormap with a simple color_dictCOMMENT
MEDIUMsrc/napari/utils/colormaps/_tests/test_colormap.py455 # Create a DirectLabelColormap with a simple color_dict and a selectionCOMMENT
MEDIUMsrc/napari/utils/colormaps/_tests/test_colormap.py475 # Create a DirectLabelColormap with a simple color_dictCOMMENT
MEDIUMsrc/napari/utils/colormaps/_tests/test_colormap.py543 # Create a DirectLabelColormap with a simple color_dictCOMMENT
MEDIUMsrc/napari/components/experimental/monitor/_monitor.py172 # Create the API first. It will register our callbacks, thenCOMMENT
MEDIUMsrc/napari/_qt/qt_main_window.py801 """This function is only executed once at the startup of napariSTRING
MEDIUM⚡src/napari/_qt/qt_viewer.py239 # Create the experimental QtPool for the monitor.COMMENT
MEDIUM⚡src/napari/_qt/qt_viewer.py242 # Create the experimental RemoteManager for the monitor.COMMENT
MEDIUMsrc/napari/_qt/qt_viewer.py1566 # Create the remote manager and have monitor call its process_command()COMMENT
MEDIUMsrc/napari/_qt/_qapp_model/_tests/test_qproviders.py44 # Create a viewerCOMMENT
MEDIUMsrc/napari/_qt/_tests/test_qt_viewer.py292 # Create an image with a defined shape (100x100) and a square in the middleCOMMENT
MEDIUMsrc/napari/_qt/_tests/test_qt_viewer.py300 # Create a couple of clearly defined rectangular polygons for validationCOMMENT
MEDIUMsrc/napari/_qt/threads/status_checker.py53 # Create a Signal to establish a lightweight communication mechanism between theCOMMENT
Deep Nesting93 hits · 88 pts
SeverityFileLineSnippetContext
LOWtools/check_deps_version.py75CODE
LOWsrc/napari_builtins/_diffusion_4d.py46CODE
LOWsrc/napari_builtins/_measure_shapes.py67CODE
LOWsrc/napari_builtins/io/_read.py202CODE
LOWsrc/napari_builtins/io/_read.py313CODE
LOWsrc/napari_builtins/_qt/features_table.py128CODE
LOWsrc/napari_builtins/_qt/features_table.py675CODE
LOWsrc/napari_builtins/_qt/features_table.py909CODE
LOWsrc/napari_builtins/_qt/features_table.py961CODE
LOWsrc/napari_builtins/_qt/features_table.py993CODE
LOWsrc/napari_builtins/_qt/features_table.py1052CODE
LOWsrc/napari/conftest.py726CODE
LOWsrc/napari/_main.py49CODE
LOWsrc/napari/_pydantic_util.py26CODE
LOWsrc/napari/__main__.py211CODE
LOWsrc/napari/settings/_base.py482CODE
LOWsrc/napari/settings/_fields.py145CODE
LOWsrc/napari/settings/_migrations.py29CODE
LOWsrc/napari/settings/_migrations.py141CODE
LOWsrc/napari/layers/_tests/test_layer_attributes.py71CODE
LOWsrc/napari/layers/shapes/shapes.py1114CODE
LOWsrc/napari/layers/shapes/shapes.py1440CODE
LOWsrc/napari/layers/shapes/shapes.py2454CODE
LOWsrc/napari/layers/shapes/shapes.py2542CODE
LOWsrc/napari/layers/shapes/shapes.py2602CODE
LOWsrc/napari/layers/shapes/shapes.py2723CODE
LOWsrc/napari/layers/shapes/shapes.py2832CODE
LOWsrc/napari/layers/shapes/shapes.py3018CODE
LOW…apari/layers/shapes/_accelerated_triangulate_python.py263CODE
LOWsrc/napari/layers/shapes/_shapes_mouse_bindings.py58CODE
LOWsrc/napari/layers/shapes/_shapes_mouse_bindings.py683CODE
LOWsrc/napari/layers/shapes/_shapes_mouse_bindings.py812CODE
LOWsrc/napari/layers/shapes/_shapes_mouse_bindings.py905CODE
LOW…napari/layers/shapes/_accelerated_triangulate_numba.py399CODE
LOW…napari/layers/shapes/_accelerated_triangulate_numba.py793CODE
LOW…ari/layers/shapes/_tests/test_shapes_mouse_bindings.py1227CODE
LOWsrc/napari/layers/utils/layer_utils.py790CODE
LOWsrc/napari/layers/utils/color_manager.py81CODE
LOWsrc/napari/layers/utils/color_manager.py221CODE
LOWsrc/napari/layers/utils/color_manager.py513CODE
LOWsrc/napari/layers/utils/stack_utils.py56CODE
LOWsrc/napari/layers/vectors/vectors.py612CODE
LOWsrc/napari/layers/vectors/_vector_utils.py46CODE
LOWsrc/napari/layers/image/_slice.py16CODE
LOWsrc/napari/layers/points/points.py1282CODE
LOWsrc/napari/layers/points/points.py1850CODE
LOWsrc/napari/layers/points/points.py1988CODE
LOW…ari/layers/points/_tests/test_points_mouse_bindings.py686CODE
LOWsrc/napari/plugins/_npe2.py360CODE
LOWsrc/napari/_vispy/canvas.py395CODE
LOWsrc/napari/_vispy/canvas.py951CODE
LOWsrc/napari/_vispy/canvas.py1031CODE
LOWsrc/napari/_vispy/canvas.py1106CODE
LOWsrc/napari/_vispy/canvas.py1212CODE
LOWsrc/napari/_vispy/_tests/test_vispy_vectors_layer.py24CODE
LOWsrc/napari/_vispy/overlays/text.py68CODE
LOWsrc/napari/_vispy/visuals/axes.py202CODE
LOWsrc/napari/utils/action_manager.py329CODE
LOWsrc/napari/utils/_tracebacks.py100CODE
LOWsrc/napari/utils/transforms/transforms.py416CODE
33 more matches not shown…
Empty Error Handlers17 hits · 85 pts
SeverityFileLineSnippetContext
HIGHexamples/mpl_plot_.py39except IndexError:CODE
HIGHexamples/dev/slicing/random_shapes.py52except AssertionError:CODE
HIGHsrc/napari_builtins/_qt/features_table.py724except (ValueError, TypeError): # pragma: no coverCODE
HIGHsrc/napari/plugins/_npe2.py352except ImportError: # pragma: no coverCODE
HIGHsrc/napari/utils/key_bindings.py457except StopIteration:CODE
HIGHsrc/napari/utils/key_bindings.py418except StopIteration: # only one statementCODE
HIGHsrc/napari/utils/interactions.py57except StopIteration:CODE
HIGHsrc/napari/utils/interactions.py131except StopIteration:CODE
HIGHsrc/napari/utils/colormaps/vendored/cm.py276except AttributeError:CODE
HIGHsrc/napari/utils/colormaps/vendored/cm.py321except (TypeError, ValueError):CODE
HIGHsrc/napari/utils/colormaps/vendored/colors.py256except (ValueError, TypeError):CODE
HIGHsrc/napari/utils/colormaps/vendored/colors.py184except KeyError:CODE
HIGHsrc/napari/utils/colormaps/vendored/colors.py204except ValueError:CODE
HIGHsrc/napari/utils/colormaps/vendored/colors.py165except TypeError:CODE
HIGHsrc/napari/utils/colormaps/vendored/colors.py741except TypeError:CODE
HIGHsrc/napari/_qt/qt_main_window.py1917except ValueError:CODE
HIGHsrc/napari/_qt/_qplugins/_qnpe2.py143except ValueError: # pragma: no coverCODE
Decorative Section Separators20 hits · 61 pts
SeverityFileLineSnippetContext
MEDIUMexamples/surface_multi_texture.py56# ------------------COMMENT
MEDIUMexamples/surface_multi_texture.py76# --------------COMMENT
MEDIUMexamples/surface_multi_texture.py85# -----------------COMMENT
MEDIUM⚡examples/surface_multi_texture.py107# ------------------------COMMENT
MEDIUMexamples/surface_multi_texture.py126# --------------------------COMMENT
MEDIUMexamples/theme_sample.py53# ── WCAG 2.1 helpers ───────────COMMENT
MEDIUMexamples/3D_vectors_through_time.py21# -----------COMMENT
MEDIUMexamples/3D_vectors_through_time.py52#----------------------------------COMMENT
MEDIUMsrc/napari/layers/points/points.py2342 # ----------STRING
MEDIUM…apari/layers/_scalar_field/_tests/test_scalar_field.py178# ---------------------------------------------------------------------------COMMENT
MEDIUM…apari/layers/_scalar_field/_tests/test_scalar_field.py180# ---------------------------------------------------------------------------COMMENT
MEDIUMsrc/napari/utils/events/event.py6# ---------------------COMMENT
MEDIUMsrc/napari/utils/events/event.py37# ----------COMMENT
MEDIUM…er_controls/_tests/test_qt_multiscale_level_control.py12# ---------------------------------------------------------------------------COMMENT
MEDIUM…er_controls/_tests/test_qt_multiscale_level_control.py14# ---------------------------------------------------------------------------COMMENT
MEDIUM…er_controls/_tests/test_qt_multiscale_level_control.py36# ---------------------------------------------------------------------------COMMENT
MEDIUM…er_controls/_tests/test_qt_multiscale_level_control.py38# ---------------------------------------------------------------------------COMMENT
MEDIUM…napari/_qt/widgets/_tests/test_qt_highlight_preview.py48# ----------------------------------------------------------------------------COMMENT
MEDIUM…napari/_qt/widgets/_tests/test_qt_highlight_preview.py65# ----------------------------------------------------------------------------COMMENT
MEDIUM⚡…napari/_qt/widgets/_tests/test_qt_highlight_preview.py115# ----------------------------------------------------------------------------COMMENT
Redundant / Tautological Comments35 hits · 58 pts
SeverityFileLineSnippetContext
LOWexamples/clipping_planes_interactive_.py110 # Check if click was on plane by checking if intersection occurs withinCOMMENT
LOWexamples/live_tiffs_.py96 # Check if the end of acquisition has reachedCOMMENT
LOW.github/workflows/label_and_milestone_checker.yml65 # Check if PR_MILESTONE_NAME is definedCOMMENT
LOW.github/workflows/label_and_milestone_checker.yml92 # Check if the PR's milestone is the closest future milestoneCOMMENT
LOWsrc/napari_builtins/io/_write.py305 # Loop through data for each layerCOMMENT
LOWsrc/napari_builtins/_qt/features_table.py163 # Check if this column is immutableCOMMENT
LOWsrc/napari_builtins/_qt/features_table.py188 # Check if this column is immutableCOMMENT
LOWsrc/napari_builtins/_qt/features_table.py440 # Check if this is an immutable structural column (source or index)COMMENT
LOWsrc/napari_builtins/_qt/features_table.py450 # Check if the feature column name is in immutable setCOMMENT
LOWsrc/napari/settings/_appearance.py69 # Check if a font_size change is needed when changing theme:COMMENT
LOWsrc/napari/settings/_appearance.py81 # Check if a font_size change is needed when changing theme:COMMENT
LOW⚡src/napari/layers/shapes/shapes.py3056 # Check if inside vertex of interaction box or rotation handleCOMMENT
LOW⚡src/napari/layers/shapes/shapes.py3060 # Check if any matching verticesCOMMENT
LOW⚡src/napari/layers/shapes/shapes.py3069 # Check if inside vertex of shapeCOMMENT
LOW⚡src/napari/layers/shapes/shapes.py3079 # Check if any matching verticesCOMMENT
LOWsrc/napari/layers/shapes/shapes.py2711 # Check if any shape or vertex ids have changed since last callCOMMENT
LOWsrc/napari/layers/shapes/shapes.py3096 # Check if mouse inside shapeCOMMENT
LOW⚡…c/napari/layers/shapes/_tests/test_shapes_selection.py107 # Set mode to SELECTCOMMENT
LOWsrc/napari/layers/shapes/_tests/test_shape_list.py325 # Check if the shape has been updatedCOMMENT
LOWsrc/napari/layers/shapes/_tests/test_shape_list.py341 # Check if the shape has been updatedCOMMENT
LOWsrc/napari/layers/shapes/_tests/test_shape_list.py363 # Check if the shape has been updatedCOMMENT
LOWsrc/napari/layers/shapes/_tests/test_shape_list.py390 # Check if the face color has been updatedCOMMENT
LOWsrc/napari/layers/shapes/_tests/test_shape_list.py402 # Check if the edge color remains unchangedCOMMENT
LOWsrc/napari/layers/shapes/_tests/test_shape_list.py423 # Check if the edge color has been updatedCOMMENT
LOWsrc/napari/layers/shapes/_tests/test_shape_list.py435 # Check if the face color remains unchangedCOMMENT
LOWsrc/napari/layers/utils/stack_utils.py41 # Check if array is a zarr array and wrap it with daskCOMMENT
LOWsrc/napari/layers/utils/stack_utils.py324 # Check if input images are either all multiscale or notCOMMENT
LOWsrc/napari/layers/image/_image_mouse_bindings.py49 # Check if click was on plane and if not, exit early.COMMENT
LOWsrc/napari/layers/image/_image_mouse_bindings.py107 # Check if click was on plane and if not, exit early.COMMENT
LOWsrc/napari/layers/points/points.py1860 # Check if any point ids have changed since last callCOMMENT
LOWsrc/napari/_vispy/layers/scalar_field.py136 # Check if ndisplay has changed current node type needs updatingCOMMENT
LOWsrc/napari/utils/transforms/transform_utils.py245 # Check if an upper-triangular representation of shear orCOMMENT
LOW⚡src/napari/utils/transforms/_tests/test_transforms.py303 # Set shear to same valueCOMMENT
LOW⚡src/napari/utils/transforms/_tests/test_transforms.py308 # Set shear to same valueCOMMENT
LOWsrc/napari/components/histogram.py465 # Check if the surface has vortex values, if yes return them, otherwise return None.COMMENT
Excessive Try-Catch Wrapping26 hits · 28 pts
SeverityFileLineSnippetContext
MEDIUMtools/check_deps_version.py89 print(f'Error parsing wheel filename {filename}: {e}')CODE
LOWtools/check_deps_version.py285 except Exception as e: # noqa: BLE001CODE
MEDIUMtools/check_deps_version.py286 print(f'Error reading {pyproject_path}: {e}')CODE
MEDIUMtools/check_deps_version.py281def main(pyproject_path='pyproject.toml'):CODE
LOWsrc/napari_builtins/io/_read.py154 except Exception as e:CODE
LOWsrc/napari_builtins/io/_write.py320 except Exception:CODE
LOWsrc/napari/_main.py69 except Exception: # noqa: BLE001CODE
LOWsrc/napari/_main.py84 except Exception as e:CODE
LOWsrc/napari/_main.py92 except Exception as e:CODE
MEDIUMsrc/napari/_main.py80def main() -> None:CODE
LOWsrc/napari/settings/_base.py176 except Exception as err: # noqa: BLE001CODE
LOWsrc/napari/settings/_migrations.py38 except Exception as e: # noqa BLE001CODE
LOWsrc/napari/settings/_migrations.py46 except Exception: # noqa BLE001CODE
LOWsrc/napari/layers/shapes/_shapes_utils.py863 except Exception as e: # pragma: no coverCODE
LOWsrc/napari/layers/base/base.py2489 except Exception as exc:CODE
LOWsrc/napari/utils/notifications.py396 except Exception:CODE
LOWsrc/napari/utils/info.py217 except Exception as e: # noqa BLE001STRING
LOWsrc/napari/utils/info.py278 except Exception as e: # noqa BLE001STRING
LOWsrc/napari/utils/events/event.py743 except Exception as e: # noqa: BLE001CODE
LOWsrc/napari/utils/colormaps/vendored/colors.py311 except Exception:CODE
LOWsrc/napari/components/viewer_model.py1507 except Exception as e:CODE
LOWsrc/napari/components/viewer_model.py1715 except Exception as e:CODE
LOWsrc/napari/components/histogram.py300 except Exception:CODE
LOWsrc/napari/_qt/qt_main_window.py1547 except Exception as err: # noqa: BLE001CODE
LOWsrc/napari/_qt/__init__.py5except Exception as e:CODE
LOWsrc/napari/_qt/threads/status_checker.py129 except Exception as e: # pragma: no cover # noqa: BLE001CODE
AI Slop Vocabulary15 hits · 26 pts
SeverityFileLineSnippetContext
MEDIUM.github/workflows/benchmarks.yml22# All the *_THREADS options is just to make the benchmarks more robust by not using parallelismCOMMENT
MEDIUMsrc/napari/viewer.py75 """Overload __new__ to facilitate temporary monkey-patching.STRING
LOWsrc/napari/__main__.py286 # just set stack to True similar to the previous store_true actionCOMMENT
LOWsrc/napari/layers/tracks/tracks.py363 # if we are visualizing all time, then just set to the maximumCOMMENT
LOW…napari/layers/shapes/_accelerated_triangulate_numba.py288 # otherwise, we just use the miter vector in either direction and add twoCOMMENT
MEDIUM…napari/layers/shapes/_accelerated_triangulate_numba.py692 # Without the fix, the code is not robust to orientation.COMMENT
LOWsrc/napari/layers/utils/_text_utils.py50 # if the data are a list of coordinates, just return the coord (e.g., points)COMMENT
LOWsrc/napari/layers/utils/_text_utils.py146 # if the data are a list of coordinates, just return the coord (e.g., points)COMMENT
LOWsrc/napari/layers/utils/_tests/test_text_manager.py745 # Cannot just use `rand(num_points, ndisplay)` because whenCOMMENT
LOWsrc/napari/layers/image/image.py668 # translucent is special: just return the first value, no matter whatCOMMENT
LOWsrc/napari/_tests/test_magicgui.py471 # it works fine to just return `data`COMMENT
LOWsrc/napari/utils/interactions.py164 # if not dragging simply call the mouse move callbacksCOMMENT
LOWsrc/napari/components/experimental/monitor/_service.py132 # Start with our environment and just add in the one variable.COMMENT
MEDIUMsrc/napari/_qt/qt_main_window.py124 # To track window instances and facilitate getting the "active" viewer...COMMENT
LOWsrc/napari/_qt/_qapp_model/qactions/_plugins.py29 # amended to be a napari plugin and simply add this menu item itself.COMMENT
AI Response Leakage3 hits · 26 pts
SeverityFileLineSnippetContext
HIGHexamples/magic_parameter_sweep.py25# In this example, because we have already imported napari anyway, it doesn'tCOMMENT
HIGH⚡examples/surface_multi_texture.py109# In this example the texture coordinates happen to be the same for eachCOMMENT
HIGHexamples/magic_image_arithmetic.py31# In this example, because we have already imported napari anyway, it doesn'tCOMMENT
AI Structural Patterns20 hits · 20 pts
SeverityFileLineSnippetContext
LOWsrc/napari/view_layers.py79CODE
LOWsrc/napari/view_layers.py122CODE
LOWsrc/napari/view_layers.py164CODE
LOWsrc/napari/settings/_base.py323CODE
LOWsrc/napari/layers/labels/labels.py362CODE
LOWsrc/napari/layers/tracks/tracks.py115CODE
LOWsrc/napari/layers/surface/surface.py237CODE
LOWsrc/napari/layers/shapes/shapes.py440CODE
LOW…c/napari/layers/shapes/_shapes_models/_polygon_base.py36CODE
LOWsrc/napari/layers/vectors/vectors.py206CODE
LOWsrc/napari/layers/image/image.py264CODE
LOWsrc/napari/layers/points/points.py374CODE
LOWsrc/napari/layers/_scalar_field/scalar_field.py211CODE
LOWsrc/napari/layers/base/_test_util_sample_layer.py18CODE
LOWsrc/napari/layers/base/base.py535CODE
LOWsrc/napari/plugins/utils.py98CODE
LOWsrc/napari/utils/transforms/transforms.py416CODE
LOWsrc/napari/utils/transforms/transforms.py805CODE
LOWsrc/napari/utils/colormaps/vendored/colors.py1524CODE
LOWsrc/napari/components/viewer_model.py1168CODE
Slop Phrases4 hits · 8 pts
SeverityFileLineSnippetContext
LOWsrc/napari/_vispy/overlays/colorbar.py129 # we make sure to not update things when invisibleCOMMENT
MEDIUMsrc/napari/utils/tree/_tests/test_tree_model.py155 # If you need to know if an item is an immediate child, you can use parentCOMMENT
LOWsrc/napari/utils/colormaps/colormap_utils.py468 # make sure to add an alpha channel to the colorsCOMMENT
LOWsrc/napari/_qt/utils.py307 # let's make sure to remove the animation from the widget becauseCOMMENT
Fake / Example Data5 hits · 6 pts
SeverityFileLineSnippetContext
LOWexamples/theme_sample.py101<p>Lorem ipsum dolor sit amet, consectetur adipiscing elit,CODE
LOWexamples/theme_sample.py101<p>Lorem ipsum dolor sit amet, consectetur adipiscing elit,CODE
LOW⚡…napari/_qt/_qapp_model/_tests/test_qapp_model_menus.py38 id='dummy_id',CODE
LOW⚡…napari/_qt/_qapp_model/_tests/test_qapp_model_menus.py46 dummy_action = viewer.window.file_menu.findAction('dummy_id')CODE
LOW⚡…napari/_qt/_qapp_model/_tests/test_qapp_model_menus.py48 assert 'dummy_id' in app.commandsCODE
Modern AI Meta-Vocabulary2 hits · 6 pts
SeverityFileLineSnippetContext
MEDIUMsrc/napari/_qt/qt_main_window.py131 # provider for dependency injectionCOMMENT
MEDIUMsrc/napari/_qt/qt_viewer.py1590 # in-n-out is used in napari for dependency injection.COMMENT
Overly Generic Function Names3 hits · 2 pts
SeverityFileLineSnippetContext
LOWexamples/progress_bar_threading_.py68def my_function(*_):CODE
LOWexamples/magic_viewer.py16def my_function(viewer: napari.Viewer):CODE
LOWsrc/napari/utils/events/_tests/test_evented_model.py394 def my_function():CODE
Verbosity Indicators2 hits · 2 pts
SeverityFileLineSnippetContext
LOW⚡src/napari/_vispy/canvas.py855 # Step 1: Force immediate garbage collection of OpenGL resourcesCOMMENT
LOW⚡src/napari/_vispy/canvas.py862 # Step 2: Synchronize the OpenGL command queueCOMMENT
Structural Annotation Overuse2 hits · 2 pts
SeverityFileLineSnippetContext
LOW⚡src/napari/_vispy/canvas.py855 # Step 1: Force immediate garbage collection of OpenGL resourcesCOMMENT
LOW⚡src/napari/_vispy/canvas.py862 # Step 2: Synchronize the OpenGL command queueCOMMENT