Skip to content

Commit 51e4a99

Browse files
mayeutauvipy
authored andcommitted
chore: better typing hints
1 parent 387420b commit 51e4a99

19 files changed

+164
-112
lines changed

.pre-commit-config.yaml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -34,6 +34,6 @@ repos:
3434
rev: v1.15.0
3535
hooks:
3636
- id: mypy
37-
exclude: ^tests/integration/.*/.*$
37+
exclude: ^tests/integration/.*/.*$|^scripts/calculate_symbol_versions.py$
3838
additional_dependencies:
3939
- types-requests

pyproject.toml

Lines changed: 18 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -6,10 +6,26 @@ build-backend = "setuptools.build_meta"
66
# enable version inference
77

88
[tool.mypy]
9-
follow_imports = "silent"
10-
ignore_missing_imports = true
9+
check_untyped_defs = true
10+
disallow_any_generics = true
11+
disallow_incomplete_defs = true
12+
disallow_subclassing_any = true
13+
disallow_untyped_defs = false
14+
enable_error_code = ["ignore-without-code", "redundant-expr", "truthy-bool"]
15+
extra_checks = true
16+
strict = false
17+
strict_equality = true
18+
warn_unused_configs = true
19+
warn_unreachable = false
1120
warn_unused_ignores = true
1221

22+
[[tool.mypy.overrides]]
23+
module = "auditwheel.*"
24+
disallow_untyped_calls = true
25+
disallow_untyped_decorators = true
26+
disallow_untyped_defs = true
27+
warn_return_any = true
28+
1329
[[tool.mypy.overrides]]
1430
module = "auditwheel._vendor.*"
1531
follow_imports = "skip"

src/auditwheel/architecture.py

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -23,11 +23,11 @@ class Architecture(Enum):
2323
x86_64_v3 = "x86_64_v3"
2424
x86_64_v4 = "x86_64_v4"
2525

26-
def __str__(self):
26+
def __str__(self) -> str:
2727
return self.value
2828

2929
@property
30-
def baseline(self):
30+
def baseline(self) -> Architecture:
3131
if self.value.startswith("x86_64"):
3232
return Architecture.x86_64
3333
return self

src/auditwheel/condatools.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -26,7 +26,7 @@ def __init__(self, in_conda_pkg: str) -> None:
2626
super().__init__(in_conda_pkg)
2727
self.path: str | None = None
2828

29-
def __enter__(self):
29+
def __enter__(self): # type: ignore[no-untyped-def]
3030
self.path = super().__enter__()
3131
return self
3232

src/auditwheel/elfutils.py

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
from __future__ import annotations
22

3-
from collections.abc import Iterator
3+
from collections.abc import Iterable, Iterator
44
from os.path import basename
55
from pathlib import Path
66

@@ -26,7 +26,7 @@ def elf_read_dt_needed(fn: str) -> list[str]:
2626
return needed
2727

2828

29-
def elf_file_filter(paths: Iterator[str]) -> Iterator[tuple[str, ELFFile]]:
29+
def elf_file_filter(paths: Iterable[str]) -> Iterator[tuple[str, ELFFile]]:
3030
"""Filter through an iterator of filenames and load up only ELF
3131
files
3232
"""

src/auditwheel/lddtree.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -311,7 +311,7 @@ def load_ld_paths(root: str = "/", prefix: str = "") -> dict[str, list[str]]:
311311
-------
312312
dict containing library paths to search
313313
"""
314-
ldpaths: dict = {"conf": [], "env": [], "interp": []}
314+
ldpaths: dict[str, list[str]] = {"conf": [], "env": [], "interp": []}
315315

316316
# Load up $LD_LIBRARY_PATH.
317317
env_ldpath = os.environ.get("LD_LIBRARY_PATH")

src/auditwheel/main.py

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -50,5 +50,5 @@ def main() -> int | None:
5050
if not hasattr(args, "func"):
5151
p.print_help()
5252
return None
53-
54-
return args.func(args, p)
53+
result: int | None = args.func(args, p)
54+
return result

src/auditwheel/main_lddtree.py

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -6,15 +6,16 @@
66
logger = logging.getLogger(__name__)
77

88

9-
def configure_subparser(sub_parsers):
9+
def configure_subparser(sub_parsers) -> None: # type: ignore[no-untyped-def]
1010
help = "Analyze a single ELF file (similar to ``ldd``)."
1111
p = sub_parsers.add_parser("lddtree", help=help, description=help)
1212
p.add_argument("file", help="Path to .so file")
1313
p.set_defaults(func=execute)
1414

1515

16-
def execute(args, p: argparse.ArgumentParser): # noqa: ARG001
16+
def execute(args: argparse.Namespace, p: argparse.ArgumentParser) -> int: # noqa: ARG001
1717
from . import json
1818
from .lddtree import ldd
1919

2020
logger.info(json.dumps(ldd(args.file)))
21+
return 0

src/auditwheel/main_repair.py

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -12,7 +12,7 @@
1212
logger = logging.getLogger(__name__)
1313

1414

15-
def configure_parser(sub_parsers):
15+
def configure_parser(sub_parsers) -> None: # type: ignore[no-untyped-def]
1616
wheel_policy = WheelPolicies()
1717
policies = wheel_policy.policies
1818
policy_names = [p["name"] for p in policies]
@@ -111,7 +111,7 @@ def configure_parser(sub_parsers):
111111
p.set_defaults(func=execute)
112112

113113

114-
def execute(args, parser: argparse.ArgumentParser):
114+
def execute(args: argparse.Namespace, parser: argparse.ArgumentParser) -> int:
115115
import os
116116

117117
from .repair import repair_wheel

src/auditwheel/main_show.py

Lines changed: 6 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -8,7 +8,7 @@
88
logger = logging.getLogger(__name__)
99

1010

11-
def configure_parser(sub_parsers):
11+
def configure_parser(sub_parsers) -> None: # type: ignore[no-untyped-def]
1212
help = "Audit a wheel for external shared library dependencies."
1313
p = sub_parsers.add_parser("show", help=help, description=help)
1414
p.add_argument("WHEEL_FILE", help="Path to wheel file.")
@@ -29,7 +29,7 @@ def printp(text: str) -> None:
2929
print("\n".join(wrap(text, break_long_words=False, break_on_hyphens=False)))
3030

3131

32-
def execute(args, parser: argparse.ArgumentParser):
32+
def execute(args: argparse.Namespace, parser: argparse.ArgumentParser) -> int:
3333
from os.path import basename, isfile
3434

3535
from . import json
@@ -68,7 +68,7 @@ def execute(args, parser: argparse.ArgumentParser):
6868
"#fpectl-builds-vs-no-fpectl-builds)"
6969
)
7070
if args.verbose < 1:
71-
return None
71+
return 0
7272

7373
if wheel_policy.get_priority_by_name(winfo.ucs_tag) < wheel_policy.priority_highest:
7474
printp(
@@ -77,15 +77,15 @@ def execute(args, parser: argparse.ArgumentParser):
7777
"manylinux1 tag."
7878
)
7979
if args.verbose < 1:
80-
return None
80+
return 0
8181

8282
if (
8383
wheel_policy.get_priority_by_name(winfo.machine_tag)
8484
< wheel_policy.priority_highest
8585
):
8686
printp("This wheel depends on unsupported ISA extensions.")
8787
if args.verbose < 1:
88-
return None
88+
return 0
8989

9090
if len(libs_with_versions) == 0:
9191
printp(
@@ -107,7 +107,7 @@ def execute(args, parser: argparse.ArgumentParser):
107107
"a recent manylinux image."
108108
)
109109
if args.verbose < 1:
110-
return None
110+
return 0
111111

112112
libs = winfo.external_refs[
113113
wheel_policy.get_policy_name(wheel_policy.priority_lowest)

0 commit comments

Comments
 (0)