cmds / lib: Fix more static checker findings

Fix more errors and warnings produced by "make check" as reported by CI and a pyright upgrade.

Signed-off-by: Jan Lindemann <jan@janware.com>
This commit is contained in:
Jan Lindemann 2026-06-01 07:45:22 +02:00
commit 24928c6f5d
Signed by: Jan Lindemann
GPG key ID: 3750640C9E25DD61
16 changed files with 123 additions and 122 deletions

View file

@ -3,13 +3,14 @@ from argparse import ArgumentParser, Namespace
from .Cmd import Cmd, Parent
from .lib.templates import tmpl_render
class CmdCreatePkgConfig(Cmd): # export
def __init__(self, parent: Parent) -> None:
super().__init__(parent,
'create-pkg-config',
help='Generate a pkg-config file for a module')
super().__init__(
parent,
'create-pkg-config',
help = 'Generate a pkg-config file for a module'
)
@staticmethod
def __cleanup_requires(string: str) -> str:
@ -28,17 +29,17 @@ class CmdCreatePkgConfig(Cmd): # export
def add_arguments(self, parser: ArgumentParser) -> None:
super().add_arguments(parser)
parser.add_argument('-F', '--project-descr-file', default=None)
parser.add_argument('-d', '--description', default=None)
parser.add_argument('-n', '--name', default=None)
parser.add_argument('-s', '--summary', default=None)
parser.add_argument('-p', '--prefix', default=None)
parser.add_argument('-v', '--version', default=None)
parser.add_argument('-c', '--cflags', default=None)
parser.add_argument('-l', '--libflags', default=None)
parser.add_argument('-r', '--requires-run', default=None)
parser.add_argument('-R', '--requires-build', default=None)
parser.add_argument('-V', '--variables', nargs='*')
parser.add_argument('-F', '--project-descr-file', default = None)
parser.add_argument('-d', '--description', default = None)
parser.add_argument('-n', '--name', default = None)
parser.add_argument('-s', '--summary', default = None)
parser.add_argument('-p', '--prefix', default = None)
parser.add_argument('-v', '--version', default = None)
parser.add_argument('-c', '--cflags', default = None)
parser.add_argument('-l', '--libflags', default = None)
parser.add_argument('-r', '--requires-run', default = None)
parser.add_argument('-R', '--requires-build', default = None)
parser.add_argument('-V', '--variables', nargs = '*')
async def _run(self, args: Namespace) -> None:
project_conf_var_keys = [
@ -47,7 +48,7 @@ class CmdCreatePkgConfig(Cmd): # export
'requires_run',
'requires_build',
]
merged: dict[str, str|None] = {}
merged: dict[str, str | None] = {}
for key in project_conf_var_keys:
val = getattr(args, key)
if val is not None and args.project_descr_file:

View file

@ -3,7 +3,6 @@ import re
from argparse import ArgumentParser, Namespace
from ...lib.base import Input
from ...lib.log import DEBUG, log
from ...lib.Uri import Uri
from ...lib.util import get_password, get_username, run_curl_into
@ -78,7 +77,7 @@ class CmdListRepos(Cmd): # export
print('\n'.join(result.stdout_str.splitlines()))
return
case 'https':
from jw.pkg.lib.base import InputMode
from jw.pkg.lib.base import Input, InputMode
cmd_input: Input = InputMode.NonInteractive
if re.match(r'https://github.com', args.base_url):

View file

@ -10,9 +10,9 @@ class CmdPythonpath(Cmd): # export
parent, 'pythonpath', help = 'Generate PYTHONPATH for given modules'
)
def add_arguments(self, p: ArgumentParser) -> None:
super().add_arguments(p)
p.add_argument('module', help = 'Modules', nargs = '*')
def add_arguments(self, parser: ArgumentParser) -> None:
super().add_arguments(parser)
parser.add_argument('module', help = 'Modules', nargs = '*')
async def _run(self, args: Namespace) -> None:
deps = self.app.get_project_refs(

View file

@ -61,7 +61,6 @@ class CmdRequiredOsPkg(Cmd): # export
vals = self.app.get_values(deps, ['pkg.requires.' + sec], [flavour])
if vals:
requires |= set(vals)
if args.quote:
out = [f'"{dep}"' for dep in requires]
out = [f'"{dep}"' for dep in requires] if args.quote else requires
# TODO: add all not in build tree as -devel
print(' '.join(out))

View file

@ -68,6 +68,7 @@ def pkg_relations(
if cur_pkg in visited or cur_pkg in ignore:
continue
for subsec in subsections:
version: str | None = None
section = 'pkg.' + rel_type + '.' + subsec
visited.add(cur_pkg)
value = app.get_value(cur_pkg, section, flavour)
@ -111,37 +112,38 @@ def pkg_relations(
raise Exception('Unknown version specifier in ' + spec)
if len(dep) != 3 or not expand_semver_revision_range:
expanded_deps = [dep]
continue
assert version is not None
expanded_deps = []
semver = re.split(r'[.-]', version)
if len(semver) != 4:
expanded_deps = [dep]
else:
expanded_deps = []
semver = re.split(r'[.-]', version)
if len(semver) != 4:
expanded_deps = [dep]
else:
release = int(semver[2])
major_minor = f'{semver[0]}.{semver[1]}'
match dep[1]:
case '>' | '>=':
expanded_deps.append([dep[0], dep[1], dep[2]])
expanded_deps.append(
[dep[0], '<', f'{major_minor}.{release + 1}']
)
case '<' | '<=':
expanded_deps.append([dep[0], dep[1], dep[2]])
case '=':
expanded_deps.append(
[dep[0], '>=', f'{major_minor}.{release}']
)
expanded_deps.append(
[dep[0], '<', f'{major_minor}.{release + 1}']
)
case _:
raise NotImplementedError(
(
'Expanding SemVer range '
f'"{dep[0]} {dep[1]} {dep[3]}" '
'is not yet implemented'
)
release = int(semver[2])
major_minor = f'{semver[0]}.{semver[1]}'
match dep[1]:
case '>' | '>=':
expanded_deps.append([dep[0], dep[1], dep[2]])
expanded_deps.append(
[dep[0], '<', f'{major_minor}.{release + 1}']
)
case '<' | '<=':
expanded_deps.append([dep[0], dep[1], dep[2]])
case '=':
expanded_deps.append(
[dep[0], '>=', f'{major_minor}.{release}']
)
expanded_deps.append(
[dep[0], '<', f'{major_minor}.{release + 1}']
)
case _:
raise NotImplementedError(
(
'Expanding SemVer range '
f'"{dep[0]} {dep[1]} {dep[3]}" '
'is not yet implemented'
)
)
for expanded_dep in expanded_deps:
if hide_self and dep_name in seed_pkgs:
continue