Skip to content

Commit b113b07

Browse files
Add stricter Ruff linting (#35)
1 parent 01df4c2 commit b113b07

9 files changed

Lines changed: 42 additions & 4 deletions

File tree

dissect/executable/__init__.py

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,5 @@
1+
from __future__ import annotations
2+
13
from dissect.executable.elf.elf import ELF
24
from dissect.executable.pe.pe import PE
35

dissect/executable/elf/__init__.py

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,5 @@
1+
from __future__ import annotations
2+
13
from dissect.executable.elf.elf import (
24
ELF,
35
Section,

dissect/executable/elf/c_elf.py

Lines changed: 6 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,12 @@
1-
from enum import Flag, IntEnum
1+
from __future__ import annotations
2+
3+
from typing import TYPE_CHECKING
24

35
from dissect.cstruct import cstruct
46

7+
if TYPE_CHECKING:
8+
from enum import Flag, IntEnum
9+
510
elf_32_def = """
611
typedef uint32 Elf32_Addr;
712
typedef uint16 Elf32_Half;

dissect/executable/exception.py

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,6 @@
1+
from __future__ import annotations
2+
3+
14
class Error(Exception):
25
"""Base exception for this module."""
36

dissect/executable/pe/__init__.py

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,5 @@
1+
from __future__ import annotations
2+
13
from dissect.executable.pe.pe import PE
24

35
__all__ = [

dissect/executable/pe/directory/__init__.py

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,5 @@
1+
from __future__ import annotations
2+
13
from dissect.executable.pe.directory.base import DataDirectory
24
from dissect.executable.pe.directory.basereloc import BaseRelocationDirectory
35
from dissect.executable.pe.directory.bound_import import BoundImportDirectory

dissect/executable/pe/pe.py

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -5,7 +5,7 @@
55
from functools import cached_property
66
from typing import TYPE_CHECKING, BinaryIO
77

8-
from dissect.util.stream import AlignedStream, BufferedStream, RangeStream
8+
from dissect.util.stream import AlignedStream, BufferedStream
99
from dissect.util.ts import from_unix
1010

1111
from dissect.executable.exception import InvalidSignatureError
@@ -30,6 +30,8 @@
3030
if TYPE_CHECKING:
3131
import datetime
3232

33+
from dissect.util.stream import RangeStream
34+
3335

3436
class PE:
3537
"""PE file parser.

pyproject.toml

Lines changed: 20 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -94,16 +94,33 @@ select = [
9494
"SLOT",
9595
"SIM",
9696
"TID",
97-
"TCH",
97+
"TC",
9898
"PTH",
9999
"PLC",
100100
"TRY",
101101
"FLY",
102102
"PERF",
103103
"FURB",
104104
"RUF",
105+
"D"
105106
]
106-
ignore = ["E203", "B904", "UP024", "ANN002", "ANN003", "ANN204", "ANN401", "SIM105", "TRY003"]
107+
ignore = [
108+
"E203", "B904", "UP024", "ANN002", "ANN003", "ANN204", "ANN401", "SIM105", "TRY003", "PLC0415",
109+
# Ignore some pydocstyle rules for now as they require a larger cleanup
110+
"D1",
111+
"D205",
112+
"D301",
113+
"D417",
114+
# Seems bugged: https://github.com/astral-sh/ruff/issues/16824
115+
"D402",
116+
]
117+
future-annotations = true
118+
119+
[tool.ruff.lint.pydocstyle]
120+
convention = "google"
121+
122+
[tool.ruff.lint.flake8-type-checking]
123+
strict = true
107124

108125
[tool.ruff.lint.per-file-ignores]
109126
"tests/_docs/**" = ["INP001"]
@@ -112,6 +129,7 @@ ignore = ["E203", "B904", "UP024", "ANN002", "ANN003", "ANN204", "ANN401", "SIM1
112129
[tool.ruff.lint.isort]
113130
known-first-party = ["dissect.executable"]
114131
known-third-party = ["dissect"]
132+
required-imports = ["from __future__ import annotations"]
115133

116134
[tool.setuptools.packages.find]
117135
include = ["dissect.*"]

tests/_docs/conf.py

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,5 @@
1+
from __future__ import annotations
2+
13
project = "dissect.executable"
24

35
extensions = [

0 commit comments

Comments
 (0)