""" Hashing utilities for QAFD-RAG. Provides MD5-based hashing functions for content identification and caching. """ from hashlib import md5 def compute_args_hash(*args) -> str: """ Compute MD5 hash from arbitrary arguments. Used for cache key generation from function arguments. Parameters: ----------- *args : Any Arguments to hash Returns: -------- str Hexadecimal MD5 hash string """ return md5(str(args).encode()).hexdigest() def compute_mdhash_id(content: str, prefix: str = "") -> str: """ Compute MD5 hash ID for content with optional prefix. Used for generating unique identifiers for text chunks and entities. Parameters: ----------- content : str Content to hash prefix : str, optional Prefix to prepend to the hash Returns: -------- str Prefixed hexadecimal MD5 hash string """ return prefix + md5(content.encode()).hexdigest() __all__ = [ "compute_args_hash", "compute_mdhash_id", ]