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>
This commit is contained in:
Jan Lindemann 2026-07-22 22:22:05 +02:00
commit fec0304543
3 changed files with 10 additions and 8 deletions

View file

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

View file

@ -6,7 +6,7 @@ import shutil
import signal import signal
import sys import sys
import asyncssh # type: ignore[import-not-found] import asyncssh # type: ignore[import-not-found, unused-ignore]
from ...base import Result from ...base import Result
from ...log import DEBUG, ERR, NOTICE, log 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 # Tolerate missing paramiko imports. jw-pkg is designed to work with what it
# finds. # finds.
import paramiko # type: ignore[import-untyped,import-not-found] # error: Library stubs not installed for "paramiko" 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] import paramiko.agent # type: ignore[import-untyped,import-not-found, unused-ignore]
import paramiko.SCPClient # type: ignore[import-untyped,import-not-found] import paramiko.SCPClient # type: ignore[import-untyped,import-not-found, unused-ignore]
from ...base import Result from ...base import Result
from ...log import ERR, log from ...log import ERR, log