import re
from typing import Final
[docs]
LBA_LOWER_LIMIT: Final[int] = 0 
[docs]
LBA_UPPER_LIMIT: Final[int] = 99 
[docs]
LBA_SIZE: Final[int] = LBA_UPPER_LIMIT - LBA_LOWER_LIMIT + 1 
[docs]
ERASE_SIZE_LOWER_LIMIT: Final[int] = 1 
[docs]
ERASE_SIZE_UPPER_LIMIT: Final[int] = 10 
[docs]
SSD_MIN_VALUE: Final[int] = 0x00000000 
[docs]
SSD_MAX_VALUE: Final[int] = 0xFFFFFFFF 
[docs]
def convert_hex_to_str(value: int) -> str:
    """
    정수 값을 8자리 16진수 문자열로 변환합니다.
    Args:
        value (int): 변환할 정수 값
    Returns:
        str: 16진수 문자열 (예: '0x00000000')
    """
    return f"0x{value:08X}" 
[docs]
def is_valid_hex(s: str) -> bool:
    """
    주어진 문자열이 유효한 16진수 형식인지 확인합니다.
    Args:
        s (str): 검사할 문자열
    Returns:
        bool: 유효한 16진수 형식이면 True, 그렇지 않으면 False
    """
    if re.fullmatch(r"0x[0-9A-Fa-f]{8}", s):
        try:
            num = int(s, 16)
            return SSD_MIN_VALUE <= num <= SSD_MAX_VALUE
        except ValueError:
            return False
    return False