From: Tamir Duberstein <tamird@kernel.org>
To: "Kernel.org Tools" <tools@kernel.org>
Cc: Konstantin Ryabitsev <konstantin@linuxfoundation.org>,
Tamir Duberstein <tamird@kernel.org>
Subject: [PATCH b4 04/12] Import dependencies unconditionally
Date: Tue, 07 Apr 2026 12:48:33 -0400 [thread overview]
Message-ID: <20260407-ruff-check-v1-4-c9568541ff67@kernel.org> (raw)
In-Reply-To: <20260407-ruff-check-v1-0-c9568541ff67@kernel.org>
These are always available since commit f4185d6b.
Signed-off-by: Tamir Duberstein <tamird@kernel.org>
---
src/b4/__init__.py | 31 +++----------------------------
src/b4/ez.py | 30 ++++--------------------------
src/tests/conftest.py | 1 -
3 files changed, 7 insertions(+), 55 deletions(-)
diff --git a/src/b4/__init__.py b/src/b4/__init__.py
index 7cc3a93..a14d89c 100644
--- a/src/b4/__init__.py
+++ b/src/b4/__init__.py
@@ -48,8 +48,11 @@ from typing import (
overload,
)
+import dkim # type: ignore[import-untyped]
import requests
+import patatt
+
ConfigDictT = Dict[str, Union[str, List[str], None]]
from email import charset
@@ -63,20 +66,6 @@ emlpolicy = email.policy.EmailPolicy(utf8=True, cte_type='8bit', max_line_length
# adapted from email._parseaddr
qspecials = re.compile(r'[()<>@,:;.\"\[\]]')
-try:
- import dkim # type: ignore[import-untyped]
-
- can_dkim = True
-except ModuleNotFoundError:
- can_dkim = False
-
-try:
- import patatt
-
- can_patatt = True
-except ModuleNotFoundError:
- can_patatt = False
-
# global setting allowing us to turn off networking
can_network = True
@@ -1007,13 +996,6 @@ class LoreSeries:
for trailer in attref:
logger.info(' %s', trailer)
- if not (can_dkim and can_patatt):
- logger.info(' ---')
- if not can_dkim:
- logger.info(' NOTE: install dkimpy for DKIM signature verification')
- if not can_patatt:
- logger.info(' NOTE: install patatt for end-to-end signature verification')
-
return msgs
@@ -1689,9 +1671,6 @@ class LoreMessage:
if not can_network:
logger.debug('Message has DKIM signatures, but can_network is off')
return
- if not can_dkim:
- logger.debug('Message has DKIM signatures, but can_dkim is off')
- return
# Identify all DKIM-Signature headers and try them in reverse order
# until we come to a passing one
@@ -1778,10 +1757,6 @@ class LoreMessage:
self.body = '\n'.join(ibh) + '\n\n' + self.body
def _load_patatt_attestors(self) -> None:
- if not can_patatt:
- logger.debug('Message has %s headers, but can_patatt is off', DEVSIG_HDR)
- return
-
# This should be always the case, but assert it anyway
assert isinstance(self._attestors, list)
diff --git a/src/b4/ez.py b/src/b4/ez.py
index e69a106..562f2a9 100644
--- a/src/b4/ez.py
+++ b/src/b4/ez.py
@@ -13,6 +13,7 @@ import email.policy
import email.utils
import gzip
import hashlib
+import importlib.util
import io
import json
import os
@@ -29,21 +30,10 @@ from email.message import EmailMessage
from string import Template
from typing import Any, Dict, List, Optional, Set, Tuple, Union
-import b4
-
-try:
- import patatt
- can_patatt = True
-except ModuleNotFoundError:
- can_patatt = False
+import git_filter_repo as fr # type: ignore[import-untyped]
-try:
- import git_filter_repo as fr # type: ignore[import-untyped]
- can_gfr = True
-except ModuleNotFoundError:
- can_gfr = False
-
-import importlib.util
+import b4
+import patatt
can_codespell = importlib.util.find_spec('codespell_lib') is not None
@@ -150,9 +140,6 @@ def run_frf(frf: fr.RepoFilter) -> None:
but is completely unnecessary for b4's purposes. Delete this file after
each invocation, so it doesn't interfere with subsequent runs.
"""
- if not can_gfr:
- logger.critical('CRITICAL: git-filter-repo is not available')
- sys.exit(1)
run_rewrite_hook('pre')
logger.debug('Running git-filter-repo...')
frf.run()
@@ -2492,13 +2479,6 @@ def reroll(mybranch: str, tag_msg: str, msgid: str, tagprefix: str = SENT_TAG_PR
store_cover(new_cover, tracking)
-def check_can_gfr() -> None:
- if not can_gfr:
- logger.critical('ERROR: b4 submit requires git-filter-repo. You should be able')
- logger.critical(' to install it from your distro packages, or from pip.')
- sys.exit(1)
-
-
def show_revision() -> None:
is_prep_branch(mustbe=True)
_cover, tracking = load_cover()
@@ -3054,7 +3034,6 @@ def set_presubject(presubject: str) -> None:
def cmd_prep(cmdargs: argparse.Namespace) -> None:
- check_can_gfr()
status = b4.git_get_repo_status()
if len(status):
logger.critical('CRITICAL: Repository contains uncommitted changes.')
@@ -3156,7 +3135,6 @@ def cmd_prep(cmdargs: argparse.Namespace) -> None:
def cmd_trailers(cmdargs: argparse.Namespace) -> None:
- check_can_gfr()
status = b4.git_get_repo_status()
if len(status):
logger.critical('CRITICAL: Repository contains uncommitted changes.')
diff --git a/src/tests/conftest.py b/src/tests/conftest.py
index d8cd853..3ff3891 100644
--- a/src/tests/conftest.py
+++ b/src/tests/conftest.py
@@ -13,7 +13,6 @@ def settestdefaults(tmp_path: pathlib.Path) -> None:
topdir = b4.git_get_toplevel()
if topdir and topdir != os.getcwd():
os.chdir(topdir)
- b4.can_patatt = False
b4.can_network = False
b4.MAIN_CONFIG = dict(b4.DEFAULT_CONFIG)
b4.USER_CONFIG = {
--
2.53.0
next prev parent reply other threads:[~2026-04-07 16:48 UTC|newest]
Thread overview: 16+ messages / expand[flat|nested] mbox.gz Atom feed top
2026-04-07 16:48 [PATCH b4 00/12] Enable stricter local checks Tamir Duberstein
2026-04-07 16:48 ` [PATCH b4 01/12] Configure ruff format with single quotes Tamir Duberstein
2026-04-07 16:48 ` [PATCH b4 02/12] Fix ruff check warnings Tamir Duberstein
2026-04-07 16:48 ` [PATCH b4 03/12] Use ruff to sort imports Tamir Duberstein
2026-04-07 16:48 ` Tamir Duberstein [this message]
2026-04-07 16:48 ` [PATCH b4 05/12] Fix tests under uv with complex git config Tamir Duberstein
2026-04-07 16:48 ` [PATCH b4 06/12] Fix typings in misc/ Tamir Duberstein
2026-04-07 16:48 ` [PATCH b4 07/12] Enable mypy unreachable warnings Tamir Duberstein
2026-04-07 16:48 ` [PATCH b4 08/12] Enable and fix pyright diagnostics Tamir Duberstein
2026-04-07 16:48 ` [PATCH b4 09/12] Avoid duplicate map lookups Tamir Duberstein
2026-04-07 16:48 ` [PATCH b4 10/12] Add ty and configuration Tamir Duberstein
2026-04-07 16:48 ` [PATCH b4 11/12] Enable pyright strict mode Tamir Duberstein
2026-04-07 16:48 ` [PATCH b4 12/12] Add local CI review check Tamir Duberstein
2026-04-10 15:05 ` [PATCH b4 00/12] Enable stricter local checks Tamir Duberstein
2026-04-10 15:21 ` Konstantin Ryabitsev
2026-04-10 22:39 ` Tamir Duberstein
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=20260407-ruff-check-v1-4-c9568541ff67@kernel.org \
--to=tamird@kernel.org \
--cc=konstantin@linuxfoundation.org \
--cc=tools@kernel.org \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox