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>
This commit is contained in:
parent
30a00df5c7
commit
5fa008be5a
78 changed files with 263 additions and 81 deletions
|
|
@ -1,6 +1,6 @@
|
|||
from __future__ import annotations
|
||||
|
||||
from typing import TYPE_CHECKING
|
||||
from typing import override, TYPE_CHECKING
|
||||
|
||||
from ..App import App as Parent
|
||||
from ..CmdBase import CmdBase as Base
|
||||
|
|
@ -20,6 +20,7 @@ class Cmd(Base): # export
|
|||
) -> None:
|
||||
super().__init__(parent, name, help, aliases = aliases)
|
||||
|
||||
@override
|
||||
async def _run(self, args):
|
||||
# Missing subcommand
|
||||
self.print_help(1)
|
||||
|
|
|
|||
|
|
@ -1,6 +1,6 @@
|
|||
from __future__ import annotations
|
||||
|
||||
from typing import TYPE_CHECKING
|
||||
from typing import TYPE_CHECKING, override
|
||||
|
||||
from .Cmd import Cmd, Parent
|
||||
|
||||
|
|
@ -18,6 +18,7 @@ class CmdPkg(Cmd): # export
|
|||
)
|
||||
self.load_subcommands()
|
||||
|
||||
@override
|
||||
async def _run(self, args):
|
||||
import sys
|
||||
|
||||
|
|
@ -25,5 +26,6 @@ class CmdPkg(Cmd): # export
|
|||
self.parser.print_help()
|
||||
sys.exit(1)
|
||||
|
||||
@override
|
||||
def add_arguments(self, parser: ArgumentParser) -> None:
|
||||
super().add_arguments(parser)
|
||||
|
|
|
|||
|
|
@ -1,6 +1,6 @@
|
|||
from __future__ import annotations
|
||||
|
||||
from typing import TYPE_CHECKING
|
||||
from typing import TYPE_CHECKING, override
|
||||
|
||||
from .Cmd import Cmd, Parent
|
||||
|
||||
|
|
@ -15,6 +15,7 @@ class CmdPlatform(Cmd): # export
|
|||
)
|
||||
self.load_subcommands()
|
||||
|
||||
@override
|
||||
async def _run(self, args):
|
||||
import sys
|
||||
|
||||
|
|
@ -22,5 +23,6 @@ class CmdPlatform(Cmd): # export
|
|||
self.parser.print_help()
|
||||
sys.exit(1)
|
||||
|
||||
@override
|
||||
def add_arguments(self, parser: ArgumentParser) -> None:
|
||||
super().add_arguments(parser)
|
||||
|
|
|
|||
|
|
@ -1,6 +1,6 @@
|
|||
from __future__ import annotations
|
||||
|
||||
from typing import TYPE_CHECKING
|
||||
from typing import TYPE_CHECKING, override
|
||||
|
||||
from .Cmd import Cmd, Parent
|
||||
|
||||
|
|
@ -20,6 +20,7 @@ class CmdPosix(Cmd): # export
|
|||
)
|
||||
self.load_subcommands()
|
||||
|
||||
@override
|
||||
async def _run(self, args):
|
||||
import sys
|
||||
|
||||
|
|
@ -27,5 +28,6 @@ class CmdPosix(Cmd): # export
|
|||
self.parser.print_help()
|
||||
sys.exit(1)
|
||||
|
||||
@override
|
||||
def add_arguments(self, parser: ArgumentParser) -> None:
|
||||
super().add_arguments(parser)
|
||||
|
|
|
|||
|
|
@ -1,6 +1,6 @@
|
|||
from __future__ import annotations
|
||||
|
||||
from typing import TYPE_CHECKING
|
||||
from typing import TYPE_CHECKING, override
|
||||
|
||||
from .Cmd import Cmd, Parent
|
||||
|
||||
|
|
@ -17,6 +17,7 @@ class CmdProjects(Cmd): # export
|
|||
)
|
||||
self.load_subcommands()
|
||||
|
||||
@override
|
||||
async def _run(self, args):
|
||||
import sys
|
||||
|
||||
|
|
@ -24,5 +25,6 @@ class CmdProjects(Cmd): # export
|
|||
self.parser.print_help()
|
||||
sys.exit(1)
|
||||
|
||||
@override
|
||||
def add_arguments(self, parser: ArgumentParser) -> None:
|
||||
super().add_arguments(parser)
|
||||
|
|
|
|||
|
|
@ -1,6 +1,6 @@
|
|||
from __future__ import annotations
|
||||
|
||||
from typing import TYPE_CHECKING
|
||||
from typing import TYPE_CHECKING, override
|
||||
|
||||
from .Cmd import Cmd, Parent
|
||||
|
||||
|
|
@ -13,6 +13,7 @@ class CmdSecrets(Cmd): # export
|
|||
super().__init__(parent, 'secrets', help = 'Manage package secrets')
|
||||
self.load_subcommands()
|
||||
|
||||
@override
|
||||
async def _run(self, args):
|
||||
import sys
|
||||
|
||||
|
|
@ -20,5 +21,6 @@ class CmdSecrets(Cmd): # export
|
|||
self.parser.print_help()
|
||||
sys.exit(1)
|
||||
|
||||
@override
|
||||
def add_arguments(self, parser: ArgumentParser) -> None:
|
||||
super().add_arguments(parser)
|
||||
|
|
|
|||
|
|
@ -1,6 +1,6 @@
|
|||
from __future__ import annotations
|
||||
|
||||
from typing import TYPE_CHECKING
|
||||
from typing import TYPE_CHECKING, override
|
||||
|
||||
from .Cmd import Cmd, Parent
|
||||
|
||||
|
|
@ -12,11 +12,13 @@ class CmdDelete(Cmd): # export
|
|||
def __init__(self, parent: Parent) -> None:
|
||||
super().__init__(parent, 'delete', help = 'Delete packages by name')
|
||||
|
||||
@override
|
||||
def add_arguments(self, parser: ArgumentParser) -> None:
|
||||
super().add_arguments(parser)
|
||||
parser.add_argument(
|
||||
'names', nargs = '*', help = 'Names of packages to be deleted'
|
||||
)
|
||||
|
||||
@override
|
||||
async def _run(self, args: Namespace) -> None:
|
||||
return await self.distro.delete(args.names)
|
||||
|
|
|
|||
|
|
@ -1,6 +1,6 @@
|
|||
from __future__ import annotations
|
||||
|
||||
from typing import TYPE_CHECKING
|
||||
from typing import TYPE_CHECKING, override
|
||||
|
||||
from .Cmd import Cmd, Parent
|
||||
|
||||
|
|
@ -12,6 +12,7 @@ class CmdDup(Cmd): # export
|
|||
def __init__(self, parent: Parent) -> None:
|
||||
super().__init__(parent, 'dup', help = 'Upgrade distribution')
|
||||
|
||||
@override
|
||||
def add_arguments(self, parser: ArgumentParser) -> None:
|
||||
super().add_arguments(parser)
|
||||
parser.add_argument(
|
||||
|
|
@ -21,5 +22,6 @@ class CmdDup(Cmd): # export
|
|||
help = "Only download packages from the repos, don't install them, yet",
|
||||
)
|
||||
|
||||
@override
|
||||
async def _run(self, args: Namespace) -> None:
|
||||
return await self.distro.dup(download_only = args.download_only)
|
||||
|
|
|
|||
|
|
@ -1,6 +1,6 @@
|
|||
from __future__ import annotations
|
||||
|
||||
from typing import TYPE_CHECKING
|
||||
from typing import override, TYPE_CHECKING
|
||||
|
||||
from .Cmd import Cmd, Parent
|
||||
|
||||
|
|
@ -16,6 +16,7 @@ class CmdInstall(Cmd): # export
|
|||
help = "Install the distribution's notion of available packages",
|
||||
)
|
||||
|
||||
@override
|
||||
def add_arguments(self, parser: ArgumentParser) -> None:
|
||||
super().add_arguments(parser)
|
||||
parser.add_argument('names', nargs = '*', help = 'Packages to be installed')
|
||||
|
|
@ -32,6 +33,7 @@ class CmdInstall(Cmd): # export
|
|||
help = "Don't expand macros in <names>",
|
||||
)
|
||||
|
||||
@override
|
||||
async def _run(self, args: Namespace) -> None:
|
||||
names = (
|
||||
args.names if args.fixed_strings else self.distro.expand_macros(args.names)
|
||||
|
|
|
|||
|
|
@ -1,6 +1,6 @@
|
|||
from __future__ import annotations
|
||||
|
||||
from typing import TYPE_CHECKING
|
||||
from typing import TYPE_CHECKING, override
|
||||
|
||||
from .NamedPkgsCmd import NamedPkgsCmd
|
||||
|
||||
|
|
@ -14,9 +14,11 @@ class CmdLs(NamedPkgsCmd): # export
|
|||
def __init__(self, parent: Parent) -> None:
|
||||
super().__init__(parent, 'ls', help = 'List package contents')
|
||||
|
||||
@override
|
||||
def add_arguments(self, parser: ArgumentParser) -> None:
|
||||
super().add_arguments(parser)
|
||||
|
||||
@override
|
||||
async def _run(self, args: Namespace) -> None:
|
||||
for name in args.names:
|
||||
print('\n'.join(await self.distro.pkg_files(name)))
|
||||
|
|
|
|||
|
|
@ -1,6 +1,6 @@
|
|||
from __future__ import annotations
|
||||
|
||||
from typing import TYPE_CHECKING
|
||||
from typing import TYPE_CHECKING, override
|
||||
|
||||
from .NamedPkgsCmd import NamedPkgsCmd, Parent
|
||||
|
||||
|
|
@ -12,9 +12,11 @@ class CmdMeta(NamedPkgsCmd): # export
|
|||
def __init__(self, parent: Parent) -> None:
|
||||
super().__init__(parent, 'meta', help = 'List package metadata')
|
||||
|
||||
@override
|
||||
def add_arguments(self, parser: ArgumentParser) -> None:
|
||||
super().add_arguments(parser)
|
||||
|
||||
@override
|
||||
async def _run(self, args: Namespace) -> None:
|
||||
names = await self.distro.select(args.names)
|
||||
for name in names:
|
||||
|
|
|
|||
|
|
@ -1,6 +1,6 @@
|
|||
from __future__ import annotations
|
||||
|
||||
from typing import TYPE_CHECKING
|
||||
from typing import TYPE_CHECKING, override
|
||||
|
||||
from .Cmd import Cmd, Parent
|
||||
|
||||
|
|
@ -16,8 +16,10 @@ class CmdRebootRequired(Cmd): # export
|
|||
help = 'Check whether the machine needs rebooting'
|
||||
)
|
||||
|
||||
@override
|
||||
def add_arguments(self, parser: ArgumentParser) -> None:
|
||||
super().add_arguments(parser)
|
||||
|
||||
@override
|
||||
async def _run(self, args: Namespace) -> None:
|
||||
await self.distro.reboot_required()
|
||||
|
|
|
|||
|
|
@ -1,6 +1,6 @@
|
|||
from __future__ import annotations
|
||||
|
||||
from typing import TYPE_CHECKING
|
||||
from typing import TYPE_CHECKING, override
|
||||
|
||||
from .Cmd import Cmd, Parent
|
||||
|
||||
|
|
@ -16,8 +16,10 @@ class CmdRefresh(Cmd): # export
|
|||
help = "Refresh the distribution's notion of available packages",
|
||||
)
|
||||
|
||||
@override
|
||||
def add_arguments(self, parser: ArgumentParser) -> None:
|
||||
super().add_arguments(parser)
|
||||
|
||||
@override
|
||||
async def _run(self, args: Namespace) -> None:
|
||||
return await self.distro.ref()
|
||||
|
|
|
|||
|
|
@ -1,6 +1,6 @@
|
|||
from __future__ import annotations
|
||||
|
||||
from typing import TYPE_CHECKING
|
||||
from typing import TYPE_CHECKING, override
|
||||
|
||||
from ...lib.PackageFilter import PackageFilterString
|
||||
from .Cmd import Cmd, Parent
|
||||
|
|
@ -13,10 +13,12 @@ class CmdSelect(Cmd): # export
|
|||
def __init__(self, parent: Parent) -> None:
|
||||
super().__init__(parent, 'select', help = 'Select packages by filter')
|
||||
|
||||
@override
|
||||
def add_arguments(self, parser: ArgumentParser) -> None:
|
||||
super().add_arguments(parser)
|
||||
parser.add_argument('filter', help = 'Package filter string')
|
||||
|
||||
@override
|
||||
async def _run(self, args: Namespace) -> None:
|
||||
filter = PackageFilterString(args.filter) if args.filter else None
|
||||
for p in await self.distro.select(filter = filter):
|
||||
|
|
|
|||
|
|
@ -1,6 +1,6 @@
|
|||
from __future__ import annotations
|
||||
|
||||
from typing import TYPE_CHECKING
|
||||
from typing import TYPE_CHECKING, override
|
||||
|
||||
from .Cmd import Cmd, Parent
|
||||
|
||||
|
|
@ -12,6 +12,7 @@ class NamedPkgsCmd(Cmd): # export
|
|||
def __init__(self, parent: Parent, name: str, help: str) -> None:
|
||||
super().__init__(parent, name, help)
|
||||
|
||||
@override
|
||||
def add_arguments(self, parser: ArgumentParser) -> None:
|
||||
super().add_arguments(parser)
|
||||
parser.add_argument('names', nargs = '*', help = 'Package names')
|
||||
|
|
|
|||
|
|
@ -1,6 +1,6 @@
|
|||
from __future__ import annotations
|
||||
|
||||
from typing import TYPE_CHECKING
|
||||
from typing import TYPE_CHECKING, override
|
||||
|
||||
from ...lib.Distro import Distro
|
||||
from .Cmd import Cmd, Parent
|
||||
|
|
@ -15,6 +15,7 @@ class CmdInfo(Cmd): # export
|
|||
parent, 'info', help = 'Retrieve information about target platform'
|
||||
)
|
||||
|
||||
@override
|
||||
def add_arguments(self, parser: ArgumentParser) -> None:
|
||||
super().add_arguments(parser)
|
||||
parser.add_argument(
|
||||
|
|
@ -23,5 +24,6 @@ class CmdInfo(Cmd): # export
|
|||
help = f'Format string, expanding macros {", ".join(Distro.macros())}',
|
||||
)
|
||||
|
||||
@override
|
||||
async def _run(self, args: Namespace) -> None:
|
||||
print(self.app.distro.expand_macros(args.format))
|
||||
|
|
|
|||
|
|
@ -1,6 +1,6 @@
|
|||
from __future__ import annotations
|
||||
|
||||
from typing import TYPE_CHECKING
|
||||
from typing import override, TYPE_CHECKING
|
||||
|
||||
from ...CmdBase import CmdBase as Base
|
||||
from ..CmdPosix import CmdPosix as Parent
|
||||
|
|
@ -13,6 +13,7 @@ class Cmd(Base): # export
|
|||
def __init__(self, parent: Parent, name: str, help: str) -> None:
|
||||
super().__init__(parent, name, help)
|
||||
|
||||
@override
|
||||
def add_arguments(self, parser: ArgumentParser) -> None:
|
||||
super().add_arguments(parser)
|
||||
|
||||
|
|
|
|||
|
|
@ -1,6 +1,6 @@
|
|||
from __future__ import annotations
|
||||
|
||||
from typing import TYPE_CHECKING
|
||||
from typing import TYPE_CHECKING, override
|
||||
|
||||
from ...lib.util import copy
|
||||
from .Cmd import Cmd, Parent
|
||||
|
|
@ -13,6 +13,7 @@ class CmdCopy(Cmd): # export
|
|||
def __init__(self, parent: Parent) -> None:
|
||||
super().__init__(parent, 'copy', help = 'Copy files')
|
||||
|
||||
@override
|
||||
def add_arguments(self, parser: ArgumentParser) -> None:
|
||||
super().add_arguments(parser)
|
||||
parser.add_argument('src', help = 'Source file URI')
|
||||
|
|
@ -33,6 +34,7 @@ class CmdCopy(Cmd): # export
|
|||
help = "Don't expand macros in <src> and <dst>",
|
||||
)
|
||||
|
||||
@override
|
||||
async def _run(self, args: Namespace) -> None:
|
||||
|
||||
def __expand(url: str) -> str:
|
||||
|
|
|
|||
|
|
@ -1,6 +1,6 @@
|
|||
from __future__ import annotations
|
||||
|
||||
from typing import TYPE_CHECKING
|
||||
from typing import TYPE_CHECKING, override
|
||||
|
||||
from .Cmd import Cmd, Parent
|
||||
|
||||
|
|
@ -13,6 +13,7 @@ class CmdTar(Cmd): # export
|
|||
super().__init__(parent, 'tar', help = 'Handle tar archives')
|
||||
self.load_subcommands()
|
||||
|
||||
@override
|
||||
async def _run(self, args):
|
||||
import sys
|
||||
|
||||
|
|
@ -20,5 +21,6 @@ class CmdTar(Cmd): # export
|
|||
self.parser.print_help()
|
||||
sys.exit(1)
|
||||
|
||||
@override
|
||||
def add_arguments(self, parser: ArgumentParser) -> None:
|
||||
super().add_arguments(parser)
|
||||
|
|
|
|||
|
|
@ -1,7 +1,7 @@
|
|||
from __future__ import annotations
|
||||
|
||||
from contextlib import asynccontextmanager
|
||||
from typing import TYPE_CHECKING
|
||||
from typing import override, TYPE_CHECKING
|
||||
|
||||
from ....CmdBase import CmdBase as Base
|
||||
from ....lib.FileContext import FileContext
|
||||
|
|
@ -27,6 +27,7 @@ class Cmd(Base): # export
|
|||
)
|
||||
yield ret
|
||||
|
||||
@override
|
||||
def add_arguments(self, parser: ArgumentParser) -> None:
|
||||
super().add_arguments(parser)
|
||||
parser.add_argument(
|
||||
|
|
|
|||
|
|
@ -2,7 +2,7 @@ from __future__ import annotations
|
|||
|
||||
from ....lib.log import DEBUG, log
|
||||
from .Cmd import Cmd, Parent
|
||||
from typing import TYPE_CHECKING
|
||||
from typing import TYPE_CHECKING, override
|
||||
|
||||
if TYPE_CHECKING:
|
||||
from argparse import ArgumentParser, Namespace
|
||||
|
|
@ -12,10 +12,12 @@ class CmdExtract(Cmd): # export
|
|||
def __init__(self, parent: Parent) -> None:
|
||||
super().__init__(parent, 'x', help = 'Extract a tar archive')
|
||||
|
||||
@override
|
||||
def add_arguments(self, parser: ArgumentParser) -> None:
|
||||
super().add_arguments(parser)
|
||||
parser.add_argument('dst', help = 'Destination root URI')
|
||||
|
||||
@override
|
||||
async def _run(self, args: Namespace) -> None:
|
||||
async with self.ctx(dst = args.dst) as ctx:
|
||||
paths = await ctx.extract(ctx.dst.root)
|
||||
|
|
|
|||
|
|
@ -2,7 +2,7 @@ from __future__ import annotations
|
|||
|
||||
import re
|
||||
|
||||
from typing import TYPE_CHECKING
|
||||
from typing import TYPE_CHECKING, override
|
||||
|
||||
from .Cmd import Cmd, Parent
|
||||
from .lib.pkg_relations import VersionSyntax
|
||||
|
|
@ -48,6 +48,7 @@ class BaseCmdPkgRelations(Cmd):
|
|||
super().__init__(parent, 'pkg-' + relation, help = help)
|
||||
self.relation = relation
|
||||
|
||||
@override
|
||||
def add_arguments(self, parser: ArgumentParser) -> None:
|
||||
super().add_arguments(parser)
|
||||
parser.add_argument(
|
||||
|
|
@ -141,6 +142,7 @@ class BaseCmdPkgRelations(Cmd):
|
|||
help = 'Put double quotes around each listed dependency',
|
||||
)
|
||||
|
||||
@override
|
||||
async def _run(self, args: Namespace) -> None:
|
||||
return self.print_pkg_relations(self.relation, args)
|
||||
|
||||
|
|
|
|||
|
|
@ -1,6 +1,6 @@
|
|||
from __future__ import annotations
|
||||
|
||||
from typing import TYPE_CHECKING
|
||||
from typing import override, TYPE_CHECKING
|
||||
|
||||
from ...CmdBase import CmdBase as Base
|
||||
from ..CmdProjects import CmdProjects as Parent
|
||||
|
|
@ -13,6 +13,7 @@ class Cmd(Base): # export
|
|||
def __init__(self, parent: Parent, name: str, help: str) -> None:
|
||||
super().__init__(parent, name, help)
|
||||
|
||||
@override
|
||||
def add_arguments(self, parser: ArgumentParser) -> None:
|
||||
super().add_arguments(parser)
|
||||
|
||||
|
|
|
|||
|
|
@ -5,7 +5,7 @@ import os
|
|||
import re
|
||||
|
||||
from functools import lru_cache
|
||||
from typing import TYPE_CHECKING
|
||||
from typing import TYPE_CHECKING, override
|
||||
|
||||
from ...App import Scope
|
||||
from ...lib.log import DEBUG, ERR, NOTICE, log
|
||||
|
|
@ -22,6 +22,7 @@ class CmdBuild(Cmd): # export
|
|||
def __init__(self, parent: Parent) -> None:
|
||||
super().__init__(parent, 'build', help = 'janware software project build tool')
|
||||
|
||||
@override
|
||||
def add_arguments(self, parser: ArgumentParser) -> None:
|
||||
super().add_arguments(parser)
|
||||
parser.add_argument(
|
||||
|
|
@ -90,6 +91,7 @@ class CmdBuild(Cmd): # export
|
|||
help = 'Modules to be built',
|
||||
)
|
||||
|
||||
@override
|
||||
async def _run(self, args: Namespace) -> None:
|
||||
|
||||
@lru_cache(maxsize = None)
|
||||
|
|
|
|||
|
|
@ -1,6 +1,6 @@
|
|||
from __future__ import annotations
|
||||
|
||||
from typing import TYPE_CHECKING
|
||||
from typing import TYPE_CHECKING, override
|
||||
|
||||
from ...lib.base import InputMode
|
||||
from ...lib.log import NOTICE, log
|
||||
|
|
@ -20,6 +20,7 @@ class CmdCanonicalizeRemotes(Cmd): # export
|
|||
parent, 'canonicalize-remotes', help = 'Streamline janware Git remotes'
|
||||
)
|
||||
|
||||
@override
|
||||
def add_arguments(self, parser: ArgumentParser) -> None:
|
||||
super().add_arguments(parser)
|
||||
parser.add_argument(
|
||||
|
|
@ -30,6 +31,7 @@ class CmdCanonicalizeRemotes(Cmd): # export
|
|||
help = 'Only log what would be done',
|
||||
)
|
||||
|
||||
@override
|
||||
async def _run(self, args: Namespace) -> None:
|
||||
|
||||
async def git(cmd: list[str], ro = False, throw = True) -> Result:
|
||||
|
|
|
|||
|
|
@ -2,7 +2,7 @@ from __future__ import annotations
|
|||
|
||||
from ...App import Scope
|
||||
from .Cmd import Cmd, Parent
|
||||
from typing import TYPE_CHECKING
|
||||
from typing import TYPE_CHECKING, override
|
||||
|
||||
if TYPE_CHECKING:
|
||||
from argparse import ArgumentParser, Namespace
|
||||
|
|
@ -12,10 +12,12 @@ class CmdCflags(Cmd): # export
|
|||
def __init__(self, parent: Parent) -> None:
|
||||
super().__init__(parent, 'cflags', help = 'cflags')
|
||||
|
||||
@override
|
||||
def add_arguments(self, parser: ArgumentParser) -> None:
|
||||
super().add_arguments(parser)
|
||||
parser.add_argument('module', nargs = '*', help = 'Modules')
|
||||
|
||||
@override
|
||||
async def _run(self, args: Namespace) -> None:
|
||||
deps = self.app.get_project_refs(
|
||||
args.module,
|
||||
|
|
|
|||
|
|
@ -1,7 +1,7 @@
|
|||
from __future__ import annotations
|
||||
|
||||
from .Cmd import Cmd, Parent
|
||||
from typing import TYPE_CHECKING
|
||||
from typing import TYPE_CHECKING, override
|
||||
|
||||
if TYPE_CHECKING:
|
||||
from argparse import ArgumentParser
|
||||
|
|
@ -16,6 +16,7 @@ class CmdCheck(Cmd): # export
|
|||
)
|
||||
self.load_subcommands()
|
||||
|
||||
@override
|
||||
async def _run(self, args):
|
||||
import sys
|
||||
|
||||
|
|
@ -23,5 +24,6 @@ class CmdCheck(Cmd): # export
|
|||
self.parser.print_help()
|
||||
sys.exit(1)
|
||||
|
||||
@override
|
||||
def add_arguments(self, parser: ArgumentParser) -> None:
|
||||
super().add_arguments(parser)
|
||||
|
|
|
|||
|
|
@ -1,7 +1,7 @@
|
|||
from __future__ import annotations
|
||||
|
||||
from .Cmd import Cmd, Parent
|
||||
from typing import TYPE_CHECKING
|
||||
from typing import TYPE_CHECKING, override
|
||||
|
||||
if TYPE_CHECKING:
|
||||
from argparse import ArgumentParser, Namespace
|
||||
|
|
@ -11,9 +11,11 @@ class CmdCommands(Cmd): # export
|
|||
def __init__(self, parent: Parent) -> None:
|
||||
super().__init__(parent, 'commands', help = 'List available commands')
|
||||
|
||||
@override
|
||||
def add_arguments(self, parser: ArgumentParser) -> None:
|
||||
super().add_arguments(parser)
|
||||
|
||||
@override
|
||||
async def _run(self, args: Namespace) -> None:
|
||||
import glob
|
||||
import os
|
||||
|
|
|
|||
|
|
@ -1,5 +1,6 @@
|
|||
from argparse import ArgumentParser, ArgumentTypeError, Namespace
|
||||
from enum import Enum, auto
|
||||
from typing import override
|
||||
|
||||
from ...lib.log import WARNING, log
|
||||
from .Cmd import Cmd, Parent
|
||||
|
|
@ -93,6 +94,7 @@ class CmdCreateFile(Cmd): # export
|
|||
parent, 'create-file', help = 'Generate a file from project metadata'
|
||||
)
|
||||
|
||||
@override
|
||||
def add_arguments(self, parser: ArgumentParser) -> None:
|
||||
super().add_arguments(parser)
|
||||
parser.add_argument(
|
||||
|
|
@ -124,6 +126,7 @@ class CmdCreateFile(Cmd): # export
|
|||
)
|
||||
parser.add_argument('module', help = 'The module to generate the file for')
|
||||
|
||||
@override
|
||||
async def _run(self, args: Namespace) -> None:
|
||||
method = getattr(self, 'render_' + args.format, None)
|
||||
if method is None: # Should be prevented by choices=[] but keeps linter happy
|
||||
|
|
|
|||
|
|
@ -1,6 +1,6 @@
|
|||
from __future__ import annotations
|
||||
|
||||
from typing import TYPE_CHECKING
|
||||
from typing import TYPE_CHECKING, override
|
||||
|
||||
from .Cmd import Cmd, Parent
|
||||
from .lib.templates import tmpl_render
|
||||
|
|
@ -32,6 +32,7 @@ class CmdCreatePkgConfig(Cmd): # export
|
|||
string = re.sub(patt, replacement, string)
|
||||
return string
|
||||
|
||||
@override
|
||||
def add_arguments(self, parser: ArgumentParser) -> None:
|
||||
super().add_arguments(parser)
|
||||
parser.add_argument('-F', '--project-descr-file', default = None)
|
||||
|
|
@ -46,6 +47,7 @@ class CmdCreatePkgConfig(Cmd): # export
|
|||
parser.add_argument('-R', '--requires-build', default = None)
|
||||
parser.add_argument('-V', '--variables', nargs = '*')
|
||||
|
||||
@override
|
||||
async def _run(self, args: Namespace) -> None:
|
||||
project_conf_var_keys = [
|
||||
'description',
|
||||
|
|
|
|||
|
|
@ -2,7 +2,7 @@ from __future__ import annotations
|
|||
|
||||
from ...App import Scope
|
||||
from .Cmd import Cmd, Parent
|
||||
from typing import TYPE_CHECKING
|
||||
from typing import TYPE_CHECKING, override
|
||||
|
||||
if TYPE_CHECKING:
|
||||
from argparse import ArgumentParser, Namespace
|
||||
|
|
@ -12,6 +12,7 @@ class CmdExepath(Cmd): # export
|
|||
def __init__(self, parent: Parent) -> None:
|
||||
super().__init__(parent, 'exepath', help = 'exepath')
|
||||
|
||||
@override
|
||||
def add_arguments(self, parser: ArgumentParser) -> None:
|
||||
super().add_arguments(parser)
|
||||
parser.add_argument(
|
||||
|
|
@ -23,6 +24,7 @@ class CmdExepath(Cmd): # export
|
|||
)
|
||||
parser.add_argument('module', nargs = '*', help = 'Modules')
|
||||
|
||||
@override
|
||||
async def _run(self, args: Namespace) -> None:
|
||||
deps = self.app.get_project_refs(
|
||||
args.module,
|
||||
|
|
|
|||
|
|
@ -5,7 +5,7 @@ import re
|
|||
from ...lib.log import DEBUG, log
|
||||
from ...lib.Uri import Uri
|
||||
from .Cmd import Cmd, Parent
|
||||
from typing import TYPE_CHECKING
|
||||
from typing import TYPE_CHECKING, override
|
||||
|
||||
if TYPE_CHECKING:
|
||||
from argparse import ArgumentParser, Namespace
|
||||
|
|
@ -19,6 +19,7 @@ class CmdGetAuthInfo(Cmd): # export
|
|||
help = 'Try to retrieve authentication information from the source tree',
|
||||
)
|
||||
|
||||
@override
|
||||
def add_arguments(self, parser: ArgumentParser) -> None:
|
||||
super().add_arguments(parser)
|
||||
parser.add_argument(
|
||||
|
|
@ -52,6 +53,7 @@ class CmdGetAuthInfo(Cmd): # export
|
|||
help = 'Show remote base URL',
|
||||
)
|
||||
|
||||
@override
|
||||
async def _run(self, args: Namespace) -> None:
|
||||
keys = ['username', 'password']
|
||||
|
||||
|
|
|
|||
|
|
@ -1,7 +1,7 @@
|
|||
from __future__ import annotations
|
||||
|
||||
from .Cmd import Cmd, Parent
|
||||
from typing import TYPE_CHECKING
|
||||
from typing import TYPE_CHECKING, override
|
||||
|
||||
if TYPE_CHECKING:
|
||||
from argparse import ArgumentParser, Namespace
|
||||
|
|
@ -11,6 +11,7 @@ class CmdGetval(Cmd): # export
|
|||
def __init__(self, parent: Parent) -> None:
|
||||
super().__init__(parent, 'getval', help = 'Get value from project config')
|
||||
|
||||
@override
|
||||
def add_arguments(self, parser: ArgumentParser) -> None:
|
||||
super().add_arguments(parser)
|
||||
parser.add_argument(
|
||||
|
|
@ -21,6 +22,7 @@ class CmdGetval(Cmd): # export
|
|||
parser.add_argument('section', default = '', help = 'Config section')
|
||||
parser.add_argument('key', default = '', help = 'Config key')
|
||||
|
||||
@override
|
||||
async def _run(self, args: Namespace) -> None:
|
||||
project = args.project
|
||||
if project is None:
|
||||
|
|
|
|||
|
|
@ -1,7 +1,7 @@
|
|||
from __future__ import annotations
|
||||
|
||||
from .Cmd import Cmd, Parent
|
||||
from typing import TYPE_CHECKING
|
||||
from typing import TYPE_CHECKING, override
|
||||
|
||||
if TYPE_CHECKING:
|
||||
from argparse import ArgumentParser, Namespace
|
||||
|
|
@ -15,10 +15,12 @@ class CmdHtdocsDir(Cmd): # export
|
|||
help = 'Print source directory containing document root of a given module',
|
||||
)
|
||||
|
||||
@override
|
||||
def add_arguments(self, parser: ArgumentParser) -> None:
|
||||
super().add_arguments(parser)
|
||||
parser.add_argument('module', nargs = '*', help = 'Modules')
|
||||
|
||||
@override
|
||||
async def _run(self, args: Namespace) -> None:
|
||||
r = []
|
||||
for m in args.module:
|
||||
|
|
|
|||
|
|
@ -2,7 +2,7 @@ from __future__ import annotations
|
|||
|
||||
from ...App import Scope
|
||||
from .Cmd import Cmd, Parent
|
||||
from typing import TYPE_CHECKING
|
||||
from typing import TYPE_CHECKING, override
|
||||
|
||||
if TYPE_CHECKING:
|
||||
from argparse import ArgumentParser, Namespace
|
||||
|
|
@ -12,6 +12,7 @@ class CmdLdflags(Cmd): # export
|
|||
def __init__(self, parent: Parent) -> None:
|
||||
super().__init__(parent, 'ldflags', help = 'ldflags')
|
||||
|
||||
@override
|
||||
def add_arguments(self, parser: ArgumentParser) -> None:
|
||||
super().add_arguments(parser)
|
||||
parser.add_argument('module', nargs = '*', help = 'Modules')
|
||||
|
|
@ -56,6 +57,7 @@ class CmdLdflags(Cmd): # export
|
|||
return None
|
||||
return ' '.join(ret)
|
||||
|
||||
@override
|
||||
async def _run(self, args: Namespace) -> None:
|
||||
deps = self.app.get_project_refs(
|
||||
args.module,
|
||||
|
|
|
|||
|
|
@ -2,7 +2,7 @@ from __future__ import annotations
|
|||
|
||||
from ...App import Scope
|
||||
from .Cmd import Cmd, Parent
|
||||
from typing import TYPE_CHECKING
|
||||
from typing import TYPE_CHECKING, override
|
||||
|
||||
if TYPE_CHECKING:
|
||||
from argparse import ArgumentParser, Namespace
|
||||
|
|
@ -12,6 +12,7 @@ class CmdLdlibpath(Cmd): # export
|
|||
def __init__(self, parent: Parent) -> None:
|
||||
super().__init__(parent, 'ldlibpath', help = 'ldlibpath')
|
||||
|
||||
@override
|
||||
def add_arguments(self, parser: ArgumentParser) -> None:
|
||||
super().add_arguments(parser)
|
||||
parser.add_argument(
|
||||
|
|
@ -23,6 +24,7 @@ class CmdLdlibpath(Cmd): # export
|
|||
)
|
||||
parser.add_argument('module', nargs = '*', help = 'Modules')
|
||||
|
||||
@override
|
||||
async def _run(self, args: Namespace) -> None:
|
||||
deps = self.app.get_project_refs(
|
||||
args.module,
|
||||
|
|
|
|||
|
|
@ -1,7 +1,7 @@
|
|||
from __future__ import annotations
|
||||
|
||||
from .Cmd import Cmd, Parent
|
||||
from typing import TYPE_CHECKING
|
||||
from typing import TYPE_CHECKING, override
|
||||
|
||||
if TYPE_CHECKING:
|
||||
from argparse import ArgumentParser, Namespace
|
||||
|
|
@ -11,9 +11,11 @@ class CmdLibname(Cmd): # export
|
|||
def __init__(self, parent: Parent) -> None:
|
||||
super().__init__(parent, 'libname', help = 'libname')
|
||||
|
||||
@override
|
||||
def add_arguments(self, parser: ArgumentParser) -> None:
|
||||
super().add_arguments(parser)
|
||||
parser.add_argument('module', nargs = '*', help = 'Modules')
|
||||
|
||||
@override
|
||||
async def _run(self, args: Namespace) -> None:
|
||||
print(self.app.get_libname(args.module))
|
||||
|
|
|
|||
|
|
@ -6,7 +6,7 @@ from ...lib.log import DEBUG, log
|
|||
from ...lib.Uri import Uri
|
||||
from ...lib.util import get_password, get_username, run_curl_into
|
||||
from .Cmd import Cmd, Parent
|
||||
from typing import TYPE_CHECKING
|
||||
from typing import TYPE_CHECKING, override
|
||||
|
||||
if TYPE_CHECKING:
|
||||
from argparse import ArgumentParser, Namespace
|
||||
|
|
@ -18,6 +18,7 @@ class CmdListRepos(Cmd): # export
|
|||
parent, 'list-repos', help = 'Query a remote GIT server for repositories'
|
||||
)
|
||||
|
||||
@override
|
||||
def add_arguments(self, parser: ArgumentParser) -> None:
|
||||
super().add_arguments(parser)
|
||||
parser.add_argument(
|
||||
|
|
@ -43,6 +44,7 @@ class CmdListRepos(Cmd): # export
|
|||
'--from-owner', help = "List from-owner's projects", default = 'janware'
|
||||
)
|
||||
|
||||
@override
|
||||
async def _run(self, args: Namespace) -> None:
|
||||
|
||||
base_url = Uri(args.base_url)
|
||||
|
|
|
|||
|
|
@ -3,7 +3,7 @@ import re
|
|||
|
||||
from ...lib.log import DEBUG, log
|
||||
from .Cmd import Cmd, Parent
|
||||
from typing import TYPE_CHECKING
|
||||
from typing import TYPE_CHECKING, override
|
||||
|
||||
if TYPE_CHECKING:
|
||||
from argparse import ArgumentParser, Namespace
|
||||
|
|
@ -13,6 +13,7 @@ class CmdModules(Cmd): # export
|
|||
def __init__(self, parent: Parent) -> None:
|
||||
super().__init__(parent, 'modules', help = 'Query existing janware packages')
|
||||
|
||||
@override
|
||||
def add_arguments(self, parser: ArgumentParser) -> None:
|
||||
super().add_arguments(parser)
|
||||
parser.add_argument(
|
||||
|
|
@ -24,6 +25,7 @@ class CmdModules(Cmd): # export
|
|||
'Key-value pairs, seperated by commas, to be searched for in project.conf',
|
||||
)
|
||||
|
||||
@override
|
||||
async def _run(self, args: Namespace) -> None:
|
||||
import pathlib
|
||||
|
||||
|
|
|
|||
|
|
@ -2,7 +2,7 @@ from __future__ import annotations
|
|||
|
||||
from ...App import Scope
|
||||
from .Cmd import Cmd, Parent
|
||||
from typing import TYPE_CHECKING
|
||||
from typing import TYPE_CHECKING, override
|
||||
|
||||
if TYPE_CHECKING:
|
||||
from argparse import ArgumentParser, Namespace
|
||||
|
|
@ -12,10 +12,12 @@ class CmdPath(Cmd): # export
|
|||
def __init__(self, parent: Parent) -> None:
|
||||
super().__init__(parent, 'path', help = 'path')
|
||||
|
||||
@override
|
||||
def add_arguments(self, parser: ArgumentParser) -> None:
|
||||
super().add_arguments(parser)
|
||||
parser.add_argument('module', nargs = '*', help = 'Modules')
|
||||
|
||||
@override
|
||||
async def _run(self, args: Namespace) -> None:
|
||||
deps = self.app.get_project_refs(
|
||||
args.module,
|
||||
|
|
|
|||
|
|
@ -2,7 +2,7 @@ from __future__ import annotations
|
|||
|
||||
from ...lib.log import WARNING, log
|
||||
from .Cmd import Cmd, Parent
|
||||
from typing import TYPE_CHECKING
|
||||
from typing import TYPE_CHECKING, override
|
||||
|
||||
if TYPE_CHECKING:
|
||||
from argparse import ArgumentParser, Namespace
|
||||
|
|
@ -14,10 +14,12 @@ class CmdProjDir(Cmd): # export
|
|||
parent, 'proj-dir', help = 'Print directory of a given package'
|
||||
)
|
||||
|
||||
@override
|
||||
def add_arguments(self, parser: ArgumentParser) -> None:
|
||||
super().add_arguments(parser)
|
||||
parser.add_argument('module', nargs = '*', help = 'Modules')
|
||||
|
||||
@override
|
||||
async def _run(self, args: Namespace) -> None:
|
||||
out = []
|
||||
for m in args.module:
|
||||
|
|
|
|||
|
|
@ -1,6 +1,6 @@
|
|||
from __future__ import annotations
|
||||
|
||||
from typing import TYPE_CHECKING
|
||||
from typing import TYPE_CHECKING, override
|
||||
|
||||
from ...App import Scope
|
||||
from .Cmd import Cmd, Parent
|
||||
|
|
@ -15,6 +15,7 @@ class CmdPythonpath(Cmd): # export
|
|||
parent, 'pythonpath', help = 'Generate PYTHONPATH for given modules'
|
||||
)
|
||||
|
||||
@override
|
||||
def add_arguments(self, parser: ArgumentParser) -> None:
|
||||
super().add_arguments(parser)
|
||||
parser.add_argument(
|
||||
|
|
@ -38,6 +39,7 @@ class CmdPythonpath(Cmd): # export
|
|||
)
|
||||
parser.add_argument('module', help = 'Modules', nargs = '*')
|
||||
|
||||
@override
|
||||
async def _run(self, args: Namespace) -> None:
|
||||
deps = self.app.get_project_refs(
|
||||
args.module,
|
||||
|
|
|
|||
|
|
@ -3,7 +3,7 @@ from __future__ import annotations
|
|||
from ...App import Scope
|
||||
from ...lib.log import DEBUG, log
|
||||
from .Cmd import Cmd, Parent
|
||||
from typing import TYPE_CHECKING
|
||||
from typing import TYPE_CHECKING, override
|
||||
|
||||
if TYPE_CHECKING:
|
||||
from argparse import ArgumentParser, Namespace
|
||||
|
|
@ -18,6 +18,7 @@ class CmdRequiredOsPkg(Cmd): # export
|
|||
help = 'List distribution packages required for a package',
|
||||
)
|
||||
|
||||
@override
|
||||
def add_arguments(self, parser: ArgumentParser) -> None:
|
||||
super().add_arguments(parser)
|
||||
parser.add_argument('flavours', help = 'Dependency flavours', default = 'build')
|
||||
|
|
@ -35,6 +36,7 @@ class CmdRequiredOsPkg(Cmd): # export
|
|||
help = 'Put double quotes around each listed dependency',
|
||||
)
|
||||
|
||||
@override
|
||||
async def _run(self, args: Namespace) -> None:
|
||||
modules = args.modules
|
||||
flavours = set(args.flavours.split(','))
|
||||
|
|
|
|||
|
|
@ -1,7 +1,7 @@
|
|||
from __future__ import annotations
|
||||
|
||||
from .Cmd import Cmd, Parent
|
||||
from typing import TYPE_CHECKING
|
||||
from typing import TYPE_CHECKING, override
|
||||
|
||||
if TYPE_CHECKING:
|
||||
from argparse import ArgumentParser, Namespace
|
||||
|
|
@ -13,10 +13,12 @@ class CmdSummary(Cmd): # export
|
|||
parent, 'summary', help = 'Print summary description of given modules'
|
||||
)
|
||||
|
||||
@override
|
||||
def add_arguments(self, parser: ArgumentParser) -> None:
|
||||
super().add_arguments(parser)
|
||||
parser.add_argument('module', nargs = '*', help = 'Modules')
|
||||
|
||||
@override
|
||||
async def _run(self, args: Namespace) -> None:
|
||||
r = []
|
||||
for m in args.module:
|
||||
|
|
|
|||
|
|
@ -1,7 +1,7 @@
|
|||
from __future__ import annotations
|
||||
|
||||
from .Cmd import Cmd, Parent
|
||||
from typing import TYPE_CHECKING
|
||||
from typing import TYPE_CHECKING, override
|
||||
|
||||
if TYPE_CHECKING:
|
||||
from argparse import ArgumentParser, Namespace
|
||||
|
|
@ -11,9 +11,11 @@ class CmdTest(Cmd): # export
|
|||
def __init__(self, parent: Parent) -> None:
|
||||
super().__init__(parent, 'test', help = 'Test')
|
||||
|
||||
@override
|
||||
def add_arguments(self, parser: ArgumentParser) -> None:
|
||||
super().add_arguments(parser)
|
||||
parser.add_argument('blah', default = '', help = 'The blah argument')
|
||||
|
||||
@override
|
||||
async def _run(self, args: Namespace) -> None:
|
||||
print('blah = ' + args.blah)
|
||||
|
|
|
|||
|
|
@ -1,7 +1,7 @@
|
|||
from __future__ import annotations
|
||||
|
||||
from .Cmd import Cmd, Parent
|
||||
from typing import TYPE_CHECKING
|
||||
from typing import TYPE_CHECKING, override
|
||||
|
||||
if TYPE_CHECKING:
|
||||
from argparse import ArgumentParser, Namespace
|
||||
|
|
@ -15,10 +15,12 @@ class CmdTmplDir(Cmd): # export
|
|||
help = 'Print directory containing templates of a given module',
|
||||
)
|
||||
|
||||
@override
|
||||
def add_arguments(self, parser: ArgumentParser) -> None:
|
||||
super().add_arguments(parser)
|
||||
parser.add_argument('module', nargs = '*', help = 'Modules')
|
||||
|
||||
@override
|
||||
async def _run(self, args: Namespace) -> None:
|
||||
r = []
|
||||
for m in args.module:
|
||||
|
|
|
|||
|
|
@ -1,6 +1,6 @@
|
|||
from __future__ import annotations
|
||||
|
||||
from typing import TYPE_CHECKING
|
||||
from typing import override, TYPE_CHECKING
|
||||
|
||||
from ....CmdBase import CmdBase as Base
|
||||
from ..CmdCheck import CmdCheck as Parent
|
||||
|
|
@ -13,6 +13,7 @@ class Cmd(Base): # export
|
|||
def __init__(self, parent: Parent, name: str, help: str) -> None:
|
||||
super().__init__(parent, name, help)
|
||||
|
||||
@override
|
||||
def add_arguments(self, parser: ArgumentParser) -> None:
|
||||
super().add_arguments(parser)
|
||||
|
||||
|
|
|
|||
|
|
@ -1,6 +1,6 @@
|
|||
from __future__ import annotations
|
||||
|
||||
from typing import TYPE_CHECKING
|
||||
from typing import TYPE_CHECKING, override
|
||||
|
||||
from ....lib.log import NOTICE, log
|
||||
from .Cmd import Cmd, Parent
|
||||
|
|
@ -17,11 +17,13 @@ class CmdDep(Cmd): # export
|
|||
help = 'Check for circular dependencies between given modules',
|
||||
)
|
||||
|
||||
@override
|
||||
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')
|
||||
|
||||
@override
|
||||
async def _run(self, args: Namespace) -> None:
|
||||
cycle = self.app.find_circular_deps(args.module, args.flavour)
|
||||
if cycle:
|
||||
|
|
|
|||
|
|
@ -1,7 +1,7 @@
|
|||
from __future__ import annotations
|
||||
|
||||
from functools import cached_property
|
||||
from typing import TYPE_CHECKING
|
||||
from typing import override, TYPE_CHECKING
|
||||
|
||||
from ...CmdBase import CmdBase as Base
|
||||
from ..CmdSecrets import CmdSecrets as Parent
|
||||
|
|
@ -46,6 +46,7 @@ class Cmd(Base): # export
|
|||
def __init__(self, parent: Parent, name: str, help: str) -> None:
|
||||
super().__init__(parent, name, help)
|
||||
|
||||
@override
|
||||
def add_arguments(self, parser: ArgumentParser) -> None:
|
||||
super().add_arguments(parser)
|
||||
parser.add_argument('packages', nargs = '*', help = 'Package names')
|
||||
|
|
|
|||
|
|
@ -1,6 +1,6 @@
|
|||
from __future__ import annotations
|
||||
|
||||
from typing import TYPE_CHECKING
|
||||
from typing import TYPE_CHECKING, override
|
||||
|
||||
from .Cmd import Cmd, Parent
|
||||
from .lib.base import Attrs
|
||||
|
|
@ -15,10 +15,12 @@ class CmdCompileTemplates(Cmd): # export
|
|||
parent, 'compile-templates', help = 'Compile package template files'
|
||||
)
|
||||
|
||||
@override
|
||||
async def _run(self, args: Namespace) -> None:
|
||||
attrs = Attrs(args.mode, args.owner, args.group, None)
|
||||
await self._compile_template_files(args.packages, attrs)
|
||||
|
||||
@override
|
||||
def add_arguments(self, parser: ArgumentParser) -> None:
|
||||
super().add_arguments(parser)
|
||||
parser.add_argument(
|
||||
|
|
|
|||
|
|
@ -1,6 +1,6 @@
|
|||
from __future__ import annotations
|
||||
|
||||
from typing import TYPE_CHECKING
|
||||
from typing import TYPE_CHECKING, override
|
||||
|
||||
from .Cmd import Cmd, Parent
|
||||
|
||||
|
|
@ -18,6 +18,7 @@ class CmdInstall(Cmd): # export
|
|||
),
|
||||
)
|
||||
|
||||
@override
|
||||
def add_arguments(self, parser: ArgumentParser) -> None:
|
||||
parser.add_argument('src', help = 'URI of secret source')
|
||||
parser.add_argument(
|
||||
|
|
@ -28,6 +29,7 @@ class CmdInstall(Cmd): # export
|
|||
)
|
||||
super().add_arguments(parser)
|
||||
|
||||
@override
|
||||
async def _run(self, args: Namespace) -> None:
|
||||
packages = [] if args.packages == ['all'] else args.packages
|
||||
await self.ctx.install(args.src, packages, args.only_missing)
|
||||
|
|
|
|||
|
|
@ -1,6 +1,6 @@
|
|||
from __future__ import annotations
|
||||
|
||||
from typing import TYPE_CHECKING
|
||||
from typing import TYPE_CHECKING, override
|
||||
|
||||
from .Cmd import Cmd, Parent
|
||||
|
||||
|
|
@ -16,6 +16,7 @@ class CmdListCompilationOutput(Cmd): # export
|
|||
help = 'List package compilation output files',
|
||||
)
|
||||
|
||||
@override
|
||||
def add_arguments(self, parser: ArgumentParser) -> None:
|
||||
super().add_arguments(parser)
|
||||
parser.add_argument(
|
||||
|
|
@ -25,6 +26,7 @@ class CmdListCompilationOutput(Cmd): # export
|
|||
help = 'Show all output targets, including non-existent files',
|
||||
)
|
||||
|
||||
@override
|
||||
async def _run(self, args: Namespace) -> None:
|
||||
print(
|
||||
'\n'.join(
|
||||
|
|
|
|||
|
|
@ -1,6 +1,6 @@
|
|||
from __future__ import annotations
|
||||
|
||||
from typing import TYPE_CHECKING
|
||||
from typing import TYPE_CHECKING, override
|
||||
|
||||
from .Cmd import Cmd, Parent
|
||||
|
||||
|
|
@ -12,6 +12,7 @@ class CmdListSecrets(Cmd): # export
|
|||
def __init__(self, parent: Parent) -> None:
|
||||
super().__init__(parent, 'list-secrets', help = 'List package secret files')
|
||||
|
||||
@override
|
||||
def add_arguments(self, parser: ArgumentParser) -> None:
|
||||
super().add_arguments(parser)
|
||||
parser.add_argument(
|
||||
|
|
@ -21,6 +22,7 @@ class CmdListSecrets(Cmd): # export
|
|||
help = 'Show all secret paths, including non-existent files',
|
||||
)
|
||||
|
||||
@override
|
||||
async def _run(self, args: Namespace) -> None:
|
||||
print(
|
||||
'\n'.join(
|
||||
|
|
|
|||
|
|
@ -1,6 +1,6 @@
|
|||
from __future__ import annotations
|
||||
|
||||
from typing import TYPE_CHECKING
|
||||
from typing import TYPE_CHECKING, override
|
||||
|
||||
from .Cmd import Cmd, Parent
|
||||
|
||||
|
|
@ -12,5 +12,6 @@ class CmdListTemplates(Cmd): # export
|
|||
def __init__(self, parent: Parent) -> None:
|
||||
super().__init__(parent, 'list-templates', help = 'List package template files')
|
||||
|
||||
@override
|
||||
async def _run(self, args: Namespace) -> None:
|
||||
print('\n'.join(await self._list_template_files(args.packages)))
|
||||
|
|
|
|||
|
|
@ -1,6 +1,6 @@
|
|||
from __future__ import annotations
|
||||
|
||||
from typing import TYPE_CHECKING
|
||||
from typing import TYPE_CHECKING, override
|
||||
|
||||
from .Cmd import Cmd, Parent
|
||||
|
||||
|
|
@ -16,5 +16,6 @@ class CmdRmCompilationOutput(Cmd): # export
|
|||
help = 'Remove package compilation output files',
|
||||
)
|
||||
|
||||
@override
|
||||
async def _run(self, args: Namespace) -> None:
|
||||
await self._remove_compilation_targets(args.packages)
|
||||
|
|
|
|||
Loading…
Reference in a new issue