Development setupΒΆ
web.py supports Python 3.10 and newer. A virtual environment is recommended so the editable install, test dependencies, and code quality tools do not affect the system Python installation.
Create and activate a virtual environment from the repository root:
python3 -m venv .venv
source .venv/bin/activate
On Windows PowerShell, activate it with:
.venv\Scripts\Activate.ps1
Install web.py in editable mode with its runtime and test dependencies:
python -m pip install --upgrade pip
python -m pip install --editable .
python -m pip install -r test_requirements.txt
Install pre-commit and enable the repository hooks:
python -m pip install pre-commit
pre-commit install
If commits were created before the hooks were installed, run the hooks across the existing tree once:
pre-commit run --all-files
The hooks run Black, codespell, Ruff, validate-pyproject, and pyproject-fmt. The same tools are also run by the GitHub Actions workflow. If Ruff reports fixable issues without changing files, install Ruff in the environment and run it directly:
python -m pip install ruff
ruff check --fix .
Run the test suite with pytest:
pytest
The full CI job also configures MariaDB and PostgreSQL service databases before
running tests. See .github/workflows/lint_python.yml for the database
environment variables used by the workflow.