napari: a fast, interactive, multi-dimensional image viewer for python
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.
Use each vector to guide manual verification of the underlying findings.
Can maintainers explain intent, assumptions, and trade-offs? 2700 finding(s).
Are imports declared and package/API names verified? 767 finding(s).
Are wrappers, guards, and repeated structures necessary? 2603 finding(s).
Which changes need focused human review? 3820 finding(s).
This chart tracks the legacy adjusted pattern score across scan runs. Changes can reflect source changes, scan coverage, or detector/scoring versions; they do not measure AI adoption or prove that a team refactored code. Compare runs only when their scoring versions are compatible. The dashed line tracks the raw pattern-hit count.
Groups findings by configured severity weight. Severity is not a confidence estimate, security rating, or proof that a package is missing. Verify imports against the project's manifests and inspect each finding in its local design context.
This horizontal bar chart shows where configured pattern scores accumulate across directories. Treat the bars as locations to inspect, not as evidence of authorship or code quality. Use the file-level findings to decide whether a directory needs a focused ownership, dependency, complexity, or review check.
The scanner identified 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.
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| LOW | tools/create_pr_or_update_existing_one.py | 319 | def update_external_pr_comment( | CODE |
| LOW | tools/check_deps_version.py | 58 | def get_specified_min_version(specifier: SpecifierSet) -> Version: | CODE |
| LOW | tools/check_deps_version.py | 142 | def check_version_for_compatible_wheel( | CODE |
| LOW | tools/check_deps_version.py | 160 | def find_lowest_version_with_compatible_wheel( | CODE |
| LOW | tools/remove_html_comments_from_pr.py | 23 | def edit_pull_request_description(repo, pull_request_number, access_token): | CODE |
| LOW | examples/theme_sample.py | 248 | def _build_theme_selector_group(self) -> QGroupBox: | STRING |
| LOW | examples/boids_simulation.py | 124 | def compute_flock_step_forward( | CODE |
| LOW | examples/boids_simulation.py | 194 | def iterate_accelerated_flock_forever(boids, num_workers=8): | CODE |
| LOW | examples/interactive_move_rectangle_3d.py | 44 | def move_rectangle_along_normal(layer, event): | STRING |
| LOW | examples/custom_mouse_functions.py | 33 | def get_connected_component_shape(layer, event): | CODE |
| LOW | examples/custom_mouse_functions.py | 76 | def on_second_click_of_double_click(layer, event): | CODE |
| LOW | examples/bbox_annotator.py | 57 | def set_selected_features_to_default(): | CODE |
| LOW | examples/multithreading_two_way_.py | 23 | def two_way_communication_with_args(start, end): | CODE |
| LOW | examples/dev/triangle_edge.py | 64 | def get_reference_edge_triangulation_points(shape: Shapes) -> np.ndarray: | CODE |
| LOW | examples/dev/triangle_edge.py | 108 | def generate_miter_helper_vectors( | CODE |
| LOW | examples/dev/triangle_edge.py | 140 | def generate_orthogonal_vectors(direction_vectors: np.ndarray) -> np.ndarray: | CODE |
| LOW | examples/dev/triangle_edge.py | 197 | def generate_edge_triangle_borders(centers, offsets, triangles) -> np.ndarray: | CODE |
| LOW | examples/dev/triangle_edge.py | 231 | def generate_face_triangle_borders(vertices, triangles) -> np.ndarray: | CODE |
| LOW | examples/dev/triangle_edge.py | 268 | def get_helper_data_from_shapes(shapes_layer: Shapes) -> Helpers: | CODE |
| LOW | examples/dev/controllable_overlay.py | 180 | def highlight_roi_box_handles(layer: Image, event: NapariMouseEvent) -> None: | CODE |
| LOW | src/napari_builtins/_measure_shapes.py | 67 | def update_features_with_measures(shapes_layer, event=None): | CODE |
| LOW | src/napari_builtins/_tests/test_writer.py | 50 | def test_no_write_layer_bad_extension(some_layer: 'layers.Layer'): | CODE |
| LOW | src/napari_builtins/_tests/test_io.py | 96 | def test_zarr_with_unrelated_file(tmp_path): | CODE |
| LOW | src/napari_builtins/_tests/test_io.py | 169 | def test_guess_layer_type_from_column_names(): | CODE |
| LOW | src/napari_builtins/_tests/test_io.py | 214 | def test_csv_to_layer_data_raises(tmp_path): | CODE |
| LOW⚡ | src/napari_builtins/_tests/test_io.py | 368 | def test_github_and_gitlab_to_raw_url(url, expected): | CODE |
| LOW⚡ | src/napari_builtins/_tests/test_io.py | 372 | def test_read_zarr_non_existent_path_raises(tmp_path): | CODE |
| LOW⚡ | src/napari_builtins/_tests/test_io.py | 378 | def test_read_zarr_remote_group_raises(tmp_path, monkeypatch): | CODE |
| LOW | src/napari_builtins/_tests/test_io.py | 393 | def test_read_zarr_remote_array_succeeds(tmp_path, monkeypatch): | CODE |
| LOW | src/napari_builtins/_tests/test_io.py | 408 | def test_zarr_multiple_groups_reads_first(tmp_path, monkeypatch): | CODE |
| LOW | src/napari_builtins/_tests/test_read.py | 97 | def test_read_python_source_uses_python_source_encoding( | CODE |
| LOW | src/napari_builtins/_tests/test_read.py | 143 | def test_read_wavefront_obj_lines(subject, vertices, faces): | STRING |
| LOW | src/napari_builtins/io/_read.py | 48 | def _git_provider_url_to_raw_url(filename: str) -> str: | CODE |
| LOW | src/napari_builtins/io/_read.py | 391 | def _guess_layer_type_from_column_names( | CODE |
| LOW | src/napari_builtins/io/_read.py | 534 | def _read_wavefront_obj_lines( | CODE |
| LOW | src/napari_builtins/io/_read.py | 642 | def load_and_execute_python_code(script_path: str) -> list[LayerData]: | CODE |
| LOW | src/napari_builtins/io/_write.py | 270 | def write_layer_data_with_plugins( | CODE |
| LOW | src/napari_builtins/_qt/features_table.py | 383 | def _get_cell_value_and_dtype( | CODE |
| LOW | src/napari_builtins/_qt/features_table.py | 814 | def _get_selection_event_for_layer(layer): | CODE |
| LOW | src/napari_builtins/_qt/features_table.py | 844 | def _on_layer_selection_change(self): | CODE |
| LOW | src/napari_builtins/_qt/features_table.py | 909 | def _build_multilayer_features_table( | CODE |
| LOW | src/napari_builtins/_qt/features_table.py | 961 | def _get_original_categories_from_layers( | CODE |
| LOW | src/napari_builtins/_qt/features_table.py | 993 | def _on_table_selection_changed(self): | CODE |
| LOW | src/napari_builtins/_qt/features_table.py | 1052 | def _update_table_selected_cells(self): | CODE |
| LOW | src/napari_builtins/_qt/_tests/test_qt_read.py | 26 | def test_load_and_execute_python_code_uses_python_source_encoding( | CODE |
| LOW | src/napari_builtins/_qt/_tests/test_features_table.py | 49 | def test_pandas_model_set_data(qtbot): | CODE |
| LOW | src/napari_builtins/_qt/_tests/test_features_table.py | 74 | def test_pandas_model_set_data_categorical(qtbot): | CODE |
| LOW | src/napari_builtins/_qt/_tests/test_features_table.py | 162 | def test_features_table_selection_labels(qtbot): | CODE |
| LOW | src/napari_builtins/_qt/_tests/test_features_table.py | 178 | def test_features_table_selection_shapes(qtbot): | CODE |
| LOW | src/napari_builtins/_qt/_tests/test_features_table.py | 224 | def test_features_table_save_csv(qtbot, tmp_path, monkeypatch): | CODE |
| LOW | src/napari_builtins/_qt/_tests/test_features_table.py | 242 | def test_features_table_copy_paste(qtbot, qapp): | CODE |
| LOW | src/napari_builtins/_qt/_tests/test_features_table.py | 305 | def test_features_tables_dtypes( | CODE |
| LOW | src/napari_builtins/_qt/_tests/test_features_table.py | 354 | def test_features_table_change_active_layer(qtbot): | CODE |
| LOW | src/napari_builtins/_qt/_tests/test_features_table.py | 393 | def _add_all_supported_layers(viewer, include=None): | CODE |
| LOW | src/napari_builtins/_qt/_tests/test_features_table.py | 444 | def test_features_table_multilayer_table_concat(qtbot): | CODE |
| LOW | src/napari_builtins/_qt/_tests/test_features_table.py | 478 | def test_features_table_multilayer_layer_selection_change(qtbot): | CODE |
| LOW | src/napari_builtins/_qt/_tests/test_features_table.py | 516 | def test_features_table_multilayer_table_selection(qtbot): | CODE |
| LOW | src/napari_builtins/_qt/_tests/test_features_table.py | 569 | def test_features_table_multilayer_edit(qtbot): | CODE |
| LOW | src/napari_builtins/_qt/_tests/test_features_table.py | 606 | def test_features_table_multilayer_save_csv(qtbot, tmp_path, monkeypatch): | CODE |
| LOW | src/napari/conftest.py | 235 | def pytest_exception_interact(call): | CODE |
| 2170 more matches not shown… | ||||
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| CRITICAL⚡ | examples/multiple_viewer_widget.py | 151 | self.viewer.dims.events.order.connect(self.update_cross) | CODE |
| CRITICAL⚡ | examples/multiple_viewer_widget.py | 152 | self.viewer.dims.events.ndim.connect(self._update_ndim) | CODE |
| CRITICAL⚡ | examples/multiple_viewer_widget.py | 153 | self.viewer.dims.events.current_step.connect(self.update_cross) | CODE |
| CRITICAL⚡ | examples/multiple_viewer_widget.py | 251 | self.viewer.layers.events.inserted.connect(self._layer_added) | CODE |
| CRITICAL⚡ | examples/multiple_viewer_widget.py | 252 | self.viewer.layers.events.removed.connect(self._layer_removed) | CODE |
| CRITICAL⚡ | examples/multiple_viewer_widget.py | 253 | self.viewer.layers.events.moved.connect(self._layer_moved) | CODE |
| CRITICAL⚡ | examples/multiple_viewer_widget.py | 254 | self.viewer.layers.selection.events.active.connect( | CODE |
| CRITICAL⚡ | examples/multiple_viewer_widget.py | 257 | self.viewer.dims.events.current_step.connect(self._point_update) | CODE |
| CRITICAL⚡ | examples/multiple_viewer_widget.py | 258 | self.viewer_model1.dims.events.current_step.connect(self._point_update) | CODE |
| CRITICAL⚡ | examples/multiple_viewer_widget.py | 259 | self.viewer_model2.dims.events.current_step.connect(self._point_update) | CODE |
| CRITICAL⚡ | examples/multiple_viewer_widget.py | 260 | self.viewer.dims.events.order.connect(self._order_update) | CODE |
| CRITICAL | examples/viewer_fps_label.py | 24 | viewer.window._qt_viewer.canvas._scene_canvas.measure_fps(callback=update_fps) | CODE |
| CRITICAL | src/napari_builtins/_qt/features_table.py | 755 | self.viewer.layers.selection.events.changed.connect( | CODE |
| CRITICAL | src/napari_builtins/_qt/features_table.py | 758 | self.viewer.layers.events.renamed.connect(self._on_layer_renamed) | CODE |
| CRITICAL | src/napari/layers/labels/labels.py | 2159 | value = self._slice.image.raw.dtype.type(value) | CODE |
| CRITICAL⚡ | src/napari/layers/image/_image_key_bindings.py | 78 | viewer.scene.camera.events.angles.connect( | CODE |
| CRITICAL⚡ | src/napari/layers/image/_image_key_bindings.py | 83 | viewer.scene.camera.events.angles.disconnect( | CODE |
| CRITICAL | src/napari/_tests/test_multiple_viewers.py | 12 | v1.window._qt_viewer.viewerButtons.gridViewButton.click() | CODE |
| CRITICAL⚡ | src/napari/_vispy/canvas.py | 258 | self.viewer.cursor.events.style.connect(self._on_cursor) | CODE |
| CRITICAL⚡ | src/napari/_vispy/canvas.py | 259 | self.viewer.cursor.events.size.connect(self._on_cursor) | CODE |
| CRITICAL⚡ | src/napari/_vispy/canvas.py | 262 | self.viewer.canvas.events.background_color_override.connect( | CODE |
| CRITICAL⚡ | src/napari/_vispy/canvas.py | 266 | self.viewer.scene.camera.events.mouse_pan.connect(self._on_interactive) | CODE |
| CRITICAL⚡ | src/napari/_vispy/canvas.py | 267 | self.viewer.scene.camera.events.mouse_zoom.connect( | CODE |
| CRITICAL⚡ | src/napari/_vispy/canvas.py | 270 | self.viewer.scene.camera.events.zoom.connect(self._on_cursor) | CODE |
| CRITICAL⚡ | src/napari/_vispy/canvas.py | 271 | self.viewer.scene.camera.events.view_direction.connect( | CODE |
| CRITICAL⚡ | src/napari/_vispy/canvas.py | 274 | self.viewer.dims.events.ndisplay.connect( | CODE |
| CRITICAL⚡ | src/napari/_vispy/canvas.py | 278 | self.viewer.canvas.overlays._zoom_box.events.zoom_area.connect( | CODE |
| CRITICAL⚡ | src/napari/_vispy/canvas.py | 281 | self.viewer.layers.events.reordered.connect(self._update_scenegraph) | CODE |
| CRITICAL⚡ | src/napari/_vispy/canvas.py | 282 | self.viewer.layers.events.removed.connect(self._remove_layer) | CODE |
| CRITICAL⚡ | src/napari/_vispy/canvas.py | 283 | self.viewer.layers.events.begin_batch.connect( | CODE |
| CRITICAL⚡ | src/napari/_vispy/canvas.py | 286 | self.viewer.layers.events.end_batch.connect( | CODE |
| CRITICAL⚡ | src/napari/_vispy/canvas.py | 289 | self.viewer.layers.events.units.connect( | CODE |
| CRITICAL⚡ | src/napari/_vispy/canvas.py | 292 | self.viewer.canvas.grid.events.stride.connect(self._update_scenegraph) | CODE |
| CRITICAL⚡ | src/napari/_vispy/canvas.py | 293 | self.viewer.canvas.grid.events.shape.connect(self._update_scenegraph) | CODE |
| CRITICAL⚡ | src/napari/_vispy/canvas.py | 294 | self.viewer.canvas.grid.events.enabled.connect(self._update_scenegraph) | CODE |
| CRITICAL⚡ | src/napari/_vispy/canvas.py | 295 | self.viewer.canvas.grid.events.spacing.connect(self._update_scenegraph) | CODE |
| CRITICAL⚡ | src/napari/_vispy/canvas.py | 296 | self.viewer.scene.overlays.events.added.connect( | CODE |
| CRITICAL⚡ | src/napari/_vispy/canvas.py | 299 | self.viewer.scene.overlays.events.removed.connect( | CODE |
| CRITICAL⚡ | src/napari/_vispy/canvas.py | 302 | self.viewer.scene.overlays.events.changed.connect( | CODE |
| CRITICAL⚡ | src/napari/_vispy/canvas.py | 305 | self.viewer.canvas.overlays.events.added.connect( | CODE |
| CRITICAL⚡ | src/napari/_vispy/canvas.py | 308 | self.viewer.canvas.overlays.events.removed.connect( | CODE |
| CRITICAL⚡ | src/napari/_vispy/canvas.py | 311 | self.viewer.canvas.overlays.events.changed.connect( | CODE |
| CRITICAL⚡ | src/napari/_vispy/canvas.py | 315 | self.viewer.canvas.overlay_tiling.events.connect( | CODE |
| CRITICAL⚡ | src/napari/_vispy/canvas.py | 319 | self.viewer.canvas.events._overlay_positions_changed.connect( | CODE |
| CRITICAL⚡ | src/napari/_vispy/canvas.py | 323 | self.viewer.canvas.events.size.connect(self._on_model_size_change) | CODE |
| CRITICAL | src/napari/_vispy/canvas.py | 733 | with self.viewer.canvas.events.size.blocker( | CODE |
| CRITICAL⚡ | src/napari/_vispy/layers/points.py | 34 | self.layer._border.events.colors.connect(self._on_data_change) | CODE |
| CRITICAL⚡ | src/napari/_vispy/layers/points.py | 35 | self.layer._border.events.color_properties.connect( | CODE |
| CRITICAL⚡ | src/napari/_vispy/layers/points.py | 39 | self.layer._face.events.colors.connect(self._on_data_change) | CODE |
| CRITICAL⚡ | src/napari/_vispy/layers/points.py | 40 | self.layer._face.events.color_properties.connect(self._on_data_change) | CODE |
| CRITICAL⚡ | src/napari/_vispy/layers/scalar_field.py | 62 | self.layer.plane.events.position.connect( | CODE |
| CRITICAL⚡ | src/napari/_vispy/layers/scalar_field.py | 65 | self.layer.plane.events.thickness.connect( | CODE |
| CRITICAL⚡ | src/napari/_vispy/layers/scalar_field.py | 68 | self.layer.plane.events.normal.connect(self._on_plane_normal_change) | CODE |
| CRITICAL⚡ | src/napari/_vispy/layers/surface.py | 48 | self.layer.wireframe.events.visible.connect( | CODE |
| CRITICAL⚡ | src/napari/_vispy/layers/surface.py | 51 | self.layer.wireframe.events.width.connect( | CODE |
| CRITICAL⚡ | src/napari/_vispy/layers/surface.py | 54 | self.layer.wireframe.events.color.connect( | CODE |
| CRITICAL⚡ | src/napari/_vispy/layers/surface.py | 57 | self.layer.normals.face.events.connect(self._on_face_normals_change) | CODE |
| CRITICAL⚡ | src/napari/_vispy/layers/surface.py | 58 | self.layer.normals.vertex.events.connect( | CODE |
| CRITICAL | src/napari/_vispy/_tests/test_utils.py | 57 | viewer.window._qt_viewer.canvas.cursor.shape() | CODE |
| CRITICAL | src/napari/_vispy/_tests/test_utils.py | 63 | viewer.window._qt_viewer.canvas.cursor.shape() | CODE |
| 67 more matches not shown… | ||||
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| LOW | tools/check_updated_packages.py | 1 | CODE | |
| LOW | examples/theme_sample.py | 15 | CODE | |
| LOW | examples/boids_simulation.py | 25 | CODE | |
| LOW | examples/mgui_dask_delayed_.py | 10 | CODE | |
| LOW | examples/dev/controllable_overlay.py | 21 | CODE | |
| LOW | src/napari_builtins/_tests/test_writer.py | 11 | CODE | |
| LOW | src/napari_builtins/_tests/test_io.py | 27 | CODE | |
| LOW | src/napari_builtins/_tests/test_read.py | 16 | CODE | |
| LOW | src/napari_builtins/_tests/test_read.py | 17 | CODE | |
| LOW | src/napari_builtins/io/_read.py | 1 | CODE | |
| LOW | src/napari_builtins/io/_write.py | 13 | CODE | |
| LOW | src/napari_builtins/io/__init__.py | 1 | CODE | |
| LOW | src/napari_builtins/io/__init__.py | 1 | CODE | |
| LOW | src/napari_builtins/io/__init__.py | 1 | CODE | |
| LOW | src/napari_builtins/io/__init__.py | 1 | CODE | |
| LOW | src/napari_builtins/io/__init__.py | 1 | CODE | |
| LOW | src/napari_builtins/io/__init__.py | 1 | CODE | |
| LOW | src/napari_builtins/io/__init__.py | 1 | CODE | |
| LOW | src/napari_builtins/io/__init__.py | 1 | CODE | |
| LOW | src/napari_builtins/io/__init__.py | 11 | CODE | |
| LOW | src/napari_builtins/io/__init__.py | 11 | CODE | |
| LOW | src/napari_builtins/io/__init__.py | 11 | CODE | |
| LOW | src/napari_builtins/io/__init__.py | 11 | CODE | |
| LOW | src/napari_builtins/io/__init__.py | 11 | CODE | |
| LOW | src/napari_builtins/io/__init__.py | 11 | CODE | |
| LOW | src/napari_builtins/io/__init__.py | 11 | CODE | |
| LOW | src/napari_builtins/_qt/features_table.py | 1 | CODE | |
| LOW | src/napari/conftest.py | 32 | CODE | |
| LOW | src/napari/viewer.py | 13 | CODE | |
| LOW | src/napari/window.py | 13 | CODE | |
| LOW | src/napari/types.py | 25 | CODE | |
| LOW | src/napari/types.py | 26 | CODE | |
| LOW | src/napari/types.py | 27 | CODE | |
| LOW | src/napari/types.py | 28 | CODE | |
| LOW | src/napari/_event_loop.py | 2 | CODE | |
| LOW | src/napari/settings/_plugin_config_generator.py | 1 | CODE | |
| LOW | src/napari/settings/_base.py | 1 | CODE | |
| LOW | src/napari/settings/__init__.py | 8 | CODE | |
| LOW | src/napari/settings/_yaml.py | 1 | CODE | |
| LOW | src/napari/settings/_shortcuts.py | 1 | CODE | |
| LOW | src/napari/settings/_application.py | 1 | CODE | |
| LOW | src/napari/settings/_migrations.py | 1 | CODE | |
| LOW | src/napari/settings/_plugin_settings.py | 1 | CODE | |
| LOW | src/napari/settings/_tests/test_plugins.py | 6 | CODE | |
| LOW | src/napari/experimental/__init__.py | 1 | CODE | |
| LOW | src/napari/experimental/__init__.py | 1 | CODE | |
| LOW | src/napari/experimental/__init__.py | 1 | CODE | |
| LOW | src/napari/layers/_source.py | 1 | CODE | |
| LOW | src/napari/layers/intensity_mixin.py | 14 | CODE | |
| LOW | src/napari/layers/intensity_mixin.py | 15 | CODE | |
| LOW | src/napari/layers/__init__.py | 10 | CODE | |
| LOW | src/napari/layers/__init__.py | 11 | CODE | |
| LOW | src/napari/layers/__init__.py | 12 | CODE | |
| LOW | src/napari/layers/__init__.py | 13 | CODE | |
| LOW | src/napari/layers/__init__.py | 14 | CODE | |
| LOW | src/napari/layers/__init__.py | 15 | CODE | |
| LOW | src/napari/layers/__init__.py | 16 | CODE | |
| LOW | src/napari/layers/__init__.py | 17 | CODE | |
| LOW | src/napari/layers/_layer_actions.py | 6 | CODE | |
| LOW | src/napari/layers/_multiscale_data.py | 1 | CODE | |
| 545 more matches not shown… | ||||
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| HIGH | src/napari/layers/labels/labels.py | 0 | dataframe-like features table. it is an implementation detail that this is a `pandas.dataframe`. in the future, we will | STRING |
| HIGH | src/napari/layers/tracks/tracks.py | 0 | dataframe-like features table. it is an implementation detail that this is a `pandas.dataframe`. in the future, we will | STRING |
| HIGH | src/napari/layers/tracks/_track_utils.py | 0 | dataframe-like features table. it is an implementation detail that this is a `pandas.dataframe`. in the future, we will | STRING |
| HIGH | src/napari/layers/surface/surface.py | 0 | dataframe-like features table. it is an implementation detail that this is a `pandas.dataframe`. in the future, we will | STRING |
| HIGH | src/napari/layers/shapes/shapes.py | 0 | dataframe-like features table. it is an implementation detail that this is a `pandas.dataframe`. in the future, we will | STRING |
| HIGH | src/napari/layers/vectors/vectors.py | 0 | dataframe-like features table. it is an implementation detail that this is a `pandas.dataframe`. in the future, we will | STRING |
| HIGH | src/napari/layers/points/points.py | 0 | dataframe-like features table. it is an implementation detail that this is a `pandas.dataframe`. in the future, we will | STRING |
| HIGH | src/napari/layers/labels/labels.py | 0 | get dictionary of layer state. returns ------- state : dict of str to any dictionary of layer state. | STRING |
| HIGH | src/napari/layers/tracks/tracks.py | 0 | get dictionary of layer state. returns ------- state : dict of str to any dictionary of layer state. | STRING |
| HIGH | src/napari/layers/surface/surface.py | 0 | get dictionary of layer state. returns ------- state : dict of str to any dictionary of layer state. | STRING |
| HIGH | src/napari/layers/shapes/shapes.py | 0 | get dictionary of layer state. returns ------- state : dict of str to any dictionary of layer state. | STRING |
| HIGH | src/napari/layers/vectors/vectors.py | 0 | get dictionary of layer state. returns ------- state : dict of str to any dictionary of layer state. | STRING |
| HIGH | src/napari/layers/image/image.py | 0 | get dictionary of layer state. returns ------- state : dict of str to any dictionary of layer state. | STRING |
| HIGH | src/napari/layers/points/points.py | 0 | get dictionary of layer state. returns ------- state : dict of str to any dictionary of layer state. | STRING |
| HIGH | src/napari/layers/labels/labels.py | 0 | tooltip message of the data at a coordinate position. parameters ---------- position : ndarray position in either data o | STRING |
| HIGH | src/napari/layers/points/points.py | 0 | tooltip message of the data at a coordinate position. parameters ---------- position : ndarray position in either data o | STRING |
| HIGH | src/napari/layers/base/base.py | 0 | tooltip message of the data at a coordinate position. parameters ---------- position : ndarray position in either data o | STRING |
| HIGH | src/napari/layers/labels/_tests/test_labels.py | 0 | test getting the value of the rgb data at the current coordinates. | STRING |
| HIGH | src/napari/layers/shapes/_tests/test_shapes.py | 0 | test getting the value of the rgb data at the current coordinates. | STRING |
| HIGH | src/napari/layers/vectors/_tests/test_vectors.py | 0 | test getting the value of the rgb data at the current coordinates. | STRING |
| HIGH | src/napari/layers/image/_tests/test_volume.py | 0 | test getting the value of the rgb data at the current coordinates. | STRING |
| HIGH | src/napari/layers/image/_tests/test_image.py | 0 | test getting the value of the rgb data at the current coordinates. | STRING |
| HIGH | src/napari/layers/image/_tests/test_multiscale.py | 0 | test getting the value of the rgb data at the current coordinates. | STRING |
| HIGH | src/napari/layers/points/_tests/test_points.py | 0 | test getting the value of the rgb data at the current coordinates. | STRING |
| HIGH | src/napari/layers/tracks/tracks.py | 0 | extent of layer in data coordinates. returns ------- extent_data : array, shape (2, d) | STRING |
| HIGH | src/napari/layers/surface/surface.py | 0 | extent of layer in data coordinates. returns ------- extent_data : array, shape (2, d) | STRING |
| HIGH | src/napari/layers/shapes/shapes.py | 0 | extent of layer in data coordinates. returns ------- extent_data : array, shape (2, d) | STRING |
| HIGH | src/napari/layers/vectors/vectors.py | 0 | extent of layer in data coordinates. returns ------- extent_data : array, shape (2, d) | STRING |
| HIGH | src/napari/layers/points/points.py | 0 | extent of layer in data coordinates. returns ------- extent_data : array, shape (2, d) | STRING |
| HIGH | src/napari/layers/_scalar_field/scalar_field.py | 0 | extent of layer in data coordinates. returns ------- extent_data : array, shape (2, d) | STRING |
| HIGH | src/napari/layers/base/base.py | 0 | extent of layer in data coordinates. returns ------- extent_data : array, shape (2, d) | STRING |
| HIGH | src/napari/layers/surface/surface.py | 0 | dataframe-like with one row of feature default values. see `features` for more details on the type of this property. | STRING |
| HIGH | src/napari/layers/shapes/shapes.py | 0 | dataframe-like with one row of feature default values. see `features` for more details on the type of this property. | STRING |
| HIGH | src/napari/layers/vectors/vectors.py | 0 | dataframe-like with one row of feature default values. see `features` for more details on the type of this property. | STRING |
| HIGH | src/napari/layers/points/points.py | 0 | dataframe-like with one row of feature default values. see `features` for more details on the type of this property. | STRING |
| HIGH | src/napari/layers/surface/surface.py | 0 | make a points slice request based on the given dims and these data. | STRING |
| HIGH | src/napari/layers/vectors/vectors.py | 0 | make a points slice request based on the given dims and these data. | STRING |
| HIGH | src/napari/layers/points/points.py | 0 | make a points slice request based on the given dims and these data. | STRING |
| HIGH | src/napari/layers/shapes/shapes.py | 0 | return the colormap to be applied to a property to get the border color. returns ------- colormap : napari.utils.colorma | STRING |
| HIGH | src/napari/layers/vectors/vectors.py | 0 | return the colormap to be applied to a property to get the border color. returns ------- colormap : napari.utils.colorma | STRING |
| HIGH | src/napari/layers/points/points.py | 0 | return the colormap to be applied to a property to get the border color. returns ------- colormap : napari.utils.colorma | STRING |
| HIGH | src/napari/layers/shapes/shapes.py | 0 | none, (float, float): contrast limits for mapping the border_color colormap property to 0 and 1 | STRING |
| HIGH | src/napari/layers/vectors/vectors.py | 0 | none, (float, float): contrast limits for mapping the border_color colormap property to 0 and 1 | STRING |
| HIGH | src/napari/layers/points/points.py | 0 | none, (float, float): contrast limits for mapping the border_color colormap property to 0 and 1 | STRING |
| HIGH | src/napari/layers/shapes/shapes.py | 0 | str: face color setting mode direct (default mode) allows each point to be set arbitrarily cycle allows the color to be | STRING |
| HIGH | src/napari/layers/vectors/vectors.py | 0 | str: face color setting mode direct (default mode) allows each point to be set arbitrarily cycle allows the color to be | STRING |
| HIGH | src/napari/layers/points/points.py | 0 | str: face color setting mode direct (default mode) allows each point to be set arbitrarily cycle allows the color to be | STRING |
| HIGH | src/napari/layers/shapes/shapes.py | 0 | calculate and update face and border colors if using a cycle or color map parameters ---------- update_color_mapping : b | STRING |
| HIGH | src/napari/layers/utils/color_manager.py | 0 | calculate and update face and border colors if using a cycle or color map parameters ---------- update_color_mapping : b | STRING |
| HIGH | src/napari/layers/vectors/vectors.py | 0 | calculate and update face and border colors if using a cycle or color map parameters ---------- update_color_mapping : b | STRING |
| HIGH | src/napari/layers/points/points.py | 0 | calculate and update face and border colors if using a cycle or color map parameters ---------- update_color_mapping : b | STRING |
| HIGH | src/napari/layers/shapes/shapes.py | 0 | get the colors of the text elements at the given indices. | STRING |
| HIGH | src/napari/layers/utils/text_manager.py | 0 | get the colors of the text elements at the given indices. | STRING |
| HIGH | src/napari/layers/points/points.py | 0 | get the colors of the text elements at the given indices. | STRING |
| HIGH | src/napari/layers/shapes/_shapes_constants.py | 0 | colormode: color setting mode. direct (default mode) allows each point to be set arbitrarily cycle allows the color to b | STRING |
| HIGH | src/napari/layers/utils/_color_manager_constants.py | 0 | colormode: color setting mode. direct (default mode) allows each point to be set arbitrarily cycle allows the color to b | STRING |
| HIGH | src/napari/layers/points/_points_constants.py | 0 | colormode: color setting mode. direct (default mode) allows each point to be set arbitrarily cycle allows the color to b | STRING |
| HIGH | src/napari/layers/shapes/_tests/test_shapes.py | 0 | helper function to make property values parameters ---------- values the values to be cycled. length : int the length of | STRING |
| HIGH | src/napari/layers/utils/_tests/test_color_manager.py | 0 | helper function to make property values parameters ---------- values the values to be cycled. length : int the length of | STRING |
| HIGH | src/napari/layers/points/_tests/test_points.py | 0 | helper function to make property values parameters ---------- values the values to be cycled. length : int the length of | STRING |
| 31 more matches not shown… | ||||
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| LOW | examples/theme_sample.py | 154 | def set_color(self, color: str) -> None: | STRING |
| LOW | examples/theme_sample.py | 181 | def set_color(self, color: str) -> None: | STRING |
| LOW | src/napari_builtins/io/__init__.py | 21 | __all__ = [ | CODE |
| LOW | src/napari/window.py | 9 | __all__ = ['Window'] | CODE |
| LOW | src/napari/view_layers.py | 13 | __all__ = ['imshow'] | CODE |
| LOW | src/napari/types.py | 31 | __all__ = [ | CODE |
| LOW | src/napari/settings/__init__.py | 18 | __all__ = [ | CODE |
| LOW⚡ | src/napari/settings/_experimental.py | 149 | def _update_triangulation_backend(event: Event) -> None: | CODE |
| LOW⚡ | src/napari/settings/_experimental.py | 155 | def _update_colormap_backend(event: Event) -> None: | CODE |
| LOW | src/napari/experimental/__init__.py | 7 | __all__ = [ | CODE |
| LOW | src/napari/layers/__init__.py | 27 | __all__ = [ | CODE |
| LOW | src/napari/layers/labels/__init__.py | 10 | __all__ = ['Labels'] | CODE |
| LOW | src/napari/layers/tracks/tracks.py | 276 | def _set_view_slice(self) -> None: | CODE |
| LOW | src/napari/layers/tracks/tracks.py | 299 | def _update_thumbnail(self) -> None: | CODE |
| LOW | src/napari/layers/tracks/tracks.py | 676 | def _set_view_slice(self) -> None: | CODE |
| LOW | src/napari/layers/tracks/__init__.py | 3 | __all__ = ['Tracks'] | CODE |
| LOW | src/napari/layers/surface/__init__.py | 3 | __all__ = ['Surface'] | CODE |
| LOW | src/napari/layers/surface/surface.py | 682 | def _update_thumbnail(self) -> None: | CODE |
| LOW | src/napari/layers/surface/surface.py | 818 | def _set_view_slice(self) -> None: | CODE |
| LOW | src/napari/layers/surface/surface.py | 850 | def _update_slice_response(self, response: _SurfaceSliceResponse) -> None: | CODE |
| LOW | src/napari/layers/shapes/shapes.py | 2700 | def _set_highlight(self, force=False) -> None: | CODE |
| LOW | src/napari/layers/shapes/_shape_list.py | 749 | def _update_displayed(self) -> None: | CODE |
| LOW | src/napari/layers/shapes/_shape_list.py | 1122 | def _update_vertices(self, index: int) -> None: | CODE |
| LOW | src/napari/layers/shapes/_shape_list.py | 1149 | def _update_mesh_triangles(self, index: int) -> None: | CODE |
| LOW | src/napari/layers/shapes/__init__.py | 10 | __all__ = ['Shapes'] | CODE |
| LOW | …ari/layers/shapes/_accelerated_triangulate_dispatch.py | 83 | def _set_numba(value: bool) -> None: | CODE |
| LOW | …ari/layers/shapes/_accelerated_triangulate_dispatch.py | 106 | def _set_warmup(value: bool) -> None: | CODE |
| LOW | …c/napari/layers/shapes/_shapes_models/_polygon_base.py | 90 | def _update_displayed_data(self) -> None: | CODE |
| LOW | src/napari/layers/shapes/_shapes_models/line.py | 69 | def _update_displayed_data(self) -> None: | CODE |
| LOW | src/napari/layers/shapes/_shapes_models/__init__.py | 8 | __all__ = ['Ellipse', 'Line', 'Path', 'Polygon', 'Rectangle', 'Shape'] | CODE |
| LOW | src/napari/layers/shapes/_shapes_models/rectangle.py | 75 | def _update_displayed_data(self) -> None: | CODE |
| LOW | src/napari/layers/shapes/_shapes_models/shape.py | 205 | def _update_displayed_data(self) -> None: | CODE |
| LOW | src/napari/layers/shapes/_shapes_models/shape.py | 306 | def _set_empty_edge(self) -> None: | CODE |
| LOW | src/napari/layers/shapes/_shapes_models/shape.py | 311 | def _set_empty_face(self) -> None: | CODE |
| LOW | src/napari/layers/shapes/_shapes_models/ellipse.py | 85 | def _update_displayed_data(self) -> None: | CODE |
| LOW | src/napari/layers/utils/layer_utils.py | 967 | def set_values(self, values, *, num_data=None) -> None: | CODE |
| LOW | src/napari/layers/utils/layer_utils.py | 977 | def set_defaults(self, defaults: dict[str, Any] | pd.DataFrame) -> None: | CODE |
| LOW | src/napari/layers/utils/stack_utils.py | 18 | logger = logging.getLogger(__name__) | CODE |
| LOW | src/napari/layers/vectors/__init__.py | 3 | __all__ = ['Vectors'] | CODE |
| LOW | src/napari/layers/image/__init__.py | 10 | __all__ = ['Image'] | CODE |
| LOW | src/napari/layers/image/_image_mouse_bindings.py | 91 | def set_plane_position(layer: Image, event: Event) -> None: | CODE |
| LOW | src/napari/layers/image/image.py | 533 | def _update_thumbnail(self) -> None: | CODE |
| LOW | src/napari/layers/points/_points_mouse_bindings.py | 184 | def _update_drag_vectors_from_event(layer: Points, event: Event) -> None: | CODE |
| LOW | src/napari/layers/points/points.py | 627 | def _set_data(self, data: np.ndarray | None) -> None: | CODE |
| LOW | src/napari/layers/points/points.py | 1850 | def _set_highlight(self, force: bool = False) -> None: | CODE |
| LOW | src/napari/layers/points/points.py | 1917 | def _update_thumbnail(self) -> None: | CODE |
| LOW | src/napari/layers/points/points.py | 2470 | def _set_view_slice(self) -> None: | CODE |
| LOW | src/napari/layers/points/points.py | 2502 | def _update_slice_response(self, response: _PointSliceResponse) -> None: | CODE |
| LOW | src/napari/layers/points/__init__.py | 10 | __all__ = ['Points'] | CODE |
| LOW | src/napari/layers/base/_test_util_sample_layer.py | 13 | def _set_view_slice(self) -> None: | CODE |
| LOW | src/napari/layers/base/_test_util_sample_layer.py | 91 | def _set_view_slice(self) -> None: | CODE |
| LOW | src/napari/layers/base/_test_util_sample_layer.py | 94 | def _update_thumbnail(self) -> None: | CODE |
| LOW | src/napari/layers/base/__init__.py | 4 | __all__ = ['ActionType', 'Layer', 'LayerLock', '_LayerSlicingState', 'no_op'] | CODE |
| LOW⚡ | src/napari/layers/base/base.py | 309 | def _set_loaded(self, loaded: bool) -> None: | CODE |
| LOW⚡ | src/napari/layers/base/base.py | 315 | def _set_unloaded_slice_id(self, slice_id: int) -> None: | CODE |
| LOW⚡ | src/napari/layers/base/base.py | 324 | def _update_loaded_slice_id(self, slice_id: int) -> None: | CODE |
| LOW | src/napari/layers/base/base.py | 141 | def set_view_slice(self) -> None: | CODE |
| LOW | src/napari/layers/base/base.py | 874 | def _set_source(self, source: Source) -> None: | CODE |
| LOW | src/napari/layers/base/base.py | 1129 | def _update_dims(self) -> None: | CODE |
| LOW | src/napari/layers/base/base.py | 1441 | def set_view_slice(self) -> None: | CODE |
| 139 more matches not shown… | ||||
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| LOW | tox.ini | 1 | # Tox (http://tox.testrun.org/) is a tool for running tests | COMMENT |
| LOW | resources/requirements_pyrefly.txt | 1 | # This file was autogenerated by uv via the following command: | COMMENT |
| LOW | resources/requirements_pyrefly.txt | 21 | magicgui==0.10.2 | COMMENT |
| LOW | resources/requirements_pyrefly.txt | 41 | # npe2 | COMMENT |
| LOW | resources/requirements_pyrefly.txt | 61 | # via -r resources/requirements_pyrefly.in | COMMENT |
| LOW | resources/requirements_pyrefly.txt | 81 | superqt==0.8.2 | COMMENT |
| LOW | resources/requirements_pyrefly.txt | 101 | # typing-inspection | COMMENT |
| LOW | resources/constraints/constraints_py3.12_examples.txt | 1 | # This file was autogenerated by uv via the following command: | COMMENT |
| LOW | resources/constraints/constraints_py3.12_examples.txt | 21 | attrs==26.1.0 | COMMENT |
| LOW | resources/constraints/constraints_py3.12_examples.txt | 41 | # pyogrio | COMMENT |
| LOW | resources/constraints/constraints_py3.12_examples.txt | 61 | # via glasbey | COMMENT |
| LOW | resources/constraints/constraints_py3.12_examples.txt | 81 | # napari (pyproject.toml:gallery) | COMMENT |
| LOW | resources/constraints/constraints_py3.12_examples.txt | 101 | # via trackastra | COMMENT |
| LOW | resources/constraints/constraints_py3.12_examples.txt | 121 | # via | COMMENT |
| LOW | resources/constraints/constraints_py3.12_examples.txt | 141 | gurobipy==13.0.3 | COMMENT |
| LOW | resources/constraints/constraints_py3.12_examples.txt | 161 | # trackastra | COMMENT |
| LOW | resources/constraints/constraints_py3.12_examples.txt | 181 | # via | COMMENT |
| LOW | resources/constraints/constraints_py3.12_examples.txt | 201 | # trackastra | COMMENT |
| LOW | resources/constraints/constraints_py3.12_examples.txt | 221 | # napari (pyproject.toml) | COMMENT |
| LOW | resources/constraints/constraints_py3.12_examples.txt | 241 | # via rich | COMMENT |
| LOW | resources/constraints/constraints_py3.12_examples.txt | 261 | # via tensorstore | COMMENT |
| LOW | resources/constraints/constraints_py3.12_examples.txt | 281 | # via napari (pyproject.toml) | COMMENT |
| LOW | resources/constraints/constraints_py3.12_examples.txt | 301 | # via | COMMENT |
| LOW | resources/constraints/constraints_py3.12_examples.txt | 321 | # fastremap | COMMENT |
| LOW | resources/constraints/constraints_py3.12_examples.txt | 341 | # partsegcore-compiled-backend | COMMENT |
| LOW | resources/constraints/constraints_py3.12_examples.txt | 361 | # nvidia-cusolver | COMMENT |
| LOW | resources/constraints/constraints_py3.12_examples.txt | 381 | # via | COMMENT |
| LOW | resources/constraints/constraints_py3.12_examples.txt | 401 | # dask | COMMENT |
| LOW | resources/constraints/constraints_py3.12_examples.txt | 421 | # zarr | COMMENT |
| LOW | resources/constraints/constraints_py3.12_examples.txt | 441 | # imageio | COMMENT |
| LOW | resources/constraints/constraints_py3.12_examples.txt | 461 | # via | COMMENT |
| LOW | resources/constraints/constraints_py3.12_examples.txt | 481 | # ipykernel | COMMENT |
| LOW | resources/constraints/constraints_py3.12_examples.txt | 501 | # geff | COMMENT |
| LOW | resources/constraints/constraints_py3.12_examples.txt | 521 | # rich | COMMENT |
| LOW | resources/constraints/constraints_py3.12_examples.txt | 541 | # napari (pyproject.toml) | COMMENT |
| LOW | resources/constraints/constraints_py3.12_examples.txt | 561 | # pytest-metadata | COMMENT |
| LOW | resources/constraints/constraints_py3.12_examples.txt | 581 | # via virtualenv | COMMENT |
| LOW | resources/constraints/constraints_py3.12_examples.txt | 601 | # via | COMMENT |
| LOW | resources/constraints/constraints_py3.12_examples.txt | 621 | # nilearn | COMMENT |
| LOW | resources/constraints/constraints_py3.12_examples.txt | 641 | # via | COMMENT |
| LOW | resources/constraints/constraints_py3.12_examples.txt | 661 | # pyside6-essentials | COMMENT |
| LOW | resources/constraints/constraints_py3.12_examples.txt | 681 | # via torch | COMMENT |
| LOW | resources/constraints/constraints_py3.12_examples.txt | 701 | # distributed | COMMENT |
| LOW | resources/constraints/constraints_py3.12_examples.txt | 721 | # via napari (pyproject.toml:gallery) | COMMENT |
| LOW | resources/constraints/constraints_py3.12_examples.txt | 741 | # app-model | COMMENT |
| LOW | resources/constraints/constraints_py3.12_examples.txt | 761 | # via | COMMENT |
| LOW | resources/constraints/constraints_py3.12_examples.txt | 781 | # via | COMMENT |
| LOW | resources/constraints/constraints_py3.14.txt | 1 | # This file was autogenerated by uv via the following command: | COMMENT |
| LOW | resources/constraints/constraints_py3.14.txt | 21 | # referencing | COMMENT |
| LOW | resources/constraints/constraints_py3.14.txt | 61 | # via | COMMENT |
| LOW | resources/constraints/constraints_py3.14.txt | 81 | frozenlist==1.8.0 | COMMENT |
| LOW | resources/constraints/constraints_py3.14.txt | 101 | # yarl | COMMENT |
| LOW | resources/constraints/constraints_py3.14.txt | 121 | ipython-pygments-lexers==1.1.1 | COMMENT |
| LOW | resources/constraints/constraints_py3.14.txt | 141 | # qtconsole | COMMENT |
| LOW | resources/constraints/constraints_py3.14.txt | 161 | magicgui==0.10.2 | COMMENT |
| LOW | resources/constraints/constraints_py3.14.txt | 181 | multidict==6.9.1 | COMMENT |
| LOW | resources/constraints/constraints_py3.14.txt | 201 | # scikit-image | COMMENT |
| LOW | resources/constraints/constraints_py3.14.txt | 221 | # napari-svg | COMMENT |
| LOW | resources/constraints/constraints_py3.14.txt | 241 | # via | COMMENT |
| LOW | resources/constraints/constraints_py3.14.txt | 261 | # via torch | COMMENT |
| 185 more matches not shown… | ||||
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| HIGH | src/napari/viewer.py | 121 | self.window._qt_viewer.console.push(variables) | CODE |
| HIGH | src/napari/layers/labels/_tests/test_labels.py | 2297 | with more colors is undefined, so we don't test it here. | CODE |
| HIGH | src/napari/layers/surface/_slice.py | 143 | # a non-valid index is undefined, but shouldn't happen | COMMENT |
| HIGH | src/napari/layers/vectors/vectors.py | 565 | self.events.length() | CODE |
| HIGH | src/napari/_vispy/visuals/volume.py | 113 | if (u_clamp_at_border || (prev_loc[i] >= 0.0 && prev_loc[i] <= 1.0)) { | CODE |
| HIGH | src/napari/_vispy/visuals/volume.py | 120 | if (u_clamp_at_border || (next_loc[i] >= 0.0 && next_loc[i] <= 1.0)) { | CODE |
| HIGH⚡ | src/napari/_vispy/visuals/volume.py | 168 | if (is_on_border && (i != 0 && j != 0 && k != 0)) { | CODE |
| HIGH⚡ | src/napari/_vispy/visuals/volume.py | 176 | if (is_in_bounds || u_clamp_at_border) { | CODE |
| HIGH⚡ | src/napari/_vispy/visuals/volume.py | 183 | (1 + float(j == 0 || k == 0) + 2 * float(j == 0 && k == 0)); | CODE |
| HIGH⚡ | src/napari/_vispy/visuals/volume.py | 183 | (1 + float(j == 0 || k == 0) + 2 * float(j == 0 && k == 0)); | CODE |
| HIGH⚡ | src/napari/_vispy/visuals/volume.py | 185 | (1 + float(i == 0 || k == 0) + 2 * float(i == 0 && k == 0)); | CODE |
| HIGH⚡ | src/napari/_vispy/visuals/volume.py | 185 | (1 + float(i == 0 || k == 0) + 2 * float(i == 0 && k == 0)); | CODE |
| HIGH⚡ | src/napari/_vispy/visuals/volume.py | 187 | (1 + float(i == 0 || j == 0) + 2 * float(i == 0 && j == 0)); | CODE |
| HIGH⚡ | src/napari/_vispy/visuals/volume.py | 187 | (1 + float(i == 0 || j == 0) + 2 * float(i == 0 && j == 0)); | CODE |
| HIGH⚡ | src/napari/_vispy/visuals/volume.py | 189 | next.x += int(i == 1 && j == 0 && k == 0) * val; | CODE |
| HIGH⚡ | src/napari/_vispy/visuals/volume.py | 190 | next.y += int(i == 0 && j == 1 && k == 0) * val; | CODE |
| HIGH⚡ | src/napari/_vispy/visuals/volume.py | 191 | next.z += int(i == 0 && j == 0 && k == 1) * val; | CODE |
| HIGH⚡ | src/napari/_vispy/visuals/volume.py | 192 | prev.x += int(i == -1 && j == 0 && k == 0) * val; | CODE |
| HIGH⚡ | src/napari/_vispy/visuals/volume.py | 193 | prev.y += int(i == 0 && j == -1 && k == 0) * val; | CODE |
| HIGH⚡ | src/napari/_vispy/visuals/volume.py | 194 | prev.z += int(i == 0 && j == 0 && k == -1) * val; | CODE |
| HIGH⚡ | src/napari/_vispy/visuals/volume.py | 196 | is_on_border = is_on_border || (!is_in_bounds && (i == 0 || j == 0 || k == 0)); | CODE |
| HIGH⚡ | src/napari/_vispy/visuals/volume.py | 201 | if (is_on_border && u_clamp_at_border) { | CODE |
| HIGH | src/napari/utils/misc.py | 392 | return df1.equals(df2) | CODE |
| HIGH | src/napari/utils/io.py | 280 | console.push(variables) | CODE |
| HIGH | src/napari/utils/events/evented_model.py | 458 | before = self.model_config.get('use_enum_values', null) | CODE |
| HIGH | src/napari/components/_layer_slicer.py | 325 | Attempt to remove task, return false if task not found, return true | STRING |
| HIGH⚡ | src/napari/_qt/qt_viewer.py | 557 | console.push( | CODE |
| HIGH⚡ | src/napari/_qt/qt_viewer.py | 565 | console.push({'np': np}) | CODE |
| HIGH⚡ | src/napari/_qt/qt_viewer.py | 568 | console.push( | CODE |
| HIGH | src/napari/_qt/qt_viewer.py | 1338 | filenames.append(url.toString()) | CODE |
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| MEDIUM⚡ | examples/surface_multi_texture.py | 106 | # Create the napari layers | COMMENT |
| MEDIUM | examples/bbox_annotator.py | 43 | # Create the label selection menu | COMMENT |
| MEDIUM | examples/affine_coffee_cup.py | 39 | # Define an original affine transformation to be position of surface upon being loaded into viewer | COMMENT |
| MEDIUM | examples/affine_coffee_cup.py | 59 | # Define a new affine transform for the creamer surface, where it is moved up and at an angle to be 'poured' into th | COMMENT |
| MEDIUM | examples/screenshot_and_export_figure.py | 25 | # Create a napari viewer with multiple layer types and add a scale bar. | COMMENT |
| MEDIUM | examples/mouse_drag_image_warping.py | 40 | # Define a function to estimate the warping required to transform the destination points | COMMENT |
| MEDIUM | examples/image_border.py | 23 | # Create a napari viewer with a 3D, 2 channel image, with the `add_image` convenience function. | COMMENT |
| MEDIUM⚡ | examples/affine_transforms.py | 14 | # Create a random image | COMMENT |
| MEDIUM⚡ | examples/affine_transforms.py | 17 | # Define an affine transform | COMMENT |
| MEDIUM⚡ | examples/affine_transforms.py | 20 | # Define the corners of the image, including in homogeneous space | COMMENT |
| MEDIUM | examples/export_rois.py | 22 | # Create a napari viewer with multiple layer types and add a scale bar. | COMMENT |
| MEDIUM | examples/dev/triangle_edge.py | 29 | # Create a dummy numba.njit to allow running this script without numba | COMMENT |
| MEDIUM | examples/dev/slicing/random_shapes.py | 63 | # Create the example shapes if they do not exist | COMMENT |
| MEDIUM | src/napari_builtins/io/_write.py | 56 | # The above method generates a lot of extensions that will fail. This list | COMMENT |
| MEDIUM | src/napari/layers/_tests/test_layer_actions.py | 390 | # Create a label based on the shape. | COMMENT |
| MEDIUM | src/napari/layers/labels/labels.py | 1354 | # Create the slice to extract the full working volume/plane | COMMENT |
| MEDIUM | …apari/layers/shapes/_accelerated_triangulate_python.py | 281 | # Create an adjacency list representation from the edges | COMMENT |
| MEDIUM | …napari/layers/shapes/_accelerated_triangulate_numba.py | 826 | # Create a list (indexed by vertex) containing lists of incident edge indices. | COMMENT |
| MEDIUM | …c/napari/layers/shapes/_tests/test_shapes_selection.py | 47 | # Create a shapes layer with a rectangle | COMMENT |
| MEDIUM | …c/napari/layers/shapes/_tests/test_shapes_selection.py | 64 | # Create a shapes layer with rectangles on different slices | COMMENT |
| MEDIUM | …c/napari/layers/shapes/_tests/test_shapes_selection.py | 84 | # Create a shapes layer | COMMENT |
| MEDIUM⚡ | …c/napari/layers/shapes/_tests/test_shapes_selection.py | 103 | # Create a shapes layer with a rectangle only on slice 0 | COMMENT |
| MEDIUM | src/napari/layers/shapes/_tests/test_shapes.py | 2510 | # Create a layer with the first shape | COMMENT |
| MEDIUM | src/napari/layers/utils/text_manager.py | 354 | # Create a new instance from the input to populate all fields. | COMMENT |
| MEDIUM | src/napari/layers/utils/style_encoding.py | 114 | # The following classes provide generic implementations of common ways | COMMENT |
| MEDIUM | src/napari/layers/points/points.py | 2307 | # Define a minimal set of coordinates where the mask could be present | COMMENT |
| MEDIUM | src/napari/layers/base/base.py | 597 | # Create a transform chain consisting of four transforms: | COMMENT |
| MEDIUM | src/napari/_tests/test_function_widgets.py | 12 | # Define a function. | COMMENT |
| MEDIUM | …ari/_vispy/_tests/test_vispy_labels_polygon_overlay.py | 181 | # Create a labels layer that will be downsampled | COMMENT |
| MEDIUM | src/napari/utils/stubgen.py | 1 | """This module provides helper functions for autogenerating type stubs. | STRING |
| MEDIUM | src/napari/utils/colormaps/colormap_utils.py | 218 | # The following code can be used to reproduce these values. | COMMENT |
| MEDIUM⚡ | src/napari/utils/colormaps/_tests/test_colormap.py | 504 | # Create a DirectLabelColormap with an empty color_dict | COMMENT |
| MEDIUM⚡ | src/napari/utils/colormaps/_tests/test_colormap.py | 510 | # Create a DirectLabelColormap with a simple color_dict | COMMENT |
| MEDIUM | src/napari/utils/colormaps/_tests/test_colormap.py | 437 | # Create a DirectLabelColormap with a simple color_dict | COMMENT |
| MEDIUM | src/napari/utils/colormaps/_tests/test_colormap.py | 455 | # Create a DirectLabelColormap with a simple color_dict and a selection | COMMENT |
| MEDIUM | src/napari/utils/colormaps/_tests/test_colormap.py | 475 | # Create a DirectLabelColormap with a simple color_dict | COMMENT |
| MEDIUM | src/napari/utils/colormaps/_tests/test_colormap.py | 543 | # Create a DirectLabelColormap with a simple color_dict | COMMENT |
| MEDIUM | src/napari/components/experimental/monitor/_monitor.py | 172 | # Create the API first. It will register our callbacks, then | COMMENT |
| MEDIUM | src/napari/_qt/qt_main_window.py | 801 | """This function is only executed once at the startup of napari | STRING |
| MEDIUM⚡ | src/napari/_qt/qt_viewer.py | 239 | # Create the experimental QtPool for the monitor. | COMMENT |
| MEDIUM⚡ | src/napari/_qt/qt_viewer.py | 242 | # Create the experimental RemoteManager for the monitor. | COMMENT |
| MEDIUM | src/napari/_qt/qt_viewer.py | 1566 | # Create the remote manager and have monitor call its process_command() | COMMENT |
| MEDIUM | src/napari/_qt/_qapp_model/_tests/test_qproviders.py | 44 | # Create a viewer | COMMENT |
| MEDIUM | src/napari/_qt/_tests/test_qt_viewer.py | 292 | # Create an image with a defined shape (100x100) and a square in the middle | COMMENT |
| MEDIUM | src/napari/_qt/_tests/test_qt_viewer.py | 300 | # Create a couple of clearly defined rectangular polygons for validation | COMMENT |
| MEDIUM | src/napari/_qt/threads/status_checker.py | 53 | # Create a Signal to establish a lightweight communication mechanism between the | COMMENT |
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| LOW | tools/check_deps_version.py | 75 | CODE | |
| LOW | src/napari_builtins/_diffusion_4d.py | 46 | CODE | |
| LOW | src/napari_builtins/_measure_shapes.py | 67 | CODE | |
| LOW | src/napari_builtins/io/_read.py | 202 | CODE | |
| LOW | src/napari_builtins/io/_read.py | 313 | CODE | |
| LOW | src/napari_builtins/_qt/features_table.py | 128 | CODE | |
| LOW | src/napari_builtins/_qt/features_table.py | 675 | CODE | |
| LOW | src/napari_builtins/_qt/features_table.py | 909 | CODE | |
| LOW | src/napari_builtins/_qt/features_table.py | 961 | CODE | |
| LOW | src/napari_builtins/_qt/features_table.py | 993 | CODE | |
| LOW | src/napari_builtins/_qt/features_table.py | 1052 | CODE | |
| LOW | src/napari/conftest.py | 726 | CODE | |
| LOW | src/napari/_main.py | 49 | CODE | |
| LOW | src/napari/_pydantic_util.py | 26 | CODE | |
| LOW | src/napari/__main__.py | 211 | CODE | |
| LOW | src/napari/settings/_base.py | 482 | CODE | |
| LOW | src/napari/settings/_fields.py | 145 | CODE | |
| LOW | src/napari/settings/_migrations.py | 29 | CODE | |
| LOW | src/napari/settings/_migrations.py | 141 | CODE | |
| LOW | src/napari/layers/_tests/test_layer_attributes.py | 71 | CODE | |
| LOW | src/napari/layers/shapes/shapes.py | 1114 | CODE | |
| LOW | src/napari/layers/shapes/shapes.py | 1440 | CODE | |
| LOW | src/napari/layers/shapes/shapes.py | 2454 | CODE | |
| LOW | src/napari/layers/shapes/shapes.py | 2542 | CODE | |
| LOW | src/napari/layers/shapes/shapes.py | 2602 | CODE | |
| LOW | src/napari/layers/shapes/shapes.py | 2723 | CODE | |
| LOW | src/napari/layers/shapes/shapes.py | 2832 | CODE | |
| LOW | src/napari/layers/shapes/shapes.py | 3018 | CODE | |
| LOW | …apari/layers/shapes/_accelerated_triangulate_python.py | 263 | CODE | |
| LOW | src/napari/layers/shapes/_shapes_mouse_bindings.py | 58 | CODE | |
| LOW | src/napari/layers/shapes/_shapes_mouse_bindings.py | 683 | CODE | |
| LOW | src/napari/layers/shapes/_shapes_mouse_bindings.py | 812 | CODE | |
| LOW | src/napari/layers/shapes/_shapes_mouse_bindings.py | 905 | CODE | |
| LOW | …napari/layers/shapes/_accelerated_triangulate_numba.py | 399 | CODE | |
| LOW | …napari/layers/shapes/_accelerated_triangulate_numba.py | 793 | CODE | |
| LOW | …ari/layers/shapes/_tests/test_shapes_mouse_bindings.py | 1227 | CODE | |
| LOW | src/napari/layers/utils/layer_utils.py | 790 | CODE | |
| LOW | src/napari/layers/utils/color_manager.py | 81 | CODE | |
| LOW | src/napari/layers/utils/color_manager.py | 221 | CODE | |
| LOW | src/napari/layers/utils/color_manager.py | 513 | CODE | |
| LOW | src/napari/layers/utils/stack_utils.py | 56 | CODE | |
| LOW | src/napari/layers/vectors/vectors.py | 612 | CODE | |
| LOW | src/napari/layers/vectors/_vector_utils.py | 46 | CODE | |
| LOW | src/napari/layers/image/_slice.py | 16 | CODE | |
| LOW | src/napari/layers/points/points.py | 1282 | CODE | |
| LOW | src/napari/layers/points/points.py | 1850 | CODE | |
| LOW | src/napari/layers/points/points.py | 1988 | CODE | |
| LOW | …ari/layers/points/_tests/test_points_mouse_bindings.py | 686 | CODE | |
| LOW | src/napari/plugins/_npe2.py | 360 | CODE | |
| LOW | src/napari/_vispy/canvas.py | 395 | CODE | |
| LOW | src/napari/_vispy/canvas.py | 951 | CODE | |
| LOW | src/napari/_vispy/canvas.py | 1031 | CODE | |
| LOW | src/napari/_vispy/canvas.py | 1106 | CODE | |
| LOW | src/napari/_vispy/canvas.py | 1212 | CODE | |
| LOW | src/napari/_vispy/_tests/test_vispy_vectors_layer.py | 24 | CODE | |
| LOW | src/napari/_vispy/overlays/text.py | 68 | CODE | |
| LOW | src/napari/_vispy/visuals/axes.py | 202 | CODE | |
| LOW | src/napari/utils/action_manager.py | 329 | CODE | |
| LOW | src/napari/utils/_tracebacks.py | 100 | CODE | |
| LOW | src/napari/utils/transforms/transforms.py | 416 | CODE | |
| 33 more matches not shown… | ||||
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| HIGH | examples/mpl_plot_.py | 39 | except IndexError: | CODE |
| HIGH | examples/dev/slicing/random_shapes.py | 52 | except AssertionError: | CODE |
| HIGH | src/napari_builtins/_qt/features_table.py | 724 | except (ValueError, TypeError): # pragma: no cover | CODE |
| HIGH | src/napari/plugins/_npe2.py | 352 | except ImportError: # pragma: no cover | CODE |
| HIGH | src/napari/utils/key_bindings.py | 457 | except StopIteration: | CODE |
| HIGH | src/napari/utils/key_bindings.py | 418 | except StopIteration: # only one statement | CODE |
| HIGH | src/napari/utils/interactions.py | 57 | except StopIteration: | CODE |
| HIGH | src/napari/utils/interactions.py | 131 | except StopIteration: | CODE |
| HIGH | src/napari/utils/colormaps/vendored/cm.py | 276 | except AttributeError: | CODE |
| HIGH | src/napari/utils/colormaps/vendored/cm.py | 321 | except (TypeError, ValueError): | CODE |
| HIGH | src/napari/utils/colormaps/vendored/colors.py | 256 | except (ValueError, TypeError): | CODE |
| HIGH | src/napari/utils/colormaps/vendored/colors.py | 184 | except KeyError: | CODE |
| HIGH | src/napari/utils/colormaps/vendored/colors.py | 204 | except ValueError: | CODE |
| HIGH | src/napari/utils/colormaps/vendored/colors.py | 165 | except TypeError: | CODE |
| HIGH | src/napari/utils/colormaps/vendored/colors.py | 741 | except TypeError: | CODE |
| HIGH | src/napari/_qt/qt_main_window.py | 1917 | except ValueError: | CODE |
| HIGH | src/napari/_qt/_qplugins/_qnpe2.py | 143 | except ValueError: # pragma: no cover | CODE |
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| MEDIUM | examples/surface_multi_texture.py | 56 | # ------------------ | COMMENT |
| MEDIUM | examples/surface_multi_texture.py | 76 | # -------------- | COMMENT |
| MEDIUM | examples/surface_multi_texture.py | 85 | # ----------------- | COMMENT |
| MEDIUM⚡ | examples/surface_multi_texture.py | 107 | # ------------------------ | COMMENT |
| MEDIUM | examples/surface_multi_texture.py | 126 | # -------------------------- | COMMENT |
| MEDIUM | examples/theme_sample.py | 53 | # ── WCAG 2.1 helpers ─────────── | COMMENT |
| MEDIUM | examples/3D_vectors_through_time.py | 21 | # ----------- | COMMENT |
| MEDIUM | examples/3D_vectors_through_time.py | 52 | #---------------------------------- | COMMENT |
| MEDIUM | src/napari/layers/points/points.py | 2342 | # ---------- | STRING |
| MEDIUM | …apari/layers/_scalar_field/_tests/test_scalar_field.py | 178 | # --------------------------------------------------------------------------- | COMMENT |
| MEDIUM | …apari/layers/_scalar_field/_tests/test_scalar_field.py | 180 | # --------------------------------------------------------------------------- | COMMENT |
| MEDIUM | src/napari/utils/events/event.py | 6 | # --------------------- | COMMENT |
| MEDIUM | src/napari/utils/events/event.py | 37 | # ---------- | COMMENT |
| MEDIUM | …er_controls/_tests/test_qt_multiscale_level_control.py | 12 | # --------------------------------------------------------------------------- | COMMENT |
| MEDIUM | …er_controls/_tests/test_qt_multiscale_level_control.py | 14 | # --------------------------------------------------------------------------- | COMMENT |
| MEDIUM | …er_controls/_tests/test_qt_multiscale_level_control.py | 36 | # --------------------------------------------------------------------------- | COMMENT |
| MEDIUM | …er_controls/_tests/test_qt_multiscale_level_control.py | 38 | # --------------------------------------------------------------------------- | COMMENT |
| MEDIUM | …napari/_qt/widgets/_tests/test_qt_highlight_preview.py | 48 | # ---------------------------------------------------------------------------- | COMMENT |
| MEDIUM | …napari/_qt/widgets/_tests/test_qt_highlight_preview.py | 65 | # ---------------------------------------------------------------------------- | COMMENT |
| MEDIUM⚡ | …napari/_qt/widgets/_tests/test_qt_highlight_preview.py | 115 | # ---------------------------------------------------------------------------- | COMMENT |
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| LOW | examples/clipping_planes_interactive_.py | 110 | # Check if click was on plane by checking if intersection occurs within | COMMENT |
| LOW | examples/live_tiffs_.py | 96 | # Check if the end of acquisition has reached | COMMENT |
| LOW | .github/workflows/label_and_milestone_checker.yml | 65 | # Check if PR_MILESTONE_NAME is defined | COMMENT |
| LOW | .github/workflows/label_and_milestone_checker.yml | 92 | # Check if the PR's milestone is the closest future milestone | COMMENT |
| LOW | src/napari_builtins/io/_write.py | 305 | # Loop through data for each layer | COMMENT |
| LOW | src/napari_builtins/_qt/features_table.py | 163 | # Check if this column is immutable | COMMENT |
| LOW | src/napari_builtins/_qt/features_table.py | 188 | # Check if this column is immutable | COMMENT |
| LOW | src/napari_builtins/_qt/features_table.py | 440 | # Check if this is an immutable structural column (source or index) | COMMENT |
| LOW | src/napari_builtins/_qt/features_table.py | 450 | # Check if the feature column name is in immutable set | COMMENT |
| LOW | src/napari/settings/_appearance.py | 69 | # Check if a font_size change is needed when changing theme: | COMMENT |
| LOW | src/napari/settings/_appearance.py | 81 | # Check if a font_size change is needed when changing theme: | COMMENT |
| LOW⚡ | src/napari/layers/shapes/shapes.py | 3056 | # Check if inside vertex of interaction box or rotation handle | COMMENT |
| LOW⚡ | src/napari/layers/shapes/shapes.py | 3060 | # Check if any matching vertices | COMMENT |
| LOW⚡ | src/napari/layers/shapes/shapes.py | 3069 | # Check if inside vertex of shape | COMMENT |
| LOW⚡ | src/napari/layers/shapes/shapes.py | 3079 | # Check if any matching vertices | COMMENT |
| LOW | src/napari/layers/shapes/shapes.py | 2711 | # Check if any shape or vertex ids have changed since last call | COMMENT |
| LOW | src/napari/layers/shapes/shapes.py | 3096 | # Check if mouse inside shape | COMMENT |
| LOW⚡ | …c/napari/layers/shapes/_tests/test_shapes_selection.py | 107 | # Set mode to SELECT | COMMENT |
| LOW | src/napari/layers/shapes/_tests/test_shape_list.py | 325 | # Check if the shape has been updated | COMMENT |
| LOW | src/napari/layers/shapes/_tests/test_shape_list.py | 341 | # Check if the shape has been updated | COMMENT |
| LOW | src/napari/layers/shapes/_tests/test_shape_list.py | 363 | # Check if the shape has been updated | COMMENT |
| LOW | src/napari/layers/shapes/_tests/test_shape_list.py | 390 | # Check if the face color has been updated | COMMENT |
| LOW | src/napari/layers/shapes/_tests/test_shape_list.py | 402 | # Check if the edge color remains unchanged | COMMENT |
| LOW | src/napari/layers/shapes/_tests/test_shape_list.py | 423 | # Check if the edge color has been updated | COMMENT |
| LOW | src/napari/layers/shapes/_tests/test_shape_list.py | 435 | # Check if the face color remains unchanged | COMMENT |
| LOW | src/napari/layers/utils/stack_utils.py | 41 | # Check if array is a zarr array and wrap it with dask | COMMENT |
| LOW | src/napari/layers/utils/stack_utils.py | 324 | # Check if input images are either all multiscale or not | COMMENT |
| LOW | src/napari/layers/image/_image_mouse_bindings.py | 49 | # Check if click was on plane and if not, exit early. | COMMENT |
| LOW | src/napari/layers/image/_image_mouse_bindings.py | 107 | # Check if click was on plane and if not, exit early. | COMMENT |
| LOW | src/napari/layers/points/points.py | 1860 | # Check if any point ids have changed since last call | COMMENT |
| LOW | src/napari/_vispy/layers/scalar_field.py | 136 | # Check if ndisplay has changed current node type needs updating | COMMENT |
| LOW | src/napari/utils/transforms/transform_utils.py | 245 | # Check if an upper-triangular representation of shear or | COMMENT |
| LOW⚡ | src/napari/utils/transforms/_tests/test_transforms.py | 303 | # Set shear to same value | COMMENT |
| LOW⚡ | src/napari/utils/transforms/_tests/test_transforms.py | 308 | # Set shear to same value | COMMENT |
| LOW | src/napari/components/histogram.py | 465 | # Check if the surface has vortex values, if yes return them, otherwise return None. | COMMENT |
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| MEDIUM | tools/check_deps_version.py | 89 | print(f'Error parsing wheel filename {filename}: {e}') | CODE |
| LOW | tools/check_deps_version.py | 285 | except Exception as e: # noqa: BLE001 | CODE |
| MEDIUM | tools/check_deps_version.py | 286 | print(f'Error reading {pyproject_path}: {e}') | CODE |
| MEDIUM | tools/check_deps_version.py | 281 | def main(pyproject_path='pyproject.toml'): | CODE |
| LOW | src/napari_builtins/io/_read.py | 154 | except Exception as e: | CODE |
| LOW | src/napari_builtins/io/_write.py | 320 | except Exception: | CODE |
| LOW | src/napari/_main.py | 69 | except Exception: # noqa: BLE001 | CODE |
| LOW | src/napari/_main.py | 84 | except Exception as e: | CODE |
| LOW | src/napari/_main.py | 92 | except Exception as e: | CODE |
| MEDIUM | src/napari/_main.py | 80 | def main() -> None: | CODE |
| LOW | src/napari/settings/_base.py | 176 | except Exception as err: # noqa: BLE001 | CODE |
| LOW | src/napari/settings/_migrations.py | 38 | except Exception as e: # noqa BLE001 | CODE |
| LOW | src/napari/settings/_migrations.py | 46 | except Exception: # noqa BLE001 | CODE |
| LOW | src/napari/layers/shapes/_shapes_utils.py | 863 | except Exception as e: # pragma: no cover | CODE |
| LOW | src/napari/layers/base/base.py | 2489 | except Exception as exc: | CODE |
| LOW | src/napari/utils/notifications.py | 396 | except Exception: | CODE |
| LOW | src/napari/utils/info.py | 217 | except Exception as e: # noqa BLE001 | STRING |
| LOW | src/napari/utils/info.py | 278 | except Exception as e: # noqa BLE001 | STRING |
| LOW | src/napari/utils/events/event.py | 743 | except Exception as e: # noqa: BLE001 | CODE |
| LOW | src/napari/utils/colormaps/vendored/colors.py | 311 | except Exception: | CODE |
| LOW | src/napari/components/viewer_model.py | 1507 | except Exception as e: | CODE |
| LOW | src/napari/components/viewer_model.py | 1715 | except Exception as e: | CODE |
| LOW | src/napari/components/histogram.py | 300 | except Exception: | CODE |
| LOW | src/napari/_qt/qt_main_window.py | 1547 | except Exception as err: # noqa: BLE001 | CODE |
| LOW | src/napari/_qt/__init__.py | 5 | except Exception as e: | CODE |
| LOW | src/napari/_qt/threads/status_checker.py | 129 | except Exception as e: # pragma: no cover # noqa: BLE001 | CODE |
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| MEDIUM | .github/workflows/benchmarks.yml | 22 | # All the *_THREADS options is just to make the benchmarks more robust by not using parallelism | COMMENT |
| MEDIUM | src/napari/viewer.py | 75 | """Overload __new__ to facilitate temporary monkey-patching. | STRING |
| LOW | src/napari/__main__.py | 286 | # just set stack to True similar to the previous store_true action | COMMENT |
| LOW | src/napari/layers/tracks/tracks.py | 363 | # if we are visualizing all time, then just set to the maximum | COMMENT |
| LOW | …napari/layers/shapes/_accelerated_triangulate_numba.py | 288 | # otherwise, we just use the miter vector in either direction and add two | COMMENT |
| MEDIUM | …napari/layers/shapes/_accelerated_triangulate_numba.py | 692 | # Without the fix, the code is not robust to orientation. | COMMENT |
| LOW | src/napari/layers/utils/_text_utils.py | 50 | # if the data are a list of coordinates, just return the coord (e.g., points) | COMMENT |
| LOW | src/napari/layers/utils/_text_utils.py | 146 | # if the data are a list of coordinates, just return the coord (e.g., points) | COMMENT |
| LOW | src/napari/layers/utils/_tests/test_text_manager.py | 745 | # Cannot just use `rand(num_points, ndisplay)` because when | COMMENT |
| LOW | src/napari/layers/image/image.py | 668 | # translucent is special: just return the first value, no matter what | COMMENT |
| LOW | src/napari/_tests/test_magicgui.py | 471 | # it works fine to just return `data` | COMMENT |
| LOW | src/napari/utils/interactions.py | 164 | # if not dragging simply call the mouse move callbacks | COMMENT |
| LOW | src/napari/components/experimental/monitor/_service.py | 132 | # Start with our environment and just add in the one variable. | COMMENT |
| MEDIUM | src/napari/_qt/qt_main_window.py | 124 | # To track window instances and facilitate getting the "active" viewer... | COMMENT |
| LOW | src/napari/_qt/_qapp_model/qactions/_plugins.py | 29 | # amended to be a napari plugin and simply add this menu item itself. | COMMENT |
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| HIGH | examples/magic_parameter_sweep.py | 25 | # In this example, because we have already imported napari anyway, it doesn't | COMMENT |
| HIGH⚡ | examples/surface_multi_texture.py | 109 | # In this example the texture coordinates happen to be the same for each | COMMENT |
| HIGH | examples/magic_image_arithmetic.py | 31 | # In this example, because we have already imported napari anyway, it doesn't | COMMENT |
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| LOW | src/napari/view_layers.py | 79 | CODE | |
| LOW | src/napari/view_layers.py | 122 | CODE | |
| LOW | src/napari/view_layers.py | 164 | CODE | |
| LOW | src/napari/settings/_base.py | 323 | CODE | |
| LOW | src/napari/layers/labels/labels.py | 362 | CODE | |
| LOW | src/napari/layers/tracks/tracks.py | 115 | CODE | |
| LOW | src/napari/layers/surface/surface.py | 237 | CODE | |
| LOW | src/napari/layers/shapes/shapes.py | 440 | CODE | |
| LOW | …c/napari/layers/shapes/_shapes_models/_polygon_base.py | 36 | CODE | |
| LOW | src/napari/layers/vectors/vectors.py | 206 | CODE | |
| LOW | src/napari/layers/image/image.py | 264 | CODE | |
| LOW | src/napari/layers/points/points.py | 374 | CODE | |
| LOW | src/napari/layers/_scalar_field/scalar_field.py | 211 | CODE | |
| LOW | src/napari/layers/base/_test_util_sample_layer.py | 18 | CODE | |
| LOW | src/napari/layers/base/base.py | 535 | CODE | |
| LOW | src/napari/plugins/utils.py | 98 | CODE | |
| LOW | src/napari/utils/transforms/transforms.py | 416 | CODE | |
| LOW | src/napari/utils/transforms/transforms.py | 805 | CODE | |
| LOW | src/napari/utils/colormaps/vendored/colors.py | 1524 | CODE | |
| LOW | src/napari/components/viewer_model.py | 1168 | CODE |
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| LOW | src/napari/_vispy/overlays/colorbar.py | 129 | # we make sure to not update things when invisible | COMMENT |
| MEDIUM | src/napari/utils/tree/_tests/test_tree_model.py | 155 | # If you need to know if an item is an immediate child, you can use parent | COMMENT |
| LOW | src/napari/utils/colormaps/colormap_utils.py | 468 | # make sure to add an alpha channel to the colors | COMMENT |
| LOW | src/napari/_qt/utils.py | 307 | # let's make sure to remove the animation from the widget because | COMMENT |
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| LOW | examples/theme_sample.py | 101 | <p>Lorem ipsum dolor sit amet, consectetur adipiscing elit, | CODE |
| LOW | examples/theme_sample.py | 101 | <p>Lorem ipsum dolor sit amet, consectetur adipiscing elit, | CODE |
| LOW⚡ | …napari/_qt/_qapp_model/_tests/test_qapp_model_menus.py | 38 | id='dummy_id', | CODE |
| LOW⚡ | …napari/_qt/_qapp_model/_tests/test_qapp_model_menus.py | 46 | dummy_action = viewer.window.file_menu.findAction('dummy_id') | CODE |
| LOW⚡ | …napari/_qt/_qapp_model/_tests/test_qapp_model_menus.py | 48 | assert 'dummy_id' in app.commands | CODE |
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| MEDIUM | src/napari/_qt/qt_main_window.py | 131 | # provider for dependency injection | COMMENT |
| MEDIUM | src/napari/_qt/qt_viewer.py | 1590 | # in-n-out is used in napari for dependency injection. | COMMENT |
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| LOW | examples/progress_bar_threading_.py | 68 | def my_function(*_): | CODE |
| LOW | examples/magic_viewer.py | 16 | def my_function(viewer: napari.Viewer): | CODE |
| LOW | src/napari/utils/events/_tests/test_evented_model.py | 394 | def my_function(): | CODE |
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| LOW⚡ | src/napari/_vispy/canvas.py | 855 | # Step 1: Force immediate garbage collection of OpenGL resources | COMMENT |
| LOW⚡ | src/napari/_vispy/canvas.py | 862 | # Step 2: Synchronize the OpenGL command queue | COMMENT |
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| LOW⚡ | src/napari/_vispy/canvas.py | 855 | # Step 1: Force immediate garbage collection of OpenGL resources | COMMENT |
| LOW⚡ | src/napari/_vispy/canvas.py | 862 | # Step 2: Synchronize the OpenGL command queue | COMMENT |