Repository: SciTools/iris (language: python)

Issue:
[pre-commit.ci] pre-commit autoupdate
<!--pre-commit.ci start-->
updates:
- [github.com/astral-sh/ruff-pre-commit: v0.4.10 → v0.6.8](https://github.com/astral-sh/ruff-pre-commit/compare/v0.4.10...v0.6.8)
- [github.com/PyCQA/flake8: 7.1.0 → 7.1.1](https://github.com/PyCQA/flake8/compare/7.1.0...7.1.1)
- [github.com/asottile/blacken-docs: 1.16.0 → 1.18.0](https://github.com/asottile/blacken-docs/compare/1.16.0...1.18.0)
- [github.com/pre-commit/mirrors-mypy: v1.9.0 → v1.11.2](https://github.com/pre-commit/mirrors-mypy/compare/v1.9.0...v1.11.2)
- [github.com/numpy/numpydoc: v1.7.0 → v1.8.0](https://github.com/numpy/numpydoc/compare/v1.7.0...v1.8.0)
<!--pre-commit.ci end-->


Discussion / hints:

Fix patch:
diff --git a/.pre-commit-config.yaml b/.pre-commit-config.yaml
index feedba5b74..0398f60da2 100644
--- a/.pre-commit-config.yaml
+++ b/.pre-commit-config.yaml
@@ -29,7 +29,7 @@ repos:
     -   id: no-commit-to-branch
 
 -   repo: https://github.com/astral-sh/ruff-pre-commit
-    rev: "v0.4.10"
+    rev: "v0.6.8"
     hooks:
     -   id: ruff
         types: [file, python]
@@ -45,13 +45,13 @@ repos:
         additional_dependencies: [tomli]
 
 -   repo: https://github.com/PyCQA/flake8
-    rev: 7.1.0
+    rev: 7.1.1
     hooks:
     -   id: flake8
         types: [file, python]
 
 -   repo: https://github.com/asottile/blacken-docs
-    rev: 1.16.0
+    rev: 1.18.0
     hooks:
     -   id: blacken-docs
         types: [file, rst]
@@ -63,7 +63,7 @@ repos:
         types: [file, python]
 
 -   repo: https://github.com/pre-commit/mirrors-mypy
-    rev: 'v1.9.0'
+    rev: 'v1.11.2'
     hooks:
     -   id: mypy
         additional_dependencies:
@@ -71,7 +71,7 @@ repos:
         exclude: 'noxfile\.py|docs/src/conf\.py'
 
 -   repo: https://github.com/numpy/numpydoc
-    rev: v1.7.0
+    rev: v1.8.0
     hooks:
       - id: numpydoc-validation
         exclude: "^lib/iris/tests/|docs/gallery_code/"
diff --git a/pyproject.toml b/pyproject.toml
index 9e7cf051b0..b849dae9e6 100644
--- a/pyproject.toml
+++ b/pyproject.toml
@@ -165,6 +165,8 @@ ignore = [
 
 [tool.mypy]
 # See https://mypy.readthedocs.io/en/stable/config_file.html
+# TODO: remove when MyPy fixed (see https://github.com/python/mypy/issues/17166)
+disable_error_code = ["call-arg"]
 enable_error_code = ["ignore-without-code", "truthy-bool"]
 exclude = [
     'noxfile\.py',
@@ -211,7 +213,7 @@ checks = [
     "PR01",  # Parameters ... not documented
     "PR02",  # Unknown parameters {....}
     "PR04",  # Parameter "...." has no type
-    "PR07",  # Parameter "...." has no description   
+    "PR07",  # Parameter "...." has no description
     "RT01",  # No Returns section found
     "RT03",  # Return value has no description
 ]


Test patch:
diff --git a/lib/iris/tests/__init__.py b/lib/iris/tests/__init__.py
index 7c6f578a5f..a2824f90c2 100644
--- a/lib/iris/tests/__init__.py
+++ b/lib/iris/tests/__init__.py
@@ -548,9 +548,7 @@ def assertRepr(self, obj, reference_filename):
     def _check_same(self, item, reference_path, type_comparison_name="CML"):
         if self._check_reference_file(reference_path):
             with open(reference_path, "rb") as reference_fh:
-                reference = "".join(
-                    part.decode("utf-8") for part in reference_fh.readlines()
-                )
+                reference = "".join(part.decode("utf-8") for part in reference_fh)
             self._assert_str_same(reference, item, reference_path, type_comparison_name)
         else:
             self._ensure_folder(reference_path)
diff --git a/lib/iris/tests/integration/test_netcdf__loadsaveattrs.py b/lib/iris/tests/integration/test_netcdf__loadsaveattrs.py
index 1eeb5c4f0e..b89477bfe9 100644
--- a/lib/iris/tests/integration/test_netcdf__loadsaveattrs.py
+++ b/lib/iris/tests/integration/test_netcdf__loadsaveattrs.py
@@ -1022,7 +1022,7 @@ def test_16_localstyle(self, local_attr, origin_style, do_split):
         expected_result = [expect_global, expect_var]
         if do_split and origin_style == "input_global":
             # The result is simply the "other way around"
-            expected_result = expected_result[::-1]
+            expected_result.reverse()
         self.check_roundtrip_results(expected_result)
 
     @pytest.mark.parametrize("testcase", _MATRIX_TESTCASES[:max_param_attrs])
diff --git a/lib/iris/tests/unit/fileformats/nc_load_rules/actions/__init__.py b/lib/iris/tests/unit/fileformats/nc_load_rules/actions/__init__.py
index f768ae3587..7c79740023 100644
--- a/lib/iris/tests/unit/fileformats/nc_load_rules/actions/__init__.py
+++ b/lib/iris/tests/unit/fileformats/nc_load_rules/actions/__init__.py
@@ -140,7 +140,7 @@ def run_testcase(self, warning_regex=None, **testcase_kwargs):
         if self.debug_info:
             print("\nCube:")
             print(cube)
-            print("")
+            print()
         return cube
 
     def _make_testcase_cdl(self, **kwargs):
diff --git a/lib/iris/tests/unit/fileformats/nc_load_rules/actions/test__latlon_dimcoords.py b/lib/iris/tests/unit/fileformats/nc_load_rules/actions/test__latlon_dimcoords.py
index fcaa67c308..15401a2ca1 100644
--- a/lib/iris/tests/unit/fileformats/nc_load_rules/actions/test__latlon_dimcoords.py
+++ b/lib/iris/tests/unit/fileformats/nc_load_rules/actions/test__latlon_dimcoords.py
@@ -133,9 +133,9 @@ def check_result(
         self.assertEqual(1, len(cube.coords(dim_coords=True)))
         (coord,) = coords
         if self.debug_info:
-            print("")
+            print()
             print("DEBUG : result coord =", coord)
-            print("")
+            print()
 
         coord_stdname, coord_longname, coord_units, coord_crs = [
             getattr(coord, name)