didier/didier/utils/types/string.py

23 lines
653 B
Python
Raw Normal View History

2022-07-01 15:46:56 +02:00
import math
from typing import Optional
def leading(character: str, string: str, target_length: Optional[int] = 2) -> str:
"""Add a leading [character] to [string] to make it length [target_length]
2022-07-01 15:46:56 +02:00
Pass None to target length to always do it (once), no matter the length
"""
# Cast to string just in case
string = str(string)
# Add no matter what
if target_length is None:
return character + string
# String is already long enough
if len(string) >= target_length:
return string
2022-07-01 15:46:56 +02:00
frequency = math.ceil((target_length - len(string)) / len(character))
return (frequency * character) + string