scripts: list_boards: Fix linter issues

Fix issues reported by ruff.

Signed-off-by: Pieter De Gendt <pieter.degendt@basalte.be>
This commit is contained in:
Pieter De Gendt 2025-05-25 10:57:11 +02:00 committed by Benjamin Cabé
commit b2687468b5
2 changed files with 30 additions and 42 deletions

View file

@ -568,16 +568,6 @@
"UP036", # https://docs.astral.sh/ruff/rules/outdated-version-block "UP036", # https://docs.astral.sh/ruff/rules/outdated-version-block
"UP038", # https://docs.astral.sh/ruff/rules/non-pep604-isinstance "UP038", # https://docs.astral.sh/ruff/rules/non-pep604-isinstance
] ]
"./scripts/list_boards.py" = [
"E731", # https://docs.astral.sh/ruff/rules/lambda-assignment
"I001", # https://docs.astral.sh/ruff/rules/unsorted-imports
"SIM102", # https://docs.astral.sh/ruff/rules/collapsible-if
"UP006", # https://docs.astral.sh/ruff/rules/non-pep585-annotation
"UP007", # https://docs.astral.sh/ruff/rules/non-pep604-annotation-union
"UP015", # https://docs.astral.sh/ruff/rules/redundant-open-modes
"UP032", # https://docs.astral.sh/ruff/rules/f-string
"UP035", # https://docs.astral.sh/ruff/rules/deprecated-import
]
"./scripts/list_hardware.py" = [ "./scripts/list_hardware.py" = [
"I001", # https://docs.astral.sh/ruff/rules/unsorted-imports "I001", # https://docs.astral.sh/ruff/rules/unsorted-imports
"UP006", # https://docs.astral.sh/ruff/rules/non-pep585-annotation "UP006", # https://docs.astral.sh/ruff/rules/non-pep585-annotation

View file

@ -4,15 +4,15 @@
# SPDX-License-Identifier: Apache-2.0 # SPDX-License-Identifier: Apache-2.0
import argparse import argparse
from collections import defaultdict, Counter
from dataclasses import dataclass, field
import itertools import itertools
from pathlib import Path
import pykwalify.core
import sys import sys
from typing import List, Union from collections import Counter, defaultdict
import yaml from dataclasses import dataclass, field
from pathlib import Path
import list_hardware import list_hardware
import pykwalify.core
import yaml
from list_hardware import unique_paths from list_hardware import unique_paths
try: try:
@ -21,7 +21,7 @@ except ImportError:
from yaml import SafeLoader from yaml import SafeLoader
BOARD_SCHEMA_PATH = str(Path(__file__).parent / 'schemas' / 'board-schema.yml') BOARD_SCHEMA_PATH = str(Path(__file__).parent / 'schemas' / 'board-schema.yml')
with open(BOARD_SCHEMA_PATH, 'r') as f: with open(BOARD_SCHEMA_PATH) as f:
board_schema = yaml.load(f.read(), Loader=SafeLoader) board_schema = yaml.load(f.read(), Loader=SafeLoader)
BOARD_VALIDATOR = pykwalify.core.Core(schema_data=board_schema, source_data={}) BOARD_VALIDATOR = pykwalify.core.Core(schema_data=board_schema, source_data={})
@ -41,7 +41,7 @@ BOARD_YML = 'board.yml'
@dataclass @dataclass
class Revision: class Revision:
name: str name: str
variants: List[str] = field(default_factory=list) variants: list[str] = field(default_factory=list)
@staticmethod @staticmethod
def from_dict(revision): def from_dict(revision):
@ -54,7 +54,7 @@ class Revision:
@dataclass @dataclass
class Variant: class Variant:
name: str name: str
variants: List[str] = field(default_factory=list) variants: list[str] = field(default_factory=list)
@staticmethod @staticmethod
def from_dict(variant): def from_dict(variant):
@ -67,14 +67,14 @@ class Variant:
@dataclass @dataclass
class Cpucluster: class Cpucluster:
name: str name: str
variants: List[str] = field(default_factory=list) variants: list[str] = field(default_factory=list)
@dataclass @dataclass
class Soc: class Soc:
name: str name: str
cpuclusters: List[str] = field(default_factory=list) cpuclusters: list[str] = field(default_factory=list)
variants: List[str] = field(default_factory=list) variants: list[str] = field(default_factory=list)
@staticmethod @staticmethod
def from_soc(soc, variants): def from_soc(soc, variants):
@ -94,7 +94,7 @@ class Soc:
class Board: class Board:
name: str name: str
# HWMv1 only supports a single Path, and requires Board dataclass to be hashable. # HWMv1 only supports a single Path, and requires Board dataclass to be hashable.
directories: Union[Path, List[Path]] directories: Path | list[Path]
hwm: str hwm: str
full_name: str = None full_name: str = None
arch: str = None arch: str = None
@ -102,9 +102,9 @@ class Board:
revision_format: str = None revision_format: str = None
revision_default: str = None revision_default: str = None
revision_exact: bool = False revision_exact: bool = False
revisions: List[str] = field(default_factory=list, compare=False) revisions: list[str] = field(default_factory=list, compare=False)
socs: List[Soc] = field(default_factory=list, compare=False) socs: list[Soc] = field(default_factory=list, compare=False)
variants: List[str] = field(default_factory=list, compare=False) variants: list[str] = field(default_factory=list, compare=False)
@property @property
def dir(self): def dir(self):
@ -125,8 +125,7 @@ class Board:
node = s node = s
break break
if n > 1: if n > 1 and node.cpuclusters:
if node.cpuclusters:
cpu_qualifier = qualifiers_list.pop(0) cpu_qualifier = qualifiers_list.pop(0)
for c in node.cpuclusters: for c in node.cpuclusters:
if c.name == cpu_qualifier: if c.name == cpu_qualifier:
@ -235,8 +234,7 @@ def load_v2_boards(board_name, board_yml, systems):
BOARD_VALIDATOR.source = b BOARD_VALIDATOR.source = b
BOARD_VALIDATOR.validate() BOARD_VALIDATOR.validate()
except pykwalify.errors.SchemaError as e: except pykwalify.errors.SchemaError as e:
sys.exit('ERROR: Malformed "build" section in file: {}\n{}' sys.exit(f'ERROR: Malformed "build" section in file: {board_yml.as_posix()}\n{e}')
.format(board_yml.as_posix(), e))
mutual_exclusive = {'board', 'boards'} mutual_exclusive = {'board', 'boards'}
if len(mutual_exclusive - b.keys()) < 1: if len(mutual_exclusive - b.keys()) < 1:
@ -257,8 +255,7 @@ def load_v2_boards(board_name, board_yml, systems):
continue continue
# Create board # Create board
if board_name is not None: if board_name is not None and board['name'] != board_name:
if board['name'] != board_name:
# Not the board we're looking for, ignore. # Not the board we're looking for, ignore.
continue continue
@ -421,7 +418,8 @@ def dump_v2_boards(args):
for b in boards.values(): for b in boards.values():
qualifiers_list = board_v2_qualifiers(b) qualifiers_list = board_v2_qualifiers(b)
if args.cmakeformat is not None: if args.cmakeformat is not None:
notfound = lambda x: x or 'NOTFOUND' def notfound(x):
return x or 'NOTFOUND'
info = args.cmakeformat.format( info = args.cmakeformat.format(
NAME='NAME;' + b.name, NAME='NAME;' + b.name,
DIR='DIR;' + ';'.join( DIR='DIR;' + ';'.join(