diff --git a/persian_tools/separator.py b/persian_tools/separator.py index 48ca0cc..e0a013c 100644 --- a/persian_tools/separator.py +++ b/persian_tools/separator.py @@ -1,16 +1,16 @@ -from typing import Union +from typing import TypeAlias import re +Number: TypeAlias = int | float | str -def add(number: Union[int, float, str], separator: str = ',') -> str: - number = str(number) - parts = number.split('.') - pattern = '(\\d)(?=(\\d{3})+(?!\\d))' - repl = r'\1{sep}'.format(sep=separator) +_PATTERN = re.compile(r"(\d)(?=(\d{3})+(?!\d))") - parts[0] = re.sub(pattern, repl, parts[0]) - return '.'.join(parts) +def add(number: Number, separator: str = ",") -> str: + integer, *decimal = str(number).split(".") + integer = _PATTERN.sub(rf"\1{separator}", integer) + return ".".join((integer, *decimal)) -def remove(number: str, separator: str = ',') -> str: - return str(number).replace(separator, '') + +def remove(number: str, separator: str = ",") -> str: + return number.replace(separator, "")