Skip to content
Draft
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
249 commits
Select commit Hold shift + click to select a range
15d080a
Safe HDF save with conflict dialog
C-Achard Feb 13, 2026
8f75155
Add e2e overwrite tests and conflict tests
C-Achard Feb 13, 2026
0f3f7b6
Refactor overwrite tests; fix writer and _add
C-Achard Feb 13, 2026
c1b61e5
Fix keypoint property alignment on add
C-Achard Feb 13, 2026
ed65648
Skip non-DLC folders in folder parser
C-Achard Feb 13, 2026
3b37b6a
Prefer DLC reader; adopt existing layers
C-Achard Feb 13, 2026
761ed19
Improve HDF writer robustness and logging
C-Achard Feb 13, 2026
abd8ffc
Update tests for folder parser and hdf key
C-Achard Feb 13, 2026
4b20117
Sync points metadata; robust writer and store
C-Achard Feb 13, 2026
43f66fa
Use _has_value helper for metadata checks
C-Achard Feb 13, 2026
26d4ccb
tests: add helper to add or update keypoints
C-Achard Feb 13, 2026
2bf40af
Start refactor: Add metadata, models, and path utilities
C-Achard Feb 17, 2026
3b84c6f
Create __init__.py
C-Achard Feb 17, 2026
b355528
Create __init__.py
C-Achard Feb 17, 2026
dd528af
Refactor image metadata and overwrite logic
C-Achard Feb 17, 2026
1df4a48
Remove Welcome widget and add ImageMetadata repr
C-Achard Feb 17, 2026
a61cf57
Move layer remap logic into core.remap
C-Achard Feb 17, 2026
53622f6
Add tests for remapping layer/frame indices
C-Achard Feb 17, 2026
b564c74
Warn on ambiguous path remapping and return warnings
C-Achard Feb 17, 2026
d3555a5
Apply suggestions from code review
C-Achard Feb 17, 2026
a3a7ca4
Temporarily modify error handling and logger FIXME
C-Achard Feb 18, 2026
196480f
Detect videos and log when images missing
C-Achard Feb 18, 2026
ef7c17d
Add multi-GT/machine H5 helpers and tests
C-Achard Feb 17, 2026
a1668b3
Add IO provenance, discovery, and errors
C-Achard Feb 17, 2026
96dc5a2
Add tests for annotation IO discovery
C-Achard Feb 17, 2026
88625e7
Load all H5 files and record source metadata
C-Achard Feb 17, 2026
58d9970
Add IO provenance & migration helpers
C-Achard Feb 17, 2026
987b38e
Include save_target in PointsMetadata; update test
C-Achard Feb 17, 2026
8f9ee05
Promote predictions to CollectedData on save
C-Achard Feb 17, 2026
1ff00cc
Add sidecar metadata and writer promotion tests
C-Achard Feb 17, 2026
69eb213
Move config writer to core.io and update uses
C-Achard Feb 17, 2026
0115792
Harden writer and metadata parsing; update tests
C-Achard Feb 17, 2026
8db7dab
Centralize IO metadata handling; update imports
C-Achard Feb 18, 2026
4439781
Update TODO date and refactor test helper
C-Achard Feb 18, 2026
af5a7ea
Remove unused code in misc
C-Achard Feb 18, 2026
d3f274d
Ignore uv.lock in .gitignore
C-Achard Feb 18, 2026
bf8e03f
Run pre-commit on all
C-Achard Feb 18, 2026
b95552e
WIP Refactor annotation I/O and provenance
C-Achard Feb 18, 2026
9b99ce2
Cleanup imports, typing hints, and formatting
C-Achard Feb 18, 2026
35d173f
WIP Refactor core IO, metadata, and layer helpers
C-Achard Feb 18, 2026
2c27dc5
Enable 'FA' ruff rule and adjust imports
C-Achard Feb 18, 2026
e81ee37
Move IO helpers to core.io and update imports
C-Achard Feb 18, 2026
16c3707
Refactor IO: HDF, image and video handling
C-Achard Feb 18, 2026
50bfef6
Move read_hdf to core.io and refactor callers
C-Achard Feb 18, 2026
60f3931
Use nested metadata for IO and resource loading
C-Achard Feb 18, 2026
2597f63
Integrate save/paste/promotion into controls
C-Achard Feb 18, 2026
cd39b55
Refactor keypoint metadata handling and I/O
C-Achard Feb 18, 2026
164495b
Refactor keypoint writer into core.io and add schemas
C-Achard Feb 18, 2026
53e7ecf
Use '__dlc__.h5' placeholder for napari saves
C-Achard Feb 18, 2026
30d23e8
Refactor IO/writer behavior and update tests
C-Achard Feb 18, 2026
8b94ed0
Improve DLC header/io handling and safe-save logic
C-Achard Feb 18, 2026
e4bcbd5
Move keypoint conflict helpers to dataframes
C-Achard Feb 18, 2026
2e2e932
Move and refactor DataFrame helpers to core.dataframes
C-Achard Feb 18, 2026
aa0d1c4
Use merge_multiple_scorers from core.dataframes
C-Achard Feb 18, 2026
03ddb74
Clarify empty points and 'individuals' header
C-Achard Feb 18, 2026
1559b14
Add NaN-stable signature tests; validate IO fields
C-Achard Feb 19, 2026
cf82f8d
Add unit tests for provenance utilities
C-Achard Feb 19, 2026
f0185a8
Expand provenance tests; update ensure_io_provenance docstring
C-Achard Feb 19, 2026
1440d59
Handle empty ids/likelihood in keypoint metadata
C-Achard Feb 19, 2026
6d190ed
Handle pandas Series in keypoint metadata
C-Achard Feb 19, 2026
2272b78
Add core IO and dataframe unit tests
C-Achard Feb 19, 2026
c266131
Add candidates to AmbiguousSaveError and refine IO
C-Achard Feb 19, 2026
ce1a7bb
Add tests for empty Points layer handling
C-Achard Feb 19, 2026
b75f1c1
Add safe cycle mode and header validation for Points
C-Achard Feb 19, 2026
68bc28c
Safely handle invalid keypoint properties
C-Achard Feb 19, 2026
15e04e1
tests: add header factory, qtbot marks
C-Achard Feb 19, 2026
f30f131
Refactor keypoint widget, tests; fix IO
C-Achard Feb 24, 2026
e895320
Refactor layer setup and safe coloring
C-Achard Feb 24, 2026
33f6133
Add multianimal fixture and color-related E2E tests
C-Achard Mar 4, 2026
39849d4
Fix test call; tighten metadata/provenance & misc
C-Achard Mar 4, 2026
5c3ca4e
Store project_root without existence check
C-Achard Mar 4, 2026
e70cb41
Add UI dropdowns, trajectory plot, and layer utils
C-Achard Mar 4, 2026
d4ca3be
Extract UI widgets into ui package
C-Achard Mar 4, 2026
532f2d3
Replace manual layer scans with helpers
C-Achard Mar 4, 2026
995cc96
Use package resources for assets; update tests imports
C-Achard Mar 4, 2026
09a661d
Add DLCHeaderModel and metadata gateway
C-Achard Mar 4, 2026
867f4c0
Pandas-optional DLCHeaderModel & merge fixes
C-Achard Mar 4, 2026
9d8255f
Normalize DLC header handling
C-Achard Mar 4, 2026
c4cc43a
TEST OK CKPT - Handle header metadata and improve color logic
C-Achard Mar 4, 2026
8e7b572
Move napari compatibility shims to napari_compat
C-Achard Mar 4, 2026
9d3ba70
Guard napari points internals and UI tweaks
C-Achard Mar 4, 2026
f97e942
Use label getter and DLC header model in tests
C-Achard Mar 4, 2026
ad6f67b
Only promote machine layers; refine save handling
C-Achard Mar 4, 2026
ed75180
Add e2e test for colormap metadata roundtrip
C-Achard Mar 4, 2026
a571915
Remove previous test (incorrect)
C-Achard Mar 4, 2026
fd79355
Infer dataset folder for saving CollectedData
C-Achard Mar 4, 2026
398dd1a
Refactor color scheme UI into panel and resolver
C-Achard Mar 11, 2026
1366c05
Refactor color scheme display and resolver
C-Achard Mar 11, 2026
475099d
Add UI color-scheme tests and fixtures
C-Achard Mar 11, 2026
b0c43e3
Make ColorSchemePanel teardown-safe
C-Achard Mar 11, 2026
aef913a
Add e2e test marker and package structure for e2e tests splitting
C-Achard Mar 11, 2026
8e09559
Add E2E tests, fixtures, and helpers
C-Achard Mar 11, 2026
cb03914
Let qtbot handle test teardown
C-Achard Mar 11, 2026
8228cf3
Require GUI controls for overwrite; warn on abort
C-Achard Mar 12, 2026
e1d97ab
Improve remap safety and metadata sync
C-Achard Mar 12, 2026
f99554f
Better overwrite checks for keypoint saves
C-Achard Mar 12, 2026
c4da658
Add overwrite confirmation preference and UI
C-Achard Mar 12, 2026
66de989
Auto-open Keypoint controls on DLC layer load
C-Achard Mar 12, 2026
98c252f
Reuse KeypointControls and avoid duplicate docks
C-Achard Mar 12, 2026
a35723d
tests: update imports and move metadata tests
C-Achard Mar 12, 2026
753169f
Refactor overwrite_confirm fixture to use report
C-Achard Mar 12, 2026
5678e01
Switch to io.write_config and save helper
C-Achard Mar 12, 2026
381db12
Select points from legend clicks
C-Achard Mar 12, 2026
23dbeb7
Rename keypoint metadata helper; add colormap fallback
C-Achard Mar 12, 2026
e2b8f64
Refactor color scheme resolution and defaults
C-Achard Mar 12, 2026
7dcd223
Use centralized color policy for color cycles
C-Achard Mar 12, 2026
55123aa
Init refactor branch
C-Achard Mar 19, 2026
9e0f1e0
Merge pull request #163 from DeepLabCut/cy/refactor-data-flow
C-Achard Mar 23, 2026
b29d2ab
Merge branch 'cy/feature-refactor-2026' into cy/refactor-project-io
C-Achard Mar 23, 2026
4f351ff
pre-commit
C-Achard Mar 23, 2026
43af7b5
Merge pull request #164 from DeepLabCut/cy/refactor-project-io
C-Achard Mar 23, 2026
6f854d3
Merge pull request #168 from DeepLabCut/cy/refactor-ui
C-Achard Mar 23, 2026
4b2e0c0
Merge remote-tracking branch 'origin/cy/feature-refactor-2026' into c…
C-Achard Mar 23, 2026
c49a76b
Merge pull request #171 from DeepLabCut/cy/refactor-color-scheme-display
C-Achard Mar 23, 2026
c2a13db
Merge branch 'cy/feature-refactor-2026' into cy/refactor-overwrite-warns
C-Achard Mar 23, 2026
2e626f6
pre-commit
C-Achard Mar 23, 2026
4344b56
Merge pull request #173 from DeepLabCut/cy/refactor-overwrite-warns
C-Achard Mar 23, 2026
15c5f3b
Remove commented code
C-Achard Mar 13, 2026
7d2fde1
Add comment to clarify DLC-folder check failure
C-Achard Mar 13, 2026
a2525f4
Add TODO for missing raise in reader
C-Achard Mar 13, 2026
010d606
Add pytest testpaths to pyproject.toml
C-Achard Mar 19, 2026
2f81bd4
Use viewer fixture instead of redefinition
C-Achard Mar 19, 2026
881ef99
Move points layers tests to e2e
C-Achard Mar 19, 2026
3f34bc1
Add compat tests for napari integration and logic
C-Achard Mar 19, 2026
96c5e94
Add UI dialog tests and dialog_parent fixture
C-Achard Mar 19, 2026
7225db2
Support callable colormaps; add debug log
C-Achard Mar 19, 2026
86f3f97
Add tests and relax MACHINE provenance check
C-Achard Mar 19, 2026
7358900
Relax brittle assertions in dropdown test
C-Achard Mar 19, 2026
bbc800b
Add path module tests and improve stringify log
C-Achard Mar 19, 2026
822af06
Add comprehensive tests for metadata core
C-Achard Mar 19, 2026
6651760
Drop path tests
C-Achard Mar 19, 2026
0f22f8e
Add deprecation utilities and tests
C-Achard Mar 19, 2026
916f172
Apply suggestions from code review
C-Achard Mar 19, 2026
279ee4b
pre-commit
C-Achard Mar 23, 2026
de5b19f
Remove unused StrEnum and SchemeSource enum
C-Achard Mar 23, 2026
114799a
Update test_compat_integration.py
C-Achard Mar 23, 2026
bcae48e
Remove unused StrEnum and SchemeSource enum
C-Achard Mar 23, 2026
e9c8241
Merge pull request #174 from DeepLabCut/cy/refactor-cleanup
C-Achard Mar 24, 2026
e12c536
Add trails feature and refactor trail handling
C-Achard Mar 23, 2026
ef322a4
Add unit tests for trails module
C-Achard Mar 23, 2026
5ba2718
Optimize trails rebuilds and style updates
C-Achard Mar 24, 2026
b20af02
Add folder UI state and trails sidecar support
C-Achard Mar 24, 2026
37c569f
Persist trails display config to sidecar
C-Achard Mar 24, 2026
cce9323
Expand sidecar and trails unit tests
C-Achard Mar 24, 2026
02033db
Add tests for trails colormap mapping and e2e
C-Achard Mar 24, 2026
077280b
Update tests for trails colormap and widgets
C-Achard Mar 24, 2026
a996562
Merge trail properties and fix colormap codes
C-Achard Mar 24, 2026
d8817aa
Store trails ownership metadata and cleanup
C-Achard Mar 24, 2026
86eba38
Move color cycle utilities to keypoints
C-Achard Mar 24, 2026
28903a3
Move keypoints into core package and update imports
C-Achard Mar 24, 2026
81a96dc
Replace controls.np with numpy; minor cleanups
C-Achard Mar 24, 2026
1814b5f
Harmonize row index in align_old_new
C-Achard Mar 24, 2026
43b546a
Persist trails visibility on hide
C-Achard Mar 25, 2026
fdd4cd8
Add per-layer versioning and use in trails
C-Achard Mar 25, 2026
bdb96ba
Add layer versioning tests; update trails tests
C-Achard Mar 25, 2026
6da2922
Relax layer generation assertions, use signature
C-Achard Mar 25, 2026
cb46fb9
Guard clipboard text; tighten deprecation context
C-Achard Mar 25, 2026
47bdbbf
Update src/napari_deeplabcut/core/layer_versioning.py
C-Achard Mar 25, 2026
6178a57
Merge pull request #176 from DeepLabCut/cy/fix-multi-trails-refactor
C-Achard Mar 26, 2026
a347c57
Rename paths to project_paths and add utilities
C-Achard Mar 25, 2026
a787ec5
WIP - Introduce DLCProjectContext and path inference
C-Achard Mar 25, 2026
60cccf5
Centralize DLC project inference and move cropping UI
C-Achard Mar 25, 2026
4aa1aa2
Add video extraction/crop planning and UI
C-Achard Mar 25, 2026
e9701ba
Remove export/crop status from context text
C-Achard Mar 25, 2026
82fba66
Refactor video panel extraction and crop logic
C-Achard Mar 25, 2026
839ea27
Update test_widgets.py
C-Achard Mar 25, 2026
14062f6
Prefer dedicated DLC crop layer and debounce updates
C-Achard Mar 26, 2026
7c942c8
Introduce Pydantic crop models and separate coords
C-Achard Mar 26, 2026
d44298c
Add tests for cropping UI logic
C-Achard Mar 26, 2026
de330db
Improve crop panel context updates
C-Achard Mar 26, 2026
dd289ee
Refactor cropping UI tests & adjust assertions
C-Achard Mar 26, 2026
5b003f1
Make image_layer optional in plan_crop_save
C-Achard Mar 26, 2026
5495a26
Apply suggestions from code review
C-Achard Mar 26, 2026
5853088
Apply suggestions from code review
C-Achard Mar 26, 2026
be0f48b
Update cropping.py
C-Achard Mar 26, 2026
41e9951
Merge branch 'cy/refactor-cropping-widgets' of https://github.com/Dee…
C-Achard Mar 26, 2026
c062b8a
Fix DLC crop Y-extent handling and add tests
C-Achard Mar 27, 2026
c100f7f
Add overwrite checks for extracted-frame labels
C-Achard Mar 27, 2026
fba762e
Add test for frame extraction overwriting labels
C-Achard Mar 27, 2026
14d841f
Improve cropping tests: dims and Points
C-Achard Mar 27, 2026
3c373fb
Guard against non-dict video_sets and update imports
C-Achard Mar 27, 2026
9964e93
Centralize and install points keybindings
C-Achard Mar 26, 2026
8a884df
Refactor shortcuts: keybinds and shortcuts dialog
C-Achard Mar 26, 2026
b0d4889
Add shortcuts dialog with context-aware rows
C-Achard Mar 26, 2026
b32621b
Suppress generic row reason when redundant
C-Achard Mar 26, 2026
86db0a6
Refine shortcuts dialog layout and tooltip behavior
C-Achard Mar 26, 2026
de6ade0
Add structured shortcut specs and binding context
C-Achard Mar 26, 2026
f5d3e2b
Apply suggestions from code review
C-Achard Mar 26, 2026
eaada0c
Improve Shortcuts dialog lifecycle and safety
C-Achard Mar 26, 2026
291c123
Expand Shortcuts dialog unit tests
C-Achard Mar 26, 2026
4805dfd
Bind global-points keys from SHORTCUTS
C-Achard Mar 26, 2026
9a5e8b3
Add keybind tests and fix shortcuts dialog
C-Achard Mar 26, 2026
e992cc6
Update dialogs.py
C-Achard Mar 26, 2026
98800d2
Handle missing viewer in Shortcuts shortcut check
C-Achard Mar 27, 2026
02c413e
Rename test_paths.py to test_project_paths.py
C-Achard Mar 27, 2026
e1ffdcf
Add DLC project path resolution and relpath utils
C-Achard Mar 27, 2026
1be1522
Add tests for project path helpers
C-Achard Mar 27, 2026
c8fd6fc
Support save-time DLC project path overrides
C-Achard Mar 27, 2026
00ae617
Add test for config save path normalization
C-Achard Mar 27, 2026
89d0437
Associate project-less labeled folders with DLC project
C-Achard Mar 27, 2026
8962595
Test projectless folder save & path coercion
C-Achard Mar 27, 2026
128ffce
Refactor dialog imports to module namespace
C-Achard Mar 27, 2026
987e65b
Add projectless-folder candidate logic and tests
C-Achard Mar 27, 2026
8bde885
Add projectless folder association and path coercion
C-Achard Mar 27, 2026
8870df6
Clarify dataset naming and dialog messages
C-Achard Mar 27, 2026
63814fa
Use infer_dlc_project to resolve config path
C-Achard Mar 27, 2026
1d97f31
Add tests for infer_dlc_project_from_config
C-Achard Mar 27, 2026
24f5233
Reject non-simple relative dataset paths
C-Achard Mar 27, 2026
7925ce8
Handle tuple return from project config dialog
C-Achard Mar 27, 2026
81255b7
Use structured result for project config prompt
C-Achard Mar 27, 2026
43596b4
Test: Prompt result & superkeypoints tests
C-Achard Mar 27, 2026
73e37e2
Clear io when applying project paths override
C-Achard Mar 27, 2026
b008957
Handle Windows absolute paths on POSIX
C-Achard Mar 27, 2026
7160e50
Update src/napari_deeplabcut/_widgets.py
C-Achard Mar 27, 2026
2d9517e
Handle rejected dialog in project save prompt
C-Achard Mar 27, 2026
c55fb4d
Merge branch 'cy/save-headless-h5' of https://github.com/DeepLabCut/n…
C-Achard Mar 27, 2026
14afc23
Add TrailsController and folder-scoped persistence
C-Achard Mar 27, 2026
7a46d13
Refactor trails into TrailsController
C-Achard Mar 27, 2026
1de91f3
Refactor tests to use trails layer helper
C-Achard Mar 27, 2026
920e521
Block signals when unchecking trail checkbox
C-Achard Mar 27, 2026
fe9425c
Move provenance helpers to core/provenance
C-Achard Mar 27, 2026
3755c1e
Update src/napari_deeplabcut/ui/cropping.py
C-Achard Mar 27, 2026
b49c1f7
Update cropping.py
C-Achard Mar 27, 2026
f8328cd
Skip layer data calc when debug disabled
C-Achard Mar 30, 2026
6d9cd91
Refactor DLC crop autorefresh handling
C-Achard Mar 30, 2026
452a100
Avoid redundant legend updates when hidden
C-Achard Mar 30, 2026
1c497ad
Avoid redundant keypoint setter and visibility guard
C-Achard Mar 30, 2026
bc50f88
Move _is_effectively_visible to ColorSchemePanel
C-Achard Mar 30, 2026
19d354c
Use scandir + fnmatch to expand image paths
C-Achard Mar 30, 2026
a6b3db0
Centralize supported file extensions
C-Achard Mar 30, 2026
9e7ab11
Check widget hidden state and parent visibility
C-Achard Mar 30, 2026
2657802
Add force_show helper and use in tests
C-Achard Mar 30, 2026
e7c5282
Rename attach_source_and_io to layer_kwargs API
C-Achard Mar 30, 2026
ddce418
Fix copy-paste: Add Points paste compat and tests
C-Achard Mar 30, 2026
c0e733f
Switch tests to use viewer fixture
C-Achard Mar 30, 2026
ce8bb37
Refactor Points layer compat helpers and paste
C-Achard Mar 30, 2026
4e80fae
Wait for controls wiring in e2e tests
C-Achard Mar 30, 2026
293a4cb
Use existing KeypointControls in e2e tests
C-Achard Mar 30, 2026
d422931
Add keypoint controls fixtures for tests
C-Achard Mar 31, 2026
3267540
Use keypoint_controls fixture in tests
C-Achard Mar 31, 2026
e9dff74
Rename overwrite checkbox label
C-Achard Mar 31, 2026
c08e6c5
Style and layout updates for Tutorial dialog
C-Achard Mar 31, 2026
93cdfe3
Hide viewer crop from video panel info
C-Achard Mar 31, 2026
2591dbd
Rename optional-dependency 'testing' to 'dev'
C-Achard Mar 31, 2026
5c076a6
Merge pull request #177 from DeepLabCut/cy/refactor-cropping-widgets
C-Achard Apr 1, 2026
8336b61
Merge pull request #178 from DeepLabCut/cy/centralize-keybinds
C-Achard Apr 1, 2026
faf66be
Merge pull request #179 from DeepLabCut/cy/save-headless-h5
C-Achard Apr 1, 2026
1b6f23d
Merge pull request #180 from DeepLabCut/cy/refactor-2026-cleanup2
C-Achard Apr 1, 2026
e34e1c0
Use 'dev' extras in tox.ini
C-Achard Apr 1, 2026
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
3 changes: 3 additions & 0 deletions .gitignore
Original file line number Diff line number Diff line change
Expand Up @@ -82,3 +82,6 @@ venv/

# written by setuptools_scm
**/_version.py

# Package managers
uv.lock
6 changes: 5 additions & 1 deletion pyproject.toml
Original file line number Diff line number Diff line change
Expand Up @@ -45,7 +45,7 @@ email = "admin@deeplabcut.org"
[project.entry-points."napari.manifest"]
napari-deeplabcut = "napari_deeplabcut:napari.yaml"
[project.optional-dependencies]
testing = [
dev = [
"pillow",
"pytest",
"pytest-cov",
Expand Down Expand Up @@ -97,3 +97,7 @@ table_format = "long"

[tool.pytest.ini_options]
qt_api = "pyside6"
testpaths = [ "src/napari_deeplabcut/_tests" ]
markers = [
"e2e: end-to-end tests. Invoke napari viewer fixtures, slow.",
]
6 changes: 2 additions & 4 deletions src/napari_deeplabcut/__init__.py
Original file line number Diff line number Diff line change
Expand Up @@ -12,8 +12,7 @@
"get_hdf_reader",
"get_image_reader",
"get_video_reader",
"write_hdf",
"write_masks",
"write_hdf_napari_dlc",
"__version__",
)

Expand All @@ -26,8 +25,7 @@
get_video_reader,
)
from ._writer import ( # noqa: F401 (explicit re-export via __all__)
write_hdf,
write_masks,
write_hdf_napari_dlc,
)

try:
Expand Down
Loading
Loading