4
4
# SPDX-License-Identifier: Apache-2.0
5
5
6
6
import argparse
7
- from collections import defaultdict , Counter
8
- from dataclasses import dataclass , field
9
7
import itertools
8
+ import sys
9
+ from collections import Counter , defaultdict
10
+ from dataclasses import dataclass , field
10
11
from pathlib import Path
12
+
13
+ import list_hardware
11
14
import pykwalify .core
12
- import sys
13
- from typing import List , Union
14
15
import yaml
15
- import list_hardware
16
16
from list_hardware import unique_paths
17
17
18
18
try :
21
21
from yaml import SafeLoader
22
22
23
23
BOARD_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 :
25
25
board_schema = yaml .load (f .read (), Loader = SafeLoader )
26
26
27
27
BOARD_VALIDATOR = pykwalify .core .Core (schema_data = board_schema , source_data = {})
41
41
@dataclass
42
42
class Revision :
43
43
name : str
44
- variants : List [str ] = field (default_factory = list )
44
+ variants : list [str ] = field (default_factory = list )
45
45
46
46
@staticmethod
47
47
def from_dict (revision ):
@@ -54,7 +54,7 @@ def from_dict(revision):
54
54
@dataclass
55
55
class Variant :
56
56
name : str
57
- variants : List [str ] = field (default_factory = list )
57
+ variants : list [str ] = field (default_factory = list )
58
58
59
59
@staticmethod
60
60
def from_dict (variant ):
@@ -67,14 +67,14 @@ def from_dict(variant):
67
67
@dataclass
68
68
class Cpucluster :
69
69
name : str
70
- variants : List [str ] = field (default_factory = list )
70
+ variants : list [str ] = field (default_factory = list )
71
71
72
72
73
73
@dataclass
74
74
class Soc :
75
75
name : str
76
- cpuclusters : List [str ] = field (default_factory = list )
77
- variants : List [str ] = field (default_factory = list )
76
+ cpuclusters : list [str ] = field (default_factory = list )
77
+ variants : list [str ] = field (default_factory = list )
78
78
79
79
@staticmethod
80
80
def from_soc (soc , variants ):
@@ -94,17 +94,17 @@ def from_soc(soc, variants):
94
94
class Board :
95
95
name : str
96
96
# HWMv1 only supports a single Path, and requires Board dataclass to be hashable.
97
- directories : Union [ Path , List [Path ] ]
97
+ directories : Path | list [Path ]
98
98
hwm : str
99
99
full_name : str = None
100
100
arch : str = None
101
101
vendor : str = None
102
102
revision_format : str = None
103
103
revision_default : str = None
104
104
revision_exact : bool = False
105
- revisions : List [str ] = field (default_factory = list , compare = False )
106
- socs : List [Soc ] = field (default_factory = list , compare = False )
107
- variants : List [str ] = field (default_factory = list , compare = False )
105
+ revisions : list [str ] = field (default_factory = list , compare = False )
106
+ socs : list [Soc ] = field (default_factory = list , compare = False )
107
+ variants : list [str ] = field (default_factory = list , compare = False )
108
108
109
109
@property
110
110
def dir (self ):
@@ -125,15 +125,14 @@ def from_qualifier(self, qualifiers):
125
125
node = s
126
126
break
127
127
128
- if n > 1 :
129
- if node .cpuclusters :
130
- cpu_qualifier = qualifiers_list .pop (0 )
131
- for c in node .cpuclusters :
132
- if c .name == cpu_qualifier :
133
- node = c
134
- break
135
- else :
136
- node = Variant (None )
128
+ if n > 1 and node .cpuclusters :
129
+ cpu_qualifier = qualifiers_list .pop (0 )
130
+ for c in node .cpuclusters :
131
+ if c .name == cpu_qualifier :
132
+ node = c
133
+ break
134
+ else :
135
+ node = Variant (None )
137
136
138
137
for q in qualifiers_list :
139
138
for v in node .variants :
@@ -235,8 +234,7 @@ def load_v2_boards(board_name, board_yml, systems):
235
234
BOARD_VALIDATOR .source = b
236
235
BOARD_VALIDATOR .validate ()
237
236
except pykwalify .errors .SchemaError as e :
238
- sys .exit ('ERROR: Malformed "build" section in file: {}\n {}'
239
- .format (board_yml .as_posix (), e ))
237
+ sys .exit (f'ERROR: Malformed "build" section in file: { board_yml .as_posix ()} \n { e } ' )
240
238
241
239
mutual_exclusive = {'board' , 'boards' }
242
240
if len (mutual_exclusive - b .keys ()) < 1 :
@@ -257,10 +255,9 @@ def load_v2_boards(board_name, board_yml, systems):
257
255
continue
258
256
259
257
# Create board
260
- if board_name is not None :
261
- if board ['name' ] != board_name :
262
- # Not the board we're looking for, ignore.
263
- continue
258
+ if board_name is not None and board ['name' ] != board_name :
259
+ # Not the board we're looking for, ignore.
260
+ continue
264
261
265
262
board_revision = board .get ('revision' )
266
263
if board_revision is not None and board_revision .get ('format' ) != 'custom' :
@@ -421,7 +418,8 @@ def dump_v2_boards(args):
421
418
for b in boards .values ():
422
419
qualifiers_list = board_v2_qualifiers (b )
423
420
if args .cmakeformat is not None :
424
- notfound = lambda x : x or 'NOTFOUND'
421
+ def notfound (x ):
422
+ return x or 'NOTFOUND'
425
423
info = args .cmakeformat .format (
426
424
NAME = 'NAME;' + b .name ,
427
425
DIR = 'DIR;' + ';' .join (
0 commit comments