Skip to content

Commit b3dbd01

Browse files
committed
formatted strings (python)
1 parent 43f1bec commit b3dbd01

File tree

1 file changed

+37
-54
lines changed

1 file changed

+37
-54
lines changed

svdtools/patch.py

Lines changed: 37 additions & 54 deletions
Original file line numberDiff line numberDiff line change
@@ -156,21 +156,20 @@ def make_enumerated_values(name, values, usage="read-write"):
156156
ET.SubElement(ev, "name").text = name + usagekey
157157
ET.SubElement(ev, "usage").text = usage
158158
if len(set(v[0] for v in values.values())) != len(values):
159-
raise ValueError("enumeratedValue {}: can't have duplicate values".format(name))
159+
raise ValueError(f"enumeratedValue {name}: can't have duplicate values")
160160
if name[0] in "0123456789":
161-
raise ValueError("enumeratedValue {}: can't start with a number".format(name))
161+
raise ValueError(f"enumeratedValue {name}: can't start with a number")
162162
for vname in values:
163163
if vname.startswith("_"):
164164
continue
165165
if vname[0] in "0123456789":
166166
raise ValueError(
167-
"enumeratedValue {}.{}: can't start with a number".format(name, vname)
167+
f"enumeratedValue {name}.{vname}: can't start with a number"
168168
)
169169
value, description = values[vname]
170170
if not description:
171171
raise ValueError(
172-
"enumeratedValue {}: can't have empty description"
173-
" for value {}".format(name, value)
172+
f"enumeratedValue {name}: can't have empty description for value {value}"
174173
)
175174
el = ET.SubElement(ev, "enumeratedValue")
176175
ET.SubElement(el, "name").text = vname
@@ -441,7 +440,7 @@ def modify_peripheral(self, pspec, pmod):
441440
parent = self.device.find("peripherals")
442441
old_name = ptag.find("name").text
443442
for derived in parent.findall(
444-
"./peripheral[@derivedFrom='{}']".format(old_name)
443+
f"./peripheral[@derivedFrom='{old_name}']"
445444
):
446445
derived.set("derivedFrom", value)
447446
ptag.find("name").text = value
@@ -475,7 +474,7 @@ def add_peripheral(self, pname, padd):
475474
parent = self.device.find("peripherals")
476475
for ptag in parent.iter("peripheral"):
477476
if ptag.find("name").text == pname:
478-
raise SvdPatchError("device already has a peripheral {}".format(pname))
477+
raise SvdPatchError(f"device already has a peripheral {pname}")
479478
if "derivedFrom" in padd:
480479
derived = padd["derivedFrom"]
481480
pnew = ET.SubElement(parent, "peripheral", {"derivedFrom": derived})
@@ -523,11 +522,11 @@ def derive_peripheral(self, pname, pmod):
523522
base_address = pmod.get("baseAddress", None)
524523
description = pmod.get("description", None)
525524
else:
526-
raise SvdPatchError("derive: incorrect syntax for {}".format(pname))
527-
ptag = parent.find("./peripheral[name='{}']".format(pname))
528-
derived = parent.find("./peripheral[name='{}']".format(pderive))
525+
raise SvdPatchError(f"derive: incorrect syntax for {pname}")
526+
ptag = parent.find(f"./peripheral[name='{pname}']")
527+
derived = parent.find(f"./peripheral[name='{pderive}']")
529528
if (not ("." in pderive)) and (derived is None):
530-
raise SvdPatchError("peripheral {} not found".format(pderive))
529+
raise SvdPatchError(f"peripheral {pderive} not found")
531530
if ptag is None:
532531
ptag = ET.SubElement(parent, "register")
533532
ET.SubElement(ptag, "name").text = pname
@@ -545,15 +544,15 @@ def derive_peripheral(self, pname, pmod):
545544
last = value
546545
last.tail = "\n "
547546
ptag.set("derivedFrom", pderive)
548-
for p in parent.findall("./peripheral[@derivedFrom='{}']".format(pname)):
547+
for p in parent.findall(f"./peripheral[@derivedFrom='{pname}']"):
549548
p.set("derivedFrom", pderive)
550549

551550
def copy_peripheral(self, pname, pmod, path):
552551
"""
553552
Create copy of peripheral
554553
"""
555554
parent = self.device.find("peripherals")
556-
ptag = parent.find("./peripheral[name='{}']".format(pname))
555+
ptag = parent.find(f"./peripheral[name='{pname}']")
557556
pcopysrc = pmod["from"].split(":")
558557
pcopyname = pcopysrc[-1]
559558
if len(pcopysrc) == 2:
@@ -562,9 +561,9 @@ def copy_peripheral(self, pname, pmod, path):
562561
source = filedev.device.find("peripherals")
563562
else:
564563
source = parent
565-
pcopy = copy.deepcopy(source.find("./peripheral[name='{}']".format(pcopyname)))
564+
pcopy = copy.deepcopy(source.find(f"./peripheral[name='{pcopyname}']"))
566565
if pcopy is None:
567-
raise SvdPatchError("peripheral {} not found".format(pcopy))
566+
raise SvdPatchError(f"peripheral {pcopy} not found")
568567

569568
# When copying from a peripheral in the same file, remove the
570569
# copied baseAddress and any interrupts.
@@ -593,12 +592,12 @@ def rebase_peripheral(self, pnew, pold):
593592
Update all derivedFrom referencing pold.
594593
"""
595594
parent = self.device.find("peripherals")
596-
old = parent.find("./peripheral[name='{}']".format(pold))
597-
new = parent.find("./peripheral[name='{}']".format(pnew))
595+
old = parent.find(f"./peripheral[name='{pold}']")
596+
new = parent.find(f"./peripheral[name='{pnew}']")
598597
if old is None:
599-
raise SvdPatchError("peripheral {} not found".format(pold))
598+
raise SvdPatchError(f"peripheral {pold} not found")
600599
if new is None:
601-
raise SvdPatchError("peripheral {} not found".format(pnew))
600+
raise SvdPatchError(f"peripheral {pnew} not found")
602601
for value in new:
603602
last = value
604603
last.tail = "\n "
@@ -612,7 +611,7 @@ def rebase_peripheral(self, pnew, pold):
612611
last.tail = "\n "
613612
del new.attrib["derivedFrom"]
614613
old.set("derivedFrom", pnew)
615-
for p in parent.findall("./peripheral[@derivedFrom='{}']".format(pold)):
614+
for p in parent.findall(f"./peripheral[@derivedFrom='{pold}']"):
616615
p.set("derivedFrom", pnew)
617616

618617
def clear_fields(self, pspec):
@@ -712,7 +711,7 @@ def process_peripheral(self, pspec, peripheral, update_fields=True):
712711
p.derive_register(rname, rderive[rname])
713712
elif rname == "_clusters":
714713
raise NotImplementedError(
715-
"deriving clusters not implemented yet: {}".format(rname)
714+
f"deriving clusters not implemented yet: {rname}"
716715
)
717716
else:
718717
p.derive_register(rname, rderive)
@@ -730,7 +729,7 @@ def process_peripheral(self, pspec, peripheral, update_fields=True):
730729
cmod = peripheral["_cluster"][cname]
731730
p.collect_in_cluster(cname, cmod)
732731
if pcount == 0:
733-
raise MissingPeripheralError("Could not find {}".format(pspec))
732+
raise MissingPeripheralError(f"Could not find {pspec}")
734733

735734

736735
class Peripheral:
@@ -855,11 +854,11 @@ def derive_register(self, rname, rmod):
855854
address_offset = rmod.get("addressOffset", None)
856855
description = rmod.get(description, None)
857856
else:
858-
raise SvdPatchError("derive: incorrect syntax for {}".format(rname))
859-
rtag = parent.find("./register[name='{}']".format(rname))
860-
derived = parent.find("./register[name='{}']".format(rderive))
857+
raise SvdPatchError(f"derive: incorrect syntax for {rname}")
858+
rtag = parent.find(f"./register[name='{rname}']")
859+
derived = parent.find(f"./register[name='{rderive}']")
861860
if derived is None:
862-
raise SvdPatchError("register {} not found".format(rderive))
861+
raise SvdPatchError(f"register {rderive} not found")
863862
if rtag is None:
864863
rtag = ET.SubElement(parent, "register")
865864
ET.SubElement(rtag, "name").text = rname
@@ -877,17 +876,15 @@ def derive_register(self, rname, rmod):
877876
last = value
878877
last.tail = "\n "
879878
rtag.set("derivedFrom", rderive)
880-
for p in parent.findall("./register[@derivedFrom='{}']".format(rname)):
879+
for p in parent.findall(f"./register[@derivedFrom='{rname}']"):
881880
p.set("derivedFrom", rderive)
882881

883882
def copy_register(self, rname, rderive):
884883
"""Add rname given by deriving from rsource to ptag"""
885884
parent = self.ptag.find("registers")
886885
if not "_from" in rderive:
887886
raise SvdPatchError(
888-
"derive: source register not given, please add a _from field to {}".format(
889-
rname
890-
)
887+
f"derive: source register not given, please add a _from field to {rname}"
891888
)
892889
srcname = rderive["_from"]
893890
source = None
@@ -1163,7 +1160,7 @@ def process_register(self, rspec, register, update_fields=True):
11631160
fmod = register["_array"][fspec]
11641161
r.collect_fields_in_array(fspec, fmod)
11651162
if rcount == 0:
1166-
raise MissingRegisterError("Could not find {}:{}".format(pname, rspec))
1163+
raise MissingRegisterError(f"Could not find {pname}:{rspec}")
11671164

11681165

11691166
def sorted_fields(fields):
@@ -1299,16 +1296,14 @@ def merge_fields(self, key, value):
12991296
name = key
13001297
elif value is not None:
13011298
rname = self.rtag.find("name").text
1302-
raise RegisterMergeError(
1303-
"Invalid usage of merge for {}.{}".format(rname, key)
1304-
)
1299+
raise RegisterMergeError(f"Invalid usage of merge for {rname}.{key}")
13051300
else:
13061301
fields = list(self.iter_fields(key))
13071302
name = os.path.commonprefix([f.find("name").text for f in fields])
13081303
if len(fields) == 0:
13091304
rname = self.rtag.find("name").text
13101305
raise RegisterMergeError(
1311-
"Could not find any fields to merge {}.{}".format(rname, fspec)
1306+
f"Could not find any fields to merge {rname}.{fspec}"
13121307
)
13131308
parent = self.rtag.find("fields")
13141309
desc = fields[0].find("description").text
@@ -1387,7 +1382,7 @@ def split_fields(self, fspec, fsplit):
13871382
if len(fields) == 0:
13881383
rname = self.rtag.find("name").text
13891384
raise RegisterMergeError(
1390-
"Could not find any fields to split {}.{}".format(rname, fspec)
1385+
f"Could not find any fields to split {rname}.{fspec}"
13911386
)
13921387
parent = self.rtag.find("fields")
13931388
if isinstance(fsplit, dict) and "name" in fsplit:
@@ -1518,22 +1513,16 @@ def process_field_enum(self, pname, fspec, field, usage="read-write"):
15181513
# original definition to extract its <usage>
15191514
derived_name = ev.attrib["derivedFrom"]
15201515
derived_enums = self.rtag.findall(
1521-
"./fields/field/enumeratedValues/[name='{}']".format(
1522-
derived_name
1523-
)
1516+
f"./fields/field/enumeratedValues/[name='{derived_name}']"
15241517
)
15251518

15261519
if derived_enums == []:
15271520
raise SvdPatchError(
1528-
"{}: field {} derives enumeratedValues {} which could not be found".format(
1529-
pname, name, derived_name
1530-
)
1521+
f"{pname}: field {name} derives enumeratedValues {derived_name} which could not be found"
15311522
)
15321523
elif len(derived_enums) != 1:
15331524
raise SvdPatchError(
1534-
"{}: field {} derives enumeratedValues {} which was found multiple times".format(
1535-
pname, name, derived_name
1536-
)
1525+
f"{pname}: field {name} derives enumeratedValues {derived_name} which was found multiple times"
15371526
)
15381527

15391528
ev_usage = derived_enums[0].find("usage").text
@@ -1543,19 +1532,15 @@ def process_field_enum(self, pname, fspec, field, usage="read-write"):
15431532
ftag.remove(ev)
15441533
else:
15451534
raise SvdPatchError(
1546-
"{}: field {} already has enumeratedValues for {}".format(
1547-
pname, name, ev_usage
1548-
)
1535+
f"{pname}: field {name} already has enumeratedValues for {ev_usage}"
15491536
)
15501537
ftag.append(enum)
15511538
derived = enum_name
15521539
else:
15531540
ftag.append(make_derived_enumerated_values(derived))
15541541
if derived is None:
15551542
rname = self.rtag.find("name").text
1556-
raise MissingFieldError(
1557-
"Could not find {}:{}.{}".format(pname, rname, fspec)
1558-
)
1543+
raise MissingFieldError(f"Could not find {pname}:{rname}.{fspec}")
15591544

15601545
def process_field_range(self, pname, fspec, field):
15611546
"""Add a writeConstraint range given by field to all fspec in rtag."""
@@ -1565,9 +1550,7 @@ def process_field_range(self, pname, fspec, field):
15651550
set_any = True
15661551
if not set_any:
15671552
rname = self.rtag.find("name").text
1568-
raise MissingFieldError(
1569-
"Could not find {}:{}.{}".format(pname, rname, fspec)
1570-
)
1553+
raise MissingFieldError(f"Could not find {pname}:{rname}.{fspec}")
15711554

15721555
def get_bitmask(self):
15731556
"""Calculate filling of register"""

0 commit comments

Comments
 (0)