# -*- coding: utf-8 -*- """通用工具函数""" import hashlib from datetime import datetime from pathlib import Path def ensure_dir(path: Path): """确保目录存在""" path.mkdir(parents=True, exist_ok=True) def make_surrogate_key(*parts) -> int: """ 生成代理键 将多个字段值拼接后计算SHA1,取前8字节转为无符号64位整数 """ raw = "|".join("" if p is None else str(p) for p in parts) h = hashlib.sha1(raw.encode("utf-8")).digest()[:8] return int.from_bytes(h, byteorder="big", signed=False) def now_local(tz) -> datetime: """获取本地当前时间""" return datetime.now(tz)