sqlmesh.utils.hashing
1from __future__ import annotations 2 3import hashlib 4import typing as t 5import zlib 6 7 8def crc32(data: t.Iterable[t.Optional[str]]) -> str: 9 return str(zlib.crc32(_safe_concat(data))) 10 11 12def md5(data: t.Union[str, t.Iterable[t.Optional[str]]]) -> str: 13 if isinstance(data, str): 14 data = [data] 15 return hashlib.md5(_safe_concat(data)).hexdigest() 16 17 18def hash_data(data: t.Iterable[t.Optional[str]]) -> str: 19 return crc32(data) 20 21 22def _safe_concat(data: t.Iterable[t.Optional[str]]) -> bytes: 23 return ";".join("" if d is None else d for d in data).encode("utf-8")
def
crc32(data: Iterable[Optional[str]]) -> str:
def
md5(data: Union[str, Iterable[Optional[str]]]) -> str:
def
hash_data(data: Iterable[Optional[str]]) -> str: