Describe Prism packaging, installation, entrypoint behavior, and packaged UI assets.
Prism uses setuptools with pyproject.toml and src/ layout discovery.
Key metadata:
- project name:
prism-viewer - version source:
prism.__version__(dynamic) - Python requirement:
>=3.11,<3.15 - console script:
prism = prism.main:main
Runtime dependencies:
PySide6OpenImageIOOpenColorIOnumpyscipy>=1.17,<2colour-science>=0.4.7,<0.5
Install workflow (repo root):
python -m pip install -e .Then launch:
prismApplication entrypoint module:
src/prism/main.py
Contract:
main() -> int- module guard raises
SystemExit(main())
Behavior:
- creates
QApplication - installs Ctrl+C signal handling compatibility for console-launched runs
- constructs and shows
MainWindow
UI asset loading is package-relative (not cwd-relative) via importlib.resources in UI code.
Included package data (from pyproject.toml):
prism/ui/assets/icons/*.pngprism/ui/assets/images/*.png
Current icon usage:
- Windows prefers
app_icon.icoat runtime with PNG fallback in UI loader path. - Linux and macOS use PNG runtime window icon loading.
- Startup sets platform identity hints in
src/prism/main.py:- Windows AppUserModelID:
com.prism.viewer - Linux desktop file name:
com.prism.viewer - macOS application name:
Prism Viewer
- Windows AppUserModelID:
About banner usage:
about_banner.pngis loaded and displayed inHelp -> About Prism Viewer.
- Use a Windows AppUserModelID and
.icoapplication icon to ensure the correct taskbar icon and application identity. - Current compiled desktop release target is Windows
onedirvia PyInstaller. - Build command from the repo root:
C:\venv\prism_venv\Scripts\python.exe tools\build_pyinstaller.py --mode release --clean --noconfirm- Final artifact:
dist\pyinstaller\Prism\Prism.exe
- Required validation before treating the artifact as releasable:
- full source tests pass
- Ruff passes
- mypy passes
pip checkpassesPrism.exe --frozen-smokeprintsprism_frozen_smoke_ok- hidden/offscreen startup smoke passes
- manual desktop smoke confirms image loading, Waveform Monitor, and LUT Inspector
- Future packaged builds may provide a
.desktoplauncher for desktop integration and application menus. - Linux compiled desktop bundles are deferred until a native Linux build/test environment is available.
- Do not claim Linux support from a Windows-built artifact.
- Future packaged builds may include a
.appbundle and.icnsapplication icon for proper Finder and Dock integration. - macOS compiled desktop bundles are deferred until a native macOS build/test environment is available.
- Do not claim macOS support from a Windows-built artifact.
Current compiled desktop support:
| Platform | Status | Notes |
|---|---|---|
| Windows x64 | current release target | built locally as unsigned onedir |
| macOS | deferred | requires native macOS build/test environment |
| Linux | deferred | requires native Linux build/test environment |
Deferred compiled-package work:
- signed installers
- macOS signing/notarization
- AppImage/Flatpak/Snap
onefilebundles- auto-update infrastructure