Skip to content

Commit c6821cf

Browse files
committed
fix directly instantiating IllegalArgument
that's an ABC class
1 parent 77f1542 commit c6821cf

1 file changed

Lines changed: 20 additions & 4 deletions

File tree

prime_backup/mcdr/command/nodes.py

Lines changed: 20 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -11,6 +11,10 @@
1111
from prime_backup.utils.mcdr_utils import tr
1212

1313

14+
class BadDate(IllegalArgument):
15+
pass
16+
17+
1418
class DateNode(ArgumentNode):
1519
@override
1620
def parse(self, text: str) -> ParseResult:
@@ -19,7 +23,11 @@ def parse(self, text: str) -> ParseResult:
1923
ts = conversion_utils.date_to_timestamp_us(result.value.strip())
2024
return ParseResult(ts, result.char_read)
2125
except ValueError:
22-
raise IllegalArgument(tr('error.node.bad_date'), result.char_read)
26+
raise BadDate(tr('error.node.bad_date'), result.char_read)
27+
28+
29+
class BadBackupId(IllegalArgument):
30+
pass
2331

2432

2533
class BackupIdNode(Text):
@@ -29,7 +37,7 @@ def parse(self, text: str) -> ParseResult:
2937
try:
3038
_ = BackupIdParser(allow_db_access=True, dry_run=True).parse(result.value)
3139
except ValueError:
32-
raise IllegalArgument(tr('error.node.bad_backup_id'), result.char_read)
40+
raise BadBackupId(tr('error.node.bad_backup_id'), result.char_read)
3341
return result
3442

3543
@classmethod
@@ -47,6 +55,10 @@ def _on_visited(self, context: CommandContext, parsed_result: ParseResult):
4755
context[key] = context.get(key, []) + [parsed_result.value]
4856

4957

58+
class BadIdRange(IllegalArgument):
59+
pass
60+
61+
5062
class IdRangeNode(ArgumentNode):
5163
@dataclasses.dataclass(frozen=True)
5264
class Range:
@@ -75,10 +87,14 @@ def parse(self, text: str) -> ParseResult:
7587
r = self.Range(start, end)
7688
break
7789
else:
78-
raise IllegalArgument(tr('error.node.bad_id_range'), result.char_read)
90+
raise BadIdRange(tr('error.node.bad_id_range'), result.char_read)
7991
return ParseResult(r, result.char_read)
8092

8193

94+
class BadHexString(IllegalArgument):
95+
pass
96+
97+
8298
class HexStringNode(Text):
8399
__pattern = re.compile('[a-f0-9]+')
84100

@@ -87,7 +103,7 @@ def parse(self, text: str) -> ParseResult:
87103
result = super().parse(text)
88104
h: str = result.value.lower()
89105
if not self.__pattern.fullmatch(h):
90-
raise IllegalArgument(tr('error.node.bad_hex_string'), result.char_read)
106+
raise BadHexString(tr('error.node.bad_hex_string'), result.char_read)
91107
return ParseResult(h, result.char_read)
92108

93109

0 commit comments

Comments
 (0)