With every release, we provide pre-built binaries for Windows, and Linux. You can find the latest releases under releases. Note that we do not provide pre-built binaries for MacOS, however, you can build the project from source.
To build the project from source requires the following dependencies:
- Python 3.12 or greater
- PIP
- UV
- Nuitka
- One of the following C compilers:
- GCC (MinGW on Windows)
- Clang
- MSVC
To build the project from source, follow these steps:
- Clone the repository
- Run in the projects root directory:
$ uv pip compile pyproject.toml > requirements.txt && uv pip install --system -r requirements.txt $ python -m nuitka --mode=app --assume-yes-for-downloads --output-dir=build --script-name=napytau/main.py --enable-plugins=tk-inter
Notes
- We install the dependencies via pip rather than uv because nuitka has so far not been able to handle the dependencies installed via uv.
- Optionally you can specify the C-compiler to use with for example
--mingw64
for MinGW on Windows. - To include the provided icon in the executable, add
--windows-icon-from-ico=metadata/napytau_logo.ico
or--linux-icon=metadata/napytau_logo.jpg
to the build command.
While the project is open source, we do not accept contributions from the public. This is due to the project being part of a university course and the code being graded. However, you are free to file issues and suggest features. Once the course is completed the project will be transferred to the commissioning party who will decide on the future of the project.
To get started with development, follow these steps:
- Clone the repository
- Create a virtual environment with
uv venv --python=$PythonVersion
where$PythonVersion
is greater than 3.12. Note that there is a bug in Python 3.13 that leads to the core dependency TCL not being installed correctly on Windows. - Run
uv sync --dev
Some useful commands during development are:
uvx tomlscript run
to run the projectuvx tomlscript test
to run the testsuvx tomlscript lint
to lint the codeuvx tomlscript format
to format the code
Please note that the project is focused on modularity and readability. We use type hints and docstrings to ensure that the code is self-explanatory. Before submitting a pull request, make sure that the code is formatted and that the tests pass.