23 lines
654 B
Python
23 lines
654 B
Python
# -*- 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)
|