From d77aa7dfc9541bffa0109da89b95f296e751aea0 Mon Sep 17 00:00:00 2001 From: Sarah Hoffmann Date: Sun, 10 Nov 2024 23:14:09 +0100 Subject: [PATCH] replace pylint with flake8 everywhere --- .flake8 | 8 ++++++++ .github/workflows/ci-tests.yml | 6 +++--- CONTRIBUTING.md | 4 ++-- Makefile | 2 +- docs/develop/Development-Environment.md | 5 ++--- 5 files changed, 16 insertions(+), 9 deletions(-) create mode 100644 .flake8 diff --git a/.flake8 b/.flake8 new file mode 100644 index 00000000..82d77ed3 --- /dev/null +++ b/.flake8 @@ -0,0 +1,8 @@ +[flake8] +max-line-length = 100 +max-doc-length = 100 +extend-ignore = + # something == None constructs are needed for SQLAlchemy + E711 +per-file-ignores = + __init__.py: F401 diff --git a/.github/workflows/ci-tests.yml b/.github/workflows/ci-tests.yml index 1b81f4f2..fb664d99 100644 --- a/.github/workflows/ci-tests.yml +++ b/.github/workflows/ci-tests.yml @@ -103,12 +103,12 @@ jobs: - name: Install Python webservers run: pip3 install falcon starlette asgi_lifespan - - name: Install latest pylint - run: pip3 install -U pylint + - name: Install latest flake8 + run: pip3 install -U flake8 if: matrix.flavour == 'ubuntu-22' - name: Python linting - run: python3 -m pylint src + run: python3 -m flake8 src working-directory: Nominatim if: matrix.flavour == 'ubuntu-22' diff --git a/CONTRIBUTING.md b/CONTRIBUTING.md index 7da4d7d0..78c4dd67 100644 --- a/CONTRIBUTING.md +++ b/CONTRIBUTING.md @@ -60,10 +60,10 @@ are in process of consolidating the style. The following rules apply: * leave out space between a function name and bracket but add one between control statement(if, while, etc.) and bracket -The coding style is enforced with pylint. It can be tested with: +The coding style is enforced with flake8. It can be tested with: ``` -pylint3 --extension-pkg-whitelist=osmium nominatim +make lint ``` ## Testing diff --git a/Makefile b/Makefile index 421b671a..9e914850 100644 --- a/Makefile +++ b/Makefile @@ -24,7 +24,7 @@ pytest: pytest test/python lint: - pylint src + flake8 src bdd: cd test/bdd; behave -DREMOVE_TEMPLATE=1 diff --git a/docs/develop/Development-Environment.md b/docs/develop/Development-Environment.md index 441556ff..a6558c7d 100644 --- a/docs/develop/Development-Environment.md +++ b/docs/develop/Development-Environment.md @@ -29,7 +29,7 @@ The Nominatim test suite consists of behavioural tests (using behave) and unit tests (using pytest). It has the following additional requirements: * [behave test framework](https://behave.readthedocs.io) >= 1.2.6 -* [Pylint](https://pylint.org/) (CI always runs the latest version from pip) +* [flake8](https://flake8.pycqa.org/en/stable/) (CI always runs the latest version from pip) * [mypy](http://mypy-lang.org/) (plus typing information for external libs) * [Python Typing Extensions](https://github.com/python/typing_extensions) (for Python < 3.9) * [pytest](https://pytest.org) @@ -55,7 +55,6 @@ the vendored version of osm2pgsql, you need to set the PATH accordingly. ### Installing prerequisites on Ubuntu/Debian The Python tools should always be run with the most recent version. -In particular, pylint tends to have a lot of breaking changes between versions. The easiest way, to handle these Python dependencies is to run your development from within a virtual environment. @@ -70,7 +69,7 @@ virtualenv ~/nominatim-dev-venv ~/nominatim-dev-venv/bin/pip install\ psutil psycopg[binary] PyICU SQLAlchemy \ python-dotenv jinja2 pyYAML datrie behave \ - mkdocs mkdocstrings mkdocs-gen-files pytest pytest-asyncio pylint \ + mkdocs mkdocstrings mkdocs-gen-files pytest pytest-asyncio flake8 \ types-jinja2 types-markupsafe types-psutil types-psycopg2 \ types-pygments types-pyyaml types-requests types-ujson \ types-urllib3 typing-extensions unicorn falcon starlette \ -- 2.39.5