[[:home | Home]] [[:proj:project | Project]] ====== SOFALite Notes ====== ===== Changes from SOFA ===== ==== Features ==== === Removed === * No image processing - leave that up to general tools e.g. screen shotting, printing to PDF from web browser etc * No translations - no more _() everywhere, no more packaging .pot files etc, no more having to make strings static * No database connectivity - only one place for SQL - SQLite - so no more config, credentials management etc === Added === * Support for importing wide format data * Much better interface (always one window open with individual dialogs off that) ==== Python ==== Python 3.10 onwards so I can use all the nice new language features e.g. pleasant type hinting, dataclasses etc ===== Dependencies ===== ==== Minimalism ==== The fewer the dependencies, and the less they depend on the OS, the easier the packaging. In SOFA Statistics, dependencies, especially image-processing dependencies, made it very hard to package cross-platform. Minimum: * Python * wxPython - for GUI * matplotlib - for images that overload SVG / JS based toolkits such as Dojo * pandas (inc numpy) - for misc data processing including in core stats engine ==== Installation ==== All dependencies are distro / system dependencies, not pip dependencies (even if we develop in a venv). This is to make deb packaging easy where we list system dependencies. wxPython - https://shanemcd.org/2020/05/03/how-to-install-wxpython-in-a-python-virtual-environment-on-debian-buster/ A couple of the key steps (there are others but you may have already done them): sudo apt-get install build-essential python3-dev \ libwebkit2gtk-4.0-dev libtiff-dev libnotify-dev \ freeglut3-dev libsdl1.2-dev libgstreamer-plugins-base1.0-dev And in venv (when activated): pip install wxPython