Coverage report: 70%

Files Functions Classes

coverage.py v7.17.0, created at 2026-11-02 04:50 +0000

      Statements   Branches   Total
File function   coverage statements missing excluded   coverage branches partial   coverage
paintmaskanimator/__init__.py (no function)   100% 0 0 0   100% 0 0   100%
paintmaskanimator/__main__.py _show_unhandled_exception   0% 28 28 0   0% 4 0   0%
paintmaskanimator/__main__.py _apply_startup_preferences   0% 4 4 0   100% 0 0   0%
paintmaskanimator/__main__.py main   0% 22 22 0   0% 2 0   0%
paintmaskanimator/__main__.py (no function)   0% 24 24 0   0% 4 0   0%
paintmaskanimator/_canvas_members.py CanvasMembers._record_transform_history   100% 0 0 1   100% 0 0   100%
paintmaskanimator/_canvas_members.py (no function)   100% 4 0 477   100% 0 0   100%
paintmaskanimator/_color_panel_members.py (no function)   100% 4 0 169   100% 0 0   100%
paintmaskanimator/_main_window_members.py MainWindowMembers.show_memo_window   100% 0 0 1   100% 0 0   100%
paintmaskanimator/_main_window_members.py MainWindowMembers.set_project_memo   100% 0 0 1   100% 0 0   100%
paintmaskanimator/_main_window_members.py (no function)   100% 4 0 355   100% 0 0   100%
paintmaskanimator/actionpanel.py ActionPanel.__init__   100% 13 0 0   100% 0 0   100%
paintmaskanimator/actionpanel.py ActionPanel.open_script_editor   0% 6 6 0   100% 0 0   0%
paintmaskanimator/actionpanel.py ActionPanel.actions_dir   100% 3 0 0   100% 0 0   100%
paintmaskanimator/actionpanel.py ActionPanel._seed_builtin_scripts   82% 40 7 0   93% 14 1   85%
paintmaskanimator/actionpanel.py ActionPanel.add_action   86% 29 4 0   75% 12 3   83%
paintmaskanimator/actionpanel.py ActionPanel.add_action.invoke   50% 6 3 0   50% 2 1   50%
paintmaskanimator/actionpanel.py ActionPanel.shortcut_entries   100% 1 0 0   100% 0 0   100%
paintmaskanimator/actionpanel.py ActionPanel.own_shortcut_actions   100% 1 0 0   100% 0 0   100%
paintmaskanimator/actionpanel.py ActionPanel.button   100% 1 0 0   100% 0 0   100%
paintmaskanimator/actionpanel.py ActionPanel._remove_python_actions   92% 13 1 0   80% 10 2   87%
paintmaskanimator/actionpanel.py ActionPanel.reload_python_actions   78% 27 6 0   67% 12 4   74%
paintmaskanimator/actionpanel.py ActionPanel.open_actions_folder   0% 9 9 0   0% 4 0   0%
paintmaskanimator/actionpanel.py _MonacoBridge.__init__   0% 2 2 0   100% 0 0   0%
paintmaskanimator/actionpanel.py _MonacoBridge.contentChanged   0% 1 1 0   100% 0 0   0%
paintmaskanimator/actionpanel.py _MonacoBridge.editorReady   0% 1 1 0   100% 0 0   0%
paintmaskanimator/actionpanel.py MonacoEditor.__init__   0% 9 9 0   100% 0 0   0%
paintmaskanimator/actionpanel.py MonacoEditor._editor_ready   0% 2 2 0   100% 0 0   0%
paintmaskanimator/actionpanel.py MonacoEditor._content_changed   0% 4 4 0   0% 2 0   0%
paintmaskanimator/actionpanel.py MonacoEditor._send_text   0% 3 3 0   0% 2 0   0%
paintmaskanimator/actionpanel.py MonacoEditor.setPlainText   0% 2 2 0   100% 0 0   0%
paintmaskanimator/actionpanel.py MonacoEditor.toPlainText   0% 1 1 0   100% 0 0   0%
paintmaskanimator/actionpanel.py MonacoEditor.focus_editor   0% 2 2 0   0% 2 0   0%
paintmaskanimator/actionpanel.py ScriptEditorDialog.__init__   0% 43 43 0   100% 0 0   0%
paintmaskanimator/actionpanel.py ScriptEditorDialog._scripts   0% 1 1 0   100% 0 0   0%
paintmaskanimator/actionpanel.py ScriptEditorDialog._refresh_file_list   0% 22 22 0   0% 8 0   0%
paintmaskanimator/actionpanel.py ScriptEditorDialog._on_file_selected   0% 16 16 0   0% 4 0   0%
paintmaskanimator/actionpanel.py ScriptEditorDialog._reselect_current   0% 9 9 0   0% 6 0   0%
paintmaskanimator/actionpanel.py ScriptEditorDialog._on_text_changed   0% 1 1 0   100% 0 0   0%
paintmaskanimator/actionpanel.py ScriptEditorDialog._confirm_discard   0% 8 8 0   0% 6 0   0%
paintmaskanimator/actionpanel.py ScriptEditorDialog._save_current   0% 9 9 0   0% 2 0   0%
paintmaskanimator/actionpanel.py ScriptEditorDialog._save_and_reload   0% 4 4 0   0% 2 0   0%
paintmaskanimator/actionpanel.py ScriptEditorDialog._open_in_vscode   35% 23 15 0   31% 16 5   33%
paintmaskanimator/actionpanel.py ScriptEditorDialog._macos_app_roots   0% 1 1 0   100% 0 0   0%
paintmaskanimator/actionpanel.py ScriptEditorDialog._macos_vscode_cli   100% 6 0 0   100% 6 0   100%
paintmaskanimator/actionpanel.py ScriptEditorDialog._open_with_macos_bundle   0% 6 6 0   0% 4 0   0%
paintmaskanimator/actionpanel.py ScriptEditorDialog._new_script   0% 21 21 0   0% 10 0   0%
paintmaskanimator/actionpanel.py ScriptEditorDialog._delete_script   0% 13 13 0   0% 4 0   0%
paintmaskanimator/actionpanel.py ScriptEditorDialog.closeEvent   0% 3 3 0   0% 2 0   0%
paintmaskanimator/actionpanel.py (no function)   100% 72 0 0   100% 0 0   100%
paintmaskanimator/auto_alignment.py _batch_capacity   100% 2 0 0   100% 0 0   100%
paintmaskanimator/auto_alignment.py boundary_key   100% 5 0 0   100% 2 0   100%
paintmaskanimator/auto_alignment.py AlignmentCache.__init__   100% 28 0 0   100% 0 0   100%
paintmaskanimator/auto_alignment.py AlignmentCache.register_motion   100% 1 0 0   100% 0 0   100%
paintmaskanimator/auto_alignment.py AlignmentCache._learn_motion   89% 18 2 0   81% 16 3   85%
paintmaskanimator/auto_alignment.py AlignmentCache._support_key   100% 21 0 0   100% 4 0   100%
paintmaskanimator/auto_alignment.py AlignmentCache.enable_regions   91% 11 1 0   67% 6 2   82%
paintmaskanimator/auto_alignment.py AlignmentCache.close   92% 13 1 0   83% 6 1   89%
paintmaskanimator/auto_alignment.py AlignmentCache.sample_region   25% 16 12 0   12% 8 1   21%
paintmaskanimator/auto_alignment.py AlignmentCache.solve_many   47% 76 40 0   48% 42 2   47%
paintmaskanimator/auto_alignment.py AlignmentCache.solve_many.solve   92% 12 1 0   83% 6 1   89%
paintmaskanimator/auto_alignment.py AlignmentCache.resolve   95% 22 1 0   83% 6 1   93%
paintmaskanimator/auto_alignment.py AlignmentCache.track_many   94% 33 2 0   94% 16 1   94%
paintmaskanimator/auto_alignment.py AlignmentCache.key   100% 1 0 0   100% 0 0   100%
paintmaskanimator/auto_alignment.py AlignmentCache.shift   100% 10 0 0   100% 4 0   100%
paintmaskanimator/auto_alignment.py AlignmentCache.prefetch   82% 33 6 0   77% 26 6   80%
paintmaskanimator/auto_alignment.py AlignmentCache._load_gpu   11% 19 17 0   25% 4 1   13%
paintmaskanimator/auto_alignment.py AlignmentCache._windows_gpu   0% 6 6 0   0% 2 0   0%
paintmaskanimator/auto_alignment.py AlignmentCache._compact_gpu   83% 12 2 0   75% 4 1   81%
paintmaskanimator/auto_alignment.py AlignmentCache._batch   87% 45 6 0   69% 16 3   82%
paintmaskanimator/auto_alignment.py (no function)   100% 40 0 0   100% 0 0   100%
paintmaskanimator/auto_bucket.py execute_click   75% 4 1 0   50% 2 1   67%
paintmaskanimator/auto_bucket.py _paints   88% 8 1 0   50% 2 1   80%
paintmaskanimator/auto_bucket.py geometry_key   100% 5 0 0   100% 2 0   100%
paintmaskanimator/auto_bucket.py BucketWork.__init__   100% 10 0 0   100% 0 0   100%
paintmaskanimator/auto_bucket.py BucketWork._sample   100% 1 0 0   100% 0 0   100%
paintmaskanimator/auto_bucket.py BucketWork._reference   100% 6 0 0   100% 4 0   100%
paintmaskanimator/auto_bucket.py BucketWork.collect   100% 30 0 0   86% 14 2   95%
paintmaskanimator/auto_bucket.py BucketWork.choose_color   53% 55 26 0   50% 28 2   52%
paintmaskanimator/auto_bucket.py BucketWork.part_color   49% 35 18 0   45% 20 1   47%
paintmaskanimator/auto_bucket.py BucketWork._refine_face_color   93% 43 3 0   88% 24 3   91%
paintmaskanimator/auto_bucket.py BucketWork._refined_answer   100% 4 0 0   100% 2 0   100%
paintmaskanimator/auto_bucket.py BucketWork._sample_face_color   45% 38 21 0   42% 24 2   44%
paintmaskanimator/auto_bucket.py BucketWork._match   92% 40 3 0   80% 20 4   88%
paintmaskanimator/auto_bucket.py BucketWork._match_trace   90% 30 3 0   70% 10 3   85%
paintmaskanimator/auto_bucket.py paint_cell   100% 74 0 0   97% 34 1   99%
paintmaskanimator/auto_bucket.py paint_cell.record   100% 20 0 0   100% 8 0   100%
paintmaskanimator/auto_bucket.py paint_cell.trace_colors   100% 6 0 0   100% 2 0   100%
paintmaskanimator/auto_bucket.py (no function)   100% 34 0 0   100% 0 0   100%
paintmaskanimator/auto_gpu_alignment.py DeviceShift.__new__   0% 3 3 0   100% 0 0   0%
paintmaskanimator/auto_gpu_alignment.py ResidentAlignment.__init__   0% 7 7 0   100% 0 0   0%
paintmaskanimator/auto_gpu_alignment.py ResidentAlignment.close   0% 3 3 0   100% 0 0   0%
paintmaskanimator/auto_gpu_alignment.py ResidentAlignment.frame   0% 13 13 0   0% 4 0   0%
paintmaskanimator/auto_gpu_alignment.py ResidentAlignment.windows   0% 23 23 0   0% 4 0   0%
paintmaskanimator/auto_gpu_alignment.py ResidentAlignment.reduce   0% 19 19 0   100% 0 0   0%
paintmaskanimator/auto_gpu_alignment.py (no function)   0% 14 14 0   100% 0 0   0%
paintmaskanimator/auto_gpu_regions.py mask_runs   0% 7 7 0   0% 2 0   0%
paintmaskanimator/auto_gpu_regions.py RegionGPU.__init__   0% 21 21 0   100% 0 0   0%
paintmaskanimator/auto_gpu_regions.py RegionGPU.close   0% 8 8 0   100% 0 0   0%
paintmaskanimator/auto_gpu_regions.py RegionGPU._failure   0% 3 3 0   100% 0 0   0%
paintmaskanimator/auto_gpu_regions.py RegionGPU.index   0% 48 48 0   0% 10 0   0%
paintmaskanimator/auto_gpu_regions.py RegionGPU._guide   0% 25 25 0   0% 6 0   0%
paintmaskanimator/auto_gpu_regions.py RegionGPU.key   0% 5 5 0   0% 2 0   0%
paintmaskanimator/auto_gpu_regions.py RegionGPU.cached   0% 1 1 0   100% 0 0   0%
paintmaskanimator/auto_gpu_regions.py RegionGPU.phase   0% 7 7 0   0% 4 0   0%
paintmaskanimator/auto_gpu_regions.py RegionGPU.sample_many   0% 56 56 0   0% 28 0   0%
paintmaskanimator/auto_gpu_regions.py RegionGPU._sample_batch   0% 32 32 0   0% 6 0   0%
paintmaskanimator/auto_gpu_regions.py (no function)   100% 24 0 0   100% 0 0   100%
paintmaskanimator/auto_motion.py LocalShift.__new__   100% 3 0 0   100% 0 0   100%
paintmaskanimator/auto_motion.py MotionMemory.__init__   100% 3 0 0   100% 0 0   100%
paintmaskanimator/auto_motion.py MotionMemory.register   100% 4 0 0   100% 2 0   100%
paintmaskanimator/auto_motion.py MotionMemory.learn   92% 12 1 0   83% 6 1   89%
paintmaskanimator/auto_motion.py MotionMemory.predict   100% 14 0 0   100% 8 0   100%
paintmaskanimator/auto_motion.py certify   90% 30 3 0   75% 12 3   86%
paintmaskanimator/auto_motion.py certify.overlaps   100% 6 0 0   100% 0 0   100%
paintmaskanimator/auto_motion.py (no function)   100% 11 0 0   100% 0 0   100%
paintmaskanimator/auto_paint.py CellPaint.unsure_share   100% 1 0 0   100% 0 0   100%
paintmaskanimator/auto_paint.py AutoPlan.painted_cells   0% 1 1 0   100% 0 0   0%
paintmaskanimator/auto_paint.py primary_line_mask   100% 14 0 0   100% 0 0   100%
paintmaskanimator/auto_paint.py _is_primary   100% 2 0 0   100% 0 0   100%
paintmaskanimator/auto_paint.py line_only   100% 6 0 0   100% 0 0   100%
paintmaskanimator/auto_paint.py boundary_mask   100% 1 0 0   100% 0 0   100%
paintmaskanimator/auto_paint.py mark_mask   95% 21 1 0   90% 10 1   94%
paintmaskanimator/auto_paint.py gap_mask   100% 2 0 0   100% 0 0   100%
paintmaskanimator/auto_paint.py _TargetRegions.__init__   100% 5 0 0   100% 0 0   100%
paintmaskanimator/auto_paint.py _TargetRegions.value   100% 8 0 0   100% 4 0   100%
paintmaskanimator/auto_paint.py _Cell.__init__   100% 22 0 0   100% 2 0   100%
paintmaskanimator/auto_paint.py _Cell.mark   100% 3 0 0   100% 2 0   100%
paintmaskanimator/auto_paint.py _Cell.mark_undecided   100% 5 0 0   100% 4 0   100%
paintmaskanimator/auto_paint.py _majority   100% 10 0 0   100% 6 0   100%
paintmaskanimator/auto_paint.py _shifted   100% 6 0 0   100% 0 0   100%
paintmaskanimator/auto_paint.py _sample   80% 5 1 0   50% 2 1   71%
paintmaskanimator/auto_paint.py _similar_size   89% 9 1 0   50% 2 1   82%
paintmaskanimator/auto_paint.py _line_paints   93% 27 2 0   75% 16 4   86%
paintmaskanimator/auto_paint.py _finish_paints   100% 7 0 0   100% 4 0   100%
paintmaskanimator/auto_paint.py _paints_by_value   91% 11 1 0   75% 4 1   87%
paintmaskanimator/auto_paint.py _line_neighbours   100% 12 0 0   100% 0 0   100%
paintmaskanimator/auto_paint.py _small_colors   100% 8 0 0   83% 6 1   93%
paintmaskanimator/auto_paint.py _local_shift   100% 2 0 0   100% 0 0   100%
paintmaskanimator/auto_paint.py _ShiftProblem.__getitem__   100% 9 0 0   100% 2 0   100%
paintmaskanimator/auto_paint.py _prepare_local_shift   100% 23 0 0   75% 4 1   96%
paintmaskanimator/auto_paint.py _fft_size   100% 9 0 0   100% 6 0   100%
paintmaskanimator/auto_paint.py _local_shift_window   100% 4 0 0   100% 0 0   100%
paintmaskanimator/auto_paint.py _correlation_size   100% 8 0 0   100% 4 0   100%
paintmaskanimator/auto_paint.py _finish_local_shift   100% 7 0 0   100% 0 0   100%
paintmaskanimator/auto_paint.py _solve_local_shift   100% 8 0 0   100% 2 0   100%
paintmaskanimator/auto_paint.py _refine   100% 11 0 0   100% 8 0   100%
paintmaskanimator/auto_paint.py _is_new_part   91% 22 2 0   67% 6 2   86%
paintmaskanimator/auto_paint.py _open_share   0% 4 4 0   0% 2 0   0%
paintmaskanimator/auto_paint.py _hint_color   89% 9 1 0   75% 4 1   85%
paintmaskanimator/auto_paint.py _hand_color   90% 10 1 0   67% 6 2   81%
paintmaskanimator/auto_paint.py _hand_paint   100% 19 0 0   100% 8 0   100%
paintmaskanimator/auto_paint.py _shape_match   0% 38 38 0   0% 14 0   0%
paintmaskanimator/auto_paint.py _tiled_outcome   0% 30 30 0   0% 18 0   0%
paintmaskanimator/auto_paint.py _flow_votes   95% 22 1 0   75% 4 1   92%
paintmaskanimator/auto_paint.py _flow_decision   86% 29 4 0   69% 16 5   80%
paintmaskanimator/auto_paint.py _outline_pixels   100% 9 0 0   100% 0 0   100%
paintmaskanimator/auto_paint.py _flow_outline   88% 8 1 0   50% 2 1   80%
paintmaskanimator/auto_paint.py _own_outline   0% 17 17 0   0% 12 0   0%
paintmaskanimator/auto_paint.py _own_outline.overlap   0% 3 3 0   100% 0 0   0%
paintmaskanimator/auto_paint.py _flow_outside   89% 18 2 0   67% 6 2   83%
paintmaskanimator/auto_paint.py _paintable   100% 2 0 0   100% 0 0   100%
paintmaskanimator/auto_paint.py _region_outcome   70% 33 10 0   64% 28 8   67%
paintmaskanimator/auto_paint.py _region_mask   100% 10 0 0   100% 2 0   100%
paintmaskanimator/auto_paint.py _neighbour_color   100% 11 0 0   100% 2 0   100%
paintmaskanimator/auto_paint.py _tiny_holes   86% 36 5 0   64% 14 5   80%
paintmaskanimator/auto_paint.py _trace_first   89% 65 7 0   79% 34 7   86%
paintmaskanimator/auto_paint.py paint_cell   94% 140 9 0   81% 90 13   89%
paintmaskanimator/auto_paint.py paint_from_guide   100% 1 0 0   100% 0 0   100%
paintmaskanimator/auto_paint.py apply_paint   100% 6 0 0   100% 2 0   100%
paintmaskanimator/auto_paint.py _opaque_rgb   100% 3 0 0   100% 0 0   100%
paintmaskanimator/auto_paint.py _finishes   100% 6 0 0   75% 4 1   90%
paintmaskanimator/auto_paint.py _order   86% 7 1 0   50% 2 1   78%
paintmaskanimator/auto_paint.py plan_auto_paint   100% 0 0 1   100% 0 0   100%
paintmaskanimator/auto_paint.py plan_auto_paint   100% 0 0 1   100% 0 0   100%
paintmaskanimator/auto_paint.py plan_auto_paint   100% 2 0 0   100% 0 0   100%
paintmaskanimator/auto_paint.py _plan_auto_paint   98% 143 3 0   91% 68 6   96%
paintmaskanimator/auto_paint.py _plan_auto_paint.target_for   78% 9 2 0   67% 6 2   73%
paintmaskanimator/auto_paint.py _plan_auto_paint.prepare_target   100% 7 0 0   50% 2 1   89%
paintmaskanimator/auto_paint.py _plan_auto_paint.boundary   100% 4 0 0   100% 2 0   100%
paintmaskanimator/auto_paint.py _plan_auto_paint.flow_between   83% 6 1 0   75% 4 1   80%
paintmaskanimator/auto_paint.py _plan_auto_paint.hand_guides_for   100% 7 0 0   100% 4 0   100%
paintmaskanimator/auto_paint.py _plan_auto_paint.tracking_geometry   100% 3 0 0   100% 2 0   100%
paintmaskanimator/auto_paint.py _plan_auto_paint.guide   100% 26 0 0   94% 16 1   98%
paintmaskanimator/auto_paint.py _plan_auto_paint.tracked_guide   100% 1 0 0   100% 0 0   100%
paintmaskanimator/auto_paint.py (no function)   100% 152 0 12   100% 0 0   100%
paintmaskanimator/auto_paint_dialog.py _content_rect   80% 5 1 0   50% 2 1   71%
paintmaskanimator/auto_paint_dialog.py _draw_image   100% 15 0 0   88% 8 1   96%
paintmaskanimator/auto_paint_dialog.py _ImagePreview.__init__   100% 5 0 0   100% 0 0   100%
paintmaskanimator/auto_paint_dialog.py _ImagePreview.set_image   100% 3 0 0   100% 0 0   100%
paintmaskanimator/auto_paint_dialog.py _ImagePreview.paintEvent   100% 3 0 0   100% 0 0   100%
paintmaskanimator/auto_paint_dialog.py _ReferenceGrid.keyPressEvent   83% 6 1 0   50% 2 1   75%
paintmaskanimator/auto_paint_dialog.py _SearchBox.keyPressEvent   75% 4 1 0   50% 2 1   67%
paintmaskanimator/auto_paint_dialog.py _CardDelegate.__init__   100% 2 0 0   100% 0 0   100%
paintmaskanimator/auto_paint_dialog.py _CardDelegate.sizeHint   100% 1 0 0   100% 0 0   100%
paintmaskanimator/auto_paint_dialog.py _CardDelegate.paint   100% 39 0 0   88% 8 1   98%
paintmaskanimator/auto_paint_dialog.py AutoPaintDialog.__init__   100% 127 0 0   83% 6 1   99%
paintmaskanimator/auto_paint_dialog.py AutoPaintDialog._set_card_size   100% 2 0 0   100% 0 0   100%
paintmaskanimator/auto_paint_dialog.py AutoPaintDialog.chosen   100% 1 0 0   100% 0 0   100%
paintmaskanimator/auto_paint_dialog.py AutoPaintDialog._from_selection   100% 6 0 0   100% 2 0   100%
paintmaskanimator/auto_paint_dialog.py AutoPaintDialog._from_checks   100% 4 0 0   100% 0 0   100%
paintmaskanimator/auto_paint_dialog.py AutoPaintDialog._selection_changed   100% 18 0 0   100% 6 0   100%
paintmaskanimator/auto_paint_dialog.py AutoPaintDialog._inspect   82% 11 2 0   67% 6 2   76%
paintmaskanimator/auto_paint_dialog.py AutoPaintDialog._update_toggle   100% 4 0 0   100% 0 0   100%
paintmaskanimator/auto_paint_dialog.py AutoPaintDialog._toggle_current   100% 3 0 0   50% 2 1   80%
paintmaskanimator/auto_paint_dialog.py AutoPaintDialog._remove_selected   80% 5 1 0   50% 4 2   67%
paintmaskanimator/auto_paint_dialog.py AutoPaintDialog._clear   100% 1 0 0   100% 0 0   100%
paintmaskanimator/auto_paint_dialog.py AutoPaintDialog._filter   100% 7 0 0   100% 2 0   100%
paintmaskanimator/auto_paint_dialog.py (no function)   100% 38 0 0   100% 0 0   100%
paintmaskanimator/auto_part_tracking.py _FlowPair.coordinates   100% 4 0 0   100% 0 0   100%
paintmaskanimator/auto_part_tracking.py _FlowPath.coordinates   100% 12 0 0   100% 4 0   100%
paintmaskanimator/auto_part_tracking.py _in_mask   100% 5 0 0   100% 0 0   100%
paintmaskanimator/auto_part_tracking.py _near_black   100% 6 0 0   100% 4 0   100%
paintmaskanimator/auto_part_tracking.py PartTracker.__init__   100% 9 0 0   100% 0 0   100%
paintmaskanimator/auto_part_tracking.py PartTracker._coverage   100% 10 0 0   100% 6 0   100%
paintmaskanimator/auto_part_tracking.py PartTracker.remember_fixed   100% 3 0 0   100% 0 0   100%
paintmaskanimator/auto_part_tracking.py PartTracker.remember   100% 5 0 0   100% 4 0   100%
paintmaskanimator/auto_part_tracking.py PartTracker.donors   93% 15 1 0   80% 10 2   88%
paintmaskanimator/auto_part_tracking.py PartTracker._pair   89% 27 3 0   70% 10 3   84%
paintmaskanimator/auto_part_tracking.py PartTracker._path   90% 10 1 0   83% 6 1   88%
paintmaskanimator/auto_part_tracking.py PartTracker._color   100% 2 0 0   100% 0 0   100%
paintmaskanimator/auto_part_tracking.py PartTracker.prime_motion   0% 3 3 0   0% 2 0   0%
paintmaskanimator/auto_part_tracking.py PartTracker._flow_color   88% 57 7 0   77% 22 3   85%
paintmaskanimator/auto_part_tracking.py PartTracker._tiled_color   94% 71 4 0   88% 34 4   92%
paintmaskanimator/auto_part_tracking.py PartTracker.color   100% 15 0 0   100% 10 0   100%
paintmaskanimator/auto_part_tracking.py (no function)   100% 36 0 0   100% 0 0   100%
paintmaskanimator/auto_preparation.py Preparation.__init__   100% 6 0 0   100% 0 0   100%
paintmaskanimator/auto_preparation.py Preparation.__enter__   100% 1 0 0   100% 0 0   100%
paintmaskanimator/auto_preparation.py Preparation.__exit__   100% 3 0 0   100% 2 0   100%
paintmaskanimator/auto_preparation.py Preparation.schedule   100% 6 0 0   100% 6 0   100%
paintmaskanimator/auto_preparation.py Preparation.take   83% 6 1 0   50% 2 1   75%
paintmaskanimator/auto_preparation.py ReferenceRegions.__init__   100% 9 0 0   100% 0 0   100%
paintmaskanimator/auto_preparation.py ReferenceRegions.key   100% 8 0 0   100% 4 0   100%
paintmaskanimator/auto_preparation.py ReferenceRegions.nbytes   100% 1 0 0   100% 0 0   100%
paintmaskanimator/auto_preparation.py ReferenceRegions.region_nbytes   100% 1 0 0   100% 0 0   100%
paintmaskanimator/auto_preparation.py ReferenceRegions.session   78% 9 2 0   50% 2 1   73%
paintmaskanimator/auto_preparation.py ReferenceRegions.trim   83% 6 1 0   83% 6 1   83%
paintmaskanimator/auto_preparation.py ReferenceRegions.compact   100% 25 0 0   92% 12 1   97%
paintmaskanimator/auto_preparation.py (no function)   100% 24 0 0   100% 0 0   100%
paintmaskanimator/auto_routing.py PipelinePolicy.__init__   100% 4 0 0   100% 0 0   100%
paintmaskanimator/auto_routing.py PipelinePolicy.choose   100% 9 0 0   100% 4 0   100%
paintmaskanimator/auto_routing.py PipelinePolicy.choose.distance   100% 7 0 0   100% 6 0   100%
paintmaskanimator/auto_routing.py PipelinePolicy.record   100% 5 0 0   100% 0 0   100%
paintmaskanimator/auto_routing.py (no function)   100% 4 0 0   100% 0 0   100%
paintmaskanimator/auto_trace.py finish_palette   100% 16 0 0   100% 10 0   100%
paintmaskanimator/auto_trace.py small_face_finish   100% 23 0 0   100% 10 0   100%
paintmaskanimator/auto_trace.py enclosed_face_rules   96% 23 1 0   93% 14 1   95%
paintmaskanimator/auto_trace.py enclosed_face_color   100% 17 0 0   100% 6 0   100%
paintmaskanimator/auto_trace.py large_face_colors   96% 28 1 0   90% 10 1   95%
paintmaskanimator/auto_trace.py palette   90% 40 4 0   78% 18 4   86%
paintmaskanimator/auto_trace.py candidates   93% 15 1 0   92% 12 1   93%
paintmaskanimator/auto_trace.py local_finish   92% 25 2 0   75% 8 2   88%
paintmaskanimator/auto_trace.py choose   100% 14 0 0   100% 10 0   100%
paintmaskanimator/auto_trace.py (no function)   100% 17 0 0   100% 0 0   100%
paintmaskanimator/brush_raster.py paint_segment   100% 5 0 0   100% 2 0   100%
paintmaskanimator/brush_raster.py stamp_mask   100% 10 0 0   100% 0 0   100%
paintmaskanimator/brush_raster.py stamp_outline   100% 4 0 0   100% 0 0   100%
paintmaskanimator/brush_raster.py _local_outline   100% 8 0 0   100% 4 0   100%
paintmaskanimator/brush_raster.py (no function)   100% 11 0 0   100% 0 0   100%
paintmaskanimator/bucket_fill.py BucketOptions.from_tools   100% 3 0 0   100% 2 0   100%
paintmaskanimator/bucket_fill.py _checked   100% 2 0 0   100% 0 0   100%
paintmaskanimator/bucket_fill.py _extend_length_from_tools   75% 4 1 0   50% 2 1   67%
paintmaskanimator/bucket_fill.py _target_from_tools   100% 3 0 0   100% 0 0   100%
paintmaskanimator/bucket_fill.py _reference_from_tools   100% 3 0 0   100% 0 0   100%
paintmaskanimator/bucket_fill.py FillResult.ok   100% 1 0 0   100% 0 0   100%
paintmaskanimator/bucket_fill.py FillResult.mask   67% 3 1 0   50% 2 1   60%
paintmaskanimator/bucket_fill.py FillResult.__bool__   100% 1 0 0   100% 0 0   100%
paintmaskanimator/bucket_fill.py dilate   100% 1 0 0   100% 0 0   100%
paintmaskanimator/bucket_fill.py dilate_numpy   100% 12 0 0   100% 2 0   100%
paintmaskanimator/bucket_fill.py erode   100% 1 0 0   100% 0 0   100%
paintmaskanimator/bucket_fill.py erode_numpy   100% 5 0 0   100% 2 0   100%
paintmaskanimator/bucket_fill.py _thin   100% 1 0 0   100% 0 0   100%
paintmaskanimator/bucket_fill.py _thin_numpy   100% 23 0 0   100% 14 0   100%
paintmaskanimator/bucket_fill.py _trace_from_end   100% 13 0 0   100% 6 0   100%
paintmaskanimator/bucket_fill.py _cast_ray   89% 19 2 0   80% 10 2   86%
paintmaskanimator/bucket_fill.py extend_line_ends   94% 47 3 0   90% 30 3   92%
paintmaskanimator/bucket_fill.py background_mask   0% 1 1 0   100% 0 0   0%
paintmaskanimator/bucket_fill.py seed_category   100% 4 0 0   100% 2 0   100%
paintmaskanimator/bucket_fill.py fill_target_mask   100% 22 0 0   100% 16 0   100%
paintmaskanimator/bucket_fill.py _enclosed_by   100% 9 0 0   100% 2 0   100%
paintmaskanimator/bucket_fill.py CompactFill.from_result   93% 15 1 0   88% 8 1   91%
paintmaskanimator/bucket_fill.py CompactFill.ok   100% 1 0 0   100% 0 0   100%
paintmaskanimator/bucket_fill.py CompactFill.nbytes   100% 1 0 0   100% 0 0   100%
paintmaskanimator/bucket_fill.py CompactFill.materialize   100% 12 0 0   100% 4 0   100%
paintmaskanimator/bucket_fill.py _RegionIndex.__init__   85% 13 2 0   50% 2 1   80%
paintmaskanimator/bucket_fill.py _RegionIndex.region   100% 5 0 0   100% 0 0   100%
paintmaskanimator/bucket_fill.py BucketSession.__init__   100% 10 0 0   100% 0 0   100%
paintmaskanimator/bucket_fill.py BucketSession.background   100% 3 0 0   100% 2 0   100%
paintmaskanimator/bucket_fill.py BucketSession.nbytes   100% 6 0 0   100% 0 0   100%
paintmaskanimator/bucket_fill.py BucketSession.prepare   100% 9 0 0   100% 4 0   100%
paintmaskanimator/bucket_fill.py BucketSession.compute   100% 1 0 0   100% 0 0   100%
paintmaskanimator/bucket_fill.py BucketSession.index   100% 3 0 0   100% 2 0   100%
paintmaskanimator/bucket_fill.py BucketSession.compact   83% 18 3 0   80% 10 2   82%
paintmaskanimator/bucket_fill.py BucketSession._compact_indexed   100% 20 0 0   100% 10 0   100%
paintmaskanimator/bucket_fill.py _island_fits_width   100% 6 0 0   100% 2 0   100%
paintmaskanimator/bucket_fill.py collect_small_islands   100% 29 0 0   100% 12 0   100%
paintmaskanimator/bucket_fill.py _prepare_bucket   100% 25 0 0   100% 14 0   100%
paintmaskanimator/bucket_fill.py compute_fill_region   91% 92 8 0   86% 56 8   89%
paintmaskanimator/bucket_fill.py enclosed_islands   93% 41 3 0   83% 18 3   90%
paintmaskanimator/bucket_fill.py track_fill_region   92% 77 6 0   82% 44 8   88%
paintmaskanimator/bucket_fill.py track_fill_region.iou_with   100% 2 0 0   100% 0 0   100%
paintmaskanimator/bucket_fill.py _shift_candidates   100% 5 0 0   100% 0 0   100%
paintmaskanimator/bucket_fill.py _track_small_region   93% 42 3 0   80% 20 4   89%
paintmaskanimator/bucket_fill.py guess_target_categories   0% 15 15 0   0% 4 0   0%
paintmaskanimator/bucket_fill.py (no function)   100% 131 0 0   100% 0 0   100%
paintmaskanimator/canvas.py _bounded_cache_put   57% 7 3 0   50% 2 1   56%
paintmaskanimator/canvas.py PaintCanvas.__init__   100% 168 0 0   100% 0 0   100%
paintmaskanimator/canvas.py PaintCanvas._invalidate_exposure_index   100% 1 0 0   100% 0 0   100%
paintmaskanimator/canvas.py PaintCanvas._position_selection_clear_overlay   86% 7 1 0   50% 2 1   78%
paintmaskanimator/canvas.py PaintCanvas._update_selection_clear_overlay   89% 9 1 0   75% 4 1   85%
paintmaskanimator/canvas.py PaintCanvas.resizeEvent   100% 2 0 0   100% 0 0   100%
paintmaskanimator/canvas.py PaintCanvas.frames   100% 1 0 0   100% 2 0   100%
paintmaskanimator/canvas.py PaintCanvas.frames   100% 2 0 0   100% 0 0   100%
paintmaskanimator/canvas.py PaintCanvas.current_frame   100% 1 0 0   100% 2 0   100%
paintmaskanimator/canvas.py PaintCanvas.current_frame   100% 1 0 0   100% 2 0   100%
paintmaskanimator/canvas.py PaintCanvas.active_layer_index   100% 1 0 0   100% 2 0   100%
paintmaskanimator/canvas.py PaintCanvas.active_layer_index   100% 1 0 0   100% 2 0   100%
paintmaskanimator/canvas.py PaintCanvas.layers   100% 1 0 0   100% 2 0   100%
paintmaskanimator/canvas.py PaintCanvas.active_layer   100% 1 0 0   100% 2 0   100%
paintmaskanimator/canvas.py PaintCanvas.current_state_for   70% 54 16 0   71% 38 7   71%
paintmaskanimator/canvas.py PaintCanvas.current_state_for._cell_exists   100% 1 0 0   100% 0 0   100%
paintmaskanimator/canvas.py PaintCanvas.set_tool   100% 15 0 0   100% 2 0   100%
paintmaskanimator/canvas.py PaintCanvas._eyedropper_cursor   100% 12 0 0   100% 0 0   100%
paintmaskanimator/canvas.py PaintCanvas._normalized_angle   0% 1 1 0   100% 0 0   0%
paintmaskanimator/canvas.py PaintCanvas._rotated_vector   0% 1 1 0   100% 0 0   0%
paintmaskanimator/canvas.py PaintCanvas.update_tool_cursor   63% 27 10 0   62% 24 1   63%
paintmaskanimator/canvas.py PaintCanvas.set_pen_size   100% 2 0 0   100% 0 0   100%
paintmaskanimator/canvas.py PaintCanvas.effective_tool   100% 8 0 0   83% 6 1   93%
paintmaskanimator/canvas.py PaintCanvas.work_rect   100% 1 0 0   100% 0 0   100%
paintmaskanimator/canvas.py PaintCanvas.set_zoom_around_canvas_center   100% 7 0 0   100% 0 0   100%
paintmaskanimator/canvas.py PaintCanvas.set_zoom_around_widget_point   100% 4 0 0   100% 0 0   100%
paintmaskanimator/canvas.py PaintCanvas.center_canvas   100% 2 0 0   100% 0 0   100%
paintmaskanimator/canvas.py PaintCanvas.canvas_rect   100% 1 0 0   100% 0 0   100%
paintmaskanimator/canvas.py PaintCanvas.widget_to_canvas   90% 10 1 0   75% 4 1   86%
paintmaskanimator/canvas.py PaintCanvas.canvas_to_widget   91% 11 1 0   75% 4 1   87%
paintmaskanimator/canvas.py PaintCanvas.inside   100% 1 0 0   100% 2 0   100%
paintmaskanimator/canvas.py PaintCanvas.color   67% 3 1 0   50% 2 1   60%
paintmaskanimator/canvas.py PaintCanvas.paint_source_color   80% 5 1 0   50% 2 1   71%
paintmaskanimator/canvas.py PaintCanvas.opaque_paint_color   100% 1 0 0   100% 0 0   100%
paintmaskanimator/canvas.py PaintCanvas._emit_actual_paint_colors   67% 21 7 0   62% 8 3   66%
paintmaskanimator/canvas.py PaintCanvas._binary_paint_overlay_rgba   89% 9 1 0   50% 2 1   82%
paintmaskanimator/canvas.py PaintCanvas._paint_rgb_palette   100% 1 0 0   100% 0 0   100%
paintmaskanimator/canvas.py PaintCanvas._snap_overlay_to_exact_rgbs   100% 1 0 0   100% 0 0   100%
paintmaskanimator/canvas.py PaintCanvas._blend_overlay_into_active_layer   92% 60 5 0   72% 18 5   87%
paintmaskanimator/canvas.py PaintCanvas._ensure_before_region   91% 23 2 0   83% 12 2   89%
paintmaskanimator/canvas.py PaintCanvas.selected_mask_colors   0% 5 5 0   0% 2 0   0%
paintmaskanimator/canvas.py PaintCanvas.selected_used_colors   100% 1 0 0   100% 0 0   100%
paintmaskanimator/canvas.py PaintCanvas.request_quality_preview_counter   100% 6 0 0   100% 2 0   100%
paintmaskanimator/canvas.py PaintCanvas.refresh_quality_preview_with_counter   81% 31 6 0   50% 14 5   71%
paintmaskanimator/canvas.py PaintCanvas.refresh_quality_preview_with_counter.report   100% 2 0 0   50% 2 1   75%
paintmaskanimator/canvas.py PaintCanvas.set_transform_quality   33% 15 10 0   25% 8 2   30%
paintmaskanimator/canvas.py PaintCanvas.set_transform_line_threshold   57% 7 3 0   50% 2 1   56%
paintmaskanimator/canvas.py PaintCanvas.begin_transform_line_adjustment   0% 3 3 0   100% 0 0   0%
paintmaskanimator/canvas.py PaintCanvas.finish_transform_line_adjustment   0% 5 5 0   0% 2 0   0%
paintmaskanimator/canvas.py PaintCanvas._render_deferred_transform_line_preview   0% 2 2 0   0% 2 0   0%
paintmaskanimator/canvas.py PaintCanvas.set_transform_line_colors   23% 13 10 0   17% 6 1   21%
paintmaskanimator/canvas.py PaintCanvas.apply_selection_clip   9% 23 21 0   8% 12 1   9%
paintmaskanimator/canvas.py PaintCanvas.image_alpha_statistics   100% 1 0 0   100% 0 0   100%
paintmaskanimator/canvas.py PaintCanvas.binarize_alpha_for_pixel_art   100% 1 0 0   100% 0 0   100%
paintmaskanimator/canvas.py PaintCanvas.opaque_rgb_color_count   100% 1 0 0   100% 0 0   100%
paintmaskanimator/canvas.py PaintCanvas.detect_opaque_border_background   0% 1 1 0   100% 0 0   0%
paintmaskanimator/canvas.py PaintCanvas._local_color_variation   0% 1 1 0   100% 0 0   0%
paintmaskanimator/canvas.py PaintCanvas.estimate_mixed_boundary_pixels   0% 1 1 0   100% 0 0   0%
paintmaskanimator/canvas.py PaintCanvas._median_cut_palette_from_samples   0% 1 1 0   100% 0 0   0%
paintmaskanimator/canvas.py PaintCanvas._surface_guided_palette_labels   0% 1 1 0   100% 0 0   0%
paintmaskanimator/canvas.py PaintCanvas._line_palette_labels   0% 1 1 0   100% 0 0   0%
paintmaskanimator/canvas.py PaintCanvas.normalize_tone_curve_points   0% 1 1 0   100% 0 0   0%
paintmaskanimator/canvas.py PaintCanvas.tone_curve_samples   0% 1 1 0   100% 0 0   0%
paintmaskanimator/canvas.py PaintCanvas.tone_curve_lut   100% 1 0 0   100% 0 0   100%
paintmaskanimator/canvas.py PaintCanvas.apply_tone_curve   100% 1 0 0   100% 0 0   100%
paintmaskanimator/canvas.py PaintCanvas._rgb_hsv_features   0% 1 1 0   100% 0 0   0%
paintmaskanimator/canvas.py PaintCanvas._hue_cluster_palette_from_samples   0% 1 1 0   100% 0 0   0%
paintmaskanimator/canvas.py PaintCanvas._priority_palette_colors_from_samples   0% 1 1 0   100% 0 0   0%
paintmaskanimator/canvas.py PaintCanvas.build_color_reduction_palette   100% 1 0 0   100% 0 0   100%
paintmaskanimator/canvas.py PaintCanvas.apply_color_reduction_palette   100% 1 0 0   100% 0 0   100%
paintmaskanimator/canvas.py PaintCanvas._qimage_rgba_array   100% 1 0 0   100% 0 0   100%
paintmaskanimator/canvas.py PaintCanvas._rgba_array_to_qimage   100% 1 0 0   100% 0 0   100%
paintmaskanimator/canvas.py PaintCanvas._pil_l_to_qimage   0% 1 1 0   100% 0 0   0%
paintmaskanimator/canvas.py PaintCanvas._qimage_gray_array   0% 1 1 0   100% 0 0   0%
paintmaskanimator/canvas.py PaintCanvas._qimage_to_pil_rgba   100% 1 0 0   100% 0 0   100%
paintmaskanimator/canvas.py PaintCanvas._pil_rgba_to_qimage   100% 1 0 0   100% 0 0   100%
paintmaskanimator/canvas.py PaintCanvas.sample_color   45% 44 24 0   29% 28 6   39%
paintmaskanimator/canvas.py PaintCanvas.silhouette_layer_image   0% 27 27 0   0% 8 0   0%
paintmaskanimator/canvas.py PaintCanvas._color_index_for_image   74% 19 5 0   50% 4 2   70%
paintmaskanimator/canvas.py PaintCanvas.filtered_layer_image   86% 28 4 0   83% 6 1   85%
paintmaskanimator/canvas.py PaintCanvas._layer_display_source   100% 3 0 0   100% 2 0   100%
paintmaskanimator/canvas.py PaintCanvas._display_layer_image   83% 6 1 0   75% 4 1   80%
paintmaskanimator/canvas.py PaintCanvas.view_layer_image   88% 41 5 0   75% 16 4   84%
paintmaskanimator/canvas.py PaintCanvas.view_background_color   60% 5 2 0   50% 2 1   57%
paintmaskanimator/canvas.py PaintCanvas.paint_view_background   100% 12 0 0   100% 2 0   100%
paintmaskanimator/canvas.py PaintCanvas.set_view_preview   86% 7 1 0   75% 4 1   82%
paintmaskanimator/canvas.py PaintCanvas.composite   100% 15 0 0   75% 8 2   91%
paintmaskanimator/canvas.py PaintCanvas._display_image_for_rect   94% 33 2 0   83% 18 3   90%
paintmaskanimator/canvas.py PaintCanvas.draw_frame_direct   83% 18 3 0   70% 10 3   79%
paintmaskanimator/canvas.py PaintCanvas._active_tool_panel   100% 2 0 0   100% 0 0   100%
paintmaskanimator/canvas.py PaintCanvas._prepare_draw_painter   0% 4 4 0   100% 0 0   0%
paintmaskanimator/canvas.py PaintCanvas.is_pseudo_transparent_color   100% 1 0 0   100% 0 0   100%
paintmaskanimator/canvas.py PaintCanvas._current_stroke_color   0% 2 2 0   100% 0 0   0%
paintmaskanimator/canvas.py PaintCanvas.paintEvent   57% 159 69 0   44% 84 15   52%
paintmaskanimator/canvas.py (no function)   100% 164 0 0   100% 0 0   100%
paintmaskanimator/canvas_brush_stabilizer.py BrushStabilizerMixin.set_brush_stabilizer   100% 1 0 0   100% 0 0   100%
paintmaskanimator/canvas_brush_stabilizer.py BrushStabilizerMixin._brush_stabilizer_window   100% 4 0 0   100% 2 0   100%
paintmaskanimator/canvas_brush_stabilizer.py BrushStabilizerMixin._reset_brush_stabilizer   100% 6 0 0   100% 0 0   100%
paintmaskanimator/canvas_brush_stabilizer.py BrushStabilizerMixin._smooth_brush_pressure   100% 7 0 0   100% 2 0   100%
paintmaskanimator/canvas_brush_stabilizer.py BrushStabilizerMixin._stabilized_brush_point   100% 33 0 0   100% 8 0   100%
paintmaskanimator/canvas_brush_stabilizer.py BrushStabilizerMixin._draw_stabilized_brush_to   95% 22 1 0   88% 8 1   93%
paintmaskanimator/canvas_brush_stabilizer.py BrushStabilizerMixin._start_brush_follow_timer   100% 3 0 0   100% 2 0   100%
paintmaskanimator/canvas_brush_stabilizer.py BrushStabilizerMixin._stop_brush_follow_timer   100% 2 0 0   100% 0 0   100%
paintmaskanimator/canvas_brush_stabilizer.py BrushStabilizerMixin._advance_stabilized_brush   100% 17 0 0   88% 8 1   96%
paintmaskanimator/canvas_brush_stabilizer.py BrushStabilizerMixin._finish_stabilized_brush   87% 15 2 0   75% 8 2   83%
paintmaskanimator/canvas_brush_stabilizer.py (no function)   100% 16 0 0   100% 0 0   100%
paintmaskanimator/canvas_image_import.py ImageImportMixin._read_image_file   74% 34 9 0   71% 14 2   73%
paintmaskanimator/canvas_image_import.py ImageImportMixin._natural_path_key   100% 1 0 0   100% 0 0   100%
paintmaskanimator/canvas_image_import.py ImageImportMixin._place_imported_image   100% 7 0 0   100% 0 0   100%
paintmaskanimator/canvas_image_import.py ImageImportMixin._make_white_transparent   83% 12 2 0   50% 4 2   75%
paintmaskanimator/canvas_image_import.py ImageImportMixin.make_border_background_transparent   85% 27 4 0   57% 14 6   76%
paintmaskanimator/canvas_image_import.py ImageImportMixin.import_image   0% 1 1 0   100% 0 0   0%
paintmaskanimator/canvas_image_import.py ImageImportMixin.import_image_sequence   68% 59 19 0   53% 32 9   63%
paintmaskanimator/canvas_image_import.py ImageImportMixin.dragEnterEvent   0% 4 4 0   0% 2 0   0%
paintmaskanimator/canvas_image_import.py ImageImportMixin.dragMoveEvent   0% 1 1 0   100% 0 0   0%
paintmaskanimator/canvas_image_import.py ImageImportMixin.dropEvent   0% 24 24 0   0% 18 0   0%
paintmaskanimator/canvas_image_import.py (no function)   100% 26 0 0   100% 0 0   100%
paintmaskanimator/canvas_input_events.py InputEventMixin._sample_eyedropper_event   86% 14 2 0   50% 6 3   75%
paintmaskanimator/canvas_input_events.py InputEventMixin._finish_eyedropper_event   57% 7 3 0   50% 4 2   55%
paintmaskanimator/canvas_input_events.py InputEventMixin.enterEvent   0% 6 6 0   100% 0 0   0%
paintmaskanimator/canvas_input_events.py InputEventMixin.leaveEvent   0% 4 4 0   100% 0 0   0%
paintmaskanimator/canvas_input_events.py InputEventMixin.wheelEvent   100% 8 0 0   100% 2 0   100%
paintmaskanimator/canvas_input_events.py InputEventMixin.keyPressEvent   39% 44 27 0   36% 22 8   38%
paintmaskanimator/canvas_input_events.py InputEventMixin.keyReleaseEvent   100% 1 0 0   100% 0 0   100%
paintmaskanimator/canvas_input_events.py InputEventMixin.mousePressEvent   76% 108 26 0   70% 50 11   74%
paintmaskanimator/canvas_input_events.py InputEventMixin.mouseMoveEvent   69% 85 26 0   72% 46 9   70%
paintmaskanimator/canvas_input_events.py InputEventMixin.mouseDoubleClickEvent   0% 7 7 0   0% 2 0   0%
paintmaskanimator/canvas_input_events.py InputEventMixin.mouseReleaseEvent   75% 88 22 0   72% 36 8   74%
paintmaskanimator/canvas_input_events.py InputEventMixin.tabletEvent   80% 64 13 0   53% 30 6   71%
paintmaskanimator/canvas_input_events.py (no function)   100% 24 0 0   100% 0 0   100%
paintmaskanimator/canvas_key_frame.py KeyFrameMixin.create_blank_key   67% 63 21 0   61% 18 5   65%
paintmaskanimator/canvas_key_frame.py KeyFrameMixin.previous_key_frame   0% 9 9 0   0% 4 0   0%
paintmaskanimator/canvas_key_frame.py KeyFrameMixin.next_key_frame   0% 9 9 0   0% 4 0   0%
paintmaskanimator/canvas_key_frame.py KeyFrameMixin.select_exposure   100% 7 0 0   50% 2 1   89%
paintmaskanimator/canvas_key_frame.py KeyFrameMixin.resolve_key_frame   85% 13 2 0   67% 6 2   79%
paintmaskanimator/canvas_key_frame.py KeyFrameMixin.ensure_editable_key   100% 42 0 0   88% 16 2   97%
paintmaskanimator/canvas_key_frame.py (no function)   100% 11 0 0   100% 0 0   100%
paintmaskanimator/canvas_onion_interaction.py OnionInteractionMixin.begin_onion_transform_interaction   0% 1 1 0   100% 0 0   0%
paintmaskanimator/canvas_onion_interaction.py OnionInteractionMixin.begin_onion_shift_interaction   0% 13 13 0   0% 2 0   0%
paintmaskanimator/canvas_onion_interaction.py OnionInteractionMixin.begin_onion_canvas_position_interaction   0% 8 8 0   100% 0 0   0%
paintmaskanimator/canvas_onion_interaction.py OnionInteractionMixin.set_onion_canvas_view_rotation   0% 17 17 0   0% 2 0   0%
paintmaskanimator/canvas_onion_interaction.py OnionInteractionMixin.cancel_onion_interaction   9% 22 20 0   25% 4 1   12%
paintmaskanimator/canvas_onion_interaction.py OnionInteractionMixin._onion_widget_delta_to_canvas   0% 7 7 0   100% 0 0   0%
paintmaskanimator/canvas_onion_interaction.py OnionInteractionMixin._begin_onion_interaction_drag   0% 16 16 0   0% 2 0   0%
paintmaskanimator/canvas_onion_interaction.py OnionInteractionMixin._update_onion_interaction_drag   0% 38 38 0   0% 10 0   0%
paintmaskanimator/canvas_onion_interaction.py (no function)   100% 15 0 0   100% 0 0   100%
paintmaskanimator/canvas_onion_render.py OnionRenderMixin._cache_onion_image   70% 10 3 0   50% 4 2   64%
paintmaskanimator/canvas_onion_render.py OnionRenderMixin._tinted_onion_image   95% 57 3 0   85% 26 4   92%
paintmaskanimator/canvas_onion_render.py OnionRenderMixin.onion_shift_values   67% 3 1 0   50% 2 1   60%
paintmaskanimator/canvas_onion_render.py OnionRenderMixin.onion_transform_values   100% 3 0 0   100% 0 0   100%
paintmaskanimator/canvas_onion_render.py OnionRenderMixin._onion_frame_identity   60% 20 8 0   50% 12 4   56%
paintmaskanimator/canvas_onion_render.py OnionRenderMixin._onion_frame_indices   93% 14 1 0   67% 6 2   85%
paintmaskanimator/canvas_onion_render.py OnionRenderMixin._draw_onion_range   96% 45 2 0   75% 12 3   91%
paintmaskanimator/canvas_onion_render.py (no function)   100% 16 0 0   100% 0 0   100%
paintmaskanimator/canvas_paint_tools.py PaintToolsMixin.pressure_size_scale   88% 8 1 0   75% 4 1   83%
paintmaskanimator/canvas_paint_tools.py PaintToolsMixin.pressure_value   0% 1 1 0   100% 0 0   0%
paintmaskanimator/canvas_paint_tools.py PaintToolsMixin._update_stroke_region   100% 5 0 0   100% 0 0   100%
paintmaskanimator/canvas_paint_tools.py PaintToolsMixin.draw_line   72% 47 13 0   40% 10 2   67%
paintmaskanimator/canvas_paint_tools.py PaintToolsMixin._scanline_connected_region   100% 1 0 0   100% 0 0   100%
paintmaskanimator/canvas_paint_tools.py PaintToolsMixin._bucket_tools   100% 2 0 0   100% 0 0   100%
paintmaskanimator/canvas_paint_tools.py PaintToolsMixin.bucket_options   100% 12 0 0   100% 6 0   100%
paintmaskanimator/canvas_paint_tools.py PaintToolsMixin._shift_held   67% 3 1 0   50% 2 1   60%
paintmaskanimator/canvas_paint_tools.py PaintToolsMixin._island_replacements   100% 4 0 0   100% 0 0   100%
paintmaskanimator/canvas_paint_tools.py PaintToolsMixin._fill_islands   100% 7 0 0   75% 4 1   91%
paintmaskanimator/canvas_paint_tools.py PaintToolsMixin._layer_fill_pixels   100% 4 0 0   100% 0 0   100%
paintmaskanimator/canvas_paint_tools.py PaintToolsMixin.bucket_reference_pixels   100% 13 0 0   100% 6 0   100%
paintmaskanimator/canvas_paint_tools.py PaintToolsMixin._bucket_reference_image   83% 12 2 0   75% 8 2   80%
paintmaskanimator/canvas_paint_tools.py PaintToolsMixin._bucket_canvas_reference   78% 18 4 0   60% 10 4   71%
paintmaskanimator/canvas_paint_tools.py PaintToolsMixin._fill_patch   100% 16 0 0   100% 4 0   100%
paintmaskanimator/canvas_paint_tools.py PaintToolsMixin.flood_fill   100% 5 0 0   100% 2 0   100%
paintmaskanimator/canvas_paint_tools.py PaintToolsMixin._bucket_fill_at   86% 36 5 0   71% 14 2   82%
paintmaskanimator/canvas_paint_tools.py PaintToolsMixin.begin_bucket_drag   87% 15 2 0   50% 2 1   82%
paintmaskanimator/canvas_paint_tools.py PaintToolsMixin.continue_bucket_drag   90% 10 1 0   75% 4 1   86%
paintmaskanimator/canvas_paint_tools.py PaintToolsMixin._bucket_drag_fill   94% 17 1 0   90% 10 1   93%
paintmaskanimator/canvas_paint_tools.py PaintToolsMixin._bucket_drag_accepts   100% 8 0 0   100% 2 0   100%
paintmaskanimator/canvas_paint_tools.py PaintToolsMixin.finish_bucket_drag   82% 11 2 0   67% 6 2   76%
paintmaskanimator/canvas_paint_tools.py PaintToolsMixin._bucket_drag_target_exists   100% 1 0 0   100% 0 0   100%
paintmaskanimator/canvas_paint_tools.py PaintToolsMixin._bucket_failure_message   43% 7 4 0   33% 6 2   38%
paintmaskanimator/canvas_paint_tools.py PaintToolsMixin._bucket_all_frames_enabled   100% 3 0 0   100% 0 0   100%
paintmaskanimator/canvas_paint_tools.py PaintToolsMixin._seed_in_bounds   100% 2 0 0   100% 0 0   100%
paintmaskanimator/canvas_paint_tools.py PaintToolsMixin._write_rgba_patch   100% 5 0 0   100% 0 0   100%
paintmaskanimator/canvas_paint_tools.py PaintToolsMixin.auto_select_region   53% 53 25 0   39% 18 7   49%
paintmaskanimator/canvas_paint_tools.py PaintToolsMixin._line_preview_path   86% 7 1 0   75% 4 1   82%
paintmaskanimator/canvas_paint_tools.py PaintToolsMixin._draw_tapered_path   0% 24 24 0   0% 6 0   0%
paintmaskanimator/canvas_paint_tools.py PaintToolsMixin._begin_brush_straight_line   100% 9 0 0   100% 0 0   100%
paintmaskanimator/canvas_paint_tools.py PaintToolsMixin.commit_line_tool   85% 48 7 0   64% 14 5   81%
paintmaskanimator/canvas_paint_tools.py PaintToolsMixin._shape_rect   0% 11 11 0   0% 4 0   0%
paintmaskanimator/canvas_paint_tools.py PaintToolsMixin._shape_path   0% 25 25 0   0% 12 0   0%
paintmaskanimator/canvas_paint_tools.py PaintToolsMixin.commit_shape_tool   0% 45 45 0   0% 8 0   0%
paintmaskanimator/canvas_paint_tools.py PaintToolsMixin.fill_lasso_polygon   74% 85 22 0   58% 24 6   71%
paintmaskanimator/canvas_paint_tools.py (no function)   100% 57 0 0   100% 0 0   100%
paintmaskanimator/canvas_playback.py PlaybackMixin._build_playback_key_map   100% 2 0 0   100% 0 0   100%
paintmaskanimator/canvas_playback.py PlaybackMixin.set_playback_active   100% 9 0 0   100% 4 0   100%
paintmaskanimator/canvas_playback.py PlaybackMixin.playback_advance   100% 6 0 0   100% 2 0   100%
paintmaskanimator/canvas_playback.py PlaybackMixin.playback_bounds   100% 5 0 0   100% 0 0   100%
paintmaskanimator/canvas_playback.py PlaybackMixin._playback_cache_dimensions   100% 6 0 0   100% 0 0   100%
paintmaskanimator/canvas_playback.py PlaybackMixin.playback_frame_image   100% 34 0 0   100% 14 0   100%
paintmaskanimator/canvas_playback.py (no function)   100% 13 0 0   100% 0 0   100%
paintmaskanimator/canvas_selection.py SelectionMixin.selection_mask_bool   97% 30 1 0   75% 8 2   92%
paintmaskanimator/canvas_selection.py SelectionMixin._bool_mask_image   100% 1 0 0   100% 0 0   100%
paintmaskanimator/canvas_selection.py SelectionMixin._update_selection_fade   100% 17 0 0   88% 8 1   96%
paintmaskanimator/canvas_selection.py SelectionMixin._clear_selection_state   91% 11 1 0   50% 2 1   85%
paintmaskanimator/canvas_selection.py SelectionMixin.clear_selection   100% 2 0 0   100% 0 0   100%
paintmaskanimator/canvas_selection.py SelectionMixin.set_selection_mask   86% 21 3 0   50% 4 2   80%
paintmaskanimator/canvas_selection.py SelectionMixin._canvas_area_rect   100% 1 0 0   100% 0 0   100%
paintmaskanimator/canvas_selection.py SelectionMixin.select_all   77% 13 3 0   50% 6 3   68%
paintmaskanimator/canvas_selection.py SelectionMixin.invert_selection   92% 13 1 0   75% 4 1   88%
paintmaskanimator/canvas_selection.py SelectionMixin.clear_selection_preserving_used_colors   0% 1 1 0   100% 0 0   0%
paintmaskanimator/canvas_selection.py SelectionMixin._masked_selection_source   100% 23 0 0   100% 4 0   100%
paintmaskanimator/canvas_selection.py SelectionMixin.auto_select_used_area   86% 22 3 0   50% 6 3   79%
paintmaskanimator/canvas_selection.py SelectionMixin.begin_selection_transform   85% 66 10 0   70% 20 6   81%
paintmaskanimator/canvas_selection.py SelectionMixin.transformed_selection_outline   53% 15 7 0   38% 8 3   48%
paintmaskanimator/canvas_selection.py SelectionMixin.rotate_selection_transform   83% 12 2 0   50% 4 2   75%
paintmaskanimator/canvas_selection.py SelectionMixin._selection_source_from_image   72% 25 7 0   50% 6 3   68%
paintmaskanimator/canvas_selection.py SelectionMixin._cleared_selection_base   69% 16 5 0   33% 6 2   59%
paintmaskanimator/canvas_selection.py SelectionMixin._merge_quality_transform   100% 6 0 0   100% 0 0   100%
paintmaskanimator/canvas_selection.py SelectionMixin._record_transform_history   100% 3 0 0   100% 2 0   100%
paintmaskanimator/canvas_selection.py SelectionMixin._discard_transform_history   71% 7 2 0   50% 2 1   67%
paintmaskanimator/canvas_selection.py SelectionMixin._reset_selection_transform   100% 15 0 0   100% 0 0   100%
paintmaskanimator/canvas_selection.py SelectionMixin.commit_selection_transform   86% 87 12 0   74% 42 9   82%
paintmaskanimator/canvas_selection.py SelectionMixin.cancel_selection_transform   92% 13 1 0   50% 6 3   79%
paintmaskanimator/canvas_selection.py SelectionMixin.selection_bounds   100% 6 0 0   100% 4 0   100%
paintmaskanimator/canvas_selection.py SelectionMixin.copy_selection   100% 4 0 0   50% 2 1   83%
paintmaskanimator/canvas_selection.py SelectionMixin.cut_selection   82% 11 2 0   67% 6 2   76%
paintmaskanimator/canvas_selection.py SelectionMixin.delete_selection_contents   93% 27 2 0   67% 6 2   88%
paintmaskanimator/canvas_selection.py SelectionMixin.paste_clipboard   0% 10 10 0   0% 4 0   0%
paintmaskanimator/canvas_selection.py (no function)   100% 47 0 0   100% 0 0   100%
paintmaskanimator/canvas_skewer_fill.py SkewerFillMixin.flood_fill_over_frames   88% 32 4 0   70% 10 3   83%
paintmaskanimator/canvas_skewer_fill.py SkewerFillMixin.skewer_fill_pending   100% 1 0 0   100% 0 0   100%
paintmaskanimator/canvas_skewer_fill.py SkewerFillMixin.skip_skewer_fill_frame   70% 10 3 0   50% 4 2   64%
paintmaskanimator/canvas_skewer_fill.py SkewerFillMixin.skip_skewer_fill_direction   83% 12 2 0   75% 4 1   81%
paintmaskanimator/canvas_skewer_fill.py SkewerFillMixin.abort_skewer_fill   100% 5 0 0   100% 2 0   100%
paintmaskanimator/canvas_skewer_fill.py SkewerFillMixin._skewer_advance   80% 40 8 0   75% 16 4   79%
paintmaskanimator/canvas_skewer_fill.py SkewerFillMixin._skewer_reference_image   100% 1 0 0   100% 0 0   100%
paintmaskanimator/canvas_skewer_fill.py SkewerFillMixin._skewer_locate   33% 18 12 0   25% 8 2   31%
paintmaskanimator/canvas_skewer_fill.py SkewerFillMixin._skewer_remember   100% 4 0 0   100% 0 0   100%
paintmaskanimator/canvas_skewer_fill.py SkewerFillMixin._skewer_wait_for   100% 10 0 0   100% 2 0   100%
paintmaskanimator/canvas_skewer_fill.py SkewerFillMixin._skewer_pending_message   100% 4 0 0   100% 2 0   100%
paintmaskanimator/canvas_skewer_fill.py SkewerFillMixin.skewer_fill_has_guess   100% 2 0 0   100% 0 0   100%
paintmaskanimator/canvas_skewer_fill.py SkewerFillMixin.accept_skewer_guess   79% 14 3 0   50% 4 2   72%
paintmaskanimator/canvas_skewer_fill.py SkewerFillMixin._skewer_clear_pending   100% 4 0 0   100% 0 0   100%
paintmaskanimator/canvas_skewer_fill.py SkewerFillMixin._skewer_resume_with_click   66% 29 10 0   42% 12 5   59%
paintmaskanimator/canvas_skewer_fill.py SkewerFillMixin._skewer_session_valid   64% 11 4 0   67% 6 2   65%
paintmaskanimator/canvas_skewer_fill.py SkewerFillMixin._skewer_apply   71% 28 8 0   64% 14 5   69%
paintmaskanimator/canvas_skewer_fill.py SkewerFillMixin._skewer_apply.op   91% 11 1 0   75% 4 1   87%
paintmaskanimator/canvas_skewer_fill.py SkewerFillMixin._skewer_guide_image   100% 3 0 0   100% 0 0   100%
paintmaskanimator/canvas_skewer_fill.py SkewerFillMixin.paint_skewer_guide   75% 4 1 0   50% 2 1   67%
paintmaskanimator/canvas_skewer_fill.py SkewerFillMixin.paint_skewer_banner   20% 15 12 0   50% 2 1   24%
paintmaskanimator/canvas_skewer_fill.py (no function)   100% 63 0 0   100% 0 0   100%
paintmaskanimator/canvas_stroke_display.py StrokeDisplayMixin._begin_opaque_brush_stroke   100% 12 0 0   75% 4 1   94%
paintmaskanimator/canvas_stroke_display.py StrokeDisplayMixin._stroke_before_region   86% 22 3 0   70% 10 3   81%
paintmaskanimator/canvas_stroke_display.py StrokeDisplayMixin._finish_opaque_brush_stroke   100% 10 0 0   100% 2 0   100%
paintmaskanimator/canvas_stroke_display.py StrokeDisplayMixin.warm_up_brush_runtime   100% 17 0 0   100% 2 0   100%
paintmaskanimator/canvas_stroke_display.py (no function)   100% 13 0 0   100% 0 0   100%
paintmaskanimator/canvas_timeline_ops.py TimelineStructureMixin.set_layer_visibility   90% 10 1 0   62% 8 3   78%
paintmaskanimator/canvas_timeline_ops.py TimelineStructureMixin.set_layer_opacity   91% 11 1 0   62% 8 3   79%
paintmaskanimator/canvas_timeline_ops.py TimelineStructureMixin.add_layer   100% 17 0 0   100% 4 0   100%
paintmaskanimator/canvas_timeline_ops.py TimelineStructureMixin.delete_layer   92% 13 1 0   75% 4 1   88%
paintmaskanimator/canvas_timeline_ops.py TimelineStructureMixin._clear_timeline_layer_cell   100% 10 0 0   100% 0 0   100%
paintmaskanimator/canvas_timeline_ops.py TimelineStructureMixin.timeline_block_at   80% 10 2 0   67% 6 2   75%
paintmaskanimator/canvas_timeline_ops.py TimelineStructureMixin._shift_timeline_layer_right   86% 22 3 0   79% 14 3   83%
paintmaskanimator/canvas_timeline_ops.py TimelineStructureMixin._shift_timeline_layer_left   89% 18 2 0   79% 14 3   84%
paintmaskanimator/canvas_timeline_ops.py TimelineStructureMixin._trim_unused_trailing_frames   80% 5 1 0   75% 4 1   78%
paintmaskanimator/canvas_timeline_ops.py TimelineStructureMixin.add_frame   100% 12 0 0   100% 2 0   100%
paintmaskanimator/canvas_timeline_ops.py TimelineStructureMixin.delete_frame   53% 30 14 0   25% 12 3   45%
paintmaskanimator/canvas_timeline_ops.py TimelineStructureMixin.previous_frame   0% 5 5 0   0% 2 0   0%
paintmaskanimator/canvas_timeline_ops.py TimelineStructureMixin.next_frame   0% 11 11 0   0% 4 0   0%
paintmaskanimator/canvas_timeline_ops.py TimelineStructureMixin.timeline_step_columns   92% 13 1 0   90% 10 1   91%
paintmaskanimator/canvas_timeline_ops.py TimelineStructureMixin.set_duration   0% 8 8 0   0% 4 0   0%
paintmaskanimator/canvas_timeline_ops.py TimelineStructureMixin.current_exposure   100% 1 0 0   100% 0 0   100%
paintmaskanimator/canvas_timeline_ops.py TimelineStructureMixin.resolve_exposure_block   0% 13 13 0   0% 6 0   0%
paintmaskanimator/canvas_timeline_ops.py TimelineStructureMixin.sequence_number_normalization   100% 1 0 0   100% 0 0   100%
paintmaskanimator/canvas_timeline_ops.py TimelineStructureMixin.normalize_sequence_numbers   65% 23 8 0   69% 16 3   67%
paintmaskanimator/canvas_timeline_ops.py TimelineStructureMixin.sequence_entry_columns   91% 11 1 0   88% 8 1   89%
paintmaskanimator/canvas_timeline_ops.py TimelineStructureMixin.insert_sequence_blank   0% 31 31 0   0% 8 0   0%
paintmaskanimator/canvas_timeline_ops.py TimelineStructureMixin.move_sequence_image   0% 33 33 0   0% 14 0   0%
paintmaskanimator/canvas_timeline_ops.py TimelineStructureMixin.sync_numbered_image_from_cell   81% 16 3 0   90% 10 1   85%
paintmaskanimator/canvas_timeline_ops.py TimelineStructureMixin.link_layer_tracks   91% 11 1 0   75% 12 3   83%
paintmaskanimator/canvas_timeline_ops.py TimelineStructureMixin.coalesce_numbered_images   100% 17 0 0   94% 16 1   97%
paintmaskanimator/canvas_timeline_ops.py TimelineStructureMixin.delete_sequence_entry   0% 18 18 0   0% 6 0   0%
paintmaskanimator/canvas_timeline_ops.py TimelineStructureMixin.apply_sequence_only_entries   13% 47 41 0   32% 22 3   19%
paintmaskanimator/canvas_timeline_ops.py TimelineStructureMixin.flip_active_layer   0% 8 8 0   0% 2 0   0%
paintmaskanimator/canvas_timeline_ops.py TimelineStructureMixin.move_timeline_cell   93% 91 6 0   68% 34 11   86%
paintmaskanimator/canvas_timeline_ops.py TimelineStructureMixin._follow_blanks   96% 25 1 0   81% 16 3   90%
paintmaskanimator/canvas_timeline_ops.py TimelineStructureMixin._ensure_frame_count   100% 9 0 0   100% 6 0   100%
paintmaskanimator/canvas_timeline_ops.py (no function)   100% 41 0 0   100% 0 0   100%
paintmaskanimator/canvas_transform_geometry.py TransformGeometryMixin._regular_grid_points   0% 1 1 0   100% 0 0   0%
paintmaskanimator/canvas_transform_geometry.py TransformGeometryMixin.nearest_transform_handle   83% 6 1 0   50% 2 1   75%
paintmaskanimator/canvas_transform_geometry.py TransformGeometryMixin.transform_center   67% 3 1 0   50% 2 1   60%
paintmaskanimator/canvas_transform_geometry.py TransformGeometryMixin.transform_rotation_handle   62% 16 6 0   38% 8 3   54%
paintmaskanimator/canvas_transform_geometry.py TransformGeometryMixin.transform_outer_polygon   90% 20 2 0   86% 14 2   88%
paintmaskanimator/canvas_transform_geometry.py TransformGeometryMixin.begin_transform_drag   73% 26 7 0   60% 10 4   69%
paintmaskanimator/canvas_transform_geometry.py TransformGeometryMixin.update_transform_drag   43% 28 16 0   50% 12 4   45%
paintmaskanimator/canvas_transform_geometry.py TransformGeometryMixin.end_transform_drag   100% 10 0 0   75% 4 1   93%
paintmaskanimator/canvas_transform_geometry.py TransformGeometryMixin._quad_homography   100% 1 0 0   100% 0 0   100%
paintmaskanimator/canvas_transform_geometry.py TransformGeometryMixin._project_transform_source   84% 19 3 0   50% 6 3   76%
paintmaskanimator/canvas_transform_geometry.py TransformGeometryMixin._transform_is_reducing   0% 32 32 0   0% 20 0   0%
paintmaskanimator/canvas_transform_geometry.py TransformGeometryMixin._proxy_transform_preview_image   97% 29 1 0   50% 6 3   89%
paintmaskanimator/canvas_transform_geometry.py TransformGeometryMixin.transform_preview_image   83% 12 2 0   75% 8 2   80%
paintmaskanimator/canvas_transform_geometry.py (no function)   100% 26 0 0   100% 0 0   100%
paintmaskanimator/canvas_transform_mask.py TransformMaskMixin._invalidate_tp_preview_cache   100% 7 0 0   100% 2 0   100%
paintmaskanimator/canvas_transform_mask.py TransformMaskMixin._clear_tp_transform_masks   100% 11 0 0   100% 2 0   100%
paintmaskanimator/canvas_transform_mask.py TransformMaskMixin._tp_mask_key   67% 3 1 0   50% 2 1   60%
paintmaskanimator/canvas_transform_mask.py TransformMaskMixin._tp_uses_proxy   100% 1 0 0   100% 0 0   100%
paintmaskanimator/canvas_transform_mask.py TransformMaskMixin._tp_geometry_cache_is_current   80% 10 2 0   50% 4 2   71%
paintmaskanimator/canvas_transform_mask.py TransformMaskMixin.init_mesh   0% 3 3 0   0% 2 0   0%
paintmaskanimator/canvas_transform_mask.py TransformMaskMixin.nearest_mesh   0% 2 2 0   0% 2 0   0%
paintmaskanimator/canvas_transform_mask.py TransformMaskMixin.commit_mesh   0% 2 2 0   0% 2 0   0%
paintmaskanimator/canvas_transform_mask.py TransformMaskMixin.apply_mesh_release   0% 13 13 0   0% 6 0   0%
paintmaskanimator/canvas_transform_mask.py TransformMaskMixin.cancel_mesh   0% 1 1 0   100% 0 0   0%
paintmaskanimator/canvas_transform_mask.py TransformMaskMixin._regular_mesh_reference_points   100% 9 0 0   100% 2 0   100%
paintmaskanimator/canvas_transform_mask.py TransformMaskMixin.set_transform_mesh_grid   83% 29 5 0   50% 10 5   74%
paintmaskanimator/canvas_transform_mask.py TransformMaskMixin.set_transform_mesh_grid.sample   100% 10 0 0   100% 0 0   100%
paintmaskanimator/canvas_transform_mask.py TransformMaskMixin._mesh_catmull_scalar   100% 1 0 0   100% 0 0   100%
paintmaskanimator/canvas_transform_mask.py TransformMaskMixin._mesh_reference_grid   43% 7 4 0   25% 4 1   36%
paintmaskanimator/canvas_transform_mask.py TransformMaskMixin._mesh_curve_point   94% 31 2 0   67% 6 2   89%
paintmaskanimator/canvas_transform_mask.py TransformMaskMixin._mesh_curve_point.clamped_index   100% 3 0 0   100% 0 0   100%
paintmaskanimator/canvas_transform_mask.py TransformMaskMixin._mesh_curve_point.displacement_at   100% 2 0 0   100% 0 0   100%
paintmaskanimator/canvas_transform_mask.py TransformMaskMixin._curved_mesh_points   100% 10 0 0   100% 4 0   100%
paintmaskanimator/canvas_transform_mask.py TransformMaskMixin._mesh_preview_image   0% 34 34 0   0% 10 0   0%
paintmaskanimator/canvas_transform_mask.py TransformMaskMixin._mesh_preview_image.raster_triangle   0% 35 35 0   0% 8 0   0%
paintmaskanimator/canvas_transform_mask.py TransformMaskMixin._tp_transparent_to_white   100% 1 0 0   100% 0 0   100%
paintmaskanimator/canvas_transform_mask.py TransformMaskMixin._tp_white_to_transparent   100% 1 0 0   100% 0 0   100%
paintmaskanimator/canvas_transform_mask.py TransformMaskMixin._tp_prepare_palette_image   0% 1 1 0   100% 0 0   0%
paintmaskanimator/canvas_transform_mask.py TransformMaskMixin._tp_packed_rgb   100% 2 0 0   100% 0 0   100%
paintmaskanimator/canvas_transform_mask.py TransformMaskMixin._tp_exact_palette   80% 5 1 0   50% 2 1   71%
paintmaskanimator/canvas_transform_mask.py TransformMaskMixin._build_tp_label_image   96% 28 1 0   70% 10 3   89%
paintmaskanimator/canvas_transform_mask.py TransformMaskMixin._build_tp_label_image.luminance   100% 2 0 0   100% 0 0   100%
paintmaskanimator/canvas_transform_mask.py TransformMaskMixin._prepare_tp_transform_masks   81% 27 5 0   62% 8 3   77%
paintmaskanimator/canvas_transform_mask.py TransformMaskMixin._tp_transform_bbox   80% 15 3 0   50% 6 3   71%
paintmaskanimator/canvas_transform_mask.py TransformMaskMixin._tp_inverse_mapper   88% 16 2 0   67% 6 2   82%
paintmaskanimator/canvas_transform_mask.py TransformMaskMixin._tp_geometry_key   100% 2 0 0   100% 0 0   100%
paintmaskanimator/canvas_transform_mask.py TransformMaskMixin._build_tp_geometry_cache   82% 44 8 0   83% 12 2   82%
paintmaskanimator/canvas_transform_mask.py TransformMaskMixin._build_tp_geometry_cache.report   100% 3 0 0   100% 2 0   100%
paintmaskanimator/canvas_transform_mask.py TransformMaskMixin._tp_mask_preview_image   94% 36 2 0   86% 14 2   92%
paintmaskanimator/canvas_transform_mask.py (no function)   100% 49 0 0   100% 0 0   100%
paintmaskanimator/canvas_undo.py HistoryBranch.__init__   100% 3 0 0   100% 0 0   100%
paintmaskanimator/canvas_undo.py HistoryBranch.__repr__   100% 0 0 4   100% 0 0   100%
paintmaskanimator/canvas_undo.py set_undo_limits   100% 2 0 0   100% 0 0   100%
paintmaskanimator/canvas_undo.py trim_undo_stack   100% 7 0 0   100% 4 0   100%
paintmaskanimator/canvas_undo.py UndoMixin.document_snapshot   100% 1 0 0   100% 2 0   100%
paintmaskanimator/canvas_undo.py UndoMixin.push_undo   90% 10 1 0   75% 4 1   86%
paintmaskanimator/canvas_undo.py UndoMixin.history_branches   100% 5 0 0   100% 2 0   100%
paintmaskanimator/canvas_undo.py UndoMixin.clear_history_branches   100% 1 0 0   100% 0 0   100%
paintmaskanimator/canvas_undo.py UndoMixin._shift_history_branches   0% 7 7 0   0% 4 0   0%
paintmaskanimator/canvas_undo.py UndoMixin._archive_redo_branch   78% 9 2 0   50% 4 2   69%
paintmaskanimator/canvas_undo.py UndoMixin.switch_history_branch   80% 20 4 0   67% 12 4   75%
paintmaskanimator/canvas_undo.py UndoMixin._invalidate_display_caches   100% 5 0 0   100% 0 0   100%
paintmaskanimator/canvas_undo.py UndoMixin.push_doc_undo   100% 1 0 0   100% 0 0   100%
paintmaskanimator/canvas_undo.py UndoMixin.push_layer_undo   100% 2 0 0   100% 0 0   100%
paintmaskanimator/canvas_undo.py UndoMixin.push_layer_region_undo   83% 6 1 0   50% 2 1   75%
paintmaskanimator/canvas_undo.py UndoMixin.apply_undo_entry   80% 143 28 0   67% 72 12   76%
paintmaskanimator/canvas_undo.py UndoMixin.undo   73% 11 3 0   50% 6 3   65%
paintmaskanimator/canvas_undo.py UndoMixin.redo   80% 10 2 0   50% 6 3   69%
paintmaskanimator/canvas_undo.py (no function)   100% 32 0 1   100% 0 0   100%
paintmaskanimator/cell_numbering.py normalization_mapping   89% 18 2 0   80% 10 2   86%
paintmaskanimator/cell_numbering.py changed_count   100% 1 0 0   100% 0 0   100%
paintmaskanimator/cell_numbering.py (no function)   100% 2 0 0   100% 0 0   100%
paintmaskanimator/clip_animation.py ClipAnimationDocument.folder_count   100% 1 0 0   100% 0 0   100%
paintmaskanimator/clip_animation.py ClipAnimationDocument.frame_count   100% 1 0 0   100% 0 0   100%
paintmaskanimator/clip_animation.py ClipAnimationDocument.source_metadata   100% 1 0 0   100% 0 0   100%
paintmaskanimator/clip_animation.py _row_number   100% 2 0 0   100% 0 0   100%
paintmaskanimator/clip_animation.py _csp_color_byte   83% 6 1 0   75% 4 1   80%
paintmaskanimator/clip_animation.py _single_channel_layer_color   43% 7 4 0   50% 4 2   45%
paintmaskanimator/clip_animation.py _blank_canvas   100% 3 0 0   100% 0 0   100%
paintmaskanimator/clip_animation.py _apply_layer_color   100% 20 0 0   83% 6 1   96%
paintmaskanimator/clip_animation.py _native_raster   100% 11 0 0   100% 4 0   100%
paintmaskanimator/clip_animation.py _render_cached_layer   93% 14 1 0   50% 2 1   88%
paintmaskanimator/clip_animation.py _child_layer_rows   100% 1 0 0   100% 0 0   100%
paintmaskanimator/clip_animation.py _safe_divide   100% 3 0 0   100% 0 0   100%
paintmaskanimator/clip_animation.py _luminosity   100% 1 0 0   100% 0 0   100%
paintmaskanimator/clip_animation.py _set_luminosity   100% 7 0 0   100% 0 0   100%
paintmaskanimator/clip_animation.py _saturation   0% 1 1 0   100% 0 0   0%
paintmaskanimator/clip_animation.py _set_saturation   0% 2 2 0   100% 0 0   0%
paintmaskanimator/clip_animation.py _color_burn   0% 1 1 0   100% 0 0   0%
paintmaskanimator/clip_animation.py _color_dodge   0% 1 1 0   100% 0 0   0%
paintmaskanimator/clip_animation.py _hard_light   100% 2 0 0   100% 0 0   100%
paintmaskanimator/clip_animation.py _soft_light   0% 2 2 0   100% 0 0   0%
paintmaskanimator/clip_animation.py _blend_colors   55% 51 23 0   54% 50 19   54%
paintmaskanimator/clip_animation.py _composite   100% 19 0 0   100% 4 0   100%
paintmaskanimator/clip_animation.py _image_to_premultiplied   100% 3 0 0   100% 0 0   100%
paintmaskanimator/clip_animation.py _premultiplied_to_image   100% 5 0 0   100% 0 0   100%
paintmaskanimator/clip_animation.py _shift_pixels   88% 8 1 0   75% 4 1   83%
paintmaskanimator/clip_animation.py _CelRenderer.__init__   100% 4 0 0   100% 0 0   100%
paintmaskanimator/clip_animation.py _CelRenderer.render   100% 9 0 0   100% 4 0   100%
paintmaskanimator/clip_animation.py _CelRenderer._can_render_qt   90% 10 1 0   90% 10 1   90%
paintmaskanimator/clip_animation.py _CelRenderer._qt_draw   100% 7 0 0   100% 2 0   100%
paintmaskanimator/clip_animation.py _CelRenderer._qt_content   100% 23 0 0   94% 16 1   97%
paintmaskanimator/clip_animation.py _CelRenderer._blank   100% 1 0 0   100% 0 0   100%
paintmaskanimator/clip_animation.py _CelRenderer._visible   100% 1 0 0   100% 0 0   100%
paintmaskanimator/clip_animation.py _CelRenderer._opacity   100% 1 0 0   100% 0 0   100%
paintmaskanimator/clip_animation.py _CelRenderer._is_folder   100% 1 0 0   100% 0 0   100%
paintmaskanimator/clip_animation.py _CelRenderer._children   75% 4 1 0   50% 2 1   67%
paintmaskanimator/clip_animation.py _CelRenderer._content   90% 10 1 0   83% 6 1   88%
paintmaskanimator/clip_animation.py _CelRenderer._composite_children   95% 20 1 0   93% 14 1   94%
paintmaskanimator/clip_animation.py _CelRenderer._pass_through   75% 8 2 0   50% 2 1   70%
paintmaskanimator/clip_animation.py _CelRenderer._mask   100% 16 0 0   75% 4 1   95%
paintmaskanimator/clip_animation.py _numeric_cell_name   75% 8 2 0   100% 2 0   80%
paintmaskanimator/clip_animation.py cell_sequence_numbers   95% 19 1 0   90% 10 1   93%
paintmaskanimator/clip_animation.py _layer_runs   100% 21 0 0   90% 10 1   97%
paintmaskanimator/clip_animation.py build_pma_frames   88% 33 4 0   75% 16 4   84%
paintmaskanimator/clip_animation.py _direct_children   86% 7 1 0   75% 4 1   82%
paintmaskanimator/clip_animation.py read_clip_animation   87% 78 10 0   71% 34 10   82%
paintmaskanimator/clip_animation.py read_clip_animation.report   100% 2 0 0   100% 2 0   100%
paintmaskanimator/clip_animation.py read_clip_animation.folder_visible   91% 11 1 0   75% 8 2   84%
paintmaskanimator/clip_animation.py (no function)   100% 116 0 0   100% 0 0   100%
paintmaskanimator/color_chart.py _hex_color   100% 4 0 0   100% 2 0   100%
paintmaskanimator/color_chart.py _tag   100% 1 0 0   100% 0 0   100%
paintmaskanimator/color_chart.py _unique_id   78% 9 2 0   50% 2 1   73%
paintmaskanimator/color_chart.py empty_color_chart   100% 1 0 0   100% 0 0   100%
paintmaskanimator/color_chart.py normalize_color_chart   59% 139 57 0   48% 100 22   54%
paintmaskanimator/color_chart.py merge_color_charts   0% 27 27 0   0% 14 0   0%
paintmaskanimator/color_chart.py _tile   100% 1 0 0   100% 0 0   100%
paintmaskanimator/color_chart.py move_chart_color   68% 37 12 0   55% 20 7   63%
paintmaskanimator/color_chart.py assign_chart_tag   0% 17 17 0   0% 10 0   0%
paintmaskanimator/color_chart.py ColorTagDialog.__init__   0% 20 20 0   0% 2 0   0%
paintmaskanimator/color_chart.py ColorTagDialog._choose_color   0% 4 4 0   0% 2 0   0%
paintmaskanimator/color_chart.py ColorTagDialog._choose_color.apply   0% 2 2 0   100% 0 0   0%
paintmaskanimator/color_chart.py ColorTagDialog._refresh_color_button   0% 3 3 0   100% 0 0   0%
paintmaskanimator/color_chart.py ColorTagDialog.values   0% 1 1 0   100% 0 0   0%
paintmaskanimator/color_chart.py TagListWidget.__init__   100% 5 0 0   100% 0 0   100%
paintmaskanimator/color_chart.py TagListWidget.startDrag   0% 8 8 0   0% 2 0   0%
paintmaskanimator/color_chart.py TagListWidget.dragEnterEvent   0% 4 4 0   0% 2 0   0%
paintmaskanimator/color_chart.py TagListWidget.dragMoveEvent   0% 4 4 0   0% 2 0   0%
paintmaskanimator/color_chart.py TagListWidget.dropEvent   0% 15 15 0   0% 6 0   0%
paintmaskanimator/color_chart.py ColorChartCanvas.__init__   100% 21 0 0   100% 0 0   100%
paintmaskanimator/color_chart.py ColorChartCanvas.set_chart   100% 9 0 0   100% 2 0   100%
paintmaskanimator/color_chart.py ColorChartCanvas._base_size   100% 4 0 0   100% 0 0   100%
paintmaskanimator/color_chart.py ColorChartCanvas._update_canvas_size   100% 4 0 0   100% 0 0   100%
paintmaskanimator/color_chart.py ColorChartCanvas._text_color   100% 2 0 0   100% 0 0   100%
paintmaskanimator/color_chart.py ColorChartCanvas._draw_checker   100% 6 0 0   100% 4 0   100%
paintmaskanimator/color_chart.py ColorChartCanvas.paintEvent   82% 50 9 0   70% 10 1   80%
paintmaskanimator/color_chart.py ColorChartCanvas._movement   0% 1 1 0   100% 0 0   0%
paintmaskanimator/color_chart.py ColorChartCanvas._base_position   0% 1 1 0   100% 0 0   0%
paintmaskanimator/color_chart.py ColorChartCanvas._hit_at   0% 2 2 0   100% 0 0   0%
paintmaskanimator/color_chart.py ColorChartCanvas._header_at   0% 2 2 0   100% 0 0   0%
paintmaskanimator/color_chart.py ColorChartCanvas._update_mode_cursor   62% 8 3 0   50% 6 3   57%
paintmaskanimator/color_chart.py ColorChartCanvas.handle_hold_key_event   0% 6 6 0   0% 4 0   0%
paintmaskanimator/color_chart.py ColorChartCanvas.keyPressEvent   0% 5 5 0   0% 2 0   0%
paintmaskanimator/color_chart.py ColorChartCanvas.keyReleaseEvent   0% 5 5 0   0% 2 0   0%
paintmaskanimator/color_chart.py ColorChartCanvas.clear_hold_keys   100% 4 0 0   100% 0 0   100%
paintmaskanimator/color_chart.py ColorChartCanvas._set_zoom   0% 16 16 0   0% 6 0   0%
paintmaskanimator/color_chart.py ColorChartCanvas.wheelEvent   0% 4 4 0   0% 2 0   0%
paintmaskanimator/color_chart.py ColorChartCanvas.mousePressEvent   0% 16 16 0   0% 6 0   0%
paintmaskanimator/color_chart.py ColorChartCanvas.mouseMoveEvent   0% 14 14 0   0% 6 0   0%
paintmaskanimator/color_chart.py ColorChartCanvas.mouseReleaseEvent   0% 26 26 0   0% 14 0   0%
paintmaskanimator/color_chart.py ColorChartCanvas.mouseDoubleClickEvent   0% 12 12 0   0% 6 0   0%
paintmaskanimator/color_chart.py ColorChartCanvas._begin_name_edit   0% 14 14 0   0% 4 0   0%
paintmaskanimator/color_chart.py ColorChartCanvas._finish_name_edit   0% 6 6 0   0% 2 0   0%
paintmaskanimator/color_chart.py ColorChartCanvas.dragEnterEvent   0% 4 4 0   0% 2 0   0%
paintmaskanimator/color_chart.py ColorChartCanvas.dragMoveEvent   0% 4 4 0   0% 2 0   0%
paintmaskanimator/color_chart.py ColorChartCanvas.dropEvent   0% 7 7 0   0% 2 0   0%
paintmaskanimator/color_chart.py ColorChartPanel.__init__   100% 63 0 0   100% 0 0   100%
paintmaskanimator/color_chart.py ColorChartPanel.set_chart   86% 7 1 0   50% 2 1   78%
paintmaskanimator/color_chart.py ColorChartPanel._refresh_tags   86% 14 2 0   67% 6 2   80%
paintmaskanimator/color_chart.py ColorChartPanel._move_color   0% 3 3 0   0% 2 0   0%
paintmaskanimator/color_chart.py ColorChartPanel._assign_tag   0% 3 3 0   0% 2 0   0%
paintmaskanimator/color_chart.py ColorChartPanel._choose_tile_tag   0% 19 19 0   0% 4 0   0%
paintmaskanimator/color_chart.py ColorChartPanel._rename_group   0% 5 5 0   0% 2 0   0%
paintmaskanimator/color_chart.py ColorChartPanel._set_tag_order   0% 3 3 0   100% 0 0   0%
paintmaskanimator/color_chart.py ColorChartPanel._add_tag   0% 13 13 0   0% 8 0   0%
paintmaskanimator/color_chart.py ColorChartPanel._edit_tag   0% 26 26 0   0% 18 0   0%
paintmaskanimator/color_chart.py ColorChartPanel._remove_tag   0% 15 15 0   0% 10 0   0%
paintmaskanimator/color_chart.py read_pmag   71% 7 2 0   50% 4 2   64%
paintmaskanimator/color_chart.py write_pmag   100% 2 0 0   100% 0 0   100%
paintmaskanimator/color_chart.py (no function)   100% 99 0 0   100% 0 0   100%
paintmaskanimator/color_ops.py _snap_overlay_to_exact_rgbs   47% 15 8 0   50% 4 2   47%
paintmaskanimator/color_ops.py image_alpha_statistics   86% 7 1 0   75% 4 1   82%
paintmaskanimator/color_ops.py binarize_alpha_for_pixel_art   93% 14 1 0   75% 4 1   89%
paintmaskanimator/color_ops.py opaque_rgb_color_count   82% 11 2 0   67% 6 2   76%
paintmaskanimator/color_ops.py detect_opaque_border_background   79% 29 6 0   61% 18 7   72%
paintmaskanimator/color_ops.py estimate_mixed_boundary_pixels   0% 15 15 0   0% 6 0   0%
paintmaskanimator/color_ops.py _surface_guided_palette_labels   100% 1 0 0   100% 0 0   100%
paintmaskanimator/color_ops.py _surface_guided_palette_labels_numpy   98% 62 1 0   93% 14 1   97%
paintmaskanimator/color_ops.py _line_palette_labels   0% 27 27 0   0% 4 0   0%
paintmaskanimator/color_ops.py tone_curve_samples   97% 34 1 0   83% 6 1   95%
paintmaskanimator/color_ops.py tone_curve_samples.endpoint_tangent   83% 6 1 0   75% 4 1   80%
paintmaskanimator/color_ops.py tone_curve_lut   100% 3 0 0   100% 0 0   100%
paintmaskanimator/color_ops.py apply_tone_curve   65% 17 6 0   62% 8 3   64%
paintmaskanimator/color_ops.py _hue_cluster_palette_from_samples   88% 49 6 0   78% 18 4   85%
paintmaskanimator/color_ops.py _palette_training_samples   61% 28 11 0   50% 12 4   58%
paintmaskanimator/color_ops.py build_color_reduction_palette   71% 48 14 0   62% 24 5   68%
paintmaskanimator/color_ops.py apply_color_reduction_palette   72% 25 7 0   50% 12 4   65%
paintmaskanimator/color_ops.py reference_frame_indices   100% 11 0 0   100% 6 0   100%
paintmaskanimator/color_ops.py (no function)   100% 24 0 0   100% 0 0   100%
paintmaskanimator/color_panel.py UsedColorPanel.__init__   100% 177 0 0   100% 2 0   100%
paintmaskanimator/color_panel.py UsedColorPanel.apply_theme   100% 1 0 0   100% 0 0   100%
paintmaskanimator/color_panel.py UsedColorPanel._rgb_key   100% 2 0 0   100% 0 0   100%
paintmaskanimator/color_panel.py UsedColorPanel._background_display_hex   100% 1 0 0   100% 0 0   100%
paintmaskanimator/color_panel.py UsedColorPanel.set_background_display_color   100% 6 0 0   75% 4 1   90%
paintmaskanimator/color_panel.py UsedColorPanel._text_color   100% 2 0 0   100% 0 0   100%
paintmaskanimator/color_panel.py UsedColorPanel._set_replacement_button_style   91% 11 1 0   75% 4 1   87%
paintmaskanimator/color_panel.py UsedColorPanel._toggle_replacement   0% 5 5 0   0% 4 0   0%
paintmaskanimator/color_panel.py UsedColorPanel._close_replacement_editor   100% 6 0 0   100% 2 0   100%
paintmaskanimator/color_panel.py UsedColorPanel._replacement_popup_destroyed   33% 3 2 0   50% 2 1   40%
paintmaskanimator/color_panel.py UsedColorPanel.open_replacement_editor   40% 5 3 0   50% 2 1   43%
paintmaskanimator/color_panel.py UsedColorPanel._toggle_replacement_editor   87% 31 4 0   50% 10 5   78%
paintmaskanimator/color_panel.py UsedColorPanel._request_replacement   0% 7 7 0   0% 4 0   0%
paintmaskanimator/color_panel.py UsedColorPanel.register_replacements   100% 9 0 0   100% 4 0   100%
paintmaskanimator/color_panel.py UsedColorPanel._set_replacement_color   71% 7 2 0   50% 4 2   64%
paintmaskanimator/color_panel.py UsedColorPanel._clear_replacement   67% 6 2 0   50% 4 2   60%
paintmaskanimator/color_panel.py UsedColorPanel.current_replacements   100% 1 0 0   100% 0 0   100%
paintmaskanimator/color_panel.py UsedColorPanel._show_replacement_set_menu   0% 9 9 0   0% 4 0   0%
paintmaskanimator/color_panel.py UsedColorPanel._emit_replacements   100% 2 0 0   100% 0 0   100%
paintmaskanimator/color_panel.py UsedColorPanel._unique_category_name   75% 8 2 0   50% 2 1   70%
paintmaskanimator/color_panel.py UsedColorPanel.help_text   0% 1 1 0   100% 0 0   0%
paintmaskanimator/color_panel.py UsedColorPanel.show_help   0% 6 6 0   100% 0 0   0%
paintmaskanimator/color_panel.py UsedColorPanel._prompt_create_category   0% 3 3 0   0% 2 0   0%
paintmaskanimator/color_panel.py UsedColorPanel.create_category   100% 10 0 0   100% 2 0   100%
paintmaskanimator/color_panel.py UsedColorPanel._ensure_category_header   100% 11 0 0   100% 2 0   100%
paintmaskanimator/color_panel.py UsedColorPanel._sync_category_headers   100% 8 0 0   100% 6 0   100%
paintmaskanimator/color_panel.py UsedColorPanel._category_members   100% 2 0 0   100% 0 0   100%
paintmaskanimator/color_panel.py UsedColorPanel._refresh_category_headers   88% 8 1 0   75% 4 1   83%
paintmaskanimator/color_panel.py UsedColorPanel._set_category_collapsed   75% 4 1 0   50% 2 1   67%
paintmaskanimator/color_panel.py UsedColorPanel._set_category_visibility   80% 10 2 0   75% 4 1   79%
paintmaskanimator/color_panel.py UsedColorPanel._move_colors_to_category   88% 17 2 0   62% 8 3   80%
paintmaskanimator/color_panel.py UsedColorPanel._move_colors_to_uncategorized   100% 6 0 0   100% 2 0   100%
paintmaskanimator/color_panel.py UsedColorPanel._show_category_context_menu   0% 13 13 0   0% 8 0   0%
paintmaskanimator/color_panel.py UsedColorPanel.rename_category   0% 20 20 0   0% 10 0   0%
paintmaskanimator/color_panel.py UsedColorPanel.delete_category   0% 15 15 0   0% 10 0   0%
paintmaskanimator/color_panel.py UsedColorPanel.clear_categories   75% 8 2 0   50% 2 1   70%
paintmaskanimator/color_panel.py UsedColorPanel.serialize_categories   100% 1 0 0   100% 0 0   100%
paintmaskanimator/color_panel.py UsedColorPanel.remap_saved_color_metadata   82% 17 3 0   25% 4 1   71%
paintmaskanimator/color_panel.py UsedColorPanel.remap_saved_color_metadata.rgb3   100% 1 0 0   100% 0 0   100%
paintmaskanimator/color_panel.py UsedColorPanel.remap_saved_color_metadata.remap   100% 2 0 0   100% 0 0   100%
paintmaskanimator/color_panel.py UsedColorPanel.restore_categories   88% 32 4 0   64% 22 8   78%
paintmaskanimator/color_panel.py UsedColorPanel._group_line_color   100% 6 0 0   100% 4 0   100%
paintmaskanimator/color_panel.py UsedColorPanel._apply_swatch_text   91% 11 1 0   75% 4 1   87%
paintmaskanimator/color_panel.py UsedColorPanel._set_source_button_style   96% 24 1 0   83% 12 2   92%
paintmaskanimator/color_panel.py UsedColorPanel._on_swatch_hover   0% 8 8 0   0% 6 0   0%
paintmaskanimator/color_panel.py UsedColorPanel._clear_rows   0% 13 13 0   0% 4 0   0%
paintmaskanimator/color_panel.py UsedColorPanel._remove_color_row   0% 13 13 0   0% 4 0   0%
paintmaskanimator/color_panel.py UsedColorPanel._make_source_wrapper   100% 17 0 0   100% 4 0   100%
paintmaskanimator/color_panel.py UsedColorPanel._append_color_row   100% 87 0 0   92% 12 1   99%
paintmaskanimator/color_panel.py UsedColorPanel._normalized_colors   100% 9 0 0   75% 4 1   92%
paintmaskanimator/color_panel.py UsedColorPanel.set_colors   82% 57 10 0   62% 24 5   77%
paintmaskanimator/color_panel.py UsedColorPanel.add_color   93% 14 1 0   75% 4 1   89%
paintmaskanimator/color_panel.py UsedColorPanel._refresh_used_color_styles   100% 4 0 0   75% 4 1   88%
paintmaskanimator/color_panel.py UsedColorPanel._set_used_color_parent   0% 8 8 0   0% 2 0   0%
paintmaskanimator/color_panel.py UsedColorPanel._show_used_color_context_menu   0% 86 86 0   0% 44 0   0%
paintmaskanimator/color_panel.py (no function)   100% 91 0 0   100% 0 0   100%
paintmaskanimator/color_panel_grouping.py ColorGroupingMixin._color_index   75% 4 1 0   75% 4 1   75%
paintmaskanimator/color_panel_grouping.py ColorGroupingMixin._group_root   100% 6 0 0   100% 2 0   100%
paintmaskanimator/color_panel_grouping.py ColorGroupingMixin._drop_group_links_for   0% 5 5 0   0% 2 0   0%
paintmaskanimator/color_panel_grouping.py ColorGroupingMixin._handle_color_drop   97% 30 1 0   94% 18 1   96%
paintmaskanimator/color_panel_grouping.py ColorGroupingMixin._make_child_of   65% 17 6 0   38% 8 3   56%
paintmaskanimator/color_panel_grouping.py ColorGroupingMixin._normalize_groups   78% 9 2 0   67% 6 2   73%
paintmaskanimator/color_panel_grouping.py ColorGroupingMixin._reorder_color   77% 13 3 0   67% 6 2   74%
paintmaskanimator/color_panel_grouping.py ColorGroupingMixin._reorder_color_block   81% 16 3 0   62% 8 3   75%
paintmaskanimator/color_panel_grouping.py ColorGroupingMixin._reorder_parent_group   90% 21 2 0   67% 6 2   85%
paintmaskanimator/color_panel_grouping.py ColorGroupingMixin._drop_group_links_outside_parent_blocks   0% 17 17 0   0% 8 0   0%
paintmaskanimator/color_panel_grouping.py ColorGroupingMixin._reorder_children_under_parents   95% 20 1 0   93% 14 1   94%
paintmaskanimator/color_panel_grouping.py ColorGroupingMixin._reapply_row_order   92% 38 3 0   83% 18 3   89%
paintmaskanimator/color_panel_grouping.py ColorGroupingMixin._reapply_row_order.set_category_member_visual   100% 10 0 0   75% 4 1   93%
paintmaskanimator/color_panel_grouping.py ColorGroupingMixin._refresh_all_group_displays   100% 2 0 0   100% 2 0   100%
paintmaskanimator/color_panel_grouping.py ColorGroupingMixin._refresh_group_display   95% 21 1 0   58% 12 5   82%
paintmaskanimator/color_panel_grouping.py ColorGroupingMixin._group_mapping   100% 1 0 0   100% 0 0   100%
paintmaskanimator/color_panel_grouping.py ColorGroupingMixin._emit_preview   100% 1 0 0   100% 0 0   100%
paintmaskanimator/color_panel_grouping.py ColorGroupingMixin._clear_groups   0% 6 6 0   0% 2 0   0%
paintmaskanimator/color_panel_grouping.py ColorGroupingMixin._retain_parent_selection   0% 5 5 0   0% 2 0   0%
paintmaskanimator/color_panel_grouping.py ColorGroupingMixin._mergeable_selection   100% 1 0 0   100% 0 0   100%
paintmaskanimator/color_panel_grouping.py ColorGroupingMixin._refresh_merge_button   100% 1 0 0   100% 0 0   100%
paintmaskanimator/color_panel_grouping.py ColorGroupingMixin._emit_merge   33% 6 4 0   25% 4 1   30%
paintmaskanimator/color_panel_grouping.py ColorGroupingMixin._merge_selected_into   80% 5 1 0   50% 2 1   71%
paintmaskanimator/color_panel_grouping.py (no function)   100% 29 0 0   100% 0 0   100%
paintmaskanimator/color_panel_history.py ColorPanelHistoryMixin.capture_history_state   100% 1 0 0   100% 0 0   100%
paintmaskanimator/color_panel_history.py ColorPanelHistoryMixin._history_significant   100% 1 0 0   100% 0 0   100%
paintmaskanimator/color_panel_history.py ColorPanelHistoryMixin.restore_history_state   94% 47 3 0   78% 18 4   89%
paintmaskanimator/color_panel_history.py ColorPanelHistoryMixin._record_history   67% 6 2 0   50% 4 2   60%
paintmaskanimator/color_panel_history.py ColorPanelHistoryMixin._history_edit   67% 6 2 0   50% 2 1   62%
paintmaskanimator/color_panel_history.py (no function)   100% 12 0 0   100% 0 0   100%
paintmaskanimator/color_panel_mask.py MaskColorsMixin.all_masks_enabled   100% 2 0 0   100% 0 0   100%
paintmaskanimator/color_panel_mask.py MaskColorsMixin._emit_mask_state   100% 2 0 0   100% 0 0   100%
paintmaskanimator/color_panel_mask.py MaskColorsMixin._set_mask_color   0% 11 11 0   0% 6 0   0%
paintmaskanimator/color_panel_mask.py MaskColorsMixin._set_mask_checkbox_without_signal   40% 5 3 0   50% 2 1   43%
paintmaskanimator/color_panel_mask.py MaskColorsMixin._set_all_masks_on   0% 5 5 0   0% 2 0   0%
paintmaskanimator/color_panel_mask.py MaskColorsMixin._clear_mask_colors   0% 5 5 0   0% 2 0   0%
paintmaskanimator/color_panel_mask.py MaskColorsMixin._isolate_mask_color   0% 5 5 0   0% 2 0   0%
paintmaskanimator/color_panel_mask.py MaskColorsMixin._disable_other_masks   0% 5 5 0   0% 2 0   0%
paintmaskanimator/color_panel_mask.py MaskColorsMixin._set_single_mask_state   0% 6 6 0   0% 2 0   0%
paintmaskanimator/color_panel_mask.py MaskColorsMixin._begin_mask_sweep   0% 10 10 0   0% 2 0   0%
paintmaskanimator/color_panel_mask.py MaskColorsMixin._mask_checkbox_rgb_at_global   0% 6 6 0   0% 4 0   0%
paintmaskanimator/color_panel_mask.py MaskColorsMixin._move_mask_sweep   0% 12 12 0   0% 6 0   0%
paintmaskanimator/color_panel_mask.py MaskColorsMixin._end_mask_sweep   0% 9 9 0   0% 4 0   0%
paintmaskanimator/color_panel_mask.py MaskColorsMixin._show_mask_context_menu   0% 15 15 0   0% 8 0   0%
paintmaskanimator/color_panel_mask.py (no function)   100% 21 0 0   100% 0 0   100%
paintmaskanimator/color_panel_selection.py ColorSelectionMixin.selected_rgb_set   0% 1 1 0   100% 0 0   0%
paintmaskanimator/color_panel_selection.py ColorSelectionMixin.select_matching_color   29% 17 12 0   17% 6 1   26%
paintmaskanimator/color_panel_selection.py ColorSelectionMixin._sync_selection_check   89% 9 1 0   75% 4 1   85%
paintmaskanimator/color_panel_selection.py ColorSelectionMixin._ordered_non_background_rgbs   0% 1 1 0   100% 0 0   0%
paintmaskanimator/color_panel_selection.py ColorSelectionMixin._select_used_color   45% 22 12 0   50% 8 2   47%
paintmaskanimator/color_panel_selection.py ColorSelectionMixin._select_single_used_color   88% 8 1 0   50% 2 1   80%
paintmaskanimator/color_panel_selection.py ColorSelectionMixin._apply_selection_state   0% 12 12 0   0% 6 0   0%
paintmaskanimator/color_panel_selection.py ColorSelectionMixin._on_selection_check_toggled   0% 7 7 0   0% 4 0   0%
paintmaskanimator/color_panel_selection.py ColorSelectionMixin._selection_check_rgb_at_global   0% 6 6 0   0% 4 0   0%
paintmaskanimator/color_panel_selection.py ColorSelectionMixin._begin_selection_sweep   0% 5 5 0   100% 0 0   0%
paintmaskanimator/color_panel_selection.py ColorSelectionMixin._move_selection_sweep   0% 7 7 0   0% 4 0   0%
paintmaskanimator/color_panel_selection.py ColorSelectionMixin._end_selection_sweep   0% 7 7 0   0% 4 0   0%
paintmaskanimator/color_panel_selection.py ColorSelectionMixin._toggle_used_color_selection   82% 11 2 0   67% 6 2   76%
paintmaskanimator/color_panel_selection.py ColorSelectionMixin._clear_used_color_selection   88% 8 1 0   50% 2 1   80%
paintmaskanimator/color_panel_selection.py (no function)   100% 21 0 0   100% 0 0   100%
paintmaskanimator/color_panel_visibility.py ColorVisibilityMixin.enabled_rgb_set   100% 2 0 0   100% 0 0   100%
paintmaskanimator/color_panel_visibility.py ColorVisibilityMixin._show_all_colors   0% 6 6 0   0% 2 0   0%
paintmaskanimator/color_panel_visibility.py ColorVisibilityMixin._set_visibility_state   0% 5 5 0   100% 0 0   0%
paintmaskanimator/color_panel_visibility.py ColorVisibilityMixin._disable_other_visible_colors   0% 6 6 0   0% 2 0   0%
paintmaskanimator/color_panel_visibility.py ColorVisibilityMixin._show_visibility_context_menu   0% 15 15 0   0% 8 0   0%
paintmaskanimator/color_panel_visibility.py ColorVisibilityMixin._set_checkbox_without_signal   100% 6 0 0   100% 2 0   100%
paintmaskanimator/color_panel_visibility.py ColorVisibilityMixin._isolate_visible_color   0% 12 12 0   0% 6 0   0%
paintmaskanimator/color_panel_visibility.py ColorVisibilityMixin._begin_visibility_sweep   0% 9 9 0   100% 0 0   0%
paintmaskanimator/color_panel_visibility.py ColorVisibilityMixin._checkbox_rgb_at_global   0% 4 4 0   0% 4 0   0%
paintmaskanimator/color_panel_visibility.py ColorVisibilityMixin._move_visibility_sweep   0% 9 9 0   0% 4 0   0%
paintmaskanimator/color_panel_visibility.py ColorVisibilityMixin._end_visibility_sweep   0% 9 9 0   0% 4 0   0%
paintmaskanimator/color_panel_visibility.py ColorVisibilityMixin._set_color_visible   86% 7 1 0   50% 2 1   78%
paintmaskanimator/color_panel_visibility.py (no function)   100% 18 0 0   100% 0 0   100%
paintmaskanimator/color_panel_widgets.py ColorCategoryHeader.__init__   100% 25 0 0   100% 0 0   100%
paintmaskanimator/color_panel_widgets.py ColorCategoryHeader.name   0% 1 1 0   100% 0 0   0%
paintmaskanimator/color_panel_widgets.py ColorCategoryHeader.setName   100% 2 0 0   100% 0 0   100%
paintmaskanimator/color_panel_widgets.py ColorCategoryHeader.setCollapsed   100% 4 0 0   100% 0 0   100%
paintmaskanimator/color_panel_widgets.py ColorCategoryHeader._sync_collapse_text   100% 2 0 0   100% 0 0   100%
paintmaskanimator/color_panel_widgets.py ColorCategoryHeader._on_collapsed   0% 2 2 0   100% 0 0   0%
paintmaskanimator/color_panel_widgets.py ColorCategoryHeader.setVisibilityState   89% 9 1 0   75% 4 1   85%
paintmaskanimator/color_panel_widgets.py ColorCategoryHeader._payload_rgb   0% 6 6 0   0% 4 0   0%
paintmaskanimator/color_panel_widgets.py ColorCategoryHeader.dragEnterEvent   0% 6 6 0   0% 2 0   0%
paintmaskanimator/color_panel_widgets.py ColorCategoryHeader.dragLeaveEvent   0% 3 3 0   100% 0 0   0%
paintmaskanimator/color_panel_widgets.py ColorCategoryHeader.dropEvent   0% 8 8 0   0% 2 0   0%
paintmaskanimator/color_panel_widgets.py ColorCategoryHeader.paintEvent   0% 6 6 0   0% 2 0   0%
paintmaskanimator/color_panel_widgets.py ColorCategoryHeader.contextMenuEvent   0% 2 2 0   100% 0 0   0%
paintmaskanimator/color_panel_widgets.py _draw_eye_icon   100% 3 0 0   100% 0 0   100%
paintmaskanimator/color_panel_widgets.py SourceColorButton.__init__   100% 5 0 0   100% 0 0   100%
paintmaskanimator/color_panel_widgets.py SourceColorButton.mousePressEvent   0% 6 6 0   0% 2 0   0%
paintmaskanimator/color_panel_widgets.py SourceColorButton.mouseMoveEvent   0% 9 9 0   0% 4 0   0%
paintmaskanimator/color_panel_widgets.py SourceColorButton.mouseReleaseEvent   0% 10 10 0   0% 2 0   0%
paintmaskanimator/color_panel_widgets.py SourceColorButton.contextMenuEvent   0% 2 2 0   100% 0 0   0%
paintmaskanimator/color_panel_widgets.py ScreenEyedropButton.__init__   100% 6 0 0   100% 0 0   100%
paintmaskanimator/color_panel_widgets.py ScreenEyedropButton._request_color_editor   100% 1 0 0   100% 0 0   100%
paintmaskanimator/color_panel_widgets.py ScreenEyedropButton._screen_picker_closed   0% 3 3 0   0% 2 0   0%
paintmaskanimator/color_panel_widgets.py ScreenEyedropButton._global_color_picked   0% 2 2 0   100% 0 0   0%
paintmaskanimator/color_panel_widgets.py ScreenEyedropButton._begin_global_screen_pick   0% 11 11 0   0% 2 0   0%
paintmaskanimator/color_panel_widgets.py ScreenEyedropButton._begin_global_screen_pick.start_after_activation_release   0% 2 2 0   0% 2 0   0%
paintmaskanimator/color_panel_widgets.py ScreenEyedropButton.mousePressEvent   100% 6 0 0   100% 2 0   100%
paintmaskanimator/color_panel_widgets.py ScreenEyedropButton.mouseMoveEvent   69% 13 4 0   50% 6 3   63%
paintmaskanimator/color_panel_widgets.py ScreenEyedropButton.mouseReleaseEvent   100% 11 0 0   100% 4 0   100%
paintmaskanimator/color_panel_widgets.py ScreenEyedropButton.hideEvent   56% 9 4 0   50% 4 2   54%
paintmaskanimator/color_panel_widgets.py ReplacementColorPopup.__init__   100% 6 0 0   50% 2 1   88%
paintmaskanimator/color_panel_widgets.py ColorVisibilityCheckBox.__init__   100% 6 0 0   100% 0 0   100%
paintmaskanimator/color_panel_widgets.py ColorVisibilityCheckBox.paintEvent   100% 5 0 0   100% 0 0   100%
paintmaskanimator/color_panel_widgets.py ColorVisibilityCheckBox.mousePressEvent   0% 16 16 0   0% 4 0   0%
paintmaskanimator/color_panel_widgets.py ColorVisibilityCheckBox.mouseMoveEvent   0% 5 5 0   0% 2 0   0%
paintmaskanimator/color_panel_widgets.py ColorVisibilityCheckBox.mouseReleaseEvent   0% 14 14 0   0% 4 0   0%
paintmaskanimator/color_panel_widgets.py MaskColorCheckBox.__init__   100% 7 0 0   100% 0 0   100%
paintmaskanimator/color_panel_widgets.py MaskColorCheckBox.paintEvent   80% 15 3 0   50% 2 1   76%
paintmaskanimator/color_panel_widgets.py MaskColorCheckBox.nextCheckState   0% 2 2 0   100% 0 0   0%
paintmaskanimator/color_panel_widgets.py MaskColorCheckBox.mousePressEvent   0% 16 16 0   0% 4 0   0%
paintmaskanimator/color_panel_widgets.py MaskColorCheckBox.mouseMoveEvent   0% 5 5 0   0% 2 0   0%
paintmaskanimator/color_panel_widgets.py MaskColorCheckBox.mouseReleaseEvent   0% 14 14 0   0% 4 0   0%
paintmaskanimator/color_panel_widgets.py _draw_check_glyph   48% 27 14 0   50% 2 1   48%
paintmaskanimator/color_panel_widgets.py ColorSelectionCheckBox.__init__   100% 6 0 0   100% 0 0   100%
paintmaskanimator/color_panel_widgets.py ColorSelectionCheckBox.paintEvent   100% 4 0 0   100% 0 0   100%
paintmaskanimator/color_panel_widgets.py ColorSelectionCheckBox.mousePressEvent   0% 16 16 0   0% 4 0   0%
paintmaskanimator/color_panel_widgets.py ColorSelectionCheckBox.mouseMoveEvent   0% 5 5 0   0% 2 0   0%
paintmaskanimator/color_panel_widgets.py ColorSelectionCheckBox.mouseReleaseEvent   0% 14 14 0   0% 4 0   0%
paintmaskanimator/color_panel_widgets.py CheckClickArea.__init__   100% 11 0 0   100% 0 0   100%
paintmaskanimator/color_panel_widgets.py CheckClickArea.mousePressEvent   0% 15 15 0   0% 8 0   0%
paintmaskanimator/color_panel_widgets.py CheckClickArea.mouseMoveEvent   0% 5 5 0   0% 2 0   0%
paintmaskanimator/color_panel_widgets.py CheckClickArea.mouseReleaseEvent   0% 10 10 0   0% 2 0   0%
paintmaskanimator/color_panel_widgets.py ColorSelectionArea.__init__   100% 12 0 0   100% 0 0   100%
paintmaskanimator/color_panel_widgets.py ColorSelectionArea.setColorKey   100% 2 0 0   100% 0 0   100%
paintmaskanimator/color_panel_widgets.py ColorSelectionArea._mode_for_pos   0% 7 7 0   0% 4 0   0%
paintmaskanimator/color_panel_widgets.py ColorSelectionArea.setSelected   100% 6 0 0   100% 2 0   100%
paintmaskanimator/color_panel_widgets.py ColorSelectionArea.setGroupLine   100% 6 0 0   100% 2 0   100%
paintmaskanimator/color_panel_widgets.py ColorSelectionArea.enterEvent   0% 2 2 0   100% 0 0   0%
paintmaskanimator/color_panel_widgets.py ColorSelectionArea.leaveEvent   0% 2 2 0   100% 0 0   0%
paintmaskanimator/color_panel_widgets.py ColorSelectionArea.paintEvent   28% 32 23 0   50% 8 4   32%
paintmaskanimator/color_panel_widgets.py ColorSelectionArea.mousePressEvent   0% 11 11 0   0% 4 0   0%
paintmaskanimator/color_panel_widgets.py ColorSelectionArea.mouseMoveEvent   0% 7 7 0   0% 4 0   0%
paintmaskanimator/color_panel_widgets.py ColorSelectionArea._start_reorder_drag   0% 33 33 0   0% 2 0   0%
paintmaskanimator/color_panel_widgets.py ColorSelectionArea.mouseReleaseEvent   0% 9 9 0   0% 4 0   0%
paintmaskanimator/color_panel_widgets.py ColorSelectionArea._payload_rgb   0% 6 6 0   0% 4 0   0%
paintmaskanimator/color_panel_widgets.py ColorSelectionArea._accepts   0% 2 2 0   100% 0 0   0%
paintmaskanimator/color_panel_widgets.py ColorSelectionArea.dragEnterEvent   0% 6 6 0   0% 2 0   0%
paintmaskanimator/color_panel_widgets.py ColorSelectionArea.dragMoveEvent   0% 8 8 0   0% 4 0   0%
paintmaskanimator/color_panel_widgets.py ColorSelectionArea.dragLeaveEvent   0% 3 3 0   0% 2 0   0%
paintmaskanimator/color_panel_widgets.py ColorSelectionArea.dropEvent   0% 8 8 0   0% 2 0   0%
paintmaskanimator/color_panel_widgets.py ColorSelectionArea.contextMenuEvent   0% 2 2 0   100% 0 0   0%
paintmaskanimator/color_panel_widgets.py (no function)   100% 117 0 0   100% 0 0   100%
paintmaskanimator/color_picker_dialog.py _clamp   100% 1 0 0   100% 0 0   100%
paintmaskanimator/color_picker_dialog.py _hsv_of   100% 1 0 0   100% 0 0   100%
paintmaskanimator/color_picker_dialog.py _SaturationValueField.__init__   100% 8 0 0   100% 0 0   100%
paintmaskanimator/color_picker_dialog.py _SaturationValueField.set_hsv   100% 2 0 0   100% 0 0   100%
paintmaskanimator/color_picker_dialog.py _SaturationValueField._field_image   94% 17 1 0   50% 2 1   89%
paintmaskanimator/color_picker_dialog.py _SaturationValueField.paintEvent   100% 8 0 0   100% 0 0   100%
paintmaskanimator/color_picker_dialog.py _SaturationValueField._emit_at   100% 5 0 0   100% 0 0   100%
paintmaskanimator/color_picker_dialog.py _SaturationValueField.mousePressEvent   100% 2 0 0   50% 2 1   75%
paintmaskanimator/color_picker_dialog.py _SaturationValueField.mouseMoveEvent   0% 2 2 0   0% 2 0   0%
paintmaskanimator/color_picker_dialog.py _HueStrip.__init__   100% 4 0 0   100% 0 0   100%
paintmaskanimator/color_picker_dialog.py _HueStrip.set_hue   100% 2 0 0   100% 0 0   100%
paintmaskanimator/color_picker_dialog.py _HueStrip._bar_rect   100% 1 0 0   100% 0 0   100%
paintmaskanimator/color_picker_dialog.py _HueStrip.paintEvent   100% 13 0 0   100% 4 0   100%
paintmaskanimator/color_picker_dialog.py _HueStrip._emit_at   100% 4 0 0   100% 0 0   100%
paintmaskanimator/color_picker_dialog.py _HueStrip.mousePressEvent   100% 2 0 0   50% 2 1   75%
paintmaskanimator/color_picker_dialog.py _HueStrip.mouseMoveEvent   0% 2 2 0   0% 2 0   0%
paintmaskanimator/color_picker_dialog.py _Swatch.__init__   100% 3 0 0   100% 0 0   100%
paintmaskanimator/color_picker_dialog.py _Swatch.set_color   100% 1 0 0   100% 0 0   100%
paintmaskanimator/color_picker_dialog.py ColorPickerDialog.__init__   99% 90 1 0   90% 10 1   98%
paintmaskanimator/color_picker_dialog.py ColorPickerDialog.get_color   100% 5 0 0   100% 0 0   100%
paintmaskanimator/color_picker_dialog.py ColorPickerDialog.color   100% 3 0 0   100% 2 0   100%
paintmaskanimator/color_picker_dialog.py ColorPickerDialog.original_color   0% 1 1 0   100% 0 0   0%
paintmaskanimator/color_picker_dialog.py ColorPickerDialog.set_color   89% 9 1 0   50% 4 2   77%
paintmaskanimator/color_picker_dialog.py ColorPickerDialog._spin   100% 7 0 0   100% 0 0   100%
paintmaskanimator/color_picker_dialog.py ColorPickerDialog._field_changed   100% 3 0 0   100% 0 0   100%
paintmaskanimator/color_picker_dialog.py ColorPickerDialog._hue_changed   100% 3 0 0   100% 0 0   100%
paintmaskanimator/color_picker_dialog.py ColorPickerDialog._hsb_edited   100% 7 0 0   100% 2 0   100%
paintmaskanimator/color_picker_dialog.py ColorPickerDialog._rgb_edited   100% 9 0 0   75% 4 1   92%
paintmaskanimator/color_picker_dialog.py ColorPickerDialog._hex_edited   71% 7 2 0   50% 4 2   64%
paintmaskanimator/color_picker_dialog.py ColorPickerDialog._changed   100% 4 0 0   100% 2 0   100%
paintmaskanimator/color_picker_dialog.py ColorPickerDialog._apply_preview   75% 4 1 0   50% 2 1   67%
paintmaskanimator/color_picker_dialog.py ColorPickerDialog._preview_toggled   50% 6 3 0   50% 6 3   50%
paintmaskanimator/color_picker_dialog.py ColorPickerDialog.accept   100% 3 0 0   50% 2 1   80%
paintmaskanimator/color_picker_dialog.py ColorPickerDialog._sync_widgets   100% 16 0 0   100% 4 0   100%
paintmaskanimator/color_picker_dialog.py ColorPickerDialog._begin_screen_pick   88% 8 1 0   50% 2 1   80%
paintmaskanimator/color_picker_dialog.py ColorPickerDialog._screen_color_picked   100% 2 0 0   100% 0 0   100%
paintmaskanimator/color_picker_dialog.py ColorPickerDialog._screen_pick_finished   100% 3 0 0   100% 0 0   100%
paintmaskanimator/color_picker_dialog.py ColorPickerDialog.done   100% 5 0 0   100% 2 0   100%
paintmaskanimator/color_picker_dialog.py ColorPickerDialog.reject   71% 7 2 0   75% 4 1   73%
paintmaskanimator/color_picker_dialog.py (no function)   100% 54 0 0   100% 0 0   100%
paintmaskanimator/color_reduction.py ToneCurveWidget.__init__   0% 8 8 0   100% 0 0   0%
paintmaskanimator/color_reduction.py ToneCurveWidget.points   0% 1 1 0   100% 0 0   0%
paintmaskanimator/color_reduction.py ToneCurveWidget.setPoints   0% 7 7 0   0% 2 0   0%
paintmaskanimator/color_reduction.py ToneCurveWidget.resetCurve   0% 1 1 0   100% 0 0   0%
paintmaskanimator/color_reduction.py ToneCurveWidget._normalized_points   0% 29 29 0   0% 12 0   0%
paintmaskanimator/color_reduction.py ToneCurveWidget._graph_rect   0% 1 1 0   100% 0 0   0%
paintmaskanimator/color_reduction.py ToneCurveWidget._point_to_widget   0% 2 2 0   100% 0 0   0%
paintmaskanimator/color_reduction.py ToneCurveWidget._widget_to_point   0% 4 4 0   100% 0 0   0%
paintmaskanimator/color_reduction.py ToneCurveWidget._nearest_point_index   0% 10 10 0   0% 4 0   0%
paintmaskanimator/color_reduction.py ToneCurveWidget._emit_curve   0% 2 2 0   100% 0 0   0%
paintmaskanimator/color_reduction.py ToneCurveWidget._move_active_point   0% 13 13 0   0% 6 0   0%
paintmaskanimator/color_reduction.py ToneCurveWidget.mousePressEvent   0% 22 22 0   0% 8 0   0%
paintmaskanimator/color_reduction.py ToneCurveWidget.mouseMoveEvent   0% 5 5 0   0% 2 0   0%
paintmaskanimator/color_reduction.py ToneCurveWidget.mouseReleaseEvent   0% 7 7 0   0% 2 0   0%
paintmaskanimator/color_reduction.py ToneCurveWidget.mouseDoubleClickEvent   0% 5 5 0   0% 2 0   0%
paintmaskanimator/color_reduction.py ToneCurveWidget.paintEvent   0% 28 28 0   0% 8 0   0%
paintmaskanimator/color_reduction.py ColorReductionDialog.__init__   0% 131 131 0   100% 0 0   0%
paintmaskanimator/color_reduction.py ColorReductionDialog.tone_curve_points   0% 1 1 0   100% 0 0   0%
paintmaskanimator/color_reduction.py ColorReductionDialog.tone_curve_points_key   0% 10 10 0   0% 4 0   0%
paintmaskanimator/color_reduction.py ColorReductionDialog._tone_curve_changed   0% 6 6 0   0% 2 0   0%
paintmaskanimator/color_reduction.py ColorReductionDialog._current_preview_key   0% 1 1 0   100% 0 0   0%
paintmaskanimator/color_reduction.py ColorReductionDialog._mark_preview_dirty   0% 9 9 0   0% 4 0   0%
paintmaskanimator/color_reduction.py ColorReductionDialog._tone_curve_drag_started   0% 2 2 0   100% 0 0   0%
paintmaskanimator/color_reduction.py ColorReductionDialog._tone_curve_drag_finished   0% 3 3 0   100% 0 0   0%
paintmaskanimator/color_reduction.py ColorReductionDialog._prepare_tone_preview_source   0% 9 9 0   0% 4 0   0%
paintmaskanimator/color_reduction.py ColorReductionDialog._show_tone_curve_live_preview   0% 22 22 0   0% 8 0   0%
paintmaskanimator/color_reduction.py ColorReductionDialog._restore_confirmed_preview   0% 9 9 0   0% 4 0   0%
paintmaskanimator/color_reduction.py ColorReductionDialog._confirm_preview_settings   0% 6 6 0   0% 2 0   0%
paintmaskanimator/color_reduction.py ColorReductionDialog.alpha_threshold_255   0% 1 1 0   100% 0 0   0%
paintmaskanimator/color_reduction.py ColorReductionDialog._build_preview_column   0% 22 22 0   100% 0 0   0%
paintmaskanimator/color_reduction.py ColorReductionDialog._install_preview_event_filters   0% 2 2 0   0% 2 0   0%
paintmaskanimator/color_reduction.py ColorReductionDialog._preview_event_widgets   0% 12 12 0   0% 10 0   0%
paintmaskanimator/color_reduction.py ColorReductionDialog._connect_preview_scrolls   0% 4 4 0   0% 4 0   0%
paintmaskanimator/color_reduction.py ColorReductionDialog._sync_preview_scroll   0% 12 12 0   0% 8 0   0%
paintmaskanimator/color_reduction.py ColorReductionDialog._center_preview_position   0% 7 7 0   0% 2 0   0%
paintmaskanimator/color_reduction.py ColorReductionDialog.eventFilter   0% 37 37 0   0% 12 0   0%
paintmaskanimator/color_reduction.py ColorReductionDialog._refresh_preview_pixmaps   0% 5 5 0   100% 0 0   0%
paintmaskanimator/color_reduction.py ColorReductionDialog._refresh_preview_pixmaps.set_image   0% 2 2 0   100% 0 0   0%
paintmaskanimator/color_reduction.py ColorReductionDialog._create_color_progress   0% 12 12 0   100% 0 0   0%
paintmaskanimator/color_reduction.py ColorReductionDialog._update_color_progress   0% 5 5 0   0% 2 0   0%
paintmaskanimator/color_reduction.py ColorReductionDialog._close_color_progress   0% 6 6 0   0% 2 0   0%
paintmaskanimator/color_reduction.py ColorReductionDialog._trim_color_preview_cache   0% 5 5 0   0% 2 0   0%
paintmaskanimator/color_reduction.py ColorReductionDialog._update_preview   0% 75 75 0   0% 10 0   0%
paintmaskanimator/color_reduction.py ColorReductionDialog.selected_palette   0% 4 4 0   0% 2 0   0%
paintmaskanimator/color_reduction.py ColorReductionDialog.selected_extraction_mode   0% 1 1 0   100% 0 0   0%
paintmaskanimator/color_reduction.py ColorReductionDialog._accept_reduction   0% 11 11 0   0% 2 0   0%
paintmaskanimator/color_reduction.py ColorReductionDialog._accept_without_reduction   0% 2 2 0   100% 0 0   0%
paintmaskanimator/color_reduction.py (no function)   100% 64 0 0   100% 0 0   100%
paintmaskanimator/colors.py is_pseudo_transparent_color   100% 2 0 0   100% 0 0   100%
paintmaskanimator/colors.py paint_rgb_palette   81% 16 3 0   88% 8 1   83%
paintmaskanimator/colors.py local_color_variation   100% 11 0 0   50% 4 2   87%
paintmaskanimator/colors.py median_cut_palette_from_samples   93% 45 3 0   81% 16 3   90%
paintmaskanimator/colors.py normalize_tone_curve_points   81% 21 4 0   100% 6 0   85%
paintmaskanimator/colors.py rgb_hsv_features   100% 17 0 0   100% 0 0   100%
paintmaskanimator/colors.py priority_palette_colors_from_samples   100% 52 0 0   100% 10 0   100%
paintmaskanimator/colors.py (no function)   100% 11 0 0   100% 0 0   100%
paintmaskanimator/config.py config_dir   100% 1 0 0   100% 0 0   100%
paintmaskanimator/config.py config_path   100% 1 0 0   100% 0 0   100%
paintmaskanimator/config.py _config_paths   93% 14 1 0   83% 6 1   90%
paintmaskanimator/config.py _now   100% 1 0 0   100% 0 0   100%
paintmaskanimator/config.py _cached_config   90% 21 2 0   100% 4 0   92%
paintmaskanimator/config.py load_config   100% 1 0 0   100% 0 0   100%
paintmaskanimator/config.py save_config   80% 10 2 0   100% 0 0   80%
paintmaskanimator/config.py get_value   100% 4 0 0   100% 2 0   100%
paintmaskanimator/config.py set_value   100% 6 0 0   100% 2 0   100%
paintmaskanimator/config.py (no function)   100% 20 0 0   100% 0 0   100%
paintmaskanimator/constants.py _application_version   45% 11 6 0   50% 2 1   46%
paintmaskanimator/constants.py (no function)   95% 38 2 0   100% 0 0   95%
paintmaskanimator/cut_folder.py Token.is_field   100% 1 0 0   100% 0 0   100%
paintmaskanimator/cut_folder.py Token.to_json   83% 12 2 0   80% 10 2   82%
paintmaskanimator/cut_folder.py Token.from_json   88% 8 1 0   75% 4 1   83%
paintmaskanimator/cut_folder.py text   100% 1 0 0   100% 0 0   100%
paintmaskanimator/cut_folder.py block   100% 1 0 0   100% 0 0   100%
paintmaskanimator/cut_folder.py explode   100% 6 0 0   100% 4 0   100%
paintmaskanimator/cut_folder.py compact   100% 7 0 0   83% 6 1   92%
paintmaskanimator/cut_folder.py template_to_json   100% 1 0 0   100% 0 0   100%
paintmaskanimator/cut_folder.py template_from_json   100% 1 0 0   100% 0 0   100%
paintmaskanimator/cut_folder.py format_field   90% 10 1 0   88% 8 1   89%
paintmaskanimator/cut_folder.py render   100% 6 0 0   100% 4 0   100%
paintmaskanimator/cut_folder.py fields_in   100% 1 0 0   100% 0 0   100%
paintmaskanimator/cut_folder.py to_regex   100% 13 0 0   100% 6 0   100%
paintmaskanimator/cut_folder.py CutFolderLayout.to_json   100% 1 0 0   100% 0 0   100%
paintmaskanimator/cut_folder.py CutFolderLayout.from_json   100% 3 0 0   100% 0 0   100%
paintmaskanimator/cut_folder.py CutFolderLayout.copy   0% 1 1 0   100% 0 0   0%
paintmaskanimator/cut_folder.py pma_standard_layout   100% 2 0 0   100% 0 0   100%
paintmaskanimator/cut_folder.py ts_pool_layout   100% 1 0 0   100% 0 0   100%
paintmaskanimator/cut_folder.py ExportPlan.ok   100% 1 0 0   100% 0 0   100%
paintmaskanimator/cut_folder.py invalid_name_reason   73% 11 3 0   70% 10 3   71%
paintmaskanimator/cut_folder.py _split_path   100% 1 0 0   100% 0 0   100%
paintmaskanimator/cut_folder.py plan_export   87% 60 8 0   80% 40 8   84%
paintmaskanimator/cut_folder.py guess_cut_number   86% 7 1 0   75% 4 1   82%
paintmaskanimator/cut_folder.py CutFolderContents.column   100% 1 0 0   100% 0 0   100%
paintmaskanimator/cut_folder.py _cel_number   80% 5 1 0   50% 2 1   71%
paintmaskanimator/cut_folder.py _column_from_stem   100% 3 0 0   100% 0 0   100%
paintmaskanimator/cut_folder.py _skipped_folder   100% 1 0 0   100% 0 0   100%
paintmaskanimator/cut_folder.py scan_cut_folder   93% 27 2 0   85% 20 3   89%
paintmaskanimator/cut_folder.py scan_cut_folder.add   89% 9 1 0   50% 4 2   77%
paintmaskanimator/cut_folder.py exposure_keys   100% 7 0 0   100% 4 0   100%
paintmaskanimator/cut_folder.py (no function)   100% 89 0 0   100% 0 0   100%
paintmaskanimator/cut_folder_dialog.py field_label   100% 1 0 0   100% 0 0   100%
paintmaskanimator/cut_folder_dialog.py _chunk_kind   100% 6 0 0   100% 4 0   100%
paintmaskanimator/cut_folder_dialog.py _SuggestionList.__init__   100% 8 0 0   100% 0 0   100%
paintmaskanimator/cut_folder_dialog.py _SuggestionList._clicked   0% 3 3 0   0% 2 0   0%
paintmaskanimator/cut_folder_dialog.py _SuggestionList.fill   100% 15 0 0   100% 2 0   100%
paintmaskanimator/cut_folder_dialog.py _SuggestionList.move_selection   0% 6 6 0   0% 2 0   0%
paintmaskanimator/cut_folder_dialog.py _SuggestionList.current_name   0% 2 2 0   100% 0 0   0%
paintmaskanimator/cut_folder_dialog.py TemplateEditor.__init__   100% 17 0 0   100% 0 0   100%
paintmaskanimator/cut_folder_dialog.py TemplateEditor.set_template   100% 4 0 0   100% 0 0   100%
paintmaskanimator/cut_folder_dialog.py TemplateEditor.template   100% 1 0 0   100% 0 0   100%
paintmaskanimator/cut_folder_dialog.py TemplateEditor.replace_token   25% 4 3 0   50% 2 1   33%
paintmaskanimator/cut_folder_dialog.py TemplateEditor.remove_token   0% 5 5 0   0% 2 0   0%
paintmaskanimator/cut_folder_dialog.py TemplateEditor._insert   100% 4 0 0   100% 0 0   100%
paintmaskanimator/cut_folder_dialog.py TemplateEditor.commit_pending   100% 4 0 0   100% 2 0   100%
paintmaskanimator/cut_folder_dialog.py TemplateEditor.insert_field   100% 6 0 0   50% 2 1   88%
paintmaskanimator/cut_folder_dialog.py TemplateEditor._chip_label   78% 9 2 0   50% 6 3   67%
paintmaskanimator/cut_folder_dialog.py TemplateEditor._chip_width   88% 8 1 0   67% 6 2   79%
paintmaskanimator/cut_folder_dialog.py TemplateEditor._shown_char   100% 1 0 0   100% 0 0   100%
paintmaskanimator/cut_folder_dialog.py TemplateEditor._compute_layout   100% 26 0 0   90% 10 1   97%
paintmaskanimator/cut_folder_dialog.py TemplateEditor._compute_layout.place   67% 6 2 0   50% 2 1   62%
paintmaskanimator/cut_folder_dialog.py TemplateEditor._layout   100% 3 0 0   100% 2 0   100%
paintmaskanimator/cut_folder_dialog.py TemplateEditor._relayout   100% 4 0 0   100% 0 0   100%
paintmaskanimator/cut_folder_dialog.py TemplateEditor.hasHeightForWidth   0% 1 1 0   100% 0 0   0%
paintmaskanimator/cut_folder_dialog.py TemplateEditor.heightForWidth   0% 1 1 0   100% 0 0   0%
paintmaskanimator/cut_folder_dialog.py TemplateEditor.sizeHint   0% 1 1 0   100% 0 0   0%
paintmaskanimator/cut_folder_dialog.py TemplateEditor.minimumSizeHint   0% 2 2 0   100% 0 0   0%
paintmaskanimator/cut_folder_dialog.py TemplateEditor.resizeEvent   100% 3 0 0   100% 0 0   100%
paintmaskanimator/cut_folder_dialog.py TemplateEditor.caret_rect   100% 3 0 0   100% 0 0   100%
paintmaskanimator/cut_folder_dialog.py TemplateEditor.paintEvent   41% 58 34 0   25% 16 4   38%
paintmaskanimator/cut_folder_dialog.py TemplateEditor._draw_affix   0% 10 10 0   100% 0 0   0%
paintmaskanimator/cut_folder_dialog.py TemplateEditor.mousePressEvent   0% 19 19 0   0% 8 0   0%
paintmaskanimator/cut_folder_dialog.py TemplateEditor._caret_from_point   0% 11 11 0   0% 6 0   0%
paintmaskanimator/cut_folder_dialog.py TemplateEditor._chunk_left   88% 8 1 0   83% 6 1   86%
paintmaskanimator/cut_folder_dialog.py TemplateEditor._chunk_right   88% 8 1 0   83% 6 1   86%
paintmaskanimator/cut_folder_dialog.py TemplateEditor._move   0% 3 3 0   100% 0 0   0%
paintmaskanimator/cut_folder_dialog.py TemplateEditor.keyPressEvent   44% 63 35 0   43% 42 12   44%
paintmaskanimator/cut_folder_dialog.py TemplateEditor._delete_range   86% 7 1 0   50% 2 1   78%
paintmaskanimator/cut_folder_dialog.py TemplateEditor.inputMethodEvent   0% 6 6 0   0% 2 0   0%
paintmaskanimator/cut_folder_dialog.py TemplateEditor.inputMethodQuery   0% 5 5 0   0% 4 0   0%
paintmaskanimator/cut_folder_dialog.py TemplateEditor.focusInEvent   60% 5 2 0   50% 2 1   57%
paintmaskanimator/cut_folder_dialog.py TemplateEditor.focusOutEvent   100% 5 0 0   100% 0 0   100%
paintmaskanimator/cut_folder_dialog.py TemplateEditor._matches   100% 2 0 0   100% 0 0   100%
paintmaskanimator/cut_folder_dialog.py TemplateEditor._update_suggestions   94% 16 1 0   83% 6 1   91%
paintmaskanimator/cut_folder_dialog.py TemplateEditor._picked   0% 2 2 0   100% 0 0   0%
paintmaskanimator/cut_folder_dialog.py TemplateEditor._place_suggestions   100% 7 0 0   100% 2 0   100%
paintmaskanimator/cut_folder_dialog.py TemplateEditor._hide_suggestions   100% 2 0 0   50% 2 1   75%
paintmaskanimator/cut_folder_dialog.py BlockSettingsPopup.__init__   0% 37 37 0   0% 6 0   0%
paintmaskanimator/cut_folder_dialog.py BlockSettingsPopup._add_choices   0% 16 16 0   0% 2 0   0%
paintmaskanimator/cut_folder_dialog.py BlockSettingsPopup._apply   0% 5 5 0   0% 2 0   0%
paintmaskanimator/cut_folder_dialog.py BlockSettingsPopup._remove   0% 2 2 0   100% 0 0   0%
paintmaskanimator/cut_folder_dialog.py CutFolderExportDialog.__init__   97% 124 4 0   93% 14 1   96%
paintmaskanimator/cut_folder_dialog.py CutFolderExportDialog._editor   100% 4 0 0   100% 0 0   100%
paintmaskanimator/cut_folder_dialog.py CutFolderExportDialog._add_extra_folder   89% 18 2 0   50% 2 1   85%
paintmaskanimator/cut_folder_dialog.py CutFolderExportDialog._add_extra_folder.drop   0% 3 3 0   100% 0 0   0%
paintmaskanimator/cut_folder_dialog.py CutFolderExportDialog._open_block_settings   0% 5 5 0   100% 0 0   0%
paintmaskanimator/cut_folder_dialog.py CutFolderExportDialog.values   100% 1 0 0   100% 0 0   100%
paintmaskanimator/cut_folder_dialog.py CutFolderExportDialog._sample_for   0% 5 5 0   0% 4 0   0%
paintmaskanimator/cut_folder_dialog.py CutFolderExportDialog._is_missing   0% 1 1 0   100% 0 0   0%
paintmaskanimator/cut_folder_dialog.py CutFolderExportDialog._values_changed   100% 3 0 0   100% 2 0   100%
paintmaskanimator/cut_folder_dialog.py CutFolderExportDialog._all_editors   100% 1 0 0   100% 0 0   100%
paintmaskanimator/cut_folder_dialog.py CutFolderExportDialog.current_layout   100% 1 0 0   100% 0 0   100%
paintmaskanimator/cut_folder_dialog.py CutFolderExportDialog.set_layout   94% 18 1 0   75% 4 1   91%
paintmaskanimator/cut_folder_dialog.py CutFolderExportDialog._layout_changed   50% 2 1 0   50% 2 1   50%
paintmaskanimator/cut_folder_dialog.py CutFolderExportDialog._rebuild_preset_combo   100% 17 0 0   80% 10 2   93%
paintmaskanimator/cut_folder_dialog.py CutFolderExportDialog._preset_activated   27% 26 19 0   25% 16 2   26%
paintmaskanimator/cut_folder_dialog.py CutFolderExportDialog._save_presets   0% 3 3 0   100% 0 0   0%
paintmaskanimator/cut_folder_dialog.py CutFolderExportDialog.remember   100% 5 0 0   100% 0 0   100%
paintmaskanimator/cut_folder_dialog.py CutFolderExportDialog.plan   100% 1 0 0   100% 0 0   100%
paintmaskanimator/cut_folder_dialog.py CutFolderExportDialog._problem_text   73% 11 3 0   62% 8 3   68%
paintmaskanimator/cut_folder_dialog.py CutFolderExportDialog._refresh_preview   97% 35 1 0   90% 10 1   96%
paintmaskanimator/cut_folder_dialog.py CutFolderExportDialog._refresh_preview.folder_item   100% 10 0 0   100% 4 0   100%
paintmaskanimator/cut_folder_dialog.py CutFolderExportDialog._browse   0% 4 4 0   0% 2 0   0%
paintmaskanimator/cut_folder_dialog.py CutFolderExportDialog._accept_if_valid   0% 2 2 0   0% 2 0   0%
paintmaskanimator/cut_folder_dialog.py (no function)   100% 93 0 0   100% 0 0   100%
paintmaskanimator/dependency_check.py require_runtime_dependencies   89% 9 1 0   75% 4 1   85%
paintmaskanimator/dependency_check.py _report_and_exit   58% 12 5 0   100% 0 0   58%
paintmaskanimator/dependency_check.py (no function)   100% 7 0 0   100% 0 0   100%
paintmaskanimator/display_shrink.py _winners   100% 5 0 0   100% 0 0   100%
paintmaskanimator/display_shrink.py _pick   100% 2 0 0   100% 0 0   100%
paintmaskanimator/display_shrink.py halve_keeping_lines   86% 7 1 0   50% 2 1   78%
paintmaskanimator/display_shrink.py shrink_keeping_lines   80% 15 3 0   75% 8 2   78%
paintmaskanimator/display_shrink.py (no function)   100% 10 0 0   100% 0 0   100%
paintmaskanimator/document.py Document.__init__   100% 3 0 0   100% 0 0   100%
paintmaskanimator/document.py Document.layers   100% 1 0 0   100% 0 0   100%
paintmaskanimator/document.py Document.active_layer   100% 1 0 0   100% 0 0   100%
paintmaskanimator/document.py Document.snapshot   100% 1 0 0   100% 0 0   100%
paintmaskanimator/document.py Document.restore   100% 5 0 0   100% 0 0   100%
paintmaskanimator/document.py (no function)   100% 10 0 0   100% 0 0   100%
paintmaskanimator/errors.py (no function)   100% 4 0 0   100% 0 0   100%
paintmaskanimator/file_open.py openable_paths_from_argv   100% 1 0 0   100% 0 0   100%
paintmaskanimator/file_open.py ProjectFileOpener.__init__   100% 4 0 0   100% 0 0   100%
paintmaskanimator/file_open.py ProjectFileOpener.eventFilter   100% 6 0 0   100% 4 0   100%
paintmaskanimator/file_open.py ProjectFileOpener.attach   100% 2 0 0   100% 0 0   100%
paintmaskanimator/file_open.py ProjectFileOpener._request   100% 4 0 0   100% 2 0   100%
paintmaskanimator/file_open.py ProjectFileOpener._open_pending_at_launch   100% 10 0 0   100% 6 0   100%
paintmaskanimator/file_open.py ProjectFileOpener._open_asking   100% 3 0 0   100% 2 0   100%
paintmaskanimator/file_open.py ProjectFileOpener._is_clip   100% 1 0 0   100% 0 0   100%
paintmaskanimator/file_open.py (no function)   100% 15 0 0   100% 0 0   100%
paintmaskanimator/fill_tracking.py mask_bounds   100% 5 0 0   100% 2 0   100%
paintmaskanimator/fill_tracking.py shift_mask   100% 10 0 0   100% 2 0   100%
paintmaskanimator/fill_tracking.py _outline   100% 2 0 0   100% 0 0   100%
paintmaskanimator/fill_tracking.py estimate_shifts   90% 39 4 0   70% 20 6   83%
paintmaskanimator/fill_tracking.py _downsample   100% 7 0 0   100% 2 0   100%
paintmaskanimator/fill_tracking.py _fast_length   100% 9 0 0   100% 6 0   100%
paintmaskanimator/fill_tracking.py _correlate   100% 6 0 0   100% 2 0   100%
paintmaskanimator/fill_tracking.py _crop   100% 7 0 0   50% 2 1   89%
paintmaskanimator/fill_tracking.py _paste   100% 6 0 0   50% 2 1   88%
paintmaskanimator/fill_tracking.py _best_offset   95% 20 1 0   75% 4 1   92%
paintmaskanimator/fill_tracking.py warp_region   93% 29 2 0   80% 10 2   90%
paintmaskanimator/fill_tracking.py estimate_shift   100% 2 0 0   100% 0 0   100%
paintmaskanimator/fill_tracking.py line_art   100% 6 0 0   100% 0 0   100%
paintmaskanimator/fill_tracking.py _labels   100% 5 0 0   100% 0 0   100%
paintmaskanimator/fill_tracking.py estimate_color_shifts   89% 36 4 0   64% 14 5   82%
paintmaskanimator/fill_tracking.py _context_window   100% 12 0 0   50% 2 1   93%
paintmaskanimator/fill_tracking.py _center   100% 1 0 0   100% 0 0   100%
paintmaskanimator/fill_tracking.py context_similarity   89% 9 1 0   50% 2 1   82%
paintmaskanimator/fill_tracking.py _agreement   89% 9 1 0   75% 4 1   85%
paintmaskanimator/fill_tracking.py (no function)   100% 33 0 0   100% 0 0   100%
paintmaskanimator/frame_scope.py resolve_key_frame   77% 13 3 0   70% 10 3   74%
paintmaskanimator/frame_scope.py FrameScope.__post_init__   100% 2 0 0   100% 0 0   100%
paintmaskanimator/frame_scope.py FrameScope.current_frame   100% 1 0 0   100% 0 0   100%
paintmaskanimator/frame_scope.py FrameScope.all_frames   100% 1 0 0   100% 0 0   100%
paintmaskanimator/frame_scope.py FrameScope.cells   100% 1 0 0   100% 0 0   100%
paintmaskanimator/frame_scope.py FrameScope.choose   100% 2 0 0   100% 0 0   100%
paintmaskanimator/frame_scope.py FrameScope.is_all_frames   100% 1 0 0   100% 0 0   100%
paintmaskanimator/frame_scope.py _default_layers   100% 3 0 0   100% 2 0   100%
paintmaskanimator/frame_scope.py LayerContext.image   0% 1 1 0   100% 0 0   0%
paintmaskanimator/frame_scope.py ScopeResult.changed   100% 1 0 0   100% 0 0   100%
paintmaskanimator/frame_scope.py ScopeResult.__bool__   0% 1 1 0   100% 0 0   0%
paintmaskanimator/frame_scope.py resolve_cells   85% 26 4 0   78% 18 4   82%
paintmaskanimator/frame_scope.py _group_shared_images   100% 12 0 0   100% 4 0   100%
paintmaskanimator/frame_scope.py apply_over_scope   98% 49 1 0   91% 22 2   96%
paintmaskanimator/frame_scope.py (no function)   100% 53 0 0   100% 0 0   100%
paintmaskanimator/geometry.py normalized_angle   100% 1 0 0   100% 0 0   100%
paintmaskanimator/geometry.py rotated_vector   100% 2 0 0   100% 0 0   100%
paintmaskanimator/geometry.py quad_homography   86% 14 2 0   100% 2 0   88%
paintmaskanimator/geometry.py mesh_catmull_scalar   100% 4 0 0   100% 0 0   100%
paintmaskanimator/geometry.py regular_grid_points   100% 5 0 0   100% 0 0   100%
paintmaskanimator/geometry.py (no function)   100% 9 0 0   100% 0 0   100%
paintmaskanimator/history_panel.py _block_rect   100% 3 0 0   100% 0 0   100%
paintmaskanimator/history_panel.py _HistoryGraph.__init__   100% 5 0 0   100% 0 0   100%
paintmaskanimator/history_panel.py _HistoryGraph.set_nodes   100% 9 0 0   100% 0 0   100%
paintmaskanimator/history_panel.py _HistoryGraph._clickable   0% 1 1 0   100% 0 0   0%
paintmaskanimator/history_panel.py _HistoryGraph._node_at   0% 4 4 0   0% 4 0   0%
paintmaskanimator/history_panel.py _HistoryGraph.mousePressEvent   0% 9 9 0   0% 8 0   0%
paintmaskanimator/history_panel.py _HistoryGraph.mouseMoveEvent   0% 2 2 0   100% 0 0   0%
paintmaskanimator/history_panel.py _HistoryGraph.paintEvent   50% 66 33 0   43% 14 2   49%
paintmaskanimator/history_panel.py HistoryPanel.__init__   100% 16 0 0   100% 0 0   100%
paintmaskanimator/history_panel.py HistoryPanel.help_text   0% 1 1 0   100% 0 0   0%
paintmaskanimator/history_panel.py HistoryPanel.show_help   0% 6 6 0   100% 0 0   0%
paintmaskanimator/history_panel.py HistoryPanel.set_canvas   100% 2 0 0   100% 0 0   100%
paintmaskanimator/history_panel.py HistoryPanel._main_rows   100% 8 0 0   100% 4 0   100%
paintmaskanimator/history_panel.py HistoryPanel.refresh   95% 41 2 0   81% 16 3   91%
paintmaskanimator/history_panel.py HistoryPanel.refresh.alloc_col   100% 7 0 0   100% 2 0   100%
paintmaskanimator/history_panel.py (no function)   100% 37 0 0   100% 0 0   100%
paintmaskanimator/hsv_adjust_dialog.py shifted_color   100% 7 0 0   100% 0 0   100%
paintmaskanimator/hsv_adjust_dialog.py shifted_mapping   100% 9 0 0   100% 6 0   100%
paintmaskanimator/hsv_adjust_dialog.py HsvAdjustDialog.__init__   100% 16 0 0   100% 0 0   100%
paintmaskanimator/hsv_adjust_dialog.py HsvAdjustDialog._add_slider   100% 16 0 0   100% 0 0   100%
paintmaskanimator/hsv_adjust_dialog.py HsvAdjustDialog._emit_preview   100% 1 0 0   100% 0 0   100%
paintmaskanimator/hsv_adjust_dialog.py HsvAdjustDialog.mapping   100% 1 0 0   100% 0 0   100%
paintmaskanimator/hsv_adjust_dialog.py (no function)   100% 15 0 0   100% 0 0   100%
paintmaskanimator/i18n.py tr   100% 1 0 0   100% 0 0   100%
paintmaskanimator/i18n.py translations_dir   100% 1 0 0   100% 0 0   100%
paintmaskanimator/i18n.py available_languages   100% 7 0 0   83% 6 1   92%
paintmaskanimator/i18n.py system_language   0% 5 5 0   0% 4 0   0%
paintmaskanimator/i18n.py install   95% 20 1 0   80% 10 2   90%
paintmaskanimator/i18n.py preferred_language   100% 2 0 0   100% 0 0   100%
paintmaskanimator/i18n.py set_preferred_language   100% 3 0 0   100% 2 0   100%
paintmaskanimator/i18n.py install_preferred   0% 2 2 0   100% 0 0   0%
paintmaskanimator/i18n.py (no function)   100% 19 0 0   100% 0 0   100%
paintmaskanimator/icons.py names   100% 1 0 0   100% 0 0   100%
paintmaskanimator/icons.py _svg   100% 2 0 0   100% 0 0   100%
paintmaskanimator/icons.py pixmap   100% 13 0 0   100% 0 0   100%
paintmaskanimator/icons.py icon   94% 16 1 0   83% 6 1   91%
paintmaskanimator/icons.py clear_cache   0% 1 1 0   100% 0 0   0%
paintmaskanimator/icons.py (no function)   100% 13 0 0   100% 0 0   100%
paintmaskanimator/imaging.py qimage_buffer   80% 5 1 0   50% 2 1   71%
paintmaskanimator/imaging.py qimage_rgba_array   81% 16 3 0   75% 4 1   80%
paintmaskanimator/imaging.py rgba_array_to_qimage   83% 12 2 0   67% 6 2   78%
paintmaskanimator/imaging.py pil_l_to_qimage   0% 4 4 0   100% 0 0   0%
paintmaskanimator/imaging.py qimage_gray_array   86% 7 1 0   50% 2 1   78%
paintmaskanimator/imaging.py qimage_to_pil_rgba   83% 6 1 0   75% 4 1   80%
paintmaskanimator/imaging.py pil_rgba_to_qimage   100% 2 0 0   100% 0 0   100%
paintmaskanimator/imaging.py tp_uses_proxy   100% 1 0 0   100% 0 0   100%
paintmaskanimator/imaging.py _row_runs   100% 6 0 0   100% 0 0   100%
paintmaskanimator/imaging.py _seed_list   100% 3 0 0   100% 2 0   100%
paintmaskanimator/imaging.py scanline_connected_region   100% 3 0 0   100% 0 0   100%
paintmaskanimator/imaging.py scanline_connected_region_numpy   98% 50 1 0   92% 24 2   96%
paintmaskanimator/imaging.py scanline_connected_region_numpy.runs_of   100% 5 0 0   100% 2 0   100%
paintmaskanimator/imaging.py rgba_packed_view   100% 5 0 0   100% 2 0   100%
paintmaskanimator/imaging.py pack_rgb   100% 2 0 0   100% 0 0   100%
paintmaskanimator/imaging.py _chunked_mask   100% 6 0 0   100% 2 0   100%
paintmaskanimator/imaging.py background_mask_packed   75% 4 1 0   50% 2 1   67%
paintmaskanimator/imaging.py background_mask_packed.compute   100% 1 0 0   100% 0 0   100%
paintmaskanimator/imaging.py background_mask_packed.compute   0% 1 1 0   100% 0 0   0%
paintmaskanimator/imaging.py opaque_rgb_mask_packed   83% 6 1 0   50% 2 1   75%
paintmaskanimator/imaging.py opaque_rgb_mask_packed.compute   100% 1 0 0   100% 0 0   100%
paintmaskanimator/imaging.py opaque_rgb_mask_packed.compute   0% 1 1 0   100% 0 0   0%
paintmaskanimator/imaging.py mask_bounds   100% 5 0 0   100% 2 0   100%
paintmaskanimator/imaging.py bool_mask_image   100% 6 0 0   100% 0 0   100%
paintmaskanimator/imaging.py white_to_transparent_qimage   86% 14 2 0   67% 6 2   80%
paintmaskanimator/imaging.py tp_transparent_to_white   100% 4 0 0   100% 0 0   100%
paintmaskanimator/imaging.py tp_white_to_transparent   100% 4 0 0   100% 0 0   100%
paintmaskanimator/imaging.py tp_prepare_palette_image   0% 12 12 0   0% 2 0   0%
paintmaskanimator/imaging.py (no function)   100% 33 0 0   100% 0 0   100%
paintmaskanimator/layout_paper.py papers_dir   100% 3 0 0   100% 0 0   100%
paintmaskanimator/layout_paper.py _entries   100% 1 0 0   100% 0 0   100%
paintmaskanimator/layout_paper.py papers   100% 1 0 0   100% 0 0   100%
paintmaskanimator/layout_paper.py paper   100% 1 0 0   100% 0 0   100%
paintmaskanimator/layout_paper.py image_path   100% 1 0 0   100% 0 0   100%
paintmaskanimator/layout_paper.py image_size   71% 7 2 0   50% 2 1   67%
paintmaskanimator/layout_paper.py load_image   100% 4 0 0   100% 0 0   100%
paintmaskanimator/layout_paper.py add_paper   100% 9 0 0   100% 2 0   100%
paintmaskanimator/layout_paper.py rename_paper   88% 8 1 0   67% 6 2   79%
paintmaskanimator/layout_paper.py remove_paper   100% 5 0 0   75% 4 1   89%
paintmaskanimator/layout_paper.py last_used   100% 2 0 0   100% 0 0   100%
paintmaskanimator/layout_paper.py set_last_used   100% 1 0 0   100% 0 0   100%
paintmaskanimator/layout_paper.py layer_name   100% 1 0 0   100% 0 0   100%
paintmaskanimator/layout_paper.py (no function)   100% 22 0 0   100% 0 0   100%
paintmaskanimator/line_flow.py Flow.at   100% 11 0 0   100% 2 0   100%
paintmaskanimator/line_flow.py Flow.score_at   100% 3 0 0   100% 0 0   100%
paintmaskanimator/line_flow.py _bilinear   0% 1 1 0   100% 0 0   0%
paintmaskanimator/line_flow.py _bilinear_weights   100% 10 0 0   100% 0 0   100%
paintmaskanimator/line_flow.py _interpolate   100% 4 0 0   100% 0 0   100%
paintmaskanimator/line_flow.py _pool   100% 6 0 0   100% 2 0   100%
paintmaskanimator/line_flow.py _block_sum   100% 2 0 0   100% 0 0   100%
paintmaskanimator/line_flow.py _with_neighbours   100% 8 0 0   100% 4 0   100%
paintmaskanimator/line_flow.py _shifted   100% 7 0 0   100% 2 0   100%
paintmaskanimator/line_flow.py _scores_numpy   100% 18 0 0   100% 6 0   100%
paintmaskanimator/line_flow.py _scores   100% 2 0 0   100% 0 0   100%
paintmaskanimator/line_flow.py estimate_flow   98% 50 1 0   80% 10 2   95%
paintmaskanimator/line_flow.py (no function)   100% 32 0 0   100% 0 0   100%
paintmaskanimator/line_noise.py _packed   100% 2 0 0   100% 0 0   100%
paintmaskanimator/line_noise.py _shifted   100% 8 0 0   100% 0 0   100%
paintmaskanimator/line_noise.py _dilate   100% 13 0 0   100% 2 0   100%
paintmaskanimator/line_noise.py line_mask   100% 2 0 0   100% 0 0   100%
paintmaskanimator/line_noise.py remove_line_noise   96% 28 1 0   90% 10 1   95%
paintmaskanimator/line_noise.py (no function)   100% 11 0 0   100% 0 0   100%
paintmaskanimator/logging_setup.py log_path   100% 2 0 0   100% 0 0   100%
paintmaskanimator/logging_setup.py configure_logging   86% 14 2 0   100% 2 0   88%
paintmaskanimator/logging_setup.py get_logger   100% 7 0 0   100% 4 0   100%
paintmaskanimator/logging_setup.py (no function)   100% 6 0 0   100% 0 0   100%
paintmaskanimator/main_window.py MainWindow.__init__   100% 87 0 0   100% 0 0   100%
paintmaskanimator/main_window.py MainWindow.status   0% 5 5 0   0% 2 0   0%
paintmaskanimator/main_window.py MainWindow.set_theme   100% 4 0 0   50% 2 1   83%
paintmaskanimator/main_window.py MainWindow._on_canvas_cell_changed   100% 8 0 0   100% 4 0   100%
paintmaskanimator/main_window.py MainWindow.refresh_ui   100% 9 0 0   100% 2 0   100%
paintmaskanimator/main_window.py MainWindow.refresh_selection   89% 19 2 0   67% 6 2   84%
paintmaskanimator/main_window.py MainWindow.prepare_color_reduction   0% 33 33 0   0% 14 0   0%
paintmaskanimator/main_window.py MainWindow.prepare_image_import   0% 27 27 0   0% 12 0   0%
paintmaskanimator/main_window.py MainWindow.import_dropped_image   0% 16 16 0   0% 10 0   0%
paintmaskanimator/main_window.py MainWindow.import_dropped_images   0% 36 36 0   0% 16 0   0%
paintmaskanimator/main_window.py MainWindow.sync_canvas_view_controls   100% 6 0 0   100% 0 0   100%
paintmaskanimator/main_window.py MainWindow.paste_from_clipboard   100% 3 0 0   100% 2 0   100%
paintmaskanimator/main_window.py MainWindow._pointer_or_focus_on_timeline   71% 7 2 0   50% 4 2   64%
paintmaskanimator/main_window.py MainWindow.step_canvas_zoom   100% 5 0 0   100% 0 0   100%
paintmaskanimator/main_window.py MainWindow.set_zoom   0% 3 3 0   100% 0 0   0%
paintmaskanimator/main_window.py MainWindow.show_canvas_at_100_percent   0% 4 4 0   100% 0 0   0%
paintmaskanimator/main_window.py MainWindow.set_rot   0% 3 3 0   100% 0 0   0%
paintmaskanimator/main_window.py MainWindow.fit_canvas   100% 1 0 0   100% 0 0   100%
paintmaskanimator/main_window.py MainWindow.new_doc   89% 9 1 0   50% 4 2   77%
paintmaskanimator/main_window.py MainWindow.insert_layout_paper   82% 11 2 0   75% 4 1   80%
paintmaskanimator/main_window.py MainWindow.check_for_updates_interactive   48% 21 11 0   25% 8 2   41%
paintmaskanimator/main_window.py MainWindow._download_and_run_installer   0% 34 34 0   0% 6 0   0%
paintmaskanimator/main_window.py MainWindow._download_and_run_installer.on_progress   0% 5 5 0   0% 4 0   0%
paintmaskanimator/main_window.py MainWindow.build_project_metadata   100% 1 0 0   100% 0 0   100%
paintmaskanimator/main_window.py MainWindow.dragEnterEvent   0% 5 5 0   0% 2 0   0%
paintmaskanimator/main_window.py MainWindow.dropEvent   0% 16 16 0   0% 6 0   0%
paintmaskanimator/main_window.py MainWindow.import_images_dialog   0% 6 6 0   0% 4 0   0%
paintmaskanimator/main_window.py MainWindow.import_image_folder_dialog   0% 10 10 0   0% 4 0   0%
paintmaskanimator/main_window.py MainWindow.import_images_raw_dialog   0% 4 4 0   0% 2 0   0%
paintmaskanimator/main_window.py MainWindow.import_dropped_images_raw   0% 19 19 0   0% 6 0   0%
paintmaskanimator/main_window.py MainWindow.resize_doc   0% 2 2 0   100% 0 0   0%
paintmaskanimator/main_window.py MainWindow.replace_doc   77% 30 7 0   40% 10 2   68%
paintmaskanimator/main_window.py MainWindow.closeEvent   81% 32 6 0   83% 6 1   82%
paintmaskanimator/main_window.py MainWindow.set_project_memo   100% 3 0 0   100% 2 0   100%
paintmaskanimator/main_window.py MainWindow.show_memo_window   100% 8 0 0   100% 2 0   100%
paintmaskanimator/main_window.py MainWindow._memo_text_changed   100% 1 0 0   100% 0 0   100%
paintmaskanimator/main_window.py MainWindow.pressure   0% 9 9 0   0% 4 0   0%
paintmaskanimator/main_window.py MainWindow.apply_pressure_settings   100% 6 0 0   100% 0 0   100%
paintmaskanimator/main_window.py MainWindow.shortcuts   83% 6 1 0   50% 2 1   75%
paintmaskanimator/main_window.py MainWindow.shortcuts.without_panel   100% 1 0 0   100% 0 0   100%
paintmaskanimator/main_window.py MainWindow.crop_image   100% 1 0 0   100% 2 0   100%
paintmaskanimator/main_window.py MainWindow.save_png   0% 2 2 0   100% 0 0   0%
paintmaskanimator/main_window.py MainWindow.exposure_images   0% 5 5 0   0% 2 0   0%
paintmaskanimator/main_window.py MainWindow.save_tga_image   0% 10 10 0   0% 2 0   0%
paintmaskanimator/main_window.py MainWindow.save_tga   0% 5 5 0   0% 4 0   0%
paintmaskanimator/main_window.py MainWindow._sheet_duration   90% 10 1 0   90% 10 1   90%
paintmaskanimator/main_window.py MainWindow.play   100% 13 0 0   100% 2 0   100%
paintmaskanimator/main_window.py MainWindow.advance   70% 10 3 0   50% 4 2   64%
paintmaskanimator/main_window.py (no function)   100% 106 0 0   100% 0 0   100%
paintmaskanimator/main_window_auto_paint.py cell_label   0% 3 3 0   100% 0 0   0%
paintmaskanimator/main_window_auto_paint.py AutoPaintController.__init__   100% 1 0 0   100% 0 0   100%
paintmaskanimator/main_window_auto_paint.py AutoPaintController.cells   100% 2 0 0   100% 0 0   100%
paintmaskanimator/main_window_auto_paint.py AutoPaintController.open   0% 20 20 0   0% 6 0   0%
paintmaskanimator/main_window_auto_paint.py AutoPaintController.run   85% 47 7 0   65% 20 7   79%
paintmaskanimator/main_window_auto_paint.py AutoPaintController.run.op   90% 10 1 0   75% 4 1   86%
paintmaskanimator/main_window_auto_paint.py AutoPaintController.notes   100% 6 0 0   100% 4 0   100%
paintmaskanimator/main_window_auto_paint.py AutoPaintController._plan   100% 13 0 0   100% 2 0   100%
paintmaskanimator/main_window_auto_paint.py AutoPaintController._plan.progress   94% 17 1 0   83% 6 1   91%
paintmaskanimator/main_window_auto_paint.py (no function)   100% 23 0 3   100% 0 0   100%
paintmaskanimator/main_window_autosave.py AutosaveController.__init__   100% 4 0 0   100% 0 0   100%
paintmaskanimator/main_window_autosave.py AutosaveController.path   100% 1 0 0   100% 0 0   100%
paintmaskanimator/main_window_autosave.py AutosaveController.start   100% 3 0 0   100% 0 0   100%
paintmaskanimator/main_window_autosave.py AutosaveController.apply_preferences   100% 5 0 0   100% 2 0   100%
paintmaskanimator/main_window_autosave.py AutosaveController.request_save   88% 17 2 0   88% 8 1   88%
paintmaskanimator/main_window_autosave.py AutosaveController._write   50% 4 2 0   100% 0 0   50%
paintmaskanimator/main_window_autosave.py AutosaveController.save   50% 6 3 0   50% 2 1   50%
paintmaskanimator/main_window_autosave.py AutosaveController.maybe_restore   40% 10 6 0   25% 4 1   36%
paintmaskanimator/main_window_autosave.py AutosaveController.clear   100% 9 0 0   100% 2 0   100%
paintmaskanimator/main_window_autosave.py (no function)   100% 21 0 3   100% 0 0   100%
paintmaskanimator/main_window_color_chart.py ColorChartController.__init__   100% 1 0 0   100% 0 0   100%
paintmaskanimator/main_window_color_chart.py ColorChartController._normalize   100% 1 0 0   100% 0 0   100%
paintmaskanimator/main_window_color_chart.py ColorChartController._merge   0% 1 1 0   100% 0 0   0%
paintmaskanimator/main_window_color_chart.py ColorChartController._chart_rgb   100% 4 0 0   100% 2 0   100%
paintmaskanimator/main_window_color_chart.py ColorChartController.set_data   100% 2 0 0   100% 0 0   100%
paintmaskanimator/main_window_color_chart.py ColorChartController.clear   100% 1 0 0   100% 0 0   100%
paintmaskanimator/main_window_color_chart.py ColorChartController.on_edited   0% 1 1 0   100% 0 0   0%
paintmaskanimator/main_window_color_chart.py ColorChartController._current_palette   0% 26 26 0   0% 14 0   0%
paintmaskanimator/main_window_color_chart.py ColorChartController.capture   0% 11 11 0   0% 2 0   0%
paintmaskanimator/main_window_color_chart.py ColorChartController.apply   96% 53 2 0   82% 22 4   92%
paintmaskanimator/main_window_color_chart.py ColorChartController.apply.append_order   67% 3 1 0   50% 2 1   60%
paintmaskanimator/main_window_color_chart.py ColorChartController.save_pmag   0% 16 16 0   0% 6 0   0%
paintmaskanimator/main_window_color_chart.py ColorChartController.load_pmag   0% 14 14 0   0% 4 0   0%
paintmaskanimator/main_window_color_chart.py (no function)   100% 25 0 4   100% 0 0   100%
paintmaskanimator/main_window_color_interaction.py ColorInteractionController.__init__   100% 1 0 0   100% 0 0   100%
paintmaskanimator/main_window_color_interaction.py ColorInteractionController._is_background_sample   100% 2 0 0   100% 0 0   100%
paintmaskanimator/main_window_color_interaction.py ColorInteractionController._apply_sampled_drawing_color   100% 10 0 0   100% 2 0   100%
paintmaskanimator/main_window_color_interaction.py ColorInteractionController.choose_accent_color   0% 4 4 0   0% 2 0   0%
paintmaskanimator/main_window_color_interaction.py ColorInteractionController.set_accent   0% 4 4 0   0% 2 0   0%
paintmaskanimator/main_window_color_interaction.py ColorInteractionController.set_mask_colors   67% 9 3 0   25% 4 1   54%
paintmaskanimator/main_window_color_interaction.py ColorInteractionController.focus_selected_used_color   67% 12 4 0   67% 6 2   67%
paintmaskanimator/main_window_color_interaction.py ColorInteractionController.focus_used_color   79% 47 10 0   39% 18 7   68%
paintmaskanimator/main_window_color_interaction.py ColorInteractionController.adjust_parent_line_thickness   0% 82 82 0   0% 22 0   0%
paintmaskanimator/main_window_color_interaction.py ColorInteractionController.set_selected_used_colors   100% 3 0 0   100% 0 0   100%
paintmaskanimator/main_window_color_interaction.py ColorInteractionController.set_visible_colors   100% 2 0 0   100% 0 0   100%
paintmaskanimator/main_window_color_interaction.py ColorInteractionController._apply_pending_visible_colors   100% 10 0 0   100% 4 0   100%
paintmaskanimator/main_window_color_interaction.py ColorInteractionController.set_preview_color_groups   50% 4 2 0   50% 2 1   50%
paintmaskanimator/main_window_color_interaction.py ColorInteractionController.apply_sampled_color_to_mode   100% 1 0 0   100% 0 0   100%
paintmaskanimator/main_window_color_interaction.py ColorInteractionController.apply_sampled_color   100% 4 0 0   100% 2 0   100%
paintmaskanimator/main_window_color_interaction.py ColorInteractionController.isolate_selected_color   0% 24 24 0   0% 14 0   0%
paintmaskanimator/main_window_color_interaction.py ColorInteractionController.clear_selected_color_filter   0% 18 18 0   0% 10 0   0%
paintmaskanimator/main_window_color_interaction.py ColorInteractionController.select_background_color   100% 3 0 0   100% 2 0   100%
paintmaskanimator/main_window_color_interaction.py ColorInteractionController.toggle_draw_background_color   0% 5 5 0   0% 2 0   0%
paintmaskanimator/main_window_color_interaction.py ColorInteractionController.set_color_value   0% 1 1 0   100% 0 0   0%
paintmaskanimator/main_window_color_interaction.py ColorInteractionController.choose_background_color   100% 8 0 0   100% 2 0   100%
paintmaskanimator/main_window_color_interaction.py ColorInteractionController._show_background_display_color   100% 7 0 0   100% 0 0   100%
paintmaskanimator/main_window_color_interaction.py ColorInteractionController.choose_color   100% 8 0 0   50% 2 1   90%
paintmaskanimator/main_window_color_interaction.py ColorInteractionController.choose_color.preview   100% 2 0 0   100% 0 0   100%
paintmaskanimator/main_window_color_interaction.py ColorInteractionController.set_color_mode   100% 1 0 0   100% 2 0   100%
paintmaskanimator/main_window_color_interaction.py ColorInteractionController._sync_tool_selector_swatch   100% 3 0 0   50% 2 1   80%
paintmaskanimator/main_window_color_interaction.py ColorInteractionController.image_color_hex   100% 1 0 0   100% 0 0   100%
paintmaskanimator/main_window_color_interaction.py (no function)   100% 39 0 3   100% 0 0   100%
paintmaskanimator/main_window_docking.py _FloatingGripTracker.__init__   100% 10 0 0   100% 0 0   100%
paintmaskanimator/main_window_docking.py _FloatingGripTracker.position_handles   100% 14 0 0   75% 4 1   94%
paintmaskanimator/main_window_docking.py _FloatingGripTracker._clamp_dimension   100% 2 0 0   100% 0 0   100%
paintmaskanimator/main_window_docking.py _FloatingGripTracker._apply_manual_resize   78% 18 4 0   75% 8 2   77%
paintmaskanimator/main_window_docking.py _FloatingGripTracker.eventFilter   84% 37 6 0   86% 14 2   84%
paintmaskanimator/main_window_docking.py DockingMixin._fit_window_to_screen   78% 9 2 0   50% 2 1   73%
paintmaskanimator/main_window_docking.py DockingMixin._finalize_startup_dock_ui   100% 7 0 0   50% 2 1   89%
paintmaskanimator/main_window_docking.py DockingMixin.showEvent   100% 7 0 0   50% 4 2   82%
paintmaskanimator/main_window_docking.py DockingMixin._splitter_slot   83% 6 1 0   75% 4 1   80%
paintmaskanimator/main_window_docking.py DockingMixin._splitter_index_of   80% 5 1 0   75% 4 1   78%
paintmaskanimator/main_window_docking.py DockingMixin._apply_default_dock_layout   60% 5 2 0   100% 0 0   60%
paintmaskanimator/main_window_docking.py DockingMixin._apply_default_panel_widths   86% 28 4 0   71% 14 4   81%
paintmaskanimator/main_window_docking.py DockingMixin._stretch_only   100% 2 0 0   100% 2 0   100%
paintmaskanimator/main_window_docking.py DockingMixin._apply_default_panel_heights   100% 12 0 0   50% 6 3   83%
paintmaskanimator/main_window_docking.py DockingMixin._share_splitter   83% 12 2 0   67% 6 2   78%
paintmaskanimator/main_window_docking.py DockingMixin._hamburger_icon   100% 1 0 0   100% 0 0   100%
paintmaskanimator/main_window_docking.py DockingMixin._add_dock_hamburger_old   0% 19 19 0   100% 0 0   0%
paintmaskanimator/main_window_docking.py DockingMixin._attach_dock_hamburger   0% 15 15 0   0% 10 0   0%
paintmaskanimator/main_window_docking.py DockingMixin._add_dock_hamburger   100% 4 0 0   100% 0 0   100%
paintmaskanimator/main_window_docking.py DockingMixin._attach_area_hamburger   85% 41 6 0   80% 10 2   84%
paintmaskanimator/main_window_docking.py DockingMixin._sync_all_area_hamburgers   100% 5 0 0   100% 4 0   100%
paintmaskanimator/main_window_docking.py DockingMixin._sync_area_hamburger   81% 16 3 0   83% 6 1   82%
paintmaskanimator/main_window_docking.py DockingMixin._area_of_widget   100% 4 0 0   100% 2 0   100%
paintmaskanimator/main_window_docking.py DockingMixin._rebuild_area_dock_menu   42% 12 7 0   50% 4 2   44%
paintmaskanimator/main_window_docking.py DockingMixin._rebuild_dock_menu   100% 5 0 0   100% 2 0   100%
paintmaskanimator/main_window_docking.py DockingMixin._build_default_dock_menu   100% 5 0 0   100% 0 0   100%
paintmaskanimator/main_window_docking.py DockingMixin._build_action_panel_menu   0% 2 2 0   100% 0 0   0%
paintmaskanimator/main_window_docking.py DockingMixin._build_color_wheel_menu   100% 15 0 0   100% 4 0   100%
paintmaskanimator/main_window_docking.py DockingMixin._build_color_slider_menu   0% 6 6 0   0% 2 0   0%
paintmaskanimator/main_window_docking.py DockingMixin._customize_docking_hover   100% 10 0 0   100% 4 0   100%
paintmaskanimator/main_window_docking.py DockingMixin._apply_dock_chrome_icons   100% 10 0 0   100% 4 0   100%
paintmaskanimator/main_window_docking.py DockingMixin._expand_docking_hit_zones   100% 15 0 0   88% 8 1   96%
paintmaskanimator/main_window_docking.py DockingMixin._setup_split_drop_overlay   100% 37 0 0   100% 2 0   100%
paintmaskanimator/main_window_docking.py DockingMixin._start_split_drop_monitor   0% 2 2 0   0% 2 0   0%
paintmaskanimator/main_window_docking.py DockingMixin._active_dragged_dock   50% 6 3 0   33% 6 2   42%
paintmaskanimator/main_window_docking.py DockingMixin._update_split_drop_target   86% 74 10 0   78% 32 3   84%
paintmaskanimator/main_window_docking.py DockingMixin._show_split_skeleton   100% 13 0 0   100% 4 0   100%
paintmaskanimator/main_window_docking.py DockingMixin._hide_split_drop_feedback   100% 3 0 0   100% 2 0   100%
paintmaskanimator/main_window_docking.py DockingMixin._update_manual_tab_drop   68% 92 29 0   62% 34 13   67%
paintmaskanimator/main_window_docking.py DockingMixin._show_manual_center_effect   100% 24 0 0   100% 2 0   100%
paintmaskanimator/main_window_docking.py DockingMixin._clear_manual_center_effect   100% 10 0 0   75% 4 1   93%
paintmaskanimator/main_window_docking.py DockingMixin._finish_manual_tab_drop   62% 34 13 0   50% 10 3   59%
paintmaskanimator/main_window_docking.py DockingMixin._start_manual_tab_drag_polling   100% 2 0 0   50% 2 1   75%
paintmaskanimator/main_window_docking.py DockingMixin._poll_manual_tab_drag   0% 20 20 0   0% 4 0   0%
paintmaskanimator/main_window_docking.py DockingMixin._physical_left_button_pressed   0% 6 6 0   0% 2 0   0%
paintmaskanimator/main_window_docking.py DockingMixin._apply_manual_drop_extent   0% 32 32 0   0% 12 0   0%
paintmaskanimator/main_window_docking.py DockingMixin._apply_manual_drop_extent.direct_branch   0% 4 4 0   0% 2 0   0%
paintmaskanimator/main_window_docking.py DockingMixin._resize_ancestor_splitter_branch   0% 18 18 0   0% 6 0   0%
paintmaskanimator/main_window_docking.py DockingMixin._finish_manual_drop_layout   0% 4 4 0   100% 0 0   0%
paintmaskanimator/main_window_docking.py DockingMixin._commit_split_drop   100% 6 0 0   100% 0 0   100%
paintmaskanimator/main_window_docking.py DockingMixin._snap_tool_selector_width   100% 4 0 0   100% 2 0   100%
paintmaskanimator/main_window_docking.py DockingMixin._sync_floating_title   100% 4 0 0   100% 2 0   100%
paintmaskanimator/main_window_docking.py DockingMixin._sync_floating_title.update   93% 29 2 0   70% 10 3   87%
paintmaskanimator/main_window_docking.py DockingMixin._close_current_area_dock   0% 6 6 0   0% 2 0   0%
paintmaskanimator/main_window_docking.py DockingMixin._configure_floating_window   100% 32 0 0   100% 6 0   100%
paintmaskanimator/main_window_docking.py DockingMixin._configure_floating_window.sync_floating_docks   100% 6 0 0   100% 2 0   100%
paintmaskanimator/main_window_docking.py DockingMixin._position_floating_resize_grip   50% 14 7 0   50% 4 2   50%
paintmaskanimator/main_window_docking.py DockingMixin._apply_tool_selector_snap   82% 17 3 0   67% 6 2   78%
paintmaskanimator/main_window_docking.py (no function)   100% 84 0 0   100% 0 0   100%
paintmaskanimator/main_window_export.py ExportController.__init__   100% 1 0 0   100% 0 0   100%
paintmaskanimator/main_window_export.py ExportController.canvas_image   100% 1 0 0   100% 0 0   100%
paintmaskanimator/main_window_export.py ExportController.snapshot_path   100% 7 0 0   100% 2 0   100%
paintmaskanimator/main_window_export.py ExportController.copy_canvas_to_clipboard   83% 6 1 0   50% 2 1   75%
paintmaskanimator/main_window_export.py ExportController.choose_snapshot_folder   80% 5 1 0   50% 2 1   71%
paintmaskanimator/main_window_export.py ExportController.save_canvas_snapshot   62% 16 6 0   67% 6 2   64%
paintmaskanimator/main_window_export.py ExportController.xdts_dialog   55% 11 5 0   50% 4 2   53%
paintmaskanimator/main_window_export.py ExportController.sheet_tracks   96% 23 1 0   92% 12 1   94%
paintmaskanimator/main_window_export.py ExportController.xdts_text   100% 1 0 0   100% 0 0   100%
paintmaskanimator/main_window_export.py ExportController.sheet_text   100% 2 0 0   100% 0 0   100%
paintmaskanimator/main_window_export.py ExportController.cut_folder_cels   81% 27 5 0   71% 14 4   78%
paintmaskanimator/main_window_export.py ExportController.cut_folder   0% 11 11 0   0% 2 0   0%
paintmaskanimator/main_window_export.py ExportController.write_cut_folder   66% 41 14 0   61% 18 5   64%
paintmaskanimator/main_window_export.py ExportController.psd_dialog   0% 38 38 0   0% 16 0   0%
paintmaskanimator/main_window_export.py ExportController.key_sequence   73% 85 23 0   62% 32 10   70%
paintmaskanimator/main_window_export.py ExportController.mp4   0% 25 25 0   0% 8 0   0%
paintmaskanimator/main_window_export.py ExportController.shadow_folder_names   100% 2 0 0   100% 0 0   100%
paintmaskanimator/main_window_export.py ExportController.shadow_materials   84% 25 4 0   71% 14 4   79%
paintmaskanimator/main_window_export.py ExportController.shadow_sequence   0% 11 11 0   0% 6 0   0%
paintmaskanimator/main_window_export.py ExportController.write_shadow_sequence   79% 24 5 0   88% 8 1   81%
paintmaskanimator/main_window_export.py (no function)   100% 45 0 3   100% 0 0   100%
paintmaskanimator/main_window_import.py _ClipReadWorker.__init__   100% 5 0 0   100% 0 0   100%
paintmaskanimator/main_window_import.py _ClipReadWorker.run   0% 5 5 0   100% 0 0   0%
paintmaskanimator/main_window_import.py _ClipImportDialog.__init__   100% 14 0 0   100% 0 0   100%
paintmaskanimator/main_window_import.py _ClipImportDialog.reject   100% 1 0 0   100% 0 0   100%
paintmaskanimator/main_window_import.py _ClipImportDialog.closeEvent   0% 1 1 0   100% 0 0   0%
paintmaskanimator/main_window_import.py _ClipProgressDisplay.__init__   100% 3 0 0   100% 0 0   100%
paintmaskanimator/main_window_import.py _ClipProgressDisplay.update   100% 6 0 0   100% 2 0   100%
paintmaskanimator/main_window_import.py ImportController.__init__   100% 1 0 0   100% 0 0   100%
paintmaskanimator/main_window_import.py ImportController.clip_animation_dialog   0% 4 4 0   0% 2 0   0%
paintmaskanimator/main_window_import.py ImportController._clip_import_needs_confirmation   67% 6 2 0   50% 4 2   60%
paintmaskanimator/main_window_import.py ImportController._confirm_replace_for_clip_import   100% 1 0 0   100% 0 0   100%
paintmaskanimator/main_window_import.py ImportController._confirm_replace_document   12% 17 15 0   17% 6 1   13%
paintmaskanimator/main_window_import.py ImportController._read_clip_with_progress   88% 26 3 0   67% 6 2   84%
paintmaskanimator/main_window_import.py ImportController.clip_animation   88% 32 4 0   71% 14 4   83%
paintmaskanimator/main_window_import.py ImportController.cut_folder_dialog   0% 4 4 0   0% 2 0   0%
paintmaskanimator/main_window_import.py ImportController.cut_folder   88% 25 3 0   75% 8 2   85%
paintmaskanimator/main_window_import.py ImportController.read_cut_folder   88% 51 6 0   77% 26 6   84%
paintmaskanimator/main_window_import.py ImportController.read_cut_folder.load   47% 15 8 0   67% 6 2   52%
paintmaskanimator/main_window_import.py ImportController.read_cut_folder.column_images   100% 1 0 0   100% 0 0   100%
paintmaskanimator/main_window_import.py ImportController._replace_document   97% 72 2 0   88% 8 1   96%
paintmaskanimator/main_window_import.py ImportController._parse_xdts_timesheet   85% 79 12 0   73% 44 12   80%
paintmaskanimator/main_window_import.py ImportController._parse_xdts_timesheet.column_group   67% 9 3 0   50% 6 3   60%
paintmaskanimator/main_window_import.py ImportController.apply_xdts_layer_bindings   0% 58 58 0   0% 26 0   0%
paintmaskanimator/main_window_import.py ImportController.psd_dialog   0% 73 73 0   0% 30 0   0%
paintmaskanimator/main_window_import.py (no function)   100% 47 0 3   100% 0 0   100%
paintmaskanimator/main_window_initial_state.py InitialStateController.__init__   100% 1 0 0   100% 0 0   100%
paintmaskanimator/main_window_initial_state.py InitialStateController.import_line_art_dialog   100% 2 0 0   100% 0 0   100%
paintmaskanimator/main_window_initial_state.py InitialStateController.import_line_art   100% 1 0 0   100% 0 0   100%
paintmaskanimator/main_window_initial_state.py InitialStateController.import_clip_line_art_dialog   100% 2 0 0   100% 0 0   100%
paintmaskanimator/main_window_initial_state.py InitialStateController.import_clip_line_art   100% 1 0 0   100% 0 0   100%
paintmaskanimator/main_window_initial_state.py InitialStateController._import_line_art   100% 54 0 0   100% 24 0   100%
paintmaskanimator/main_window_initial_state.py InitialStateController._import_line_art.match   100% 24 0 0   100% 14 0   100%
paintmaskanimator/main_window_initial_state.py InitialStateController._import_line_art.snapshot   100% 1 0 0   100% 0 0   100%
paintmaskanimator/main_window_initial_state.py InitialStateController.cells   83% 6 1 0   50% 2 1   75%
paintmaskanimator/main_window_initial_state.py InitialStateController.count   100% 2 0 0   100% 0 0   100%
paintmaskanimator/main_window_initial_state.py InitialStateController.keep   69% 16 5 0   50% 8 2   62%
paintmaskanimator/main_window_initial_state.py InitialStateController.clear   0% 15 15 0   0% 6 0   0%
paintmaskanimator/main_window_initial_state.py InitialStateController.offer_after_import   100% 19 0 0   83% 6 1   96%
paintmaskanimator/main_window_initial_state.py InitialStateController.set_compare   100% 14 0 0   100% 6 0   100%
paintmaskanimator/main_window_initial_state.py (no function)   100% 24 0 3   100% 0 0   100%
paintmaskanimator/main_window_input.py InputMixin._is_color_chart_widget   67% 9 3 0   75% 4 1   69%
paintmaskanimator/main_window_input.py InputMixin._normalize_shortcut_token   100% 3 0 0   100% 0 0   100%
paintmaskanimator/main_window_input.py InputMixin._shortcut_tokens   88% 8 1 0   75% 4 1   83%
paintmaskanimator/main_window_input.py InputMixin._event_key_token   100% 5 0 0   100% 2 0   100%
paintmaskanimator/main_window_input.py InputMixin._sync_modifier_tokens   100% 5 0 0   100% 4 0   100%
paintmaskanimator/main_window_input.py InputMixin._widget_in_timeline   100% 1 0 0   100% 0 0   100%
paintmaskanimator/main_window_input.py InputMixin._hand_scroll_area_for_widget   78% 9 2 0   75% 8 2   76%
paintmaskanimator/main_window_input.py InputMixin._mouse_global_position   67% 3 1 0   50% 2 1   60%
paintmaskanimator/main_window_input.py InputMixin._auxiliary_cursor_targets   100% 1 0 0   100% 0 0   100%
paintmaskanimator/main_window_input.py InputMixin._update_auxiliary_hold_cursors   50% 18 9 0   88% 8 1   62%
paintmaskanimator/main_window_input.py InputMixin._finish_auxiliary_hold_drag   0% 10 10 0   0% 2 0   0%
paintmaskanimator/main_window_input.py InputMixin._handle_auxiliary_hold_event   30% 76 53 0   44% 32 8   34%
paintmaskanimator/main_window_input.py InputMixin._update_canvas_hold_operation   95% 19 1 0   90% 10 1   93%
paintmaskanimator/main_window_input.py InputMixin._space_tap_interrupted   100% 1 0 0   100% 0 0   100%
paintmaskanimator/main_window_input.py InputMixin._handle_space_tap   100% 14 0 0   100% 10 0   100%
paintmaskanimator/main_window_input.py InputMixin.eventFilter   74% 175 46 0   70% 108 20   72%
paintmaskanimator/main_window_input.py (no function)   100% 33 0 0   100% 0 0   100%
paintmaskanimator/main_window_layer_ops.py LayerOpsController.__init__   100% 1 0 0   100% 0 0   100%
paintmaskanimator/main_window_layer_ops.py LayerOpsController._indices_from_rows   100% 7 0 0   75% 4 1   91%
paintmaskanimator/main_window_layer_ops.py LayerOpsController.add_fast   100% 5 0 0   100% 0 0   100%
paintmaskanimator/main_window_layer_ops.py LayerOpsController.duplicate_rows   0% 14 14 0   0% 6 0   0%
paintmaskanimator/main_window_layer_ops.py LayerOpsController.merge_rows   0% 62 62 0   0% 22 0   0%
paintmaskanimator/main_window_layer_ops.py LayerOpsController.delete_rows   0% 16 16 0   0% 8 0   0%
paintmaskanimator/main_window_layer_ops.py LayerOpsController.move_row   0% 32 32 0   0% 8 0   0%
paintmaskanimator/main_window_layer_ops.py LayerOpsController.rename_row   0% 12 12 0   0% 8 0   0%
paintmaskanimator/main_window_layer_ops.py LayerOpsController.on_selected   0% 12 12 0   0% 6 0   0%
paintmaskanimator/main_window_layer_ops.py LayerOpsController.set_visibility_row   0% 6 6 0   0% 4 0   0%
paintmaskanimator/main_window_layer_ops.py LayerOpsController.set_opacity_row   0% 9 9 0   0% 6 0   0%
paintmaskanimator/main_window_layer_ops.py LayerOpsController.set_draft_rows   95% 21 1 0   75% 8 2   90%
paintmaskanimator/main_window_layer_ops.py LayerOpsController._copy_display_properties   100% 1 0 0   100% 0 0   100%
paintmaskanimator/main_window_layer_ops.py (no function)   100% 25 0 3   100% 0 0   100%
paintmaskanimator/main_window_line_ops.py LineOpsController.__init__   100% 1 0 0   100% 0 0   100%
paintmaskanimator/main_window_line_ops.py LineOpsController._image_contains_rgb   75% 8 2 0   50% 4 2   67%
paintmaskanimator/main_window_line_ops.py LineOpsController._mask_contours   95% 57 3 0   86% 28 4   92%
paintmaskanimator/main_window_line_ops.py LineOpsController._mask_contours.turn_priority   100% 3 0 0   100% 0 0   100%
paintmaskanimator/main_window_line_ops.py LineOpsController._largest_mask_outer_contour   0% 2 2 0   100% 0 0   0%
paintmaskanimator/main_window_line_ops.py LineOpsController._largest_contour   75% 4 1 0   50% 2 1   67%
paintmaskanimator/main_window_line_ops.py LineOpsController._largest_contour.area   100% 2 0 0   100% 0 0   100%
paintmaskanimator/main_window_line_ops.py LineOpsController.swap_main_sub   100% 5 0 0   100% 0 0   100%
paintmaskanimator/main_window_line_ops.py LineOpsController.reset_main_sub   0% 7 7 0   0% 2 0   0%
paintmaskanimator/main_window_line_ops.py LineOpsController.toggle_silhouette   76% 17 4 0   50% 6 3   70%
paintmaskanimator/main_window_line_ops.py LineOpsController.choose_transform_mesh_grid   0% 26 26 0   0% 8 0   0%
paintmaskanimator/main_window_line_ops.py LineOpsController.start_wire_transform   70% 23 7 0   33% 6 2   62%
paintmaskanimator/main_window_line_ops.py LineOpsController._qimage_rgba_array   0% 1 1 0   100% 0 0   0%
paintmaskanimator/main_window_line_ops.py LineOpsController._replacement_mapping_for_aligned_images   0% 22 22 0   0% 10 0   0%
paintmaskanimator/main_window_line_ops.py LineOpsController.register_same_image_replacements   0% 34 34 0   0% 20 0   0%
paintmaskanimator/main_window_line_ops.py LineOpsController.main_line_repaint   0% 97 97 0   0% 34 0   0%
paintmaskanimator/main_window_line_ops.py LineOpsController.remove_dust_fill_surrounding   71% 31 9 0   50% 8 4   67%
paintmaskanimator/main_window_line_ops.py LineOpsController.remove_dust_fill_surrounding.component_list   83% 30 5 0   81% 16 3   83%
paintmaskanimator/main_window_line_ops.py LineOpsController.remove_dust_fill_surrounding.despeckle   35% 74 48 0   23% 48 7   30%
paintmaskanimator/main_window_line_ops.py (no function)   100% 37 0 3   100% 0 0   100%
paintmaskanimator/main_window_onion.py OnionSkinController.__init__   100% 1 0 0   100% 0 0   100%
paintmaskanimator/main_window_onion.py OnionSkinController.set_all_layers   0% 3 3 0   100% 0 0   0%
paintmaskanimator/main_window_onion.py OnionSkinController.set_enabled   0% 3 3 0   100% 0 0   0%
paintmaskanimator/main_window_onion.py OnionSkinController.toggle_settings_popup   57% 7 3 0   25% 4 1   45%
paintmaskanimator/main_window_onion.py OnionSkinController.show_settings   82% 17 3 0   25% 4 1   71%
paintmaskanimator/main_window_onion.py OnionSkinController._settings_browser_destroyed   100% 7 0 0   50% 2 1   89%
paintmaskanimator/main_window_onion.py OnionSkinController.apply_browser_settings   0% 25 25 0   0% 2 0   0%
paintmaskanimator/main_window_onion.py OnionSkinController.sync_browser_from_canvas   0% 5 5 0   0% 2 0   0%
paintmaskanimator/main_window_onion.py OnionSkinController.finish_browser_interaction   0% 3 3 0   0% 2 0   0%
paintmaskanimator/main_window_onion.py OnionSkinController.center_canvas_between_shifts   0% 50 50 0   100% 0 0   0%
paintmaskanimator/main_window_onion.py OnionSkinController.center_canvas_between_shifts.relative_shift   0% 3 3 0   100% 0 0   0%
paintmaskanimator/main_window_onion.py (no function)   100% 19 0 3   100% 0 0   100%
paintmaskanimator/main_window_project_io.py ProjectIOController.__init__   100% 2 0 0   100% 0 0   100%
paintmaskanimator/main_window_project_io.py ProjectIOController.recent_projects   75% 4 1 0   50% 2 1   67%
paintmaskanimator/main_window_project_io.py ProjectIOController.remember_recent   67% 6 2 0   100% 0 0   67%
paintmaskanimator/main_window_project_io.py ProjectIOController.forget_recent   100% 2 0 0   100% 0 0   100%
paintmaskanimator/main_window_project_io.py ProjectIOController.clear_recent   100% 1 0 0   100% 0 0   100%
paintmaskanimator/main_window_project_io.py ProjectIOController.fill_recent_menu   100% 15 0 0   100% 4 0   100%
paintmaskanimator/main_window_project_io.py ProjectIOController.open_recent   80% 5 1 0   50% 2 1   71%
paintmaskanimator/main_window_project_io.py ProjectIOController.update_title   100% 5 0 0   100% 2 0   100%
paintmaskanimator/main_window_project_io.py ProjectIOController.save   0% 3 3 0   0% 2 0   0%
paintmaskanimator/main_window_project_io.py ProjectIOController.save_as   73% 11 3 0   50% 6 3   65%
paintmaskanimator/main_window_project_io.py ProjectIOController.write   71% 14 4 0   100% 0 0   71%
paintmaskanimator/main_window_project_io.py ProjectIOController.open_dialog   100% 3 0 0   50% 2 1   80%
paintmaskanimator/main_window_project_io.py ProjectIOController._content_signature   100% 8 0 0   100% 2 0   100%
paintmaskanimator/main_window_project_io.py ProjectIOController._content_signature.layer_signature   100% 1 0 0   100% 0 0   100%
paintmaskanimator/main_window_project_io.py ProjectIOController.mark_saved   100% 2 0 0   100% 0 0   100%
paintmaskanimator/main_window_project_io.py ProjectIOController.has_unsaved_changes   100% 1 0 0   100% 0 0   100%
paintmaskanimator/main_window_project_io.py ProjectIOController.confirm_save_before_close   100% 17 0 0   100% 4 0   100%
paintmaskanimator/main_window_project_io.py ProjectIOController.confirm_save_before_dropped   82% 17 3 0   50% 6 1   74%
paintmaskanimator/main_window_project_io.py ProjectIOController.open_dropped   83% 6 1 0   75% 4 1   80%
paintmaskanimator/main_window_project_io.py ProjectIOController.open   92% 90 7 0   75% 4 1   91%
paintmaskanimator/main_window_project_io.py ProjectIOController.open.normalized_onion_levels   53% 15 7 0   50% 8 2   52%
paintmaskanimator/main_window_project_io.py (no function)   100% 35 0 3   100% 0 0   100%
paintmaskanimator/main_window_reference_check.py _cell_pixels   100% 1 0 0   100% 0 0   100%
paintmaskanimator/main_window_reference_check.py _color_label   100% 3 0 0   100% 2 0   100%
paintmaskanimator/main_window_reference_check.py _swatch   100% 5 0 0   100% 2 0   100%
paintmaskanimator/main_window_reference_check.py _split_reference_only   100% 8 0 0   100% 4 0   100%
paintmaskanimator/main_window_reference_check.py ReferenceCheckDialog.__init__   88% 34 4 0   88% 8 1   88%
paintmaskanimator/main_window_reference_check.py ReferenceCheckDialog._describe   85% 13 2 0   83% 12 2   84%
paintmaskanimator/main_window_reference_check.py ReferenceCheckDialog._on_current   75% 4 1 0   50% 2 1   67%
paintmaskanimator/main_window_reference_check.py ReferenceCheckController.__init__   100% 3 0 0   100% 0 0   100%
paintmaskanimator/main_window_reference_check.py ReferenceCheckController._cells   100% 3 0 0   100% 0 0   100%
paintmaskanimator/main_window_reference_check.py ReferenceCheckController.run   60% 20 8 0   50% 8 4   57%
paintmaskanimator/main_window_reference_check.py ReferenceCheckController.show_list   60% 5 2 0   50% 2 1   57%
paintmaskanimator/main_window_reference_check.py ReferenceCheckController.collect   89% 37 4 0   75% 24 4   84%
paintmaskanimator/main_window_reference_check.py ReferenceCheckController.show_entry   90% 10 1 0   50% 2 1   83%
paintmaskanimator/main_window_reference_check.py ReferenceCheckController._finding_mask   70% 10 3 0   50% 4 2   64%
paintmaskanimator/main_window_reference_check.py (no function)   100% 30 0 3   100% 0 0   100%
paintmaskanimator/main_window_scope_ops.py ScopeOpsController.__init__   100% 1 0 0   100% 0 0   100%
paintmaskanimator/main_window_scope_ops.py ScopeOpsController.current_frame   100% 1 0 0   100% 0 0   100%
paintmaskanimator/main_window_scope_ops.py ScopeOpsController.run_over   100% 17 0 0   100% 4 0   100%
paintmaskanimator/main_window_scope_ops.py ScopeOpsController.run_over.report   100% 5 0 0   100% 2 0   100%
paintmaskanimator/main_window_scope_ops.py ScopeOpsController.run_over.cancel_requested   100% 2 0 0   100% 0 0   100%
paintmaskanimator/main_window_scope_ops.py ScopeOpsController.invalidate_caches   100% 5 0 0   75% 4 1   89%
paintmaskanimator/main_window_scope_ops.py (no function)   100% 14 0 3   100% 0 0   100%
paintmaskanimator/main_window_shortcuts.py _key_texts   100% 1 0 0   100% 0 0   100%
paintmaskanimator/main_window_shortcuts.py _is_hold   100% 1 0 0   100% 0 0   100%
paintmaskanimator/main_window_shortcuts.py _state   100% 4 0 0   100% 2 0   100%
paintmaskanimator/main_window_shortcuts.py ShortcutStore.__init__   100% 3 0 0   100% 0 0   100%
paintmaskanimator/main_window_shortcuts.py ShortcutStore.register_actions   100% 12 0 0   90% 10 1   95%
paintmaskanimator/main_window_shortcuts.py ShortcutStore._panel_actions   75% 4 1 0   50% 2 1   67%
paintmaskanimator/main_window_shortcuts.py ShortcutStore.register_panel_actions   91% 11 1 0   83% 6 1   88%
paintmaskanimator/main_window_shortcuts.py ShortcutStore._stored_overrides   100% 3 0 0   100% 0 0   100%
paintmaskanimator/main_window_shortcuts.py ShortcutStore.load   90% 31 3 0   80% 20 2   86%
paintmaskanimator/main_window_shortcuts.py ShortcutStore.save   100% 6 0 0   100% 4 0   100%
paintmaskanimator/main_window_shortcuts.py (no function)   100% 21 0 3   100% 0 0   100%
paintmaskanimator/main_window_time_remap.py TimeRemapController.__init__   100% 1 0 0   100% 0 0   100%
paintmaskanimator/main_window_time_remap.py TimeRemapController._parse_toei_timesheet   12% 65 57 0   5% 40 2   10%
paintmaskanimator/main_window_time_remap.py TimeRemapController._parse_after_effects_time_remap   97% 61 2 0   93% 30 2   96%
paintmaskanimator/main_window_time_remap.py TimeRemapController.parse_text   91% 11 1 0   88% 8 1   89%
paintmaskanimator/main_window_time_remap.py TimeRemapController._time_remap_source_bank   69% 29 9 0   50% 22 5   61%
paintmaskanimator/main_window_time_remap.py TimeRemapController.missing_numbers   100% 1 0 0   100% 0 0   100%
paintmaskanimator/main_window_time_remap.py TimeRemapController.keep_unplaced_in_archive   100% 15 0 0   80% 10 2   92%
paintmaskanimator/main_window_time_remap.py TimeRemapController._apply_time_remap_states_to_layer   70% 44 13 0   56% 16 3   67%
paintmaskanimator/main_window_time_remap.py TimeRemapController.apply_to_active_layer   86% 49 7 0   61% 18 7   79%
paintmaskanimator/main_window_time_remap.py TimeRemapController.show_paste_dialog   0% 21 21 0   0% 8 0   0%
paintmaskanimator/main_window_time_remap.py TimeRemapController.paste_on_timeline   53% 34 16 0   40% 10 4   50%
paintmaskanimator/main_window_time_remap.py TimeRemapController.open_dropped   0% 4 4 0   0% 2 0   0%
paintmaskanimator/main_window_time_remap.py TimeRemapController.timeline_states   88% 17 2 0   75% 8 2   84%
paintmaskanimator/main_window_time_remap.py TimeRemapController.after_effects_text   100% 21 0 0   100% 12 0   100%
paintmaskanimator/main_window_time_remap.py TimeRemapController.copy_from_timeline   91% 11 1 0   50% 2 1   85%
paintmaskanimator/main_window_time_remap.py (no function)   100% 35 0 3   100% 0 0   100%
paintmaskanimator/main_window_timeline_ops.py TimelineOpsController.__init__   100% 1 0 0   100% 0 0   100%
paintmaskanimator/main_window_timeline_ops.py TimelineOpsController.set_mode   86% 21 3 0   50% 10 3   74%
paintmaskanimator/main_window_timeline_ops.py TimelineOpsController._navigate_sequence_number   0% 15 15 0   0% 4 0   0%
paintmaskanimator/main_window_timeline_ops.py TimelineOpsController.jump_boundary   83% 6 1 0   50% 2 1   75%
paintmaskanimator/main_window_timeline_ops.py TimelineOpsController.resize_range   82% 17 3 0   62% 8 3   76%
paintmaskanimator/main_window_timeline_ops.py TimelineOpsController.previous_frame   0% 3 3 0   0% 2 0   0%
paintmaskanimator/main_window_timeline_ops.py TimelineOpsController.next_frame   0% 3 3 0   0% 2 0   0%
paintmaskanimator/main_window_timeline_ops.py TimelineOpsController.previous_key   0% 3 3 0   0% 2 0   0%
paintmaskanimator/main_window_timeline_ops.py TimelineOpsController.next_key   0% 3 3 0   0% 2 0   0%
paintmaskanimator/main_window_timeline_ops.py TimelineOpsController.normalize_numbers   73% 15 4 0   62% 8 3   70%
paintmaskanimator/main_window_timeline_ops.py TimelineOpsController.apply_normalize_numbers   91% 11 1 0   75% 4 1   87%
paintmaskanimator/main_window_timeline_ops.py TimelineOpsController.create_blank_key   62% 8 3 0   50% 4 2   58%
paintmaskanimator/main_window_timeline_ops.py TimelineOpsController.delete_frame   0% 17 17 0   0% 6 0   0%
paintmaskanimator/main_window_timeline_ops.py TimelineOpsController._restore_selection   0% 10 10 0   0% 6 0   0%
paintmaskanimator/main_window_timeline_ops.py TimelineOpsController.move_selection   0% 84 84 0   0% 36 0   0%
paintmaskanimator/main_window_timeline_ops.py TimelineOpsController.resize_exposure   60% 98 39 0   40% 30 6   55%
paintmaskanimator/main_window_timeline_ops.py TimelineOpsController.move_cell   0% 14 14 0   0% 6 0   0%
paintmaskanimator/main_window_timeline_ops.py TimelineOpsController.copy_cell   0% 35 35 0   0% 6 0   0%
paintmaskanimator/main_window_timeline_ops.py TimelineOpsController.recall_sequence_number   93% 28 2 0   50% 6 3   85%
paintmaskanimator/main_window_timeline_ops.py TimelineOpsController.select_exposure   43% 21 12 0   50% 8 2   45%
paintmaskanimator/main_window_timeline_ops.py TimelineOpsController._cell_target   78% 9 2 0   50% 4 2   69%
paintmaskanimator/main_window_timeline_ops.py TimelineOpsController._cell_block   78% 9 2 0   50% 4 2   69%
paintmaskanimator/main_window_timeline_ops.py TimelineOpsController._after_cell_edit   100% 7 0 0   100% 0 0   100%
paintmaskanimator/main_window_timeline_ops.py TimelineOpsController.clear_cell   89% 9 1 0   50% 2 1   82%
paintmaskanimator/main_window_timeline_ops.py TimelineOpsController.copy_cell_to_clipboard   78% 9 2 0   50% 2 1   73%
paintmaskanimator/main_window_timeline_ops.py TimelineOpsController.cut_cell_to_clipboard   80% 5 1 0   50% 2 1   71%
paintmaskanimator/main_window_timeline_ops.py TimelineOpsController.paste_cell_from_clipboard   95% 21 1 0   75% 4 1   92%
paintmaskanimator/main_window_timeline_ops.py TimelineOpsController.new_animation_cell   93% 15 1 0   50% 2 1   88%
paintmaskanimator/main_window_timeline_ops.py TimelineOpsController.split_clip   91% 22 2 0   67% 6 2   86%
paintmaskanimator/main_window_timeline_ops.py TimelineOpsController.merge_clip   93% 15 1 0   75% 4 1   89%
paintmaskanimator/main_window_timeline_ops.py TimelineOpsController.insert_frame_at   90% 10 1 0   50% 2 1   83%
paintmaskanimator/main_window_timeline_ops.py TimelineOpsController.delete_frame_at   65% 17 6 0   33% 6 2   57%
paintmaskanimator/main_window_timeline_ops.py (no function)   100% 42 0 3   100% 0 0   100%
paintmaskanimator/main_window_tool_hold.py ToolHoldController.__init__   100% 4 0 0   100% 0 0   100%
paintmaskanimator/main_window_tool_hold.py ToolHoldController.key_pressed   100% 2 0 0   50% 2 1   75%
paintmaskanimator/main_window_tool_hold.py ToolHoldController.select   93% 14 1 0   75% 4 1   89%
paintmaskanimator/main_window_tool_hold.py ToolHoldController.key_released   100% 7 0 0   100% 4 0   100%
paintmaskanimator/main_window_tool_hold.py ToolHoldController.release_all   67% 3 1 0   50% 2 1   60%
paintmaskanimator/main_window_tool_hold.py ToolHoldController._revert   100% 2 0 0   100% 0 0   100%
paintmaskanimator/main_window_tool_hold.py ToolHoldController._try_revert   90% 10 1 0   67% 6 2   81%
paintmaskanimator/main_window_tool_hold.py (no function)   100% 24 0 3   100% 0 0   100%
paintmaskanimator/main_window_tween.py TweenController.__init__   100% 1 0 0   100% 0 0   100%
paintmaskanimator/main_window_tween.py TweenController._refresh_timeline_tween_marker   100% 1 0 0   100% 0 0   100%
paintmaskanimator/main_window_tween.py TweenController._close_tween_command_popup   100% 5 0 0   100% 2 0   100%
paintmaskanimator/main_window_tween.py TweenController._show_tween_command_popup   100% 17 0 0   100% 0 0   100%
paintmaskanimator/main_window_tween.py TweenController.set_reverse_generation   0% 11 11 0   0% 4 0   0%
paintmaskanimator/main_window_tween.py TweenController.enable   81% 21 4 0   60% 10 4   74%
paintmaskanimator/main_window_tween.py TweenController._start   87% 39 5 0   62% 8 3   83%
paintmaskanimator/main_window_tween.py TweenController._restore_reedit   0% 4 4 0   0% 2 0   0%
paintmaskanimator/main_window_tween.py TweenController._member_numbers   100% 7 0 0   100% 2 0   100%
paintmaskanimator/main_window_tween.py TweenController.edit   80% 30 6 0   58% 12 5   74%
paintmaskanimator/main_window_tween.py TweenController.release   93% 14 1 0   75% 4 1   89%
paintmaskanimator/main_window_tween.py TweenController.commit_transform_or_tween   100% 7 0 0   100% 4 0   100%
paintmaskanimator/main_window_tween.py TweenController.cancel_transform_or_tween   100% 14 0 0   100% 6 0   100%
paintmaskanimator/main_window_tween.py TweenController.commit_transform   79% 135 29 0   57% 28 8   75%
paintmaskanimator/main_window_tween.py (no function)   100% 27 0 3   100% 0 0   100%
paintmaskanimator/main_window_ui_build.py UIBuildMixin.make_shortcut_action   100% 7 0 0   100% 2 0   100%
paintmaskanimator/main_window_ui_build.py UIBuildMixin.build_action_panel   100% 1 0 0   100% 0 0   100%
paintmaskanimator/main_window_ui_build.py UIBuildMixin.build_actions   100% 164 0 0   100% 4 0   100%
paintmaskanimator/main_window_ui_build.py UIBuildMixin.build_menu   100% 67 0 0   100% 0 0   100%
paintmaskanimator/main_window_ui_build.py UIBuildMixin._on_system_color_scheme_changed   0% 2 2 0   0% 2 0   0%
paintmaskanimator/main_window_ui_build.py UIBuildMixin.show_preferences   100% 6 0 0   100% 4 0   100%
paintmaskanimator/main_window_ui_build.py UIBuildMixin._set_color_chart_visible   67% 6 2 0   50% 4 2   60%
paintmaskanimator/main_window_ui_build.py UIBuildMixin._save_canvas_snapshot_clicked   100% 2 0 0   100% 0 0   100%
paintmaskanimator/main_window_ui_build.py UIBuildMixin._apply_canvas_bar_icons   100% 2 0 0   100% 2 0   100%
paintmaskanimator/main_window_ui_build.py UIBuildMixin._refresh_theme_dependent_ui   100% 17 0 0   50% 14 7   77%
paintmaskanimator/main_window_ui_build.py UIBuildMixin.build_ui   100% 227 0 0   100% 14 0   100%
paintmaskanimator/main_window_ui_build.py UIBuildMixin._resize_tool_selector_area   100% 20 0 0   62% 8 3   89%
paintmaskanimator/main_window_ui_build.py UIBuildMixin.connect_signals   100% 137 0 0   100% 0 0   100%
paintmaskanimator/main_window_ui_build.py UIBuildMixin.show_about_dialog   0% 2 2 0   100% 0 0   0%
paintmaskanimator/main_window_ui_build.py (no function)   100% 34 0 0   100% 0 0   100%
paintmaskanimator/main_window_update_notice.py UpdateNoticeController.__init__   100% 9 0 0   100% 0 0   100%
paintmaskanimator/main_window_update_notice.py UpdateNoticeController.start   29% 7 5 0   50% 2 1   33%
paintmaskanimator/main_window_update_notice.py UpdateNoticeController.check_in_background   100% 5 0 0   100% 2 0   100%
paintmaskanimator/main_window_update_notice.py UpdateNoticeController.check_in_background.work   50% 6 3 0   100% 0 0   50%
paintmaskanimator/main_window_update_notice.py UpdateNoticeController._on_result   100% 2 0 0   100% 0 0   100%
paintmaskanimator/main_window_update_notice.py UpdateNoticeController.apply_result   100% 9 0 0   100% 4 0   100%
paintmaskanimator/main_window_update_notice.py UpdateNoticeController._title   100% 1 0 0   100% 0 0   100%
paintmaskanimator/main_window_update_notice.py UpdateNoticeController._build_menu   100% 9 0 0   100% 0 0   100%
paintmaskanimator/main_window_update_notice.py UpdateNoticeController._show   88% 17 2 0   50% 2 1   84%
paintmaskanimator/main_window_update_notice.py UpdateNoticeController._style_button   100% 4 0 0   100% 0 0   100%
paintmaskanimator/main_window_update_notice.py UpdateNoticeController.refresh_style   50% 2 1 0   50% 2 1   50%
paintmaskanimator/main_window_update_notice.py UpdateNoticeController._hide   82% 11 2 0   83% 6 1   82%
paintmaskanimator/main_window_update_notice.py UpdateNoticeController.visible   100% 1 0 0   100% 0 0   100%
paintmaskanimator/main_window_update_notice.py UpdateNoticeController.install   62% 8 3 0   50% 4 2   58%
paintmaskanimator/main_window_update_notice.py UpdateNoticeController.open_release_notes   0% 3 3 0   100% 0 0   0%
paintmaskanimator/main_window_update_notice.py UpdateNoticeController.skip_this_version   80% 5 1 0   50% 2 1   71%
paintmaskanimator/main_window_update_notice.py (no function)   100% 33 0 3   100% 0 0   100%
paintmaskanimator/main_window_used_color.py UsedColorController.__init__   100% 1 0 0   100% 0 0   100%
paintmaskanimator/main_window_used_color.py UsedColorController.schedule_refresh   100% 2 0 0   100% 0 0   100%
paintmaskanimator/main_window_used_color.py UsedColorController._refresh_without_delay   100% 3 0 0   100% 0 0   100%
paintmaskanimator/main_window_used_color.py UsedColorController.undo   80% 5 1 0   50% 2 1   71%
paintmaskanimator/main_window_used_color.py UsedColorController.redo   80% 5 1 0   50% 2 1   71%
paintmaskanimator/main_window_used_color.py UsedColorController.push_palette_history   100% 2 0 0   100% 0 0   100%
paintmaskanimator/main_window_used_color.py UsedColorController.jump_history   0% 17 17 0   0% 12 0   0%
paintmaskanimator/main_window_used_color.py UsedColorController.switch_history_branch   0% 14 14 0   0% 6 0   0%
paintmaskanimator/main_window_used_color.py UsedColorController.refresh_history_panel   100% 3 0 0   50% 2 1   80%
paintmaskanimator/main_window_used_color.py UsedColorController._cache_key   40% 5 3 0   100% 0 0   40%
paintmaskanimator/main_window_used_color.py UsedColorController._layer_signature   75% 8 2 0   75% 4 1   75%
paintmaskanimator/main_window_used_color.py UsedColorController._apply_result   62% 8 3 0   50% 4 2   58%
paintmaskanimator/main_window_used_color.py UsedColorController._extract   80% 10 2 0   67% 6 2   75%
paintmaskanimator/main_window_used_color.py UsedColorController.refresh   71% 66 19 0   68% 40 9   70%
paintmaskanimator/main_window_used_color.py UsedColorController.apply_palette_isolate_color   0% 1 1 0   100% 0 0   0%
paintmaskanimator/main_window_used_color.py UsedColorController.apply_palette_replacements   71% 51 15 0   50% 22 3   64%
paintmaskanimator/main_window_used_color.py UsedColorController.apply_palette_replacements.replace_colors   72% 39 11 0   56% 16 3   67%
paintmaskanimator/main_window_used_color.py UsedColorController.apply_palette_delete   71% 17 5 0   60% 10 4   67%
paintmaskanimator/main_window_used_color.py UsedColorController.apply_palette_merge   0% 8 8 0   0% 4 0   0%
paintmaskanimator/main_window_used_color.py UsedColorController.refresh_with_counter   100% 8 0 0   100% 0 0   100%
paintmaskanimator/main_window_used_color.py UsedColorController.save_replacement_set   53% 15 7 0   50% 4 2   53%
paintmaskanimator/main_window_used_color.py UsedColorController.load_replacement_set   53% 15 7 0   50% 6 3   52%
paintmaskanimator/main_window_used_color.py UsedColorController.adjust_used_color_hsv   90% 20 2 0   83% 6 1   88%
paintmaskanimator/main_window_used_color.py UsedColorController.adjust_used_color_hsv.preview   100% 2 0 0   100% 0 0   100%
paintmaskanimator/main_window_used_color.py (no function)   100% 37 0 3   100% 0 0   100%
paintmaskanimator/main_window_view_preview.py channel_labels   100% 1 0 0   100% 0 0   100%
paintmaskanimator/main_window_view_preview.py ViewPreviewController.__init__   100% 2 0 0   100% 0 0   100%
paintmaskanimator/main_window_view_preview.py ViewPreviewController._settings   100% 1 0 0   100% 0 0   100%
paintmaskanimator/main_window_view_preview.py ViewPreviewController.set_map_colors   100% 2 0 0   100% 0 0   100%
paintmaskanimator/main_window_view_preview.py ViewPreviewController.set_flip_horizontal   100% 2 0 0   100% 0 0   100%
paintmaskanimator/main_window_view_preview.py ViewPreviewController.set_flip_vertical   100% 2 0 0   100% 0 0   100%
paintmaskanimator/main_window_view_preview.py ViewPreviewController.toggle_map_colors   0% 1 1 0   100% 0 0   0%
paintmaskanimator/main_window_view_preview.py ViewPreviewController.set_palette   100% 2 0 0   100% 0 0   100%
paintmaskanimator/main_window_view_preview.py ViewPreviewController.set_channel   83% 6 1 0   75% 4 1   80%
paintmaskanimator/main_window_view_preview.py ViewPreviewController._channel_chosen   0% 3 3 0   100% 0 0   0%
paintmaskanimator/main_window_view_preview.py ViewPreviewController.set_exposure   100% 5 0 0   50% 2 1   86%
paintmaskanimator/main_window_view_preview.py ViewPreviewController.toggle_exposure   0% 4 4 0   0% 2 0   0%
paintmaskanimator/main_window_view_preview.py ViewPreviewController.sync   100% 22 0 0   50% 10 5   84%
paintmaskanimator/main_window_view_preview.py ViewPreviewController.sync_black_check   100% 4 0 0   50% 2 1   83%
paintmaskanimator/main_window_view_preview.py (no function)   100% 22 0 3   100% 0 0   100%
paintmaskanimator/main_window_workspace.py WorkspaceController.__init__   100% 2 0 0   100% 0 0   100%
paintmaskanimator/main_window_workspace.py WorkspaceController.records   100% 2 0 0   100% 0 0   100%
paintmaskanimator/main_window_workspace.py WorkspaceController.names   100% 1 0 0   100% 0 0   100%
paintmaskanimator/main_window_workspace.py WorkspaceController._changed   100% 4 0 0   100% 2 0   100%
paintmaskanimator/main_window_workspace.py WorkspaceController.reorder   100% 5 0 0   100% 0 0   100%
paintmaskanimator/main_window_workspace.py WorkspaceController.rename   89% 9 1 0   50% 4 2   77%
paintmaskanimator/main_window_workspace.py WorkspaceController.capture   100% 1 0 0   100% 0 0   100%
paintmaskanimator/main_window_workspace.py WorkspaceController.save   89% 9 1 0   50% 2 1   82%
paintmaskanimator/main_window_workspace.py WorkspaceController.apply   67% 15 5 0   38% 8 3   57%
paintmaskanimator/main_window_workspace.py WorkspaceController.clamped_geometry   92% 13 1 0   75% 4 1   88%
paintmaskanimator/main_window_workspace.py WorkspaceController.clamped_geometry.overlap   100% 2 0 0   100% 0 0   100%
paintmaskanimator/main_window_workspace.py WorkspaceController.clamp_floating_windows   75% 8 2 0   75% 4 1   75%
paintmaskanimator/main_window_workspace.py WorkspaceController.remember_default   100% 3 0 0   50% 2 1   80%
paintmaskanimator/main_window_workspace.py WorkspaceController.apply_default   83% 12 2 0   50% 6 3   72%
paintmaskanimator/main_window_workspace.py WorkspaceController.delete   89% 9 1 0   75% 4 1   85%
paintmaskanimator/main_window_workspace.py WorkspaceController.prompt_save   0% 3 3 0   0% 2 0   0%
paintmaskanimator/main_window_workspace.py WorkspaceController.build_menu   100% 2 0 0   100% 0 0   100%
paintmaskanimator/main_window_workspace.py WorkspaceController.refresh_menu   96% 23 1 0   83% 6 1   93%
paintmaskanimator/main_window_workspace.py (no function)   100% 25 0 4   100% 0 0   100%
paintmaskanimator/mask_transform.py homography_matrix   100% 13 0 0   100% 2 0   100%
paintmaskanimator/mask_transform.py _probe_coordinates   100% 3 0 0   100% 0 0   100%
paintmaskanimator/mask_transform.py QuadMapper.__init__   100% 5 0 0   100% 0 0   100%
paintmaskanimator/mask_transform.py QuadMapper.map_band   85% 20 3 0   67% 6 2   81%
paintmaskanimator/mask_transform.py QuadMapper.map_band.combine   100% 3 0 0   100% 0 0   100%
paintmaskanimator/mask_transform.py QuadMapper.forward   71% 7 2 0   100% 0 0   71%
paintmaskanimator/mask_transform.py MeshMapper.__init__   100% 5 0 0   100% 0 0   100%
paintmaskanimator/mask_transform.py MeshMapper.map_band   100% 25 0 0   100% 4 0   100%
paintmaskanimator/mask_transform.py MeshMapper.map_band.raster   97% 29 1 0   83% 6 1   94%
paintmaskanimator/mask_transform.py MeshMapper.forward   100% 16 0 0   100% 0 0   100%
paintmaskanimator/mask_transform.py _sample_labels   100% 13 0 0   100% 2 0   100%
paintmaskanimator/mask_transform.py _probe_axis   100% 4 0 0   100% 0 0   100%
paintmaskanimator/mask_transform.py _majority   100% 15 0 0   100% 0 0   100%
paintmaskanimator/mask_transform.py _area_scale   92% 12 1 0   50% 2 1   86%
paintmaskanimator/mask_transform.py _splat_label   85% 13 2 0   50% 4 2   76%
paintmaskanimator/mask_transform.py render_labels_numpy   94% 34 2 0   83% 12 2   91%
paintmaskanimator/mask_transform.py _protect_lines   90% 10 1 0   67% 6 2   81%
paintmaskanimator/mask_transform.py render_labels   100% 13 0 0   100% 6 0   100%
paintmaskanimator/mask_transform.py labels_to_rgba   100% 5 0 0   100% 0 0   100%
paintmaskanimator/mask_transform.py (no function)   100% 25 0 0   100% 0 0   100%
paintmaskanimator/memo_window.py MemoWindow.__init__   100% 13 0 0   100% 0 0   100%
paintmaskanimator/memo_window.py MemoWindow.text   100% 1 0 0   100% 0 0   100%
paintmaskanimator/memo_window.py MemoWindow.set_text   100% 4 0 0   100% 0 0   100%
paintmaskanimator/memo_window.py (no function)   100% 9 0 0   100% 0 0   100%
paintmaskanimator/models.py Cell.__init__   100% 1 0 0   100% 0 0   100%
paintmaskanimator/models.py Track.__init__   100% 8 0 0   100% 0 0   100%
paintmaskanimator/models.py Track.copy   100% 1 0 0   100% 0 0   100%
paintmaskanimator/models.py _track_property   100% 3 0 0   100% 0 0   100%
paintmaskanimator/models.py _track_property.get   100% 1 0 0   100% 0 0   100%
paintmaskanimator/models.py _track_property.set_value   100% 4 0 0   100% 2 0   100%
paintmaskanimator/models.py _cell_property   100% 3 0 0   100% 0 0   100%
paintmaskanimator/models.py _cell_property.get   100% 1 0 0   100% 0 0   100%
paintmaskanimator/models.py _cell_property.set_value   100% 4 0 0   100% 2 0   100%
paintmaskanimator/models.py Layer.__setattr__   100% 4 0 0   100% 4 0   100%
paintmaskanimator/models.py Layer.clone   100% 3 0 0   100% 0 0   100%
paintmaskanimator/models.py Layer._cell   75% 4 1 0   50% 2 1   67%
paintmaskanimator/models.py Layer._track   75% 4 1 0   50% 2 1   67%
paintmaskanimator/models.py Layer.track_id   0% 1 1 0   100% 0 0   0%
paintmaskanimator/models.py Layer.share_track_with   67% 3 1 0   50% 2 1   60%
paintmaskanimator/models.py Layer.detach_track   100% 1 0 0   100% 0 0   100%
paintmaskanimator/models.py Layer.cell_id   100% 1 0 0   100% 0 0   100%
paintmaskanimator/models.py Layer.share_cell_with   100% 3 0 0   100% 2 0   100%
paintmaskanimator/models.py Layer.detach_cell   100% 2 0 0   100% 0 0   100%
paintmaskanimator/models.py Frame.clone   100% 1 0 0   100% 0 0   100%
paintmaskanimator/models.py default_layer_name   100% 8 0 0   100% 2 0   100%
paintmaskanimator/models.py next_layer_name   100% 5 0 0   100% 2 0   100%
paintmaskanimator/models.py make_frame   100% 2 0 0   100% 0 0   100%
paintmaskanimator/models.py (no function)   100% 63 0 0   100% 2 0   100%
paintmaskanimator/movie_slate.py cut_name_for   100% 6 0 0   75% 4 1   90%
paintmaskanimator/movie_slate.py draw_cut_name   100% 23 0 0   100% 8 0   100%
paintmaskanimator/movie_slate.py (no function)   100% 7 0 0   100% 0 0   100%
paintmaskanimator/native.py validate_backend   100% 3 0 0   100% 2 0   100%
paintmaskanimator/native.py available   100% 1 0 0   100% 0 0   100%
paintmaskanimator/native.py clip_animation_reader   100% 1 0 0   100% 0 0   100%
paintmaskanimator/native.py resolve_exposures   0% 3 3 0   100% 0 0   0%
paintmaskanimator/native.py resolve_timeline   100% 4 0 0   100% 0 0   100%
paintmaskanimator/native.py tint_onion   100% 2 0 0   100% 0 0   100%
paintmaskanimator/native.py unique_colors   100% 1 0 0   100% 0 0   100%
paintmaskanimator/native.py filter_palette   100% 3 0 0   100% 0 0   100%
paintmaskanimator/native.py filter_palette.rgb_tuple   100% 1 0 0   100% 0 0   100%
paintmaskanimator/native.py line_flow_scores   100% 4 0 0   100% 0 0   100%
paintmaskanimator/native.py _as_bytes   100% 1 0 0   100% 0 0   100%
paintmaskanimator/native.py connect_runs   100% 2 0 0   100% 0 0   100%
paintmaskanimator/native.py label_runs   100% 5 0 0   100% 2 0   100%
paintmaskanimator/native.py refine_face   100% 5 0 0   100% 0 0   100%
paintmaskanimator/native.py sample_region   100% 20 0 0   100% 6 0   100%
paintmaskanimator/native.py thin   100% 2 0 0   100% 0 0   100%
paintmaskanimator/native.py _as_mask   100% 1 0 0   100% 0 0   100%
paintmaskanimator/native.py flood_fill   100% 3 0 0   100% 0 0   100%
paintmaskanimator/native.py dilate   100% 2 0 0   100% 0 0   100%
paintmaskanimator/native.py erode   100% 2 0 0   100% 0 0   100%
paintmaskanimator/native.py label_regions   100% 4 0 0   100% 0 0   100%
paintmaskanimator/native.py render_quad_labels   100% 6 0 0   100% 0 0   100%
paintmaskanimator/native.py render_mesh_labels   100% 7 0 0   100% 0 0   100%
paintmaskanimator/native.py surface_guided_palette_labels   100% 5 0 0   100% 0 0   100%
paintmaskanimator/native.py map_known_colors   100% 6 0 0   100% 2 0   100%
paintmaskanimator/native.py region_neighbors   100% 3 0 0   100% 0 0   100%
paintmaskanimator/native.py (no function)   95% 37 2 0   100% 0 0   95%
paintmaskanimator/new_document_dialog.py NewDocumentDialog.__init__   97% 35 1 0   75% 4 1   95%
paintmaskanimator/new_document_dialog.py NewDocumentDialog._sync   100% 13 0 0   83% 6 1   95%
paintmaskanimator/new_document_dialog.py NewDocumentDialog.values   100% 1 0 0   100% 0 0   100%
paintmaskanimator/new_document_dialog.py NewDocumentDialog.paper_id   100% 1 0 0   100% 0 0   100%
paintmaskanimator/new_document_dialog.py (no function)   100% 9 0 0   100% 0 0   100%
paintmaskanimator/normalize_dialog.py number_changes   100% 1 0 0   100% 0 0   100%
paintmaskanimator/normalize_dialog.py NormalizeNumbersDialog.__init__   100% 62 0 0   100% 0 0   100%
paintmaskanimator/normalize_dialog.py NormalizeNumbersDialog.target_layer_indices   100% 2 0 0   100% 0 0   100%
paintmaskanimator/normalize_dialog.py NormalizeNumbersDialog.change_count   100% 2 0 0   100% 0 0   100%
paintmaskanimator/normalize_dialog.py NormalizeNumbersDialog._refresh   100% 22 0 0   90% 10 1   97%
paintmaskanimator/normalize_dialog.py (no function)   100% 10 0 0   100% 0 0   100%
paintmaskanimator/onion.py OnionOpacityGraph.__init__   100% 11 0 0   100% 0 0   100%
paintmaskanimator/onion.py OnionOpacityGraph._default_level   0% 3 3 0   0% 2 0   0%
paintmaskanimator/onion.py OnionOpacityGraph._clear_layout   20% 5 4 0   25% 4 1   22%
paintmaskanimator/onion.py OnionOpacityGraph.set_count   98% 41 1 0   75% 4 1   96%
paintmaskanimator/onion.py OnionOpacityGraph.levels   100% 3 0 0   100% 2 0   100%
paintmaskanimator/onion.py OnionOpacityGraph.set_levels   0% 7 7 0   0% 2 0   0%
paintmaskanimator/onion.py OnionScaleSlider.__init__   100% 11 0 0   100% 0 0   100%
paintmaskanimator/onion.py OnionScaleSlider._step_multiplier   0% 1 1 0   100% 0 0   0%
paintmaskanimator/onion.py OnionScaleSlider.mousePressEvent   0% 11 11 0   0% 2 0   0%
paintmaskanimator/onion.py OnionScaleSlider.mouseMoveEvent   0% 8 8 0   0% 2 0   0%
paintmaskanimator/onion.py OnionScaleSlider.mouseReleaseEvent   0% 9 9 0   0% 2 0   0%
paintmaskanimator/onion.py OnionScaleSlider.keyPressEvent   0% 7 7 0   0% 2 0   0%
paintmaskanimator/onion.py OnionScaleSlider.wheelEvent   0% 7 7 0   0% 2 0   0%
paintmaskanimator/onion.py OnionRotationSlider.__init__   100% 11 0 0   100% 0 0   100%
paintmaskanimator/onion.py OnionRotationSlider._step_units   0% 1 1 0   100% 0 0   0%
paintmaskanimator/onion.py OnionRotationSlider.mousePressEvent   0% 11 11 0   0% 2 0   0%
paintmaskanimator/onion.py OnionRotationSlider.mouseMoveEvent   0% 7 7 0   0% 2 0   0%
paintmaskanimator/onion.py OnionRotationSlider.mouseReleaseEvent   0% 9 9 0   0% 2 0   0%
paintmaskanimator/onion.py OnionRotationSlider.keyPressEvent   0% 7 7 0   0% 2 0   0%
paintmaskanimator/onion.py OnionRotationSlider.wheelEvent   0% 7 7 0   0% 2 0   0%
paintmaskanimator/onion.py OnionSkinSettingsBrowser.__init__   100% 103 0 0   100% 2 0   100%
paintmaskanimator/onion.py OnionSkinSettingsBrowser._compact_spinbox   100% 7 0 0   50% 2 1   89%
paintmaskanimator/onion.py OnionSkinSettingsBrowser._build_direction_page   100% 121 0 0   100% 0 0   100%
paintmaskanimator/onion.py OnionSkinSettingsBrowser._sync_reset_both   0% 3 3 0   100% 0 0   0%
paintmaskanimator/onion.py OnionSkinSettingsBrowser._request_shift_edit   0% 5 5 0   100% 0 0   0%
paintmaskanimator/onion.py OnionSkinSettingsBrowser._request_canvas_position_edit   0% 3 3 0   100% 0 0   0%
paintmaskanimator/onion.py OnionSkinSettingsBrowser.clear_interaction_buttons   0% 4 4 0   0% 2 0   0%
paintmaskanimator/onion.py OnionSkinSettingsBrowser.previous_levels   0% 1 1 0   100% 0 0   0%
paintmaskanimator/onion.py OnionSkinSettingsBrowser.next_levels   0% 1 1 0   100% 0 0   0%
paintmaskanimator/onion.py OnionSkinSettingsBrowser.set_transform_values   0% 21 21 0   0% 6 0   0%
paintmaskanimator/onion.py OnionSkinSettingsBrowser.set_canvas_rotation_value   0% 7 7 0   100% 0 0   0%
paintmaskanimator/onion.py OnionSkinSettingsBrowser._choose_color   0% 6 6 0   0% 2 0   0%
paintmaskanimator/onion.py OnionSkinSettingsBrowser._choose_color.apply   0% 5 5 0   0% 2 0   0%
paintmaskanimator/onion.py OnionSkinSettingsBrowser._reset_shift   0% 31 31 0   0% 6 0   0%
paintmaskanimator/onion.py OnionSkinSettingsBrowser._refresh_color_buttons   100% 4 0 0   100% 2 0   100%
paintmaskanimator/onion.py (no function)   100% 58 0 0   100% 0 0   100%
paintmaskanimator/optional_deps.py (no function)   55% 11 5 0   100% 0 0   55%
paintmaskanimator/preferences.py display_shrink_mode   100% 2 0 0   100% 0 0   100%
paintmaskanimator/preferences.py set_display_shrink_mode   100% 3 0 0   100% 2 0   100%
paintmaskanimator/preferences.py background_color_tool   100% 2 0 0   100% 0 0   100%
paintmaskanimator/preferences.py set_background_color_tool   67% 3 1 0   50% 2 1   60%
paintmaskanimator/preferences.py background_checker_enabled   100% 1 0 0   100% 0 0   100%
paintmaskanimator/preferences.py set_background_checker_enabled   100% 1 0 0   100% 0 0   100%
paintmaskanimator/preferences.py background_checker_color   50% 4 2 0   100% 0 0   50%
paintmaskanimator/preferences.py set_background_checker_color   100% 2 0 0   100% 0 0   100%
paintmaskanimator/preferences.py time_display_mode   75% 4 1 0   50% 2 1   67%
paintmaskanimator/preferences.py set_time_display_mode   67% 3 1 0   50% 2 1   60%
paintmaskanimator/preferences.py _clamped_int   100% 6 0 0   100% 0 0   100%
paintmaskanimator/preferences.py autosave_enabled   100% 1 0 0   100% 0 0   100%
paintmaskanimator/preferences.py set_autosave_enabled   100% 1 0 0   100% 0 0   100%
paintmaskanimator/preferences.py snapshot_folder   0% 2 2 0   100% 0 0   0%
paintmaskanimator/preferences.py set_snapshot_folder   0% 1 1 0   100% 0 0   0%
paintmaskanimator/preferences.py keep_initial_state_on_cut_folder   100% 1 0 0   100% 0 0   100%
paintmaskanimator/preferences.py set_keep_initial_state_on_cut_folder   100% 1 0 0   100% 0 0   100%
paintmaskanimator/preferences.py autosave_interval_minutes   100% 1 0 0   100% 0 0   100%
paintmaskanimator/preferences.py set_autosave_interval_minutes   100% 1 0 0   100% 0 0   100%
paintmaskanimator/preferences.py undo_max_steps   100% 1 0 0   100% 0 0   100%
paintmaskanimator/preferences.py set_undo_max_steps   100% 1 0 0   100% 0 0   100%
paintmaskanimator/preferences.py undo_max_memory_mb   100% 1 0 0   100% 0 0   100%
paintmaskanimator/preferences.py set_undo_max_memory_mb   100% 1 0 0   100% 0 0   100%
paintmaskanimator/preferences.py new_canvas_size   100% 9 0 0   100% 2 0   100%
paintmaskanimator/preferences.py set_new_canvas_size   100% 1 0 0   100% 0 0   100%
paintmaskanimator/preferences.py _rgb_from_hex   100% 4 0 0   100% 2 0   100%
paintmaskanimator/preferences.py map_palette   100% 11 0 0   100% 4 0   100%
paintmaskanimator/preferences.py set_map_palette   100% 5 0 0   100% 2 0   100%
paintmaskanimator/preferences.py tool_hold_enabled   100% 1 0 0   100% 0 0   100%
paintmaskanimator/preferences.py set_tool_hold_enabled   100% 1 0 0   100% 0 0   100%
paintmaskanimator/preferences.py tool_hold_ms   100% 1 0 0   100% 0 0   100%
paintmaskanimator/preferences.py set_tool_hold_ms   100% 1 0 0   100% 0 0   100%
paintmaskanimator/preferences.py check_updates_automatically   100% 1 0 0   100% 0 0   100%
paintmaskanimator/preferences.py set_check_updates_automatically   100% 1 0 0   100% 0 0   100%
paintmaskanimator/preferences.py skipped_update_version   100% 1 0 0   100% 0 0   100%
paintmaskanimator/preferences.py set_skipped_update_version   100% 1 0 0   100% 0 0   100%
paintmaskanimator/preferences.py (no function)   100% 65 0 0   100% 0 0   100%
paintmaskanimator/preferences_dialog.py _swatch   100% 3 0 0   100% 0 0   100%
paintmaskanimator/preferences_dialog.py _hint   100% 4 0 0   100% 0 0   100%
paintmaskanimator/preferences_dialog.py _page   100% 10 0 0   100% 4 0   100%
paintmaskanimator/preferences_dialog.py _ReorderableList.__init__   100% 3 0 0   100% 0 0   100%
paintmaskanimator/preferences_dialog.py _ReorderableList.dropEvent   0% 2 2 0   100% 0 0   0%
paintmaskanimator/preferences_dialog.py PreferencesDialog.__init__   100% 29 0 0   75% 4 1   97%
paintmaskanimator/preferences_dialog.py PreferencesDialog._build_general_page   100% 42 0 0   100% 2 0   100%
paintmaskanimator/preferences_dialog.py PreferencesDialog._time_display_changed   100% 2 0 0   100% 0 0   100%
paintmaskanimator/preferences_dialog.py PreferencesDialog._tool_hold_changed   0% 3 3 0   100% 0 0   0%
paintmaskanimator/preferences_dialog.py PreferencesDialog._language_changed   100% 1 0 0   100% 0 0   100%
paintmaskanimator/preferences_dialog.py PreferencesDialog._autosave_changed   100% 5 0 0   100% 0 0   100%
paintmaskanimator/preferences_dialog.py PreferencesDialog._build_appearance_page   100% 16 0 0   100% 2 0   100%
paintmaskanimator/preferences_dialog.py PreferencesDialog._refresh_background_checker_color   100% 3 0 0   100% 0 0   100%
paintmaskanimator/preferences_dialog.py PreferencesDialog._background_checker_changed   0% 2 2 0   100% 0 0   0%
paintmaskanimator/preferences_dialog.py PreferencesDialog._choose_background_checker_color   0% 5 5 0   0% 2 0   0%
paintmaskanimator/preferences_dialog.py PreferencesDialog._theme_changed   100% 1 0 0   100% 0 0   100%
paintmaskanimator/preferences_dialog.py PreferencesDialog._fill_accent_choices   100% 12 0 0   100% 4 0   100%
paintmaskanimator/preferences_dialog.py PreferencesDialog._accent_chosen   44% 9 5 0   25% 4 1   38%
paintmaskanimator/preferences_dialog.py PreferencesDialog._build_view_check_page   100% 24 0 0   100% 2 0   100%
paintmaskanimator/preferences_dialog.py PreferencesDialog._show_map_palette   100% 4 0 0   100% 2 0   100%
paintmaskanimator/preferences_dialog.py PreferencesDialog._choose_map_color   86% 7 1 0   50% 2 1   78%
paintmaskanimator/preferences_dialog.py PreferencesDialog._reset_map_palette   100% 2 0 0   100% 0 0   100%
paintmaskanimator/preferences_dialog.py PreferencesDialog._build_canvas_page   100% 29 0 0   100% 2 0   100%
paintmaskanimator/preferences_dialog.py PreferencesDialog._size_spin   100% 6 0 0   100% 0 0   100%
paintmaskanimator/preferences_dialog.py PreferencesDialog._canvas_size_changed   100% 1 0 0   100% 0 0   100%
paintmaskanimator/preferences_dialog.py PreferencesDialog.reload_papers   23% 13 10 0   17% 6 1   21%
paintmaskanimator/preferences_dialog.py PreferencesDialog._selected_paper_id   100% 2 0 0   100% 0 0   100%
paintmaskanimator/preferences_dialog.py PreferencesDialog._sync_paper_buttons   100% 3 0 0   100% 0 0   100%
paintmaskanimator/preferences_dialog.py PreferencesDialog._add_papers   0% 11 11 0   0% 6 0   0%
paintmaskanimator/preferences_dialog.py PreferencesDialog._rename_paper   0% 8 8 0   0% 4 0   0%
paintmaskanimator/preferences_dialog.py PreferencesDialog._remove_paper   0% 4 4 0   0% 2 0   0%
paintmaskanimator/preferences_dialog.py PreferencesDialog._build_pressure_page   100% 26 0 0   100% 2 0   100%
paintmaskanimator/preferences_dialog.py PreferencesDialog.reload_pressure_presets   100% 7 0 0   100% 0 0   100%
paintmaskanimator/preferences_dialog.py PreferencesDialog._pressure_preset_chosen   100% 3 0 0   100% 0 0   100%
paintmaskanimator/preferences_dialog.py PreferencesDialog._pressure_edited   100% 2 0 0   100% 0 0   100%
paintmaskanimator/preferences_dialog.py PreferencesDialog._add_pressure_preset   100% 4 0 0   100% 0 0   100%
paintmaskanimator/preferences_dialog.py PreferencesDialog._rename_pressure_preset   0% 8 8 0   0% 4 0   0%
paintmaskanimator/preferences_dialog.py PreferencesDialog._remove_pressure_preset   0% 3 3 0   0% 2 0   0%
paintmaskanimator/preferences_dialog.py PreferencesDialog._build_workspaces_page   100% 31 0 0   100% 2 0   100%
paintmaskanimator/preferences_dialog.py PreferencesDialog.reload_workspaces   100% 15 0 0   100% 4 0   100%
paintmaskanimator/preferences_dialog.py PreferencesDialog._selected_workspace   100% 2 0 0   100% 0 0   100%
paintmaskanimator/preferences_dialog.py PreferencesDialog._listed_workspaces   100% 1 0 0   100% 0 0   100%
paintmaskanimator/preferences_dialog.py PreferencesDialog._sync_workspace_buttons   100% 6 0 0   100% 2 0   100%
paintmaskanimator/preferences_dialog.py PreferencesDialog._workspaces_dragged   0% 1 1 0   100% 0 0   0%
paintmaskanimator/preferences_dialog.py PreferencesDialog._move_workspace   88% 8 1 0   50% 2 1   80%
paintmaskanimator/preferences_dialog.py PreferencesDialog._rename_workspace   75% 8 2 0   67% 6 2   71%
paintmaskanimator/preferences_dialog.py PreferencesDialog._overwrite_workspace   0% 3 3 0   0% 2 0   0%
paintmaskanimator/preferences_dialog.py PreferencesDialog._delete_workspace   83% 6 1 0   75% 4 1   80%
paintmaskanimator/preferences_dialog.py PreferencesDialog._build_performance_page   100% 17 0 0   100% 0 0   100%
paintmaskanimator/preferences_dialog.py PreferencesDialog._display_shrink_mode_changed   0% 4 4 0   0% 2 0   0%
paintmaskanimator/preferences_dialog.py PreferencesDialog._undo_limits_changed   100% 3 0 0   100% 0 0   100%
paintmaskanimator/preferences_dialog.py PreferencesDialog._select_data   100% 3 0 0   50% 2 1   80%
paintmaskanimator/preferences_dialog.py PreferencesDialog.show_section   100% 2 0 0   50% 2 1   75%
paintmaskanimator/preferences_dialog.py PreferencesDialog.show_and_raise   100% 3 0 0   100% 0 0   100%
paintmaskanimator/preferences_dialog.py apply_undo_preferences   100% 1 0 0   100% 0 0   100%
paintmaskanimator/preferences_dialog.py (no function)   100% 70 0 0   100% 0 0   100%
paintmaskanimator/pressure.py _pressure_bezier_segments   93% 46 3 0   94% 18 1   94%
paintmaskanimator/pressure.py _cubic_bezier_value   100% 2 0 0   100% 0 0   100%
paintmaskanimator/pressure.py _pressure_bezier_at   100% 22 0 0   92% 12 1   97%
paintmaskanimator/pressure.py PressureCurveWidget.__init__   100% 6 0 0   100% 0 0   100%
paintmaskanimator/pressure.py PressureCurveWidget._parse   94% 17 1 0   83% 6 1   91%
paintmaskanimator/pressure.py PressureCurveWidget.points   100% 1 0 0   100% 0 0   100%
paintmaskanimator/pressure.py PressureCurveWidget.set_points   100% 3 0 0   100% 0 0   100%
paintmaskanimator/pressure.py PressureCurveWidget.exponent   100% 1 0 0   100% 0 0   100%
paintmaskanimator/pressure.py PressureCurveWidget._graph_rect   100% 1 0 0   100% 0 0   100%
paintmaskanimator/pressure.py PressureCurveWidget._point_to_value   100% 4 0 0   100% 0 0   100%
paintmaskanimator/pressure.py PressureCurveWidget._value_to_point   100% 2 0 0   100% 0 0   100%
paintmaskanimator/pressure.py PressureCurveWidget._nearest_index   100% 11 0 0   100% 4 0   100%
paintmaskanimator/pressure.py PressureCurveWidget._emit_changed   0% 2 2 0   100% 0 0   0%
paintmaskanimator/pressure.py PressureCurveWidget.mousePressEvent   0% 21 21 0   0% 8 0   0%
paintmaskanimator/pressure.py PressureCurveWidget.mouseMoveEvent   0% 15 15 0   0% 6 0   0%
paintmaskanimator/pressure.py PressureCurveWidget.mouseReleaseEvent   0% 3 3 0   0% 2 0   0%
paintmaskanimator/pressure.py PressureCurveWidget.paintEvent   0% 28 28 0   0% 6 0   0%
paintmaskanimator/pressure.py PressureEditor.__init__   100% 31 0 0   100% 2 0   100%
paintmaskanimator/pressure.py PressureEditor._emit_changed   100% 1 0 0   100% 0 0   100%
paintmaskanimator/pressure.py PressureEditor.settings   100% 1 0 0   100% 0 0   100%
paintmaskanimator/pressure.py PressureEditor.set_settings   100% 14 0 0   100% 4 0   100%
paintmaskanimator/pressure.py PressureDialog.__init__   100% 35 0 0   100% 0 0   100%
paintmaskanimator/pressure.py PressureDialog._remember_brush_settings   100% 2 0 0   50% 2 1   75%
paintmaskanimator/pressure.py PressureDialog._sync_mode   100% 8 0 0   100% 2 0   100%
paintmaskanimator/pressure.py PressureDialog._edit_presets   0% 2 2 0   100% 0 0   0%
paintmaskanimator/pressure.py PressureDialog.uses_global   100% 1 0 0   100% 0 0   100%
paintmaskanimator/pressure.py PressureDialog.active_preset   100% 1 0 0   100% 0 0   100%
paintmaskanimator/pressure.py PressureDialog.brush_settings   100% 1 0 0   100% 0 0   100%
paintmaskanimator/pressure.py (no function)   100% 42 0 0   100% 0 0   100%
paintmaskanimator/pressure_settings.py _clamp   100% 5 0 0   100% 0 0   100%
paintmaskanimator/pressure_settings.py normalize   83% 12 2 0   100% 4 0   88%
paintmaskanimator/pressure_settings.py default_preset_name   100% 1 0 0   100% 0 0   100%
paintmaskanimator/pressure_settings.py presets   85% 13 2 0   75% 8 2   81%
paintmaskanimator/pressure_settings.py save_presets   100% 1 0 0   100% 0 0   100%
paintmaskanimator/pressure_settings.py preset_names   100% 1 0 0   100% 0 0   100%
paintmaskanimator/pressure_settings.py active_preset_name   100% 3 0 0   100% 0 0   100%
paintmaskanimator/pressure_settings.py set_active_preset   100% 1 0 0   100% 0 0   100%
paintmaskanimator/pressure_settings.py preset   75% 4 1 0   75% 4 1   75%
paintmaskanimator/pressure_settings.py update_preset   100% 5 0 0   100% 4 0   100%
paintmaskanimator/pressure_settings.py add_preset   100% 9 0 0   100% 2 0   100%
paintmaskanimator/pressure_settings.py rename_preset   100% 11 0 0   88% 8 1   95%
paintmaskanimator/pressure_settings.py remove_preset   100% 5 0 0   100% 2 0   100%
paintmaskanimator/pressure_settings.py global_settings   100% 3 0 0   100% 0 0   100%
paintmaskanimator/pressure_settings.py brush_settings   100% 1 0 0   100% 0 0   100%
paintmaskanimator/pressure_settings.py set_brush_settings   100% 1 0 0   100% 0 0   100%
paintmaskanimator/pressure_settings.py brush_uses_global   100% 1 0 0   100% 0 0   100%
paintmaskanimator/pressure_settings.py set_brush_uses_global   100% 1 0 0   100% 0 0   100%
paintmaskanimator/pressure_settings.py effective_settings   100% 1 0 0   100% 0 0   100%
paintmaskanimator/pressure_settings.py (no function)   100% 29 0 0   100% 0 0   100%
paintmaskanimator/preview_controls.py channel_icon   100% 37 0 0   100% 18 0   100%
paintmaskanimator/preview_controls.py ChannelPreviewButton.__init__   100% 17 0 0   100% 2 0   100%
paintmaskanimator/preview_controls.py ChannelPreviewButton.setChannel   86% 7 1 0   75% 4 1   82%
paintmaskanimator/preview_controls.py ChannelPreviewButton._refresh   100% 6 0 0   100% 2 0   100%
paintmaskanimator/preview_controls.py ChannelPreviewButton.currentData   100% 1 0 0   100% 0 0   100%
paintmaskanimator/preview_controls.py ChannelPreviewButton.findData   100% 1 0 0   100% 0 0   100%
paintmaskanimator/preview_controls.py ChannelPreviewButton.setCurrentIndex   100% 2 0 0   50% 2 1   75%
paintmaskanimator/preview_controls.py _ExposureLink.__init__   100% 5 0 0   100% 0 0   100%
paintmaskanimator/preview_controls.py _ExposureLink.mousePressEvent   0% 6 6 0   0% 2 0   0%
paintmaskanimator/preview_controls.py _ExposureLink.mouseMoveEvent   0% 9 9 0   0% 4 0   0%
paintmaskanimator/preview_controls.py _ExposureLink.mouseReleaseEvent   0% 7 7 0   0% 4 0   0%
paintmaskanimator/preview_controls.py ExposureControl.__init__   100% 20 0 0   100% 0 0   100%
paintmaskanimator/preview_controls.py ExposureControl.value   100% 1 0 0   100% 0 0   100%
paintmaskanimator/preview_controls.py ExposureControl.setValue   100% 2 0 0   100% 0 0   100%
paintmaskanimator/preview_controls.py ExposureControl._drag   100% 1 0 0   100% 0 0   100%
paintmaskanimator/preview_controls.py ExposureControl.begin_edit   100% 3 0 0   100% 0 0   100%
paintmaskanimator/preview_controls.py ExposureControl.end_edit   100% 2 0 0   100% 0 0   100%
paintmaskanimator/preview_controls.py (no function)   100% 30 0 0   100% 0 0   100%
paintmaskanimator/progress.py create_counter   100% 14 0 0   100% 2 0   100%
paintmaskanimator/progress.py update_counter   83% 6 1 0   50% 2 1   75%
paintmaskanimator/progress.py close_counter   100% 6 0 0   100% 2 0   100%
paintmaskanimator/progress.py (no function)   100% 7 0 0   100% 0 0   100%
paintmaskanimator/project_io.py PngCache.__init__   100% 1 0 0   100% 0 0   100%
paintmaskanimator/project_io.py PngCache.__len__   100% 1 0 0   100% 0 0   100%
paintmaskanimator/project_io.py PngCache.clear   100% 1 0 0   100% 0 0   100%
paintmaskanimator/project_io.py PngCache.remember   100% 1 0 0   100% 0 0   100%
paintmaskanimator/project_io.py PngCache.encode_many   100% 16 0 0   83% 12 2   93%
paintmaskanimator/project_io.py PngCache.retain_only   50% 2 1 0   50% 2 1   50%
paintmaskanimator/project_io.py parallel_map   100% 6 0 0   100% 2 0   100%
paintmaskanimator/project_io.py encode_png   88% 8 1 0   50% 2 1   80%
paintmaskanimator/project_io.py _decode_png   89% 9 1 0   50% 2 1   82%
paintmaskanimator/project_io.py _prefetch_pngs   78% 23 5 0   70% 10 3   76%
paintmaskanimator/project_io.py read_project_archive   73% 159 43 0   63% 94 35   69%
paintmaskanimator/project_io.py read_project_archive.migrate_white   100% 4 0 0   100% 2 0   100%
paintmaskanimator/project_io.py read_project_archive.load_initial   70% 20 6 0   60% 10 4   67%
paintmaskanimator/project_io.py _thumbnail_png   100% 10 0 0   100% 4 0   100%
paintmaskanimator/project_io.py write_project_archive   94% 48 3 0   94% 16 1   94%
paintmaskanimator/project_io.py write_project_archive.write_png   100% 1 0 0   100% 0 0   100%
paintmaskanimator/project_io.py (no function)   100% 35 0 0   100% 0 0   100%
paintmaskanimator/reference_check.py _to_rgb   100% 4 0 0   100% 2 0   100%
paintmaskanimator/reference_check.py _is_line   100% 1 0 0   100% 0 0   100%
paintmaskanimator/reference_check.py color_counts   100% 9 0 0   100% 4 0   100%
paintmaskanimator/reference_check.py compare_colors   100% 12 0 0   100% 8 0   100%
paintmaskanimator/reference_check.py _pack   100% 1 0 0   100% 0 0   100%
paintmaskanimator/reference_check.py color_mask   100% 2 0 0   100% 0 0   100%
paintmaskanimator/reference_check.py _bounds   100% 1 0 0   100% 0 0   100%
paintmaskanimator/reference_check.py label_regions   100% 2 0 0   100% 0 0   100%
paintmaskanimator/reference_check.py _label_runs   96% 45 2 0   94% 16 1   95%
paintmaskanimator/reference_check.py _label_runs.find   100% 4 0 0   100% 2 0   100%
paintmaskanimator/reference_check.py CellRegions.__init__   100% 18 0 0   100% 0 0   100%
paintmaskanimator/reference_check.py CellRegions.bounds   100% 1 0 0   100% 0 0   100%
paintmaskanimator/reference_check.py CellRegions.local_mask   100% 2 0 0   100% 0 0   100%
paintmaskanimator/reference_check.py CellRegions.mask   100% 4 0 0   100% 0 0   100%
paintmaskanimator/reference_check.py CellRegions.value   100% 1 0 0   100% 0 0   100%
paintmaskanimator/reference_check.py CellRegions.region_under   83% 6 1 0   50% 2 1   75%
paintmaskanimator/reference_check.py _counterpart   82% 11 2 0   50% 4 2   73%
paintmaskanimator/reference_check.py find_mismatches   86% 37 5 0   79% 24 5   84%
paintmaskanimator/reference_check.py (no function)   100% 50 0 0   100% 0 0   100%
paintmaskanimator/replacement_sets.py _hex   100% 2 0 0   100% 0 0   100%
paintmaskanimator/replacement_sets.py _rgb   100% 4 0 0   100% 2 0   100%
paintmaskanimator/replacement_sets.py to_data   100% 1 0 0   100% 0 0   100%
paintmaskanimator/replacement_sets.py from_data   94% 17 1 0   90% 10 1   93%
paintmaskanimator/replacement_sets.py save   100% 5 0 0   100% 2 0   100%
paintmaskanimator/replacement_sets.py load   100% 1 0 0   100% 0 0   100%
paintmaskanimator/replacement_sets.py (no function)   100% 11 0 0   100% 0 0   100%
paintmaskanimator/session_state.py _number   100% 5 0 0   100% 0 0   100%
paintmaskanimator/session_state.py save   100% 2 0 0   100% 0 0   100%
paintmaskanimator/session_state.py restore   94% 18 1 0   75% 8 2   88%
paintmaskanimator/session_state.py (no function)   100% 6 0 0   100% 0 0   100%
paintmaskanimator/shadow_export.py shadow_mask_of   100% 7 0 0   100% 2 0   100%
paintmaskanimator/shadow_export.py flat_normal   100% 6 0 0   100% 0 0   100%
paintmaskanimator/shadow_export.py flat_shadow   100% 6 0 0   100% 0 0   100%
paintmaskanimator/shadow_export.py shadow_matte   100% 6 0 0   100% 0 0   100%
paintmaskanimator/shadow_export.py materials   100% 1 0 0   100% 0 0   100%
paintmaskanimator/shadow_export.py (no function)   100% 12 0 0   100% 0 0   100%
paintmaskanimator/subview.py SubViewWidget.__init__   100% 77 0 0   100% 2 0   100%
paintmaskanimator/subview.py SubViewWidget.eventFilter   54% 13 6 0   62% 8 3   57%
paintmaskanimator/subview.py SubViewWidget.handle_hold_key_event   0% 6 6 0   0% 4 0   0%
paintmaskanimator/subview.py SubViewWidget._eyedropper_cursor   93% 15 1 0   50% 2 1   88%
paintmaskanimator/subview.py SubViewWidget._update_viewer_cursor   78% 9 2 0   75% 8 2   76%
paintmaskanimator/subview.py SubViewWidget.set_color_provider   100% 1 0 0   100% 0 0   100%
paintmaskanimator/subview.py SubViewWidget.current_paint_color   33% 6 4 0   50% 2 1   38%
paintmaskanimator/subview.py SubViewWidget.supported_extensions   100% 1 0 0   100% 0 0   100%
paintmaskanimator/subview.py SubViewWidget.choose_image   0% 3 3 0   0% 2 0   0%
paintmaskanimator/subview.py SubViewWidget.load_path   90% 20 2 0   88% 8 1   89%
paintmaskanimator/subview.py SubViewWidget._read_image   48% 23 12 0   38% 8 1   45%
paintmaskanimator/subview.py SubViewWidget._images_in_folder   60% 5 2 0   100% 0 0   60%
paintmaskanimator/subview.py SubViewWidget._set_image   100% 7 0 0   100% 0 0   100%
paintmaskanimator/subview.py SubViewWidget.step   73% 11 3 0   50% 6 3   65%
paintmaskanimator/subview.py SubViewWidget._update_navigation   100% 2 0 0   100% 0 0   100%
paintmaskanimator/subview.py SubViewWidget.reset_view   100% 7 0 0   100% 0 0   100%
paintmaskanimator/subview.py SubViewWidget.set_zoom_percent   100% 3 0 0   100% 0 0   100%
paintmaskanimator/subview.py SubViewWidget.set_rotation   100% 3 0 0   100% 0 0   100%
paintmaskanimator/subview.py SubViewWidget.showEvent   100% 2 0 0   100% 0 0   100%
paintmaskanimator/subview.py SubViewWidget.closeEvent   100% 2 0 0   100% 0 0   100%
paintmaskanimator/subview.py SubViewWidget.dragEnterEvent   0% 2 2 0   0% 2 0   0%
paintmaskanimator/subview.py SubViewWidget.dropEvent   0% 4 4 0   0% 4 0   0%
paintmaskanimator/subview.py _SubViewCanvas.__init__   100% 6 0 0   100% 0 0   100%
paintmaskanimator/subview.py _SubViewCanvas.enterEvent   0% 2 2 0   100% 0 0   0%
paintmaskanimator/subview.py _SubViewCanvas._fit_scale   88% 8 1 0   50% 2 1   80%
paintmaskanimator/subview.py _SubViewCanvas._image_transform   91% 11 1 0   50% 2 1   85%
paintmaskanimator/subview.py _SubViewCanvas._image_rect   75% 4 1 0   50% 2 1   67%
paintmaskanimator/subview.py _SubViewCanvas.paintEvent   92% 12 1 0   75% 4 1   88%
paintmaskanimator/subview.py _SubViewCanvas._draw_color_loupe   0% 40 40 0   0% 2 0   0%
paintmaskanimator/subview.py _SubViewCanvas.dragEnterEvent   0% 1 1 0   100% 0 0   0%
paintmaskanimator/subview.py _SubViewCanvas.dropEvent   0% 1 1 0   100% 0 0   0%
paintmaskanimator/subview.py _SubViewCanvas.keyPressEvent   0% 5 5 0   0% 2 0   0%
paintmaskanimator/subview.py _SubViewCanvas.keyReleaseEvent   0% 5 5 0   0% 2 0   0%
paintmaskanimator/subview.py _SubViewCanvas.mousePressEvent   86% 21 3 0   67% 6 2   81%
paintmaskanimator/subview.py _SubViewCanvas.mouseMoveEvent   50% 20 10 0   30% 10 3   43%
paintmaskanimator/subview.py _SubViewCanvas.mouseReleaseEvent   89% 9 1 0   75% 4 1   85%
paintmaskanimator/subview.py _SubViewCanvas.wheelEvent   85% 13 2 0   83% 6 1   84%
paintmaskanimator/subview.py _SubViewCanvas.zoom_to_percent   92% 13 1 0   75% 4 1   88%
paintmaskanimator/subview.py _SubViewCanvas._pick_color   100% 3 0 0   50% 2 1   80%
paintmaskanimator/subview.py _SubViewCanvas._widget_to_image   73% 11 3 0   50% 6 3   65%
paintmaskanimator/subview.py _SubViewCanvas._color_at   88% 8 1 0   50% 2 1   80%
paintmaskanimator/subview.py (no function)   100% 60 0 0   100% 0 0   100%
paintmaskanimator/theme.py accent_presets   100% 1 0 0   100% 0 0   100%
paintmaskanimator/theme.py available_themes   100% 1 0 0   100% 0 0   100%
paintmaskanimator/theme.py system_theme   80% 5 1 0   50% 2 1   71%
paintmaskanimator/theme.py resolved_theme   100% 5 0 0   100% 4 0   100%
paintmaskanimator/theme.py system_accent   88% 8 1 0   50% 4 2   75%
paintmaskanimator/theme.py _mix   100% 5 0 0   100% 0 0   100%
paintmaskanimator/theme.py _contrast_text   100% 6 0 0   100% 0 0   100%
paintmaskanimator/theme.py _contrast_text.luminance   100% 2 0 0   100% 0 0   100%
paintmaskanimator/theme.py palette   100% 7 0 0   100% 2 0   100%
paintmaskanimator/theme.py _build_palette   89% 9 1 0   50% 2 1   82%
paintmaskanimator/theme.py current_theme   100% 2 0 0   100% 0 0   100%
paintmaskanimator/theme.py accent_setting   75% 4 1 0   50% 2 1   67%
paintmaskanimator/theme.py current_accent   100% 2 0 0   100% 0 0   100%
paintmaskanimator/theme.py accent   100% 1 0 0   100% 0 0   100%
paintmaskanimator/theme.py build_stylesheet   100% 2 0 0   100% 0 0   100%
paintmaskanimator/theme.py _mac_stylesheet   0% 1 1 0   100% 0 0   0%
paintmaskanimator/theme.py build_qpalette   100% 30 0 0   100% 2 0   100%
paintmaskanimator/theme.py apply_theme   0% 15 15 0   0% 6 0   0%
paintmaskanimator/theme.py set_accent   0% 8 8 0   0% 4 0   0%
paintmaskanimator/theme.py StatusBar.__init__   100% 25 0 0   100% 0 0   100%
paintmaskanimator/theme.py StatusBar.show_message   0% 9 9 0   0% 4 0   0%
paintmaskanimator/theme.py StatusBar.clear_message   0% 5 5 0   100% 0 0   0%
paintmaskanimator/theme.py StatusBar.refresh_palette   100% 1 0 0   100% 0 0   100%
paintmaskanimator/theme.py StatusBar._on_message_changed   100% 8 0 0   67% 6 2   86%
paintmaskanimator/theme.py StatusBar._sync_idle   100% 3 0 0   100% 0 0   100%
paintmaskanimator/theme.py StatusBar._apply_level   100% 9 0 0   100% 0 0   100%
paintmaskanimator/theme.py (no function)   100% 47 0 0   100% 0 0   100%
paintmaskanimator/time_display.py frame_position   100% 6 0 0   100% 2 0   100%
paintmaskanimator/time_display.py (no function)   100% 3 0 0   100% 0 0   100%
paintmaskanimator/timeline.py _titled_tip   100% 1 0 0   100% 0 0   100%
paintmaskanimator/timeline.py LayerListDelegate.paint   60% 60 24 0   75% 8 2   62%
paintmaskanimator/timeline.py LayerListDelegate.sizeHint   100% 3 0 0   100% 0 0   100%
paintmaskanimator/timeline.py LayerListDelegate.updateEditorGeometry   100% 3 0 0   100% 0 0   100%
paintmaskanimator/timeline.py LayerListDelegate.eventFilter   50% 4 2 0   50% 2 1   50%
paintmaskanimator/timeline.py TimelineCellDelegate._state_colors   0% 3 3 0   100% 0 0   0%
paintmaskanimator/timeline.py TimelineCellDelegate._span_colors   100% 6 0 0   100% 2 0   100%
paintmaskanimator/timeline.py TimelineCellDelegate._with_alpha   100% 3 0 0   100% 0 0   100%
paintmaskanimator/timeline.py TimelineCellDelegate._draw_grid   100% 9 0 0   100% 0 0   100%
paintmaskanimator/timeline.py TimelineCellDelegate._wave_path   100% 7 0 0   100% 2 0   100%
paintmaskanimator/timeline.py TimelineCellDelegate._draw_cross   100% 4 0 0   100% 0 0   100%
paintmaskanimator/timeline.py TimelineCellDelegate._draw_arrow_head   100% 6 0 0   100% 0 0   100%
paintmaskanimator/timeline.py TimelineCellDelegate._paint_gap   0% 15 15 0   0% 4 0   0%
paintmaskanimator/timeline.py TimelineCellDelegate.paint   89% 110 12 0   86% 42 6   88%
paintmaskanimator/timeline.py TimelineRuler._edge_at   80% 10 2 0   67% 6 2   75%
paintmaskanimator/timeline.py TimelineRuler.paintEvent   89% 19 2 0   62% 8 3   81%
paintmaskanimator/timeline.py TimelineRuler._scrub   71% 7 2 0   50% 4 2   64%
paintmaskanimator/timeline.py TimelineRuler.mousePressEvent   86% 7 1 0   75% 4 1   82%
paintmaskanimator/timeline.py TimelineRuler.mouseMoveEvent   95% 20 1 0   75% 8 2   89%
paintmaskanimator/timeline.py TimelineRuler.leaveEvent   0% 3 3 0   0% 2 0   0%
paintmaskanimator/timeline.py TimelineRuler.mouseReleaseEvent   92% 13 1 0   67% 6 2   84%
paintmaskanimator/timeline.py TimelineRuler.paintSection   100% 36 0 0   100% 4 0   100%
paintmaskanimator/timeline.py TimelineTable.__init__   100% 32 0 0   100% 0 0   100%
paintmaskanimator/timeline.py TimelineTable.display_range   100% 4 0 0   100% 0 0   100%
paintmaskanimator/timeline.py TimelineTable.eventFilter   27% 11 8 0   38% 8 1   32%
paintmaskanimator/timeline.py TimelineTable._ruler_scrubbed   100% 2 0 0   100% 0 0   100%
paintmaskanimator/timeline.py TimelineTable._edge_source_at   0% 20 20 0   0% 10 0   0%
paintmaskanimator/timeline.py TimelineTable._column_from_x   0% 14 14 0   0% 8 0   0%
paintmaskanimator/timeline.py TimelineTable._set_cell_drag_cursor   0% 1 1 0   100% 0 0   0%
paintmaskanimator/timeline.py TimelineTable.mousePressEvent   0% 42 42 0   0% 8 0   0%
paintmaskanimator/timeline.py TimelineTable.mouseMoveEvent   0% 29 29 0   0% 12 0   0%
paintmaskanimator/timeline.py TimelineTable.leaveEvent   0% 3 3 0   0% 2 0   0%
paintmaskanimator/timeline.py TimelineTable.paintEvent   43% 56 32 0   31% 26 6   39%
paintmaskanimator/timeline.py TimelineTable._thumbnail   90% 10 1 0   75% 4 1   86%
paintmaskanimator/timeline.py TimelineTable._paint_thumbnails   86% 37 5 0   71% 14 4   82%
paintmaskanimator/timeline.py TimelineTable._paint_playhead   94% 17 1 0   75% 4 1   90%
paintmaskanimator/timeline.py TimelineTable.mouseReleaseEvent   0% 44 44 0   0% 14 0   0%
paintmaskanimator/timeline.py TimelineTable._tween_group_item   0% 6 6 0   0% 4 0   0%
paintmaskanimator/timeline.py TimelineTable.mouseDoubleClickEvent   0% 7 7 0   0% 2 0   0%
paintmaskanimator/timeline.py TimelineTable.contextMenuEvent   0% 109 109 0   0% 40 0   0%
paintmaskanimator/timeline.py TimelineWidget.__init__   100% 254 0 0   100% 6 0   100%
paintmaskanimator/timeline.py TimelineWidget.__init__.add_group   100% 10 0 0   83% 6 1   94%
paintmaskanimator/timeline.py TimelineWidget._apply_icons   100% 13 0 0   100% 4 0   100%
paintmaskanimator/timeline.py TimelineWidget.apply_theme   100% 18 0 0   100% 2 0   100%
paintmaskanimator/timeline.py TimelineWidget._update_normalize_badge_style   100% 3 0 0   100% 0 0   100%
paintmaskanimator/timeline.py TimelineWidget._set_frame_counter   100% 9 0 0   100% 0 0   100%
paintmaskanimator/timeline.py TimelineWidget.set_normalize_pending   100% 8 0 0   100% 2 0   100%
paintmaskanimator/timeline.py TimelineWidget._request_normalize   0% 4 4 0   0% 2 0   0%
paintmaskanimator/timeline.py TimelineWidget._timeline_mode_tab_changed   0% 4 4 0   100% 0 0   0%
paintmaskanimator/timeline.py TimelineWidget._sync_timeline_mode_controls   100% 6 0 0   100% 0 0   100%
paintmaskanimator/timeline.py TimelineWidget._update_timeline_mode_tab_style   100% 7 0 0   100% 2 0   100%
paintmaskanimator/timeline.py TimelineWidget.set_timeline_mode   100% 9 0 0   100% 2 0   100%
paintmaskanimator/timeline.py TimelineWidget.expanded_row_height   100% 3 0 0   100% 2 0   100%
paintmaskanimator/timeline.py TimelineWidget._layer_index_for_row   100% 1 0 0   100% 0 0   100%
paintmaskanimator/timeline.py TimelineWidget._all_expanded   100% 2 0 0   100% 0 0   100%
paintmaskanimator/timeline.py TimelineWidget._apply_row_heights   100% 21 0 0   75% 8 2   93%
paintmaskanimator/timeline.py TimelineWidget.toggle_layer_expanded   86% 7 1 0   75% 4 1   82%
paintmaskanimator/timeline.py TimelineWidget._toggle_all_expanded   100% 4 0 0   100% 2 0   100%
paintmaskanimator/timeline.py TimelineWidget.timeline_cell_metrics   100% 2 0 0   100% 0 0   100%
paintmaskanimator/timeline.py TimelineWidget.set_timeline_zoom_scale   95% 21 1 0   75% 4 1   92%
paintmaskanimator/timeline.py TimelineWidget.adjust_timeline_zoom   100% 1 0 0   100% 0 0   100%
paintmaskanimator/timeline.py TimelineWidget._create_blank_at_current   0% 10 10 0   0% 6 0   0%
paintmaskanimator/timeline.py TimelineWidget._extend_current_exposure   0% 12 12 0   0% 6 0   0%
paintmaskanimator/timeline.py TimelineWidget._fps_changed   100% 4 0 0   100% 0 0   100%
paintmaskanimator/timeline.py TimelineWidget._on_onion_toggled   0% 1 1 0   100% 0 0   0%
paintmaskanimator/timeline.py TimelineWidget._time_remap_drop_path   0% 7 7 0   0% 6 0   0%
paintmaskanimator/timeline.py TimelineWidget.dragEnterEvent   0% 4 4 0   0% 2 0   0%
paintmaskanimator/timeline.py TimelineWidget.dragMoveEvent   0% 4 4 0   0% 2 0   0%
paintmaskanimator/timeline.py TimelineWidget.dropEvent   0% 6 6 0   0% 2 0   0%
paintmaskanimator/timeline.py TimelineWidget.eventFilter   90% 20 2 0   88% 8 1   89%
paintmaskanimator/timeline.py TimelineWidget._layer_opacity_slider_changed   0% 5 5 0   0% 2 0   0%
paintmaskanimator/timeline.py TimelineWidget._sync_layer_opacity_slider   100% 5 0 0   100% 0 0   100%
paintmaskanimator/timeline.py TimelineWidget._scrub_header_frame   80% 10 2 0   67% 6 2   75%
paintmaskanimator/timeline.py TimelineWidget._select_table_cell   0% 4 4 0   0% 2 0   0%
paintmaskanimator/timeline.py TimelineWidget.selected_layer_rows   0% 1 1 0   100% 0 0   0%
paintmaskanimator/timeline.py TimelineWidget._rows_all_draft   0% 9 9 0   0% 6 0   0%
paintmaskanimator/timeline.py TimelineWidget._show_layer_context_menu   0% 34 34 0   0% 18 0   0%
paintmaskanimator/timeline.py TimelineWidget.rename_selected_layer   0% 7 7 0   0% 2 0   0%
paintmaskanimator/timeline.py TimelineWidget._move_timeline_visual_rows   0% 25 25 0   0% 16 0   0%
paintmaskanimator/timeline.py TimelineWidget._layer_rows_moved   0% 7 7 0   0% 2 0   0%
paintmaskanimator/timeline.py TimelineWidget._layer_selected   83% 6 1 0   50% 4 2   70%
paintmaskanimator/timeline.py TimelineWidget._layer_item_changed   86% 14 2 0   67% 6 2   80%
paintmaskanimator/timeline.py TimelineWidget.set_cell_clipboard_filled   100% 1 0 0   100% 0 0   100%
paintmaskanimator/timeline.py TimelineWidget._play   100% 1 0 0   100% 2 0   100%
paintmaskanimator/timeline.py TimelineWidget.timeline_span_at   94% 17 1 0   92% 12 1   93%
paintmaskanimator/timeline.py TimelineWidget.timeline_gaps   100% 19 0 0   100% 10 0   100%
paintmaskanimator/timeline.py TimelineWidget.refresh   98% 227 5 0   92% 98 8   96%
paintmaskanimator/timeline.py TimelineWidget.key_at_or_before   0% 9 9 0   0% 8 0   0%
paintmaskanimator/timeline.py TimelineWidget.select_current   88% 25 3 0   83% 12 2   86%
paintmaskanimator/timeline.py TimelineWidget.update_cell   60% 5 2 0   50% 4 2   56%
paintmaskanimator/timeline.py (no function)   100% 190 0 0   100% 0 0   100%
paintmaskanimator/timeline_metadata.py metadata_for   100% 5 0 0   100% 2 0   100%
paintmaskanimator/timeline_metadata.py timeline_metadata   100% 4 0 0   100% 2 0   100%
paintmaskanimator/timeline_metadata.py timeline_metadata.metadata_property   100% 3 0 0   100% 0 0   100%
paintmaskanimator/timeline_metadata.py timeline_metadata.metadata_property.get   100% 1 0 0   100% 0 0   100%
paintmaskanimator/timeline_metadata.py timeline_metadata.metadata_property.set_value   100% 1 0 0   100% 0 0   100%
paintmaskanimator/timeline_metadata.py (no function)   100% 4 0 0   100% 0 0   100%
paintmaskanimator/timeline_resolution.py resolve_exposures   100% 1 0 0   100% 0 0   100%
paintmaskanimator/timeline_resolution.py (no function)   100% 2 0 0   100% 0 0   100%
paintmaskanimator/timesheet_file.py load_time_table   75% 20 5 0   70% 10 3   73%
paintmaskanimator/timesheet_file.py format_label   100% 3 0 0   100% 2 0   100%
paintmaskanimator/timesheet_file.py _frames   100% 14 0 0   100% 10 0   100%
paintmaskanimator/timesheet_file.py xdts_text   100% 2 0 0   100% 0 0   100%
paintmaskanimator/timesheet_file.py _work_slip   100% 3 0 0   100% 0 0   100%
paintmaskanimator/timesheet_file.py tdts_text   100% 2 0 0   100% 0 0   100%
paintmaskanimator/timesheet_file.py sheet_text   100% 3 0 0   100% 2 0   100%
paintmaskanimator/timesheet_file.py (no function)   100% 22 0 0   100% 0 0   100%
paintmaskanimator/tool_window.py ToolWindow.__init__   100% 12 0 0   75% 4 1   94%
paintmaskanimator/tool_window.py ToolWindow._restore_geometry   43% 7 4 0   50% 2 1   44%
paintmaskanimator/tool_window.py ToolWindow._save_geometry   100% 3 0 0   100% 0 0   100%
paintmaskanimator/tool_window.py ToolWindow._place_beside_parent   86% 7 1 0   50% 2 1   78%
paintmaskanimator/tool_window.py ToolWindow.show_and_raise   100% 3 0 0   100% 0 0   100%
paintmaskanimator/tool_window.py ToolWindow.reject   0% 1 1 0   100% 0 0   0%
paintmaskanimator/tool_window.py ToolWindow.hideEvent   100% 2 0 0   100% 0 0   100%
paintmaskanimator/tool_window.py ToolWindow.closeEvent   100% 2 0 0   100% 0 0   100%
paintmaskanimator/tool_window.py (no function)   100% 14 0 0   100% 0 0   100%
paintmaskanimator/toolpanel.py tool_label   100% 2 0 0   100% 0 0   100%
paintmaskanimator/toolpanel.py _tool_icon   100% 1 0 0   100% 0 0   100%
paintmaskanimator/toolpanel.py SwatchStack.__init__   100% 23 0 0   100% 2 0   100%
paintmaskanimator/toolpanel.py SwatchStack.relayout   100% 18 0 0   100% 4 0   100%
paintmaskanimator/toolpanel.py SwatchStack._layout_buttons   100% 8 0 0   100% 2 0   100%
paintmaskanimator/toolpanel.py SwatchStack.set_colors   100% 6 0 0   50% 2 1   88%
paintmaskanimator/toolpanel.py SwatchStack._restyle   100% 7 0 0   100% 0 0   100%
paintmaskanimator/toolpanel.py SwatchStack._restyle.style   100% 2 0 0   100% 0 0   100%
paintmaskanimator/toolpanel.py ToolSelectorPanel.__init__   100% 56 0 0   100% 2 0   100%
paintmaskanimator/toolpanel.py ToolSelectorPanel._rebuild_item_map   0% 13 13 0   0% 8 0   0%
paintmaskanimator/toolpanel.py ToolSelectorPanel._apply_list_theme   100% 2 0 0   100% 0 0   100%
paintmaskanimator/toolpanel.py ToolSelectorPanel.apply_theme   100% 4 0 0   100% 2 0   100%
paintmaskanimator/toolpanel.py ToolSelectorPanel.set_swatch_colors   100% 1 0 0   100% 0 0   100%
paintmaskanimator/toolpanel.py ToolSelectorPanel._resize_swatch_to_columns   100% 7 0 0   100% 2 0   100%
paintmaskanimator/toolpanel.py ToolSelectorPanel.sync_swatch_to_displayed_columns   100% 4 0 0   100% 2 0   100%
paintmaskanimator/toolpanel.py ToolSelectorPanel.minimumSizeHint   100% 1 0 0   100% 0 0   100%
paintmaskanimator/toolpanel.py ToolSelectorPanel.sizeHint   100% 1 0 0   100% 0 0   100%
paintmaskanimator/toolpanel.py ToolSelectorPanel.width_for_columns   100% 2 0 0   100% 0 0   100%
paintmaskanimator/toolpanel.py ToolSelectorPanel.resizeEvent   100% 8 0 0   100% 2 0   100%
paintmaskanimator/toolpanel.py ToolSelectorPanel.displayed_column_count   92% 12 1 0   67% 6 2   83%
paintmaskanimator/toolpanel.py ToolSelectorPanel.set_active_tool   86% 7 1 0   50% 2 1   78%
paintmaskanimator/toolpanel.py ToolSelectorPanel._current_item_changed   0% 7 7 0   0% 4 0   0%
paintmaskanimator/toolpanel.py ToolSelectorPanel.select_tool   0% 7 7 0   0% 4 0   0%
paintmaskanimator/toolpanel.py IncludeColorSlots.__init__   100% 21 0 0   100% 2 0   100%
paintmaskanimator/toolpanel.py IncludeColorSlots.colors   100% 1 0 0   100% 0 0   100%
paintmaskanimator/toolpanel.py IncludeColorSlots.registered_colors   100% 1 0 0   100% 0 0   100%
paintmaskanimator/toolpanel.py IncludeColorSlots.is_enabled   100% 1 0 0   100% 0 0   100%
paintmaskanimator/toolpanel.py IncludeColorSlots.set_enabled   83% 6 1 0   50% 2 1   75%
paintmaskanimator/toolpanel.py IncludeColorSlots.set_color   86% 7 1 0   50% 2 1   78%
paintmaskanimator/toolpanel.py IncludeColorSlots.register_current   83% 6 1 0   50% 2 1   75%
paintmaskanimator/toolpanel.py IncludeColorSlots._show_menu   0% 11 11 0   100% 0 0   0%
paintmaskanimator/toolpanel.py IncludeColorSlots._load   100% 9 0 0   90% 10 1   95%
paintmaskanimator/toolpanel.py IncludeColorSlots._save   100% 2 0 0   100% 0 0   100%
paintmaskanimator/toolpanel.py IncludeColorSlots._refresh   100% 12 0 0   100% 6 0   100%
paintmaskanimator/toolpanel.py ToolPanel._sync_shape_corner_controls   100% 4 0 0   100% 0 0   100%
paintmaskanimator/toolpanel.py ToolPanel.__init__   99% 456 4 0   83% 30 3   98%
paintmaskanimator/toolpanel.py ToolPanel.__init__.sync_bucket_options   100% 12 0 0   100% 0 0   100%
paintmaskanimator/toolpanel.py ToolPanel._close_line_curve_popup   0% 5 5 0   0% 2 0   0%
paintmaskanimator/toolpanel.py ToolPanel._show_line_curve_popup   0% 22 22 0   0% 4 0   0%
paintmaskanimator/toolpanel.py ToolPanel._sync_transform_quality_options   100% 1 0 0   100% 0 0   100%
paintmaskanimator/toolpanel.py ToolPanel._refresh_transform_line_width_visibility   100% 4 0 0   100% 0 0   100%
paintmaskanimator/toolpanel.py ToolPanel.set_tween_active   100% 2 0 0   100% 0 0   100%
paintmaskanimator/toolpanel.py ToolPanel.set_transform_line_colors_available   100% 2 0 0   100% 0 0   100%
paintmaskanimator/toolpanel.py ToolPanel.toggle_selection_all_frames   0% 2 2 0   0% 2 0   0%
paintmaskanimator/toolpanel.py ToolPanel._shape_kind_changed   83% 6 1 0   50% 4 2   70%
paintmaskanimator/toolpanel.py ToolPanel.select_tool   100% 80 0 0   100% 8 0   100%
paintmaskanimator/toolpanel.py ToolPanel._include_slot_color   67% 3 1 0   50% 2 1   60%
paintmaskanimator/toolpanel.py ToolPanel.step_brush_size   100% 7 0 0   100% 2 0   100%
paintmaskanimator/toolpanel.py ToolPanel.set_color_mode   100% 1 0 0   100% 0 0   100%
paintmaskanimator/toolpanel.py ToolPanel.set_colors   100% 3 0 0   100% 0 0   100%
paintmaskanimator/toolpanel.py ToolPanel.refresh_swatches   100% 17 0 0   83% 6 1   96%
paintmaskanimator/toolpanel.py ToolPanel.refresh_swatches.style   100% 2 0 0   100% 0 0   100%
paintmaskanimator/toolpanel.py ToolPanel._apply_color_code   84% 19 3 0   62% 8 3   78%
paintmaskanimator/toolpanel.py ToolPanel._copy_color_code   100% 4 0 0   50% 2 1   83%
paintmaskanimator/toolpanel.py ToolPanel._reset_colors_icon   100% 13 0 0   100% 0 0   100%
paintmaskanimator/toolpanel.py ToolPanel.apply_theme   100% 5 0 0   100% 0 0   100%
paintmaskanimator/toolpanel.py ToolPanel.clear_slider_layout   100% 3 0 0   100% 0 0   100%
paintmaskanimator/toolpanel.py ToolPanel.set_wheel_mode   0% 5 5 0   0% 2 0   0%
paintmaskanimator/toolpanel.py ToolPanel.set_wheel_hue_mode   0% 5 5 0   0% 2 0   0%
paintmaskanimator/toolpanel.py ToolPanel.set_slider_mode   80% 5 1 0   50% 2 1   71%
paintmaskanimator/toolpanel.py ToolPanel.rebuild_color_sliders   96% 25 1 0   83% 6 1   94%
paintmaskanimator/toolpanel.py ToolPanel.active_color   100% 1 0 0   100% 2 0   100%
paintmaskanimator/toolpanel.py ToolPanel._channel_values_from_color   67% 6 2 0   75% 4 1   70%
paintmaskanimator/toolpanel.py ToolPanel._color_from_channel_values   71% 7 2 0   50% 4 2   64%
paintmaskanimator/toolpanel.py ToolPanel.sync_sliders   94% 18 1 0   75% 8 2   88%
paintmaskanimator/toolpanel.py ToolPanel.update_slider_gradients   88% 16 2 0   75% 8 2   83%
paintmaskanimator/toolpanel.py ToolPanel.slider_color_changed   83% 12 2 0   50% 4 2   75%
paintmaskanimator/toolpanel.py ToolPanel.wheel_color_changed   89% 9 1 0   50% 4 2   77%
paintmaskanimator/toolpanel.py (no function)   100% 121 0 0   100% 0 0   100%
paintmaskanimator/tooltip.py titled   100% 2 0 0   100% 0 0   100%
paintmaskanimator/tooltip.py ToolTipPopup.__init__   100% 18 0 0   100% 2 0   100%
paintmaskanimator/tooltip.py ToolTipPopup.set_text   90% 20 2 0   83% 6 1   88%
paintmaskanimator/tooltip.py ToolTipPopup.show_at   0% 12 12 0   0% 6 0   0%
paintmaskanimator/tooltip.py ToolTipPopup.paintEvent   0% 18 18 0   0% 2 0   0%
paintmaskanimator/tooltip.py ToolTipManager.__init__   0% 4 4 0   100% 0 0   0%
paintmaskanimator/tooltip.py ToolTipManager._tooltip_for   0% 20 20 0   0% 14 0   0%
paintmaskanimator/tooltip.py ToolTipManager.eventFilter   0% 9 9 0   0% 2 0   0%
paintmaskanimator/tooltip.py ToolTipManager._uninstall   0% 3 3 0   0% 2 0   0%
paintmaskanimator/tooltip.py ToolTipManager._filter   0% 22 22 0   0% 16 0   0%
paintmaskanimator/tooltip.py ToolTipManager.hide   0% 4 4 0   0% 2 0   0%
paintmaskanimator/tooltip.py install   0% 6 6 0   0% 2 0   0%
paintmaskanimator/tooltip.py (no function)   100% 30 0 0   100% 0 0   100%
paintmaskanimator/tween_groups.py new_id   100% 1 0 0   100% 0 0   100%
paintmaskanimator/tween_groups.py points_to_data   100% 1 0 0   100% 0 0   100%
paintmaskanimator/tween_groups.py points_from_data   100% 1 0 0   100% 0 0   100%
paintmaskanimator/tween_groups.py make_spec   100% 1 0 0   100% 0 0   100%
paintmaskanimator/tween_groups.py _points_ok   100% 1 0 0   100% 0 0   100%
paintmaskanimator/tween_groups.py sanitize_spec   83% 12 2 0   100% 8 0   90%
paintmaskanimator/tween_groups.py group_length   82% 17 3 0   75% 12 3   79%
paintmaskanimator/tween_groups.py tween_groups   100% 10 0 0   100% 4 0   100%
paintmaskanimator/tween_groups.py (no function)   100% 11 0 0   100% 0 0   100%
paintmaskanimator/undo_entries.py _image_bytes   100% 4 0 0   100% 0 0   100%
paintmaskanimator/undo_entries.py UndoEntry.history_label   100% 1 0 0   100% 0 0   100%
paintmaskanimator/undo_entries.py UndoEntry.nbytes   100% 1 0 0   100% 0 0   100%
paintmaskanimator/undo_entries.py ExposureUndo.capture   100% 1 0 0   100% 0 0   100%
paintmaskanimator/undo_entries.py DocUndo.nbytes   60% 5 2 0   100% 0 0   60%
paintmaskanimator/undo_entries.py InitialStateUndo.nbytes   100% 1 0 0   100% 0 0   100%
paintmaskanimator/undo_entries.py LayerUndo.nbytes   100% 1 0 0   100% 0 0   100%
paintmaskanimator/undo_entries.py LayerRegionUndo.nbytes   100% 1 0 0   100% 0 0   100%
paintmaskanimator/undo_entries.py LayerTilesUndo.nbytes   100% 1 0 0   100% 0 0   100%
paintmaskanimator/undo_entries.py LayerBatchUndo.nbytes   100% 1 0 0   100% 0 0   100%
paintmaskanimator/undo_entries.py ScopedBatchUndo.history_label   100% 1 0 0   100% 0 0   100%
paintmaskanimator/undo_entries.py ScopedBatchUndo.nbytes   100% 1 0 0   100% 0 0   100%
paintmaskanimator/undo_entries.py LayerInsertUndo.nbytes   100% 1 0 0   100% 0 0   100%
paintmaskanimator/undo_entries.py TweenBatchUndo.nbytes   0% 1 1 0   100% 0 0   0%
paintmaskanimator/undo_entries.py PaletteStateUndo.history_label   100% 1 0 0   100% 0 0   100%
paintmaskanimator/undo_entries.py history_label_for   100% 2 0 0   100% 0 0   100%
paintmaskanimator/undo_entries.py translate_history_label   100% 2 0 0   100% 0 0   100%
paintmaskanimator/undo_entries.py TransformUndo.capture   100% 1 0 0   100% 0 0   100%
paintmaskanimator/undo_entries.py (no function)   100% 121 0 0   100% 0 0   100%
paintmaskanimator/updater.py parse_version   100% 5 0 0   100% 2 0   100%
paintmaskanimator/updater.py is_newer   100% 8 0 0   100% 2 0   100%
paintmaskanimator/updater.py current_platform_key   0% 5 5 0   0% 4 0   0%
paintmaskanimator/updater.py pick_installer_asset   100% 9 0 0   100% 4 0   100%
paintmaskanimator/updater.py _request   100% 1 0 0   100% 0 0   100%
paintmaskanimator/updater.py fetch_latest_release   0% 3 3 0   100% 0 0   0%
paintmaskanimator/updater.py download_asset   0% 14 14 0   0% 4 0   0%
paintmaskanimator/updater.py check_for_update   68% 19 6 0   88% 8 1   74%
paintmaskanimator/updater.py (no function)   100% 19 0 0   100% 0 0   100%
paintmaskanimator/utils.py install_app_event_filter   83% 6 1 0   50% 4 2   70%
paintmaskanimator/utils.py remove_app_event_filter   100% 5 0 0   75% 4 1   89%
paintmaskanimator/utils.py _is_alive   100% 2 0 0   100% 0 0   100%
paintmaskanimator/utils.py app_event_filters_suspended   100% 12 0 0   80% 10 2   91%
paintmaskanimator/utils.py workspace_size   100% 1 0 0   100% 0 0   100%
paintmaskanimator/utils.py top_level_window_ids   73% 15 4 0   88% 8 1   78%
paintmaskanimator/utils.py disable_windows_ink_feedback   10% 20 18 0   17% 6 1   12%
paintmaskanimator/utils.py _DoubleClickFilter.__init__   100% 2 0 0   100% 0 0   100%
paintmaskanimator/utils.py _DoubleClickFilter.eventFilter   100% 4 0 0   100% 2 0   100%
paintmaskanimator/utils.py on_double_click   100% 1 0 0   100% 0 0   100%
paintmaskanimator/utils.py blank_image   100% 12 0 0   100% 4 0   100%
paintmaskanimator/utils.py paper_image   100% 5 0 0   100% 0 0   100%
paintmaskanimator/utils.py checker_pixmap   100% 8 0 0   100% 4 0   100%
paintmaskanimator/utils.py drag_zoom_factor   100% 1 0 0   100% 0 0   100%
paintmaskanimator/utils.py tool_cursor   100% 25 0 0   100% 12 0   100%
paintmaskanimator/utils.py magnifier_cursor   100% 19 0 0   100% 4 0   100%
paintmaskanimator/utils.py _sample_screen_color   91% 11 1 0   75% 4 1   87%
paintmaskanimator/utils.py _relative_luminance   100% 2 0 0   100% 0 0   100%
paintmaskanimator/utils.py _relative_luminance.channel   100% 2 0 0   100% 0 0   100%
paintmaskanimator/utils.py loupe_ui_color   100% 6 0 0   100% 2 0   100%
paintmaskanimator/utils.py ScreenColorLoupe.__init__   100% 8 0 0   100% 0 0   100%
paintmaskanimator/utils.py ScreenColorLoupe.show_at   89% 18 2 0   50% 4 2   82%
paintmaskanimator/utils.py ScreenColorLoupe.paintEvent   100% 27 0 0   75% 4 1   97%
paintmaskanimator/utils.py show_screen_color_loupe   100% 5 0 0   100% 2 0   100%
paintmaskanimator/utils.py hide_screen_color_loupe   100% 3 0 0   100% 2 0   100%
paintmaskanimator/utils.py ScreenColorPickerOverlay.__init__   100% 10 0 0   100% 0 0   100%
paintmaskanimator/utils.py ScreenColorPickerOverlay.virtual_desktop_geometry   71% 7 2 0   50% 4 2   64%
paintmaskanimator/utils.py ScreenColorPickerOverlay.start   80% 10 2 0   50% 2 1   75%
paintmaskanimator/utils.py ScreenColorPickerOverlay.mouseMoveEvent   0% 2 2 0   100% 0 0   0%
paintmaskanimator/utils.py ScreenColorPickerOverlay.mousePressEvent   60% 10 4 0   25% 4 1   50%
paintmaskanimator/utils.py ScreenColorPickerOverlay.mouseReleaseEvent   55% 11 5 0   25% 4 1   47%
paintmaskanimator/utils.py ScreenColorPickerOverlay.keyPressEvent   80% 5 1 0   50% 2 1   71%
paintmaskanimator/utils.py ScreenColorPickerOverlay.finish   83% 12 2 0   50% 4 2   75%
paintmaskanimator/utils.py ScreenColorPickerOverlay.cancel   86% 7 1 0   50% 2 1   78%
paintmaskanimator/utils.py ScreenColorPickerOverlay.closeEvent   100% 2 0 0   100% 0 0   100%
paintmaskanimator/utils.py _ScreenColorDragMixin._init_screen_color_drag   100% 7 0 0   100% 0 0   100%
paintmaskanimator/utils.py _ScreenColorDragMixin._event_global_position   100% 7 0 0   83% 6 1   92%
paintmaskanimator/utils.py _ScreenColorDragMixin._emit_screen_color   50% 4 2 0   25% 4 1   38%
paintmaskanimator/utils.py _ScreenColorDragMixin._begin_screen_pick   75% 16 4 0   100% 0 0   75%
paintmaskanimator/utils.py _ScreenColorDragMixin._cancel_screen_pick_cursor   75% 8 2 0   100% 2 0   80%
paintmaskanimator/utils.py _ScreenColorDragMixin._finish_screen_pick   100% 9 0 0   50% 2 1   91%
paintmaskanimator/utils.py _ScreenColorDragMixin.mousePressEvent   100% 9 0 0   75% 4 1   92%
paintmaskanimator/utils.py _ScreenColorDragMixin.mouseMoveEvent   91% 11 1 0   67% 6 2   82%
paintmaskanimator/utils.py _ScreenColorDragMixin.mouseReleaseEvent   100% 7 0 0   100% 2 0   100%
paintmaskanimator/utils.py _ScreenColorDragMixin.event   72% 46 13 0   50% 20 4   65%
paintmaskanimator/utils.py natural_path_key   100% 2 0 0   100% 0 0   100%
paintmaskanimator/utils.py (no function)   100% 78 0 9   100% 0 0   100%
paintmaskanimator/view_preview.py ViewPreview.active   100% 1 0 0   100% 0 0   100%
paintmaskanimator/view_preview.py ViewPreview.adjusts_pixels   100% 1 0 0   100% 0 0   100%
paintmaskanimator/view_preview.py ViewPreview.key   100% 1 0 0   100% 0 0   100%
paintmaskanimator/view_preview.py clamp_exposure   100% 1 0 0   100% 0 0   100%
paintmaskanimator/view_preview.py exposure_lut   100% 3 0 0   100% 0 0   100%
paintmaskanimator/view_preview.py adjust_pixels   100% 13 0 0   100% 6 0   100%
paintmaskanimator/view_preview.py background_color   100% 5 0 0   100% 2 0   100%
paintmaskanimator/view_preview.py label_regions   100% 2 0 0   100% 0 0   100%
paintmaskanimator/view_preview.py label_regions_numpy   97% 33 1 0   88% 8 1   95%
paintmaskanimator/view_preview.py region_neighbors   100% 2 0 0   100% 0 0   100%
paintmaskanimator/view_preview.py region_neighbors_numpy   95% 21 1 0   83% 12 2   91%
paintmaskanimator/view_preview.py assign_map_colors   89% 28 3 0   86% 14 2   88%
paintmaskanimator/view_preview.py map_color_pixels   96% 51 2 0   86% 28 4   92%
paintmaskanimator/view_preview.py (no function)   100% 38 0 0   100% 0 0   100%
paintmaskanimator/widgets.py TransformLineThicknessDialog.__init__   0% 24 24 0   100% 0 0   0%
paintmaskanimator/widgets.py TransformLineThicknessDialog.value   0% 1 1 0   100% 0 0   0%
paintmaskanimator/widgets.py CanvasSizeDialog.__init__   100% 7 0 0   100% 0 0   100%
paintmaskanimator/widgets.py CanvasSizeDialog.values   100% 1 0 0   100% 2 0   100%
paintmaskanimator/widgets.py HoldShortcutEdit.__init__   0% 7 7 0   100% 0 0   0%
paintmaskanimator/widgets.py HoldShortcutEdit._begin_capture   0% 3 3 0   100% 0 0   0%
paintmaskanimator/widgets.py HoldShortcutEdit.shortcutText   0% 1 1 0   100% 0 0   0%
paintmaskanimator/widgets.py HoldShortcutEdit.setShortcutText   0% 3 3 0   100% 0 0   0%
paintmaskanimator/widgets.py HoldShortcutEdit._refresh_text   0% 2 2 0   100% 0 0   0%
paintmaskanimator/widgets.py HoldShortcutEdit._key_name   0% 4 4 0   0% 2 0   0%
paintmaskanimator/widgets.py HoldShortcutEdit.keyPressEvent   0% 17 17 0   0% 10 0   0%
paintmaskanimator/widgets.py HoldShortcutEdit.focusOutEvent   0% 3 3 0   100% 0 0   0%
paintmaskanimator/widgets.py ShortcutDialog.__init__   93% 30 2 0   83% 6 1   92%
paintmaskanimator/widgets.py ShortcutDialog.apply   67% 27 9 0   62% 16 6   65%
paintmaskanimator/widgets.py SwatchEyedropButton.__init__   100% 2 0 0   100% 0 0   100%
paintmaskanimator/widgets.py BrushSizeSpinBox.__init__   100% 12 0 0   100% 0 0   100%
paintmaskanimator/widgets.py BrushSizeSpinBox._refresh_tooltip   100% 1 0 0   100% 0 0   100%
paintmaskanimator/widgets.py BrushSizeSpinBox.setPressurePopupEnabled   100% 2 0 0   100% 0 0   100%
paintmaskanimator/widgets.py BrushSizeSpinBox._clear_number_selection   0% 7 7 0   0% 2 0   0%
paintmaskanimator/widgets.py BrushSizeSpinBox.stepBy   0% 2 2 0   100% 0 0   0%
paintmaskanimator/widgets.py BrushSizeSpinBox.mouseReleaseEvent   0% 6 6 0   0% 2 0   0%
paintmaskanimator/widgets.py BrushSizeSpinBox.wheelEvent   0% 1 1 0   100% 0 0   0%
paintmaskanimator/widgets.py SliderValueSpinBox.__init__   100% 37 0 0   100% 2 0   100%
paintmaskanimator/widgets.py SliderValueSpinBox._clear_number_selection   0% 7 7 0   0% 2 0   0%
paintmaskanimator/widgets.py SliderValueSpinBox._step_up_without_selection   0% 2 2 0   100% 0 0   0%
paintmaskanimator/widgets.py SliderValueSpinBox._step_down_without_selection   0% 2 2 0   100% 0 0   0%
paintmaskanimator/widgets.py SliderValueSpinBox.resizeEvent   100% 8 0 0   100% 0 0   100%
paintmaskanimator/widgets.py SliderValueSpinBox.validate   50% 22 11 0   36% 14 5   44%
paintmaskanimator/widgets.py SliderValueSpinBox.valueFromText   0% 4 4 0   100% 0 0   0%
paintmaskanimator/widgets.py SliderValueSpinBox.textFromValue   67% 3 1 0   50% 2 1   60%
paintmaskanimator/widgets.py SliderValueSpinBox._spin_changed   100% 4 0 0   50% 2 1   83%
paintmaskanimator/widgets.py SliderValueSpinBox._slider_changed   100% 3 0 0   100% 0 0   100%
paintmaskanimator/widgets.py SliderValueSpinBox.setDisplayValue   100% 3 0 0   100% 0 0   100%
paintmaskanimator/widgets.py SliderValueSpinBox.wheelEvent   0% 1 1 0   100% 0 0   0%
paintmaskanimator/widgets.py ClickableValueLabel.__init__   100% 2 0 0   100% 0 0   100%
paintmaskanimator/widgets.py ClickableValueLabel.mouseReleaseEvent   0% 5 5 0   0% 2 0   0%
paintmaskanimator/widgets.py LineTaperCurvePopup.__init__   0% 20 20 0   100% 0 0   0%
paintmaskanimator/widgets.py LineTaperCurvePopup._value_changed   0% 2 2 0   100% 0 0   0%
paintmaskanimator/widgets.py TweenCommandPopup.__init__   98% 41 1 0   50% 2 1   95%
paintmaskanimator/widgets.py TweenCommandPopup._sync_direction_note   67% 3 1 0   50% 2 1   60%
paintmaskanimator/widgets.py HSVColorWheel.__init__   100% 11 0 0   100% 0 0   100%
paintmaskanimator/widgets.py HSVColorWheel.mode   100% 1 0 0   100% 0 0   100%
paintmaskanimator/widgets.py HSVColorWheel.setMode   82% 11 2 0   75% 4 1   80%
paintmaskanimator/widgets.py HSVColorWheel.hueMode   100% 1 0 0   100% 0 0   100%
paintmaskanimator/widgets.py HSVColorWheel.setHueMode   100% 8 0 0   100% 2 0   100%
paintmaskanimator/widgets.py HSVColorWheel._update_tooltip   100% 3 0 0   100% 0 0   100%
paintmaskanimator/widgets.py HSVColorWheel.setColor   80% 5 1 0   50% 2 1   71%
paintmaskanimator/widgets.py HSVColorWheel._wheel_geometry   100% 16 0 0   100% 2 0   100%
paintmaskanimator/widgets.py HSVColorWheel._ring_metrics   100% 4 0 0   100% 0 0   100%
paintmaskanimator/widgets.py HSVColorWheel._ring_hue   100% 2 0 0   100% 0 0   100%
paintmaskanimator/widgets.py HSVColorWheel._triangle_vertices   100% 5 0 0   100% 0 0   100%
paintmaskanimator/widgets.py HSVColorWheel._barycentric   86% 7 1 0   50% 2 1   78%
paintmaskanimator/widgets.py HSVColorWheel._triangle_color   100% 7 0 0   100% 0 0   100%
paintmaskanimator/widgets.py HSVColorWheel._triangle_point_for_color   0% 23 23 0   0% 4 0   0%
paintmaskanimator/widgets.py HSVColorWheel.resizeEvent   100% 2 0 0   100% 0 0   100%
paintmaskanimator/widgets.py HSVColorWheel._wheel_image   100% 38 0 0   100% 24 0   100%
paintmaskanimator/widgets.py HSVColorWheel.paintEvent   78% 37 8 0   50% 12 6   71%
paintmaskanimator/widgets.py HSVColorWheel._part_at   57% 14 6 0   40% 10 2   50%
paintmaskanimator/widgets.py HSVColorWheel._select_triangle   0% 12 12 0   0% 2 0   0%
paintmaskanimator/widgets.py HSVColorWheel._select_at   0% 26 26 0   0% 12 0   0%
paintmaskanimator/widgets.py HSVColorWheel.mousePressEvent   0% 7 7 0   0% 4 0   0%
paintmaskanimator/widgets.py HSVColorWheel.mouseMoveEvent   0% 6 6 0   0% 4 0   0%
paintmaskanimator/widgets.py HSVColorWheel.mouseReleaseEvent   0% 2 2 0   100% 0 0   0%
paintmaskanimator/widgets.py _list_value   100% 1 0 0   100% 0 0   100%
paintmaskanimator/widgets.py sheet_columns_from_parsed   67% 12 4 0   50% 8 4   60%
paintmaskanimator/widgets.py default_layer_bindings   0% 12 12 0   0% 6 0   0%
paintmaskanimator/widgets.py TimeRemapPasteDialog.__init__   100% 93 0 0   100% 0 0   100%
paintmaskanimator/widgets.py TimeRemapPasteDialog._paste_clipboard   0% 2 2 0   100% 0 0   0%
paintmaskanimator/widgets.py TimeRemapPasteDialog._dropped_xdts_path   0% 7 7 0   0% 6 0   0%
paintmaskanimator/widgets.py TimeRemapPasteDialog.dragEnterEvent   0% 4 4 0   0% 2 0   0%
paintmaskanimator/widgets.py TimeRemapPasteDialog.dragMoveEvent   0% 4 4 0   0% 2 0   0%
paintmaskanimator/widgets.py TimeRemapPasteDialog.dropEvent   0% 6 6 0   0% 2 0   0%
paintmaskanimator/widgets.py TimeRemapPasteDialog._load_xdts_file   0% 4 4 0   0% 2 0   0%
paintmaskanimator/widgets.py TimeRemapPasteDialog._load_xdts_path   0% 9 9 0   100% 0 0   0%
paintmaskanimator/widgets.py TimeRemapPasteDialog.text_clear   0% 11 11 0   100% 0 0   0%
paintmaskanimator/widgets.py TimeRemapPasteDialog._list_value   100% 1 0 0   100% 0 0   100%
paintmaskanimator/widgets.py TimeRemapPasteDialog._mapping_list   100% 1 0 0   100% 0 0   100%
paintmaskanimator/widgets.py TimeRemapPasteDialog._sheet_columns   0% 1 1 0   100% 0 0   0%
paintmaskanimator/widgets.py TimeRemapPasteDialog._column_uid   0% 1 1 0   100% 0 0   0%
paintmaskanimator/widgets.py TimeRemapPasteDialog._available_layers   0% 8 8 0   0% 4 0   0%
paintmaskanimator/widgets.py TimeRemapPasteDialog._initialize_layer_bindings   0% 2 2 0   100% 0 0   0%
paintmaskanimator/widgets.py TimeRemapPasteDialog._save_current_included_rows   0% 6 6 0   0% 4 0   0%
paintmaskanimator/widgets.py TimeRemapPasteDialog._set_column_layer_binding   0% 10 10 0   0% 6 0   0%
paintmaskanimator/widgets.py TimeRemapPasteDialog._preview_header_clicked   0% 29 29 0   0% 10 0   0%
paintmaskanimator/widgets.py TimeRemapPasteDialog._update_preview_headers   0% 23 23 0   0% 10 0   0%
paintmaskanimator/widgets.py TimeRemapPasteDialog._set_selected_rows_included   0% 9 9 0   0% 6 0   0%
paintmaskanimator/widgets.py TimeRemapPasteDialog._include_all_rows   0% 4 4 0   0% 4 0   0%
paintmaskanimator/widgets.py TimeRemapPasteDialog._preview_item_changed   0% 4 4 0   0% 2 0   0%
paintmaskanimator/widgets.py TimeRemapPasteDialog._update_preview_status   0% 15 15 0   0% 6 0   0%
paintmaskanimator/widgets.py TimeRemapPasteDialog._populate_preview_table   0% 49 49 0   0% 22 0   0%
paintmaskanimator/widgets.py TimeRemapPasteDialog._update_timesheet_preview   60% 35 14 0   50% 8 4   58%
paintmaskanimator/widgets.py TimeRemapPasteDialog.parsed_result   0% 30 30 0   0% 12 0   0%
paintmaskanimator/widgets.py TimeRemapPasteDialog._accept_if_valid   0% 9 9 0   0% 4 0   0%
paintmaskanimator/widgets.py (no function)   100% 140 0 0   100% 0 0   100%
Total     73% 36093 9657 1100   57% 10646 1753   70%

No items found using the specified filter.