2026-06-01 10:04:38 +02:00
|
|
|
from __future__ import annotations
|
2026-06-01 09:18:34 +02:00
|
|
|
|
App, lib, cmds: Fix mypy.explicit-override fallout
This commit adds @override decorators to approximately 300 methods
across 76 files that inherit from base classes such as AbstractCmd,
FileContext, ExecContext, Distro, SSHClient, and others.
The decorator ensures the type checker can verify that overridden
methods have compatible signatures and prevents accidental shadowing
of inherited methods without intent.
Files modified include command classes, library modules, distro
implementations, and SSH client implementations.
Assisted-by: unsloth/Qwen3.6-35B-A3B-GGUF:IQ4_NL with pi.dev v
Signed-off-by: Jan Lindemann <jan@janware.com>
2026-07-22 15:51:14 +02:00
|
|
|
from typing import TYPE_CHECKING, override
|
2026-06-30 11:26:52 +02:00
|
|
|
|
2026-06-01 09:18:34 +02:00
|
|
|
from ....lib.log import NOTICE, log
|
|
|
|
|
from .Cmd import Cmd, Parent
|
2026-06-01 10:04:38 +02:00
|
|
|
|
|
|
|
|
if TYPE_CHECKING:
|
|
|
|
|
from argparse import ArgumentParser, Namespace
|
2026-06-01 09:18:34 +02:00
|
|
|
|
|
|
|
|
class CmdDep(Cmd): # export
|
|
|
|
|
|
|
|
|
|
def __init__(self, parent: Parent) -> None:
|
|
|
|
|
super().__init__(
|
|
|
|
|
parent,
|
|
|
|
|
'deps',
|
|
|
|
|
help = 'Check for circular dependencies between given modules',
|
|
|
|
|
)
|
|
|
|
|
|
App, lib, cmds: Fix mypy.explicit-override fallout
This commit adds @override decorators to approximately 300 methods
across 76 files that inherit from base classes such as AbstractCmd,
FileContext, ExecContext, Distro, SSHClient, and others.
The decorator ensures the type checker can verify that overridden
methods have compatible signatures and prevents accidental shadowing
of inherited methods without intent.
Files modified include command classes, library modules, distro
implementations, and SSH client implementations.
Assisted-by: unsloth/Qwen3.6-35B-A3B-GGUF:IQ4_NL with pi.dev v
Signed-off-by: Jan Lindemann <jan@janware.com>
2026-07-22 15:51:14 +02:00
|
|
|
@override
|
2026-06-01 09:18:34 +02:00
|
|
|
def add_arguments(self, parser: ArgumentParser) -> None:
|
|
|
|
|
super().add_arguments(parser)
|
|
|
|
|
parser.add_argument('module', nargs = '*', help = 'Modules')
|
|
|
|
|
parser.add_argument('-f', '--flavour', nargs = '?', default = 'build')
|
|
|
|
|
|
App, lib, cmds: Fix mypy.explicit-override fallout
This commit adds @override decorators to approximately 300 methods
across 76 files that inherit from base classes such as AbstractCmd,
FileContext, ExecContext, Distro, SSHClient, and others.
The decorator ensures the type checker can verify that overridden
methods have compatible signatures and prevents accidental shadowing
of inherited methods without intent.
Files modified include command classes, library modules, distro
implementations, and SSH client implementations.
Assisted-by: unsloth/Qwen3.6-35B-A3B-GGUF:IQ4_NL with pi.dev v
Signed-off-by: Jan Lindemann <jan@janware.com>
2026-07-22 15:51:14 +02:00
|
|
|
@override
|
2026-06-01 09:18:34 +02:00
|
|
|
async def _run(self, args: Namespace) -> None:
|
2026-06-30 11:26:52 +02:00
|
|
|
cycle = self.app.find_circular_deps(args.module, args.flavour)
|
|
|
|
|
if cycle:
|
|
|
|
|
log(
|
|
|
|
|
NOTICE,
|
|
|
|
|
f'Found circular dependency in flavour {args.flavour}: '
|
|
|
|
|
' -> '.join(cycle)
|
|
|
|
|
)
|
2026-06-01 09:18:34 +02:00
|
|
|
exit(1)
|
|
|
|
|
log(
|
|
|
|
|
NOTICE,
|
|
|
|
|
f'No circular dependency found for flavour {args.flavour} in modules:',
|
|
|
|
|
' '.join(args.module),
|
|
|
|
|
)
|