This repository contains a boilerplate for PyQt5 based applications for Kitsu.
- Dependency management using pipenv
- Use the standard
setup.py
to build resources, docs, etc. - Generate a compiled application for Windows, Linux and macOS using PyInstaller
- Multilanguage support
- Document using Sphinx
- Flake8 linting
First of all make sure you have pipenv installed and then initialize a working development environment like this:
pipenv install --dev
Once all dependencies are installed, you should enter the environment shell like this:
pipenv shell
Autogenerated files such as translation binaries or compiled forms are required but not pushed to the repository, so the first time you will need to generate them as described in the coming section. Once done, you can run the application like this:
app
In order to ease the development process, the Qt Creator project app.pro
is provided. You can open it to edit the UI files or to manage resources. Translations can be edited using Qt Linguist, part of the Qt SDK. In order to build the translations, you will need to have the lrelease
command on your PATH
or set its full path to the LRELEASE_BIN
environment variable. UI files, translations and resources can be built like this:
python setup.py build_res
Note that this command is automatically run before running sdist
and bdist_app
commands.
You can generate a compiled application so that end-users do not need to install anything. You can tweak some settings on the app.spec
file. It can be generated like this:
python setup.py bdist_app
Sphinx is used for documentation purposes. You can tweak its configuration in docs/conf.py
and the documentation can be built like this:
python setup.py build_docs
Flake8 is a great tool to check for style issues, unused imports and similar stuff. You can tweak .flake8
to ignore certain types of errors, increase the maximum line length, etc. You can run it like this:
flake8 app