From 248704e0b633d82813af06ecb7aa0cf7346ac3bd Mon Sep 17 00:00:00 2001 From: wbi Date: Tue, 24 Mar 2026 16:31:01 +0100 Subject: [PATCH 1/4] Add stricter Ruff linting --- dissect/volume/ddf/c_ddf.py | 1 + dissect/volume/disk/__init__.py | 2 ++ dissect/volume/disk/partition.py | 1 - dissect/volume/disk/schemes/__init__.py | 2 ++ dissect/volume/exceptions.py | 3 +++ dissect/volume/lvm/__init__.py | 2 ++ dissect/volume/md/__init__.py | 2 ++ dissect/volume/md/md.py | 1 - dissect/volume/raid/stream.py | 1 - pyproject.toml | 22 ++++++++++++++++++++-- tests/_docs/conf.py | 2 ++ 11 files changed, 34 insertions(+), 5 deletions(-) diff --git a/dissect/volume/ddf/c_ddf.py b/dissect/volume/ddf/c_ddf.py index cc8b4b5..8f0240f 100644 --- a/dissect/volume/ddf/c_ddf.py +++ b/dissect/volume/ddf/c_ddf.py @@ -1,4 +1,5 @@ # Reference: https://www.snia.org/sites/default/files/SNIA_DDF_Technical_Position_v2.0.pdf +from __future__ import annotations from dissect.cstruct import cstruct diff --git a/dissect/volume/disk/__init__.py b/dissect/volume/disk/__init__.py index f11833e..0154102 100644 --- a/dissect/volume/disk/__init__.py +++ b/dissect/volume/disk/__init__.py @@ -1,3 +1,5 @@ +from __future__ import annotations + from dissect.volume.disk.disk import Disk from dissect.volume.disk.partition import Partition from dissect.volume.exceptions import DiskError diff --git a/dissect/volume/disk/partition.py b/dissect/volume/disk/partition.py index 4dbb5a0..00935a7 100644 --- a/dissect/volume/disk/partition.py +++ b/dissect/volume/disk/partition.py @@ -235,7 +235,6 @@ def open(self) -> BinaryIO: def translate_partition_type(type: int | str | UUID, prepend_type: bool = True) -> str: """Translate a partition type to a human-readable format.""" - if not isinstance(type, str): name = PARTITION_TYPES.get(type, "Unknown") type = hex(type) if isinstance(type, int) else type diff --git a/dissect/volume/disk/schemes/__init__.py b/dissect/volume/disk/schemes/__init__.py index 0305553..3c7f52c 100644 --- a/dissect/volume/disk/schemes/__init__.py +++ b/dissect/volume/disk/schemes/__init__.py @@ -1,3 +1,5 @@ +from __future__ import annotations + from dissect.volume.disk.schemes.apm import APM from dissect.volume.disk.schemes.bsd import BSD from dissect.volume.disk.schemes.gpt import GPT diff --git a/dissect/volume/exceptions.py b/dissect/volume/exceptions.py index 739f6b9..8eb3c46 100644 --- a/dissect/volume/exceptions.py +++ b/dissect/volume/exceptions.py @@ -1,3 +1,6 @@ +from __future__ import annotations + + class Error(Exception): pass diff --git a/dissect/volume/lvm/__init__.py b/dissect/volume/lvm/__init__.py index f0ed0b2..3a14443 100644 --- a/dissect/volume/lvm/__init__.py +++ b/dissect/volume/lvm/__init__.py @@ -1,3 +1,5 @@ +from __future__ import annotations + from dissect.volume.lvm.lvm2 import LVM2 from dissect.volume.lvm.physical import LVM2Device diff --git a/dissect/volume/md/__init__.py b/dissect/volume/md/__init__.py index 0279df9..2a5180c 100644 --- a/dissect/volume/md/__init__.py +++ b/dissect/volume/md/__init__.py @@ -1,3 +1,5 @@ +from __future__ import annotations + from dissect.volume.md.md import MD, MDPhysicalDisk __all__ = [ diff --git a/dissect/volume/md/md.py b/dissect/volume/md/md.py index 422674e..6d9ecf4 100644 --- a/dissect/volume/md/md.py +++ b/dissect/volume/md/md.py @@ -151,7 +151,6 @@ def find_super_block(fh: BinaryIO) -> tuple[int | None, int | None, int | None]: A tuple containing the sector, major version, and minor version of the super block, or a tuple of ``None`` if no super block was found. """ - size = fh.size if (hasattr(fh, "size") and fh.size is not None) else fh.seek(0, io.SEEK_END) size //= SECTOR_SIZE diff --git a/dissect/volume/raid/stream.py b/dissect/volume/raid/stream.py index a5fe099..2d1edeb 100644 --- a/dissect/volume/raid/stream.py +++ b/dissect/volume/raid/stream.py @@ -198,7 +198,6 @@ def __init__(self, virtual_disk: VirtualDisk): def _get_stripe_read_info(self, offset: int) -> tuple[int, int, int, int, int | None]: """Calculate the stripe, offset in the stripe, data disk, parity disk and "Q" parity disk for a given sector.""" - # Reference: raid5_compute_sector stripe_size = self.virtual_disk.stripe_size raid_disks = self.virtual_disk.num_disks diff --git a/pyproject.toml b/pyproject.toml index d4c0fce..719107b 100644 --- a/pyproject.toml +++ b/pyproject.toml @@ -94,7 +94,7 @@ select = [ "SLOT", "SIM", "TID", - "TCH", + "TC", "PTH", "PLC", "TRY", @@ -102,8 +102,25 @@ select = [ "PERF", "FURB", "RUF", + "D" ] -ignore = ["E203", "B904", "UP024", "ANN002", "ANN003", "ANN204", "ANN401", "SIM105", "TRY003"] +ignore = [ + "E203", "B904", "UP024", "ANN002", "ANN003", "ANN204", "ANN401", "SIM105", "TRY003", "PLC0415", + # Ignore some pydocstyle rules for now as they require a larger cleanup + "D1", + "D205", + "D301", + "D417", + # Seems bugged: https://github.com/astral-sh/ruff/issues/16824 + "D402", +] +future-annotations = true + +[tool.ruff.lint.pydocstyle] +convention = "google" + +[tool.ruff.lint.flake8-type-checking] +strict = true [tool.ruff.lint.per-file-ignores] "tests/docs/**" = ["INP001"] @@ -112,6 +129,7 @@ ignore = ["E203", "B904", "UP024", "ANN002", "ANN003", "ANN204", "ANN401", "SIM1 [tool.ruff.lint.isort] known-first-party = ["dissect.volume"] known-third-party = ["dissect"] +required-imports = ["from __future__ import annotations"] [tool.setuptools.packages.find] include = ["dissect.*"] diff --git a/tests/_docs/conf.py b/tests/_docs/conf.py index a44587a..5504934 100644 --- a/tests/_docs/conf.py +++ b/tests/_docs/conf.py @@ -1,3 +1,5 @@ +from __future__ import annotations + extensions = [ "autoapi.extension", "sphinx.ext.autodoc", From a473a262a140f5621e85808ff48de3286b9dc728 Mon Sep 17 00:00:00 2001 From: wbi Date: Wed, 25 Mar 2026 08:45:07 +0100 Subject: [PATCH 2/4] Add ruff commit to git blame ignore revs --- .git-blame-ignore-revs | 2 ++ 1 file changed, 2 insertions(+) diff --git a/.git-blame-ignore-revs b/.git-blame-ignore-revs index e8a3901..5a58a23 100644 --- a/.git-blame-ignore-revs +++ b/.git-blame-ignore-revs @@ -4,3 +4,5 @@ # # Change linter to Ruff (#44) 8fefd76a54ff43b2fdbedbbb3cd330c27b1a0b14 +# Add stricter Ruff linting (#63) +6bb48483a8eaa62fba114ae33643a19f7a91a171 \ No newline at end of file From 2c08efb7ff16bc5420a2684d75b3ccf73c02715e Mon Sep 17 00:00:00 2001 From: wbi Date: Wed, 25 Mar 2026 08:45:07 +0100 Subject: [PATCH 3/4] Add ruff commit to git blame ignore revs --- .git-blame-ignore-revs | 2 ++ 1 file changed, 2 insertions(+) diff --git a/.git-blame-ignore-revs b/.git-blame-ignore-revs index e8a3901..5a58a23 100644 --- a/.git-blame-ignore-revs +++ b/.git-blame-ignore-revs @@ -4,3 +4,5 @@ # # Change linter to Ruff (#44) 8fefd76a54ff43b2fdbedbbb3cd330c27b1a0b14 +# Add stricter Ruff linting (#63) +6bb48483a8eaa62fba114ae33643a19f7a91a171 \ No newline at end of file From 6c72d7b182e9ae2848b5061250a0f9dc41c9aa7d Mon Sep 17 00:00:00 2001 From: wbi Date: Wed, 25 Mar 2026 08:45:52 +0100 Subject: [PATCH 4/4] Add ruff commit to git blame ignore revs --- .git-blame-ignore-revs | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.git-blame-ignore-revs b/.git-blame-ignore-revs index 5a58a23..453ec3f 100644 --- a/.git-blame-ignore-revs +++ b/.git-blame-ignore-revs @@ -5,4 +5,4 @@ # Change linter to Ruff (#44) 8fefd76a54ff43b2fdbedbbb3cd330c27b1a0b14 # Add stricter Ruff linting (#63) -6bb48483a8eaa62fba114ae33643a19f7a91a171 \ No newline at end of file +6bb48483a8eaa62fba114ae33643a19f7a91a171