44# SPDX-License-Identifier: Apache-2.0
55
66import argparse
7- from collections import defaultdict , Counter
8- from dataclasses import dataclass , field
97import itertools
8+ import sys
9+ from collections import Counter , defaultdict
10+ from dataclasses import dataclass , field
1011from pathlib import Path
12+
13+ import list_hardware
1114import pykwalify .core
12- import sys
13- from typing import List , Union
1415import yaml
15- import list_hardware
1616from list_hardware import unique_paths
1717
1818try :
2121 from yaml import SafeLoader
2222
2323BOARD_SCHEMA_PATH = str (Path (__file__ ).parent / 'schemas' / 'board-schema.yml' )
24- with open (BOARD_SCHEMA_PATH , 'r' ) as f :
24+ with open (BOARD_SCHEMA_PATH ) as f :
2525 board_schema = yaml .load (f .read (), Loader = SafeLoader )
2626
2727BOARD_YML = 'board.yml'
3939@dataclass
4040class Revision :
4141 name : str
42- variants : List [str ] = field (default_factory = list )
42+ variants : list [str ] = field (default_factory = list )
4343
4444 @staticmethod
4545 def from_dict (revision ):
@@ -52,7 +52,7 @@ def from_dict(revision):
5252@dataclass
5353class Variant :
5454 name : str
55- variants : List [str ] = field (default_factory = list )
55+ variants : list [str ] = field (default_factory = list )
5656
5757 @staticmethod
5858 def from_dict (variant ):
@@ -65,14 +65,14 @@ def from_dict(variant):
6565@dataclass
6666class Cpucluster :
6767 name : str
68- variants : List [str ] = field (default_factory = list )
68+ variants : list [str ] = field (default_factory = list )
6969
7070
7171@dataclass
7272class Soc :
7373 name : str
74- cpuclusters : List [str ] = field (default_factory = list )
75- variants : List [str ] = field (default_factory = list )
74+ cpuclusters : list [str ] = field (default_factory = list )
75+ variants : list [str ] = field (default_factory = list )
7676
7777 @staticmethod
7878 def from_soc (soc , variants ):
@@ -92,17 +92,17 @@ def from_soc(soc, variants):
9292class Board :
9393 name : str
9494 # HWMv1 only supports a single Path, and requires Board dataclass to be hashable.
95- directories : Union [ Path , List [Path ] ]
95+ directories : Path | list [Path ]
9696 hwm : str
9797 full_name : str = None
9898 arch : str = None
9999 vendor : str = None
100100 revision_format : str = None
101101 revision_default : str = None
102102 revision_exact : bool = False
103- revisions : List [str ] = field (default_factory = list , compare = False )
104- socs : List [Soc ] = field (default_factory = list , compare = False )
105- variants : List [str ] = field (default_factory = list , compare = False )
103+ revisions : list [str ] = field (default_factory = list , compare = False )
104+ socs : list [Soc ] = field (default_factory = list , compare = False )
105+ variants : list [str ] = field (default_factory = list , compare = False )
106106
107107 @property
108108 def dir (self ):
@@ -123,15 +123,14 @@ def from_qualifier(self, qualifiers):
123123 node = s
124124 break
125125
126- if n > 1 :
127- if node .cpuclusters :
128- cpu_qualifier = qualifiers_list .pop (0 )
129- for c in node .cpuclusters :
130- if c .name == cpu_qualifier :
131- node = c
132- break
133- else :
134- node = Variant (None )
126+ if n > 1 and node .cpuclusters :
127+ cpu_qualifier = qualifiers_list .pop (0 )
128+ for c in node .cpuclusters :
129+ if c .name == cpu_qualifier :
130+ node = c
131+ break
132+ else :
133+ node = Variant (None )
135134
136135 for q in qualifiers_list :
137136 for v in node .variants :
@@ -232,8 +231,7 @@ def load_v2_boards(board_name, board_yml, systems):
232231 try :
233232 pykwalify .core .Core (source_data = b , schema_data = board_schema ).validate ()
234233 except pykwalify .errors .SchemaError as e :
235- sys .exit ('ERROR: Malformed "build" section in file: {}\n {}'
236- .format (board_yml .as_posix (), e ))
234+ sys .exit (f'ERROR: Malformed "build" section in file: { board_yml .as_posix ()} \n { e } ' )
237235
238236 mutual_exclusive = {'board' , 'boards' }
239237 if len (mutual_exclusive - b .keys ()) < 1 :
@@ -254,10 +252,9 @@ def load_v2_boards(board_name, board_yml, systems):
254252 continue
255253
256254 # Create board
257- if board_name is not None :
258- if board ['name' ] != board_name :
259- # Not the board we're looking for, ignore.
260- continue
255+ if board_name is not None and board ['name' ] != board_name :
256+ # Not the board we're looking for, ignore.
257+ continue
261258
262259 board_revision = board .get ('revision' )
263260 if board_revision is not None and board_revision .get ('format' ) != 'custom' :
@@ -418,7 +415,8 @@ def dump_v2_boards(args):
418415 for b in boards .values ():
419416 qualifiers_list = board_v2_qualifiers (b )
420417 if args .cmakeformat is not None :
421- notfound = lambda x : x or 'NOTFOUND'
418+ def notfound (x ):
419+ return x or 'NOTFOUND'
422420 info = args .cmakeformat .format (
423421 NAME = 'NAME;' + b .name ,
424422 DIR = 'DIR;' + ';' .join (
0 commit comments