RASCSI/python
Daniel Markstedt 52ebb3a2ae
Improve the logic and data structure for SCSI ID management in Web UI (#893)
- Have the get_scsi_ids() utility method return a dict, while adding occupied_ids. Leverage this to improve the logic for detecting which IDs are available to be reserved in the Web UI. (Which fixes a recent regression bug that's causing no IDs to be detected as available to be reserved.)
- Improve /scsi/attach endpoint logic to capture dynamic parameter fields now prefixed with "param_" (previous it scanned for any arbitrary field, which wasn't very accurate or secure)
- Added Product string to the block_size:512 CD-ROM device, so that it's obvious when it's being used.
- Tweaked test data for attach_device tests
2022-10-06 10:00:57 -07:00
..
common Use man2html to generate man pages in the Web UI (#887) 2022-10-04 06:38:15 -07:00
ctrlboard Bump protobuf from 3.19.3 to 3.19.5 in /python/ctrlboard (#858) 2022-09-25 10:49:53 -07:00
loopback_test clean squashed restructuring branch. #455 2022-01-09 20:22:19 +01:00
oled Bump protobuf from 3.19.1 to 3.19.5 in /python/oled (#857) 2022-09-25 10:47:33 -07:00
web Improve the logic and data structure for SCSI ID management in Web UI (#893) 2022-10-06 10:00:57 -07:00
__init__.py restructuring towards python client library #455 (#613) 2022-01-21 15:08:29 -08:00
.pylintrc Create SysCmds common class, and refactor Python codebase (#697) 2022-02-26 21:46:35 -08:00
README.md Add concrete instructions on how to contribute code. (#797) 2022-08-25 19:57:44 -05:00

RaSCSI Reloaded Python Apps

This directory contains Python-based clients for RaSCSI Reloaded 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 interpreter

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

At the time of writing they are:

Static analysis with pylint

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