jw.pkg: Massively tighten linter checks #53

Merged
Jan Lindemann merged 31 commits from jan/feature/20260809-pyrightconfig-json-mirror-strict-mypy-settings into master 2026-08-09 15:12:37 +02:00 AGit
3 changed files with 10 additions and 8 deletions
Showing only changes of commit fec0304543 - Show all commits

App, AsyncSSH: Allow unused "type: ignore" comments

Some '# type: ignore' comments are needed because they complain about missing
but optional third-party packages: argcomplete, paramiko, asyncssh. The next
commit will enable warn_unused_ignores, and since nor mypy nor pyright have a
way of knowing that this is a tolerable lack of packages, this commit teaches
them in advance.

Signed-off-by: Jan Lindemann <jan@janware.com>
Jan Lindemann 2026-07-22 22:22:05 +02:00

View file

@ -150,7 +150,7 @@ class App: # export
cmd_classes: LoadTypes[AbstractCmd] = LoadTypes(
modules if modules else ['__main__'],
type_name_filter = name_filter,
type_filter = [AbstractCmd], # type: ignore[type-abstract]
type_filter = [AbstractCmd],
)
add_all_parsers = (
'-h' in sys.argv or '--help' in sys.argv or '_ARGCOMPLETE' in os.environ
@ -186,17 +186,19 @@ class App: # export
try:
# Import argcomplete only here to not require it to be compatible
# with minimal environments
from argcomplete.completers import ( # type: ignore[import-not-found]
from argcomplete.completers import ( # type: ignore[import-not-found, unused-ignore]
BaseCompleter
)
class NoopCompleter(BaseCompleter):
@override
def __call__(self, *args, **kwargs):
def __call__( # pyright: ignore[reportGeneralTypeIssues]
self, *args, **kwargs
):
return None
import argcomplete # type: ignore[import-not-found]
import argcomplete # type: ignore[import-not-found, unused-ignore]
argcomplete.autocomplete(self.__parser, default_completer = NoopCompleter())

View file

@ -6,7 +6,7 @@ import shutil
import signal
import sys
import asyncssh # type: ignore[import-not-found]
import asyncssh # type: ignore[import-not-found, unused-ignore]
from ...base import Result
from ...log import DEBUG, ERR, NOTICE, log

View file

@ -4,9 +4,9 @@ from typing import override, TYPE_CHECKING
# Tolerate missing paramiko imports. jw-pkg is designed to work with what it
# finds.
import paramiko # type: ignore[import-untyped,import-not-found] # error: Library stubs not installed for "paramiko"
import paramiko.agent # type: ignore[import-untyped,import-not-found]
import paramiko.SCPClient # type: ignore[import-untyped,import-not-found]
import paramiko # type: ignore[import-untyped,import-not-found, unused-ignore] # error: Library stubs not installed for "paramiko"
import paramiko.agent # type: ignore[import-untyped,import-not-found, unused-ignore]
import paramiko.SCPClient # type: ignore[import-untyped,import-not-found, unused-ignore]
from ...base import Result
from ...log import ERR, log