addrlist: use match statement where practicable
This commit is contained in:
parent
a67bf727d8
commit
52b29604ee
1 changed files with 8 additions and 8 deletions
|
|
@ -35,15 +35,15 @@ class AddrIdxList(tuple, InitErrors, MMGenObject):
|
|||
if fmt_str:
|
||||
def gen():
|
||||
for i in (fmt_str.split(sep)):
|
||||
j = [int(x) for x in i.split('-')]
|
||||
if len(j) == 1:
|
||||
yield j[0]
|
||||
elif len(j) == 2:
|
||||
if j[0] > j[1]:
|
||||
match [int(x) for x in i.split('-')]:
|
||||
case [a]:
|
||||
yield a
|
||||
case [a, b]:
|
||||
if a > b:
|
||||
raise ValueError(f'{i}: invalid range')
|
||||
yield from range(a, b + 1)
|
||||
case _:
|
||||
raise ValueError(f'{i}: invalid range')
|
||||
yield from range(j[0], j[1] + 1)
|
||||
else:
|
||||
raise ValueError(f'{i}: invalid range')
|
||||
idx_list = tuple(gen())
|
||||
return tuple.__new__(cls, sorted({AddrIdx(i) for i in (idx_list or [])}))
|
||||
except Exception as e:
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue