kwmin_probin / utils /helpers.py
cksleigen's picture
add files
c2f0e66
# utils/helpers.py
"""์œ ํ‹ธ๋ฆฌํ‹ฐ ํ•จ์ˆ˜๋“ค"""
import os
from typing import Optional
def ensure_dir(directory: str):
"""
๋””๋ ‰ํ† ๋ฆฌ๊ฐ€ ์—†์œผ๋ฉด ์ƒ์„ฑ
Args:
directory: ๋””๋ ‰ํ† ๋ฆฌ ๊ฒฝ๋กœ
"""
if not os.path.exists(directory):
os.makedirs(directory)
print(f"๐Ÿ“ ๋””๋ ‰ํ† ๋ฆฌ ์ƒ์„ฑ: {directory}")
def format_file_size(size_bytes: int) -> str:
"""
ํŒŒ์ผ ํฌ๊ธฐ๋ฅผ ์ฝ๊ธฐ ์‰ฌ์šด ํ˜•์‹์œผ๋กœ ๋ณ€ํ™˜
Args:
size_bytes: ๋ฐ”์ดํŠธ ๋‹จ์œ„ ํฌ๊ธฐ
Returns:
str: ํฌ๋งท๋œ ํฌ๊ธฐ (์˜ˆ: "1.5 MB")
"""
for unit in ['B', 'KB', 'MB', 'GB']:
if size_bytes < 1024.0:
return f"{size_bytes:.1f} {unit}"
size_bytes /= 1024.0
return f"{size_bytes:.1f} TB"
def truncate_text(text: str, max_length: int = 100, suffix: str = "...") -> str:
"""
ํ…์ŠคํŠธ๋ฅผ ์ง€์ •๋œ ๊ธธ์ด๋กœ ์ž๋ฅด๊ธฐ
Args:
text: ์›๋ณธ ํ…์ŠคํŠธ
max_length: ์ตœ๋Œ€ ๊ธธ์ด
suffix: ์ž˜๋ฆฐ ๊ฒฝ์šฐ ์ถ”๊ฐ€ํ•  ์ ‘๋ฏธ์‚ฌ
Returns:
str: ์ž˜๋ฆฐ ํ…์ŠคํŠธ
"""
if len(text) <= max_length:
return text
return text[:max_length - len(suffix)] + suffix
def safe_get(dictionary: dict, key: str, default: Optional[any] = None):
"""
์•ˆ์ „ํ•˜๊ฒŒ ๋”•์…”๋„ˆ๋ฆฌ ๊ฐ’ ๊ฐ€์ ธ์˜ค๊ธฐ
Args:
dictionary: ๋”•์…”๋„ˆ๋ฆฌ
key: ํ‚ค
default: ๊ธฐ๋ณธ๊ฐ’
Returns:
๊ฐ’ ๋˜๋Š” ๊ธฐ๋ณธ๊ฐ’
"""
try:
return dictionary.get(key, default)
except:
return default