File size: 469 Bytes
7e55e53 | 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 | """Compact, monotonic lease-id generation without UUID overhead."""
import threading
_lock = threading.Lock()
_counter: int = 0
def next_id() -> int:
"""Return a process-local monotonically increasing integer id."""
global _counter
with _lock:
_counter += 1
return _counter
def next_hex(length: int = 12) -> str:
"""Return a zero-padded hex string derived from the monotonic counter."""
return format(next_id(), f"0{length}x")
|