Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
63 commits
Select commit Hold shift + click to select a range
0b26c85
Pin deeplabcut-live to 1.1.0 in pyproject
C-Achard Feb 16, 2026
05497e8
Add PyPI release workflow and rename CI file
C-Achard Feb 16, 2026
1cc7801
CI: build, validate & release Python package
C-Achard Feb 16, 2026
ae9550c
Set version in pyproject.toml to 2.0.0rc0
C-Achard Feb 16, 2026
21a7e28
Update project metadata in pyproject.toml
C-Achard Feb 16, 2026
3ca5d4c
CI: note lockfile and install wheel with deps
C-Achard Feb 16, 2026
002e06b
Add ASCII art API, CLI flag, and fixes
C-Achard Feb 16, 2026
3611774
Use develop mode in tox testenv
C-Achard Feb 16, 2026
502e16e
Add ascii_art tests and update coverage omit
C-Achard Feb 16, 2026
d79eec4
Revert "Use develop mode in tox testenv"
C-Achard Feb 17, 2026
de9de7f
Bump actions and harden CLI smoke test
C-Achard Feb 17, 2026
7f5b75b
Move version to package and mark pyproject dynamic
C-Achard Feb 17, 2026
6d21bd2
Handle ASCII art errors & use logging
C-Achard Feb 17, 2026
756836b
Use fixtures to control SHOW_SPLASH in tests
C-Achard Feb 17, 2026
6893b69
Vectorize mapping and add color cache for ASCII
C-Achard Feb 17, 2026
6d7a3e6
Add setuptools dynamic version & refine tests
C-Achard Feb 17, 2026
7230f69
Optimize color ASCII rendering and fix module name
C-Achard Feb 17, 2026
58bb304
Refactor GenTL CTI discovery and loading
C-Achard Feb 17, 2026
d21cd3e
Address review comments
C-Achard Feb 19, 2026
70284db
gentl: reset harvester and CTI failure tests
C-Achard Feb 19, 2026
4c5f8e1
Bump GitHub Actions and refine help banner
C-Achard Feb 19, 2026
0a72842
Show banner only for help in TTY
C-Achard Feb 19, 2026
cf51c1f
Move ascii_art tests to new file and require cv2
C-Achard Feb 19, 2026
09a8364
Update python-package.yml
C-Achard Feb 19, 2026
a42d496
Apply suggestions from code review
C-Achard Feb 19, 2026
caef5a8
Refine pre-commit config: stages and ruff rules
C-Achard Feb 20, 2026
892da6a
Run pre-commit on PR changed files only
C-Achard Feb 20, 2026
5dd22ba
Merge pull request #53 from DeepLabCut/cy/lint-config
C-Achard Feb 20, 2026
3dfb1de
Include 'master' branch in CI triggers
C-Achard Feb 22, 2026
e066d9b
Bump actions versions and refine CI triggers
C-Achard Feb 22, 2026
fa49240
Trigger CI
C-Achard Feb 22, 2026
03dcb8e
Trigger CI 2: Electric Boogaloo
C-Achard Feb 22, 2026
8ec0de1
Merge remote-tracking branch 'origin/cy/pre-release-fixes-2.0' into c…
C-Achard Feb 23, 2026
2784bd5
Remove module-level debug logging overrides
C-Achard Feb 20, 2026
9fd192e
Reduce log verbosity and remove auto-load message
C-Achard Feb 20, 2026
0daebba
Infer model backend from selected model path
C-Achard Feb 20, 2026
cfd67c7
Add temporary Engine enum and use in dlc_processor
C-Achard Feb 20, 2026
b6fd336
Use Engine enum and improve model detection
C-Achard Feb 20, 2026
58f6110
Use Engine enum and validate model path
C-Achard Feb 23, 2026
f495649
Update GUI tests and adjust tox config
C-Achard Feb 23, 2026
f2c5fb6
Remove GUI and multi-camera exports
C-Achard Feb 23, 2026
d8da888
Update tox.ini
C-Achard Feb 23, 2026
94a4d04
Add Qt/OpenGL deps to CI and restrict Codecov
C-Achard Feb 23, 2026
eb255db
Refactor camera scan state and loaders
C-Achard Feb 23, 2026
48b274c
CI, packaging: coverage PRs, export main, tox deps
C-Achard Feb 23, 2026
31e09d8
Normalize model_type and fix model paths
C-Achard Feb 23, 2026
e517aed
Enhance ModelPathStore path normalization tests
C-Achard Feb 23, 2026
c7b11c9
Add concurrency to testing CI workflow
C-Achard Feb 23, 2026
4865edb
Add Engine helpers for model path detection
C-Achard Feb 23, 2026
1f73c89
Ignore stale scan worker signals
C-Achard Feb 23, 2026
0b47bc4
Update testing-ci.yml
C-Achard Feb 23, 2026
1cf1945
Update engine.py
C-Achard Feb 23, 2026
6952b68
Update __init__.py
C-Achard Feb 23, 2026
559c775
Import Engine from dlclivegui.temp in tests
C-Achard Feb 23, 2026
025a18e
Pass file path for non-.pb model checks
C-Achard Feb 24, 2026
735b9a0
Add ModelType Literal and apply to model_type
C-Achard Feb 24, 2026
af06d09
Move package version to pyproject.toml
C-Achard Feb 24, 2026
873ad07
Add cti_files_source marker and fallback logic
C-Achard Feb 25, 2026
2510076
Improve CTI discovery safety and diagnostics
C-Achard Feb 25, 2026
f8c0999
Centralize env/~ expansion and add dedupe key
C-Achard Feb 25, 2026
0d0ed39
Fix genTL log message spacing and tidy test
C-Achard Feb 25, 2026
1a795b9
Merge pull request #51 from DeepLabCut/cy/upgrade-gentl-discovery
C-Achard Feb 25, 2026
e94ffb9
Merge pull request #54 from DeepLabCut/cy/pre-release-cleanup
C-Achard Feb 25, 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
102 changes: 102 additions & 0 deletions .github/workflows/python-package.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,102 @@
name: Build, validate & Release

on:
push:
tags: [ 'v*.*.*' ]
pull_request:
branches: [ main, public ]
types: [ labeled, opened, edited, synchronize, reopened ]

jobs:
test:
name: Test / smoke (matrix)
runs-on: ubuntu-latest
strategy:
fail-fast: false
matrix:
python-version: [ "3.10", "3.11", "3.12" ]
steps:
- uses: actions/checkout@v6
- uses: actions/setup-python@v6
with:
python-version: ${{ matrix.python-version }}

- name: Install tools
run: |
python -m pip install --upgrade pip
python -m pip install build twine wheel "packaging>=24.2"

- name: Build distributions (sdist + wheel)
run: python -m build

- name: Inspect dist
run: |
ls -lah dist/
echo "sdist contents (first ~200 entries):"
tar -tf dist/*.tar.gz | sed -n '1,200p'

- name: Twine metadata & README check
run: python -m twine check dist/*

- name: Install from wheel & smoke test
run: |
python -m pip install dist/*.whl
python - <<'PY'
import importlib
pkg_name = "dlclivegui"
m = importlib.import_module(pkg_name)
print("Imported:", m.__name__, "version:", getattr(m, "__version__", "n/a"))
PY

if ! command -v dlclivegui >/dev/null 2>&1; then
echo "CLI entry point 'dlclivegui' not found in PATH; skipping CLI smoke test."
else
if command -v dlclivegui >/dev/null 2>&1; then
echo "Running 'dlclivegui --help' smoke test..."
if ! dlclivegui --help >/dev/null 2>&1; then
echo "::error::'dlclivegui --help' failed; this indicates a problem with the installed CLI package."
exit 1
fi

build:
name: Build release artifacts (single)
runs-on: ubuntu-latest
needs: test
if: ${{ startsWith(github.ref, 'refs/tags/v') }}
steps:
- uses: actions/checkout@v6
- uses: actions/setup-python@v6
with:
python-version: "3.12"

- name: Build distributions (sdist + wheel)
run: |
python -m pip install --upgrade pip
python -m pip install build twine wheel "packaging>=24.2"
python -m build
python -m twine check dist/*

- name: Upload dist artifacts
uses: actions/upload-artifact@v4
with:
name: dist
path: dist/*
if-no-files-found: error

publish:
name: Publish to PyPI (OIDC)
runs-on: ubuntu-latest
needs: build
if: ${{ startsWith(github.ref, 'refs/tags/v') }}
environment: pypi
permissions:
id-token: write
steps:
- name: Download dist artifacts
uses: actions/download-artifact@v4
with:
name: dist
path: dist

- name: Publish to PyPI
uses: pypa/gh-action-pypi-publish@release/v1
16 changes: 16 additions & 0 deletions .github/workflows/ci.yml → .github/workflows/testing-ci.yml
Original file line number Diff line number Diff line change
Expand Up @@ -4,6 +4,10 @@ on:
pull_request:
types: [opened, synchronize, reopened]

concurrency:
group: ci-${{ github.workflow }}-pr-${{ github.event.pull_request.number }}
cancel-in-progress: true

jobs:
unit:
name: Unit + Smoke (no hardware) • ${{ matrix.os }} • py${{ matrix.python }}
Expand Down Expand Up @@ -38,6 +42,17 @@ jobs:
python -m pip install -U pip wheel
python -m pip install -U tox tox-gh-actions

- name: Install Qt/OpenGL runtime deps (Ubuntu)
if: startsWith(matrix.os, 'ubuntu')
run: |
sudo apt-get update
sudo apt-get install -y \
libegl1 \
libgl1 \
libopengl0 \
libxkbcommon-x11-0 \
libxcb-cursor0

- name: Run tests (exclude hardware) with coverage via tox
run: |
tox -q
Expand All @@ -54,6 +69,7 @@ jobs:
echo '```' >> "$GITHUB_STEP_SUMMARY"

- name: Upload coverage to Codecov
if: github.event_name == 'pull_request' && (github.base_ref == 'main' || github.base_ref == 'master')
uses: codecov/codecov-action@v5
with:
files: ./coverage.xml
Expand Down
7 changes: 0 additions & 7 deletions dlclivegui/__init__.py
Original file line number Diff line number Diff line change
Expand Up @@ -7,20 +7,13 @@
MultiCameraSettings,
RecordingSettings,
)
from .gui.camera_config.camera_config_dialog import CameraConfigDialog
from .gui.main_window import DLCLiveMainWindow
from .main import main
from .services.multi_camera_controller import MultiCameraController, MultiFrameData

__all__ = [
"ApplicationSettings",
"CameraSettings",
"DLCProcessorSettings",
"MultiCameraSettings",
"RecordingSettings",
"DLCLiveMainWindow",
"MultiCameraController",
"MultiFrameData",
"CameraConfigDialog",
"main",
]
Loading