mirror of
https://github.com/KnugiHK/WhatsApp-Chat-Exporter.git
synced 2026-02-27 10:53:41 +00:00
Cast numeric string in readable_to_bytes
This commit is contained in:
@@ -334,16 +334,12 @@ def validate_args(parser: ArgumentParser, args) -> None:
|
||||
|
||||
# Size validation and conversion
|
||||
if args.size is not None:
|
||||
stripped_size = args.size.strip()
|
||||
if stripped_size.isnumeric():
|
||||
args.size = int(stripped_size)
|
||||
else:
|
||||
try:
|
||||
args.size = readable_to_bytes(stripped_size)
|
||||
except ValueError:
|
||||
parser.error(
|
||||
"The value for --split must be pure bytes or use a proper unit (e.g., 1048576 or 1MB)"
|
||||
)
|
||||
try:
|
||||
args.size = readable_to_bytes(args.size)
|
||||
except ValueError:
|
||||
parser.error(
|
||||
"The value for --split must be pure bytes or use a proper unit (e.g., 1048576 or 1MB)"
|
||||
)
|
||||
|
||||
# Date filter validation and processing
|
||||
if args.filter_date is not None:
|
||||
|
||||
@@ -119,6 +119,9 @@ def readable_to_bytes(size_str: str) -> int:
|
||||
}
|
||||
size_str = size_str.upper().strip()
|
||||
match = re.fullmatch(r'^(\d+(\.\d+)?)\s*([KMGTPEZY]?B)?$', size_str)
|
||||
if size_str.isnumeric():
|
||||
# If the string is purely numeric, assume it's in bytes
|
||||
return int(size_str)
|
||||
if not match:
|
||||
raise ValueError("Invalid size format. Expected format like '10MB', '1024GB', or '512'.")
|
||||
unit = ''.join(filter(str.isalpha, size_str)).strip()
|
||||
|
||||
@@ -76,8 +76,7 @@ class TestReadableToBytes:
|
||||
readable_to_bytes("ABC KB")
|
||||
|
||||
def test_missing_unit(self):
|
||||
with pytest.raises(ValueError, match="Invalid input for size_str"):
|
||||
readable_to_bytes("100")
|
||||
assert readable_to_bytes("100") == 100
|
||||
|
||||
|
||||
class TestSanitizeExcept:
|
||||
|
||||
Reference in New Issue
Block a user