"""业务断言工具类(风格参考 Spring Assert) 使用方式: from app.core.asserts import Assert Assert.is_true(condition, "条件不满足的提示") Assert.not_none(obj, "对象不能为空") Assert.gt(days, 0, "天数必须大于0") """ from app.core.exceptions import AssertError class Assert: """业务断言工具类 所有方法为静态方法,条件不满足时抛 AssertError(code=4100)。 """ @staticmethod def is_true(condition: bool, msg: str = "") -> None: """condition 为 False 时抛异常""" if not condition: raise AssertError(msg) @staticmethod def is_false(condition: bool, msg: str = "") -> None: """condition 为 True 时抛异常""" if condition: raise AssertError(msg) @staticmethod def not_none(obj, msg: str = "") -> None: """obj 为 None 时抛异常""" if obj is None: raise AssertError(msg) @staticmethod def is_none(obj, msg: str = "") -> None: """obj 不为 None 时抛异常""" if obj is not None: raise AssertError(msg) @staticmethod def has_text(text: str | None, msg: str = "") -> None: """text 为 None 或空字符串或纯空白时抛异常""" if not text or not text.strip(): raise AssertError(msg) @staticmethod def not_empty(collection, msg: str = "") -> None: """集合/列表为 None 或空时抛异常""" if not collection: raise AssertError(msg) @staticmethod def gt(value, target, msg: str = "") -> None: """value <= target 时抛异常""" if value <= target: raise AssertError(msg) @staticmethod def gte(value, target, msg: str = "") -> None: """value < target 时抛异常""" if value < target: raise AssertError(msg) @staticmethod def lt(value, target, msg: str = "") -> None: """value >= target 时抛异常""" if value >= target: raise AssertError(msg) @staticmethod def lte(value, target, msg: str = "") -> None: """value > target 时抛异常""" if value > target: raise AssertError(msg) @staticmethod def eq(a, b, msg: str = "") -> None: """a != b 时抛异常""" if a != b: raise AssertError(msg) @staticmethod def ne(a, b, msg: str = "") -> None: """a == b 时抛异常""" if a == b: raise AssertError(msg)