# Codebase organization DUSTrack is a single Python package, ``dustrack/``, organised so the interactive GUI class (``DUSTrack``) is a thin coordinator on top of small, focused helper modules. This page lists every module and what it's responsible for, so you can find the right file by purpose without reading the GUI class first. ## Reading guide * **Entry points are at the top of the alphabet** — ``cli.py``, ``dlcinterface.py``, ``gui.py``, ``seed.py``. Start there if you want to know what DUSTrack *does*. * **Internal helpers are prefixed with an underscore** — ``_bundle.py``, ``_overlays.py``, ``_preflight.py``, etc. These are the building blocks the entry points compose; you generally don't import them directly, but you may need to read them when extending a feature. * **Two modules sharing a prefix are a logic/UI pair.** The naming convention follows ``lk_filter.py`` + ``lk_opticalflow.py`` (LK algorithm pair) and ``_preflight.py`` + ``_preflight_modal.py`` (logic + Qt modal pair). Sorting the directory alphabetically surfaces these pairs side-by-side. * **``_overlays.py`` is the shared Qt modal toolkit** — generic building blocks (confirm overlay, progress overlay, picker dialog, training-options dialog) that the workflow-specific ``_*_modal.py`` files compose. It pairs with no single feature. ## Entry points ### ``__init__.py`` Re-exports the public surface: :func:`dustrack.open`, the :class:`DUSTrack` GUI class, the :class:`DLCProject` wrapper, the LK filter, and the seed-bundle helpers. ### ``cli.py`` Console-script entry point invoked by ``dustrack`` / ``dustrack