[PATCH v2 03/14] Add ruff import checks to b4 CI
Tamir Duberstein <[email protected]>
| Newsgroups | org.kernel.linux.tools |
|---|---|
| Message-ID | <[email protected]> |
Run ruff as part of the b4 CI check script and enable import sorting in Ruff so import ordering regressions show up in the review UI. Keep Ruff as a subprocess and document the related upstream API limitation. Signed-off-by: Tamir Duberstein <[email protected]> --- ci.sh | 1 + pyproject.toml | 4 ++-- src/liblore/__init__.py | 1 - src/liblore/node.py | 3 +-- src/liblore/utils.py | 3 +-- tests/conftest.py | 3 +-- tests/test_auth_headers.py | 1 - tests/test_email_utils.py | 1 - tests/test_formatting.py | 3 +-- tests/test_mbox.py | 4 +--- tests/test_node.py | 1 - 11 files changed, 8 insertions(+), 17 deletions(-) diff --git a/ci.sh b/ci.sh index 1e8ccb3..3001db2 100755 --- a/ci.sh +++ b/ci.sh @@ -2,5 +2,6 @@ set -eu +uv run ruff check uv run mypy . uv run pytest --durations=0 diff --git a/pyproject.toml b/pyproject.toml index 7c9e1da..38be519 100644 --- a/pyproject.toml +++ b/pyproject.toml @@ -57,5 +57,5 @@ strict = true module = "authheaders" ignore_missing_imports = true -[tool.ruff] -target-version = "py39" +[tool.ruff.lint] +extend-select = ["I"] diff --git a/src/liblore/__init__.py b/src/liblore/__init__.py index ff4314a..1ffaaeb 100644 --- a/src/liblore/__init__.py +++ b/src/liblore/__init__.py @@ -3,7 +3,6 @@ """liblore — shared library for public-inbox / lore.kernel.org access.""" import email.charset import email.policy - from email.message import EmailMessage __version__ = '0.7.1' diff --git a/src/liblore/node.py b/src/liblore/node.py index 5fb6343..66da1d7 100644 --- a/src/liblore/node.py +++ b/src/liblore/node.py @@ -15,11 +15,10 @@ import time import types import urllib.parse from datetime import datetime, timezone +from email.message import EmailMessage import requests -from email.message import EmailMessage - from liblore import LibloreError, RemoteError from liblore.utils import ( get_strict_thread, diff --git a/src/liblore/utils.py b/src/liblore/utils.py index 8d485da..e8926c6 100644 --- a/src/liblore/utils.py +++ b/src/liblore/utils.py @@ -3,7 +3,6 @@ """Message parsing, email utilities, threading, and mbox splitting.""" from __future__ import annotations -from collections.abc import Sequence import datetime import email.header import email.parser @@ -14,7 +13,7 @@ import logging import re import textwrap import urllib.parse - +from collections.abc import Sequence from email.message import EmailMessage from liblore import emlpolicy diff --git a/tests/conftest.py b/tests/conftest.py index b84fc35..ec8ec80 100644 --- a/tests/conftest.py +++ b/tests/conftest.py @@ -4,12 +4,11 @@ from __future__ import annotations import email.utils import textwrap +from email.message import EmailMessage from typing import Protocol import pytest -from email.message import EmailMessage - from liblore import emlpolicy diff --git a/tests/test_auth_headers.py b/tests/test_auth_headers.py index 9edf4cd..9097048 100644 --- a/tests/test_auth_headers.py +++ b/tests/test_auth_headers.py @@ -13,7 +13,6 @@ import pytest from liblore import LibloreError from liblore.node import LoreNode - # ===================================================================== # Import-time validation # ===================================================================== diff --git a/tests/test_email_utils.py b/tests/test_email_utils.py index ad8775f..74216d4 100644 --- a/tests/test_email_utils.py +++ b/tests/test_email_utils.py @@ -16,7 +16,6 @@ from liblore.utils import ( ) - class TestMsgGetSubject: def test_plain_subject(self, make_msg: MsgFactory) -> None: msg = make_msg(subject='Just a plain subject') diff --git a/tests/test_formatting.py b/tests/test_formatting.py index a13593e..cb3cf80 100644 --- a/tests/test_formatting.py +++ b/tests/test_formatting.py @@ -2,10 +2,9 @@ """Tests for email formatting and thread minimization.""" from __future__ import annotations -import pytest - from email.message import EmailMessage +import pytest from conftest import MsgFactory from liblore.utils import ( diff --git a/tests/test_mbox.py b/tests/test_mbox.py index 3815e3f..9bc2271 100644 --- a/tests/test_mbox.py +++ b/tests/test_mbox.py @@ -3,9 +3,9 @@ from __future__ import annotations import textwrap - from email.message import EmailMessage +from liblore import emlpolicy from liblore.utils import ( get_clean_msgid, get_preferred_duplicate, @@ -15,8 +15,6 @@ from liblore.utils import ( split_mbox_as_bytes, ) -from liblore import emlpolicy - class TestSplitMbox: def test_splits_two_messages(self, sample_mbox: bytes) -> None: diff --git a/tests/test_node.py b/tests/test_node.py index c2e7bf3..54d76d8 100644 --- a/tests/test_node.py +++ b/tests/test_node.py @@ -14,7 +14,6 @@ import requests from liblore import RemoteError from liblore.node import LoreNode - # ===================================================================== # Session management # ===================================================================== -- 2.53.0