RASCSI/python
Daniel Markstedt 0dbd3adc06 Web UI: Rework the Attach Device section to be universal (#1393)
* Correct German translation for Key

* Web UI: Rework the Attach Device section to be universal

* Web UI: Warn when working dirs are missing

* Refactor tests to use global endpoint constants

* Add fallback for unknown disk type devices

* Rearrange the index page sections

* Move Macproxy help text to admins page

* Remove image list exception for SCHD

* Show Settings button when auth is diabled

* Tweak CSS styles for both themes

* Move Eject action next to the file name, and improve UI labels
2024-05-01 16:15:43 +09:00
..
common Freeze Python dependencies with pip freeze -l (#1322) 2023-11-09 02:44:32 -08:00
ctrlboard Static analysis fixes for Python codebase (#1277) 2023-11-01 06:28:53 -07:00
oled Freeze Python dependencies with pip freeze -l (#1322) 2023-11-09 02:44:32 -08:00
web Web UI: Rework the Attach Device section to be universal (#1393) 2024-05-01 16:15:43 +09:00
__init__.py restructuring towards python client library #455 (#613) 2022-01-21 15:08:29 -08:00
.flake8
.pylintrc
pyproject.toml Stop supporting Python 3.7, start supporting 3.11 2023-10-30 08:46:06 +09:00
README.md Freeze Python dependencies with pip freeze -l (#1322) 2023-11-09 02:44:32 -08:00

PiSCSI Python Apps

This directory contains Python-based clients for PiSCSI as well as common packages that are shared among the clients.

The following paragraphs in this README contain instructions that are shared among all Python apps.

Supported Python interpreters

The policy in this project is to support the Python 3 interpreter that comes standard with the current stable, as well as the previous stable releases of Debian.

At the time of writing they are:

Dependencies

We use 'pip freeze' to manage explicit Python dependencies in this project. After adding new or bumping the versions of Python dependencies, please run the following command in the requisite subdir commit the results:

pip freeze -l > requirements.txt

Static analysis and formatting

The CI workflow is set up to check code formatting with black, and linting with flake8. If non-conformant code is found, the CI job will fail.

Before checking in new code, install the development packages and run these two tools locally.

pip install -r web/requirements-dev.txt

Note that black only works correctly if you run it in the root of the python/ dir:

cd python
black .

Optionally: It is recommended to run pylint against new code to protect against bugs and keep the code readable and maintainable. The local pylint configuration lives in .pylintrc. In order for pylint to recognize venv libraries, the pylint-venv package is required.

sudo apt install pylint3
sudo pip install pylint-venv
source venv/bin/activate
pylint3 python_source_file.py

Examples:

# check a single file
pylint web/src/web.py

# check the python modules
pylint common/src
pylint web/src
pylint oled/src