"""
文件哈希计算工具
"""

import hashlib
from pathlib import Path
from typing import Union


def calculate_file_sha1(file_path: Union[str, Path]) -> str:
    """
    计算文件的 SHA1 哈希值
    
    Args:
        file_path: 文件路径
        
    Returns:
        SHA1 哈希字符串（16进制）
    """
    file_path = Path(file_path)
    sha1_hash = hashlib.sha1()
    
    with open(file_path, "rb") as f:
        # 分块读取以处理大文件
        for chunk in iter(lambda: f.read(4096), b""):
            sha1_hash.update(chunk)
    
    return sha1_hash.hexdigest()


def calculate_data_sha1(data: str) -> str:
    """
    计算字符串数据的 SHA1 哈希值
    
    Args:
        data: 字符串数据
        
    Returns:
        SHA1 哈希字符串（16进制）
    """
    return hashlib.sha1(data.encode('utf-8')).hexdigest()