diff --git a/pyproject.toml b/pyproject.toml
index 80c7b8e68ba72e1bc94050e69d39930160ac743b..6c2af6a5643a93de8c5279605833a50af54fe6e9 100644
--- a/pyproject.toml
+++ b/pyproject.toml
@@ -72,12 +72,13 @@ extend-select = [
     "I",   # flake8-isort
     "N",   # pep8-naming
     "NPY", # numpy
+    "PGH", # pygrep-hooks
     "Q",   # flake8-quotes
-    "UP",  # pyupgrade
     "RUF", # ruff
+    "SIM", # flake8-simplify
+    "TC",  # flake8-type-checking
+    "UP",  # pyupgrade
     "W",   # pycodestyle
-    "TC",
-    "SIM",
 ]
 extend-ignore = [
     "C90",  # McCabe complexity
diff --git a/pytools/__init__.py b/pytools/__init__.py
index 08307a82dd5db0e020e7d2881ef3d4b9978bae19..6a882df0ef09abc9e88b96af64d4f6aae2f2d5f0 100644
--- a/pytools/__init__.py
+++ b/pytools/__init__.py
@@ -716,7 +716,7 @@ def memoize(*args: F, **kwargs: Any) -> F:
             return wrapper
 
     if not args:
-        return _decorator  # type: ignore
+        return _decorator  # type: ignore[return-value]
     if callable(args[0]) and len(args) == 1:
         return _decorator(args[0])
     raise TypeError(
diff --git a/pytools/mpiwrap.py b/pytools/mpiwrap.py
index b744b43a602ac68ab796ecda8997a80a910ca705..f8334ed569c9900ea69df4963a1f6b9905ec6a3d 100644
--- a/pytools/mpiwrap.py
+++ b/pytools/mpiwrap.py
@@ -6,7 +6,7 @@ import mpi4py.rc  # pylint:disable=import-error
 
 mpi4py.rc.initialize = False
 
-from mpi4py.MPI import *  # noqa pylint:disable=wildcard-import,wrong-import-position
+from mpi4py.MPI import *  # noqa: F403 pylint:disable=wildcard-import,wrong-import-position
 
 import pytools.prefork  # pylint:disable=wrong-import-position
 
@@ -14,13 +14,12 @@ import pytools.prefork  # pylint:disable=wrong-import-position
 pytools.prefork.enable_prefork()
 
 
-# pylint: disable-next=undefined-variable
-if Is_initialized():    # type: ignore[name-defined,unused-ignore] # noqa
+if Is_initialized():  # type: ignore[name-defined] # noqa: F405
     raise RuntimeError("MPI already initialized before MPI wrapper import")
 
 
-def InitWithAutoFinalize(*args, **kwargs):  # noqa
-    result = Init(*args, **kwargs)  # noqa pylint:disable=undefined-variable
+def InitWithAutoFinalize(*args, **kwargs):  # noqa: N802
+    result = Init(*args, **kwargs)  # noqa: F405
     import atexit
-    atexit.register(Finalize)  # noqa pylint:disable=undefined-variable
+    atexit.register(Finalize)  # # noqa: F405
     return result
diff --git a/pytools/py_codegen.py b/pytools/py_codegen.py
index a1d8749307f418502ed16c512b42bf5e3bb328a2..a3f6e60867ef1a55fc26bde039ef81080af93275 100644
--- a/pytools/py_codegen.py
+++ b/pytools/py_codegen.py
@@ -27,7 +27,7 @@ import marshal
 from importlib.util import MAGIC_NUMBER as BYTECODE_VERSION
 from types import FunctionType, ModuleType
 
-from pytools.codegen import (  # noqa
+from pytools.codegen import (  # noqa: F401
     CodeGenerator as CodeGeneratorBase,
     Indentation,
     remove_common_indentation,